@bestow-ui/react 1.6.1 → 1.7.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 +7 -5
- package/dist/{chunk-NKLDAXUR.js → chunk-YYLDXZWR.js} +26 -5
- package/dist/chunk-YYLDXZWR.js.map +1 -0
- package/dist/client.js +826 -538
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +1298 -847
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +600 -116
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +237 -22
- package/dist/index.d.ts +237 -22
- package/dist/shared.js +210 -52
- package/dist/shared.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-NKLDAXUR.js.map +0 -1
package/dist/client.js
CHANGED
|
@@ -3,49 +3,103 @@ import {
|
|
|
3
3
|
Skeleton,
|
|
4
4
|
addDays,
|
|
5
5
|
addMonths,
|
|
6
|
+
adornment,
|
|
6
7
|
compareDays,
|
|
7
8
|
cx,
|
|
9
|
+
field,
|
|
10
|
+
fieldFullWidth,
|
|
8
11
|
focusField,
|
|
9
12
|
getCalendarWeeks,
|
|
13
|
+
helperText,
|
|
14
|
+
input,
|
|
10
15
|
isSameDay,
|
|
11
16
|
isSameMonth,
|
|
12
17
|
kakaoPostcodeProvider,
|
|
18
|
+
label,
|
|
13
19
|
mergeThemes,
|
|
14
20
|
parseISODate,
|
|
15
21
|
presetRange,
|
|
22
|
+
requiredMark,
|
|
23
|
+
root,
|
|
24
|
+
systemThemeClass,
|
|
16
25
|
themeClass,
|
|
17
26
|
themeToStyle,
|
|
18
27
|
toISODate,
|
|
19
28
|
visuallyHidden
|
|
20
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-YYLDXZWR.js";
|
|
21
30
|
|
|
22
31
|
// src/theme/ThemeProvider.tsx
|
|
23
|
-
import { createContext, forwardRef, useContext, useMemo } from "react";
|
|
32
|
+
import { createContext, forwardRef, useContext, useId, useMemo } from "react";
|
|
24
33
|
|
|
25
34
|
// src/theme/ThemeProvider.css.ts
|
|
26
35
|
var portal = "sfyhlv0";
|
|
27
|
-
var
|
|
36
|
+
var root2 = "sfyhlv1 sfyhlv0";
|
|
37
|
+
|
|
38
|
+
// src/theme/useSystemTheme.ts
|
|
39
|
+
import { useSyncExternalStore } from "react";
|
|
40
|
+
var query = "(prefers-color-scheme: dark)";
|
|
41
|
+
var getMediaQuery = () => typeof window !== "undefined" && window.matchMedia ? window.matchMedia(query) : void 0;
|
|
42
|
+
function subscribe(onChange) {
|
|
43
|
+
const mql = getMediaQuery();
|
|
44
|
+
mql?.addEventListener("change", onChange);
|
|
45
|
+
return () => mql?.removeEventListener("change", onChange);
|
|
46
|
+
}
|
|
47
|
+
var noopSubscribe = () => () => {
|
|
48
|
+
};
|
|
49
|
+
var getSnapshot = () => getMediaQuery()?.matches ? "dark" : "light";
|
|
50
|
+
var getLight = () => "light";
|
|
51
|
+
var getServerSnapshot = () => null;
|
|
52
|
+
function useSystemTheme(enabled) {
|
|
53
|
+
return useSyncExternalStore(
|
|
54
|
+
enabled ? subscribe : noopSubscribe,
|
|
55
|
+
enabled ? getSnapshot : getLight,
|
|
56
|
+
enabled ? getServerSnapshot : getLight
|
|
57
|
+
);
|
|
58
|
+
}
|
|
28
59
|
|
|
29
60
|
// src/theme/ThemeProvider.tsx
|
|
30
|
-
import { jsx } from "react/jsx-runtime";
|
|
31
|
-
var ThemeContext = /* @__PURE__ */ createContext({
|
|
61
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
62
|
+
var ThemeContext = /* @__PURE__ */ createContext({
|
|
63
|
+
mode: "light",
|
|
64
|
+
theme: "light",
|
|
65
|
+
pending: false
|
|
66
|
+
});
|
|
67
|
+
var declarations = (style) => (
|
|
68
|
+
// 값은 개발자가 준 테마지만 </style> 로 태그가 끝나지 않게 < 를 CSS 이스케이프로 바꾼다
|
|
69
|
+
Object.entries(style ?? {}).map(([name, value3]) => `${name}:${value3.replace(/</g, "\\3c ")}`).join(";")
|
|
70
|
+
);
|
|
71
|
+
function pendingOverridesCss(selector, theme) {
|
|
72
|
+
const light = declarations(themeToStyle(theme, "light"));
|
|
73
|
+
const dark = declarations(themeToStyle(theme, "dark"));
|
|
74
|
+
if (!light && !dark) return void 0;
|
|
75
|
+
return `${selector}{${light}}@media (prefers-color-scheme: dark){${selector}{${dark}}}`;
|
|
76
|
+
}
|
|
32
77
|
var ThemeProvider = /* @__PURE__ */ forwardRef(function ThemeProvider2({ theme: themeProp, overrides, className, style, children, ...rest }, ref) {
|
|
33
78
|
const parent = useContext(ThemeContext);
|
|
34
|
-
const
|
|
79
|
+
const mode = themeProp ?? parent.mode;
|
|
80
|
+
const system = useSystemTheme(mode === "system");
|
|
81
|
+
const pending = mode === "system" && system === null;
|
|
82
|
+
const theme = mode === "system" ? system ?? "light" : mode;
|
|
35
83
|
const merged = useMemo(() => mergeThemes(parent.overrides, overrides), [parent.overrides, overrides]);
|
|
36
84
|
const value3 = useMemo(
|
|
37
|
-
() => ({ theme, overrides: merged, style: themeToStyle(merged, theme) }),
|
|
38
|
-
[theme, merged]
|
|
85
|
+
() => ({ mode, theme, pending, overrides: merged, style: pending ? void 0 : themeToStyle(merged, theme) }),
|
|
86
|
+
[mode, theme, pending, merged]
|
|
39
87
|
);
|
|
40
|
-
|
|
88
|
+
const id = useId();
|
|
89
|
+
const pendingCss = pending && pendingOverridesCss(`.${systemThemeClass}[data-bestow-theme-id="${id}"]`, merged);
|
|
90
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: value3, children: /* @__PURE__ */ jsxs(
|
|
41
91
|
"div",
|
|
42
92
|
{
|
|
43
93
|
ref,
|
|
44
|
-
"data-theme": theme,
|
|
45
|
-
|
|
94
|
+
"data-theme": pending ? "system" : theme,
|
|
95
|
+
"data-bestow-theme-id": pendingCss ? id : void 0,
|
|
96
|
+
className: cx(pending ? systemThemeClass : themeClass[theme], root2, className),
|
|
46
97
|
style: value3.style ? { ...value3.style, ...style } : style,
|
|
47
98
|
...rest,
|
|
48
|
-
children
|
|
99
|
+
children: [
|
|
100
|
+
pendingCss && /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: pendingCss } }),
|
|
101
|
+
children
|
|
102
|
+
]
|
|
49
103
|
}
|
|
50
104
|
) });
|
|
51
105
|
});
|
|
@@ -53,8 +107,8 @@ function useTheme() {
|
|
|
53
107
|
return useContext(ThemeContext).theme;
|
|
54
108
|
}
|
|
55
109
|
function usePortalProps() {
|
|
56
|
-
const { theme, style } = useContext(ThemeContext);
|
|
57
|
-
return { className: cx(themeClass[theme], portal), style };
|
|
110
|
+
const { theme, pending, style } = useContext(ThemeContext);
|
|
111
|
+
return { className: cx(pending ? systemThemeClass : themeClass[theme], portal), style };
|
|
58
112
|
}
|
|
59
113
|
|
|
60
114
|
// src/i18n/LocaleProvider.tsx
|
|
@@ -81,21 +135,21 @@ var content = "v58j0l5";
|
|
|
81
135
|
var contentInner = "v58j0l6";
|
|
82
136
|
var header = "v58j0l2";
|
|
83
137
|
var item = "v58j0l1";
|
|
84
|
-
var
|
|
138
|
+
var root3 = "v58j0l0";
|
|
85
139
|
var trigger = "v58j0l3";
|
|
86
140
|
|
|
87
141
|
// src/components/Accordion/Accordion.tsx
|
|
88
|
-
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
142
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
89
143
|
var Accordion = /* @__PURE__ */ forwardRef2(function Accordion2({ className, ...props }, ref) {
|
|
90
144
|
const { collapsible, ...multipleProps } = props;
|
|
91
145
|
const typedProps = props.type === "multiple" ? multipleProps : { ...multipleProps, collapsible };
|
|
92
146
|
const rootProps = "value" in props ? { ...typedProps, value: props.value ?? (props.type === "multiple" ? [] : "") } : typedProps;
|
|
93
|
-
return /* @__PURE__ */ jsx3(RadixAccordion.Root, { ref, className: cx(
|
|
147
|
+
return /* @__PURE__ */ jsx3(RadixAccordion.Root, { ref, className: cx(root3, className), ...rootProps });
|
|
94
148
|
});
|
|
95
149
|
var AccordionItem = /* @__PURE__ */ forwardRef2(function AccordionItem2({ title: title6, headingLevel = 3, className, children, ...rest }, ref) {
|
|
96
150
|
const Heading = `h${headingLevel}`;
|
|
97
|
-
return /* @__PURE__ */
|
|
98
|
-
/* @__PURE__ */ jsx3(RadixAccordion.Header, { asChild: true, children: /* @__PURE__ */ jsx3(Heading, { className: header, children: /* @__PURE__ */
|
|
151
|
+
return /* @__PURE__ */ jsxs2(RadixAccordion.Item, { ref, className: cx(item, className), ...rest, children: [
|
|
152
|
+
/* @__PURE__ */ jsx3(RadixAccordion.Header, { asChild: true, children: /* @__PURE__ */ jsx3(Heading, { className: header, children: /* @__PURE__ */ jsxs2(RadixAccordion.Trigger, { className: trigger, children: [
|
|
99
153
|
title6,
|
|
100
154
|
/* @__PURE__ */ jsx3(ChevronDownIcon, { size: 18, className: chevron })
|
|
101
155
|
] }) }) }),
|
|
@@ -104,7 +158,7 @@ var AccordionItem = /* @__PURE__ */ forwardRef2(function AccordionItem2({ title:
|
|
|
104
158
|
});
|
|
105
159
|
|
|
106
160
|
// src/components/AddressInput/AddressInput.tsx
|
|
107
|
-
import { forwardRef as forwardRef7, useEffect, useId as
|
|
161
|
+
import { forwardRef as forwardRef7, useEffect, useId as useId3, useRef as useRef2, useState } from "react";
|
|
108
162
|
|
|
109
163
|
// src/components/Button/Button.tsx
|
|
110
164
|
import { forwardRef as forwardRef4 } from "react";
|
|
@@ -118,12 +172,12 @@ import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntim
|
|
|
118
172
|
var spinner = /* @__PURE__ */ _7a468({ defaultClassName: "_4b5tg40", variantClassNames: { color: { inherit: "_4b5tg41", primary: "_4b5tg42", neutral: "_4b5tg43", danger: "_4b5tg44" }, size: { sm: "_4b5tg45", md: "_4b5tg46", lg: "_4b5tg47" } }, defaultVariants: { color: "inherit", size: "md" }, compoundVariants: [] });
|
|
119
173
|
|
|
120
174
|
// src/components/Spinner/Spinner.tsx
|
|
121
|
-
import { jsx as jsx4, jsxs as
|
|
175
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
122
176
|
var Spinner = /* @__PURE__ */ forwardRef3(function Spinner2({ size, color, label: labelProp, className, ...rest }, ref) {
|
|
123
177
|
const m = useMessages();
|
|
124
178
|
const label6 = labelProp ?? m.loading ?? "\uB85C\uB529 \uC911";
|
|
125
179
|
const a11y = label6 ? { role: "status" } : { "aria-hidden": true };
|
|
126
|
-
return /* @__PURE__ */
|
|
180
|
+
return /* @__PURE__ */ jsxs3("span", { ref, className: cx(spinner({ size, color }), className), ...a11y, ...rest, children: [
|
|
127
181
|
/* @__PURE__ */ jsx4(LoaderIcon, { size: "100%" }),
|
|
128
182
|
label6 && /* @__PURE__ */ jsx4("span", { className: visuallyHidden, children: label6 })
|
|
129
183
|
] });
|
|
@@ -135,7 +189,7 @@ var button = /* @__PURE__ */ _7a4682({ defaultClassName: "xcekda6", variantClass
|
|
|
135
189
|
var icon = "xcekdai";
|
|
136
190
|
|
|
137
191
|
// src/components/Button/Button.tsx
|
|
138
|
-
import { jsx as jsx5, jsxs as
|
|
192
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
139
193
|
var Button = /* @__PURE__ */ forwardRef4(function Button2({
|
|
140
194
|
variant,
|
|
141
195
|
color,
|
|
@@ -158,7 +212,7 @@ var Button = /* @__PURE__ */ forwardRef4(function Button2({
|
|
|
158
212
|
onClick?.(event);
|
|
159
213
|
};
|
|
160
214
|
const leading = loading ? /* @__PURE__ */ jsx5(Spinner, { size: "sm", label: "" }) : startIcon;
|
|
161
|
-
return /* @__PURE__ */
|
|
215
|
+
return /* @__PURE__ */ jsxs4(
|
|
162
216
|
"button",
|
|
163
217
|
{
|
|
164
218
|
ref,
|
|
@@ -177,25 +231,14 @@ var Button = /* @__PURE__ */ forwardRef4(function Button2({
|
|
|
177
231
|
);
|
|
178
232
|
});
|
|
179
233
|
|
|
180
|
-
// src/components/Input/Input.css.ts
|
|
181
|
-
import { createRuntimeFn as _7a4683 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
182
|
-
var adornment = "_19p5zvh6";
|
|
183
|
-
var field = "_19p5zvh7";
|
|
184
|
-
var fieldFullWidth = "_19p5zvh8";
|
|
185
|
-
var helperText = /* @__PURE__ */ _7a4683({ defaultClassName: "_19p5zvhb", variantClassNames: { error: { true: "_19p5zvhc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
186
|
-
var input = "_19p5zvh5";
|
|
187
|
-
var label = "_19p5zvh9";
|
|
188
|
-
var requiredMark = "_19p5zvha";
|
|
189
|
-
var root3 = /* @__PURE__ */ _7a4683({ defaultClassName: "_19p5zvh0", variantClassNames: { size: { sm: "_19p5zvh1", md: "_19p5zvh2", lg: "_19p5zvh3" }, fullWidth: { true: "_19p5zvh4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
190
|
-
|
|
191
234
|
// src/components/Input/Input.tsx
|
|
192
235
|
import { forwardRef as forwardRef5 } from "react";
|
|
193
|
-
import { jsx as jsx6, jsxs as
|
|
236
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
194
237
|
var Input = /* @__PURE__ */ forwardRef5(function Input2({ size, invalid, fullWidth, startAdornment, endAdornment, rootClassName, className, disabled, ...rest }, ref) {
|
|
195
|
-
return /* @__PURE__ */
|
|
238
|
+
return /* @__PURE__ */ jsxs5(
|
|
196
239
|
"div",
|
|
197
240
|
{
|
|
198
|
-
className: cx(
|
|
241
|
+
className: cx(root({ size, fullWidth }), rootClassName),
|
|
199
242
|
"data-invalid": invalid || void 0,
|
|
200
243
|
"data-disabled": disabled || void 0,
|
|
201
244
|
children: [
|
|
@@ -217,14 +260,14 @@ var Input = /* @__PURE__ */ forwardRef5(function Input2({ size, invalid, fullWid
|
|
|
217
260
|
});
|
|
218
261
|
|
|
219
262
|
// src/components/Input/TextField.tsx
|
|
220
|
-
import { forwardRef as forwardRef6, useId } from "react";
|
|
221
|
-
import { jsx as jsx7, jsxs as
|
|
263
|
+
import { forwardRef as forwardRef6, useId as useId2 } from "react";
|
|
264
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
222
265
|
var TextField = /* @__PURE__ */ forwardRef6(function TextField2({ label: label6, helperText: helperText3, error, required, fullWidth, id, "aria-describedby": ariaDescribedBy, ...rest }, ref) {
|
|
223
|
-
const generatedId =
|
|
266
|
+
const generatedId = useId2();
|
|
224
267
|
const inputId = id ?? generatedId;
|
|
225
268
|
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
226
|
-
return /* @__PURE__ */
|
|
227
|
-
label6 && /* @__PURE__ */
|
|
269
|
+
return /* @__PURE__ */ jsxs6("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
270
|
+
label6 && /* @__PURE__ */ jsxs6("label", { htmlFor: inputId, className: label, children: [
|
|
228
271
|
label6,
|
|
229
272
|
required && /* @__PURE__ */ jsx7("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
230
273
|
] }),
|
|
@@ -272,10 +315,10 @@ function useReturnFocus(hasTrigger, onCloseAutoFocus) {
|
|
|
272
315
|
}
|
|
273
316
|
|
|
274
317
|
// src/components/Modal/Modal.css.ts
|
|
275
|
-
import { createRuntimeFn as
|
|
318
|
+
import { createRuntimeFn as _7a4683 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
276
319
|
var body = "_1pdsmv0a";
|
|
277
320
|
var closeButton = "_1pdsmv09";
|
|
278
|
-
var content2 = /* @__PURE__ */
|
|
321
|
+
var content2 = /* @__PURE__ */ _7a4683({ defaultClassName: "_1pdsmv01", variantClassNames: { size: { sm: "_1pdsmv02", md: "_1pdsmv03", lg: "_1pdsmv04" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
279
322
|
var description = "_1pdsmv08";
|
|
280
323
|
var footer = "_1pdsmv0b";
|
|
281
324
|
var header2 = "_1pdsmv05";
|
|
@@ -284,14 +327,14 @@ var overlay = "_1pdsmv00";
|
|
|
284
327
|
var title = "_1pdsmv07";
|
|
285
328
|
|
|
286
329
|
// src/components/Modal/Modal.tsx
|
|
287
|
-
import { jsx as jsx8, jsxs as
|
|
330
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
288
331
|
function Modal({
|
|
289
332
|
open,
|
|
290
333
|
defaultOpen,
|
|
291
334
|
onOpenChange,
|
|
292
335
|
trigger: trigger4,
|
|
293
336
|
title: title6,
|
|
294
|
-
description:
|
|
337
|
+
description: description8,
|
|
295
338
|
children,
|
|
296
339
|
footer: footer5,
|
|
297
340
|
size,
|
|
@@ -303,11 +346,11 @@ function Modal({
|
|
|
303
346
|
const portal2 = usePortalProps();
|
|
304
347
|
const m = useMessages();
|
|
305
348
|
const focus = useReturnFocus(Boolean(trigger4), onCloseAutoFocus);
|
|
306
|
-
return /* @__PURE__ */
|
|
349
|
+
return /* @__PURE__ */ jsxs7(Dialog.Root, { open, defaultOpen, onOpenChange, children: [
|
|
307
350
|
trigger4 && /* @__PURE__ */ jsx8(Dialog.Trigger, { asChild: true, children: trigger4 }),
|
|
308
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ jsxs7(Dialog.Portal, { children: [
|
|
309
352
|
/* @__PURE__ */ jsx8(Dialog.Overlay, { className: cx(portal2.className, overlay), style: portal2.style }),
|
|
310
|
-
/* @__PURE__ */
|
|
353
|
+
/* @__PURE__ */ jsxs7(
|
|
311
354
|
Dialog.Content,
|
|
312
355
|
{
|
|
313
356
|
className: cx(portal2.className, content2({ size }), className),
|
|
@@ -315,12 +358,12 @@ function Modal({
|
|
|
315
358
|
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
316
359
|
onOpenAutoFocus: focus.onOpenAutoFocus,
|
|
317
360
|
onCloseAutoFocus: focus.onCloseAutoFocus,
|
|
318
|
-
...
|
|
361
|
+
...description8 ? {} : { "aria-describedby": void 0 },
|
|
319
362
|
children: [
|
|
320
|
-
/* @__PURE__ */
|
|
321
|
-
/* @__PURE__ */
|
|
363
|
+
/* @__PURE__ */ jsxs7("div", { className: header2, children: [
|
|
364
|
+
/* @__PURE__ */ jsxs7("div", { className: headings, children: [
|
|
322
365
|
/* @__PURE__ */ jsx8(Dialog.Title, { className: title, children: title6 }),
|
|
323
|
-
|
|
366
|
+
description8 && /* @__PURE__ */ jsx8(Dialog.Description, { className: description, children: description8 })
|
|
324
367
|
] }),
|
|
325
368
|
!hideCloseButton && /* @__PURE__ */ jsx8(Dialog.Close, { className: closeButton, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ jsx8(XIcon, { size: 16 }) })
|
|
326
369
|
] }),
|
|
@@ -343,7 +386,7 @@ var searchStatus = "_16fi7uy5";
|
|
|
343
386
|
var zonecode = "_16fi7uy3";
|
|
344
387
|
|
|
345
388
|
// src/components/AddressInput/AddressInput.tsx
|
|
346
|
-
import { Fragment, jsx as jsx9, jsxs as
|
|
389
|
+
import { Fragment, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
347
390
|
var EMPTY = { zonecode: "", address: "", extraAddress: "", detail: "" };
|
|
348
391
|
function SearchArea({
|
|
349
392
|
provider,
|
|
@@ -374,7 +417,7 @@ function SearchArea({
|
|
|
374
417
|
cleanup?.();
|
|
375
418
|
};
|
|
376
419
|
}, [provider]);
|
|
377
|
-
return /* @__PURE__ */
|
|
420
|
+
return /* @__PURE__ */ jsxs8("div", { className: searchArea, children: [
|
|
378
421
|
/* @__PURE__ */ jsx9("div", { ref: containerRef, style: { width: "100%", height: "100%" } }),
|
|
379
422
|
status !== "ready" && /* @__PURE__ */ jsx9("div", { className: searchStatus, role: "status", children: status === "loading" ? /* @__PURE__ */ jsx9(Spinner, { label: loadingText }) : loadErrorText })
|
|
380
423
|
] });
|
|
@@ -402,7 +445,7 @@ var AddressInput = /* @__PURE__ */ forwardRef7(
|
|
|
402
445
|
const searchLabel = searchLabelProp ?? m.addressSearch ?? "\uC8FC\uC18C \uAC80\uC0C9";
|
|
403
446
|
const detailPlaceholder = detailPlaceholderProp ?? m.detailAddressPlaceholder ?? "\uC0C1\uC138 \uC8FC\uC18C (\uB3D9\xB7\uD638\uC218 \uB4F1)";
|
|
404
447
|
const loadErrorText = loadErrorTextProp ?? m.addressLoadError ?? "\uC8FC\uC18C \uAC80\uC0C9\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC5B4\uC694. \uC7A0\uC2DC \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.";
|
|
405
|
-
const baseId =
|
|
448
|
+
const baseId = useId3();
|
|
406
449
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
407
450
|
const detailRef = useRef2(null);
|
|
408
451
|
const selectedRef = useRef2(false);
|
|
@@ -430,12 +473,12 @@ var AddressInput = /* @__PURE__ */ forwardRef7(
|
|
|
430
473
|
setOpen(false);
|
|
431
474
|
};
|
|
432
475
|
const fullAddress = `${current2.address}${current2.extraAddress ?? ""}`;
|
|
433
|
-
return /* @__PURE__ */
|
|
434
|
-
/* @__PURE__ */
|
|
476
|
+
return /* @__PURE__ */ jsxs8("fieldset", { ref, className: cx(fieldset, className), disabled, "aria-describedby": helperId, children: [
|
|
477
|
+
/* @__PURE__ */ jsxs8("legend", { className: legend, children: [
|
|
435
478
|
label6,
|
|
436
479
|
required && /* @__PURE__ */ jsx9("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
437
480
|
] }),
|
|
438
|
-
/* @__PURE__ */
|
|
481
|
+
/* @__PURE__ */ jsxs8("div", { className: row, children: [
|
|
439
482
|
/* @__PURE__ */ jsx9(
|
|
440
483
|
TextField,
|
|
441
484
|
{
|
|
@@ -477,7 +520,7 @@ var AddressInput = /* @__PURE__ */ forwardRef7(
|
|
|
477
520
|
}
|
|
478
521
|
),
|
|
479
522
|
helperText3 && /* @__PURE__ */ jsx9("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
480
|
-
name && /* @__PURE__ */
|
|
523
|
+
name && /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
481
524
|
/* @__PURE__ */ jsx9("input", { type: "hidden", name: `${name}[zonecode]`, value: current2.zonecode }),
|
|
482
525
|
/* @__PURE__ */ jsx9("input", { type: "hidden", name: `${name}[address]`, value: fullAddress }),
|
|
483
526
|
/* @__PURE__ */ jsx9("input", { type: "hidden", name: `${name}[detail]`, value: current2.detail })
|
|
@@ -511,7 +554,7 @@ var AddressInput = /* @__PURE__ */ forwardRef7(
|
|
|
511
554
|
);
|
|
512
555
|
|
|
513
556
|
// src/components/AgreementGroup/AgreementGroup.tsx
|
|
514
|
-
import { forwardRef as forwardRef9, useId as
|
|
557
|
+
import { forwardRef as forwardRef9, useId as useId4, useState as useState2 } from "react";
|
|
515
558
|
import { ChevronDownIcon as ChevronDownIcon2 } from "@bestow-ui/icons";
|
|
516
559
|
|
|
517
560
|
// src/components/Checkbox/Checkbox.tsx
|
|
@@ -528,22 +571,22 @@ function mergeRefs(...refs) {
|
|
|
528
571
|
}
|
|
529
572
|
|
|
530
573
|
// src/components/Checkbox/Checkbox.css.ts
|
|
531
|
-
import { createRuntimeFn as
|
|
574
|
+
import { createRuntimeFn as _7a4684 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
532
575
|
var checkIcon = "_1y7mzsn8 _1y7mzsn7";
|
|
533
|
-
var control = /* @__PURE__ */
|
|
576
|
+
var control = /* @__PURE__ */ _7a4684({ defaultClassName: "_1y7mzsn3", variantClassNames: { size: { sm: "_1y7mzsn4", md: "_1y7mzsn5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
534
577
|
var indeterminateIcon = "_1y7mzsn9 _1y7mzsn7";
|
|
535
578
|
var input2 = "_1y7mzsn6";
|
|
536
|
-
var root4 = /* @__PURE__ */
|
|
579
|
+
var root4 = /* @__PURE__ */ _7a4684({ defaultClassName: "_1y7mzsn0", variantClassNames: { size: { sm: "_1y7mzsn1", md: "_1y7mzsn2" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
537
580
|
|
|
538
581
|
// src/components/Checkbox/Checkbox.tsx
|
|
539
|
-
import { jsx as jsx10, jsxs as
|
|
582
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
540
583
|
var Checkbox = /* @__PURE__ */ forwardRef8(function Checkbox2({ label: label6, size, indeterminate = false, invalid, disabled, onChange, onCheckedChange, className, ...rest }, ref) {
|
|
541
584
|
const innerRef = useRef3(null);
|
|
542
585
|
useEffect2(() => {
|
|
543
586
|
if (innerRef.current) innerRef.current.indeterminate = indeterminate;
|
|
544
587
|
}, [indeterminate]);
|
|
545
|
-
return /* @__PURE__ */
|
|
546
|
-
/* @__PURE__ */
|
|
588
|
+
return /* @__PURE__ */ jsxs9("label", { className: cx(root4({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
589
|
+
/* @__PURE__ */ jsxs9("span", { className: control({ size }), children: [
|
|
547
590
|
/* @__PURE__ */ jsx10(
|
|
548
591
|
"input",
|
|
549
592
|
{
|
|
@@ -589,11 +632,11 @@ var tag = "j3uxdc7";
|
|
|
589
632
|
var toggle = "j3uxdc8";
|
|
590
633
|
|
|
591
634
|
// src/components/AgreementGroup/AgreementGroup.tsx
|
|
592
|
-
import { jsx as jsx11, jsxs as
|
|
635
|
+
import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
593
636
|
var AgreementGroup = /* @__PURE__ */ forwardRef9(
|
|
594
637
|
function AgreementGroup2(props, ref) {
|
|
595
638
|
const {
|
|
596
|
-
items:
|
|
639
|
+
items: items3,
|
|
597
640
|
value: value3,
|
|
598
641
|
defaultValue,
|
|
599
642
|
onValueChange,
|
|
@@ -616,7 +659,7 @@ var AgreementGroup = /* @__PURE__ */ forwardRef9(
|
|
|
616
659
|
const optionalText = optionalTextProp ?? m.optional ?? "\uC120\uD0DD";
|
|
617
660
|
const showText = showTextProp ?? m.show ?? "\uBCF4\uAE30";
|
|
618
661
|
const hideText = hideTextProp ?? m.hide ?? "\uC811\uAE30";
|
|
619
|
-
const baseId =
|
|
662
|
+
const baseId = useId4();
|
|
620
663
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
621
664
|
const isControlled = "value" in props;
|
|
622
665
|
const [innerValue, setInnerValue] = useState2(defaultValue ?? []);
|
|
@@ -626,11 +669,11 @@ var AgreementGroup = /* @__PURE__ */ forwardRef9(
|
|
|
626
669
|
if (!isControlled) setInnerValue(next);
|
|
627
670
|
onValueChange?.(next);
|
|
628
671
|
};
|
|
629
|
-
const allValues =
|
|
672
|
+
const allValues = items3.map((item9) => item9.value);
|
|
630
673
|
const agreedCount = allValues.filter((v) => agreed.includes(v)).length;
|
|
631
|
-
const allChecked =
|
|
674
|
+
const allChecked = items3.length > 0 && agreedCount === items3.length;
|
|
632
675
|
const toggleItem = (itemValue, checked) => update(checked ? [...agreed.filter((v) => v !== itemValue), itemValue] : agreed.filter((v) => v !== itemValue));
|
|
633
|
-
return /* @__PURE__ */
|
|
676
|
+
return /* @__PURE__ */ jsxs10(
|
|
634
677
|
"fieldset",
|
|
635
678
|
{
|
|
636
679
|
ref,
|
|
@@ -641,7 +684,7 @@ var AgreementGroup = /* @__PURE__ */ forwardRef9(
|
|
|
641
684
|
"data-invalid": error || void 0,
|
|
642
685
|
children: [
|
|
643
686
|
label6 && /* @__PURE__ */ jsx11("legend", { className: legend2, children: label6 }),
|
|
644
|
-
/* @__PURE__ */
|
|
687
|
+
/* @__PURE__ */ jsxs10("div", { className: box, children: [
|
|
645
688
|
/* @__PURE__ */ jsx11("div", { className: all, children: /* @__PURE__ */ jsx11(
|
|
646
689
|
Checkbox,
|
|
647
690
|
{
|
|
@@ -651,13 +694,13 @@ var AgreementGroup = /* @__PURE__ */ forwardRef9(
|
|
|
651
694
|
onChange: (event) => update(event.target.checked ? allValues : [])
|
|
652
695
|
}
|
|
653
696
|
) }),
|
|
654
|
-
/* @__PURE__ */ jsx11("ul", { className: list, children:
|
|
697
|
+
/* @__PURE__ */ jsx11("ul", { className: list, children: items3.map((item9) => {
|
|
655
698
|
const labelId = `${baseId}-${item9.value}-label`;
|
|
656
699
|
const toggleTextId = `${baseId}-${item9.value}-toggle`;
|
|
657
700
|
const contentId = `${baseId}-${item9.value}-content`;
|
|
658
701
|
const isOpen = expanded.includes(item9.value);
|
|
659
|
-
return /* @__PURE__ */
|
|
660
|
-
/* @__PURE__ */
|
|
702
|
+
return /* @__PURE__ */ jsxs10("li", { className: item2, children: [
|
|
703
|
+
/* @__PURE__ */ jsxs10("div", { className: row2, children: [
|
|
661
704
|
/* @__PURE__ */ jsx11(
|
|
662
705
|
Checkbox,
|
|
663
706
|
{
|
|
@@ -665,14 +708,14 @@ var AgreementGroup = /* @__PURE__ */ forwardRef9(
|
|
|
665
708
|
checked: agreed.includes(item9.value),
|
|
666
709
|
invalid: error && item9.required && !agreed.includes(item9.value),
|
|
667
710
|
onChange: (event) => toggleItem(item9.value, event.target.checked),
|
|
668
|
-
label: /* @__PURE__ */
|
|
711
|
+
label: /* @__PURE__ */ jsxs10("span", { id: labelId, children: [
|
|
669
712
|
/* @__PURE__ */ jsx11("span", { className: tag, "data-required": item9.required || void 0, children: item9.required ? requiredText : optionalText }),
|
|
670
713
|
" ",
|
|
671
714
|
item9.label
|
|
672
715
|
] })
|
|
673
716
|
}
|
|
674
717
|
),
|
|
675
|
-
item9.content && /* @__PURE__ */
|
|
718
|
+
item9.content && /* @__PURE__ */ jsxs10(
|
|
676
719
|
"button",
|
|
677
720
|
{
|
|
678
721
|
type: "button",
|
|
@@ -707,23 +750,24 @@ import { forwardRef as forwardRef10 } from "react";
|
|
|
707
750
|
import { CircleAlertIcon, CircleCheckIcon, InfoIcon, TriangleAlertIcon, XIcon as XIcon2 } from "@bestow-ui/icons";
|
|
708
751
|
|
|
709
752
|
// src/components/Alert/Alert.css.ts
|
|
710
|
-
import { createRuntimeFn as
|
|
711
|
-
var action = "
|
|
712
|
-
var alert = /* @__PURE__ */
|
|
713
|
-
var closeButton2 = "
|
|
714
|
-
var content4 = "
|
|
715
|
-
var description2 = "
|
|
716
|
-
var icon2 = "
|
|
717
|
-
var title2 = "
|
|
753
|
+
import { createRuntimeFn as _7a4685 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
754
|
+
var action = "bsmpc0k";
|
|
755
|
+
var alert = /* @__PURE__ */ _7a4685({ defaultClassName: "bsmpc06", variantClassNames: { variant: { soft: "bsmpc07", outline: "bsmpc08", solid: "bsmpc09" }, color: { primary: "bsmpc0a", neutral: "bsmpc0b", danger: "bsmpc0c", success: "bsmpc0d", warning: "bsmpc0e", info: "bsmpc0f" } }, defaultVariants: { variant: "soft", color: "primary" }, compoundVariants: [] });
|
|
756
|
+
var closeButton2 = "bsmpc0l";
|
|
757
|
+
var content4 = "bsmpc0h";
|
|
758
|
+
var description2 = "bsmpc0j";
|
|
759
|
+
var icon2 = "bsmpc0g";
|
|
760
|
+
var title2 = "bsmpc0i";
|
|
718
761
|
|
|
719
762
|
// src/components/Alert/Alert.tsx
|
|
720
|
-
import { jsx as jsx12, jsxs as
|
|
763
|
+
import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
721
764
|
var defaultIcons = {
|
|
722
765
|
primary: InfoIcon,
|
|
723
766
|
neutral: InfoIcon,
|
|
724
767
|
success: CircleCheckIcon,
|
|
725
768
|
warning: TriangleAlertIcon,
|
|
726
|
-
danger: CircleAlertIcon
|
|
769
|
+
danger: CircleAlertIcon,
|
|
770
|
+
info: InfoIcon
|
|
727
771
|
};
|
|
728
772
|
var Alert = /* @__PURE__ */ forwardRef10(function Alert2({
|
|
729
773
|
variant,
|
|
@@ -741,9 +785,9 @@ var Alert = /* @__PURE__ */ forwardRef10(function Alert2({
|
|
|
741
785
|
const closeLabel = closeLabelProp ?? m.close ?? "\uB2EB\uAE30";
|
|
742
786
|
const DefaultIcon = defaultIcons[color];
|
|
743
787
|
const iconNode = icon7 === void 0 ? /* @__PURE__ */ jsx12(DefaultIcon, { size: 18 }) : icon7;
|
|
744
|
-
return /* @__PURE__ */
|
|
788
|
+
return /* @__PURE__ */ jsxs11("div", { ref, className: cx(alert({ variant, color }), className), ...rest, children: [
|
|
745
789
|
iconNode !== false && iconNode !== null && /* @__PURE__ */ jsx12("span", { className: icon2, "aria-hidden": true, children: iconNode }),
|
|
746
|
-
/* @__PURE__ */
|
|
790
|
+
/* @__PURE__ */ jsxs11("div", { className: content4, children: [
|
|
747
791
|
title6 && /* @__PURE__ */ jsx12("div", { className: title2, children: title6 }),
|
|
748
792
|
children && /* @__PURE__ */ jsx12("div", { className: description2, children })
|
|
749
793
|
] }),
|
|
@@ -830,7 +874,7 @@ function useFormattedInput({
|
|
|
830
874
|
var input3 = "_70qkav0";
|
|
831
875
|
|
|
832
876
|
// src/components/AmountInput/AmountInput.tsx
|
|
833
|
-
import { Fragment as Fragment2, jsx as jsx13, jsxs as
|
|
877
|
+
import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
834
878
|
var MAX_DIGITS = 15;
|
|
835
879
|
var isDigit = (char) => /\d/.test(char);
|
|
836
880
|
var AmountInput = /* @__PURE__ */ forwardRef11(
|
|
@@ -884,7 +928,7 @@ var AmountInput = /* @__PURE__ */ forwardRef11(
|
|
|
884
928
|
onKeyDown?.(event);
|
|
885
929
|
},
|
|
886
930
|
endAdornment: unit2,
|
|
887
|
-
helperText: reading && helperText3 ? /* @__PURE__ */
|
|
931
|
+
helperText: reading && helperText3 ? /* @__PURE__ */ jsxs12(Fragment2, { children: [
|
|
888
932
|
reading,
|
|
889
933
|
/* @__PURE__ */ jsx13("br", {}),
|
|
890
934
|
helperText3
|
|
@@ -902,13 +946,13 @@ import { UserIcon } from "@bestow-ui/icons";
|
|
|
902
946
|
import { forwardRef as forwardRef12 } from "react";
|
|
903
947
|
|
|
904
948
|
// src/components/Avatar/Avatar.css.ts
|
|
905
|
-
import { createRuntimeFn as
|
|
949
|
+
import { createRuntimeFn as _7a4686 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
906
950
|
var fallback = "_1fd2kp27";
|
|
907
951
|
var image = "_1fd2kp26";
|
|
908
|
-
var root5 = /* @__PURE__ */
|
|
952
|
+
var root5 = /* @__PURE__ */ _7a4686({ defaultClassName: "_1fd2kp20", variantClassNames: { size: { sm: "_1fd2kp21", md: "_1fd2kp22", lg: "_1fd2kp23" }, shape: { circle: "_1fd2kp24", square: "_1fd2kp25" } }, defaultVariants: { size: "md", shape: "circle" }, compoundVariants: [] });
|
|
909
953
|
|
|
910
954
|
// src/components/Avatar/Avatar.tsx
|
|
911
|
-
import { jsx as jsx14, jsxs as
|
|
955
|
+
import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
912
956
|
function getInitials(name) {
|
|
913
957
|
const [a = "", b = ""] = name.trim().split(/\s+/);
|
|
914
958
|
const first = (word) => Array.from(word)[0] ?? "";
|
|
@@ -918,7 +962,7 @@ var Avatar = /* @__PURE__ */ forwardRef12(function Avatar2({ src, alt, name, fal
|
|
|
918
962
|
const label6 = alt ?? name;
|
|
919
963
|
const a11y = label6 ? { role: "img", "aria-label": label6 } : { "aria-hidden": true };
|
|
920
964
|
const initials = name ? getInitials(name) : "";
|
|
921
|
-
return /* @__PURE__ */
|
|
965
|
+
return /* @__PURE__ */ jsxs13(RadixAvatar.Root, { ref, className: cx(root5({ size, shape }), className), ...a11y, ...rest, children: [
|
|
922
966
|
src && /* @__PURE__ */ jsx14(RadixAvatar.Image, { src, alt: "", className: image }),
|
|
923
967
|
/* @__PURE__ */ jsx14(RadixAvatar.Fallback, { className: fallback, children: fallback2 ?? (initials || /* @__PURE__ */ jsx14(UserIcon, { size: "60%" })) })
|
|
924
968
|
] });
|
|
@@ -934,12 +978,12 @@ import { forwardRef as forwardRef13 } from "react";
|
|
|
934
978
|
import { ExternalLinkIcon } from "@bestow-ui/icons";
|
|
935
979
|
|
|
936
980
|
// src/components/Link/Link.css.ts
|
|
937
|
-
import { createRuntimeFn as
|
|
981
|
+
import { createRuntimeFn as _7a4687 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
938
982
|
var externalIcon = "_1t4hlp6";
|
|
939
|
-
var link = /* @__PURE__ */
|
|
983
|
+
var link = /* @__PURE__ */ _7a4687({ defaultClassName: "_1t4hlp0", variantClassNames: { color: { primary: "_1t4hlp1", neutral: "_1t4hlp2", inherit: "_1t4hlp3" }, underline: { always: "_1t4hlp4", hover: "_1t4hlp5" } }, defaultVariants: { color: "primary", underline: "always" }, compoundVariants: [] });
|
|
940
984
|
|
|
941
985
|
// src/components/Link/Link.tsx
|
|
942
|
-
import { Fragment as Fragment3, jsx as jsx15, jsxs as
|
|
986
|
+
import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
943
987
|
var Link = /* @__PURE__ */ forwardRef13(function Link2({
|
|
944
988
|
as: Component = "a",
|
|
945
989
|
asChild,
|
|
@@ -962,7 +1006,7 @@ var Link = /* @__PURE__ */ forwardRef13(function Link2({
|
|
|
962
1006
|
/* @__PURE__ */ jsx15(Slot, { ref, className: linkClassName, ...{ target, rel, ...rest }, children })
|
|
963
1007
|
);
|
|
964
1008
|
}
|
|
965
|
-
return /* @__PURE__ */
|
|
1009
|
+
return /* @__PURE__ */ jsxs14(
|
|
966
1010
|
Component,
|
|
967
1011
|
{
|
|
968
1012
|
ref,
|
|
@@ -972,7 +1016,7 @@ var Link = /* @__PURE__ */ forwardRef13(function Link2({
|
|
|
972
1016
|
...rest,
|
|
973
1017
|
children: [
|
|
974
1018
|
children,
|
|
975
|
-
external && /* @__PURE__ */
|
|
1019
|
+
external && /* @__PURE__ */ jsxs14(Fragment3, { children: [
|
|
976
1020
|
" ",
|
|
977
1021
|
/* @__PURE__ */ jsx15(ExternalLinkIcon, { className: externalIcon }),
|
|
978
1022
|
/* @__PURE__ */ jsx15("span", { className: visuallyHidden, children: externalLabel })
|
|
@@ -990,14 +1034,14 @@ var list2 = "_18t8ztt0";
|
|
|
990
1034
|
var separator = "_18t8ztt4";
|
|
991
1035
|
|
|
992
1036
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
993
|
-
import { jsx as jsx16, jsxs as
|
|
994
|
-
var Breadcrumb = /* @__PURE__ */ forwardRef14(function Breadcrumb2({ items:
|
|
1037
|
+
import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1038
|
+
var Breadcrumb = /* @__PURE__ */ forwardRef14(function Breadcrumb2({ items: items3, linkAs, separator: separator5, "aria-label": ariaLabelProp, className, ...rest }, ref) {
|
|
995
1039
|
const m = useMessages();
|
|
996
1040
|
const ariaLabel = ariaLabelProp ?? m.breadcrumb ?? "\uC774\uB3D9 \uACBD\uB85C";
|
|
997
|
-
const sep =
|
|
998
|
-
return /* @__PURE__ */ jsx16("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsx16("ol", { className: list2, children:
|
|
999
|
-
const isCurrent = index ===
|
|
1000
|
-
return /* @__PURE__ */
|
|
1041
|
+
const sep = separator5 ?? /* @__PURE__ */ jsx16(ChevronRightIcon, { size: 14 });
|
|
1042
|
+
return /* @__PURE__ */ jsx16("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsx16("ol", { className: list2, children: items3.map((item9, index) => {
|
|
1043
|
+
const isCurrent = index === items3.length - 1;
|
|
1044
|
+
return /* @__PURE__ */ jsxs15("li", { className: item3, children: [
|
|
1001
1045
|
index > 0 && /* @__PURE__ */ jsx16("span", { className: separator, "aria-hidden": true, children: sep }),
|
|
1002
1046
|
isCurrent || item9.href === void 0 ? /* @__PURE__ */ jsx16("span", { className: isCurrent ? current : void 0, "aria-current": isCurrent ? "page" : void 0, children: item9.label }) : /* @__PURE__ */ jsx16(Link, { as: linkAs, href: item9.href, color: "neutral", underline: "hover", className: link2, children: item9.label })
|
|
1003
1047
|
] }, index);
|
|
@@ -1021,7 +1065,7 @@ function useDelayedAnnouncement(message, delay = ANNOUNCE_DELAY) {
|
|
|
1021
1065
|
}
|
|
1022
1066
|
|
|
1023
1067
|
// src/components/BusinessNumberInput/BusinessNumberInput.tsx
|
|
1024
|
-
import { Fragment as Fragment4, jsx as jsx17, jsxs as
|
|
1068
|
+
import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1025
1069
|
var sanitize = (input6) => input6.replace(/\D/g, "").slice(0, 10);
|
|
1026
1070
|
var isDigit2 = (char) => /\d/.test(char);
|
|
1027
1071
|
var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
@@ -1060,7 +1104,7 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
|
1060
1104
|
const autoInvalid = validate && field4.raw.length > 0 && (complete ? !isValidBusinessNumber(field4.raw) : touched);
|
|
1061
1105
|
const showAuto = autoInvalid && error === void 0;
|
|
1062
1106
|
const announcement = useDelayedAnnouncement(showAuto && complete ? invalidText : "");
|
|
1063
|
-
return /* @__PURE__ */
|
|
1107
|
+
return /* @__PURE__ */ jsxs16(Fragment4, { children: [
|
|
1064
1108
|
/* @__PURE__ */ jsx17(
|
|
1065
1109
|
TextField,
|
|
1066
1110
|
{
|
|
@@ -1089,16 +1133,16 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
|
1089
1133
|
);
|
|
1090
1134
|
|
|
1091
1135
|
// src/components/Calendar/Calendar.tsx
|
|
1092
|
-
import { forwardRef as forwardRef17, useEffect as useEffect5, useId as
|
|
1136
|
+
import { forwardRef as forwardRef17, useEffect as useEffect5, useId as useId5, useRef as useRef7, useState as useState6 } from "react";
|
|
1093
1137
|
import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2 } from "@bestow-ui/icons";
|
|
1094
1138
|
import { KOREAN_WEEKDAYS } from "@bestow-ui/korean-utils";
|
|
1095
1139
|
|
|
1096
1140
|
// src/utils/useIsClient.ts
|
|
1097
|
-
import { useSyncExternalStore } from "react";
|
|
1141
|
+
import { useSyncExternalStore as useSyncExternalStore2 } from "react";
|
|
1098
1142
|
var subscribeNothing = () => () => {
|
|
1099
1143
|
};
|
|
1100
1144
|
function useIsClient() {
|
|
1101
|
-
return
|
|
1145
|
+
return useSyncExternalStore2(
|
|
1102
1146
|
subscribeNothing,
|
|
1103
1147
|
() => true,
|
|
1104
1148
|
() => false
|
|
@@ -1109,8 +1153,8 @@ function useIsClient() {
|
|
|
1109
1153
|
import { forwardRef as forwardRef16 } from "react";
|
|
1110
1154
|
|
|
1111
1155
|
// src/components/IconButton/IconButton.css.ts
|
|
1112
|
-
import { createRuntimeFn as
|
|
1113
|
-
var iconButton = /* @__PURE__ */
|
|
1156
|
+
import { createRuntimeFn as _7a4688 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1157
|
+
var iconButton = /* @__PURE__ */ _7a4688({ defaultClassName: "ip9et20", variantClassNames: { size: { sm: "ip9et21", md: "ip9et22", lg: "ip9et23" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1114
1158
|
|
|
1115
1159
|
// src/components/IconButton/IconButton.tsx
|
|
1116
1160
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
@@ -1140,7 +1184,7 @@ var root6 = "_1qyq67b0";
|
|
|
1140
1184
|
var weekday = "_1qyq67b4";
|
|
1141
1185
|
|
|
1142
1186
|
// src/components/Calendar/Calendar.tsx
|
|
1143
|
-
import { jsx as jsx19, jsxs as
|
|
1187
|
+
import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1144
1188
|
var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
1145
1189
|
const {
|
|
1146
1190
|
value: value3,
|
|
@@ -1161,7 +1205,7 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
|
1161
1205
|
const nextMonthLabel = nextMonthLabelProp ?? m.nextMonth ?? "\uB2E4\uC74C \uB2EC";
|
|
1162
1206
|
const weekdaysShort = m.weekdaysShort ?? KOREAN_WEEKDAYS;
|
|
1163
1207
|
const weekdaysLong = m.weekdaysLong ?? KOREAN_WEEKDAYS.map((name) => `${name}\uC694\uC77C`);
|
|
1164
|
-
const headingId =
|
|
1208
|
+
const headingId = useId5();
|
|
1165
1209
|
const gridRef = useRef7(null);
|
|
1166
1210
|
const isControlled = "value" in props;
|
|
1167
1211
|
const [innerValue, setInnerValue] = useState6(defaultValue ?? "");
|
|
@@ -1225,8 +1269,8 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
|
1225
1269
|
) : [];
|
|
1226
1270
|
const canPrev = !!visible && (!minDate || compareDays(new Date(visible.getFullYear(), visible.getMonth(), 0), minDate) >= 0);
|
|
1227
1271
|
const canNext = !!visible && (!maxDate || compareDays(new Date(visible.getFullYear(), visible.getMonth() + 1, 1), maxDate) <= 0);
|
|
1228
|
-
return /* @__PURE__ */
|
|
1229
|
-
/* @__PURE__ */
|
|
1272
|
+
return /* @__PURE__ */ jsxs17("div", { ref, className: cx(root6, className), children: [
|
|
1273
|
+
/* @__PURE__ */ jsxs17("div", { className: header3, children: [
|
|
1230
1274
|
/* @__PURE__ */ jsx19(
|
|
1231
1275
|
IconButton,
|
|
1232
1276
|
{
|
|
@@ -1249,7 +1293,7 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
|
1249
1293
|
}
|
|
1250
1294
|
)
|
|
1251
1295
|
] }),
|
|
1252
|
-
/* @__PURE__ */
|
|
1296
|
+
/* @__PURE__ */ jsxs17("table", { ref: gridRef, role: "grid", "aria-labelledby": headingId, className: grid, onKeyDown: handleKeyDown, children: [
|
|
1253
1297
|
/* @__PURE__ */ jsx19("thead", { children: /* @__PURE__ */ jsx19("tr", { children: weekdaysShort.map((name, index) => /* @__PURE__ */ jsx19("th", { scope: "col", abbr: weekdaysLong[index], className: weekday, "data-weekday": index, children: name }, index)) }) }),
|
|
1254
1298
|
/* @__PURE__ */ jsx19("tbody", { children: weeks.map((week) => /* @__PURE__ */ jsx19("tr", { children: week.map((date) => {
|
|
1255
1299
|
const iso = toISODate(date);
|
|
@@ -1287,15 +1331,111 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
|
1287
1331
|
] });
|
|
1288
1332
|
});
|
|
1289
1333
|
|
|
1334
|
+
// src/components/CheckboxGroup/CheckboxGroup.tsx
|
|
1335
|
+
import { forwardRef as forwardRef18, useId as useId6, useState as useState7 } from "react";
|
|
1336
|
+
|
|
1337
|
+
// src/components/CheckboxGroup/CheckboxGroup.css.ts
|
|
1338
|
+
import { createRuntimeFn as _7a4689 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1339
|
+
var description3 = /* @__PURE__ */ _7a4689({ defaultClassName: "_1z0r6xj5", variantClassNames: { size: { sm: "_1z0r6xj6", md: "_1z0r6xj7" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1340
|
+
var groupLabel = "_1z0r6xj0";
|
|
1341
|
+
var items = /* @__PURE__ */ _7a4689({ defaultClassName: "_1z0r6xj1", variantClassNames: { orientation: { vertical: "_1z0r6xj2", horizontal: "_1z0r6xj3" } }, defaultVariants: { orientation: "vertical" }, compoundVariants: [] });
|
|
1342
|
+
var option = "_1z0r6xj4";
|
|
1343
|
+
|
|
1344
|
+
// src/components/CheckboxGroup/CheckboxGroup.tsx
|
|
1345
|
+
import { Fragment as Fragment5, jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1346
|
+
var CheckboxGroup = /* @__PURE__ */ forwardRef18(
|
|
1347
|
+
function CheckboxGroup2(props, ref) {
|
|
1348
|
+
const {
|
|
1349
|
+
options,
|
|
1350
|
+
value: value3,
|
|
1351
|
+
defaultValue,
|
|
1352
|
+
onValueChange,
|
|
1353
|
+
label: label6,
|
|
1354
|
+
helperText: helperText3,
|
|
1355
|
+
error,
|
|
1356
|
+
orientation,
|
|
1357
|
+
size,
|
|
1358
|
+
disabled,
|
|
1359
|
+
required,
|
|
1360
|
+
name,
|
|
1361
|
+
id,
|
|
1362
|
+
"aria-label": ariaLabel,
|
|
1363
|
+
className
|
|
1364
|
+
} = props;
|
|
1365
|
+
const m = useMessages();
|
|
1366
|
+
const isControlled = "value" in props;
|
|
1367
|
+
const [innerValue, setInnerValue] = useState7(defaultValue ?? []);
|
|
1368
|
+
const current2 = isControlled ? value3 ?? [] : innerValue;
|
|
1369
|
+
const generatedId = useId6();
|
|
1370
|
+
const baseId = id ?? generatedId;
|
|
1371
|
+
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
1372
|
+
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
1373
|
+
const toggle3 = (optionValue, checked) => {
|
|
1374
|
+
const next = options.map((option3) => option3.value).filter((v) => v === optionValue ? checked : current2.includes(v));
|
|
1375
|
+
if (!isControlled) setInnerValue(next);
|
|
1376
|
+
onValueChange?.(next);
|
|
1377
|
+
};
|
|
1378
|
+
return /* @__PURE__ */ jsxs18("div", { className: cx(field, className), children: [
|
|
1379
|
+
label6 && /* @__PURE__ */ jsxs18("span", { id: labelId, className: cx(label, groupLabel), children: [
|
|
1380
|
+
label6,
|
|
1381
|
+
required && /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
1382
|
+
/* @__PURE__ */ jsx20("span", { className: requiredMark, "aria-hidden": true, children: "*" }),
|
|
1383
|
+
" ",
|
|
1384
|
+
/* @__PURE__ */ jsxs18("span", { className: visuallyHidden, children: [
|
|
1385
|
+
"(",
|
|
1386
|
+
m.required ?? "\uD544\uC218",
|
|
1387
|
+
")"
|
|
1388
|
+
] })
|
|
1389
|
+
] })
|
|
1390
|
+
] }),
|
|
1391
|
+
/* @__PURE__ */ jsx20(
|
|
1392
|
+
"div",
|
|
1393
|
+
{
|
|
1394
|
+
ref,
|
|
1395
|
+
id: baseId,
|
|
1396
|
+
role: "group",
|
|
1397
|
+
"aria-label": ariaLabel,
|
|
1398
|
+
"aria-labelledby": labelId,
|
|
1399
|
+
"aria-describedby": helperId,
|
|
1400
|
+
className: items({ orientation }),
|
|
1401
|
+
children: options.map((option3) => {
|
|
1402
|
+
const itemId = `${baseId}-${option3.value}`;
|
|
1403
|
+
const descriptionId = option3.description ? `${itemId}-description` : void 0;
|
|
1404
|
+
return /* @__PURE__ */ jsxs18("div", { className: option, children: [
|
|
1405
|
+
/* @__PURE__ */ jsx20(
|
|
1406
|
+
Checkbox,
|
|
1407
|
+
{
|
|
1408
|
+
id: itemId,
|
|
1409
|
+
name,
|
|
1410
|
+
value: option3.value,
|
|
1411
|
+
label: option3.label,
|
|
1412
|
+
size,
|
|
1413
|
+
checked: current2.includes(option3.value),
|
|
1414
|
+
onCheckedChange: (checked) => toggle3(option3.value, checked),
|
|
1415
|
+
disabled: disabled || option3.disabled,
|
|
1416
|
+
invalid: error,
|
|
1417
|
+
"aria-describedby": descriptionId
|
|
1418
|
+
}
|
|
1419
|
+
),
|
|
1420
|
+
option3.description && /* @__PURE__ */ jsx20("span", { id: descriptionId, className: description3({ size }), children: option3.description })
|
|
1421
|
+
] }, option3.value);
|
|
1422
|
+
})
|
|
1423
|
+
}
|
|
1424
|
+
),
|
|
1425
|
+
helperText3 && /* @__PURE__ */ jsx20("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1426
|
+
] });
|
|
1427
|
+
}
|
|
1428
|
+
);
|
|
1429
|
+
|
|
1290
1430
|
// src/components/Combobox/Combobox.tsx
|
|
1291
1431
|
import * as Popover from "@radix-ui/react-popover";
|
|
1292
1432
|
import {
|
|
1293
|
-
forwardRef as
|
|
1433
|
+
forwardRef as forwardRef19,
|
|
1294
1434
|
useEffect as useEffect6,
|
|
1295
|
-
useId as
|
|
1435
|
+
useId as useId7,
|
|
1296
1436
|
useMemo as useMemo3,
|
|
1297
1437
|
useRef as useRef8,
|
|
1298
|
-
useState as
|
|
1438
|
+
useState as useState8
|
|
1299
1439
|
} from "react";
|
|
1300
1440
|
import { CheckIcon, ChevronDownIcon as ChevronDownIcon3, XIcon as XIcon3 } from "@bestow-ui/icons";
|
|
1301
1441
|
|
|
@@ -1315,9 +1455,9 @@ var empty = "c2pbq74";
|
|
|
1315
1455
|
var toggle2 = "c2pbq71 c2pbq70";
|
|
1316
1456
|
|
|
1317
1457
|
// src/components/Combobox/Combobox.tsx
|
|
1318
|
-
import { jsx as
|
|
1319
|
-
var defaultFilter = (
|
|
1320
|
-
var Combobox = /* @__PURE__ */
|
|
1458
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1459
|
+
var defaultFilter = (option3, query2) => option3.label.toLowerCase().includes(query2.trim().toLowerCase());
|
|
1460
|
+
var Combobox = /* @__PURE__ */ forwardRef19(function Combobox2(props, ref) {
|
|
1321
1461
|
const {
|
|
1322
1462
|
options,
|
|
1323
1463
|
value: value3,
|
|
@@ -1345,7 +1485,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1345
1485
|
const emptyMessage = emptyMessageProp ?? m.noResults ?? "\uACB0\uACFC\uAC00 \uC5C6\uC5B4\uC694";
|
|
1346
1486
|
const toggleLabel = toggleLabelProp ?? m.openList ?? "\uBAA9\uB85D \uC5F4\uAE30";
|
|
1347
1487
|
const clearLabel = clearLabelProp ?? m.clearSelection ?? "\uC120\uD0DD \uC9C0\uC6B0\uAE30";
|
|
1348
|
-
const generatedId =
|
|
1488
|
+
const generatedId = useId7();
|
|
1349
1489
|
const inputId = id ?? generatedId;
|
|
1350
1490
|
const labelId = `${inputId}-label`;
|
|
1351
1491
|
const listId = `${inputId}-listbox`;
|
|
@@ -1355,14 +1495,14 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1355
1495
|
const inputRef = useRef8(null);
|
|
1356
1496
|
const anchorRef = useRef8(null);
|
|
1357
1497
|
const isControlled = "value" in props;
|
|
1358
|
-
const [innerValue, setInnerValue] =
|
|
1498
|
+
const [innerValue, setInnerValue] = useState8(defaultValue);
|
|
1359
1499
|
const selectedValue = isControlled ? value3 : innerValue;
|
|
1360
1500
|
const selectedOption = options.find((o) => o.value === selectedValue);
|
|
1361
|
-
const [open, setOpen] =
|
|
1362
|
-
const [
|
|
1363
|
-
const [activeIndex, setActiveIndex] =
|
|
1364
|
-
const filtered = useMemo3(() =>
|
|
1365
|
-
const inputText =
|
|
1501
|
+
const [open, setOpen] = useState8(false);
|
|
1502
|
+
const [query2, setQuery] = useState8(null);
|
|
1503
|
+
const [activeIndex, setActiveIndex] = useState8(-1);
|
|
1504
|
+
const filtered = useMemo3(() => query2 ? options.filter((o) => filter(o, query2)) : options, [options, filter, query2]);
|
|
1505
|
+
const inputText = query2 ?? selectedOption?.label ?? "";
|
|
1366
1506
|
const firstEnabled = (list7, from = 0, step2 = 1) => {
|
|
1367
1507
|
for (let i = from; i >= 0 && i < list7.length; i += step2) if (!list7[i].disabled) return i;
|
|
1368
1508
|
return -1;
|
|
@@ -1384,13 +1524,13 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1384
1524
|
if (selectedValue) onValueChange?.("");
|
|
1385
1525
|
};
|
|
1386
1526
|
const close2 = () => {
|
|
1387
|
-
if (
|
|
1527
|
+
if (query2 === "" && selectedValue) clearSelection();
|
|
1388
1528
|
reset();
|
|
1389
1529
|
};
|
|
1390
|
-
const select2 = (
|
|
1391
|
-
if (
|
|
1392
|
-
if (!isControlled) setInnerValue(
|
|
1393
|
-
if (
|
|
1530
|
+
const select2 = (option3) => {
|
|
1531
|
+
if (option3.disabled) return;
|
|
1532
|
+
if (!isControlled) setInnerValue(option3.value);
|
|
1533
|
+
if (option3.value !== selectedValue) onValueChange?.(option3.value);
|
|
1394
1534
|
reset();
|
|
1395
1535
|
};
|
|
1396
1536
|
const move = (step2) => {
|
|
@@ -1420,8 +1560,8 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1420
1560
|
case "Enter":
|
|
1421
1561
|
if (open) {
|
|
1422
1562
|
event.preventDefault();
|
|
1423
|
-
const
|
|
1424
|
-
if (
|
|
1563
|
+
const option3 = filtered[activeIndex];
|
|
1564
|
+
if (option3) select2(option3);
|
|
1425
1565
|
else close2();
|
|
1426
1566
|
}
|
|
1427
1567
|
break;
|
|
@@ -1442,28 +1582,28 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1442
1582
|
}, [open, activeIndex]);
|
|
1443
1583
|
const hasOptions = filtered.length > 0;
|
|
1444
1584
|
const noResults = open && !disabled && !hasOptions;
|
|
1445
|
-
const [announcedFor, setAnnouncedFor] =
|
|
1585
|
+
const [announcedFor, setAnnouncedFor] = useState8(void 0);
|
|
1446
1586
|
useEffect6(() => {
|
|
1447
1587
|
if (!noResults) return;
|
|
1448
|
-
const timer2 = setTimeout(() => setAnnouncedFor(
|
|
1588
|
+
const timer2 = setTimeout(() => setAnnouncedFor(query2), ANNOUNCE_DELAY);
|
|
1449
1589
|
return () => clearTimeout(timer2);
|
|
1450
|
-
}, [noResults,
|
|
1451
|
-
const announceNoResults = noResults && announcedFor ===
|
|
1452
|
-
return /* @__PURE__ */
|
|
1453
|
-
label6 && /* @__PURE__ */
|
|
1590
|
+
}, [noResults, query2]);
|
|
1591
|
+
const announceNoResults = noResults && announcedFor === query2;
|
|
1592
|
+
return /* @__PURE__ */ jsxs19("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1593
|
+
label6 && /* @__PURE__ */ jsxs19("label", { id: labelId, htmlFor: inputId, className: label, children: [
|
|
1454
1594
|
label6,
|
|
1455
|
-
required && /* @__PURE__ */
|
|
1595
|
+
required && /* @__PURE__ */ jsx21("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1456
1596
|
] }),
|
|
1457
|
-
/* @__PURE__ */
|
|
1458
|
-
/* @__PURE__ */
|
|
1597
|
+
/* @__PURE__ */ jsxs19(Popover.Root, { open: open && !disabled, onOpenChange: (next) => next ? openList() : close2(), children: [
|
|
1598
|
+
/* @__PURE__ */ jsx21(Popover.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs19(
|
|
1459
1599
|
"div",
|
|
1460
1600
|
{
|
|
1461
1601
|
ref: anchorRef,
|
|
1462
|
-
className: cx(
|
|
1602
|
+
className: cx(root({ size, fullWidth }), className),
|
|
1463
1603
|
"data-invalid": error || void 0,
|
|
1464
1604
|
"data-disabled": disabled || void 0,
|
|
1465
1605
|
children: [
|
|
1466
|
-
/* @__PURE__ */
|
|
1606
|
+
/* @__PURE__ */ jsx21(
|
|
1467
1607
|
"input",
|
|
1468
1608
|
{
|
|
1469
1609
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -1490,7 +1630,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1490
1630
|
className: input
|
|
1491
1631
|
}
|
|
1492
1632
|
),
|
|
1493
|
-
clearable && selectedOption && !disabled && /* @__PURE__ */
|
|
1633
|
+
clearable && selectedOption && !disabled && /* @__PURE__ */ jsx21(
|
|
1494
1634
|
"button",
|
|
1495
1635
|
{
|
|
1496
1636
|
type: "button",
|
|
@@ -1503,10 +1643,10 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1503
1643
|
reset();
|
|
1504
1644
|
inputRef.current?.focus();
|
|
1505
1645
|
},
|
|
1506
|
-
children: /* @__PURE__ */
|
|
1646
|
+
children: /* @__PURE__ */ jsx21(XIcon3, { size: 16 })
|
|
1507
1647
|
}
|
|
1508
1648
|
),
|
|
1509
|
-
/* @__PURE__ */
|
|
1649
|
+
/* @__PURE__ */ jsx21(
|
|
1510
1650
|
"button",
|
|
1511
1651
|
{
|
|
1512
1652
|
type: "button",
|
|
@@ -1521,13 +1661,13 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1521
1661
|
else openList(options);
|
|
1522
1662
|
inputRef.current?.focus();
|
|
1523
1663
|
},
|
|
1524
|
-
children: /* @__PURE__ */
|
|
1664
|
+
children: /* @__PURE__ */ jsx21(ChevronDownIcon3, { size: 16 })
|
|
1525
1665
|
}
|
|
1526
1666
|
)
|
|
1527
1667
|
]
|
|
1528
1668
|
}
|
|
1529
1669
|
) }),
|
|
1530
|
-
/* @__PURE__ */
|
|
1670
|
+
/* @__PURE__ */ jsx21(Popover.Portal, { children: /* @__PURE__ */ jsx21(
|
|
1531
1671
|
Popover.Content,
|
|
1532
1672
|
{
|
|
1533
1673
|
role: "presentation",
|
|
@@ -1542,63 +1682,63 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1542
1682
|
onInteractOutside: (event) => {
|
|
1543
1683
|
if (anchorRef.current?.contains(event.target)) event.preventDefault();
|
|
1544
1684
|
},
|
|
1545
|
-
children: hasOptions ? /* @__PURE__ */
|
|
1685
|
+
children: hasOptions ? /* @__PURE__ */ jsx21(
|
|
1546
1686
|
"div",
|
|
1547
1687
|
{
|
|
1548
1688
|
id: listId,
|
|
1549
1689
|
role: "listbox",
|
|
1550
1690
|
"aria-labelledby": label6 ? labelId : void 0,
|
|
1551
1691
|
"aria-label": label6 ? void 0 : ariaLabel,
|
|
1552
|
-
children: filtered.map((
|
|
1553
|
-
const isSelected =
|
|
1692
|
+
children: filtered.map((option3, index) => {
|
|
1693
|
+
const isSelected = option3.value === selectedValue;
|
|
1554
1694
|
return (
|
|
1555
1695
|
// aria-activedescendant 패턴: 포커스·키보드는 입력창이 맡고 항목은 포커스를 받지 않는다 (WAI-ARIA combobox)
|
|
1556
1696
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/interactive-supports-focus
|
|
1557
|
-
/* @__PURE__ */
|
|
1697
|
+
/* @__PURE__ */ jsxs19(
|
|
1558
1698
|
"div",
|
|
1559
1699
|
{
|
|
1560
1700
|
id: optionId(index),
|
|
1561
1701
|
role: "option",
|
|
1562
1702
|
"aria-selected": isSelected,
|
|
1563
|
-
"aria-disabled":
|
|
1703
|
+
"aria-disabled": option3.disabled || void 0,
|
|
1564
1704
|
"data-highlighted": index === activeIndex ? "" : void 0,
|
|
1565
1705
|
"data-state": isSelected ? "checked" : "unchecked",
|
|
1566
|
-
"data-disabled":
|
|
1706
|
+
"data-disabled": option3.disabled ? "" : void 0,
|
|
1567
1707
|
className: item4,
|
|
1568
1708
|
onMouseDown: (event) => event.preventDefault(),
|
|
1569
|
-
onMouseMove: () => !
|
|
1570
|
-
onClick: () => select2(
|
|
1709
|
+
onMouseMove: () => !option3.disabled && setActiveIndex(index),
|
|
1710
|
+
onClick: () => select2(option3),
|
|
1571
1711
|
children: [
|
|
1572
|
-
|
|
1573
|
-
isSelected && /* @__PURE__ */
|
|
1712
|
+
option3.label,
|
|
1713
|
+
isSelected && /* @__PURE__ */ jsx21("span", { className: itemIndicator, "aria-hidden": true, children: /* @__PURE__ */ jsx21(CheckIcon, { size: 16 }) })
|
|
1574
1714
|
]
|
|
1575
1715
|
},
|
|
1576
|
-
|
|
1716
|
+
option3.value
|
|
1577
1717
|
)
|
|
1578
1718
|
);
|
|
1579
1719
|
})
|
|
1580
1720
|
}
|
|
1581
1721
|
) : (
|
|
1582
1722
|
// 스크린리더 알림은 아래의 항상 있는 status 영역이 맡는다 (여기는 화면 표시만)
|
|
1583
|
-
/* @__PURE__ */
|
|
1723
|
+
/* @__PURE__ */ jsx21("div", { className: empty, children: emptyMessage })
|
|
1584
1724
|
)
|
|
1585
1725
|
}
|
|
1586
1726
|
) })
|
|
1587
1727
|
] }),
|
|
1588
|
-
/* @__PURE__ */
|
|
1589
|
-
name && /* @__PURE__ */
|
|
1590
|
-
helperText3 && /* @__PURE__ */
|
|
1728
|
+
/* @__PURE__ */ jsx21("span", { role: "status", className: visuallyHidden, children: announceNoResults ? emptyMessage : "" }),
|
|
1729
|
+
name && /* @__PURE__ */ jsx21("input", { type: "hidden", name, value: selectedValue ?? "" }),
|
|
1730
|
+
helperText3 && /* @__PURE__ */ jsx21("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1591
1731
|
] });
|
|
1592
1732
|
});
|
|
1593
1733
|
|
|
1594
1734
|
// src/components/DatePicker/DatePicker.tsx
|
|
1595
|
-
import { forwardRef as
|
|
1735
|
+
import { forwardRef as forwardRef20, useEffect as useEffect7, useRef as useRef9, useState as useState9 } from "react";
|
|
1596
1736
|
import { CalendarIcon } from "@bestow-ui/icons";
|
|
1597
1737
|
|
|
1598
1738
|
// src/components/Popover/Popover.tsx
|
|
1599
1739
|
import * as RadixPopover from "@radix-ui/react-popover";
|
|
1600
1740
|
import { XIcon as XIcon4 } from "@bestow-ui/icons";
|
|
1601
|
-
import { useId as
|
|
1741
|
+
import { useId as useId8 } from "react";
|
|
1602
1742
|
|
|
1603
1743
|
// src/components/Popover/Popover.css.ts
|
|
1604
1744
|
var arrow = "_1j99p8x4";
|
|
@@ -1608,7 +1748,7 @@ var header4 = "_1j99p8x1";
|
|
|
1608
1748
|
var title3 = "_1j99p8x2";
|
|
1609
1749
|
|
|
1610
1750
|
// src/components/Popover/Popover.tsx
|
|
1611
|
-
import { jsx as
|
|
1751
|
+
import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1612
1752
|
function Popover2({
|
|
1613
1753
|
content: content12,
|
|
1614
1754
|
children,
|
|
@@ -1628,10 +1768,10 @@ function Popover2({
|
|
|
1628
1768
|
}) {
|
|
1629
1769
|
const portal2 = usePortalProps();
|
|
1630
1770
|
const m = useMessages();
|
|
1631
|
-
const titleId =
|
|
1632
|
-
return /* @__PURE__ */
|
|
1633
|
-
/* @__PURE__ */
|
|
1634
|
-
/* @__PURE__ */
|
|
1771
|
+
const titleId = useId8();
|
|
1772
|
+
return /* @__PURE__ */ jsxs20(RadixPopover.Root, { open, defaultOpen, onOpenChange, modal, children: [
|
|
1773
|
+
/* @__PURE__ */ jsx22(RadixPopover.Trigger, { asChild: true, children }),
|
|
1774
|
+
/* @__PURE__ */ jsx22(RadixPopover.Portal, { children: /* @__PURE__ */ jsxs20(
|
|
1635
1775
|
RadixPopover.Content,
|
|
1636
1776
|
{
|
|
1637
1777
|
side,
|
|
@@ -1644,12 +1784,12 @@ function Popover2({
|
|
|
1644
1784
|
className: cx(portal2.className, content7, className),
|
|
1645
1785
|
style: { ...portal2.style, ...style },
|
|
1646
1786
|
children: [
|
|
1647
|
-
(title6 || showClose) && /* @__PURE__ */
|
|
1648
|
-
title6 && /* @__PURE__ */
|
|
1649
|
-
showClose && /* @__PURE__ */
|
|
1787
|
+
(title6 || showClose) && /* @__PURE__ */ jsxs20("div", { className: header4, children: [
|
|
1788
|
+
title6 && /* @__PURE__ */ jsx22("h2", { id: titleId, className: title3, children: title6 }),
|
|
1789
|
+
showClose && /* @__PURE__ */ jsx22(RadixPopover.Close, { className: closeButton3, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ jsx22(XIcon4, { size: 16 }) })
|
|
1650
1790
|
] }),
|
|
1651
1791
|
content12,
|
|
1652
|
-
showArrow && /* @__PURE__ */
|
|
1792
|
+
showArrow && /* @__PURE__ */ jsx22(RadixPopover.Arrow, { className: arrow, width: 12, height: 6 })
|
|
1653
1793
|
]
|
|
1654
1794
|
}
|
|
1655
1795
|
) })
|
|
@@ -1658,11 +1798,11 @@ function Popover2({
|
|
|
1658
1798
|
var PopoverClose = RadixPopover.Close;
|
|
1659
1799
|
|
|
1660
1800
|
// src/components/DatePicker/DatePicker.tsx
|
|
1661
|
-
import { Fragment as
|
|
1801
|
+
import { Fragment as Fragment6, jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1662
1802
|
var sanitize2 = (input6) => input6.replace(/\D/g, "").slice(0, 8);
|
|
1663
1803
|
var format = (digits) => digits.length <= 4 ? digits : digits.length <= 6 ? `${digits.slice(0, 4)}-${digits.slice(4)}` : `${digits.slice(0, 4)}-${digits.slice(4, 6)}-${digits.slice(6)}`;
|
|
1664
1804
|
var isDigit3 = (char) => /\d/.test(char);
|
|
1665
|
-
var DatePicker = /* @__PURE__ */
|
|
1805
|
+
var DatePicker = /* @__PURE__ */ forwardRef20(
|
|
1666
1806
|
function DatePicker2(props, ref) {
|
|
1667
1807
|
const {
|
|
1668
1808
|
value: value3,
|
|
@@ -1695,8 +1835,8 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1695
1835
|
const invalidText = invalidTextProp ?? m.dateInvalid ?? "\uC62C\uBC14\uB978 \uB0A0\uC9DC\uAC00 \uC544\uB2C8\uC5D0\uC694.";
|
|
1696
1836
|
const unavailableText = unavailableTextProp ?? m.dateUnavailable ?? "\uACE0\uB97C \uC218 \uC5C6\uB294 \uB0A0\uC9DC\uC608\uC694.";
|
|
1697
1837
|
const incompleteText = incompleteTextProp ?? m.dateIncomplete ?? "\uB0A0\uC9DC\uB97C YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.";
|
|
1698
|
-
const [open, setOpen] =
|
|
1699
|
-
const [touched, setTouched] =
|
|
1838
|
+
const [open, setOpen] = useState9(false);
|
|
1839
|
+
const [touched, setTouched] = useState9(false);
|
|
1700
1840
|
const isControlled = "value" in props;
|
|
1701
1841
|
const lastEmitted = useRef9(isControlled ? value3 ?? "" : defaultValue ?? "");
|
|
1702
1842
|
const minDate = parseISODate(min);
|
|
@@ -1739,8 +1879,8 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1739
1879
|
const showAuto = autoError !== null && error === void 0;
|
|
1740
1880
|
const announcement = useDelayedAnnouncement(showAuto && complete ? autoError ?? "" : "");
|
|
1741
1881
|
const selectedIso = date && !isUnavailable(date) ? textIso : "";
|
|
1742
|
-
return /* @__PURE__ */
|
|
1743
|
-
/* @__PURE__ */
|
|
1882
|
+
return /* @__PURE__ */ jsxs21(Fragment6, { children: [
|
|
1883
|
+
/* @__PURE__ */ jsx23(
|
|
1744
1884
|
TextField,
|
|
1745
1885
|
{
|
|
1746
1886
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -1759,7 +1899,7 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1759
1899
|
disabled,
|
|
1760
1900
|
fullWidth,
|
|
1761
1901
|
rootClassName: className,
|
|
1762
|
-
endAdornment: /* @__PURE__ */
|
|
1902
|
+
endAdornment: /* @__PURE__ */ jsx23(
|
|
1763
1903
|
Popover2,
|
|
1764
1904
|
{
|
|
1765
1905
|
open,
|
|
@@ -1768,7 +1908,7 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1768
1908
|
align: "end",
|
|
1769
1909
|
"aria-label": m.calendar ?? "\uB2EC\uB825",
|
|
1770
1910
|
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
1771
|
-
content: /* @__PURE__ */
|
|
1911
|
+
content: /* @__PURE__ */ jsx23(
|
|
1772
1912
|
Calendar,
|
|
1773
1913
|
{
|
|
1774
1914
|
value: selectedIso,
|
|
@@ -1785,19 +1925,19 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1785
1925
|
initialFocus: true
|
|
1786
1926
|
}
|
|
1787
1927
|
),
|
|
1788
|
-
children: /* @__PURE__ */
|
|
1928
|
+
children: /* @__PURE__ */ jsx23(IconButton, { "aria-label": calendarLabel, size: "sm", disabled, children: /* @__PURE__ */ jsx23(CalendarIcon, {}) })
|
|
1789
1929
|
}
|
|
1790
1930
|
)
|
|
1791
1931
|
}
|
|
1792
1932
|
),
|
|
1793
|
-
/* @__PURE__ */
|
|
1794
|
-
name && /* @__PURE__ */
|
|
1933
|
+
/* @__PURE__ */ jsx23("span", { role: "status", className: visuallyHidden, children: announcement }),
|
|
1934
|
+
name && /* @__PURE__ */ jsx23("input", { type: "hidden", name, value: selectedIso })
|
|
1795
1935
|
] });
|
|
1796
1936
|
}
|
|
1797
1937
|
);
|
|
1798
1938
|
|
|
1799
1939
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
1800
|
-
import { forwardRef as
|
|
1940
|
+
import { forwardRef as forwardRef21, useId as useId9, useState as useState10 } from "react";
|
|
1801
1941
|
|
|
1802
1942
|
// src/components/DateRangePicker/DateRangePicker.css.ts
|
|
1803
1943
|
var field2 = "_17277dh3";
|
|
@@ -1808,8 +1948,8 @@ var presets = "_17277dh5";
|
|
|
1808
1948
|
var separator2 = "_17277dh4";
|
|
1809
1949
|
|
|
1810
1950
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
1811
|
-
import { jsx as
|
|
1812
|
-
var DateRangePicker = /* @__PURE__ */
|
|
1951
|
+
import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1952
|
+
var DateRangePicker = /* @__PURE__ */ forwardRef21(
|
|
1813
1953
|
function DateRangePicker2(props, ref) {
|
|
1814
1954
|
const {
|
|
1815
1955
|
value: value3,
|
|
@@ -1834,12 +1974,12 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
|
1834
1974
|
className
|
|
1835
1975
|
} = props;
|
|
1836
1976
|
const m = useMessages();
|
|
1837
|
-
const generatedId =
|
|
1977
|
+
const generatedId = useId9();
|
|
1838
1978
|
const baseId = id ?? generatedId;
|
|
1839
1979
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
1840
1980
|
const isClient = useIsClient();
|
|
1841
1981
|
const isControlled = "value" in props;
|
|
1842
|
-
const [inner, setInner] =
|
|
1982
|
+
const [inner, setInner] = useState10(defaultValue ?? { start: "", end: "" });
|
|
1843
1983
|
const range3 = isControlled ? value3 ?? { start: "", end: "" } : inner;
|
|
1844
1984
|
const update = (next) => {
|
|
1845
1985
|
if (next.start === range3.start && next.end === range3.end) return;
|
|
@@ -1850,7 +1990,7 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
|
1850
1990
|
const startLabel = startLabelProp ?? m.dateRangeStart ?? "\uC2DC\uC791\uC77C";
|
|
1851
1991
|
const endLabel = endLabelProp ?? m.dateRangeEnd ?? "\uC885\uB8CC\uC77C";
|
|
1852
1992
|
const common = { isDateDisabled, isHoliday, today, disabled, required, fullWidth: true };
|
|
1853
|
-
return /* @__PURE__ */
|
|
1993
|
+
return /* @__PURE__ */ jsxs22(
|
|
1854
1994
|
"fieldset",
|
|
1855
1995
|
{
|
|
1856
1996
|
ref,
|
|
@@ -1859,12 +1999,12 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
|
1859
1999
|
"aria-describedby": helperId,
|
|
1860
2000
|
"data-invalid": error || void 0,
|
|
1861
2001
|
children: [
|
|
1862
|
-
label6 && /* @__PURE__ */
|
|
2002
|
+
label6 && /* @__PURE__ */ jsxs22("legend", { className: legend3, children: [
|
|
1863
2003
|
label6,
|
|
1864
|
-
required && /* @__PURE__ */
|
|
2004
|
+
required && /* @__PURE__ */ jsx24("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1865
2005
|
] }),
|
|
1866
|
-
/* @__PURE__ */
|
|
1867
|
-
/* @__PURE__ */
|
|
2006
|
+
/* @__PURE__ */ jsxs22("div", { className: fields, children: [
|
|
2007
|
+
/* @__PURE__ */ jsx24("div", { className: field2, children: /* @__PURE__ */ jsx24(
|
|
1868
2008
|
DatePicker,
|
|
1869
2009
|
{
|
|
1870
2010
|
...common,
|
|
@@ -1878,8 +2018,8 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
|
1878
2018
|
error: error || void 0
|
|
1879
2019
|
}
|
|
1880
2020
|
) }),
|
|
1881
|
-
/* @__PURE__ */
|
|
1882
|
-
/* @__PURE__ */
|
|
2021
|
+
/* @__PURE__ */ jsx24("span", { className: separator2, "aria-hidden": true, children: "~" }),
|
|
2022
|
+
/* @__PURE__ */ jsx24("div", { className: field2, children: /* @__PURE__ */ jsx24(
|
|
1883
2023
|
DatePicker,
|
|
1884
2024
|
{
|
|
1885
2025
|
...common,
|
|
@@ -1894,10 +2034,10 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
|
1894
2034
|
}
|
|
1895
2035
|
) })
|
|
1896
2036
|
] }),
|
|
1897
|
-
presets2 && presets2.length > 0 && /* @__PURE__ */
|
|
2037
|
+
presets2 && presets2.length > 0 && /* @__PURE__ */ jsx24("div", { role: "group", "aria-label": m.dateRangePresets ?? "\uBE60\uB978 \uC120\uD0DD", className: presets, children: presets2.map((preset) => {
|
|
1898
2038
|
const target = isClient ? presetRange(preset, todayIso()) : null;
|
|
1899
2039
|
const pressed = !!target && target.start === range3.start && target.end === range3.end;
|
|
1900
|
-
return /* @__PURE__ */
|
|
2040
|
+
return /* @__PURE__ */ jsx24(
|
|
1901
2041
|
Button,
|
|
1902
2042
|
{
|
|
1903
2043
|
type: "button",
|
|
@@ -1912,7 +2052,7 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
|
1912
2052
|
preset.label
|
|
1913
2053
|
);
|
|
1914
2054
|
}) }),
|
|
1915
|
-
helperText3 && /* @__PURE__ */
|
|
2055
|
+
helperText3 && /* @__PURE__ */ jsx24("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1916
2056
|
]
|
|
1917
2057
|
}
|
|
1918
2058
|
);
|
|
@@ -1928,7 +2068,7 @@ import { createRuntimeFn as _7a46810 } from "@vanilla-extract/recipes/createRunt
|
|
|
1928
2068
|
var body2 = "nmobyvy";
|
|
1929
2069
|
var closeButton4 = "nmobyvx";
|
|
1930
2070
|
var content8 = /* @__PURE__ */ _7a46810({ defaultClassName: "nmobyv9", variantClassNames: { side: { right: "nmobyva", left: "nmobyvb", top: "nmobyvc", bottom: "nmobyvd" }, size: { sm: "nmobyve", md: "nmobyvf", lg: "nmobyvg" } }, defaultVariants: { side: "right", size: "md" }, compoundVariants: [[{ side: "right", size: "sm" }, "nmobyvh"], [{ side: "right", size: "md" }, "nmobyvi"], [{ side: "right", size: "lg" }, "nmobyvj"], [{ side: "left", size: "sm" }, "nmobyvk"], [{ side: "left", size: "md" }, "nmobyvl"], [{ side: "left", size: "lg" }, "nmobyvm"], [{ side: "top", size: "sm" }, "nmobyvn"], [{ side: "top", size: "md" }, "nmobyvo"], [{ side: "top", size: "lg" }, "nmobyvp"], [{ side: "bottom", size: "sm" }, "nmobyvq"], [{ side: "bottom", size: "md" }, "nmobyvr"], [{ side: "bottom", size: "lg" }, "nmobyvs"]] });
|
|
1931
|
-
var
|
|
2071
|
+
var description4 = "nmobyvw";
|
|
1932
2072
|
var footer2 = "nmobyvz";
|
|
1933
2073
|
var header5 = "nmobyvt";
|
|
1934
2074
|
var headings2 = "nmobyvu";
|
|
@@ -1936,14 +2076,14 @@ var overlay2 = "nmobyv0";
|
|
|
1936
2076
|
var title4 = "nmobyvv";
|
|
1937
2077
|
|
|
1938
2078
|
// src/components/Drawer/Drawer.tsx
|
|
1939
|
-
import { jsx as
|
|
2079
|
+
import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1940
2080
|
function Drawer({
|
|
1941
2081
|
open,
|
|
1942
2082
|
defaultOpen,
|
|
1943
2083
|
onOpenChange,
|
|
1944
2084
|
trigger: trigger4,
|
|
1945
2085
|
title: title6,
|
|
1946
|
-
description:
|
|
2086
|
+
description: description8,
|
|
1947
2087
|
children,
|
|
1948
2088
|
footer: footer5,
|
|
1949
2089
|
side,
|
|
@@ -1955,11 +2095,11 @@ function Drawer({
|
|
|
1955
2095
|
const portal2 = usePortalProps();
|
|
1956
2096
|
const m = useMessages();
|
|
1957
2097
|
const focus = useReturnFocus(Boolean(trigger4));
|
|
1958
|
-
return /* @__PURE__ */
|
|
1959
|
-
trigger4 && /* @__PURE__ */
|
|
1960
|
-
/* @__PURE__ */
|
|
1961
|
-
/* @__PURE__ */
|
|
1962
|
-
/* @__PURE__ */
|
|
2098
|
+
return /* @__PURE__ */ jsxs23(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
|
|
2099
|
+
trigger4 && /* @__PURE__ */ jsx25(Dialog2.Trigger, { asChild: true, children: trigger4 }),
|
|
2100
|
+
/* @__PURE__ */ jsxs23(Dialog2.Portal, { children: [
|
|
2101
|
+
/* @__PURE__ */ jsx25(Dialog2.Overlay, { className: cx(portal2.className, overlay2), style: portal2.style }),
|
|
2102
|
+
/* @__PURE__ */ jsxs23(
|
|
1963
2103
|
Dialog2.Content,
|
|
1964
2104
|
{
|
|
1965
2105
|
className: cx(portal2.className, content8({ side, size }), className),
|
|
@@ -1968,17 +2108,17 @@ function Drawer({
|
|
|
1968
2108
|
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
1969
2109
|
onOpenAutoFocus: focus.onOpenAutoFocus,
|
|
1970
2110
|
onCloseAutoFocus: focus.onCloseAutoFocus,
|
|
1971
|
-
...
|
|
2111
|
+
...description8 ? {} : { "aria-describedby": void 0 },
|
|
1972
2112
|
children: [
|
|
1973
|
-
/* @__PURE__ */
|
|
1974
|
-
/* @__PURE__ */
|
|
1975
|
-
/* @__PURE__ */
|
|
1976
|
-
|
|
2113
|
+
/* @__PURE__ */ jsxs23("div", { className: header5, children: [
|
|
2114
|
+
/* @__PURE__ */ jsxs23("div", { className: headings2, children: [
|
|
2115
|
+
/* @__PURE__ */ jsx25(Dialog2.Title, { className: title4, children: title6 }),
|
|
2116
|
+
description8 && /* @__PURE__ */ jsx25(Dialog2.Description, { className: description4, children: description8 })
|
|
1977
2117
|
] }),
|
|
1978
|
-
!hideCloseButton && /* @__PURE__ */
|
|
2118
|
+
!hideCloseButton && /* @__PURE__ */ jsx25(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ jsx25(IconButton, { "aria-label": m.close ?? "\uB2EB\uAE30", size: "sm", className: closeButton4, children: /* @__PURE__ */ jsx25(XIcon5, {}) }) })
|
|
1979
2119
|
] }),
|
|
1980
|
-
children && /* @__PURE__ */
|
|
1981
|
-
footer5 && /* @__PURE__ */
|
|
2120
|
+
children && /* @__PURE__ */ jsx25("div", { className: body2, children }),
|
|
2121
|
+
footer5 && /* @__PURE__ */ jsx25("div", { className: footer2, children: footer5 })
|
|
1982
2122
|
]
|
|
1983
2123
|
}
|
|
1984
2124
|
)
|
|
@@ -1988,7 +2128,7 @@ function Drawer({
|
|
|
1988
2128
|
var DrawerClose = Dialog2.Close;
|
|
1989
2129
|
|
|
1990
2130
|
// src/components/ErrorSummary/ErrorSummary.tsx
|
|
1991
|
-
import { forwardRef as
|
|
2131
|
+
import { forwardRef as forwardRef22, useEffect as useEffect8, useId as useId10, useRef as useRef10 } from "react";
|
|
1992
2132
|
|
|
1993
2133
|
// src/components/ErrorSummary/ErrorSummary.css.ts
|
|
1994
2134
|
var link3 = "_1cdophv2";
|
|
@@ -1996,17 +2136,17 @@ var list3 = "_1cdophv1";
|
|
|
1996
2136
|
var root7 = "_1cdophv0";
|
|
1997
2137
|
|
|
1998
2138
|
// src/components/ErrorSummary/ErrorSummary.tsx
|
|
1999
|
-
import { jsx as
|
|
2000
|
-
var ErrorSummary = /* @__PURE__ */
|
|
2139
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2140
|
+
var ErrorSummary = /* @__PURE__ */ forwardRef22(function ErrorSummary2({ errors: errors2, title: title6, focusKey, className, ...rest }, ref) {
|
|
2001
2141
|
const m = useMessages();
|
|
2002
|
-
const titleId =
|
|
2142
|
+
const titleId = useId10();
|
|
2003
2143
|
const rootRef = useRef10(null);
|
|
2004
2144
|
const hasErrors = errors2.length > 0;
|
|
2005
2145
|
useEffect8(() => {
|
|
2006
2146
|
if (hasErrors) rootRef.current?.focus();
|
|
2007
2147
|
}, [focusKey, hasErrors]);
|
|
2008
2148
|
if (!hasErrors) return null;
|
|
2009
|
-
return /* @__PURE__ */
|
|
2149
|
+
return /* @__PURE__ */ jsx26(
|
|
2010
2150
|
"div",
|
|
2011
2151
|
{
|
|
2012
2152
|
ref: mergeRefs(ref, rootRef),
|
|
@@ -2014,12 +2154,12 @@ var ErrorSummary = /* @__PURE__ */ forwardRef21(function ErrorSummary2({ errors:
|
|
|
2014
2154
|
"aria-labelledby": titleId,
|
|
2015
2155
|
className: cx(root7, className),
|
|
2016
2156
|
...rest,
|
|
2017
|
-
children: /* @__PURE__ */
|
|
2157
|
+
children: /* @__PURE__ */ jsx26(
|
|
2018
2158
|
Alert,
|
|
2019
2159
|
{
|
|
2020
2160
|
color: "danger",
|
|
2021
|
-
title: /* @__PURE__ */
|
|
2022
|
-
children: /* @__PURE__ */
|
|
2161
|
+
title: /* @__PURE__ */ jsx26("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` }),
|
|
2162
|
+
children: /* @__PURE__ */ jsx26("ul", { className: list3, children: errors2.map((error) => /* @__PURE__ */ jsx26("li", { children: /* @__PURE__ */ jsx26(
|
|
2023
2163
|
"a",
|
|
2024
2164
|
{
|
|
2025
2165
|
href: `#${error.id}`,
|
|
@@ -2037,7 +2177,7 @@ var ErrorSummary = /* @__PURE__ */ forwardRef21(function ErrorSummary2({ errors:
|
|
|
2037
2177
|
});
|
|
2038
2178
|
|
|
2039
2179
|
// src/components/FileUpload/FileUpload.tsx
|
|
2040
|
-
import { forwardRef as
|
|
2180
|
+
import { forwardRef as forwardRef23, useEffect as useEffect9, useId as useId11, useRef as useRef11, useState as useState11 } from "react";
|
|
2041
2181
|
import { FileIcon, UploadIcon, XIcon as XIcon6 } from "@bestow-ui/icons";
|
|
2042
2182
|
|
|
2043
2183
|
// src/components/FileUpload/FileUpload.css.ts
|
|
@@ -2053,7 +2193,7 @@ var list4 = "r2jefr4";
|
|
|
2053
2193
|
var root8 = "r2jefr0";
|
|
2054
2194
|
|
|
2055
2195
|
// src/components/FileUpload/FileUpload.tsx
|
|
2056
|
-
import { jsx as
|
|
2196
|
+
import { jsx as jsx27, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2057
2197
|
var REMOVED_ANNOUNCE_DELAY = 500;
|
|
2058
2198
|
function formatSize(bytes) {
|
|
2059
2199
|
if (bytes < 1024) return `${bytes} B`;
|
|
@@ -2070,7 +2210,7 @@ function matchesAccept(file, accept) {
|
|
|
2070
2210
|
}
|
|
2071
2211
|
var NO_FILES = [];
|
|
2072
2212
|
var sameFile = (a, b) => a.name === b.name && a.size === b.size && a.lastModified === b.lastModified;
|
|
2073
|
-
var FileUpload = /* @__PURE__ */
|
|
2213
|
+
var FileUpload = /* @__PURE__ */ forwardRef23(function FileUpload2(props, ref) {
|
|
2074
2214
|
const {
|
|
2075
2215
|
value: value3,
|
|
2076
2216
|
defaultValue,
|
|
@@ -2091,12 +2231,12 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2091
2231
|
} = props;
|
|
2092
2232
|
const m = useMessages();
|
|
2093
2233
|
const isControlled = "value" in props;
|
|
2094
|
-
const [innerFiles, setInnerFiles] =
|
|
2234
|
+
const [innerFiles, setInnerFiles] = useState11(defaultValue ?? []);
|
|
2095
2235
|
const files = isControlled ? value3 ?? NO_FILES : innerFiles;
|
|
2096
|
-
const [rejections, setRejections] =
|
|
2097
|
-
const [announcement, setAnnouncement] =
|
|
2098
|
-
const [dragging, setDragging] =
|
|
2099
|
-
const generatedId =
|
|
2236
|
+
const [rejections, setRejections] = useState11([]);
|
|
2237
|
+
const [announcement, setAnnouncement] = useState11("");
|
|
2238
|
+
const [dragging, setDragging] = useState11(false);
|
|
2239
|
+
const generatedId = useId11();
|
|
2100
2240
|
const baseId = id ?? generatedId;
|
|
2101
2241
|
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
2102
2242
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
@@ -2175,12 +2315,12 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2175
2315
|
event.preventDefault();
|
|
2176
2316
|
setDragging(over);
|
|
2177
2317
|
};
|
|
2178
|
-
return /* @__PURE__ */
|
|
2179
|
-
label6 && /* @__PURE__ */
|
|
2318
|
+
return /* @__PURE__ */ jsxs24("div", { ref, className: cx(field, root8, className), children: [
|
|
2319
|
+
label6 && /* @__PURE__ */ jsxs24("span", { id: labelId, className: label, children: [
|
|
2180
2320
|
label6,
|
|
2181
|
-
required && /* @__PURE__ */
|
|
2321
|
+
required && /* @__PURE__ */ jsx27("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2182
2322
|
] }),
|
|
2183
|
-
/* @__PURE__ */
|
|
2323
|
+
/* @__PURE__ */ jsxs24(
|
|
2184
2324
|
"div",
|
|
2185
2325
|
{
|
|
2186
2326
|
role: "group",
|
|
@@ -2200,8 +2340,8 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2200
2340
|
if (!disabled) addFiles(Array.from(event.dataTransfer.files));
|
|
2201
2341
|
},
|
|
2202
2342
|
children: [
|
|
2203
|
-
/* @__PURE__ */
|
|
2204
|
-
/* @__PURE__ */
|
|
2343
|
+
/* @__PURE__ */ jsx27("span", { className: dropIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx27(UploadIcon, { size: 24 }) }),
|
|
2344
|
+
/* @__PURE__ */ jsx27(
|
|
2205
2345
|
Button,
|
|
2206
2346
|
{
|
|
2207
2347
|
ref: selectButtonRef,
|
|
@@ -2214,8 +2354,8 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2214
2354
|
children: selectLabel
|
|
2215
2355
|
}
|
|
2216
2356
|
),
|
|
2217
|
-
/* @__PURE__ */
|
|
2218
|
-
/* @__PURE__ */
|
|
2357
|
+
/* @__PURE__ */ jsx27("span", { className: dropHint, children: m.fileDropHint ?? "\uB610\uB294 \uC5EC\uAE30\uB85C \uB04C\uC5B4\uB2E4 \uB193\uC73C\uC138\uC694" }),
|
|
2358
|
+
/* @__PURE__ */ jsx27(
|
|
2219
2359
|
"input",
|
|
2220
2360
|
{
|
|
2221
2361
|
ref: inputRef,
|
|
@@ -2238,11 +2378,11 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2238
2378
|
]
|
|
2239
2379
|
}
|
|
2240
2380
|
),
|
|
2241
|
-
files.length > 0 && /* @__PURE__ */
|
|
2242
|
-
/* @__PURE__ */
|
|
2243
|
-
/* @__PURE__ */
|
|
2244
|
-
/* @__PURE__ */
|
|
2245
|
-
/* @__PURE__ */
|
|
2381
|
+
files.length > 0 && /* @__PURE__ */ jsx27("ul", { "aria-label": m.fileList ?? "\uC120\uD0DD\uD55C \uD30C\uC77C", className: list4, children: files.map((file, index) => /* @__PURE__ */ jsxs24("li", { className: item5, children: [
|
|
2382
|
+
/* @__PURE__ */ jsx27("span", { className: fileIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx27(FileIcon, { size: 16 }) }),
|
|
2383
|
+
/* @__PURE__ */ jsx27("span", { className: fileName, children: file.name }),
|
|
2384
|
+
/* @__PURE__ */ jsx27("span", { id: `${baseId}-size-${index}`, className: fileSize, children: formatSize(file.size) }),
|
|
2385
|
+
/* @__PURE__ */ jsx27(
|
|
2246
2386
|
IconButton,
|
|
2247
2387
|
{
|
|
2248
2388
|
ref: (node) => {
|
|
@@ -2253,20 +2393,20 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2253
2393
|
"aria-describedby": `${baseId}-size-${index}`,
|
|
2254
2394
|
disabled,
|
|
2255
2395
|
onClick: () => removeAt(index),
|
|
2256
|
-
children: /* @__PURE__ */
|
|
2396
|
+
children: /* @__PURE__ */ jsx27(XIcon6, {})
|
|
2257
2397
|
}
|
|
2258
2398
|
)
|
|
2259
2399
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }),
|
|
2260
|
-
rejections.length > 0 && /* @__PURE__ */
|
|
2261
|
-
helperText3 && /* @__PURE__ */
|
|
2262
|
-
/* @__PURE__ */
|
|
2400
|
+
rejections.length > 0 && /* @__PURE__ */ jsx27("ul", { id: errorsId, className: errors, children: [...new Set(rejections.map(reasonText))].map((text3) => /* @__PURE__ */ jsx27("li", { children: text3 }, text3)) }),
|
|
2401
|
+
helperText3 && /* @__PURE__ */ jsx27("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
2402
|
+
/* @__PURE__ */ jsx27("div", { role: "status", className: visuallyHidden, children: announcement })
|
|
2263
2403
|
] });
|
|
2264
2404
|
});
|
|
2265
2405
|
|
|
2266
2406
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2267
2407
|
import * as RadixMenu from "@radix-ui/react-dropdown-menu";
|
|
2268
2408
|
import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon3, MinusIcon } from "@bestow-ui/icons";
|
|
2269
|
-
import { forwardRef as
|
|
2409
|
+
import { forwardRef as forwardRef24 } from "react";
|
|
2270
2410
|
|
|
2271
2411
|
// src/components/DropdownMenu/DropdownMenu.css.ts
|
|
2272
2412
|
var content9 = "_1d7ahux0";
|
|
@@ -2283,14 +2423,14 @@ var subChevron = "_1d7ahuxb";
|
|
|
2283
2423
|
var subTrigger = "_1d7ahuxa";
|
|
2284
2424
|
|
|
2285
2425
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2286
|
-
import { jsx as
|
|
2426
|
+
import { jsx as jsx28, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2287
2427
|
var DropdownMenu = RadixMenu.Root;
|
|
2288
2428
|
var DropdownMenuTrigger = RadixMenu.Trigger;
|
|
2289
2429
|
var DropdownMenuGroup = RadixMenu.Group;
|
|
2290
|
-
var DropdownMenuContent = /* @__PURE__ */
|
|
2430
|
+
var DropdownMenuContent = /* @__PURE__ */ forwardRef24(
|
|
2291
2431
|
function DropdownMenuContent2({ className, style, side = "bottom", align = "start", sideOffset = 4, collisionPadding = 8, ...rest }, ref) {
|
|
2292
2432
|
const portal2 = usePortalProps();
|
|
2293
|
-
return /* @__PURE__ */
|
|
2433
|
+
return /* @__PURE__ */ jsx28(RadixMenu.Portal, { children: /* @__PURE__ */ jsx28(
|
|
2294
2434
|
RadixMenu.Content,
|
|
2295
2435
|
{
|
|
2296
2436
|
ref,
|
|
@@ -2305,56 +2445,56 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef23(
|
|
|
2305
2445
|
) });
|
|
2306
2446
|
}
|
|
2307
2447
|
);
|
|
2308
|
-
var DropdownMenuItem = /* @__PURE__ */
|
|
2448
|
+
var DropdownMenuItem = /* @__PURE__ */ forwardRef24(
|
|
2309
2449
|
function DropdownMenuItem2({ icon: icon7, shortcut: shortcut2, color = "neutral", className, children, ...rest }, ref) {
|
|
2310
|
-
return /* @__PURE__ */
|
|
2311
|
-
icon7 && /* @__PURE__ */
|
|
2450
|
+
return /* @__PURE__ */ jsxs25(RadixMenu.Item, { ref, className: cx(item6, color === "danger" && danger, className), ...rest, children: [
|
|
2451
|
+
icon7 && /* @__PURE__ */ jsx28("span", { className: icon4, "aria-hidden": true, children: icon7 }),
|
|
2312
2452
|
children,
|
|
2313
|
-
shortcut2 && /* @__PURE__ */
|
|
2453
|
+
shortcut2 && /* @__PURE__ */ jsx28("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
|
|
2314
2454
|
] });
|
|
2315
2455
|
}
|
|
2316
2456
|
);
|
|
2317
|
-
var DropdownMenuLabel = /* @__PURE__ */
|
|
2457
|
+
var DropdownMenuLabel = /* @__PURE__ */ forwardRef24(
|
|
2318
2458
|
function DropdownMenuLabel2({ className, ...rest }, ref) {
|
|
2319
|
-
return /* @__PURE__ */
|
|
2459
|
+
return /* @__PURE__ */ jsx28(RadixMenu.Label, { ref, className: cx(label2, className), ...rest });
|
|
2320
2460
|
}
|
|
2321
2461
|
);
|
|
2322
|
-
var DropdownMenuSeparator = /* @__PURE__ */
|
|
2462
|
+
var DropdownMenuSeparator = /* @__PURE__ */ forwardRef24(
|
|
2323
2463
|
function DropdownMenuSeparator2({ className, ...rest }, ref) {
|
|
2324
|
-
return /* @__PURE__ */
|
|
2464
|
+
return /* @__PURE__ */ jsx28(RadixMenu.Separator, { ref, className: cx(separator3, className), ...rest });
|
|
2325
2465
|
}
|
|
2326
2466
|
);
|
|
2327
|
-
var DropdownMenuCheckboxItem = /* @__PURE__ */
|
|
2467
|
+
var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef24(
|
|
2328
2468
|
function DropdownMenuCheckboxItem2({ className, children, ...rest }, ref) {
|
|
2329
|
-
return /* @__PURE__ */
|
|
2330
|
-
/* @__PURE__ */
|
|
2469
|
+
return /* @__PURE__ */ jsxs25(RadixMenu.CheckboxItem, { ref, className: cx(item6, className), ...rest, children: [
|
|
2470
|
+
/* @__PURE__ */ jsx28("span", { className: indicator, "aria-hidden": true, children: /* @__PURE__ */ jsx28(RadixMenu.ItemIndicator, { className: indicatorInner, children: rest.checked === "indeterminate" ? /* @__PURE__ */ jsx28(MinusIcon, { size: 16 }) : /* @__PURE__ */ jsx28(CheckIcon2, { size: 16 }) }) }),
|
|
2331
2471
|
children
|
|
2332
2472
|
] });
|
|
2333
2473
|
}
|
|
2334
2474
|
);
|
|
2335
2475
|
var DropdownMenuRadioGroup = RadixMenu.RadioGroup;
|
|
2336
|
-
var DropdownMenuRadioItem = /* @__PURE__ */
|
|
2476
|
+
var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef24(
|
|
2337
2477
|
function DropdownMenuRadioItem2({ className, children, ...rest }, ref) {
|
|
2338
|
-
return /* @__PURE__ */
|
|
2339
|
-
/* @__PURE__ */
|
|
2478
|
+
return /* @__PURE__ */ jsxs25(RadixMenu.RadioItem, { ref, className: cx(item6, className), ...rest, children: [
|
|
2479
|
+
/* @__PURE__ */ jsx28("span", { className: indicator, "aria-hidden": true, children: /* @__PURE__ */ jsx28(RadixMenu.ItemIndicator, { className: indicatorInner, children: /* @__PURE__ */ jsx28("span", { className: radioDot }) }) }),
|
|
2340
2480
|
children
|
|
2341
2481
|
] });
|
|
2342
2482
|
}
|
|
2343
2483
|
);
|
|
2344
2484
|
var DropdownMenuSub = RadixMenu.Sub;
|
|
2345
|
-
var DropdownMenuSubTrigger = /* @__PURE__ */
|
|
2485
|
+
var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef24(
|
|
2346
2486
|
function DropdownMenuSubTrigger2({ icon: icon7, className, children, ...rest }, ref) {
|
|
2347
|
-
return /* @__PURE__ */
|
|
2348
|
-
icon7 && /* @__PURE__ */
|
|
2487
|
+
return /* @__PURE__ */ jsxs25(RadixMenu.SubTrigger, { ref, className: cx(item6, subTrigger, className), ...rest, children: [
|
|
2488
|
+
icon7 && /* @__PURE__ */ jsx28("span", { className: icon4, "aria-hidden": true, children: icon7 }),
|
|
2349
2489
|
children,
|
|
2350
|
-
/* @__PURE__ */
|
|
2490
|
+
/* @__PURE__ */ jsx28("span", { className: subChevron, "aria-hidden": true, children: /* @__PURE__ */ jsx28(ChevronRightIcon3, { size: 16 }) })
|
|
2351
2491
|
] });
|
|
2352
2492
|
}
|
|
2353
2493
|
);
|
|
2354
|
-
var DropdownMenuSubContent = /* @__PURE__ */
|
|
2494
|
+
var DropdownMenuSubContent = /* @__PURE__ */ forwardRef24(
|
|
2355
2495
|
function DropdownMenuSubContent2({ className, style, sideOffset = 4, alignOffset = -5, collisionPadding = 8, ...rest }, ref) {
|
|
2356
2496
|
const portal2 = usePortalProps();
|
|
2357
|
-
return /* @__PURE__ */
|
|
2497
|
+
return /* @__PURE__ */ jsx28(RadixMenu.Portal, { children: /* @__PURE__ */ jsx28(
|
|
2358
2498
|
RadixMenu.SubContent,
|
|
2359
2499
|
{
|
|
2360
2500
|
ref,
|
|
@@ -2370,7 +2510,7 @@ var DropdownMenuSubContent = /* @__PURE__ */ forwardRef23(
|
|
|
2370
2510
|
);
|
|
2371
2511
|
|
|
2372
2512
|
// src/components/NumberInput/NumberInput.tsx
|
|
2373
|
-
import { forwardRef as
|
|
2513
|
+
import { forwardRef as forwardRef25, useEffect as useEffect10, useId as useId12, useRef as useRef12, useState as useState12 } from "react";
|
|
2374
2514
|
import { MinusIcon as MinusIcon2, PlusIcon } from "@bestow-ui/icons";
|
|
2375
2515
|
|
|
2376
2516
|
// src/components/NumberInput/NumberInput.css.ts
|
|
@@ -2381,12 +2521,12 @@ var stepper = /* @__PURE__ */ _7a46811({ defaultClassName: "_1vq2qhv3", variantC
|
|
|
2381
2521
|
var unit = "_1vq2qhv2";
|
|
2382
2522
|
|
|
2383
2523
|
// src/components/NumberInput/NumberInput.tsx
|
|
2384
|
-
import { Fragment as
|
|
2524
|
+
import { Fragment as Fragment7, jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2385
2525
|
var MAX_DIGITS2 = 15;
|
|
2386
2526
|
var isMeaningful = (char) => /[\d.-]/.test(char);
|
|
2387
2527
|
var decimalsOf = (n) => Number.isFinite(n) ? String(n).split(".")[1]?.length ?? 0 : 0;
|
|
2388
2528
|
var parse = (raw) => /\d/.test(raw) ? Number(raw) : null;
|
|
2389
|
-
var NumberInput = /* @__PURE__ */
|
|
2529
|
+
var NumberInput = /* @__PURE__ */ forwardRef25(
|
|
2390
2530
|
function NumberInput2(props, ref) {
|
|
2391
2531
|
const {
|
|
2392
2532
|
value: value3,
|
|
@@ -2413,7 +2553,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2413
2553
|
const isControlled = "value" in props;
|
|
2414
2554
|
const m = useMessages();
|
|
2415
2555
|
const inputRef = useRef12(null);
|
|
2416
|
-
const generatedId =
|
|
2556
|
+
const generatedId = useId12();
|
|
2417
2557
|
const inputId = id ?? generatedId;
|
|
2418
2558
|
const precision = Math.max(0, precisionProp ?? decimalsOf(step2));
|
|
2419
2559
|
const allowNegative = min === void 0 || min < 0;
|
|
@@ -2458,7 +2598,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2458
2598
|
}, [value3]);
|
|
2459
2599
|
const current2 = parse(field4.raw);
|
|
2460
2600
|
const valueText = (n) => `${format2(toRaw(n))}${unit2 ?? ""}`;
|
|
2461
|
-
const [announcement, setAnnouncement] =
|
|
2601
|
+
const [announcement, setAnnouncement] = useState12("");
|
|
2462
2602
|
const setValue = (next, announce = true) => {
|
|
2463
2603
|
setRaw(toRaw(next));
|
|
2464
2604
|
emit(next);
|
|
@@ -2492,7 +2632,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2492
2632
|
field4.onKeyDown(event);
|
|
2493
2633
|
}
|
|
2494
2634
|
};
|
|
2495
|
-
const stepper2 = (direction) => /* @__PURE__ */
|
|
2635
|
+
const stepper2 = (direction) => /* @__PURE__ */ jsx29(
|
|
2496
2636
|
IconButton,
|
|
2497
2637
|
{
|
|
2498
2638
|
size: "sm",
|
|
@@ -2503,11 +2643,11 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2503
2643
|
onMouseDown: (event) => event.preventDefault(),
|
|
2504
2644
|
onClick: () => stepBy(direction * step2),
|
|
2505
2645
|
className: stepper({ size }),
|
|
2506
|
-
children: direction < 0 ? /* @__PURE__ */
|
|
2646
|
+
children: direction < 0 ? /* @__PURE__ */ jsx29(MinusIcon2, {}) : /* @__PURE__ */ jsx29(PlusIcon, {})
|
|
2507
2647
|
}
|
|
2508
2648
|
);
|
|
2509
|
-
return /* @__PURE__ */
|
|
2510
|
-
/* @__PURE__ */
|
|
2649
|
+
return /* @__PURE__ */ jsxs26(Fragment7, { children: [
|
|
2650
|
+
/* @__PURE__ */ jsx29(
|
|
2511
2651
|
TextField,
|
|
2512
2652
|
{
|
|
2513
2653
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -2535,23 +2675,23 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2535
2675
|
disabled,
|
|
2536
2676
|
readOnly,
|
|
2537
2677
|
startAdornment: hideStepper ? void 0 : stepper2(-1),
|
|
2538
|
-
endAdornment: unit2 || !hideStepper ? /* @__PURE__ */
|
|
2539
|
-
unit2 && /* @__PURE__ */
|
|
2678
|
+
endAdornment: unit2 || !hideStepper ? /* @__PURE__ */ jsxs26("span", { className: end, children: [
|
|
2679
|
+
unit2 && /* @__PURE__ */ jsx29("span", { className: unit, children: unit2 }),
|
|
2540
2680
|
!hideStepper && stepper2(1)
|
|
2541
2681
|
] }) : void 0,
|
|
2542
2682
|
className: cx(input4, className),
|
|
2543
2683
|
...rest
|
|
2544
2684
|
}
|
|
2545
2685
|
),
|
|
2546
|
-
name && /* @__PURE__ */
|
|
2547
|
-
/* @__PURE__ */
|
|
2686
|
+
name && /* @__PURE__ */ jsx29("input", { type: "hidden", name, value: current2 === null ? "" : String(current2) }),
|
|
2687
|
+
/* @__PURE__ */ jsx29("span", { "aria-live": "assertive", "aria-atomic": "true", className: visuallyHidden, children: announcement })
|
|
2548
2688
|
] });
|
|
2549
2689
|
}
|
|
2550
2690
|
);
|
|
2551
2691
|
|
|
2552
2692
|
// src/components/Pagination/Pagination.tsx
|
|
2553
2693
|
import { ChevronLeftIcon as ChevronLeftIcon2, ChevronRightIcon as ChevronRightIcon4 } from "@bestow-ui/icons";
|
|
2554
|
-
import { forwardRef as
|
|
2694
|
+
import { forwardRef as forwardRef26, useState as useState13 } from "react";
|
|
2555
2695
|
|
|
2556
2696
|
// src/components/Pagination/getPaginationItems.ts
|
|
2557
2697
|
var range = (start, end2) => end2 < start ? [] : Array.from({ length: end2 - start + 1 }, (_, i) => start + i);
|
|
@@ -2567,14 +2707,14 @@ function getPaginationItems(page, totalPages, siblingCount = 1, boundaryCount =
|
|
|
2567
2707
|
Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2),
|
|
2568
2708
|
endPages.length > 0 ? endPages[0] - 2 : totalPages - 1
|
|
2569
2709
|
);
|
|
2570
|
-
const
|
|
2571
|
-
if (siblingsStart > boundaryCount + 2)
|
|
2572
|
-
else if (boundaryCount + 1 < totalPages - boundaryCount)
|
|
2573
|
-
|
|
2574
|
-
if (siblingsEnd < totalPages - boundaryCount - 1)
|
|
2575
|
-
else if (totalPages - boundaryCount > boundaryCount)
|
|
2576
|
-
|
|
2577
|
-
return
|
|
2710
|
+
const items3 = [...startPages];
|
|
2711
|
+
if (siblingsStart > boundaryCount + 2) items3.push("ellipsis-start");
|
|
2712
|
+
else if (boundaryCount + 1 < totalPages - boundaryCount) items3.push(boundaryCount + 1);
|
|
2713
|
+
items3.push(...range(siblingsStart, siblingsEnd));
|
|
2714
|
+
if (siblingsEnd < totalPages - boundaryCount - 1) items3.push("ellipsis-end");
|
|
2715
|
+
else if (totalPages - boundaryCount > boundaryCount) items3.push(totalPages - boundaryCount);
|
|
2716
|
+
items3.push(...endPages);
|
|
2717
|
+
return items3;
|
|
2578
2718
|
}
|
|
2579
2719
|
|
|
2580
2720
|
// src/components/Pagination/Pagination.css.ts
|
|
@@ -2584,8 +2724,8 @@ var item7 = /* @__PURE__ */ _7a46812({ defaultClassName: "_1iraoak1", variantCla
|
|
|
2584
2724
|
var list5 = "_1iraoak0";
|
|
2585
2725
|
|
|
2586
2726
|
// src/components/Pagination/Pagination.tsx
|
|
2587
|
-
import { jsx as
|
|
2588
|
-
var Pagination = /* @__PURE__ */
|
|
2727
|
+
import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2728
|
+
var Pagination = /* @__PURE__ */ forwardRef26(function Pagination2({
|
|
2589
2729
|
totalPages,
|
|
2590
2730
|
page: pageProp,
|
|
2591
2731
|
defaultPage = 1,
|
|
@@ -2598,7 +2738,7 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2598
2738
|
"aria-label": ariaLabelProp,
|
|
2599
2739
|
...rest
|
|
2600
2740
|
}, ref) {
|
|
2601
|
-
const [uncontrolledPage, setUncontrolledPage] =
|
|
2741
|
+
const [uncontrolledPage, setUncontrolledPage] = useState13(defaultPage);
|
|
2602
2742
|
const m = useMessages();
|
|
2603
2743
|
const ariaLabel = ariaLabelProp ?? m.pagination ?? "\uD398\uC774\uC9C0 \uD0D0\uC0C9";
|
|
2604
2744
|
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`);
|
|
@@ -2610,8 +2750,8 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2610
2750
|
onPageChange?.(next);
|
|
2611
2751
|
};
|
|
2612
2752
|
const itemClass = item7({ size });
|
|
2613
|
-
return /* @__PURE__ */
|
|
2614
|
-
/* @__PURE__ */
|
|
2753
|
+
return /* @__PURE__ */ jsx30("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsxs27("ul", { className: list5, children: [
|
|
2754
|
+
/* @__PURE__ */ jsx30("li", { children: /* @__PURE__ */ jsx30(
|
|
2615
2755
|
"button",
|
|
2616
2756
|
{
|
|
2617
2757
|
type: "button",
|
|
@@ -2619,11 +2759,11 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2619
2759
|
"aria-label": getItemLabel("previous", page - 1),
|
|
2620
2760
|
disabled: page <= 1,
|
|
2621
2761
|
onClick: () => goTo(page - 1),
|
|
2622
|
-
children: /* @__PURE__ */
|
|
2762
|
+
children: /* @__PURE__ */ jsx30(ChevronLeftIcon2, { size: 16 })
|
|
2623
2763
|
}
|
|
2624
2764
|
) }),
|
|
2625
2765
|
getPaginationItems(page, totalPages, siblingCount, boundaryCount).map(
|
|
2626
|
-
(item9) => typeof item9 === "number" ? /* @__PURE__ */
|
|
2766
|
+
(item9) => typeof item9 === "number" ? /* @__PURE__ */ jsx30("li", { children: /* @__PURE__ */ jsx30(
|
|
2627
2767
|
"button",
|
|
2628
2768
|
{
|
|
2629
2769
|
type: "button",
|
|
@@ -2633,9 +2773,9 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2633
2773
|
onClick: () => goTo(item9),
|
|
2634
2774
|
children: item9
|
|
2635
2775
|
}
|
|
2636
|
-
) }, item9) : /* @__PURE__ */
|
|
2776
|
+
) }, item9) : /* @__PURE__ */ jsx30("li", { "aria-hidden": true, className: cx(itemClass, ellipsis), children: "\u2026" }, item9)
|
|
2637
2777
|
),
|
|
2638
|
-
/* @__PURE__ */
|
|
2778
|
+
/* @__PURE__ */ jsx30("li", { children: /* @__PURE__ */ jsx30(
|
|
2639
2779
|
"button",
|
|
2640
2780
|
{
|
|
2641
2781
|
type: "button",
|
|
@@ -2643,22 +2783,22 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2643
2783
|
"aria-label": getItemLabel("next", page + 1),
|
|
2644
2784
|
disabled: page >= totalPages,
|
|
2645
2785
|
onClick: () => goTo(page + 1),
|
|
2646
|
-
children: /* @__PURE__ */
|
|
2786
|
+
children: /* @__PURE__ */ jsx30(ChevronRightIcon4, { size: 16 })
|
|
2647
2787
|
}
|
|
2648
2788
|
) })
|
|
2649
2789
|
] }) });
|
|
2650
2790
|
});
|
|
2651
2791
|
|
|
2652
2792
|
// src/components/PhoneNumberInput/PhoneNumberInput.tsx
|
|
2653
|
-
import { forwardRef as
|
|
2793
|
+
import { forwardRef as forwardRef27, useRef as useRef13 } from "react";
|
|
2654
2794
|
import { formatPhoneNumber, phoneNumberMaxDigits } from "@bestow-ui/korean-utils";
|
|
2655
|
-
import { jsx as
|
|
2795
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2656
2796
|
var sanitize3 = (input6) => {
|
|
2657
2797
|
const digits = input6.replace(/\D/g, "");
|
|
2658
2798
|
return digits.slice(0, phoneNumberMaxDigits(digits));
|
|
2659
2799
|
};
|
|
2660
2800
|
var isDigit4 = (char) => /\d/.test(char);
|
|
2661
|
-
var PhoneNumberInput = /* @__PURE__ */
|
|
2801
|
+
var PhoneNumberInput = /* @__PURE__ */ forwardRef27(
|
|
2662
2802
|
function PhoneNumberInput2(props, ref) {
|
|
2663
2803
|
const {
|
|
2664
2804
|
value: value3,
|
|
@@ -2682,7 +2822,7 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef26(
|
|
|
2682
2822
|
isMeaningful: isDigit4,
|
|
2683
2823
|
inputRef
|
|
2684
2824
|
});
|
|
2685
|
-
return /* @__PURE__ */
|
|
2825
|
+
return /* @__PURE__ */ jsx31(
|
|
2686
2826
|
TextField,
|
|
2687
2827
|
{
|
|
2688
2828
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -2704,21 +2844,21 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef26(
|
|
|
2704
2844
|
);
|
|
2705
2845
|
|
|
2706
2846
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
2707
|
-
import { forwardRef as
|
|
2847
|
+
import { forwardRef as forwardRef28, useId as useId13, useState as useState14 } from "react";
|
|
2708
2848
|
|
|
2709
2849
|
// src/components/RadioGroup/RadioGroup.css.ts
|
|
2710
2850
|
import { createRuntimeFn as _7a46813 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
2711
|
-
var
|
|
2712
|
-
var
|
|
2713
|
-
var
|
|
2851
|
+
var description5 = "_1w9iwjmc";
|
|
2852
|
+
var groupLabel2 = "_1w9iwjmd";
|
|
2853
|
+
var items2 = /* @__PURE__ */ _7a46813({ defaultClassName: "_1w9iwjm0", variantClassNames: { orientation: { vertical: "_1w9iwjm1", horizontal: "_1w9iwjm2" } }, defaultVariants: { orientation: "vertical" }, compoundVariants: [] });
|
|
2714
2854
|
var labelText = "_1w9iwjmb";
|
|
2715
|
-
var
|
|
2855
|
+
var option2 = /* @__PURE__ */ _7a46813({ defaultClassName: "_1w9iwjm3", variantClassNames: { size: { sm: "_1w9iwjm4", md: "_1w9iwjm5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
2716
2856
|
var radio = /* @__PURE__ */ _7a46813({ defaultClassName: "_1w9iwjm7", variantClassNames: { size: { sm: "_1w9iwjm8", md: "_1w9iwjm9" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
2717
2857
|
var text = "_1w9iwjma";
|
|
2718
2858
|
|
|
2719
2859
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
2720
|
-
import { jsx as
|
|
2721
|
-
var RadioGroup2 = /* @__PURE__ */
|
|
2860
|
+
import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2861
|
+
var RadioGroup2 = /* @__PURE__ */ forwardRef28(function RadioGroup3(props, ref) {
|
|
2722
2862
|
const {
|
|
2723
2863
|
options,
|
|
2724
2864
|
value: value3,
|
|
@@ -2737,9 +2877,9 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
|
|
|
2737
2877
|
className
|
|
2738
2878
|
} = props;
|
|
2739
2879
|
const isControlled = "value" in props;
|
|
2740
|
-
const [innerValue, setInnerValue] =
|
|
2880
|
+
const [innerValue, setInnerValue] = useState14(defaultValue ?? "");
|
|
2741
2881
|
const current2 = isControlled ? value3 ?? "" : innerValue;
|
|
2742
|
-
const generatedId =
|
|
2882
|
+
const generatedId = useId13();
|
|
2743
2883
|
const baseId = id ?? generatedId;
|
|
2744
2884
|
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
2745
2885
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
@@ -2750,12 +2890,12 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
|
|
|
2750
2890
|
if (!isControlled) setInnerValue(next);
|
|
2751
2891
|
onValueChange?.(next);
|
|
2752
2892
|
};
|
|
2753
|
-
return /* @__PURE__ */
|
|
2754
|
-
label6 && /* @__PURE__ */
|
|
2893
|
+
return /* @__PURE__ */ jsxs28("div", { className: cx(field, className), children: [
|
|
2894
|
+
label6 && /* @__PURE__ */ jsxs28("span", { id: labelId, className: cx(label, groupLabel2), children: [
|
|
2755
2895
|
label6,
|
|
2756
|
-
required && /* @__PURE__ */
|
|
2896
|
+
required && /* @__PURE__ */ jsx32("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2757
2897
|
] }),
|
|
2758
|
-
/* @__PURE__ */
|
|
2898
|
+
/* @__PURE__ */ jsx32(
|
|
2759
2899
|
"div",
|
|
2760
2900
|
{
|
|
2761
2901
|
ref,
|
|
@@ -2767,23 +2907,23 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
|
|
|
2767
2907
|
"aria-invalid": error || void 0,
|
|
2768
2908
|
"aria-required": required || void 0,
|
|
2769
2909
|
"data-disabled": disabled || void 0,
|
|
2770
|
-
className:
|
|
2771
|
-
children: options.map((
|
|
2772
|
-
const itemId = `${baseId}-${
|
|
2773
|
-
const descriptionId =
|
|
2774
|
-
const itemDisabled = disabled ||
|
|
2775
|
-
const checked =
|
|
2776
|
-
return /* @__PURE__ */
|
|
2777
|
-
/* @__PURE__ */
|
|
2910
|
+
className: items2({ orientation }),
|
|
2911
|
+
children: options.map((option3) => {
|
|
2912
|
+
const itemId = `${baseId}-${option3.value}`;
|
|
2913
|
+
const descriptionId = option3.description ? `${itemId}-description` : void 0;
|
|
2914
|
+
const itemDisabled = disabled || option3.disabled;
|
|
2915
|
+
const checked = option3.value === current2;
|
|
2916
|
+
return /* @__PURE__ */ jsxs28("div", { className: option2({ size }), "data-disabled": itemDisabled || void 0, children: [
|
|
2917
|
+
/* @__PURE__ */ jsx32(
|
|
2778
2918
|
"input",
|
|
2779
2919
|
{
|
|
2780
2920
|
type: "radio",
|
|
2781
2921
|
id: itemId,
|
|
2782
2922
|
name: groupName,
|
|
2783
2923
|
form: detachedForm,
|
|
2784
|
-
value:
|
|
2924
|
+
value: option3.value,
|
|
2785
2925
|
checked,
|
|
2786
|
-
onChange: () => handleChange(
|
|
2926
|
+
onChange: () => handleChange(option3.value),
|
|
2787
2927
|
disabled: itemDisabled,
|
|
2788
2928
|
required,
|
|
2789
2929
|
"aria-describedby": descriptionId,
|
|
@@ -2791,20 +2931,166 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
|
|
|
2791
2931
|
className: radio({ size })
|
|
2792
2932
|
}
|
|
2793
2933
|
),
|
|
2794
|
-
/* @__PURE__ */
|
|
2795
|
-
/* @__PURE__ */
|
|
2796
|
-
|
|
2934
|
+
/* @__PURE__ */ jsxs28("span", { className: text, children: [
|
|
2935
|
+
/* @__PURE__ */ jsx32("label", { htmlFor: itemId, className: labelText, children: option3.label }),
|
|
2936
|
+
option3.description && /* @__PURE__ */ jsx32("span", { id: descriptionId, className: description5, children: option3.description })
|
|
2797
2937
|
] })
|
|
2798
|
-
] },
|
|
2938
|
+
] }, option3.value);
|
|
2799
2939
|
})
|
|
2800
2940
|
}
|
|
2801
2941
|
),
|
|
2802
|
-
helperText3 && /* @__PURE__ */
|
|
2942
|
+
helperText3 && /* @__PURE__ */ jsx32("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
2803
2943
|
] });
|
|
2804
2944
|
});
|
|
2805
2945
|
|
|
2946
|
+
// src/components/ResidentNumberInput/ResidentNumberInput.tsx
|
|
2947
|
+
import { forwardRef as forwardRef29, useId as useId14, useRef as useRef14, useState as useState15 } from "react";
|
|
2948
|
+
import { isValidResidentNumber, parseResidentNumber } from "@bestow-ui/korean-utils";
|
|
2949
|
+
|
|
2950
|
+
// src/components/ResidentNumberInput/ResidentNumberInput.css.ts
|
|
2951
|
+
var back = "_1llmfr72";
|
|
2952
|
+
var backOne = "_1llmfr73";
|
|
2953
|
+
var front = "_1llmfr71";
|
|
2954
|
+
var hiddenDigits = "_1llmfr75";
|
|
2955
|
+
var row3 = "_1llmfr70";
|
|
2956
|
+
var separator4 = "_1llmfr74";
|
|
2957
|
+
|
|
2958
|
+
// src/components/ResidentNumberInput/ResidentNumberInput.tsx
|
|
2959
|
+
import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2960
|
+
var onlyDigits = (input6) => input6.replace(/\D/g, "");
|
|
2961
|
+
var ResidentNumberInput = /* @__PURE__ */ forwardRef29(
|
|
2962
|
+
function ResidentNumberInput2(props, ref) {
|
|
2963
|
+
const {
|
|
2964
|
+
value: value3,
|
|
2965
|
+
defaultValue,
|
|
2966
|
+
onValueChange,
|
|
2967
|
+
digits = 13,
|
|
2968
|
+
validate = true,
|
|
2969
|
+
invalidText: invalidTextProp,
|
|
2970
|
+
label: labelProp,
|
|
2971
|
+
helperText: helperText3,
|
|
2972
|
+
error,
|
|
2973
|
+
required,
|
|
2974
|
+
disabled,
|
|
2975
|
+
size,
|
|
2976
|
+
name,
|
|
2977
|
+
id,
|
|
2978
|
+
className,
|
|
2979
|
+
onBlur
|
|
2980
|
+
} = props;
|
|
2981
|
+
const m = useMessages();
|
|
2982
|
+
const label6 = labelProp ?? m.residentNumber ?? "\uC8FC\uBBFC\uB4F1\uB85D\uBC88\uD638";
|
|
2983
|
+
const invalidText = invalidTextProp ?? m.residentNumberInvalid ?? "\uC62C\uBC14\uB978 \uC8FC\uBBFC\uB4F1\uB85D\uBC88\uD638\uAC00 \uC544\uB2C8\uC5D0\uC694. \uC0DD\uB144\uC6D4\uC77C\uACFC \uB4B7\uC790\uB9AC \uCCAB \uC22B\uC790\uB97C \uD655\uC778\uD574 \uC8FC\uC138\uC694.";
|
|
2984
|
+
const incompleteText = m.residentNumberIncomplete?.(digits) ?? `${digits}\uC790\uB9AC\uB97C \uBAA8\uB450 \uC785\uB825\uD574 \uC8FC\uC138\uC694.`;
|
|
2985
|
+
const backLength = digits - 6;
|
|
2986
|
+
const isControlled = "value" in props;
|
|
2987
|
+
const split = (v) => {
|
|
2988
|
+
const d = onlyDigits(v).slice(0, digits);
|
|
2989
|
+
return { front: d.slice(0, 6), back: d.slice(6) };
|
|
2990
|
+
};
|
|
2991
|
+
const [parts, setParts] = useState15(() => split((isControlled ? value3 : defaultValue) ?? ""));
|
|
2992
|
+
const current2 = isControlled && (value3 ?? "") !== parts.front + parts.back ? split(value3 ?? "") : parts;
|
|
2993
|
+
const raw = current2.front + current2.back;
|
|
2994
|
+
const generatedId = useId14();
|
|
2995
|
+
const baseId = id ?? generatedId;
|
|
2996
|
+
const frontId = `${baseId}-front`;
|
|
2997
|
+
const backId = `${baseId}-back`;
|
|
2998
|
+
const labelId = `${baseId}-label`;
|
|
2999
|
+
const frontRef = useRef14(null);
|
|
3000
|
+
const backRef = useRef14(null);
|
|
3001
|
+
const complete = current2.front.length === 6 && current2.back.length === backLength;
|
|
3002
|
+
const isValid = (v) => digits === 13 ? isValidResidentNumber(v) : parseResidentNumber(v) !== null;
|
|
3003
|
+
const update = (next) => {
|
|
3004
|
+
setParts(next);
|
|
3005
|
+
const nextRaw = next.front + next.back;
|
|
3006
|
+
if (nextRaw === raw) return;
|
|
3007
|
+
const nextComplete = next.front.length === 6 && next.back.length === backLength;
|
|
3008
|
+
onValueChange?.(nextRaw, nextComplete ? isValid(nextRaw) : null);
|
|
3009
|
+
};
|
|
3010
|
+
const [touched, setTouched] = useState15(false);
|
|
3011
|
+
const autoInvalid = validate && raw.length > 0 && (complete ? !isValid(raw) : touched);
|
|
3012
|
+
const showAuto = autoInvalid && error === void 0;
|
|
3013
|
+
const invalid = error ?? autoInvalid;
|
|
3014
|
+
const helper = showAuto ? complete ? invalidText : incompleteText : helperText3;
|
|
3015
|
+
const helperId = helper ? `${baseId}-helper` : void 0;
|
|
3016
|
+
const announcement = useDelayedAnnouncement(showAuto && complete ? invalidText : "");
|
|
3017
|
+
const common = {
|
|
3018
|
+
inputMode: "numeric",
|
|
3019
|
+
autoComplete: "off",
|
|
3020
|
+
size,
|
|
3021
|
+
disabled,
|
|
3022
|
+
required,
|
|
3023
|
+
invalid,
|
|
3024
|
+
"aria-describedby": helperId
|
|
3025
|
+
};
|
|
3026
|
+
return /* @__PURE__ */ jsxs29(
|
|
3027
|
+
"div",
|
|
3028
|
+
{
|
|
3029
|
+
className: cx(field, className),
|
|
3030
|
+
onBlur: (event) => {
|
|
3031
|
+
if (!event.currentTarget.contains(event.relatedTarget)) setTouched(true);
|
|
3032
|
+
onBlur?.(event);
|
|
3033
|
+
},
|
|
3034
|
+
children: [
|
|
3035
|
+
/* @__PURE__ */ jsxs29("label", { id: labelId, htmlFor: frontId, className: label, children: [
|
|
3036
|
+
label6,
|
|
3037
|
+
required && /* @__PURE__ */ jsx33("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3038
|
+
] }),
|
|
3039
|
+
/* @__PURE__ */ jsxs29("div", { role: "group", id: baseId, "aria-labelledby": labelId, className: row3, children: [
|
|
3040
|
+
/* @__PURE__ */ jsx33(
|
|
3041
|
+
Input,
|
|
3042
|
+
{
|
|
3043
|
+
...common,
|
|
3044
|
+
ref: mergeRefs(ref, frontRef),
|
|
3045
|
+
id: frontId,
|
|
3046
|
+
"aria-label": m.residentNumberFront ?? "\uC55E 6\uC790\uB9AC",
|
|
3047
|
+
placeholder: "000000",
|
|
3048
|
+
rootClassName: front,
|
|
3049
|
+
maxLength: 6,
|
|
3050
|
+
value: current2.front,
|
|
3051
|
+
onChange: (event) => update({ front: onlyDigits(event.target.value).slice(0, 6), back: current2.back }),
|
|
3052
|
+
onPaste: (event) => {
|
|
3053
|
+
const pasted = onlyDigits(event.clipboardData.getData("text"));
|
|
3054
|
+
if (pasted.length <= 6) return;
|
|
3055
|
+
event.preventDefault();
|
|
3056
|
+
update(split(pasted));
|
|
3057
|
+
}
|
|
3058
|
+
}
|
|
3059
|
+
),
|
|
3060
|
+
/* @__PURE__ */ jsx33("span", { className: separator4, "aria-hidden": true, children: "-" }),
|
|
3061
|
+
/* @__PURE__ */ jsx33(
|
|
3062
|
+
Input,
|
|
3063
|
+
{
|
|
3064
|
+
...common,
|
|
3065
|
+
ref: backRef,
|
|
3066
|
+
id: backId,
|
|
3067
|
+
type: digits === 13 ? "password" : "text",
|
|
3068
|
+
"aria-label": digits === 13 ? m.residentNumberBack ?? "\uB4A4 7\uC790\uB9AC" : m.residentNumberBackFirst ?? "\uB4B7\uC790\uB9AC \uCCAB \uC22B\uC790",
|
|
3069
|
+
maxLength: backLength,
|
|
3070
|
+
rootClassName: digits === 13 ? back : backOne,
|
|
3071
|
+
value: current2.back,
|
|
3072
|
+
onChange: (event) => update({ front: current2.front, back: onlyDigits(event.target.value).slice(0, backLength) }),
|
|
3073
|
+
onKeyDown: (event) => {
|
|
3074
|
+
if (event.key === "Backspace" && current2.back === "") {
|
|
3075
|
+
event.preventDefault();
|
|
3076
|
+
frontRef.current?.focus();
|
|
3077
|
+
}
|
|
3078
|
+
}
|
|
3079
|
+
}
|
|
3080
|
+
),
|
|
3081
|
+
digits === 7 && /* @__PURE__ */ jsx33("span", { className: hiddenDigits, "aria-hidden": true, children: "\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF" })
|
|
3082
|
+
] }),
|
|
3083
|
+
helper && /* @__PURE__ */ jsx33("p", { id: helperId, className: helperText({ error: invalid }), children: helper }),
|
|
3084
|
+
name && /* @__PURE__ */ jsx33("input", { type: "hidden", name, value: raw }),
|
|
3085
|
+
/* @__PURE__ */ jsx33("span", { role: "status", className: visuallyHidden, children: announcement })
|
|
3086
|
+
]
|
|
3087
|
+
}
|
|
3088
|
+
);
|
|
3089
|
+
}
|
|
3090
|
+
);
|
|
3091
|
+
|
|
2806
3092
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2807
|
-
import { forwardRef as
|
|
3093
|
+
import { forwardRef as forwardRef30, useId as useId15, useRef as useRef15, useState as useState16 } from "react";
|
|
2808
3094
|
|
|
2809
3095
|
// src/components/SegmentedControl/SegmentedControl.css.ts
|
|
2810
3096
|
import { createRuntimeFn as _7a46814 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -2813,9 +3099,9 @@ var item8 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1h65mmo2", variantCla
|
|
|
2813
3099
|
var root9 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1h65mmo0", variantClassNames: { fullWidth: { true: "_1h65mmo1" } }, defaultVariants: {}, compoundVariants: [] });
|
|
2814
3100
|
|
|
2815
3101
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2816
|
-
import { jsx as
|
|
3102
|
+
import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2817
3103
|
var NEXT_KEYS = { ArrowRight: 1, ArrowDown: 1, ArrowLeft: -1, ArrowUp: -1 };
|
|
2818
|
-
var SegmentedControl = /* @__PURE__ */
|
|
3104
|
+
var SegmentedControl = /* @__PURE__ */ forwardRef30(
|
|
2819
3105
|
function SegmentedControl2(props, ref) {
|
|
2820
3106
|
const {
|
|
2821
3107
|
options,
|
|
@@ -2832,11 +3118,11 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2832
3118
|
className
|
|
2833
3119
|
} = props;
|
|
2834
3120
|
const isControlled = "value" in props;
|
|
2835
|
-
const [innerValue, setInnerValue] =
|
|
3121
|
+
const [innerValue, setInnerValue] = useState16(defaultValue ?? "");
|
|
2836
3122
|
const current2 = isControlled ? value3 ?? "" : innerValue;
|
|
2837
|
-
const generatedId =
|
|
3123
|
+
const generatedId = useId15();
|
|
2838
3124
|
const labelId = label6 ? `${id ?? generatedId}-label` : void 0;
|
|
2839
|
-
const itemRefs =
|
|
3125
|
+
const itemRefs = useRef15([]);
|
|
2840
3126
|
const isEnabled = (index) => !disabled && !options[index]?.disabled;
|
|
2841
3127
|
const select2 = (index) => {
|
|
2842
3128
|
const next = options[index].value;
|
|
@@ -2844,7 +3130,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2844
3130
|
if (!isControlled) setInnerValue(next);
|
|
2845
3131
|
onValueChange?.(next);
|
|
2846
3132
|
};
|
|
2847
|
-
const checkedIndex = options.findIndex((
|
|
3133
|
+
const checkedIndex = options.findIndex((option3) => option3.value === current2);
|
|
2848
3134
|
const tabStop = checkedIndex >= 0 && isEnabled(checkedIndex) ? checkedIndex : options.findIndex((_, i) => isEnabled(i));
|
|
2849
3135
|
const handleKeyDown = (event, index) => {
|
|
2850
3136
|
let target = -1;
|
|
@@ -2867,7 +3153,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2867
3153
|
itemRefs.current[target]?.focus();
|
|
2868
3154
|
select2(target);
|
|
2869
3155
|
};
|
|
2870
|
-
const group = /* @__PURE__ */
|
|
3156
|
+
const group = /* @__PURE__ */ jsxs30(
|
|
2871
3157
|
"div",
|
|
2872
3158
|
{
|
|
2873
3159
|
ref,
|
|
@@ -2878,9 +3164,9 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2878
3164
|
"aria-disabled": disabled || void 0,
|
|
2879
3165
|
className: cx(root9({ fullWidth }), !label6 && className),
|
|
2880
3166
|
children: [
|
|
2881
|
-
options.map((
|
|
3167
|
+
options.map((option3, index) => {
|
|
2882
3168
|
const checked = index === checkedIndex;
|
|
2883
|
-
return /* @__PURE__ */
|
|
3169
|
+
return /* @__PURE__ */ jsxs30(
|
|
2884
3170
|
"button",
|
|
2885
3171
|
{
|
|
2886
3172
|
ref: (node) => {
|
|
@@ -2897,27 +3183,27 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2897
3183
|
onClick: () => select2(index),
|
|
2898
3184
|
onKeyDown: (event) => handleKeyDown(event, index),
|
|
2899
3185
|
children: [
|
|
2900
|
-
|
|
2901
|
-
|
|
3186
|
+
option3.icon && /* @__PURE__ */ jsx34("span", { "aria-hidden": true, className: icon5, children: option3.icon }),
|
|
3187
|
+
option3.label
|
|
2902
3188
|
]
|
|
2903
3189
|
},
|
|
2904
|
-
|
|
3190
|
+
option3.value
|
|
2905
3191
|
);
|
|
2906
3192
|
}),
|
|
2907
|
-
name && /* @__PURE__ */
|
|
3193
|
+
name && /* @__PURE__ */ jsx34("input", { type: "hidden", name, value: current2 })
|
|
2908
3194
|
]
|
|
2909
3195
|
}
|
|
2910
3196
|
);
|
|
2911
3197
|
if (!label6) return group;
|
|
2912
|
-
return /* @__PURE__ */
|
|
2913
|
-
/* @__PURE__ */
|
|
3198
|
+
return /* @__PURE__ */ jsxs30("div", { className: cx(field, className), children: [
|
|
3199
|
+
/* @__PURE__ */ jsx34("span", { id: labelId, className: label, children: label6 }),
|
|
2914
3200
|
group
|
|
2915
3201
|
] });
|
|
2916
3202
|
}
|
|
2917
3203
|
);
|
|
2918
3204
|
|
|
2919
3205
|
// src/components/NativeSelect/NativeSelect.tsx
|
|
2920
|
-
import { forwardRef as
|
|
3206
|
+
import { forwardRef as forwardRef31, useId as useId16 } from "react";
|
|
2921
3207
|
import { ChevronDownIcon as ChevronDownIcon4 } from "@bestow-ui/icons";
|
|
2922
3208
|
|
|
2923
3209
|
// src/components/NativeSelect/NativeSelect.css.ts
|
|
@@ -2927,8 +3213,8 @@ var select = /* @__PURE__ */ _7a46815({ defaultClassName: "_5silym1", variantCla
|
|
|
2927
3213
|
var wrapper = "_5silym0";
|
|
2928
3214
|
|
|
2929
3215
|
// src/components/NativeSelect/NativeSelect.tsx
|
|
2930
|
-
import { jsx as
|
|
2931
|
-
var NativeSelect = /* @__PURE__ */
|
|
3216
|
+
import { jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3217
|
+
var NativeSelect = /* @__PURE__ */ forwardRef31(function NativeSelect2({
|
|
2932
3218
|
options,
|
|
2933
3219
|
onValueChange,
|
|
2934
3220
|
onChange,
|
|
@@ -2948,26 +3234,26 @@ var NativeSelect = /* @__PURE__ */ forwardRef29(function NativeSelect2({
|
|
|
2948
3234
|
"aria-describedby": ariaDescribedBy,
|
|
2949
3235
|
...rest
|
|
2950
3236
|
}, ref) {
|
|
2951
|
-
const generatedId =
|
|
3237
|
+
const generatedId = useId16();
|
|
2952
3238
|
const selectId = id ?? generatedId;
|
|
2953
3239
|
const helperId = helperText3 ? `${selectId}-helper` : void 0;
|
|
2954
3240
|
const handleChange = (event) => {
|
|
2955
3241
|
onChange?.(event);
|
|
2956
3242
|
onValueChange?.(event.target.value);
|
|
2957
3243
|
};
|
|
2958
|
-
return /* @__PURE__ */
|
|
2959
|
-
label6 && /* @__PURE__ */
|
|
3244
|
+
return /* @__PURE__ */ jsxs31("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3245
|
+
label6 && /* @__PURE__ */ jsxs31("label", { htmlFor: selectId, className: label, children: [
|
|
2960
3246
|
label6,
|
|
2961
|
-
required && /* @__PURE__ */
|
|
3247
|
+
required && /* @__PURE__ */ jsx35("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2962
3248
|
] }),
|
|
2963
|
-
/* @__PURE__ */
|
|
3249
|
+
/* @__PURE__ */ jsxs31(
|
|
2964
3250
|
"span",
|
|
2965
3251
|
{
|
|
2966
|
-
className: cx(
|
|
3252
|
+
className: cx(root({ size, fullWidth }), wrapper),
|
|
2967
3253
|
"data-invalid": error || void 0,
|
|
2968
3254
|
"data-disabled": disabled || void 0,
|
|
2969
3255
|
children: [
|
|
2970
|
-
/* @__PURE__ */
|
|
3256
|
+
/* @__PURE__ */ jsxs31(
|
|
2971
3257
|
"select",
|
|
2972
3258
|
{
|
|
2973
3259
|
ref,
|
|
@@ -2982,25 +3268,25 @@ var NativeSelect = /* @__PURE__ */ forwardRef29(function NativeSelect2({
|
|
|
2982
3268
|
className: cx(select({ size }), className),
|
|
2983
3269
|
...rest,
|
|
2984
3270
|
children: [
|
|
2985
|
-
placeholder !== void 0 && /* @__PURE__ */
|
|
2986
|
-
options ? options.map((
|
|
3271
|
+
placeholder !== void 0 && /* @__PURE__ */ jsx35("option", { value: "", disabled: true, children: placeholder }),
|
|
3272
|
+
options ? options.map((option3) => /* @__PURE__ */ jsx35("option", { value: option3.value, disabled: option3.disabled, children: option3.label }, option3.value)) : children
|
|
2987
3273
|
]
|
|
2988
3274
|
}
|
|
2989
3275
|
),
|
|
2990
|
-
/* @__PURE__ */
|
|
3276
|
+
/* @__PURE__ */ jsx35(ChevronDownIcon4, { size: 16, className: icon6({ size }) })
|
|
2991
3277
|
]
|
|
2992
3278
|
}
|
|
2993
3279
|
),
|
|
2994
|
-
helperText3 && /* @__PURE__ */
|
|
3280
|
+
helperText3 && /* @__PURE__ */ jsx35("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
2995
3281
|
] });
|
|
2996
3282
|
});
|
|
2997
3283
|
|
|
2998
3284
|
// src/components/Select/Select.tsx
|
|
2999
3285
|
import * as RadixSelect from "@radix-ui/react-select";
|
|
3000
|
-
import { forwardRef as
|
|
3286
|
+
import { forwardRef as forwardRef32, useId as useId17 } from "react";
|
|
3001
3287
|
import { CheckIcon as CheckIcon3, ChevronDownIcon as ChevronDownIcon5 } from "@bestow-ui/icons";
|
|
3002
|
-
import { jsx as
|
|
3003
|
-
var Select = /* @__PURE__ */
|
|
3288
|
+
import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3289
|
+
var Select = /* @__PURE__ */ forwardRef32(function Select2(props, ref) {
|
|
3004
3290
|
const {
|
|
3005
3291
|
options,
|
|
3006
3292
|
value: value3,
|
|
@@ -3020,16 +3306,16 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
|
|
|
3020
3306
|
className
|
|
3021
3307
|
} = props;
|
|
3022
3308
|
const isControlled = "value" in props;
|
|
3023
|
-
const generatedId =
|
|
3309
|
+
const generatedId = useId17();
|
|
3024
3310
|
const triggerId = id ?? generatedId;
|
|
3025
3311
|
const helperId = helperText3 ? `${triggerId}-helper` : void 0;
|
|
3026
3312
|
const portal2 = usePortalProps();
|
|
3027
|
-
return /* @__PURE__ */
|
|
3028
|
-
label6 && /* @__PURE__ */
|
|
3313
|
+
return /* @__PURE__ */ jsxs32("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3314
|
+
label6 && /* @__PURE__ */ jsxs32("label", { htmlFor: triggerId, className: label, children: [
|
|
3029
3315
|
label6,
|
|
3030
|
-
required && /* @__PURE__ */
|
|
3316
|
+
required && /* @__PURE__ */ jsx36("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3031
3317
|
] }),
|
|
3032
|
-
/* @__PURE__ */
|
|
3318
|
+
/* @__PURE__ */ jsxs32(
|
|
3033
3319
|
RadixSelect.Root,
|
|
3034
3320
|
{
|
|
3035
3321
|
value: isControlled ? value3 ?? "" : void 0,
|
|
@@ -3039,7 +3325,7 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
|
|
|
3039
3325
|
required,
|
|
3040
3326
|
name,
|
|
3041
3327
|
children: [
|
|
3042
|
-
/* @__PURE__ */
|
|
3328
|
+
/* @__PURE__ */ jsxs32(
|
|
3043
3329
|
RadixSelect.Trigger,
|
|
3044
3330
|
{
|
|
3045
3331
|
ref,
|
|
@@ -3048,14 +3334,14 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
|
|
|
3048
3334
|
"aria-invalid": error || void 0,
|
|
3049
3335
|
"aria-describedby": helperId,
|
|
3050
3336
|
"data-invalid": error || void 0,
|
|
3051
|
-
className: cx(
|
|
3337
|
+
className: cx(root({ size, fullWidth }), trigger2, className),
|
|
3052
3338
|
children: [
|
|
3053
|
-
/* @__PURE__ */
|
|
3054
|
-
/* @__PURE__ */
|
|
3339
|
+
/* @__PURE__ */ jsx36("span", { className: value, children: /* @__PURE__ */ jsx36(RadixSelect.Value, { placeholder }) }),
|
|
3340
|
+
/* @__PURE__ */ jsx36(RadixSelect.Icon, { className: icon3, children: /* @__PURE__ */ jsx36(ChevronDownIcon5, { size: 16 }) })
|
|
3055
3341
|
]
|
|
3056
3342
|
}
|
|
3057
3343
|
),
|
|
3058
|
-
/* @__PURE__ */
|
|
3344
|
+
/* @__PURE__ */ jsx36(RadixSelect.Portal, { children: /* @__PURE__ */ jsx36(
|
|
3059
3345
|
RadixSelect.Content,
|
|
3060
3346
|
{
|
|
3061
3347
|
position: "popper",
|
|
@@ -3063,37 +3349,37 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
|
|
|
3063
3349
|
collisionPadding: 8,
|
|
3064
3350
|
className: cx(portal2.className, content5),
|
|
3065
3351
|
style: portal2.style,
|
|
3066
|
-
children: /* @__PURE__ */
|
|
3352
|
+
children: /* @__PURE__ */ jsx36(RadixSelect.Viewport, { className: viewport, children: options.map((option3) => /* @__PURE__ */ jsxs32(
|
|
3067
3353
|
RadixSelect.Item,
|
|
3068
3354
|
{
|
|
3069
|
-
value:
|
|
3070
|
-
disabled:
|
|
3355
|
+
value: option3.value,
|
|
3356
|
+
disabled: option3.disabled,
|
|
3071
3357
|
className: item4,
|
|
3072
3358
|
children: [
|
|
3073
|
-
/* @__PURE__ */
|
|
3074
|
-
/* @__PURE__ */
|
|
3359
|
+
/* @__PURE__ */ jsx36(RadixSelect.ItemText, { children: option3.label }),
|
|
3360
|
+
/* @__PURE__ */ jsx36(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ jsx36(CheckIcon3, { size: 16 }) })
|
|
3075
3361
|
]
|
|
3076
3362
|
},
|
|
3077
|
-
|
|
3363
|
+
option3.value
|
|
3078
3364
|
)) })
|
|
3079
3365
|
}
|
|
3080
3366
|
) })
|
|
3081
3367
|
]
|
|
3082
3368
|
}
|
|
3083
3369
|
),
|
|
3084
|
-
helperText3 && /* @__PURE__ */
|
|
3370
|
+
helperText3 && /* @__PURE__ */ jsx36("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
3085
3371
|
] });
|
|
3086
3372
|
});
|
|
3087
3373
|
|
|
3088
3374
|
// src/components/SkipLink/SkipLink.tsx
|
|
3089
|
-
import { forwardRef as
|
|
3375
|
+
import { forwardRef as forwardRef33 } from "react";
|
|
3090
3376
|
|
|
3091
3377
|
// src/components/SkipLink/SkipLink.css.ts
|
|
3092
3378
|
var skipLink = "_1t9jaar0";
|
|
3093
3379
|
|
|
3094
3380
|
// src/components/SkipLink/SkipLink.tsx
|
|
3095
|
-
import { jsx as
|
|
3096
|
-
var SkipLink = /* @__PURE__ */
|
|
3381
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
3382
|
+
var SkipLink = /* @__PURE__ */ forwardRef33(function SkipLink2({ href = "#main", className, children, onClick, ...rest }, ref) {
|
|
3097
3383
|
const m = useMessages();
|
|
3098
3384
|
const handleClick = (event) => {
|
|
3099
3385
|
onClick?.(event);
|
|
@@ -3105,12 +3391,12 @@ var SkipLink = /* @__PURE__ */ forwardRef31(function SkipLink2({ href = "#main",
|
|
|
3105
3391
|
target.focus();
|
|
3106
3392
|
target.scrollIntoView?.({ block: "start" });
|
|
3107
3393
|
};
|
|
3108
|
-
return /* @__PURE__ */
|
|
3394
|
+
return /* @__PURE__ */ jsx37("a", { ref, href, className: cx(skipLink, className), onClick: handleClick, ...rest, children: children ?? m.skipToContent ?? "\uBCF8\uBB38 \uBC14\uB85C\uAC00\uAE30" });
|
|
3109
3395
|
});
|
|
3110
3396
|
|
|
3111
3397
|
// src/components/Slider/Slider.tsx
|
|
3112
3398
|
import * as RadixSlider from "@radix-ui/react-slider";
|
|
3113
|
-
import { forwardRef as
|
|
3399
|
+
import { forwardRef as forwardRef34, useId as useId18, useState as useState17 } from "react";
|
|
3114
3400
|
|
|
3115
3401
|
// src/components/Slider/Slider.css.ts
|
|
3116
3402
|
import { createRuntimeFn as _7a46816 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -3125,8 +3411,8 @@ var track = /* @__PURE__ */ _7a46816({ defaultClassName: "_126mzjm8", variantCla
|
|
|
3125
3411
|
var value2 = "_126mzjm3";
|
|
3126
3412
|
|
|
3127
3413
|
// src/components/Slider/Slider.tsx
|
|
3128
|
-
import { jsx as
|
|
3129
|
-
var Slider = /* @__PURE__ */
|
|
3414
|
+
import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3415
|
+
var Slider = /* @__PURE__ */ forwardRef34(function Slider2(props, ref) {
|
|
3130
3416
|
const {
|
|
3131
3417
|
value: value3,
|
|
3132
3418
|
defaultValue,
|
|
@@ -3147,12 +3433,12 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
|
|
|
3147
3433
|
} = props;
|
|
3148
3434
|
const m = useMessages();
|
|
3149
3435
|
const thumbLabels = thumbLabelsProp ?? [m.rangeStart ?? "\uCD5C\uC18C", m.rangeEnd ?? "\uCD5C\uB300"];
|
|
3150
|
-
const generatedId =
|
|
3436
|
+
const generatedId = useId18();
|
|
3151
3437
|
const baseId = id ?? generatedId;
|
|
3152
3438
|
const labelId = `${baseId}-label`;
|
|
3153
3439
|
const helperId = `${baseId}-helper`;
|
|
3154
3440
|
const isControlled = "value" in props;
|
|
3155
|
-
const [innerValue, setInnerValue] =
|
|
3441
|
+
const [innerValue, setInnerValue] = useState17(defaultValue ?? [min]);
|
|
3156
3442
|
const current2 = isControlled ? value3 ?? [min] : innerValue;
|
|
3157
3443
|
const isRange = current2.length > 1;
|
|
3158
3444
|
const handleChange = (next) => {
|
|
@@ -3160,12 +3446,12 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
|
|
|
3160
3446
|
onValueChange?.(next);
|
|
3161
3447
|
};
|
|
3162
3448
|
const valueText = current2.map(formatValue).join(" \u2013 ");
|
|
3163
|
-
return /* @__PURE__ */
|
|
3164
|
-
(label6 || showValue) && /* @__PURE__ */
|
|
3165
|
-
label6 && /* @__PURE__ */
|
|
3166
|
-
showValue && /* @__PURE__ */
|
|
3449
|
+
return /* @__PURE__ */ jsxs33("div", { className: cx(field3, className), children: [
|
|
3450
|
+
(label6 || showValue) && /* @__PURE__ */ jsxs33("div", { className: header6, children: [
|
|
3451
|
+
label6 && /* @__PURE__ */ jsx38("span", { id: labelId, className: label3, children: label6 }),
|
|
3452
|
+
showValue && /* @__PURE__ */ jsx38("span", { className: value2, "aria-hidden": true, children: valueText })
|
|
3167
3453
|
] }),
|
|
3168
|
-
/* @__PURE__ */
|
|
3454
|
+
/* @__PURE__ */ jsxs33(
|
|
3169
3455
|
RadixSlider.Root,
|
|
3170
3456
|
{
|
|
3171
3457
|
ref,
|
|
@@ -3178,10 +3464,10 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
|
|
|
3178
3464
|
className: root10({ size }),
|
|
3179
3465
|
...rest,
|
|
3180
3466
|
children: [
|
|
3181
|
-
/* @__PURE__ */
|
|
3467
|
+
/* @__PURE__ */ jsx38(RadixSlider.Track, { className: track({ size }), children: /* @__PURE__ */ jsx38(RadixSlider.Range, { className: range2 }) }),
|
|
3182
3468
|
current2.map((thumbValue, index) => {
|
|
3183
3469
|
const thumbLabelId = `${baseId}-thumb-${index}`;
|
|
3184
|
-
return /* @__PURE__ */
|
|
3470
|
+
return /* @__PURE__ */ jsx38(
|
|
3185
3471
|
RadixSlider.Thumb,
|
|
3186
3472
|
{
|
|
3187
3473
|
className: thumb({ size }),
|
|
@@ -3196,21 +3482,21 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
|
|
|
3196
3482
|
]
|
|
3197
3483
|
}
|
|
3198
3484
|
),
|
|
3199
|
-
isRange && current2.map((_, index) => /* @__PURE__ */
|
|
3485
|
+
isRange && current2.map((_, index) => /* @__PURE__ */ jsxs33("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
|
|
3200
3486
|
label6 ? "" : ariaLabel ? `${ariaLabel} ` : "",
|
|
3201
3487
|
thumbLabels[index] ?? `${index + 1}`
|
|
3202
3488
|
] }, index)),
|
|
3203
|
-
helperText3 && /* @__PURE__ */
|
|
3489
|
+
helperText3 && /* @__PURE__ */ jsx38("span", { id: helperId, className: helperText2, children: helperText3 })
|
|
3204
3490
|
] });
|
|
3205
3491
|
});
|
|
3206
3492
|
|
|
3207
3493
|
// src/components/Stepper/Stepper.tsx
|
|
3208
|
-
import { forwardRef as
|
|
3494
|
+
import { forwardRef as forwardRef35 } from "react";
|
|
3209
3495
|
import { CheckIcon as CheckIcon4 } from "@bestow-ui/icons";
|
|
3210
3496
|
|
|
3211
3497
|
// src/components/Stepper/Stepper.css.ts
|
|
3212
3498
|
import { createRuntimeFn as _7a46817 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3213
|
-
var
|
|
3499
|
+
var description6 = "kervhmh";
|
|
3214
3500
|
var indicator2 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm6", variantClassNames: { status: { complete: "kervhm7", current: "kervhm8", upcoming: "kervhm9" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3215
3501
|
var label4 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhmd", variantClassNames: { status: { complete: "kervhme", current: "kervhmf", upcoming: "kervhmg" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3216
3502
|
var root11 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm0", variantClassNames: { orientation: { horizontal: "kervhm1", vertical: "kervhm2" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
@@ -3218,10 +3504,10 @@ var step = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm3", variantClassN
|
|
|
3218
3504
|
var text2 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhma", variantClassNames: { orientation: { horizontal: "kervhmb", vertical: "kervhmc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3219
3505
|
|
|
3220
3506
|
// src/components/Stepper/Stepper.tsx
|
|
3221
|
-
import { jsx as
|
|
3222
|
-
var Stepper = /* @__PURE__ */
|
|
3507
|
+
import { jsx as jsx39, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3508
|
+
var Stepper = /* @__PURE__ */ forwardRef35(function Stepper2({ steps, current: current2, orientation = "horizontal", "aria-label": ariaLabel, className, ...rest }, ref) {
|
|
3223
3509
|
const m = useMessages();
|
|
3224
|
-
return /* @__PURE__ */
|
|
3510
|
+
return /* @__PURE__ */ jsx39(
|
|
3225
3511
|
"ol",
|
|
3226
3512
|
{
|
|
3227
3513
|
ref,
|
|
@@ -3230,24 +3516,24 @@ var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: c
|
|
|
3230
3516
|
...rest,
|
|
3231
3517
|
children: steps.map((step2, index) => {
|
|
3232
3518
|
const status = index < current2 ? "complete" : index === current2 ? "current" : "upcoming";
|
|
3233
|
-
return /* @__PURE__ */
|
|
3519
|
+
return /* @__PURE__ */ jsxs34(
|
|
3234
3520
|
"li",
|
|
3235
3521
|
{
|
|
3236
3522
|
className: step({ orientation }),
|
|
3237
3523
|
"data-status": status,
|
|
3238
3524
|
"aria-current": status === "current" ? "step" : void 0,
|
|
3239
3525
|
children: [
|
|
3240
|
-
/* @__PURE__ */
|
|
3241
|
-
/* @__PURE__ */
|
|
3242
|
-
/* @__PURE__ */
|
|
3526
|
+
/* @__PURE__ */ jsx39("span", { className: indicator2({ status }), "aria-hidden": true, children: status === "complete" ? /* @__PURE__ */ jsx39(CheckIcon4, { size: 16, strokeWidth: 2.5 }) : index + 1 }),
|
|
3527
|
+
/* @__PURE__ */ jsxs34("span", { className: text2({ orientation }), children: [
|
|
3528
|
+
/* @__PURE__ */ jsxs34("span", { className: label4({ status }), children: [
|
|
3243
3529
|
step2.label,
|
|
3244
|
-
status === "complete" && /* @__PURE__ */
|
|
3530
|
+
status === "complete" && /* @__PURE__ */ jsxs34("span", { className: visuallyHidden, children: [
|
|
3245
3531
|
" (",
|
|
3246
3532
|
m.stepCompleted ?? "\uC644\uB8CC",
|
|
3247
3533
|
")"
|
|
3248
3534
|
] })
|
|
3249
3535
|
] }),
|
|
3250
|
-
step2.description && /* @__PURE__ */
|
|
3536
|
+
step2.description && /* @__PURE__ */ jsx39("span", { className: description6, children: step2.description })
|
|
3251
3537
|
] })
|
|
3252
3538
|
]
|
|
3253
3539
|
},
|
|
@@ -3259,7 +3545,7 @@ var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: c
|
|
|
3259
3545
|
});
|
|
3260
3546
|
|
|
3261
3547
|
// src/components/Switch/Switch.tsx
|
|
3262
|
-
import { forwardRef as
|
|
3548
|
+
import { forwardRef as forwardRef36, useEffect as useEffect11, useId as useId19, useRef as useRef16, useState as useState18 } from "react";
|
|
3263
3549
|
|
|
3264
3550
|
// src/components/Switch/Switch.css.ts
|
|
3265
3551
|
import { createRuntimeFn as _7a46818 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -3270,11 +3556,11 @@ var thumb2 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul26", variantClas
|
|
|
3270
3556
|
var track2 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3271
3557
|
|
|
3272
3558
|
// src/components/Switch/Switch.tsx
|
|
3273
|
-
import { jsx as
|
|
3559
|
+
import { jsx as jsx40, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3274
3560
|
function setNativeChecked(input6, checked) {
|
|
3275
3561
|
Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "checked")?.set?.call(input6, checked);
|
|
3276
3562
|
}
|
|
3277
|
-
var Switch = /* @__PURE__ */
|
|
3563
|
+
var Switch = /* @__PURE__ */ forwardRef36(function Switch2({
|
|
3278
3564
|
label: label6,
|
|
3279
3565
|
size,
|
|
3280
3566
|
id,
|
|
@@ -3288,20 +3574,20 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
|
|
|
3288
3574
|
onCheckedChange,
|
|
3289
3575
|
"aria-label": ariaLabel
|
|
3290
3576
|
}, ref) {
|
|
3291
|
-
const generatedId =
|
|
3577
|
+
const generatedId = useId19();
|
|
3292
3578
|
const switchId = id ?? generatedId;
|
|
3293
|
-
const [uncontrolled, setUncontrolled] =
|
|
3579
|
+
const [uncontrolled, setUncontrolled] = useState18(defaultChecked ?? false);
|
|
3294
3580
|
const isControlled = checkedProp !== void 0;
|
|
3295
3581
|
const checked = isControlled ? checkedProp : uncontrolled;
|
|
3296
|
-
const buttonRef =
|
|
3297
|
-
const inputRef =
|
|
3298
|
-
const [inForm, setInForm] =
|
|
3299
|
-
const userToggled =
|
|
3582
|
+
const buttonRef = useRef16(null);
|
|
3583
|
+
const inputRef = useRef16(null);
|
|
3584
|
+
const [inForm, setInForm] = useState18(true);
|
|
3585
|
+
const userToggled = useRef16(false);
|
|
3300
3586
|
const setChecked = (next) => {
|
|
3301
3587
|
if (!isControlled) setUncontrolled(next);
|
|
3302
3588
|
if (next !== checked) onCheckedChange?.(next);
|
|
3303
3589
|
};
|
|
3304
|
-
const setCheckedRef =
|
|
3590
|
+
const setCheckedRef = useRef16(setChecked);
|
|
3305
3591
|
setCheckedRef.current = setChecked;
|
|
3306
3592
|
useEffect11(() => {
|
|
3307
3593
|
const form = buttonRef.current?.form;
|
|
@@ -3325,8 +3611,8 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
|
|
|
3325
3611
|
if (inForm) event.stopPropagation();
|
|
3326
3612
|
};
|
|
3327
3613
|
const state = checked ? "checked" : "unchecked";
|
|
3328
|
-
return /* @__PURE__ */
|
|
3329
|
-
/* @__PURE__ */
|
|
3614
|
+
return /* @__PURE__ */ jsxs35("span", { className: cx(root12({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
3615
|
+
/* @__PURE__ */ jsx40(
|
|
3330
3616
|
"button",
|
|
3331
3617
|
{
|
|
3332
3618
|
ref: mergeRefs(ref, buttonRef),
|
|
@@ -3342,10 +3628,10 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
|
|
|
3342
3628
|
value: value3,
|
|
3343
3629
|
className: track2({ size }),
|
|
3344
3630
|
onClick: handleClick,
|
|
3345
|
-
children: /* @__PURE__ */
|
|
3631
|
+
children: /* @__PURE__ */ jsx40("span", { className: thumb2({ size }), "data-state": state, "data-disabled": disabled ? "" : void 0 })
|
|
3346
3632
|
}
|
|
3347
3633
|
),
|
|
3348
|
-
inForm && /* @__PURE__ */
|
|
3634
|
+
inForm && /* @__PURE__ */ jsx40(
|
|
3349
3635
|
"input",
|
|
3350
3636
|
{
|
|
3351
3637
|
ref: inputRef,
|
|
@@ -3360,16 +3646,16 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
|
|
|
3360
3646
|
className: bubbleInput({ size })
|
|
3361
3647
|
}
|
|
3362
3648
|
),
|
|
3363
|
-
label6 && /* @__PURE__ */
|
|
3649
|
+
label6 && /* @__PURE__ */ jsx40("label", { htmlFor: switchId, className: label5, children: label6 })
|
|
3364
3650
|
] });
|
|
3365
3651
|
});
|
|
3366
3652
|
|
|
3367
3653
|
// src/components/Table/Table.tsx
|
|
3368
3654
|
import {
|
|
3369
3655
|
createContext as createContext3,
|
|
3370
|
-
forwardRef as
|
|
3656
|
+
forwardRef as forwardRef37,
|
|
3371
3657
|
useContext as useContext3,
|
|
3372
|
-
useId as
|
|
3658
|
+
useId as useId20
|
|
3373
3659
|
} from "react";
|
|
3374
3660
|
import { ArrowDownIcon, ArrowUpIcon } from "@bestow-ui/icons";
|
|
3375
3661
|
|
|
@@ -3385,7 +3671,7 @@ var footer3 = "l3ploy7";
|
|
|
3385
3671
|
var footerCell = "l3ployg";
|
|
3386
3672
|
var head = "l3ployf";
|
|
3387
3673
|
var header7 = "l3ploy3";
|
|
3388
|
-
var
|
|
3674
|
+
var row4 = "l3ploy8";
|
|
3389
3675
|
var sortButton = "l3ployh";
|
|
3390
3676
|
var sortIcon = "l3ployi";
|
|
3391
3677
|
var stickyHeader = "l3ploy4";
|
|
@@ -3393,10 +3679,10 @@ var striped = "l3ploy6";
|
|
|
3393
3679
|
var table = "l3ploy1";
|
|
3394
3680
|
|
|
3395
3681
|
// src/components/Table/Table.tsx
|
|
3396
|
-
import { Fragment as
|
|
3682
|
+
import { Fragment as Fragment8, jsx as jsx41, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
3397
3683
|
var TableSizeContext = /* @__PURE__ */ createContext3("md");
|
|
3398
3684
|
var TableSectionContext = /* @__PURE__ */ createContext3("body");
|
|
3399
|
-
var Table = /* @__PURE__ */
|
|
3685
|
+
var Table = /* @__PURE__ */ forwardRef37(function Table2({
|
|
3400
3686
|
size = "md",
|
|
3401
3687
|
striped: striped2,
|
|
3402
3688
|
stickyHeader: stickyHeader2,
|
|
@@ -3408,8 +3694,8 @@ var Table = /* @__PURE__ */ forwardRef35(function Table2({
|
|
|
3408
3694
|
children,
|
|
3409
3695
|
...rest
|
|
3410
3696
|
}, ref) {
|
|
3411
|
-
const captionId =
|
|
3412
|
-
return /* @__PURE__ */
|
|
3697
|
+
const captionId = useId20();
|
|
3698
|
+
return /* @__PURE__ */ jsx41(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx41(
|
|
3413
3699
|
"div",
|
|
3414
3700
|
{
|
|
3415
3701
|
className: cx(container, containerClassName),
|
|
@@ -3418,7 +3704,7 @@ var Table = /* @__PURE__ */ forwardRef35(function Table2({
|
|
|
3418
3704
|
role: "region",
|
|
3419
3705
|
"aria-labelledby": caption2 ? captionId : void 0,
|
|
3420
3706
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
3421
|
-
children: /* @__PURE__ */
|
|
3707
|
+
children: /* @__PURE__ */ jsxs36(
|
|
3422
3708
|
"table",
|
|
3423
3709
|
{
|
|
3424
3710
|
ref,
|
|
@@ -3426,7 +3712,7 @@ var Table = /* @__PURE__ */ forwardRef35(function Table2({
|
|
|
3426
3712
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
3427
3713
|
...rest,
|
|
3428
3714
|
children: [
|
|
3429
|
-
caption2 && /* @__PURE__ */
|
|
3715
|
+
caption2 && /* @__PURE__ */ jsx41("caption", { id: captionId, className: caption, children: caption2 }),
|
|
3430
3716
|
children
|
|
3431
3717
|
]
|
|
3432
3718
|
}
|
|
@@ -3434,31 +3720,31 @@ var Table = /* @__PURE__ */ forwardRef35(function Table2({
|
|
|
3434
3720
|
}
|
|
3435
3721
|
) });
|
|
3436
3722
|
});
|
|
3437
|
-
var TableHeader = /* @__PURE__ */
|
|
3723
|
+
var TableHeader = /* @__PURE__ */ forwardRef37(
|
|
3438
3724
|
function TableHeader2({ className, ...rest }, ref) {
|
|
3439
|
-
return /* @__PURE__ */
|
|
3725
|
+
return /* @__PURE__ */ jsx41(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ jsx41("thead", { ref, className: cx(header7, className), ...rest }) });
|
|
3440
3726
|
}
|
|
3441
3727
|
);
|
|
3442
|
-
var TableBody = /* @__PURE__ */
|
|
3728
|
+
var TableBody = /* @__PURE__ */ forwardRef37(
|
|
3443
3729
|
function TableBody2({ className, ...rest }, ref) {
|
|
3444
|
-
return /* @__PURE__ */
|
|
3730
|
+
return /* @__PURE__ */ jsx41(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ jsx41("tbody", { ref, className: cx(body3, className), ...rest }) });
|
|
3445
3731
|
}
|
|
3446
3732
|
);
|
|
3447
|
-
var TableFooter = /* @__PURE__ */
|
|
3733
|
+
var TableFooter = /* @__PURE__ */ forwardRef37(
|
|
3448
3734
|
function TableFooter2({ className, ...rest }, ref) {
|
|
3449
|
-
return /* @__PURE__ */
|
|
3735
|
+
return /* @__PURE__ */ jsx41(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ jsx41("tfoot", { ref, className: cx(footer3, className), ...rest }) });
|
|
3450
3736
|
}
|
|
3451
3737
|
);
|
|
3452
|
-
var TableRow = /* @__PURE__ */
|
|
3453
|
-
return /* @__PURE__ */
|
|
3738
|
+
var TableRow = /* @__PURE__ */ forwardRef37(function TableRow2({ selected, className, ...rest }, ref) {
|
|
3739
|
+
return /* @__PURE__ */ jsx41("tr", { ref, className: cx(row4, className), "data-state": selected ? "selected" : void 0, ...rest });
|
|
3454
3740
|
});
|
|
3455
|
-
var TableHead = /* @__PURE__ */
|
|
3741
|
+
var TableHead = /* @__PURE__ */ forwardRef37(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
|
|
3456
3742
|
const size = useContext3(TableSizeContext);
|
|
3457
3743
|
const section = useContext3(TableSectionContext);
|
|
3458
3744
|
const sortable = onSort !== void 0;
|
|
3459
3745
|
const direction = sortDirection ?? "none";
|
|
3460
3746
|
const SortIcon = direction === "descending" ? ArrowDownIcon : ArrowUpIcon;
|
|
3461
|
-
return /* @__PURE__ */
|
|
3747
|
+
return /* @__PURE__ */ jsx41(
|
|
3462
3748
|
"th",
|
|
3463
3749
|
{
|
|
3464
3750
|
ref,
|
|
@@ -3470,17 +3756,17 @@ var TableHead = /* @__PURE__ */ forwardRef35(function TableHead2({ align, sortDi
|
|
|
3470
3756
|
className
|
|
3471
3757
|
),
|
|
3472
3758
|
...rest,
|
|
3473
|
-
children: sortable ? /* @__PURE__ */
|
|
3759
|
+
children: sortable ? /* @__PURE__ */ jsxs36("button", { type: "button", className: sortButton, onClick: onSort, children: [
|
|
3474
3760
|
children,
|
|
3475
|
-
/* @__PURE__ */
|
|
3761
|
+
/* @__PURE__ */ jsx41(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
|
|
3476
3762
|
] }) : children
|
|
3477
3763
|
}
|
|
3478
3764
|
);
|
|
3479
3765
|
});
|
|
3480
|
-
var TableCell = /* @__PURE__ */
|
|
3766
|
+
var TableCell = /* @__PURE__ */ forwardRef37(function TableCell2({ align, className, ...rest }, ref) {
|
|
3481
3767
|
const size = useContext3(TableSizeContext);
|
|
3482
3768
|
const section = useContext3(TableSectionContext);
|
|
3483
|
-
return /* @__PURE__ */
|
|
3769
|
+
return /* @__PURE__ */ jsx41(
|
|
3484
3770
|
"td",
|
|
3485
3771
|
{
|
|
3486
3772
|
ref,
|
|
@@ -3489,17 +3775,17 @@ var TableCell = /* @__PURE__ */ forwardRef35(function TableCell2({ align, classN
|
|
|
3489
3775
|
}
|
|
3490
3776
|
);
|
|
3491
3777
|
});
|
|
3492
|
-
var TableEmpty = /* @__PURE__ */
|
|
3493
|
-
return /* @__PURE__ */
|
|
3778
|
+
var TableEmpty = /* @__PURE__ */ forwardRef37(function TableEmpty2({ colSpan, className, children, ...rest }, ref) {
|
|
3779
|
+
return /* @__PURE__ */ jsx41(TableRow, { children: /* @__PURE__ */ jsx41(TableCell, { ref, colSpan, className: cx(emptyCell, className), ...rest, children: /* @__PURE__ */ jsx41("div", { className: emptyContent, children }) }) });
|
|
3494
3780
|
});
|
|
3495
3781
|
function TableSkeleton({ rows = 5, columns }) {
|
|
3496
|
-
return /* @__PURE__ */
|
|
3782
|
+
return /* @__PURE__ */ jsx41(Fragment8, { children: Array.from({ length: rows }, (_, row6) => /* @__PURE__ */ jsx41(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ jsx41(TableCell, { children: /* @__PURE__ */ jsx41(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row6)) });
|
|
3497
3783
|
}
|
|
3498
3784
|
|
|
3499
3785
|
// src/components/Table/useTableSelection.ts
|
|
3500
|
-
import { useCallback, useState as
|
|
3786
|
+
import { useCallback, useState as useState19 } from "react";
|
|
3501
3787
|
function useTableSelection(initial = []) {
|
|
3502
|
-
const [selected, setSelected] =
|
|
3788
|
+
const [selected, setSelected] = useState19(initial);
|
|
3503
3789
|
const isSelected = useCallback((id) => selected.includes(id), [selected]);
|
|
3504
3790
|
const toggle3 = useCallback((id, checked) => {
|
|
3505
3791
|
setSelected((prev) => {
|
|
@@ -3529,7 +3815,7 @@ function useTableSelection(initial = []) {
|
|
|
3529
3815
|
|
|
3530
3816
|
// src/components/Tabs/Tabs.tsx
|
|
3531
3817
|
import * as RadixTabs from "@radix-ui/react-tabs";
|
|
3532
|
-
import { createContext as createContext4, forwardRef as
|
|
3818
|
+
import { createContext as createContext4, forwardRef as forwardRef38, useContext as useContext4 } from "react";
|
|
3533
3819
|
|
|
3534
3820
|
// src/components/Tabs/Tabs.css.ts
|
|
3535
3821
|
import { createRuntimeFn as _7a46820 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -3539,31 +3825,31 @@ var root13 = "fvhbtd0";
|
|
|
3539
3825
|
var trigger3 = /* @__PURE__ */ _7a46820({ defaultClassName: "fvhbtd4", variantClassNames: { variant: { line: "fvhbtd5", soft: "fvhbtd6" }, size: { sm: "fvhbtd7", md: "fvhbtd8" } }, defaultVariants: { variant: "line", size: "md" }, compoundVariants: [[{ variant: "soft", size: "sm" }, "fvhbtd9"], [{ variant: "soft", size: "md" }, "fvhbtda"]] });
|
|
3540
3826
|
|
|
3541
3827
|
// src/components/Tabs/Tabs.tsx
|
|
3542
|
-
import { jsx as
|
|
3828
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3543
3829
|
var TabsStyleContext = /* @__PURE__ */ createContext4({ variant: "line", size: "md" });
|
|
3544
|
-
var Tabs = /* @__PURE__ */
|
|
3830
|
+
var Tabs = /* @__PURE__ */ forwardRef38(function Tabs2({ variant = "line", size = "md", className, ...props }, ref) {
|
|
3545
3831
|
const controlled = "value" in props ? { value: props.value ?? "" } : {};
|
|
3546
|
-
return /* @__PURE__ */
|
|
3832
|
+
return /* @__PURE__ */ jsx42(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx42(RadixTabs.Root, { ref, className: cx(root13, className), ...props, ...controlled }) });
|
|
3547
3833
|
});
|
|
3548
|
-
var TabsList = /* @__PURE__ */
|
|
3834
|
+
var TabsList = /* @__PURE__ */ forwardRef38(function TabsList2({ className, ...rest }, ref) {
|
|
3549
3835
|
const { variant } = useContext4(TabsStyleContext);
|
|
3550
|
-
return /* @__PURE__ */
|
|
3836
|
+
return /* @__PURE__ */ jsx42(RadixTabs.List, { ref, className: cx(list6({ variant }), className), ...rest });
|
|
3551
3837
|
});
|
|
3552
|
-
var TabsTrigger = /* @__PURE__ */
|
|
3838
|
+
var TabsTrigger = /* @__PURE__ */ forwardRef38(function TabsTrigger2({ className, ...rest }, ref) {
|
|
3553
3839
|
const { variant, size } = useContext4(TabsStyleContext);
|
|
3554
|
-
return /* @__PURE__ */
|
|
3840
|
+
return /* @__PURE__ */ jsx42(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
|
|
3555
3841
|
});
|
|
3556
|
-
var TabsContent = /* @__PURE__ */
|
|
3557
|
-
return /* @__PURE__ */
|
|
3842
|
+
var TabsContent = /* @__PURE__ */ forwardRef38(function TabsContent2({ className, ...rest }, ref) {
|
|
3843
|
+
return /* @__PURE__ */ jsx42(RadixTabs.Content, { ref, className: cx(content10, className), ...rest });
|
|
3558
3844
|
});
|
|
3559
3845
|
|
|
3560
3846
|
// src/components/Textarea/Textarea.tsx
|
|
3561
3847
|
import {
|
|
3562
|
-
forwardRef as
|
|
3848
|
+
forwardRef as forwardRef39,
|
|
3563
3849
|
useCallback as useCallback2,
|
|
3564
|
-
useId as
|
|
3565
|
-
useRef as
|
|
3566
|
-
useState as
|
|
3850
|
+
useId as useId21,
|
|
3851
|
+
useRef as useRef17,
|
|
3852
|
+
useState as useState20
|
|
3567
3853
|
} from "react";
|
|
3568
3854
|
|
|
3569
3855
|
// src/components/Textarea/Textarea.css.ts
|
|
@@ -3575,8 +3861,8 @@ var footer4 = "_1koawa8";
|
|
|
3575
3861
|
var textarea = /* @__PURE__ */ _7a46821({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
|
|
3576
3862
|
|
|
3577
3863
|
// src/components/Textarea/Textarea.tsx
|
|
3578
|
-
import { jsx as
|
|
3579
|
-
var Textarea = /* @__PURE__ */
|
|
3864
|
+
import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
3865
|
+
var Textarea = /* @__PURE__ */ forwardRef39(function Textarea2({
|
|
3580
3866
|
label: label6,
|
|
3581
3867
|
helperText: helperText3,
|
|
3582
3868
|
error,
|
|
@@ -3597,11 +3883,11 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
|
|
|
3597
3883
|
"aria-describedby": ariaDescribedBy,
|
|
3598
3884
|
...rest
|
|
3599
3885
|
}, ref) {
|
|
3600
|
-
const generatedId =
|
|
3886
|
+
const generatedId = useId21();
|
|
3601
3887
|
const textareaId = id ?? generatedId;
|
|
3602
3888
|
const helperId = helperText3 ? `${textareaId}-helper` : void 0;
|
|
3603
|
-
const innerRef =
|
|
3604
|
-
const [uncontrolledLength, setUncontrolledLength] =
|
|
3889
|
+
const innerRef = useRef17(null);
|
|
3890
|
+
const [uncontrolledLength, setUncontrolledLength] = useState20(() => String(defaultValue ?? "").length);
|
|
3605
3891
|
const length = value3 !== void 0 ? String(value3).length : uncontrolledLength;
|
|
3606
3892
|
const fitHeight = useCallback2(() => {
|
|
3607
3893
|
const el = innerRef.current;
|
|
@@ -3616,12 +3902,12 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
|
|
|
3616
3902
|
fitHeight();
|
|
3617
3903
|
onChange?.(event);
|
|
3618
3904
|
};
|
|
3619
|
-
return /* @__PURE__ */
|
|
3620
|
-
label6 && /* @__PURE__ */
|
|
3905
|
+
return /* @__PURE__ */ jsxs37("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3906
|
+
label6 && /* @__PURE__ */ jsxs37("label", { htmlFor: textareaId, className: label, children: [
|
|
3621
3907
|
label6,
|
|
3622
|
-
required && /* @__PURE__ */
|
|
3908
|
+
required && /* @__PURE__ */ jsx43("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3623
3909
|
] }),
|
|
3624
|
-
/* @__PURE__ */
|
|
3910
|
+
/* @__PURE__ */ jsx43(
|
|
3625
3911
|
"textarea",
|
|
3626
3912
|
{
|
|
3627
3913
|
ref: mergeRefs(innerRef, ref),
|
|
@@ -3643,36 +3929,36 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
|
|
|
3643
3929
|
...rest
|
|
3644
3930
|
}
|
|
3645
3931
|
),
|
|
3646
|
-
(helperText3 || showCount) && /* @__PURE__ */
|
|
3647
|
-
helperText3 && /* @__PURE__ */
|
|
3648
|
-
showCount && /* @__PURE__ */
|
|
3932
|
+
(helperText3 || showCount) && /* @__PURE__ */ jsxs37("div", { className: footer4, children: [
|
|
3933
|
+
helperText3 && /* @__PURE__ */ jsx43("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
3934
|
+
showCount && /* @__PURE__ */ jsx43("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
|
|
3649
3935
|
] })
|
|
3650
3936
|
] });
|
|
3651
3937
|
});
|
|
3652
3938
|
|
|
3653
3939
|
// src/components/Toast/Toast.tsx
|
|
3654
3940
|
import * as RadixToast from "@radix-ui/react-toast";
|
|
3655
|
-
import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as
|
|
3941
|
+
import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as useRef18, useState as useState21 } from "react";
|
|
3656
3942
|
import { XIcon as XIcon7 } from "@bestow-ui/icons";
|
|
3657
3943
|
|
|
3658
3944
|
// src/components/Toast/Toast.css.ts
|
|
3659
3945
|
import { createRuntimeFn as _7a46822 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3660
|
-
var action2 = "
|
|
3661
|
-
var close = "
|
|
3662
|
-
var
|
|
3663
|
-
var title5 = "
|
|
3664
|
-
var toast = /* @__PURE__ */ _7a46822({ defaultClassName: "_1g11zvx1", variantClassNames: { color: { primary: "_1g11zvx2", neutral: "_1g11zvx3", success: "_1g11zvx4", warning: "_1g11zvx5", danger: "_1g11zvx6" } }, defaultVariants: { color: "neutral" }, compoundVariants: [] });
|
|
3946
|
+
var action2 = "_1g11zvxa";
|
|
3947
|
+
var close = "_1g11zvxb";
|
|
3948
|
+
var description7 = "_1g11zvx9";
|
|
3949
|
+
var title5 = "_1g11zvx8";
|
|
3950
|
+
var toast = /* @__PURE__ */ _7a46822({ defaultClassName: "_1g11zvx1", variantClassNames: { color: { primary: "_1g11zvx2", neutral: "_1g11zvx3", success: "_1g11zvx4", warning: "_1g11zvx5", danger: "_1g11zvx6", info: "_1g11zvx7" } }, defaultVariants: { color: "neutral" }, compoundVariants: [] });
|
|
3665
3951
|
var viewport2 = "_1g11zvx0";
|
|
3666
3952
|
|
|
3667
3953
|
// src/components/Toast/Toast.tsx
|
|
3668
|
-
import { jsx as
|
|
3954
|
+
import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
3669
3955
|
var REMOVE_DELAY = 500;
|
|
3670
3956
|
var ToastContext = /* @__PURE__ */ createContext5(null);
|
|
3671
3957
|
function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
3672
3958
|
const m = useMessages();
|
|
3673
3959
|
const label6 = labelProp ?? m.notifications ?? "\uC54C\uB9BC";
|
|
3674
|
-
const [toasts, setToasts] =
|
|
3675
|
-
const nextId =
|
|
3960
|
+
const [toasts, setToasts] = useState21([]);
|
|
3961
|
+
const nextId = useRef18(0);
|
|
3676
3962
|
const portal2 = usePortalProps();
|
|
3677
3963
|
const toast2 = useCallback3((options) => {
|
|
3678
3964
|
const id = nextId.current++;
|
|
@@ -3685,9 +3971,9 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
3685
3971
|
setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
|
|
3686
3972
|
}, []);
|
|
3687
3973
|
const value3 = useMemo4(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
|
|
3688
|
-
return /* @__PURE__ */
|
|
3974
|
+
return /* @__PURE__ */ jsx44(ToastContext.Provider, { value: value3, children: /* @__PURE__ */ jsxs38(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
|
|
3689
3975
|
children,
|
|
3690
|
-
toasts.map(({ id, open, title: title6, description:
|
|
3976
|
+
toasts.map(({ id, open, title: title6, description: description8, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ jsxs38(
|
|
3691
3977
|
RadixToast.Root,
|
|
3692
3978
|
{
|
|
3693
3979
|
open,
|
|
@@ -3697,15 +3983,15 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
3697
3983
|
},
|
|
3698
3984
|
className: toast({ color }),
|
|
3699
3985
|
children: [
|
|
3700
|
-
/* @__PURE__ */
|
|
3701
|
-
|
|
3702
|
-
action3 && /* @__PURE__ */
|
|
3703
|
-
/* @__PURE__ */
|
|
3986
|
+
/* @__PURE__ */ jsx44(RadixToast.Title, { className: title5, children: title6 }),
|
|
3987
|
+
description8 && /* @__PURE__ */ jsx44(RadixToast.Description, { className: description7, children: description8 }),
|
|
3988
|
+
action3 && /* @__PURE__ */ jsx44(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ jsx44(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
|
|
3989
|
+
/* @__PURE__ */ jsx44(RadixToast.Close, { className: close, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ jsx44(XIcon7, { size: 16 }) })
|
|
3704
3990
|
]
|
|
3705
3991
|
},
|
|
3706
3992
|
id
|
|
3707
3993
|
)),
|
|
3708
|
-
/* @__PURE__ */
|
|
3994
|
+
/* @__PURE__ */ jsx44(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
|
|
3709
3995
|
] }) });
|
|
3710
3996
|
}
|
|
3711
3997
|
function useToast() {
|
|
@@ -3722,7 +4008,7 @@ var arrow2 = "z7rufs1";
|
|
|
3722
4008
|
var content11 = "z7rufs0";
|
|
3723
4009
|
|
|
3724
4010
|
// src/components/Tooltip/Tooltip.tsx
|
|
3725
|
-
import { jsx as
|
|
4011
|
+
import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
3726
4012
|
function Tooltip({
|
|
3727
4013
|
content: content12,
|
|
3728
4014
|
children,
|
|
@@ -3737,9 +4023,9 @@ function Tooltip({
|
|
|
3737
4023
|
}) {
|
|
3738
4024
|
const portal2 = usePortalProps();
|
|
3739
4025
|
if (disabled || content12 == null || content12 === "") return children;
|
|
3740
|
-
return /* @__PURE__ */
|
|
3741
|
-
/* @__PURE__ */
|
|
3742
|
-
/* @__PURE__ */
|
|
4026
|
+
return /* @__PURE__ */ jsx45(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ jsxs39(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
4027
|
+
/* @__PURE__ */ jsx45(RadixTooltip.Trigger, { asChild: true, children }),
|
|
4028
|
+
/* @__PURE__ */ jsx45(RadixTooltip.Portal, { children: /* @__PURE__ */ jsxs39(
|
|
3743
4029
|
RadixTooltip.Content,
|
|
3744
4030
|
{
|
|
3745
4031
|
side,
|
|
@@ -3750,7 +4036,7 @@ function Tooltip({
|
|
|
3750
4036
|
style: portal2.style,
|
|
3751
4037
|
children: [
|
|
3752
4038
|
content12,
|
|
3753
|
-
/* @__PURE__ */
|
|
4039
|
+
/* @__PURE__ */ jsx45(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
|
|
3754
4040
|
]
|
|
3755
4041
|
}
|
|
3756
4042
|
) })
|
|
@@ -3758,19 +4044,19 @@ function Tooltip({
|
|
|
3758
4044
|
}
|
|
3759
4045
|
|
|
3760
4046
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
3761
|
-
import { forwardRef as
|
|
4047
|
+
import { forwardRef as forwardRef40, useEffect as useEffect12, useId as useId22, useRef as useRef19, useState as useState22 } from "react";
|
|
3762
4048
|
|
|
3763
4049
|
// src/components/VerificationCodeInput/VerificationCodeInput.css.ts
|
|
3764
4050
|
var input5 = "ea01812";
|
|
3765
|
-
var
|
|
4051
|
+
var row5 = "ea01810";
|
|
3766
4052
|
var slot = "ea01813";
|
|
3767
4053
|
var slots = "ea01811";
|
|
3768
4054
|
var timer = "ea01814";
|
|
3769
4055
|
|
|
3770
4056
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
3771
|
-
import { jsx as
|
|
4057
|
+
import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
3772
4058
|
var formatTime = (seconds) => `${String(Math.floor(seconds / 60)).padStart(2, "0")}:${String(seconds % 60).padStart(2, "0")}`;
|
|
3773
|
-
var VerificationCodeInput = /* @__PURE__ */
|
|
4059
|
+
var VerificationCodeInput = /* @__PURE__ */ forwardRef40(
|
|
3774
4060
|
function VerificationCodeInput2(props, ref) {
|
|
3775
4061
|
const {
|
|
3776
4062
|
length = 6,
|
|
@@ -3797,19 +4083,19 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
|
|
|
3797
4083
|
const label6 = labelProp ?? m.verificationCode ?? "\uC778\uC99D\uBC88\uD638";
|
|
3798
4084
|
const resendText = resendTextProp ?? m.resend ?? "\uC7AC\uC804\uC1A1";
|
|
3799
4085
|
const expiredText = expiredTextProp ?? m.verificationExpired ?? "\uC778\uC99D \uC2DC\uAC04\uC774 \uC9C0\uB0AC\uC5B4\uC694. \uC7AC\uC804\uC1A1\uD574 \uC8FC\uC138\uC694.";
|
|
3800
|
-
const generatedId =
|
|
4086
|
+
const generatedId = useId22();
|
|
3801
4087
|
const inputId = id ?? generatedId;
|
|
3802
4088
|
const helperId = `${inputId}-helper`;
|
|
3803
4089
|
const statusId = `${inputId}-status`;
|
|
3804
|
-
const inputRef =
|
|
4090
|
+
const inputRef = useRef19(null);
|
|
3805
4091
|
const isControlled = "value" in props;
|
|
3806
|
-
const [innerValue, setInnerValue] =
|
|
4092
|
+
const [innerValue, setInnerValue] = useState22(defaultValue ?? "");
|
|
3807
4093
|
const code = (isControlled ? value3 ?? "" : innerValue).slice(0, length);
|
|
3808
|
-
const [focused, setFocused] =
|
|
3809
|
-
const [endAt, setEndAt] =
|
|
3810
|
-
const [remaining, setRemaining] =
|
|
4094
|
+
const [focused, setFocused] = useState22(false);
|
|
4095
|
+
const [endAt, setEndAt] = useState22(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
|
|
4096
|
+
const [remaining, setRemaining] = useState22(expiresIn ?? 0);
|
|
3811
4097
|
const expired = expiresIn !== void 0 && remaining <= 0;
|
|
3812
|
-
const onExpireRef =
|
|
4098
|
+
const onExpireRef = useRef19(onExpire);
|
|
3813
4099
|
useEffect12(() => {
|
|
3814
4100
|
onExpireRef.current = onExpire;
|
|
3815
4101
|
});
|
|
@@ -3846,19 +4132,19 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
|
|
|
3846
4132
|
}
|
|
3847
4133
|
inputRef.current?.focus();
|
|
3848
4134
|
};
|
|
3849
|
-
const
|
|
4135
|
+
const description8 = helperText3 ?? m.verificationCodeHint?.(length, type) ?? `${length}\uC790\uB9AC ${type === "numeric" ? "\uC22B\uC790" : "\uBB38\uC790"}\uB97C \uC785\uB825\uD558\uC138\uC694.`;
|
|
3850
4136
|
const activeIndex = Math.min(code.length, length - 1);
|
|
3851
|
-
return /* @__PURE__ */
|
|
4137
|
+
return /* @__PURE__ */ jsxs40(
|
|
3852
4138
|
"div",
|
|
3853
4139
|
{
|
|
3854
4140
|
className: cx(field, className),
|
|
3855
4141
|
"data-invalid": error || void 0,
|
|
3856
4142
|
"data-disabled": disabled || void 0,
|
|
3857
4143
|
children: [
|
|
3858
|
-
/* @__PURE__ */
|
|
3859
|
-
/* @__PURE__ */
|
|
3860
|
-
/* @__PURE__ */
|
|
3861
|
-
/* @__PURE__ */
|
|
4144
|
+
/* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: label, children: label6 }),
|
|
4145
|
+
/* @__PURE__ */ jsxs40("div", { className: row5, children: [
|
|
4146
|
+
/* @__PURE__ */ jsxs40("div", { className: slots, children: [
|
|
4147
|
+
/* @__PURE__ */ jsx46(
|
|
3862
4148
|
"input",
|
|
3863
4149
|
{
|
|
3864
4150
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -3878,7 +4164,7 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
|
|
|
3878
4164
|
className: input5
|
|
3879
4165
|
}
|
|
3880
4166
|
),
|
|
3881
|
-
Array.from({ length }, (_, index) => /* @__PURE__ */
|
|
4167
|
+
Array.from({ length }, (_, index) => /* @__PURE__ */ jsx46(
|
|
3882
4168
|
"div",
|
|
3883
4169
|
{
|
|
3884
4170
|
className: slot,
|
|
@@ -3889,12 +4175,12 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
|
|
|
3889
4175
|
index
|
|
3890
4176
|
))
|
|
3891
4177
|
] }),
|
|
3892
|
-
expiresIn !== void 0 && /* @__PURE__ */
|
|
3893
|
-
onResend && /* @__PURE__ */
|
|
4178
|
+
expiresIn !== void 0 && /* @__PURE__ */ jsx46("span", { role: "timer", className: timer, children: formatTime(remaining) }),
|
|
4179
|
+
onResend && /* @__PURE__ */ jsx46(Button, { size: "sm", variant: "outline", color: "neutral", onClick: resend, disabled, children: resendText })
|
|
3894
4180
|
] }),
|
|
3895
|
-
/* @__PURE__ */
|
|
3896
|
-
/* @__PURE__ */
|
|
3897
|
-
name && /* @__PURE__ */
|
|
4181
|
+
/* @__PURE__ */ jsx46("p", { id: helperId, className: helperText({ error }), children: description8 }),
|
|
4182
|
+
/* @__PURE__ */ jsx46("p", { id: statusId, role: "status", className: helperText({ error: true }), children: expired ? expiredText : "" }),
|
|
4183
|
+
name && /* @__PURE__ */ jsx46("input", { type: "hidden", name, value: code })
|
|
3898
4184
|
]
|
|
3899
4185
|
}
|
|
3900
4186
|
);
|
|
@@ -3913,6 +4199,7 @@ export {
|
|
|
3913
4199
|
Button,
|
|
3914
4200
|
Calendar,
|
|
3915
4201
|
Checkbox,
|
|
4202
|
+
CheckboxGroup,
|
|
3916
4203
|
Combobox,
|
|
3917
4204
|
DatePicker,
|
|
3918
4205
|
DateRangePicker,
|
|
@@ -3946,6 +4233,7 @@ export {
|
|
|
3946
4233
|
Popover2 as Popover,
|
|
3947
4234
|
PopoverClose,
|
|
3948
4235
|
RadioGroup2 as RadioGroup,
|
|
4236
|
+
ResidentNumberInput,
|
|
3949
4237
|
SegmentedControl,
|
|
3950
4238
|
Select,
|
|
3951
4239
|
SkipLink,
|