@bestow-ui/react 0.10.0 → 0.11.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 +1 -0
- package/dist/index.cjs +1486 -654
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +866 -634
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +272 -29
- package/dist/index.d.ts +272 -29
- package/dist/index.js +1470 -651
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6,9 +6,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __export = (target,
|
|
10
|
-
for (var name in
|
|
11
|
-
__defProp(target, name, { get:
|
|
9
|
+
var __export = (target, all2) => {
|
|
10
|
+
for (var name in all2)
|
|
11
|
+
__defProp(target, name, { get: all2[name], enumerable: true });
|
|
12
12
|
};
|
|
13
13
|
var __copyProps = (to, from, except, desc) => {
|
|
14
14
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -33,10 +33,14 @@ var index_exports = {};
|
|
|
33
33
|
__export(index_exports, {
|
|
34
34
|
Accordion: () => Accordion,
|
|
35
35
|
AccordionItem: () => AccordionItem,
|
|
36
|
+
AddressInput: () => AddressInput,
|
|
37
|
+
AgreementGroup: () => AgreementGroup,
|
|
36
38
|
Alert: () => Alert,
|
|
39
|
+
AmountInput: () => AmountInput,
|
|
37
40
|
Avatar: () => Avatar,
|
|
38
41
|
Badge: () => Badge,
|
|
39
42
|
Breadcrumb: () => Breadcrumb,
|
|
43
|
+
BusinessNumberInput: () => BusinessNumberInput,
|
|
40
44
|
Button: () => Button,
|
|
41
45
|
Card: () => Card,
|
|
42
46
|
CardBody: () => CardBody,
|
|
@@ -60,6 +64,7 @@ __export(index_exports, {
|
|
|
60
64
|
Modal: () => Modal,
|
|
61
65
|
ModalClose: () => ModalClose,
|
|
62
66
|
Pagination: () => Pagination,
|
|
67
|
+
PhoneNumberInput: () => PhoneNumberInput,
|
|
63
68
|
Popover: () => Popover2,
|
|
64
69
|
PopoverClose: () => PopoverClose,
|
|
65
70
|
Progress: () => Progress,
|
|
@@ -87,9 +92,17 @@ __export(index_exports, {
|
|
|
87
92
|
ToastProvider: () => ToastProvider,
|
|
88
93
|
Tooltip: () => Tooltip,
|
|
89
94
|
Typography: () => Typography,
|
|
95
|
+
VerificationCodeInput: () => VerificationCodeInput,
|
|
96
|
+
composeExtraAddress: () => composeExtraAddress,
|
|
90
97
|
contrastRatio: () => contrastRatio,
|
|
91
98
|
createIntentColors: () => createIntentColors,
|
|
92
99
|
createTheme: () => createTheme,
|
|
100
|
+
formatBusinessNumber: () => formatBusinessNumber,
|
|
101
|
+
formatKoreanAmount: () => formatKoreanAmount,
|
|
102
|
+
formatPhoneNumber: () => formatPhoneNumber,
|
|
103
|
+
hasAllRequiredAgreements: () => hasAllRequiredAgreements,
|
|
104
|
+
isValidBusinessNumber: () => isValidBusinessNumber,
|
|
105
|
+
kakaoPostcodeProvider: () => kakaoPostcodeProvider,
|
|
93
106
|
themeClass: () => themeClass,
|
|
94
107
|
usePortalClassName: () => usePortalClassName,
|
|
95
108
|
usePortalProps: () => usePortalProps,
|
|
@@ -220,9 +233,12 @@ function createIntentColors(intent, color) {
|
|
|
220
233
|
subtleHover: rgba(darkSolid, 0.26),
|
|
221
234
|
text: findReadable(darkBase, Math.max(darkBase.l, 0.75), 0.02, [darkBg, darkSubtleOnBg, darkSubtleHoverOnBg])
|
|
222
235
|
};
|
|
236
|
+
const focusOn = (candidate, fallback2, bg) => contrastRatio(candidate, bg) >= 3 ? candidate : fallback2;
|
|
223
237
|
const focus = intent === "primary" ? {
|
|
224
|
-
light: { border: { focus: light.solid } },
|
|
225
|
-
dark: {
|
|
238
|
+
light: { border: { focus: focusOn(light.solid, light.text, import_tokens.lightColors.bg.default) } },
|
|
239
|
+
dark: {
|
|
240
|
+
border: { focus: focusOn(withL(darkBase, Math.min(1, darkBase.l + 0.06)), dark.text, darkBg) }
|
|
241
|
+
}
|
|
226
242
|
} : void 0;
|
|
227
243
|
return {
|
|
228
244
|
light: { color: { [intent]: light, ...focus?.light } },
|
|
@@ -245,9 +261,9 @@ function deepMerge(target, source) {
|
|
|
245
261
|
function createTheme(...inputs) {
|
|
246
262
|
let light = {};
|
|
247
263
|
let dark = {};
|
|
248
|
-
for (const
|
|
249
|
-
light = deepMerge(deepMerge(light,
|
|
250
|
-
dark = deepMerge(deepMerge(dark,
|
|
264
|
+
for (const input5 of inputs) {
|
|
265
|
+
light = deepMerge(deepMerge(light, input5.common), input5.light);
|
|
266
|
+
dark = deepMerge(deepMerge(dark, input5.common), input5.dark);
|
|
251
267
|
}
|
|
252
268
|
return Object.freeze({ light, dark });
|
|
253
269
|
}
|
|
@@ -350,111 +366,914 @@ var AccordionItem = /* @__PURE__ */ (0, import_react2.forwardRef)(function Accor
|
|
|
350
366
|
] });
|
|
351
367
|
});
|
|
352
368
|
|
|
353
|
-
// src/components/
|
|
354
|
-
var
|
|
369
|
+
// src/components/AddressInput/AddressInput.tsx
|
|
370
|
+
var import_react8 = require("react");
|
|
371
|
+
|
|
372
|
+
// src/components/Button/Button.tsx
|
|
373
|
+
var import_react4 = require("react");
|
|
374
|
+
|
|
375
|
+
// src/components/Spinner/Spinner.tsx
|
|
355
376
|
var import_icons2 = require("@bestow-ui/icons");
|
|
377
|
+
var import_react3 = require("react");
|
|
356
378
|
|
|
357
|
-
// src/
|
|
379
|
+
// src/styles/visuallyHidden.css.ts
|
|
380
|
+
var visuallyHidden = "_1kdtbw10";
|
|
381
|
+
|
|
382
|
+
// src/components/Spinner/Spinner.css.ts
|
|
358
383
|
var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
384
|
+
var spinner = /* @__PURE__ */ (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "_4b5tg40", variantClassNames: { color: { current: "_4b5tg41", primary: "_4b5tg42", neutral: "_4b5tg43", danger: "_4b5tg44" }, size: { sm: "_4b5tg45", md: "_4b5tg46", lg: "_4b5tg47" } }, defaultVariants: { color: "current", size: "md" }, compoundVariants: [] });
|
|
385
|
+
|
|
386
|
+
// src/components/Spinner/Spinner.tsx
|
|
387
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
388
|
+
var Spinner = /* @__PURE__ */ (0, import_react3.forwardRef)(function Spinner2({ size, color, label: label6 = "\uB85C\uB529 \uC911", className, ...rest }, ref) {
|
|
389
|
+
const a11y = label6 ? { role: "status" } : { "aria-hidden": true };
|
|
390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { ref, className: cx(spinner({ size, color }), className), ...a11y, ...rest, children: [
|
|
391
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons2.LoaderIcon, { size: "100%" }),
|
|
392
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: visuallyHidden, children: label6 })
|
|
393
|
+
] });
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
// src/components/Button/Button.css.ts
|
|
397
|
+
var import_createRuntimeFn2 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
398
|
+
var button = /* @__PURE__ */ (0, import_createRuntimeFn2.createRuntimeFn)({ defaultClassName: "xcekda6", variantClassNames: { variant: { solid: "xcekda7", soft: "xcekda8", outline: "xcekda9", ghost: "xcekdaa" }, color: { primary: "xcekdab", neutral: "xcekdac", danger: "xcekdad" }, size: { sm: "xcekdae", md: "xcekdaf", lg: "xcekdag" }, fullWidth: { true: "xcekdah" } }, defaultVariants: { variant: "solid", color: "primary", size: "md" }, compoundVariants: [] });
|
|
399
|
+
var icon = "xcekdai";
|
|
400
|
+
|
|
401
|
+
// src/components/Button/Button.tsx
|
|
402
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
403
|
+
var Button = /* @__PURE__ */ (0, import_react4.forwardRef)(function Button2({
|
|
404
|
+
variant,
|
|
405
|
+
color,
|
|
406
|
+
size,
|
|
407
|
+
fullWidth,
|
|
408
|
+
startIcon,
|
|
409
|
+
endIcon,
|
|
410
|
+
loading: loading2,
|
|
411
|
+
className,
|
|
412
|
+
type = "button",
|
|
413
|
+
onClick,
|
|
414
|
+
children,
|
|
415
|
+
...rest
|
|
416
|
+
}, ref) {
|
|
417
|
+
const handleClick = (event) => {
|
|
418
|
+
if (loading2) {
|
|
419
|
+
event.preventDefault();
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
onClick?.(event);
|
|
423
|
+
};
|
|
424
|
+
const leading = loading2 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Spinner, { size: "sm", label: "" }) : startIcon;
|
|
425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
426
|
+
"button",
|
|
427
|
+
{
|
|
428
|
+
ref,
|
|
429
|
+
type,
|
|
430
|
+
className: cx(button({ variant, color, size, fullWidth }), className),
|
|
431
|
+
"aria-busy": loading2 || void 0,
|
|
432
|
+
"aria-disabled": loading2 || void 0,
|
|
433
|
+
onClick: handleClick,
|
|
434
|
+
...rest,
|
|
435
|
+
children: [
|
|
436
|
+
leading && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: icon, children: leading }),
|
|
437
|
+
children,
|
|
438
|
+
endIcon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: icon, children: endIcon })
|
|
439
|
+
]
|
|
440
|
+
}
|
|
441
|
+
);
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
// src/components/Input/Input.css.ts
|
|
445
|
+
var import_createRuntimeFn3 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
446
|
+
var adornment = "_19p5zvh6";
|
|
447
|
+
var field = "_19p5zvh7";
|
|
448
|
+
var fieldFullWidth = "_19p5zvh8";
|
|
449
|
+
var helperText = /* @__PURE__ */ (0, import_createRuntimeFn3.createRuntimeFn)({ defaultClassName: "_19p5zvhb", variantClassNames: { error: { true: "_19p5zvhc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
450
|
+
var input = "_19p5zvh5";
|
|
451
|
+
var label = "_19p5zvh9";
|
|
452
|
+
var requiredMark = "_19p5zvha";
|
|
453
|
+
var root3 = /* @__PURE__ */ (0, import_createRuntimeFn3.createRuntimeFn)({ defaultClassName: "_19p5zvh0", variantClassNames: { size: { sm: "_19p5zvh1", md: "_19p5zvh2", lg: "_19p5zvh3" }, fullWidth: { true: "_19p5zvh4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
454
|
+
|
|
455
|
+
// src/components/Input/Input.tsx
|
|
456
|
+
var import_react5 = require("react");
|
|
457
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
458
|
+
var Input = /* @__PURE__ */ (0, import_react5.forwardRef)(function Input2({ size, invalid, fullWidth, startAdornment, endAdornment, rootClassName, className, disabled, ...rest }, ref) {
|
|
459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
460
|
+
"div",
|
|
461
|
+
{
|
|
462
|
+
className: cx(root3({ size, fullWidth }), rootClassName),
|
|
463
|
+
"data-invalid": invalid || void 0,
|
|
464
|
+
"data-disabled": disabled || void 0,
|
|
465
|
+
children: [
|
|
466
|
+
startAdornment && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: adornment, children: startAdornment }),
|
|
467
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
468
|
+
"input",
|
|
469
|
+
{
|
|
470
|
+
ref,
|
|
471
|
+
className: cx(input, className),
|
|
472
|
+
disabled,
|
|
473
|
+
"aria-invalid": invalid || void 0,
|
|
474
|
+
...rest
|
|
475
|
+
}
|
|
476
|
+
),
|
|
477
|
+
endAdornment && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: adornment, children: endAdornment })
|
|
478
|
+
]
|
|
479
|
+
}
|
|
480
|
+
);
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
// src/components/Input/TextField.tsx
|
|
484
|
+
var import_react6 = require("react");
|
|
485
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
486
|
+
var TextField = /* @__PURE__ */ (0, import_react6.forwardRef)(function TextField2({ label: label6, helperText: helperText3, error, required, fullWidth, id, "aria-describedby": ariaDescribedBy, ...rest }, ref) {
|
|
487
|
+
const generatedId = (0, import_react6.useId)();
|
|
488
|
+
const inputId = id ?? generatedId;
|
|
489
|
+
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
491
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("label", { htmlFor: inputId, className: label, children: [
|
|
492
|
+
label6,
|
|
493
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
494
|
+
] }),
|
|
495
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
496
|
+
Input,
|
|
497
|
+
{
|
|
498
|
+
ref,
|
|
499
|
+
id: inputId,
|
|
500
|
+
invalid: error,
|
|
501
|
+
required,
|
|
502
|
+
fullWidth,
|
|
503
|
+
"aria-describedby": cx(helperId, ariaDescribedBy) || void 0,
|
|
504
|
+
...rest
|
|
505
|
+
}
|
|
506
|
+
),
|
|
507
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
508
|
+
] });
|
|
509
|
+
});
|
|
510
|
+
|
|
511
|
+
// src/components/Modal/Modal.tsx
|
|
512
|
+
var Dialog = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
513
|
+
var import_icons3 = require("@bestow-ui/icons");
|
|
514
|
+
|
|
515
|
+
// src/utils/useReturnFocus.ts
|
|
516
|
+
var import_react7 = require("react");
|
|
517
|
+
function useReturnFocus(hasTrigger, onCloseAutoFocus) {
|
|
518
|
+
const returnTo = (0, import_react7.useRef)(null);
|
|
519
|
+
return {
|
|
520
|
+
onOpenAutoFocus: () => {
|
|
521
|
+
returnTo.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
522
|
+
},
|
|
523
|
+
onCloseAutoFocus: (event) => {
|
|
524
|
+
onCloseAutoFocus?.(event);
|
|
525
|
+
if (event.defaultPrevented || hasTrigger) return;
|
|
526
|
+
const target = returnTo.current;
|
|
527
|
+
if (target && target.isConnected && target !== document.body) {
|
|
528
|
+
event.preventDefault();
|
|
529
|
+
target.focus();
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
// src/components/Modal/Modal.css.ts
|
|
536
|
+
var import_createRuntimeFn4 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
537
|
+
var body = "_1pdsmv0a";
|
|
538
|
+
var closeButton = "_1pdsmv09";
|
|
539
|
+
var content2 = /* @__PURE__ */ (0, import_createRuntimeFn4.createRuntimeFn)({ defaultClassName: "_1pdsmv01", variantClassNames: { size: { sm: "_1pdsmv02", md: "_1pdsmv03", lg: "_1pdsmv04" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
540
|
+
var description = "_1pdsmv08";
|
|
541
|
+
var footer = "_1pdsmv0b";
|
|
542
|
+
var header2 = "_1pdsmv05";
|
|
543
|
+
var headings = "_1pdsmv06";
|
|
544
|
+
var overlay = "_1pdsmv00";
|
|
545
|
+
var title = "_1pdsmv07";
|
|
546
|
+
|
|
547
|
+
// src/components/Modal/Modal.tsx
|
|
548
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
549
|
+
function Modal({
|
|
550
|
+
open,
|
|
551
|
+
defaultOpen,
|
|
552
|
+
onOpenChange,
|
|
553
|
+
trigger: trigger4,
|
|
554
|
+
title: title6,
|
|
555
|
+
description: description6,
|
|
556
|
+
children,
|
|
557
|
+
footer: footer6,
|
|
558
|
+
size,
|
|
559
|
+
hideCloseButton = false,
|
|
560
|
+
closeOnOverlayClick = true,
|
|
561
|
+
className,
|
|
562
|
+
onCloseAutoFocus
|
|
563
|
+
}) {
|
|
564
|
+
const portal2 = usePortalProps();
|
|
565
|
+
const focus = useReturnFocus(Boolean(trigger4), onCloseAutoFocus);
|
|
566
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Dialog.Root, { open, defaultOpen, onOpenChange, children: [
|
|
567
|
+
trigger4 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Trigger, { asChild: true, children: trigger4 }),
|
|
568
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Dialog.Portal, { children: [
|
|
569
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Overlay, { className: cx(portal2.className, overlay), style: portal2.style }),
|
|
570
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
571
|
+
Dialog.Content,
|
|
572
|
+
{
|
|
573
|
+
className: cx(portal2.className, content2({ size }), className),
|
|
574
|
+
style: portal2.style,
|
|
575
|
+
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
576
|
+
onOpenAutoFocus: focus.onOpenAutoFocus,
|
|
577
|
+
onCloseAutoFocus: focus.onCloseAutoFocus,
|
|
578
|
+
...description6 ? {} : { "aria-describedby": void 0 },
|
|
579
|
+
children: [
|
|
580
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: header2, children: [
|
|
581
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: headings, children: [
|
|
582
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Title, { className: title, children: title6 }),
|
|
583
|
+
description6 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Description, { className: description, children: description6 })
|
|
584
|
+
] }),
|
|
585
|
+
!hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Close, { className: closeButton, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_icons3.XIcon, { size: 16 }) })
|
|
586
|
+
] }),
|
|
587
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: body, children }),
|
|
588
|
+
footer6 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: footer, children: footer6 })
|
|
589
|
+
]
|
|
590
|
+
}
|
|
591
|
+
)
|
|
592
|
+
] })
|
|
593
|
+
] });
|
|
594
|
+
}
|
|
595
|
+
var ModalClose = Dialog.Close;
|
|
596
|
+
|
|
597
|
+
// src/components/AddressInput/addressProviders.ts
|
|
598
|
+
var KAKAO_POSTCODE_SRC = "https://t1.kakaocdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js";
|
|
599
|
+
var loading = null;
|
|
600
|
+
function loadKakaoPostcode() {
|
|
601
|
+
const w = window;
|
|
602
|
+
const existing = w.kakao?.Postcode ?? w.daum?.Postcode;
|
|
603
|
+
if (existing) return Promise.resolve(existing);
|
|
604
|
+
loading ?? (loading = new Promise((resolve, reject) => {
|
|
605
|
+
const script = document.createElement("script");
|
|
606
|
+
script.src = KAKAO_POSTCODE_SRC;
|
|
607
|
+
script.async = true;
|
|
608
|
+
script.onload = () => {
|
|
609
|
+
const ctor = w.kakao?.Postcode ?? w.daum?.Postcode;
|
|
610
|
+
if (ctor) resolve(ctor);
|
|
611
|
+
else reject(new Error("\uC6B0\uD3B8\uBC88\uD638 \uC11C\uBE44\uC2A4\uB97C \uCC3E\uC9C0 \uBABB\uD588\uC5B4\uC694"));
|
|
612
|
+
};
|
|
613
|
+
script.onerror = () => {
|
|
614
|
+
loading = null;
|
|
615
|
+
reject(new Error("\uC6B0\uD3B8\uBC88\uD638 \uC11C\uBE44\uC2A4\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC5B4\uC694"));
|
|
616
|
+
};
|
|
617
|
+
document.head.appendChild(script);
|
|
618
|
+
}));
|
|
619
|
+
return loading;
|
|
620
|
+
}
|
|
621
|
+
function composeExtraAddress(data) {
|
|
622
|
+
if (data.userSelectedType !== "R") return "";
|
|
623
|
+
const parts = [];
|
|
624
|
+
if (data.bname && /[동로가]$/.test(data.bname)) parts.push(data.bname);
|
|
625
|
+
if (data.buildingName && data.apartment === "Y") parts.push(data.buildingName);
|
|
626
|
+
return parts.length ? ` (${parts.join(", ")})` : "";
|
|
627
|
+
}
|
|
628
|
+
var kakaoPostcodeProvider = async (container2, onSelect) => {
|
|
629
|
+
const Postcode = await loadKakaoPostcode();
|
|
630
|
+
new Postcode({
|
|
631
|
+
width: "100%",
|
|
632
|
+
height: "100%",
|
|
633
|
+
oncomplete: (data) => {
|
|
634
|
+
const address = data.userSelectedType === "R" ? data.roadAddress : data.jibunAddress || data.autoJibunAddress || "";
|
|
635
|
+
onSelect({ zonecode: data.zonecode, address, extraAddress: composeExtraAddress(data) });
|
|
636
|
+
}
|
|
637
|
+
}).embed(container2);
|
|
638
|
+
};
|
|
639
|
+
|
|
640
|
+
// src/components/AddressInput/AddressInput.css.ts
|
|
641
|
+
var fieldset = "_16fi7uy0";
|
|
642
|
+
var legend = "_16fi7uy1";
|
|
643
|
+
var row = "_16fi7uy2";
|
|
644
|
+
var searchArea = "_16fi7uy4";
|
|
645
|
+
var searchStatus = "_16fi7uy5";
|
|
646
|
+
var zonecode = "_16fi7uy3";
|
|
647
|
+
|
|
648
|
+
// src/components/AddressInput/AddressInput.tsx
|
|
649
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
650
|
+
var EMPTY = { zonecode: "", address: "", extraAddress: "", detail: "" };
|
|
651
|
+
function SearchArea({
|
|
652
|
+
provider,
|
|
653
|
+
onSelect,
|
|
654
|
+
loadErrorText
|
|
655
|
+
}) {
|
|
656
|
+
const containerRef = (0, import_react8.useRef)(null);
|
|
657
|
+
const [status, setStatus] = (0, import_react8.useState)("loading");
|
|
658
|
+
const onSelectRef = (0, import_react8.useRef)(onSelect);
|
|
659
|
+
(0, import_react8.useEffect)(() => {
|
|
660
|
+
onSelectRef.current = onSelect;
|
|
661
|
+
});
|
|
662
|
+
(0, import_react8.useEffect)(() => {
|
|
663
|
+
const container2 = containerRef.current;
|
|
664
|
+
if (!container2) return;
|
|
665
|
+
let cleanup;
|
|
666
|
+
let cancelled = false;
|
|
667
|
+
Promise.resolve().then(() => provider(container2, (result) => onSelectRef.current(result))).then((fn) => {
|
|
668
|
+
if (cancelled) fn?.();
|
|
669
|
+
else {
|
|
670
|
+
cleanup = fn;
|
|
671
|
+
setStatus("ready");
|
|
672
|
+
}
|
|
673
|
+
}).catch(() => !cancelled && setStatus("error"));
|
|
674
|
+
return () => {
|
|
675
|
+
cancelled = true;
|
|
676
|
+
cleanup?.();
|
|
677
|
+
};
|
|
678
|
+
}, [provider]);
|
|
679
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: searchArea, children: [
|
|
680
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { ref: containerRef, style: { width: "100%", height: "100%" } }),
|
|
681
|
+
status !== "ready" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: searchStatus, role: "status", children: status === "loading" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Spinner, { label: "\uC8FC\uC18C \uAC80\uC0C9\uC744 \uBD88\uB7EC\uC624\uB294 \uC911" }) : loadErrorText })
|
|
682
|
+
] });
|
|
683
|
+
}
|
|
684
|
+
var AddressInput = /* @__PURE__ */ (0, import_react8.forwardRef)(
|
|
685
|
+
function AddressInput2(props, ref) {
|
|
686
|
+
const {
|
|
687
|
+
value: value4,
|
|
688
|
+
defaultValue,
|
|
689
|
+
onValueChange,
|
|
690
|
+
label: label6 = "\uC8FC\uC18C",
|
|
691
|
+
required,
|
|
692
|
+
helperText: helperText3,
|
|
693
|
+
error,
|
|
694
|
+
disabled,
|
|
695
|
+
provider = kakaoPostcodeProvider,
|
|
696
|
+
searchLabel = "\uC8FC\uC18C \uAC80\uC0C9",
|
|
697
|
+
detailPlaceholder = "\uC0C1\uC138 \uC8FC\uC18C (\uB3D9\xB7\uD638\uC218 \uB4F1)",
|
|
698
|
+
loadErrorText = "\uC8FC\uC18C \uAC80\uC0C9\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC5B4\uC694. \uC7A0\uC2DC \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.",
|
|
699
|
+
name,
|
|
700
|
+
className
|
|
701
|
+
} = props;
|
|
702
|
+
const baseId = (0, import_react8.useId)();
|
|
703
|
+
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
704
|
+
const detailRef = (0, import_react8.useRef)(null);
|
|
705
|
+
const selectedRef = (0, import_react8.useRef)(false);
|
|
706
|
+
const [open, setOpen] = (0, import_react8.useState)(false);
|
|
707
|
+
const isControlled = "value" in props;
|
|
708
|
+
const [innerValue, setInnerValue] = (0, import_react8.useState)(defaultValue ?? EMPTY);
|
|
709
|
+
const current2 = isControlled ? value4 ?? EMPTY : innerValue;
|
|
710
|
+
const update = (next) => {
|
|
711
|
+
if (!isControlled) setInnerValue(next);
|
|
712
|
+
onValueChange?.(next);
|
|
713
|
+
};
|
|
714
|
+
const openSearch = () => {
|
|
715
|
+
if (disabled) return;
|
|
716
|
+
selectedRef.current = false;
|
|
717
|
+
setOpen(true);
|
|
718
|
+
};
|
|
719
|
+
const handleSelect = (result) => {
|
|
720
|
+
selectedRef.current = true;
|
|
721
|
+
update({
|
|
722
|
+
...current2,
|
|
723
|
+
zonecode: result.zonecode,
|
|
724
|
+
address: result.address,
|
|
725
|
+
extraAddress: result.extraAddress ?? ""
|
|
726
|
+
});
|
|
727
|
+
setOpen(false);
|
|
728
|
+
};
|
|
729
|
+
const fullAddress = `${current2.address}${current2.extraAddress ?? ""}`;
|
|
730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("fieldset", { ref, className: cx(fieldset, className), disabled, "aria-describedby": helperId, children: [
|
|
731
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("legend", { className: legend, children: [
|
|
732
|
+
label6,
|
|
733
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
734
|
+
] }),
|
|
735
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: row, children: [
|
|
736
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
737
|
+
TextField,
|
|
738
|
+
{
|
|
739
|
+
"aria-label": "\uC6B0\uD3B8\uBC88\uD638",
|
|
740
|
+
readOnly: true,
|
|
741
|
+
value: current2.zonecode,
|
|
742
|
+
placeholder: "\uC6B0\uD3B8\uBC88\uD638",
|
|
743
|
+
error: error && !current2.zonecode,
|
|
744
|
+
"aria-required": required || void 0,
|
|
745
|
+
rootClassName: zonecode,
|
|
746
|
+
onClick: openSearch
|
|
747
|
+
}
|
|
748
|
+
),
|
|
749
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { variant: "outline", color: "neutral", onClick: openSearch, disabled, children: searchLabel })
|
|
750
|
+
] }),
|
|
751
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
752
|
+
TextField,
|
|
753
|
+
{
|
|
754
|
+
"aria-label": "\uAE30\uBCF8 \uC8FC\uC18C",
|
|
755
|
+
readOnly: true,
|
|
756
|
+
value: fullAddress,
|
|
757
|
+
placeholder: `${searchLabel}\uC744 \uB20C\uB7EC \uC8FC\uC18C\uB97C \uACE0\uB974\uC138\uC694`,
|
|
758
|
+
error: error && !current2.address,
|
|
759
|
+
"aria-required": required || void 0,
|
|
760
|
+
fullWidth: true,
|
|
761
|
+
onClick: openSearch
|
|
762
|
+
}
|
|
763
|
+
),
|
|
764
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
765
|
+
TextField,
|
|
766
|
+
{
|
|
767
|
+
ref: detailRef,
|
|
768
|
+
"aria-label": "\uC0C1\uC138 \uC8FC\uC18C",
|
|
769
|
+
value: current2.detail,
|
|
770
|
+
placeholder: detailPlaceholder,
|
|
771
|
+
onChange: (event) => update({ ...current2, detail: event.target.value }),
|
|
772
|
+
autoComplete: "address-line2",
|
|
773
|
+
fullWidth: true
|
|
774
|
+
}
|
|
775
|
+
),
|
|
776
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
777
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
778
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "hidden", name: `${name}[zonecode]`, value: current2.zonecode }),
|
|
779
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "hidden", name: `${name}[address]`, value: fullAddress }),
|
|
780
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "hidden", name: `${name}[detail]`, value: current2.detail })
|
|
781
|
+
] }),
|
|
782
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
783
|
+
Modal,
|
|
784
|
+
{
|
|
785
|
+
open,
|
|
786
|
+
onOpenChange: setOpen,
|
|
787
|
+
title: searchLabel,
|
|
788
|
+
description: "\uB3C4\uB85C\uBA85, \uAC74\uBB3C\uBA85, \uC9C0\uBC88\uC73C\uB85C \uAC80\uC0C9\uD560 \uC218 \uC788\uC5B4\uC694.",
|
|
789
|
+
onCloseAutoFocus: (event) => {
|
|
790
|
+
if (selectedRef.current) {
|
|
791
|
+
event.preventDefault();
|
|
792
|
+
detailRef.current?.focus();
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SearchArea, { provider, onSelect: handleSelect, loadErrorText })
|
|
796
|
+
}
|
|
797
|
+
)
|
|
798
|
+
] });
|
|
799
|
+
}
|
|
800
|
+
);
|
|
801
|
+
|
|
802
|
+
// src/components/AgreementGroup/AgreementGroup.tsx
|
|
803
|
+
var import_react10 = require("react");
|
|
804
|
+
var import_icons4 = require("@bestow-ui/icons");
|
|
805
|
+
|
|
806
|
+
// src/components/Checkbox/Checkbox.tsx
|
|
807
|
+
var import_react9 = require("react");
|
|
808
|
+
|
|
809
|
+
// src/utils/mergeRefs.ts
|
|
810
|
+
function mergeRefs(...refs) {
|
|
811
|
+
return (value4) => {
|
|
812
|
+
for (const ref of refs) {
|
|
813
|
+
if (typeof ref === "function") ref(value4);
|
|
814
|
+
else if (ref) ref.current = value4;
|
|
815
|
+
}
|
|
816
|
+
};
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
// src/components/Checkbox/Checkbox.css.ts
|
|
820
|
+
var import_createRuntimeFn5 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
821
|
+
var checkIcon = "_1y7mzsn8 _1y7mzsn7";
|
|
822
|
+
var control = /* @__PURE__ */ (0, import_createRuntimeFn5.createRuntimeFn)({ defaultClassName: "_1y7mzsn3", variantClassNames: { size: { sm: "_1y7mzsn4", md: "_1y7mzsn5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
823
|
+
var indeterminateIcon = "_1y7mzsn9 _1y7mzsn7";
|
|
824
|
+
var input2 = "_1y7mzsn6";
|
|
825
|
+
var root4 = /* @__PURE__ */ (0, import_createRuntimeFn5.createRuntimeFn)({ defaultClassName: "_1y7mzsn0", variantClassNames: { size: { sm: "_1y7mzsn1", md: "_1y7mzsn2" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
826
|
+
|
|
827
|
+
// src/components/Checkbox/Checkbox.tsx
|
|
828
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
829
|
+
var Checkbox = /* @__PURE__ */ (0, import_react9.forwardRef)(function Checkbox2({ label: label6, size, indeterminate = false, invalid, disabled, className, ...rest }, ref) {
|
|
830
|
+
const innerRef = (0, import_react9.useRef)(null);
|
|
831
|
+
(0, import_react9.useEffect)(() => {
|
|
832
|
+
if (innerRef.current) innerRef.current.indeterminate = indeterminate;
|
|
833
|
+
}, [indeterminate]);
|
|
834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("label", { className: cx(root4({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
835
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: control({ size }), children: [
|
|
836
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
837
|
+
"input",
|
|
838
|
+
{
|
|
839
|
+
ref: mergeRefs(innerRef, ref),
|
|
840
|
+
type: "checkbox",
|
|
841
|
+
className: input2,
|
|
842
|
+
disabled,
|
|
843
|
+
"aria-invalid": invalid || void 0,
|
|
844
|
+
...rest
|
|
845
|
+
}
|
|
846
|
+
),
|
|
847
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { className: checkIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
848
|
+
"path",
|
|
849
|
+
{
|
|
850
|
+
d: "M5 10.5l3.2 3L15 7",
|
|
851
|
+
stroke: "currentColor",
|
|
852
|
+
strokeWidth: "2",
|
|
853
|
+
strokeLinecap: "round",
|
|
854
|
+
strokeLinejoin: "round"
|
|
855
|
+
}
|
|
856
|
+
) }),
|
|
857
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { className: indeterminateIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M6 10h8", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) })
|
|
858
|
+
] }),
|
|
859
|
+
label6
|
|
860
|
+
] });
|
|
861
|
+
});
|
|
862
|
+
|
|
863
|
+
// src/components/AgreementGroup/AgreementGroup.css.ts
|
|
864
|
+
var all = "j3uxdc3";
|
|
865
|
+
var box = "j3uxdc2";
|
|
866
|
+
var chevron2 = "j3uxdc9";
|
|
867
|
+
var content3 = "j3uxdca";
|
|
868
|
+
var fieldset2 = "j3uxdc0";
|
|
869
|
+
var item2 = "j3uxdc5";
|
|
870
|
+
var legend2 = "j3uxdc1";
|
|
871
|
+
var list = "j3uxdc4";
|
|
872
|
+
var row2 = "j3uxdc6";
|
|
873
|
+
var tag = "j3uxdc7";
|
|
874
|
+
var toggle = "j3uxdc8";
|
|
875
|
+
|
|
876
|
+
// src/components/AgreementGroup/AgreementGroup.tsx
|
|
877
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
878
|
+
function hasAllRequiredAgreements(items2, value4) {
|
|
879
|
+
return items2.every((item7) => !item7.required || value4.includes(item7.value));
|
|
880
|
+
}
|
|
881
|
+
var AgreementGroup = /* @__PURE__ */ (0, import_react10.forwardRef)(
|
|
882
|
+
function AgreementGroup2(props, ref) {
|
|
883
|
+
const {
|
|
884
|
+
items: items2,
|
|
885
|
+
value: value4,
|
|
886
|
+
defaultValue,
|
|
887
|
+
onValueChange,
|
|
888
|
+
label: label6,
|
|
889
|
+
allLabel = "\uC804\uCCB4 \uB3D9\uC758",
|
|
890
|
+
helperText: helperText3,
|
|
891
|
+
error,
|
|
892
|
+
disabled,
|
|
893
|
+
requiredText = "\uD544\uC218",
|
|
894
|
+
optionalText = "\uC120\uD0DD",
|
|
895
|
+
showText = "\uBCF4\uAE30",
|
|
896
|
+
hideText = "\uC811\uAE30",
|
|
897
|
+
name,
|
|
898
|
+
className
|
|
899
|
+
} = props;
|
|
900
|
+
const baseId = (0, import_react10.useId)();
|
|
901
|
+
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
902
|
+
const isControlled = "value" in props;
|
|
903
|
+
const [innerValue, setInnerValue] = (0, import_react10.useState)(defaultValue ?? []);
|
|
904
|
+
const agreed = isControlled ? value4 ?? [] : innerValue;
|
|
905
|
+
const [expanded, setExpanded] = (0, import_react10.useState)([]);
|
|
906
|
+
const update = (next) => {
|
|
907
|
+
if (!isControlled) setInnerValue(next);
|
|
908
|
+
onValueChange?.(next);
|
|
909
|
+
};
|
|
910
|
+
const allValues = items2.map((item7) => item7.value);
|
|
911
|
+
const agreedCount = allValues.filter((v) => agreed.includes(v)).length;
|
|
912
|
+
const allChecked = items2.length > 0 && agreedCount === items2.length;
|
|
913
|
+
const toggleItem = (itemValue, checked) => update(checked ? [...agreed.filter((v) => v !== itemValue), itemValue] : agreed.filter((v) => v !== itemValue));
|
|
914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
915
|
+
"fieldset",
|
|
916
|
+
{
|
|
917
|
+
ref,
|
|
918
|
+
className: cx(fieldset2, className),
|
|
919
|
+
disabled,
|
|
920
|
+
"aria-describedby": helperId,
|
|
921
|
+
"data-invalid": error || void 0,
|
|
922
|
+
children: [
|
|
923
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("legend", { className: legend2, children: label6 }),
|
|
924
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: box, children: [
|
|
925
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: all, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
926
|
+
Checkbox,
|
|
927
|
+
{
|
|
928
|
+
label: allLabel,
|
|
929
|
+
checked: allChecked,
|
|
930
|
+
indeterminate: agreedCount > 0 && !allChecked,
|
|
931
|
+
onChange: (event) => update(event.target.checked ? allValues : [])
|
|
932
|
+
}
|
|
933
|
+
) }),
|
|
934
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("ul", { className: list, children: items2.map((item7) => {
|
|
935
|
+
const labelId = `${baseId}-${item7.value}-label`;
|
|
936
|
+
const toggleTextId = `${baseId}-${item7.value}-toggle`;
|
|
937
|
+
const contentId = `${baseId}-${item7.value}-content`;
|
|
938
|
+
const isOpen = expanded.includes(item7.value);
|
|
939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("li", { className: item2, children: [
|
|
940
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: row2, children: [
|
|
941
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
942
|
+
Checkbox,
|
|
943
|
+
{
|
|
944
|
+
size: "sm",
|
|
945
|
+
checked: agreed.includes(item7.value),
|
|
946
|
+
invalid: error && item7.required && !agreed.includes(item7.value),
|
|
947
|
+
onChange: (event) => toggleItem(item7.value, event.target.checked),
|
|
948
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { id: labelId, children: [
|
|
949
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: tag, "data-required": item7.required || void 0, children: item7.required ? requiredText : optionalText }),
|
|
950
|
+
" ",
|
|
951
|
+
item7.label
|
|
952
|
+
] })
|
|
953
|
+
}
|
|
954
|
+
),
|
|
955
|
+
item7.content && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
956
|
+
"button",
|
|
957
|
+
{
|
|
958
|
+
type: "button",
|
|
959
|
+
className: toggle,
|
|
960
|
+
"aria-expanded": isOpen,
|
|
961
|
+
"aria-controls": contentId,
|
|
962
|
+
"aria-labelledby": `${labelId} ${toggleTextId}`,
|
|
963
|
+
onClick: () => setExpanded((prev) => isOpen ? prev.filter((v) => v !== item7.value) : [...prev, item7.value]),
|
|
964
|
+
children: [
|
|
965
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { id: toggleTextId, children: isOpen ? hideText : showText }),
|
|
966
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_icons4.ChevronDownIcon, { size: 14, className: chevron2 })
|
|
967
|
+
]
|
|
968
|
+
}
|
|
969
|
+
)
|
|
970
|
+
] }),
|
|
971
|
+
item7.content && isOpen && // 내용이 길면 스크롤된다 — 키보드로도 스크롤할 수 있게 포커스를 받는 이름 있는 영역으로 둔다
|
|
972
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
973
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { id: contentId, role: "region", "aria-labelledby": labelId, tabIndex: 0, className: content3, children: item7.content })
|
|
974
|
+
] }, item7.value);
|
|
975
|
+
}) })
|
|
976
|
+
] }),
|
|
977
|
+
name && agreed.map((v) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("input", { type: "hidden", name, value: v }, v)),
|
|
978
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
979
|
+
]
|
|
980
|
+
}
|
|
981
|
+
);
|
|
982
|
+
}
|
|
983
|
+
);
|
|
984
|
+
|
|
985
|
+
// src/components/Alert/Alert.tsx
|
|
986
|
+
var import_react11 = require("react");
|
|
987
|
+
var import_icons5 = require("@bestow-ui/icons");
|
|
988
|
+
|
|
989
|
+
// src/components/Alert/Alert.css.ts
|
|
990
|
+
var import_createRuntimeFn6 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
359
991
|
var action = "bsmpc0j";
|
|
360
|
-
var alert = /* @__PURE__ */ (0,
|
|
361
|
-
var
|
|
362
|
-
var
|
|
363
|
-
var
|
|
364
|
-
var
|
|
365
|
-
var
|
|
992
|
+
var alert = /* @__PURE__ */ (0, import_createRuntimeFn6.createRuntimeFn)({ defaultClassName: "bsmpc06", variantClassNames: { variant: { soft: "bsmpc07", outline: "bsmpc08", solid: "bsmpc09" }, color: { primary: "bsmpc0a", neutral: "bsmpc0b", danger: "bsmpc0c", success: "bsmpc0d", warning: "bsmpc0e" } }, defaultVariants: { variant: "soft", color: "primary" }, compoundVariants: [] });
|
|
993
|
+
var closeButton2 = "bsmpc0k";
|
|
994
|
+
var content4 = "bsmpc0g";
|
|
995
|
+
var description2 = "bsmpc0i";
|
|
996
|
+
var icon2 = "bsmpc0f";
|
|
997
|
+
var title2 = "bsmpc0h";
|
|
366
998
|
|
|
367
999
|
// src/components/Alert/Alert.tsx
|
|
368
|
-
var
|
|
1000
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
369
1001
|
var defaultIcons = {
|
|
370
|
-
primary:
|
|
371
|
-
neutral:
|
|
372
|
-
success:
|
|
373
|
-
warning:
|
|
374
|
-
danger:
|
|
1002
|
+
primary: import_icons5.InfoIcon,
|
|
1003
|
+
neutral: import_icons5.InfoIcon,
|
|
1004
|
+
success: import_icons5.CircleCheckIcon,
|
|
1005
|
+
warning: import_icons5.TriangleAlertIcon,
|
|
1006
|
+
danger: import_icons5.CircleAlertIcon
|
|
375
1007
|
};
|
|
376
|
-
var Alert = /* @__PURE__ */ (0,
|
|
1008
|
+
var Alert = /* @__PURE__ */ (0, import_react11.forwardRef)(function Alert2({ variant, color = "primary", title: title6, icon: icon6, action: action3, onClose, closeLabel = "\uB2EB\uAE30", className, children, ...rest }, ref) {
|
|
377
1009
|
const DefaultIcon = defaultIcons[color];
|
|
378
|
-
const iconNode = icon6 === void 0 ? /* @__PURE__ */ (0,
|
|
379
|
-
return /* @__PURE__ */ (0,
|
|
380
|
-
iconNode !== false && iconNode !== null && /* @__PURE__ */ (0,
|
|
381
|
-
/* @__PURE__ */ (0,
|
|
382
|
-
title6 && /* @__PURE__ */ (0,
|
|
383
|
-
children && /* @__PURE__ */ (0,
|
|
1010
|
+
const iconNode = icon6 === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DefaultIcon, { size: 18 }) : icon6;
|
|
1011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { ref, className: cx(alert({ variant, color }), className), ...rest, children: [
|
|
1012
|
+
iconNode !== false && iconNode !== null && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: icon2, "aria-hidden": true, children: iconNode }),
|
|
1013
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: content4, children: [
|
|
1014
|
+
title6 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: title2, children: title6 }),
|
|
1015
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: description2, children })
|
|
384
1016
|
] }),
|
|
385
|
-
action3 && /* @__PURE__ */ (0,
|
|
386
|
-
onClose && /* @__PURE__ */ (0,
|
|
1017
|
+
action3 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: action, children: action3 }),
|
|
1018
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("button", { type: "button", className: closeButton2, "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.XIcon, { size: 16 }) })
|
|
387
1019
|
] });
|
|
388
1020
|
});
|
|
389
1021
|
|
|
1022
|
+
// src/components/AmountInput/AmountInput.tsx
|
|
1023
|
+
var import_react13 = require("react");
|
|
1024
|
+
|
|
1025
|
+
// src/utils/koreanFormat.ts
|
|
1026
|
+
var onlyDigits = (input5) => input5.replace(/\D/g, "");
|
|
1027
|
+
function phoneNumberMaxDigits(digits) {
|
|
1028
|
+
if (digits.startsWith("02")) return 10;
|
|
1029
|
+
if (/^1[568]/.test(digits)) return 8;
|
|
1030
|
+
return 11;
|
|
1031
|
+
}
|
|
1032
|
+
function formatPhoneNumber(input5) {
|
|
1033
|
+
const d = onlyDigits(input5).slice(0, phoneNumberMaxDigits(onlyDigits(input5)));
|
|
1034
|
+
if (d.startsWith("02")) {
|
|
1035
|
+
if (d.length <= 2) return d;
|
|
1036
|
+
if (d.length <= 5) return `${d.slice(0, 2)}-${d.slice(2)}`;
|
|
1037
|
+
if (d.length <= 9) return `${d.slice(0, 2)}-${d.slice(2, 5)}-${d.slice(5)}`;
|
|
1038
|
+
return `${d.slice(0, 2)}-${d.slice(2, 6)}-${d.slice(6)}`;
|
|
1039
|
+
}
|
|
1040
|
+
if (/^1[568]/.test(d)) {
|
|
1041
|
+
return d.length <= 4 ? d : `${d.slice(0, 4)}-${d.slice(4)}`;
|
|
1042
|
+
}
|
|
1043
|
+
if (d.length <= 3) return d;
|
|
1044
|
+
if (d.length <= 6) return `${d.slice(0, 3)}-${d.slice(3)}`;
|
|
1045
|
+
if (d.length <= 10) return `${d.slice(0, 3)}-${d.slice(3, 6)}-${d.slice(6)}`;
|
|
1046
|
+
return `${d.slice(0, 3)}-${d.slice(3, 7)}-${d.slice(7)}`;
|
|
1047
|
+
}
|
|
1048
|
+
function formatBusinessNumber(input5) {
|
|
1049
|
+
const d = onlyDigits(input5).slice(0, 10);
|
|
1050
|
+
if (d.length <= 3) return d;
|
|
1051
|
+
if (d.length <= 5) return `${d.slice(0, 3)}-${d.slice(3)}`;
|
|
1052
|
+
return `${d.slice(0, 3)}-${d.slice(3, 5)}-${d.slice(5)}`;
|
|
1053
|
+
}
|
|
1054
|
+
function isValidBusinessNumber(input5) {
|
|
1055
|
+
const d = onlyDigits(input5);
|
|
1056
|
+
if (d.length !== 10) return false;
|
|
1057
|
+
const weights = [1, 3, 7, 1, 3, 7, 1, 3, 5];
|
|
1058
|
+
const digits = [...d].map(Number);
|
|
1059
|
+
let sum = weights.reduce((acc, w, i) => acc + w * digits[i], 0);
|
|
1060
|
+
sum += Math.floor(digits[8] * 5 / 10);
|
|
1061
|
+
return (10 - sum % 10) % 10 === digits[9];
|
|
1062
|
+
}
|
|
1063
|
+
function formatKoreanAmount(amount, unit = "\uC6D0") {
|
|
1064
|
+
const n = Math.floor(Math.abs(amount));
|
|
1065
|
+
if (n === 0) return `0${unit}`;
|
|
1066
|
+
const units = [
|
|
1067
|
+
{ value: 1e12, label: "\uC870" },
|
|
1068
|
+
{ value: 1e8, label: "\uC5B5" },
|
|
1069
|
+
{ value: 1e4, label: "\uB9CC" },
|
|
1070
|
+
{ value: 1, label: "" }
|
|
1071
|
+
];
|
|
1072
|
+
let rest = n;
|
|
1073
|
+
const parts = [];
|
|
1074
|
+
for (const u of units) {
|
|
1075
|
+
const q = Math.floor(rest / u.value);
|
|
1076
|
+
rest %= u.value;
|
|
1077
|
+
if (q > 0) parts.push(`${q.toLocaleString("ko-KR")}${u.label}`);
|
|
1078
|
+
}
|
|
1079
|
+
return `${amount < 0 ? "-" : ""}${parts.join(" ")}${unit}`;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
// src/utils/useFormattedInput.ts
|
|
1083
|
+
var import_react12 = require("react");
|
|
1084
|
+
function caretAfter(display, count2, isMeaningful) {
|
|
1085
|
+
if (count2 <= 0) return 0;
|
|
1086
|
+
let seen = 0;
|
|
1087
|
+
for (let i = 0; i < display.length; i++) {
|
|
1088
|
+
if (isMeaningful(display[i])) seen++;
|
|
1089
|
+
if (seen === count2) return i + 1;
|
|
1090
|
+
}
|
|
1091
|
+
return display.length;
|
|
1092
|
+
}
|
|
1093
|
+
function useFormattedInput({
|
|
1094
|
+
isControlled,
|
|
1095
|
+
value: value4,
|
|
1096
|
+
defaultValue,
|
|
1097
|
+
onValueChange,
|
|
1098
|
+
sanitize: sanitize3,
|
|
1099
|
+
format,
|
|
1100
|
+
isMeaningful,
|
|
1101
|
+
inputRef
|
|
1102
|
+
}) {
|
|
1103
|
+
const [innerValue, setInnerValue] = (0, import_react12.useState)(() => sanitize3(defaultValue ?? ""));
|
|
1104
|
+
const raw = isControlled ? sanitize3(value4 ?? "") : innerValue;
|
|
1105
|
+
const display = format(raw);
|
|
1106
|
+
const pendingCaret = (0, import_react12.useRef)(null);
|
|
1107
|
+
(0, import_react12.useLayoutEffect)(() => {
|
|
1108
|
+
const input5 = inputRef.current;
|
|
1109
|
+
if (pendingCaret.current === null || !input5 || document.activeElement !== input5) return;
|
|
1110
|
+
const position = caretAfter(input5.value, pendingCaret.current, isMeaningful);
|
|
1111
|
+
input5.setSelectionRange(position, position);
|
|
1112
|
+
pendingCaret.current = null;
|
|
1113
|
+
});
|
|
1114
|
+
const commit = (next, caretCount) => {
|
|
1115
|
+
pendingCaret.current = caretCount;
|
|
1116
|
+
if (!isControlled) setInnerValue(next);
|
|
1117
|
+
if (next !== raw) onValueChange?.(next);
|
|
1118
|
+
};
|
|
1119
|
+
const onChange = (event) => {
|
|
1120
|
+
const { value: typed, selectionStart } = event.target;
|
|
1121
|
+
const next = sanitize3(typed);
|
|
1122
|
+
const before = sanitize3(typed.slice(0, selectionStart ?? typed.length));
|
|
1123
|
+
commit(next, Math.min(before.length, next.length));
|
|
1124
|
+
};
|
|
1125
|
+
const onKeyDown = (event) => {
|
|
1126
|
+
const input5 = event.currentTarget;
|
|
1127
|
+
const { selectionStart: start, selectionEnd: end } = input5;
|
|
1128
|
+
if (start === null || start !== end) return;
|
|
1129
|
+
const countBefore = (text2) => [...text2].filter(isMeaningful).length;
|
|
1130
|
+
if (event.key === "Backspace" && start > 0 && !isMeaningful(input5.value[start - 1])) {
|
|
1131
|
+
const index = countBefore(input5.value.slice(0, start)) - 1;
|
|
1132
|
+
if (index < 0) return;
|
|
1133
|
+
event.preventDefault();
|
|
1134
|
+
commit(raw.slice(0, index) + raw.slice(index + 1), index);
|
|
1135
|
+
} else if (event.key === "Delete" && start < input5.value.length && !isMeaningful(input5.value[start])) {
|
|
1136
|
+
const index = countBefore(input5.value.slice(0, start));
|
|
1137
|
+
if (index >= raw.length) return;
|
|
1138
|
+
event.preventDefault();
|
|
1139
|
+
commit(raw.slice(0, index) + raw.slice(index + 1), index);
|
|
1140
|
+
}
|
|
1141
|
+
};
|
|
1142
|
+
return { raw, display, onChange, onKeyDown };
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
// src/components/AmountInput/AmountInput.css.ts
|
|
1146
|
+
var input3 = "_70qkav0";
|
|
1147
|
+
|
|
1148
|
+
// src/components/AmountInput/AmountInput.tsx
|
|
1149
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1150
|
+
var MAX_DIGITS = 15;
|
|
1151
|
+
var isDigit = (char) => /\d/.test(char);
|
|
1152
|
+
var AmountInput = /* @__PURE__ */ (0, import_react13.forwardRef)(
|
|
1153
|
+
function AmountInput2(props, ref) {
|
|
1154
|
+
const {
|
|
1155
|
+
value: value4,
|
|
1156
|
+
defaultValue,
|
|
1157
|
+
onValueChange,
|
|
1158
|
+
max,
|
|
1159
|
+
unit = "\uC6D0",
|
|
1160
|
+
showKoreanAmount = true,
|
|
1161
|
+
label: label6 = "\uAE08\uC561",
|
|
1162
|
+
placeholder = "0",
|
|
1163
|
+
helperText: helperText3,
|
|
1164
|
+
onKeyDown,
|
|
1165
|
+
className,
|
|
1166
|
+
...rest
|
|
1167
|
+
} = props;
|
|
1168
|
+
const inputRef = (0, import_react13.useRef)(null);
|
|
1169
|
+
const sanitize3 = (input5) => {
|
|
1170
|
+
let digits = input5.replace(/\D/g, "").replace(/^0+(?=\d)/, "").slice(0, MAX_DIGITS);
|
|
1171
|
+
if (max !== void 0 && digits && Number(digits) > max) digits = String(Math.floor(max));
|
|
1172
|
+
return digits;
|
|
1173
|
+
};
|
|
1174
|
+
const toRaw = (amount) => amount === null || amount === void 0 ? "" : String(Math.floor(Math.abs(amount)));
|
|
1175
|
+
const field3 = useFormattedInput({
|
|
1176
|
+
isControlled: "value" in props,
|
|
1177
|
+
value: toRaw(value4),
|
|
1178
|
+
defaultValue: toRaw(defaultValue),
|
|
1179
|
+
onValueChange: (digits) => onValueChange?.(digits === "" ? null : Number(digits)),
|
|
1180
|
+
sanitize: sanitize3,
|
|
1181
|
+
format: (digits) => digits === "" ? "" : Number(digits).toLocaleString("ko-KR"),
|
|
1182
|
+
isMeaningful: isDigit,
|
|
1183
|
+
inputRef
|
|
1184
|
+
});
|
|
1185
|
+
const reading = showKoreanAmount && field3.raw !== "" ? formatKoreanAmount(Number(field3.raw), unit) : null;
|
|
1186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1187
|
+
TextField,
|
|
1188
|
+
{
|
|
1189
|
+
ref: mergeRefs(ref, inputRef),
|
|
1190
|
+
label: label6,
|
|
1191
|
+
placeholder,
|
|
1192
|
+
inputMode: "numeric",
|
|
1193
|
+
value: field3.display,
|
|
1194
|
+
onChange: field3.onChange,
|
|
1195
|
+
onKeyDown: (event) => {
|
|
1196
|
+
field3.onKeyDown(event);
|
|
1197
|
+
onKeyDown?.(event);
|
|
1198
|
+
},
|
|
1199
|
+
endAdornment: unit,
|
|
1200
|
+
helperText: reading && helperText3 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
1201
|
+
reading,
|
|
1202
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("br", {}),
|
|
1203
|
+
helperText3
|
|
1204
|
+
] }) : reading ?? helperText3,
|
|
1205
|
+
className: cx(input3, className),
|
|
1206
|
+
...rest
|
|
1207
|
+
}
|
|
1208
|
+
);
|
|
1209
|
+
}
|
|
1210
|
+
);
|
|
1211
|
+
|
|
390
1212
|
// src/components/Avatar/Avatar.tsx
|
|
391
1213
|
var RadixAvatar = __toESM(require("@radix-ui/react-avatar"), 1);
|
|
392
|
-
var
|
|
393
|
-
var
|
|
1214
|
+
var import_icons6 = require("@bestow-ui/icons");
|
|
1215
|
+
var import_react14 = require("react");
|
|
394
1216
|
|
|
395
1217
|
// src/components/Avatar/Avatar.css.ts
|
|
396
|
-
var
|
|
1218
|
+
var import_createRuntimeFn7 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
397
1219
|
var fallback = "_1fd2kp27";
|
|
398
1220
|
var image = "_1fd2kp26";
|
|
399
|
-
var
|
|
1221
|
+
var root5 = /* @__PURE__ */ (0, import_createRuntimeFn7.createRuntimeFn)({ defaultClassName: "_1fd2kp20", variantClassNames: { size: { sm: "_1fd2kp21", md: "_1fd2kp22", lg: "_1fd2kp23" }, shape: { circle: "_1fd2kp24", square: "_1fd2kp25" } }, defaultVariants: { size: "md", shape: "circle" }, compoundVariants: [] });
|
|
400
1222
|
|
|
401
1223
|
// src/components/Avatar/Avatar.tsx
|
|
402
|
-
var
|
|
1224
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
403
1225
|
function getInitials(name) {
|
|
404
1226
|
const [a = "", b = ""] = name.trim().split(/\s+/);
|
|
405
1227
|
const first = (word) => Array.from(word)[0] ?? "";
|
|
406
1228
|
return (first(a) + first(b)).toUpperCase();
|
|
407
1229
|
}
|
|
408
|
-
var Avatar = /* @__PURE__ */ (0,
|
|
1230
|
+
var Avatar = /* @__PURE__ */ (0, import_react14.forwardRef)(function Avatar2({ src, alt, name, fallback: fallback2, size, shape, className, ...rest }, ref) {
|
|
409
1231
|
const label6 = alt ?? name;
|
|
410
1232
|
const a11y = label6 ? { role: "img", "aria-label": label6 } : { "aria-hidden": true };
|
|
411
1233
|
const initials = name ? getInitials(name) : "";
|
|
412
|
-
return /* @__PURE__ */ (0,
|
|
413
|
-
src && /* @__PURE__ */ (0,
|
|
414
|
-
/* @__PURE__ */ (0,
|
|
1234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(RadixAvatar.Root, { ref, className: cx(root5({ size, shape }), className), ...a11y, ...rest, children: [
|
|
1235
|
+
src && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(RadixAvatar.Image, { src, alt: "", className: image }),
|
|
1236
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(RadixAvatar.Fallback, { className: fallback, children: fallback2 ?? (initials || /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_icons6.UserIcon, { size: "60%" })) })
|
|
415
1237
|
] });
|
|
416
1238
|
});
|
|
417
1239
|
|
|
418
1240
|
// src/components/Badge/Badge.tsx
|
|
419
|
-
var
|
|
1241
|
+
var import_react15 = require("react");
|
|
420
1242
|
|
|
421
1243
|
// src/components/Badge/Badge.css.ts
|
|
422
|
-
var
|
|
423
|
-
var badge = /* @__PURE__ */ (0,
|
|
424
|
-
var
|
|
1244
|
+
var import_createRuntimeFn8 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1245
|
+
var badge = /* @__PURE__ */ (0, import_createRuntimeFn8.createRuntimeFn)({ defaultClassName: "_1295cfn4", variantClassNames: { variant: { solid: "_1295cfn5", soft: "_1295cfn6", outline: "_1295cfn7" }, color: { primary: "_1295cfn8", neutral: "_1295cfn9", danger: "_1295cfna", success: "_1295cfnb", warning: "_1295cfnc" }, size: { sm: "_1295cfnd", md: "_1295cfne", lg: "_1295cfnf" } }, defaultVariants: { variant: "soft", color: "neutral", size: "md" }, compoundVariants: [] });
|
|
1246
|
+
var icon3 = "_1295cfng";
|
|
425
1247
|
|
|
426
1248
|
// src/components/Badge/Badge.tsx
|
|
427
|
-
var
|
|
428
|
-
var Badge = /* @__PURE__ */ (0,
|
|
429
|
-
return /* @__PURE__ */ (0,
|
|
430
|
-
startIcon && /* @__PURE__ */ (0,
|
|
1249
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1250
|
+
var Badge = /* @__PURE__ */ (0, import_react15.forwardRef)(function Badge2({ variant, color, size, startIcon, className, children, ...rest }, ref) {
|
|
1251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { ref, className: cx(badge({ variant, color, size }), className), ...rest, children: [
|
|
1252
|
+
startIcon && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: icon3, children: startIcon }),
|
|
431
1253
|
children
|
|
432
1254
|
] });
|
|
433
1255
|
});
|
|
434
1256
|
|
|
435
1257
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
436
|
-
var
|
|
437
|
-
var
|
|
1258
|
+
var import_react17 = require("react");
|
|
1259
|
+
var import_icons8 = require("@bestow-ui/icons");
|
|
438
1260
|
|
|
439
1261
|
// src/components/Link/Link.tsx
|
|
440
1262
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
441
|
-
var
|
|
442
|
-
var
|
|
443
|
-
|
|
444
|
-
// src/styles/visuallyHidden.css.ts
|
|
445
|
-
var visuallyHidden = "_1kdtbw10";
|
|
1263
|
+
var import_react16 = require("react");
|
|
1264
|
+
var import_icons7 = require("@bestow-ui/icons");
|
|
446
1265
|
|
|
447
1266
|
// src/components/Link/Link.css.ts
|
|
448
|
-
var
|
|
1267
|
+
var import_createRuntimeFn9 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
449
1268
|
var externalIcon = "_1t4hlp6";
|
|
450
|
-
var link = /* @__PURE__ */ (0,
|
|
1269
|
+
var link = /* @__PURE__ */ (0, import_createRuntimeFn9.createRuntimeFn)({ defaultClassName: "_1t4hlp0", variantClassNames: { color: { primary: "_1t4hlp1", neutral: "_1t4hlp2", inherit: "_1t4hlp3" }, underline: { always: "_1t4hlp4", hover: "_1t4hlp5" } }, defaultVariants: { color: "primary", underline: "always" }, compoundVariants: [] });
|
|
451
1270
|
|
|
452
1271
|
// src/components/Link/Link.tsx
|
|
453
|
-
var
|
|
1272
|
+
var import_jsx_runtime15 = (
|
|
454
1273
|
// Slot 의 props 타입은 HTMLElement 기준이라 <a> 전용 속성(target·rel 등)은 그대로 넘기도록 단언한다
|
|
455
1274
|
require("react/jsx-runtime")
|
|
456
1275
|
);
|
|
457
|
-
var Link = /* @__PURE__ */ (0,
|
|
1276
|
+
var Link = /* @__PURE__ */ (0, import_react16.forwardRef)(function Link2({
|
|
458
1277
|
as: Component = "a",
|
|
459
1278
|
asChild,
|
|
460
1279
|
color,
|
|
@@ -469,9 +1288,9 @@ var Link = /* @__PURE__ */ (0, import_react6.forwardRef)(function Link2({
|
|
|
469
1288
|
}, ref) {
|
|
470
1289
|
const linkClassName = cx(link({ color, underline }), className);
|
|
471
1290
|
if (asChild) {
|
|
472
|
-
return /* @__PURE__ */ (0,
|
|
1291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_slot.Slot, { ref, className: linkClassName, ...{ target, rel, ...rest }, children });
|
|
473
1292
|
}
|
|
474
|
-
return /* @__PURE__ */ (0,
|
|
1293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
475
1294
|
Component,
|
|
476
1295
|
{
|
|
477
1296
|
ref,
|
|
@@ -481,10 +1300,10 @@ var Link = /* @__PURE__ */ (0, import_react6.forwardRef)(function Link2({
|
|
|
481
1300
|
...rest,
|
|
482
1301
|
children: [
|
|
483
1302
|
children,
|
|
484
|
-
external && /* @__PURE__ */ (0,
|
|
1303
|
+
external && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
485
1304
|
" ",
|
|
486
|
-
/* @__PURE__ */ (0,
|
|
487
|
-
/* @__PURE__ */ (0,
|
|
1305
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_icons7.ExternalLinkIcon, { className: externalIcon }),
|
|
1306
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: visuallyHidden, children: externalLabel })
|
|
488
1307
|
] })
|
|
489
1308
|
]
|
|
490
1309
|
}
|
|
@@ -493,209 +1312,133 @@ var Link = /* @__PURE__ */ (0, import_react6.forwardRef)(function Link2({
|
|
|
493
1312
|
|
|
494
1313
|
// src/components/Breadcrumb/Breadcrumb.css.ts
|
|
495
1314
|
var current = "_18t8ztt3";
|
|
496
|
-
var
|
|
1315
|
+
var item3 = "_18t8ztt1";
|
|
497
1316
|
var link2 = "_18t8ztt2";
|
|
498
|
-
var
|
|
1317
|
+
var list2 = "_18t8ztt0";
|
|
499
1318
|
var separator = "_18t8ztt4";
|
|
500
1319
|
|
|
501
1320
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
502
|
-
var
|
|
503
|
-
var Breadcrumb = /* @__PURE__ */ (0,
|
|
504
|
-
const sep = separator3 ?? /* @__PURE__ */ (0,
|
|
505
|
-
return /* @__PURE__ */ (0,
|
|
1321
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1322
|
+
var Breadcrumb = /* @__PURE__ */ (0, import_react17.forwardRef)(function Breadcrumb2({ items: items2, linkAs, separator: separator3, "aria-label": ariaLabel = "\uC774\uB3D9 \uACBD\uB85C", className, ...rest }, ref) {
|
|
1323
|
+
const sep = separator3 ?? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_icons8.ChevronRightIcon, { size: 14 });
|
|
1324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("ol", { className: list2, children: items2.map((item7, index) => {
|
|
506
1325
|
const isCurrent = index === items2.length - 1;
|
|
507
|
-
return /* @__PURE__ */ (0,
|
|
508
|
-
index > 0 && /* @__PURE__ */ (0,
|
|
509
|
-
isCurrent ||
|
|
1326
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("li", { className: item3, children: [
|
|
1327
|
+
index > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: separator, "aria-hidden": true, children: sep }),
|
|
1328
|
+
isCurrent || item7.href === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: isCurrent ? current : void 0, "aria-current": isCurrent ? "page" : void 0, children: item7.label }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { as: linkAs, href: item7.href, color: "neutral", underline: "hover", className: link2, children: item7.label })
|
|
510
1329
|
] }, index);
|
|
511
1330
|
}) }) });
|
|
512
1331
|
});
|
|
513
1332
|
|
|
514
|
-
// src/components/
|
|
515
|
-
var
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
var
|
|
519
|
-
var
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
children: [
|
|
575
|
-
leading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: icon3, children: leading }),
|
|
576
|
-
children,
|
|
577
|
-
endIcon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: icon3, children: endIcon })
|
|
578
|
-
]
|
|
579
|
-
}
|
|
580
|
-
);
|
|
581
|
-
});
|
|
582
|
-
|
|
583
|
-
// src/components/Card/Card.tsx
|
|
584
|
-
var import_react10 = require("react");
|
|
585
|
-
|
|
586
|
-
// src/components/Card/Card.css.ts
|
|
587
|
-
var import_createRuntimeFn7 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
588
|
-
var body = "dnuf1u9";
|
|
589
|
-
var card = /* @__PURE__ */ (0, import_createRuntimeFn7.createRuntimeFn)({ defaultClassName: "dnuf1u0", variantClassNames: { variant: { outline: "dnuf1u1", elevated: "dnuf1u2", soft: "dnuf1u3" }, padding: { none: "dnuf1u4", sm: "dnuf1u5", md: "dnuf1u6", lg: "dnuf1u7" } }, defaultVariants: { variant: "outline", padding: "md" }, compoundVariants: [] });
|
|
590
|
-
var footer = "dnuf1ua";
|
|
591
|
-
var header2 = "dnuf1u8";
|
|
592
|
-
|
|
593
|
-
// src/components/Card/Card.tsx
|
|
594
|
-
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
595
|
-
var Card = /* @__PURE__ */ (0, import_react10.forwardRef)(function Card2({ variant, padding, as: Component = "div", className, ...rest }, ref) {
|
|
596
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Component, { ref, className: cx(card({ variant, padding }), className), ...rest });
|
|
597
|
-
});
|
|
598
|
-
var CardHeader = /* @__PURE__ */ (0, import_react10.forwardRef)(function CardHeader2({ className, ...rest }, ref) {
|
|
599
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cx(header2, className), ...rest });
|
|
600
|
-
});
|
|
601
|
-
var CardBody = /* @__PURE__ */ (0, import_react10.forwardRef)(function CardBody2({ className, ...rest }, ref) {
|
|
602
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cx(body, className), ...rest });
|
|
603
|
-
});
|
|
604
|
-
var CardFooter = /* @__PURE__ */ (0, import_react10.forwardRef)(function CardFooter2({ className, ...rest }, ref) {
|
|
605
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cx(footer, className), ...rest });
|
|
606
|
-
});
|
|
607
|
-
|
|
608
|
-
// src/components/Checkbox/Checkbox.tsx
|
|
609
|
-
var import_react11 = require("react");
|
|
610
|
-
|
|
611
|
-
// src/utils/mergeRefs.ts
|
|
612
|
-
function mergeRefs(...refs) {
|
|
613
|
-
return (value4) => {
|
|
614
|
-
for (const ref of refs) {
|
|
615
|
-
if (typeof ref === "function") ref(value4);
|
|
616
|
-
else if (ref) ref.current = value4;
|
|
617
|
-
}
|
|
618
|
-
};
|
|
619
|
-
}
|
|
1333
|
+
// src/components/BusinessNumberInput/BusinessNumberInput.tsx
|
|
1334
|
+
var import_react18 = require("react");
|
|
1335
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1336
|
+
var sanitize = (input5) => input5.replace(/\D/g, "").slice(0, 10);
|
|
1337
|
+
var isDigit2 = (char) => /\d/.test(char);
|
|
1338
|
+
var BusinessNumberInput = /* @__PURE__ */ (0, import_react18.forwardRef)(
|
|
1339
|
+
function BusinessNumberInput2(props, ref) {
|
|
1340
|
+
const {
|
|
1341
|
+
value: value4,
|
|
1342
|
+
defaultValue,
|
|
1343
|
+
onValueChange,
|
|
1344
|
+
validate = true,
|
|
1345
|
+
invalidText = "\uC62C\uBC14\uB978 \uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638\uAC00 \uC544\uB2C8\uC5D0\uC694. \uBC88\uD638\uB97C \uB2E4\uC2DC \uD655\uC778\uD574 \uC8FC\uC138\uC694.",
|
|
1346
|
+
label: label6 = "\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638",
|
|
1347
|
+
placeholder = "000-00-00000",
|
|
1348
|
+
error,
|
|
1349
|
+
helperText: helperText3,
|
|
1350
|
+
onBlur,
|
|
1351
|
+
onKeyDown,
|
|
1352
|
+
...rest
|
|
1353
|
+
} = props;
|
|
1354
|
+
const inputRef = (0, import_react18.useRef)(null);
|
|
1355
|
+
const [touched, setTouched] = (0, import_react18.useState)(false);
|
|
1356
|
+
const field3 = useFormattedInput({
|
|
1357
|
+
isControlled: "value" in props,
|
|
1358
|
+
value: value4,
|
|
1359
|
+
defaultValue,
|
|
1360
|
+
onValueChange: (digits) => onValueChange?.(digits, digits.length === 10 ? isValidBusinessNumber(digits) : null),
|
|
1361
|
+
sanitize,
|
|
1362
|
+
format: formatBusinessNumber,
|
|
1363
|
+
isMeaningful: isDigit2,
|
|
1364
|
+
inputRef
|
|
1365
|
+
});
|
|
1366
|
+
const complete = field3.raw.length === 10;
|
|
1367
|
+
const autoInvalid = validate && field3.raw.length > 0 && (complete ? !isValidBusinessNumber(field3.raw) : touched);
|
|
1368
|
+
const showAuto = autoInvalid && error === void 0;
|
|
1369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1370
|
+
TextField,
|
|
1371
|
+
{
|
|
1372
|
+
ref: mergeRefs(ref, inputRef),
|
|
1373
|
+
label: label6,
|
|
1374
|
+
placeholder,
|
|
1375
|
+
inputMode: "numeric",
|
|
1376
|
+
value: field3.display,
|
|
1377
|
+
onChange: field3.onChange,
|
|
1378
|
+
onKeyDown: (event) => {
|
|
1379
|
+
field3.onKeyDown(event);
|
|
1380
|
+
onKeyDown?.(event);
|
|
1381
|
+
},
|
|
1382
|
+
onBlur: (event) => {
|
|
1383
|
+
setTouched(true);
|
|
1384
|
+
onBlur?.(event);
|
|
1385
|
+
},
|
|
1386
|
+
error: error ?? autoInvalid,
|
|
1387
|
+
helperText: showAuto ? complete ? invalidText : "10\uC790\uB9AC\uB97C \uBAA8\uB450 \uC785\uB825\uD574 \uC8FC\uC138\uC694." : helperText3,
|
|
1388
|
+
...rest
|
|
1389
|
+
}
|
|
1390
|
+
);
|
|
1391
|
+
}
|
|
1392
|
+
);
|
|
620
1393
|
|
|
621
|
-
// src/components/
|
|
622
|
-
var
|
|
623
|
-
var checkIcon = "_1y7mzsn8 _1y7mzsn7";
|
|
624
|
-
var control = /* @__PURE__ */ (0, import_createRuntimeFn8.createRuntimeFn)({ defaultClassName: "_1y7mzsn3", variantClassNames: { size: { sm: "_1y7mzsn4", md: "_1y7mzsn5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
625
|
-
var indeterminateIcon = "_1y7mzsn9 _1y7mzsn7";
|
|
626
|
-
var input = "_1y7mzsn6";
|
|
627
|
-
var root4 = /* @__PURE__ */ (0, import_createRuntimeFn8.createRuntimeFn)({ defaultClassName: "_1y7mzsn0", variantClassNames: { size: { sm: "_1y7mzsn1", md: "_1y7mzsn2" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1394
|
+
// src/components/Card/Card.tsx
|
|
1395
|
+
var import_react19 = require("react");
|
|
628
1396
|
|
|
629
|
-
// src/components/
|
|
630
|
-
var
|
|
631
|
-
var
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("svg", { className: checkIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
650
|
-
"path",
|
|
651
|
-
{
|
|
652
|
-
d: "M5 10.5l3.2 3L15 7",
|
|
653
|
-
stroke: "currentColor",
|
|
654
|
-
strokeWidth: "2",
|
|
655
|
-
strokeLinecap: "round",
|
|
656
|
-
strokeLinejoin: "round"
|
|
657
|
-
}
|
|
658
|
-
) }),
|
|
659
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("svg", { className: indeterminateIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M6 10h8", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) })
|
|
660
|
-
] }),
|
|
661
|
-
label6
|
|
662
|
-
] });
|
|
1397
|
+
// src/components/Card/Card.css.ts
|
|
1398
|
+
var import_createRuntimeFn10 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1399
|
+
var body2 = "dnuf1u9";
|
|
1400
|
+
var card = /* @__PURE__ */ (0, import_createRuntimeFn10.createRuntimeFn)({ defaultClassName: "dnuf1u0", variantClassNames: { variant: { outline: "dnuf1u1", elevated: "dnuf1u2", soft: "dnuf1u3" }, padding: { none: "dnuf1u4", sm: "dnuf1u5", md: "dnuf1u6", lg: "dnuf1u7" } }, defaultVariants: { variant: "outline", padding: "md" }, compoundVariants: [] });
|
|
1401
|
+
var footer2 = "dnuf1ua";
|
|
1402
|
+
var header3 = "dnuf1u8";
|
|
1403
|
+
|
|
1404
|
+
// src/components/Card/Card.tsx
|
|
1405
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1406
|
+
var Card = /* @__PURE__ */ (0, import_react19.forwardRef)(function Card2({ variant, padding, as: Component = "div", className, ...rest }, ref) {
|
|
1407
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Component, { ref, className: cx(card({ variant, padding }), className), ...rest });
|
|
1408
|
+
});
|
|
1409
|
+
var CardHeader = /* @__PURE__ */ (0, import_react19.forwardRef)(function CardHeader2({ className, ...rest }, ref) {
|
|
1410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { ref, className: cx(header3, className), ...rest });
|
|
1411
|
+
});
|
|
1412
|
+
var CardBody = /* @__PURE__ */ (0, import_react19.forwardRef)(function CardBody2({ className, ...rest }, ref) {
|
|
1413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { ref, className: cx(body2, className), ...rest });
|
|
1414
|
+
});
|
|
1415
|
+
var CardFooter = /* @__PURE__ */ (0, import_react19.forwardRef)(function CardFooter2({ className, ...rest }, ref) {
|
|
1416
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { ref, className: cx(footer2, className), ...rest });
|
|
663
1417
|
});
|
|
664
1418
|
|
|
665
1419
|
// src/components/Combobox/Combobox.tsx
|
|
666
1420
|
var Popover = __toESM(require("@radix-ui/react-popover"), 1);
|
|
667
|
-
var
|
|
668
|
-
var
|
|
669
|
-
|
|
670
|
-
// src/components/Input/Input.css.ts
|
|
671
|
-
var import_createRuntimeFn9 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
672
|
-
var adornment = "_19p5zvh6";
|
|
673
|
-
var field = "_19p5zvh7";
|
|
674
|
-
var fieldFullWidth = "_19p5zvh8";
|
|
675
|
-
var helperText = /* @__PURE__ */ (0, import_createRuntimeFn9.createRuntimeFn)({ defaultClassName: "_19p5zvhb", variantClassNames: { error: { true: "_19p5zvhc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
676
|
-
var input2 = "_19p5zvh5";
|
|
677
|
-
var label = "_19p5zvh9";
|
|
678
|
-
var requiredMark = "_19p5zvha";
|
|
679
|
-
var root5 = /* @__PURE__ */ (0, import_createRuntimeFn9.createRuntimeFn)({ defaultClassName: "_19p5zvh0", variantClassNames: { size: { sm: "_19p5zvh1", md: "_19p5zvh2", lg: "_19p5zvh3" }, fullWidth: { true: "_19p5zvh4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1421
|
+
var import_react20 = require("react");
|
|
1422
|
+
var import_icons9 = require("@bestow-ui/icons");
|
|
680
1423
|
|
|
681
1424
|
// src/components/Select/Select.css.ts
|
|
682
|
-
var
|
|
1425
|
+
var content5 = "_1kx81e83";
|
|
683
1426
|
var icon4 = "_1kx81e82";
|
|
684
|
-
var
|
|
1427
|
+
var item4 = "_1kx81e85";
|
|
685
1428
|
var itemIndicator = "_1kx81e86";
|
|
686
1429
|
var trigger2 = "_1kx81e80";
|
|
687
1430
|
var value = "_1kx81e81";
|
|
688
1431
|
var viewport = "_1kx81e84";
|
|
689
1432
|
|
|
690
1433
|
// src/components/Combobox/Combobox.css.ts
|
|
691
|
-
var
|
|
1434
|
+
var content6 = "c2pbq71";
|
|
692
1435
|
var empty = "c2pbq72";
|
|
693
|
-
var
|
|
1436
|
+
var toggle2 = "c2pbq70";
|
|
694
1437
|
|
|
695
1438
|
// src/components/Combobox/Combobox.tsx
|
|
696
|
-
var
|
|
1439
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
697
1440
|
var defaultFilter = (option2, query) => option2.label.toLowerCase().includes(query.trim().toLowerCase());
|
|
698
|
-
var Combobox = /* @__PURE__ */ (0,
|
|
1441
|
+
var Combobox = /* @__PURE__ */ (0, import_react20.forwardRef)(function Combobox2(props, ref) {
|
|
699
1442
|
const {
|
|
700
1443
|
options,
|
|
701
1444
|
value: value4,
|
|
@@ -717,33 +1460,33 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
717
1460
|
toggleLabel = "\uBAA9\uB85D \uC5F4\uAE30",
|
|
718
1461
|
className
|
|
719
1462
|
} = props;
|
|
720
|
-
const generatedId = (0,
|
|
1463
|
+
const generatedId = (0, import_react20.useId)();
|
|
721
1464
|
const inputId = id ?? generatedId;
|
|
722
1465
|
const labelId = `${inputId}-label`;
|
|
723
1466
|
const listId = `${inputId}-listbox`;
|
|
724
1467
|
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
725
1468
|
const optionId = (index) => `${inputId}-option-${index}`;
|
|
726
1469
|
const portal2 = usePortalProps();
|
|
727
|
-
const inputRef = (0,
|
|
728
|
-
const anchorRef = (0,
|
|
1470
|
+
const inputRef = (0, import_react20.useRef)(null);
|
|
1471
|
+
const anchorRef = (0, import_react20.useRef)(null);
|
|
729
1472
|
const isControlled = "value" in props;
|
|
730
|
-
const [innerValue, setInnerValue] = (0,
|
|
1473
|
+
const [innerValue, setInnerValue] = (0, import_react20.useState)(defaultValue);
|
|
731
1474
|
const selectedValue = isControlled ? value4 : innerValue;
|
|
732
1475
|
const selectedOption = options.find((o) => o.value === selectedValue);
|
|
733
|
-
const [open, setOpen] = (0,
|
|
734
|
-
const [query, setQuery] = (0,
|
|
735
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
736
|
-
const filtered = (0,
|
|
1476
|
+
const [open, setOpen] = (0, import_react20.useState)(false);
|
|
1477
|
+
const [query, setQuery] = (0, import_react20.useState)(null);
|
|
1478
|
+
const [activeIndex, setActiveIndex] = (0, import_react20.useState)(-1);
|
|
1479
|
+
const filtered = (0, import_react20.useMemo)(() => query ? options.filter((o) => filter(o, query)) : options, [options, filter, query]);
|
|
737
1480
|
const inputText = query ?? selectedOption?.label ?? "";
|
|
738
|
-
const firstEnabled = (
|
|
739
|
-
for (let i = from; i >= 0 && i <
|
|
1481
|
+
const firstEnabled = (list5, from = 0, step = 1) => {
|
|
1482
|
+
for (let i = from; i >= 0 && i < list5.length; i += step) if (!list5[i].disabled) return i;
|
|
740
1483
|
return -1;
|
|
741
1484
|
};
|
|
742
|
-
const openList = (
|
|
1485
|
+
const openList = (list5 = filtered, preferLast = false) => {
|
|
743
1486
|
setOpen(true);
|
|
744
|
-
const selectedIndex =
|
|
1487
|
+
const selectedIndex = list5.findIndex((o) => o.value === selectedValue);
|
|
745
1488
|
setActiveIndex(
|
|
746
|
-
selectedIndex >= 0 && !
|
|
1489
|
+
selectedIndex >= 0 && !list5[selectedIndex].disabled ? selectedIndex : preferLast ? firstEnabled(list5, list5.length - 1, -1) : firstEnabled(list5)
|
|
747
1490
|
);
|
|
748
1491
|
};
|
|
749
1492
|
const close2 = () => {
|
|
@@ -799,26 +1542,26 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
799
1542
|
break;
|
|
800
1543
|
}
|
|
801
1544
|
};
|
|
802
|
-
(0,
|
|
1545
|
+
(0, import_react20.useEffect)(() => {
|
|
803
1546
|
if (!open || activeIndex < 0) return;
|
|
804
1547
|
document.getElementById(optionId(activeIndex))?.scrollIntoView?.({ block: "nearest" });
|
|
805
1548
|
}, [open, activeIndex]);
|
|
806
1549
|
const hasOptions = filtered.length > 0;
|
|
807
|
-
return /* @__PURE__ */ (0,
|
|
808
|
-
label6 && /* @__PURE__ */ (0,
|
|
1550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1551
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("label", { id: labelId, htmlFor: inputId, className: label, children: [
|
|
809
1552
|
label6,
|
|
810
|
-
required && /* @__PURE__ */ (0,
|
|
1553
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
811
1554
|
] }),
|
|
812
|
-
/* @__PURE__ */ (0,
|
|
813
|
-
/* @__PURE__ */ (0,
|
|
1555
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Popover.Root, { open: open && !disabled, onOpenChange: (next) => next ? openList() : close2(), children: [
|
|
1556
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Popover.Anchor, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
814
1557
|
"div",
|
|
815
1558
|
{
|
|
816
1559
|
ref: anchorRef,
|
|
817
|
-
className: cx(
|
|
1560
|
+
className: cx(root3({ size, fullWidth }), className),
|
|
818
1561
|
"data-invalid": error || void 0,
|
|
819
1562
|
"data-disabled": disabled || void 0,
|
|
820
1563
|
children: [
|
|
821
|
-
/* @__PURE__ */ (0,
|
|
1564
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
822
1565
|
"input",
|
|
823
1566
|
{
|
|
824
1567
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -842,10 +1585,10 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
842
1585
|
onBlur: () => {
|
|
843
1586
|
if (open) close2();
|
|
844
1587
|
},
|
|
845
|
-
className:
|
|
1588
|
+
className: input
|
|
846
1589
|
}
|
|
847
1590
|
),
|
|
848
|
-
/* @__PURE__ */ (0,
|
|
1591
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
849
1592
|
"button",
|
|
850
1593
|
{
|
|
851
1594
|
type: "button",
|
|
@@ -853,27 +1596,27 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
853
1596
|
"aria-label": toggleLabel,
|
|
854
1597
|
"aria-expanded": open,
|
|
855
1598
|
disabled,
|
|
856
|
-
className:
|
|
1599
|
+
className: toggle2,
|
|
857
1600
|
onMouseDown: (event) => event.preventDefault(),
|
|
858
1601
|
onClick: () => {
|
|
859
1602
|
if (open) close2();
|
|
860
1603
|
else openList(options);
|
|
861
1604
|
inputRef.current?.focus();
|
|
862
1605
|
},
|
|
863
|
-
children: /* @__PURE__ */ (0,
|
|
1606
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_icons9.ChevronDownIcon, { size: 16 })
|
|
864
1607
|
}
|
|
865
1608
|
)
|
|
866
1609
|
]
|
|
867
1610
|
}
|
|
868
1611
|
) }),
|
|
869
|
-
/* @__PURE__ */ (0,
|
|
1612
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
870
1613
|
Popover.Content,
|
|
871
1614
|
{
|
|
872
1615
|
role: "presentation",
|
|
873
1616
|
align: "start",
|
|
874
1617
|
sideOffset: 4,
|
|
875
1618
|
collisionPadding: 8,
|
|
876
|
-
className: cx(portal2.className,
|
|
1619
|
+
className: cx(portal2.className, content6),
|
|
877
1620
|
style: portal2.style,
|
|
878
1621
|
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
879
1622
|
onCloseAutoFocus: (event) => event.preventDefault(),
|
|
@@ -881,7 +1624,7 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
881
1624
|
onInteractOutside: (event) => {
|
|
882
1625
|
if (anchorRef.current?.contains(event.target)) event.preventDefault();
|
|
883
1626
|
},
|
|
884
|
-
children: hasOptions ? /* @__PURE__ */ (0,
|
|
1627
|
+
children: hasOptions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
885
1628
|
"div",
|
|
886
1629
|
{
|
|
887
1630
|
id: listId,
|
|
@@ -893,7 +1636,7 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
893
1636
|
return (
|
|
894
1637
|
// aria-activedescendant 패턴: 포커스·키보드는 입력창이 맡고 항목은 포커스를 받지 않는다 (WAI-ARIA combobox)
|
|
895
1638
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/interactive-supports-focus
|
|
896
|
-
/* @__PURE__ */ (0,
|
|
1639
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
897
1640
|
"div",
|
|
898
1641
|
{
|
|
899
1642
|
id: optionId(index),
|
|
@@ -903,13 +1646,13 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
903
1646
|
"data-highlighted": index === activeIndex ? "" : void 0,
|
|
904
1647
|
"data-state": isSelected ? "checked" : "unchecked",
|
|
905
1648
|
"data-disabled": option2.disabled ? "" : void 0,
|
|
906
|
-
className:
|
|
1649
|
+
className: item4,
|
|
907
1650
|
onMouseDown: (event) => event.preventDefault(),
|
|
908
1651
|
onMouseMove: () => !option2.disabled && setActiveIndex(index),
|
|
909
1652
|
onClick: () => select(option2),
|
|
910
1653
|
children: [
|
|
911
1654
|
option2.label,
|
|
912
|
-
isSelected && /* @__PURE__ */ (0,
|
|
1655
|
+
isSelected && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: itemIndicator, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_icons9.CheckIcon, { size: 16 }) })
|
|
913
1656
|
]
|
|
914
1657
|
},
|
|
915
1658
|
option2.value
|
|
@@ -917,81 +1660,81 @@ var Combobox = /* @__PURE__ */ (0, import_react12.forwardRef)(function Combobox2
|
|
|
917
1660
|
);
|
|
918
1661
|
})
|
|
919
1662
|
}
|
|
920
|
-
) : /* @__PURE__ */ (0,
|
|
1663
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: empty, role: "status", children: emptyMessage })
|
|
921
1664
|
}
|
|
922
1665
|
) })
|
|
923
1666
|
] }),
|
|
924
|
-
name && /* @__PURE__ */ (0,
|
|
925
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
1667
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("input", { type: "hidden", name, value: selectedValue ?? "" }),
|
|
1668
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
926
1669
|
] });
|
|
927
1670
|
});
|
|
928
1671
|
|
|
929
1672
|
// src/components/Divider/Divider.tsx
|
|
930
|
-
var
|
|
1673
|
+
var import_react21 = require("react");
|
|
931
1674
|
|
|
932
1675
|
// src/components/Divider/Divider.css.ts
|
|
933
|
-
var
|
|
934
|
-
var divider = /* @__PURE__ */ (0,
|
|
1676
|
+
var import_createRuntimeFn11 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1677
|
+
var divider = /* @__PURE__ */ (0, import_createRuntimeFn11.createRuntimeFn)({ defaultClassName: "_1t3gq8v0", variantClassNames: { orientation: { horizontal: "_1t3gq8v1", vertical: "_1t3gq8v2" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
935
1678
|
var labeled = "_1t3gq8v3";
|
|
936
1679
|
var line = "_1t3gq8v4";
|
|
937
1680
|
|
|
938
1681
|
// src/components/Divider/Divider.tsx
|
|
939
|
-
var
|
|
940
|
-
var Divider = /* @__PURE__ */ (0,
|
|
1682
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1683
|
+
var Divider = /* @__PURE__ */ (0, import_react21.forwardRef)(function Divider2({ orientation = "horizontal", decorative, className, children, ...rest }, ref) {
|
|
941
1684
|
if (children && orientation === "horizontal") {
|
|
942
|
-
return /* @__PURE__ */ (0,
|
|
943
|
-
/* @__PURE__ */ (0,
|
|
1685
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { ref, className: cx(labeled, className), ...rest, children: [
|
|
1686
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: line, "aria-hidden": true }),
|
|
944
1687
|
children,
|
|
945
|
-
/* @__PURE__ */ (0,
|
|
1688
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: line, "aria-hidden": true })
|
|
946
1689
|
] });
|
|
947
1690
|
}
|
|
948
1691
|
const a11y = decorative ? { role: "none" } : { role: "separator", "aria-orientation": orientation === "vertical" ? "vertical" : void 0 };
|
|
949
|
-
return /* @__PURE__ */ (0,
|
|
1692
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { ref, className: cx(divider({ orientation }), className), ...a11y, ...rest });
|
|
950
1693
|
});
|
|
951
1694
|
|
|
952
1695
|
// src/components/Drawer/Drawer.tsx
|
|
953
|
-
var
|
|
954
|
-
var
|
|
1696
|
+
var Dialog2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1697
|
+
var import_icons10 = require("@bestow-ui/icons");
|
|
955
1698
|
|
|
956
1699
|
// src/components/IconButton/IconButton.tsx
|
|
957
|
-
var
|
|
1700
|
+
var import_react22 = require("react");
|
|
958
1701
|
|
|
959
1702
|
// src/components/IconButton/IconButton.css.ts
|
|
960
|
-
var
|
|
961
|
-
var iconButton = /* @__PURE__ */ (0,
|
|
1703
|
+
var import_createRuntimeFn12 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1704
|
+
var iconButton = /* @__PURE__ */ (0, import_createRuntimeFn12.createRuntimeFn)({ defaultClassName: "ip9et20", variantClassNames: { size: { sm: "ip9et21", md: "ip9et22", lg: "ip9et23" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
962
1705
|
|
|
963
1706
|
// src/components/IconButton/IconButton.tsx
|
|
964
|
-
var
|
|
965
|
-
var IconButton = /* @__PURE__ */ (0,
|
|
966
|
-
return /* @__PURE__ */ (0,
|
|
1707
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1708
|
+
var IconButton = /* @__PURE__ */ (0, import_react22.forwardRef)(function IconButton2({ variant = "ghost", color = "neutral", size, loading: loading2, className, children, ...rest }, ref) {
|
|
1709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
967
1710
|
Button,
|
|
968
1711
|
{
|
|
969
1712
|
ref,
|
|
970
1713
|
variant,
|
|
971
1714
|
color,
|
|
972
1715
|
size,
|
|
973
|
-
loading,
|
|
1716
|
+
loading: loading2,
|
|
974
1717
|
className: cx(iconButton({ size }), className),
|
|
975
1718
|
...rest,
|
|
976
|
-
children: !
|
|
1719
|
+
children: !loading2 && children
|
|
977
1720
|
}
|
|
978
1721
|
);
|
|
979
1722
|
});
|
|
980
1723
|
|
|
981
1724
|
// src/components/Drawer/Drawer.css.ts
|
|
982
|
-
var
|
|
983
|
-
var
|
|
984
|
-
var
|
|
985
|
-
var
|
|
986
|
-
var
|
|
987
|
-
var
|
|
988
|
-
var
|
|
989
|
-
var
|
|
990
|
-
var
|
|
991
|
-
var
|
|
1725
|
+
var import_createRuntimeFn13 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1726
|
+
var body3 = "nmobyvy";
|
|
1727
|
+
var closeButton3 = "nmobyvx";
|
|
1728
|
+
var content7 = /* @__PURE__ */ (0, import_createRuntimeFn13.createRuntimeFn)({ 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"]] });
|
|
1729
|
+
var description3 = "nmobyvw";
|
|
1730
|
+
var footer3 = "nmobyvz";
|
|
1731
|
+
var header4 = "nmobyvt";
|
|
1732
|
+
var headings2 = "nmobyvu";
|
|
1733
|
+
var overlay2 = "nmobyv0";
|
|
1734
|
+
var title3 = "nmobyvv";
|
|
992
1735
|
|
|
993
1736
|
// src/components/Drawer/Drawer.tsx
|
|
994
|
-
var
|
|
1737
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
995
1738
|
function Drawer({
|
|
996
1739
|
open,
|
|
997
1740
|
defaultOpen,
|
|
@@ -1008,58 +1751,61 @@ function Drawer({
|
|
|
1008
1751
|
className
|
|
1009
1752
|
}) {
|
|
1010
1753
|
const portal2 = usePortalProps();
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
/* @__PURE__ */ (0,
|
|
1014
|
-
|
|
1015
|
-
/* @__PURE__ */ (0,
|
|
1016
|
-
|
|
1754
|
+
const focus = useReturnFocus(Boolean(trigger4));
|
|
1755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1756
|
+
trigger4 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Dialog2.Trigger, { asChild: true, children: trigger4 }),
|
|
1757
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Dialog2.Portal, { children: [
|
|
1758
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Dialog2.Overlay, { className: cx(portal2.className, overlay2), style: portal2.style }),
|
|
1759
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1760
|
+
Dialog2.Content,
|
|
1017
1761
|
{
|
|
1018
|
-
className: cx(portal2.className,
|
|
1762
|
+
className: cx(portal2.className, content7({ side, size }), className),
|
|
1019
1763
|
style: portal2.style,
|
|
1020
1764
|
"data-side": side ?? "right",
|
|
1021
1765
|
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
1766
|
+
onOpenAutoFocus: focus.onOpenAutoFocus,
|
|
1767
|
+
onCloseAutoFocus: focus.onCloseAutoFocus,
|
|
1022
1768
|
...description6 ? {} : { "aria-describedby": void 0 },
|
|
1023
1769
|
children: [
|
|
1024
|
-
/* @__PURE__ */ (0,
|
|
1025
|
-
/* @__PURE__ */ (0,
|
|
1026
|
-
/* @__PURE__ */ (0,
|
|
1027
|
-
description6 && /* @__PURE__ */ (0,
|
|
1770
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: header4, children: [
|
|
1771
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: headings2, children: [
|
|
1772
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Dialog2.Title, { className: title3, children: title6 }),
|
|
1773
|
+
description6 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Dialog2.Description, { className: description3, children: description6 })
|
|
1028
1774
|
] }),
|
|
1029
|
-
!hideCloseButton && /* @__PURE__ */ (0,
|
|
1775
|
+
!hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconButton, { "aria-label": "\uB2EB\uAE30", size: "sm", className: closeButton3, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons10.XIcon, {}) }) })
|
|
1030
1776
|
] }),
|
|
1031
|
-
children && /* @__PURE__ */ (0,
|
|
1032
|
-
footer6 && /* @__PURE__ */ (0,
|
|
1777
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: body3, children }),
|
|
1778
|
+
footer6 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: footer3, children: footer6 })
|
|
1033
1779
|
]
|
|
1034
1780
|
}
|
|
1035
1781
|
)
|
|
1036
1782
|
] })
|
|
1037
1783
|
] });
|
|
1038
1784
|
}
|
|
1039
|
-
var DrawerClose =
|
|
1785
|
+
var DrawerClose = Dialog2.Close;
|
|
1040
1786
|
|
|
1041
1787
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
1042
1788
|
var RadixMenu = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
1043
|
-
var
|
|
1789
|
+
var import_react23 = require("react");
|
|
1044
1790
|
|
|
1045
1791
|
// src/components/DropdownMenu/DropdownMenu.css.ts
|
|
1046
|
-
var
|
|
1792
|
+
var content8 = "_1d7ahux0";
|
|
1047
1793
|
var danger = "_1d7ahux2";
|
|
1048
1794
|
var icon5 = "_1d7ahux3";
|
|
1049
|
-
var
|
|
1795
|
+
var item5 = "_1d7ahux1";
|
|
1050
1796
|
var label2 = "_1d7ahux5";
|
|
1051
1797
|
var separator2 = "_1d7ahux6";
|
|
1052
1798
|
var shortcut = "_1d7ahux4";
|
|
1053
1799
|
|
|
1054
1800
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
1055
|
-
var
|
|
1801
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1056
1802
|
var DropdownMenu = RadixMenu.Root;
|
|
1057
1803
|
var DropdownMenuTrigger = RadixMenu.Trigger;
|
|
1058
1804
|
var DropdownMenuGroup = RadixMenu.Group;
|
|
1059
|
-
var DropdownMenuContent = /* @__PURE__ */ (0,
|
|
1805
|
+
var DropdownMenuContent = /* @__PURE__ */ (0, import_react23.forwardRef)(
|
|
1060
1806
|
function DropdownMenuContent2({ className, style, side = "bottom", align = "start", sideOffset = 4, collisionPadding = 8, ...rest }, ref) {
|
|
1061
1807
|
const portal2 = usePortalProps();
|
|
1062
|
-
return /* @__PURE__ */ (0,
|
|
1808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadixMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1063
1809
|
RadixMenu.Content,
|
|
1064
1810
|
{
|
|
1065
1811
|
ref,
|
|
@@ -1067,154 +1813,36 @@ var DropdownMenuContent = /* @__PURE__ */ (0, import_react15.forwardRef)(
|
|
|
1067
1813
|
align,
|
|
1068
1814
|
sideOffset,
|
|
1069
1815
|
collisionPadding,
|
|
1070
|
-
className: cx(portal2.className,
|
|
1816
|
+
className: cx(portal2.className, content8, className),
|
|
1071
1817
|
style: { ...portal2.style, ...style },
|
|
1072
1818
|
...rest
|
|
1073
1819
|
}
|
|
1074
1820
|
) });
|
|
1075
1821
|
}
|
|
1076
1822
|
);
|
|
1077
|
-
var DropdownMenuItem = /* @__PURE__ */ (0,
|
|
1823
|
+
var DropdownMenuItem = /* @__PURE__ */ (0, import_react23.forwardRef)(
|
|
1078
1824
|
function DropdownMenuItem2({ icon: icon6, shortcut: shortcut2, color = "default", className, children, ...rest }, ref) {
|
|
1079
|
-
return /* @__PURE__ */ (0,
|
|
1080
|
-
icon6 && /* @__PURE__ */ (0,
|
|
1825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(RadixMenu.Item, { ref, className: cx(item5, color === "danger" && danger, className), ...rest, children: [
|
|
1826
|
+
icon6 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: icon5, "aria-hidden": true, children: icon6 }),
|
|
1081
1827
|
children,
|
|
1082
|
-
shortcut2 && /* @__PURE__ */ (0,
|
|
1828
|
+
shortcut2 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
|
|
1083
1829
|
] });
|
|
1084
1830
|
}
|
|
1085
1831
|
);
|
|
1086
|
-
var DropdownMenuLabel = /* @__PURE__ */ (0,
|
|
1832
|
+
var DropdownMenuLabel = /* @__PURE__ */ (0, import_react23.forwardRef)(
|
|
1087
1833
|
function DropdownMenuLabel2({ className, ...rest }, ref) {
|
|
1088
|
-
return /* @__PURE__ */ (0,
|
|
1834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadixMenu.Label, { ref, className: cx(label2, className), ...rest });
|
|
1089
1835
|
}
|
|
1090
1836
|
);
|
|
1091
|
-
var DropdownMenuSeparator = /* @__PURE__ */ (0,
|
|
1837
|
+
var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react23.forwardRef)(
|
|
1092
1838
|
function DropdownMenuSeparator2({ className, ...rest }, ref) {
|
|
1093
|
-
return /* @__PURE__ */ (0,
|
|
1839
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadixMenu.Separator, { ref, className: cx(separator2, className), ...rest });
|
|
1094
1840
|
}
|
|
1095
1841
|
);
|
|
1096
1842
|
|
|
1097
|
-
// src/components/Input/Input.tsx
|
|
1098
|
-
var import_react16 = require("react");
|
|
1099
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1100
|
-
var Input = /* @__PURE__ */ (0, import_react16.forwardRef)(function Input2({ size, invalid, fullWidth, startAdornment, endAdornment, rootClassName, className, disabled, ...rest }, ref) {
|
|
1101
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1102
|
-
"div",
|
|
1103
|
-
{
|
|
1104
|
-
className: cx(root5({ size, fullWidth }), rootClassName),
|
|
1105
|
-
"data-invalid": invalid || void 0,
|
|
1106
|
-
"data-disabled": disabled || void 0,
|
|
1107
|
-
children: [
|
|
1108
|
-
startAdornment && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: adornment, children: startAdornment }),
|
|
1109
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1110
|
-
"input",
|
|
1111
|
-
{
|
|
1112
|
-
ref,
|
|
1113
|
-
className: cx(input2, className),
|
|
1114
|
-
disabled,
|
|
1115
|
-
"aria-invalid": invalid || void 0,
|
|
1116
|
-
...rest
|
|
1117
|
-
}
|
|
1118
|
-
),
|
|
1119
|
-
endAdornment && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: adornment, children: endAdornment })
|
|
1120
|
-
]
|
|
1121
|
-
}
|
|
1122
|
-
);
|
|
1123
|
-
});
|
|
1124
|
-
|
|
1125
|
-
// src/components/Input/TextField.tsx
|
|
1126
|
-
var import_react17 = require("react");
|
|
1127
|
-
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1128
|
-
var TextField = /* @__PURE__ */ (0, import_react17.forwardRef)(function TextField2({ label: label6, helperText: helperText3, error, required, fullWidth, id, "aria-describedby": ariaDescribedBy, ...rest }, ref) {
|
|
1129
|
-
const generatedId = (0, import_react17.useId)();
|
|
1130
|
-
const inputId = id ?? generatedId;
|
|
1131
|
-
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
1132
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1133
|
-
label6 && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { htmlFor: inputId, className: label, children: [
|
|
1134
|
-
label6,
|
|
1135
|
-
required && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1136
|
-
] }),
|
|
1137
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1138
|
-
Input,
|
|
1139
|
-
{
|
|
1140
|
-
ref,
|
|
1141
|
-
id: inputId,
|
|
1142
|
-
invalid: error,
|
|
1143
|
-
required,
|
|
1144
|
-
fullWidth,
|
|
1145
|
-
"aria-describedby": cx(helperId, ariaDescribedBy) || void 0,
|
|
1146
|
-
...rest
|
|
1147
|
-
}
|
|
1148
|
-
),
|
|
1149
|
-
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1150
|
-
] });
|
|
1151
|
-
});
|
|
1152
|
-
|
|
1153
|
-
// src/components/Modal/Modal.tsx
|
|
1154
|
-
var Dialog2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1155
|
-
var import_icons9 = require("@bestow-ui/icons");
|
|
1156
|
-
|
|
1157
|
-
// src/components/Modal/Modal.css.ts
|
|
1158
|
-
var import_createRuntimeFn13 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1159
|
-
var body3 = "_1pdsmv0a";
|
|
1160
|
-
var closeButton3 = "_1pdsmv09";
|
|
1161
|
-
var content7 = /* @__PURE__ */ (0, import_createRuntimeFn13.createRuntimeFn)({ defaultClassName: "_1pdsmv01", variantClassNames: { size: { sm: "_1pdsmv02", md: "_1pdsmv03", lg: "_1pdsmv04" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1162
|
-
var description3 = "_1pdsmv08";
|
|
1163
|
-
var footer3 = "_1pdsmv0b";
|
|
1164
|
-
var header4 = "_1pdsmv05";
|
|
1165
|
-
var headings2 = "_1pdsmv06";
|
|
1166
|
-
var overlay2 = "_1pdsmv00";
|
|
1167
|
-
var title3 = "_1pdsmv07";
|
|
1168
|
-
|
|
1169
|
-
// src/components/Modal/Modal.tsx
|
|
1170
|
-
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1171
|
-
function Modal({
|
|
1172
|
-
open,
|
|
1173
|
-
defaultOpen,
|
|
1174
|
-
onOpenChange,
|
|
1175
|
-
trigger: trigger4,
|
|
1176
|
-
title: title6,
|
|
1177
|
-
description: description6,
|
|
1178
|
-
children,
|
|
1179
|
-
footer: footer6,
|
|
1180
|
-
size,
|
|
1181
|
-
hideCloseButton = false,
|
|
1182
|
-
closeOnOverlayClick = true,
|
|
1183
|
-
className
|
|
1184
|
-
}) {
|
|
1185
|
-
const portal2 = usePortalProps();
|
|
1186
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1187
|
-
trigger4 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Dialog2.Trigger, { asChild: true, children: trigger4 }),
|
|
1188
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Dialog2.Portal, { children: [
|
|
1189
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Dialog2.Overlay, { className: cx(portal2.className, overlay2), style: portal2.style }),
|
|
1190
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1191
|
-
Dialog2.Content,
|
|
1192
|
-
{
|
|
1193
|
-
className: cx(portal2.className, content7({ size }), className),
|
|
1194
|
-
style: portal2.style,
|
|
1195
|
-
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
1196
|
-
...description6 ? {} : { "aria-describedby": void 0 },
|
|
1197
|
-
children: [
|
|
1198
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: header4, children: [
|
|
1199
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: headings2, children: [
|
|
1200
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Dialog2.Title, { className: title3, children: title6 }),
|
|
1201
|
-
description6 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Dialog2.Description, { className: description3, children: description6 })
|
|
1202
|
-
] }),
|
|
1203
|
-
!hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Dialog2.Close, { className: closeButton3, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_icons9.XIcon, { size: 16 }) })
|
|
1204
|
-
] }),
|
|
1205
|
-
children && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: body3, children }),
|
|
1206
|
-
footer6 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: footer3, children: footer6 })
|
|
1207
|
-
]
|
|
1208
|
-
}
|
|
1209
|
-
)
|
|
1210
|
-
] })
|
|
1211
|
-
] });
|
|
1212
|
-
}
|
|
1213
|
-
var ModalClose = Dialog2.Close;
|
|
1214
|
-
|
|
1215
1843
|
// src/components/Pagination/Pagination.tsx
|
|
1216
|
-
var
|
|
1217
|
-
var
|
|
1844
|
+
var import_icons11 = require("@bestow-ui/icons");
|
|
1845
|
+
var import_react24 = require("react");
|
|
1218
1846
|
|
|
1219
1847
|
// src/components/Pagination/getPaginationItems.ts
|
|
1220
1848
|
var range = (start, end) => end < start ? [] : Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
@@ -1243,13 +1871,13 @@ function getPaginationItems(page, totalPages, siblingCount = 1, boundaryCount =
|
|
|
1243
1871
|
// src/components/Pagination/Pagination.css.ts
|
|
1244
1872
|
var import_createRuntimeFn14 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1245
1873
|
var ellipsis = "_1iraoak4";
|
|
1246
|
-
var
|
|
1247
|
-
var
|
|
1874
|
+
var item6 = /* @__PURE__ */ (0, import_createRuntimeFn14.createRuntimeFn)({ defaultClassName: "_1iraoak1", variantClassNames: { size: { sm: "_1iraoak2", md: "_1iraoak3" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1875
|
+
var list3 = "_1iraoak0";
|
|
1248
1876
|
|
|
1249
1877
|
// src/components/Pagination/Pagination.tsx
|
|
1250
|
-
var
|
|
1878
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1251
1879
|
var defaultItemLabel = (type, page) => type === "previous" ? "\uC774\uC804 \uD398\uC774\uC9C0" : type === "next" ? "\uB2E4\uC74C \uD398\uC774\uC9C0" : `${page} \uD398\uC774\uC9C0`;
|
|
1252
|
-
var Pagination = /* @__PURE__ */ (0,
|
|
1880
|
+
var Pagination = /* @__PURE__ */ (0, import_react24.forwardRef)(function Pagination2({
|
|
1253
1881
|
totalPages,
|
|
1254
1882
|
page: pageProp,
|
|
1255
1883
|
defaultPage = 1,
|
|
@@ -1262,7 +1890,7 @@ var Pagination = /* @__PURE__ */ (0, import_react18.forwardRef)(function Paginat
|
|
|
1262
1890
|
"aria-label": ariaLabel = "\uD398\uC774\uC9C0 \uD0D0\uC0C9",
|
|
1263
1891
|
...rest
|
|
1264
1892
|
}, ref) {
|
|
1265
|
-
const [uncontrolledPage, setUncontrolledPage] = (0,
|
|
1893
|
+
const [uncontrolledPage, setUncontrolledPage] = (0, import_react24.useState)(defaultPage);
|
|
1266
1894
|
if (totalPages < 1) return null;
|
|
1267
1895
|
const page = Math.min(Math.max(pageProp ?? uncontrolledPage, 1), totalPages);
|
|
1268
1896
|
const goTo = (next) => {
|
|
@@ -1270,9 +1898,9 @@ var Pagination = /* @__PURE__ */ (0, import_react18.forwardRef)(function Paginat
|
|
|
1270
1898
|
if (pageProp === void 0) setUncontrolledPage(next);
|
|
1271
1899
|
onPageChange?.(next);
|
|
1272
1900
|
};
|
|
1273
|
-
const itemClass =
|
|
1274
|
-
return /* @__PURE__ */ (0,
|
|
1275
|
-
/* @__PURE__ */ (0,
|
|
1901
|
+
const itemClass = item6({ size });
|
|
1902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("ul", { className: list3, children: [
|
|
1903
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1276
1904
|
"button",
|
|
1277
1905
|
{
|
|
1278
1906
|
type: "button",
|
|
@@ -1280,23 +1908,23 @@ var Pagination = /* @__PURE__ */ (0, import_react18.forwardRef)(function Paginat
|
|
|
1280
1908
|
"aria-label": getItemLabel("previous", page - 1),
|
|
1281
1909
|
disabled: page <= 1,
|
|
1282
1910
|
onClick: () => goTo(page - 1),
|
|
1283
|
-
children: /* @__PURE__ */ (0,
|
|
1911
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_icons11.ChevronLeftIcon, { size: 16 })
|
|
1284
1912
|
}
|
|
1285
1913
|
) }),
|
|
1286
1914
|
getPaginationItems(page, totalPages, siblingCount, boundaryCount).map(
|
|
1287
|
-
(
|
|
1915
|
+
(item7) => typeof item7 === "number" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1288
1916
|
"button",
|
|
1289
1917
|
{
|
|
1290
1918
|
type: "button",
|
|
1291
1919
|
className: itemClass,
|
|
1292
|
-
"aria-label": getItemLabel("page",
|
|
1293
|
-
"aria-current":
|
|
1294
|
-
onClick: () => goTo(
|
|
1295
|
-
children:
|
|
1920
|
+
"aria-label": getItemLabel("page", item7),
|
|
1921
|
+
"aria-current": item7 === page ? "page" : void 0,
|
|
1922
|
+
onClick: () => goTo(item7),
|
|
1923
|
+
children: item7
|
|
1296
1924
|
}
|
|
1297
|
-
) },
|
|
1925
|
+
) }, item7) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { "aria-hidden": true, className: cx(itemClass, ellipsis), children: "\u2026" }, item7)
|
|
1298
1926
|
),
|
|
1299
|
-
/* @__PURE__ */ (0,
|
|
1927
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1300
1928
|
"button",
|
|
1301
1929
|
{
|
|
1302
1930
|
type: "button",
|
|
@@ -1304,28 +1932,79 @@ var Pagination = /* @__PURE__ */ (0, import_react18.forwardRef)(function Paginat
|
|
|
1304
1932
|
"aria-label": getItemLabel("next", page + 1),
|
|
1305
1933
|
disabled: page >= totalPages,
|
|
1306
1934
|
onClick: () => goTo(page + 1),
|
|
1307
|
-
children: /* @__PURE__ */ (0,
|
|
1935
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_icons11.ChevronRightIcon, { size: 16 })
|
|
1308
1936
|
}
|
|
1309
1937
|
) })
|
|
1310
1938
|
] }) });
|
|
1311
1939
|
});
|
|
1312
1940
|
|
|
1941
|
+
// src/components/PhoneNumberInput/PhoneNumberInput.tsx
|
|
1942
|
+
var import_react25 = require("react");
|
|
1943
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1944
|
+
var sanitize2 = (input5) => {
|
|
1945
|
+
const digits = input5.replace(/\D/g, "");
|
|
1946
|
+
return digits.slice(0, phoneNumberMaxDigits(digits));
|
|
1947
|
+
};
|
|
1948
|
+
var isDigit3 = (char) => /\d/.test(char);
|
|
1949
|
+
var PhoneNumberInput = /* @__PURE__ */ (0, import_react25.forwardRef)(
|
|
1950
|
+
function PhoneNumberInput2(props, ref) {
|
|
1951
|
+
const {
|
|
1952
|
+
value: value4,
|
|
1953
|
+
defaultValue,
|
|
1954
|
+
onValueChange,
|
|
1955
|
+
label: label6 = "\uD734\uB300\uD3F0 \uBC88\uD638",
|
|
1956
|
+
placeholder = "010-0000-0000",
|
|
1957
|
+
onKeyDown,
|
|
1958
|
+
...rest
|
|
1959
|
+
} = props;
|
|
1960
|
+
const inputRef = (0, import_react25.useRef)(null);
|
|
1961
|
+
const field3 = useFormattedInput({
|
|
1962
|
+
isControlled: "value" in props,
|
|
1963
|
+
value: value4,
|
|
1964
|
+
defaultValue,
|
|
1965
|
+
onValueChange,
|
|
1966
|
+
sanitize: sanitize2,
|
|
1967
|
+
format: formatPhoneNumber,
|
|
1968
|
+
isMeaningful: isDigit3,
|
|
1969
|
+
inputRef
|
|
1970
|
+
});
|
|
1971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1972
|
+
TextField,
|
|
1973
|
+
{
|
|
1974
|
+
ref: mergeRefs(ref, inputRef),
|
|
1975
|
+
label: label6,
|
|
1976
|
+
placeholder,
|
|
1977
|
+
type: "tel",
|
|
1978
|
+
inputMode: "tel",
|
|
1979
|
+
autoComplete: "tel-national",
|
|
1980
|
+
value: field3.display,
|
|
1981
|
+
onChange: field3.onChange,
|
|
1982
|
+
onKeyDown: (event) => {
|
|
1983
|
+
field3.onKeyDown(event);
|
|
1984
|
+
onKeyDown?.(event);
|
|
1985
|
+
},
|
|
1986
|
+
...rest
|
|
1987
|
+
}
|
|
1988
|
+
);
|
|
1989
|
+
}
|
|
1990
|
+
);
|
|
1991
|
+
|
|
1313
1992
|
// src/components/Popover/Popover.tsx
|
|
1314
1993
|
var RadixPopover = __toESM(require("@radix-ui/react-popover"), 1);
|
|
1315
|
-
var
|
|
1316
|
-
var
|
|
1994
|
+
var import_icons12 = require("@bestow-ui/icons");
|
|
1995
|
+
var import_react26 = require("react");
|
|
1317
1996
|
|
|
1318
1997
|
// src/components/Popover/Popover.css.ts
|
|
1319
1998
|
var arrow = "_1j99p8x4";
|
|
1320
1999
|
var closeButton4 = "_1j99p8x3";
|
|
1321
|
-
var
|
|
2000
|
+
var content9 = "_1j99p8x0";
|
|
1322
2001
|
var header5 = "_1j99p8x1";
|
|
1323
2002
|
var title4 = "_1j99p8x2";
|
|
1324
2003
|
|
|
1325
2004
|
// src/components/Popover/Popover.tsx
|
|
1326
|
-
var
|
|
2005
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1327
2006
|
function Popover2({
|
|
1328
|
-
content:
|
|
2007
|
+
content: content12,
|
|
1329
2008
|
children,
|
|
1330
2009
|
title: title6,
|
|
1331
2010
|
"aria-label": ariaLabel,
|
|
@@ -1341,10 +2020,10 @@ function Popover2({
|
|
|
1341
2020
|
style
|
|
1342
2021
|
}) {
|
|
1343
2022
|
const portal2 = usePortalProps();
|
|
1344
|
-
const titleId = (0,
|
|
1345
|
-
return /* @__PURE__ */ (0,
|
|
1346
|
-
/* @__PURE__ */ (0,
|
|
1347
|
-
/* @__PURE__ */ (0,
|
|
2023
|
+
const titleId = (0, import_react26.useId)();
|
|
2024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(RadixPopover.Root, { open, defaultOpen, onOpenChange, modal, children: [
|
|
2025
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadixPopover.Trigger, { asChild: true, children }),
|
|
2026
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadixPopover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1348
2027
|
RadixPopover.Content,
|
|
1349
2028
|
{
|
|
1350
2029
|
side,
|
|
@@ -1353,15 +2032,15 @@ function Popover2({
|
|
|
1353
2032
|
collisionPadding: 8,
|
|
1354
2033
|
"aria-labelledby": title6 ? titleId : void 0,
|
|
1355
2034
|
"aria-label": title6 ? void 0 : ariaLabel,
|
|
1356
|
-
className: cx(portal2.className,
|
|
2035
|
+
className: cx(portal2.className, content9, className),
|
|
1357
2036
|
style: { ...portal2.style, ...style },
|
|
1358
2037
|
children: [
|
|
1359
|
-
(title6 || showClose) && /* @__PURE__ */ (0,
|
|
1360
|
-
title6 && /* @__PURE__ */ (0,
|
|
1361
|
-
showClose && /* @__PURE__ */ (0,
|
|
2038
|
+
(title6 || showClose) && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: header5, children: [
|
|
2039
|
+
title6 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("h2", { id: titleId, className: title4, children: title6 }),
|
|
2040
|
+
showClose && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadixPopover.Close, { className: closeButton4, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_icons12.XIcon, { size: 16 }) })
|
|
1362
2041
|
] }),
|
|
1363
|
-
|
|
1364
|
-
showArrow && /* @__PURE__ */ (0,
|
|
2042
|
+
content12,
|
|
2043
|
+
showArrow && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadixPopover.Arrow, { className: arrow, width: 12, height: 6 })
|
|
1365
2044
|
]
|
|
1366
2045
|
}
|
|
1367
2046
|
) })
|
|
@@ -1370,7 +2049,7 @@ function Popover2({
|
|
|
1370
2049
|
var PopoverClose = RadixPopover.Close;
|
|
1371
2050
|
|
|
1372
2051
|
// src/components/Progress/Progress.tsx
|
|
1373
|
-
var
|
|
2052
|
+
var import_react27 = require("react");
|
|
1374
2053
|
|
|
1375
2054
|
// src/components/Progress/Progress.css.ts
|
|
1376
2055
|
var import_createRuntimeFn15 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1382,9 +2061,9 @@ var track = /* @__PURE__ */ (0, import_createRuntimeFn15.createRuntimeFn)({ defa
|
|
|
1382
2061
|
var value2 = "_1tvkq003";
|
|
1383
2062
|
|
|
1384
2063
|
// src/components/Progress/Progress.tsx
|
|
1385
|
-
var
|
|
2064
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1386
2065
|
var defaultFormat = (value4, max) => `${Math.round(value4 / max * 100)}%`;
|
|
1387
|
-
var Progress = /* @__PURE__ */ (0,
|
|
2066
|
+
var Progress = /* @__PURE__ */ (0, import_react27.forwardRef)(function Progress2({
|
|
1388
2067
|
value: value4,
|
|
1389
2068
|
max = 100,
|
|
1390
2069
|
label: label6,
|
|
@@ -1396,17 +2075,17 @@ var Progress = /* @__PURE__ */ (0, import_react20.forwardRef)(function Progress2
|
|
|
1396
2075
|
className,
|
|
1397
2076
|
...rest
|
|
1398
2077
|
}, ref) {
|
|
1399
|
-
const labelId = (0,
|
|
2078
|
+
const labelId = (0, import_react27.useId)();
|
|
1400
2079
|
const isIndeterminate = value4 === void 0 || value4 === null;
|
|
1401
2080
|
const safeMax = max > 0 ? max : 100;
|
|
1402
2081
|
const clamped = isIndeterminate ? 0 : Math.min(safeMax, Math.max(0, value4));
|
|
1403
2082
|
const valueText = isIndeterminate ? void 0 : formatValue(clamped, safeMax);
|
|
1404
|
-
return /* @__PURE__ */ (0,
|
|
1405
|
-
(label6 || showValue && valueText) && /* @__PURE__ */ (0,
|
|
1406
|
-
label6 && /* @__PURE__ */ (0,
|
|
1407
|
-
showValue && valueText && /* @__PURE__ */ (0,
|
|
2083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { ref, className: cx(root6, className), ...rest, children: [
|
|
2084
|
+
(label6 || showValue && valueText) && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: header6, children: [
|
|
2085
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { id: labelId, className: label3, children: label6 }),
|
|
2086
|
+
showValue && valueText && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: value2, "aria-hidden": true, children: valueText })
|
|
1408
2087
|
] }),
|
|
1409
|
-
/* @__PURE__ */ (0,
|
|
2088
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1410
2089
|
"div",
|
|
1411
2090
|
{
|
|
1412
2091
|
role: "progressbar",
|
|
@@ -1417,7 +2096,7 @@ var Progress = /* @__PURE__ */ (0, import_react20.forwardRef)(function Progress2
|
|
|
1417
2096
|
"aria-valuenow": isIndeterminate ? void 0 : clamped,
|
|
1418
2097
|
"aria-valuetext": valueText,
|
|
1419
2098
|
className: track({ size }),
|
|
1420
|
-
children: /* @__PURE__ */ (0,
|
|
2099
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1421
2100
|
"div",
|
|
1422
2101
|
{
|
|
1423
2102
|
className: indicator({ color }),
|
|
@@ -1432,7 +2111,7 @@ var Progress = /* @__PURE__ */ (0, import_react20.forwardRef)(function Progress2
|
|
|
1432
2111
|
|
|
1433
2112
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
1434
2113
|
var RadixRadioGroup = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
1435
|
-
var
|
|
2114
|
+
var import_react28 = require("react");
|
|
1436
2115
|
|
|
1437
2116
|
// src/components/RadioGroup/RadioGroup.css.ts
|
|
1438
2117
|
var import_createRuntimeFn16 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1446,8 +2125,8 @@ var radio = /* @__PURE__ */ (0, import_createRuntimeFn16.createRuntimeFn)({ defa
|
|
|
1446
2125
|
var text = "_1w9iwjmb";
|
|
1447
2126
|
|
|
1448
2127
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
1449
|
-
var
|
|
1450
|
-
var RadioGroup = /* @__PURE__ */ (0,
|
|
2128
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2129
|
+
var RadioGroup = /* @__PURE__ */ (0, import_react28.forwardRef)(function RadioGroup2(props, ref) {
|
|
1451
2130
|
const {
|
|
1452
2131
|
options,
|
|
1453
2132
|
value: value4,
|
|
@@ -1466,16 +2145,16 @@ var RadioGroup = /* @__PURE__ */ (0, import_react21.forwardRef)(function RadioGr
|
|
|
1466
2145
|
className
|
|
1467
2146
|
} = props;
|
|
1468
2147
|
const isControlled = "value" in props;
|
|
1469
|
-
const generatedId = (0,
|
|
2148
|
+
const generatedId = (0, import_react28.useId)();
|
|
1470
2149
|
const baseId = id ?? generatedId;
|
|
1471
2150
|
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
1472
2151
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
1473
|
-
return /* @__PURE__ */ (0,
|
|
1474
|
-
label6 && /* @__PURE__ */ (0,
|
|
2152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: cx(field, className), children: [
|
|
2153
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { id: labelId, className: cx(label, groupLabel), children: [
|
|
1475
2154
|
label6,
|
|
1476
|
-
required && /* @__PURE__ */ (0,
|
|
2155
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1477
2156
|
] }),
|
|
1478
|
-
/* @__PURE__ */ (0,
|
|
2157
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1479
2158
|
RadixRadioGroup.Root,
|
|
1480
2159
|
{
|
|
1481
2160
|
ref,
|
|
@@ -1496,8 +2175,8 @@ var RadioGroup = /* @__PURE__ */ (0, import_react21.forwardRef)(function RadioGr
|
|
|
1496
2175
|
const itemId = `${baseId}-${option2.value}`;
|
|
1497
2176
|
const descriptionId = option2.description ? `${itemId}-description` : void 0;
|
|
1498
2177
|
const itemDisabled = disabled || option2.disabled;
|
|
1499
|
-
return /* @__PURE__ */ (0,
|
|
1500
|
-
/* @__PURE__ */ (0,
|
|
2178
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: option({ size }), "data-disabled": itemDisabled || void 0, children: [
|
|
2179
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1501
2180
|
RadixRadioGroup.Item,
|
|
1502
2181
|
{
|
|
1503
2182
|
id: itemId,
|
|
@@ -1505,27 +2184,27 @@ var RadioGroup = /* @__PURE__ */ (0, import_react21.forwardRef)(function RadioGr
|
|
|
1505
2184
|
disabled: option2.disabled,
|
|
1506
2185
|
"aria-describedby": descriptionId,
|
|
1507
2186
|
className: radio({ size }),
|
|
1508
|
-
children: /* @__PURE__ */ (0,
|
|
2187
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(RadixRadioGroup.Indicator, { className: indicator2 })
|
|
1509
2188
|
}
|
|
1510
2189
|
),
|
|
1511
|
-
/* @__PURE__ */ (0,
|
|
1512
|
-
/* @__PURE__ */ (0,
|
|
1513
|
-
option2.description && /* @__PURE__ */ (0,
|
|
2190
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: text, children: [
|
|
2191
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("label", { htmlFor: itemId, className: labelText, children: option2.label }),
|
|
2192
|
+
option2.description && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { id: descriptionId, className: description4, children: option2.description })
|
|
1514
2193
|
] })
|
|
1515
2194
|
] }, option2.value);
|
|
1516
2195
|
})
|
|
1517
2196
|
}
|
|
1518
2197
|
),
|
|
1519
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
2198
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1520
2199
|
] });
|
|
1521
2200
|
});
|
|
1522
2201
|
|
|
1523
2202
|
// src/components/Select/Select.tsx
|
|
1524
2203
|
var RadixSelect = __toESM(require("@radix-ui/react-select"), 1);
|
|
1525
|
-
var
|
|
1526
|
-
var
|
|
1527
|
-
var
|
|
1528
|
-
var Select = /* @__PURE__ */ (0,
|
|
2204
|
+
var import_react29 = require("react");
|
|
2205
|
+
var import_icons13 = require("@bestow-ui/icons");
|
|
2206
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2207
|
+
var Select = /* @__PURE__ */ (0, import_react29.forwardRef)(function Select2(props, ref) {
|
|
1529
2208
|
const {
|
|
1530
2209
|
options,
|
|
1531
2210
|
value: value4,
|
|
@@ -1545,16 +2224,16 @@ var Select = /* @__PURE__ */ (0, import_react22.forwardRef)(function Select2(pro
|
|
|
1545
2224
|
className
|
|
1546
2225
|
} = props;
|
|
1547
2226
|
const isControlled = "value" in props;
|
|
1548
|
-
const generatedId = (0,
|
|
2227
|
+
const generatedId = (0, import_react29.useId)();
|
|
1549
2228
|
const triggerId = id ?? generatedId;
|
|
1550
2229
|
const helperId = helperText3 ? `${triggerId}-helper` : void 0;
|
|
1551
2230
|
const portal2 = usePortalProps();
|
|
1552
|
-
return /* @__PURE__ */ (0,
|
|
1553
|
-
label6 && /* @__PURE__ */ (0,
|
|
2231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
2232
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("label", { htmlFor: triggerId, className: label, children: [
|
|
1554
2233
|
label6,
|
|
1555
|
-
required && /* @__PURE__ */ (0,
|
|
2234
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1556
2235
|
] }),
|
|
1557
|
-
/* @__PURE__ */ (0,
|
|
2236
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1558
2237
|
RadixSelect.Root,
|
|
1559
2238
|
{
|
|
1560
2239
|
value: isControlled ? value4 ?? "" : void 0,
|
|
@@ -1564,7 +2243,7 @@ var Select = /* @__PURE__ */ (0, import_react22.forwardRef)(function Select2(pro
|
|
|
1564
2243
|
required,
|
|
1565
2244
|
name,
|
|
1566
2245
|
children: [
|
|
1567
|
-
/* @__PURE__ */ (0,
|
|
2246
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1568
2247
|
RadixSelect.Trigger,
|
|
1569
2248
|
{
|
|
1570
2249
|
ref,
|
|
@@ -1573,30 +2252,30 @@ var Select = /* @__PURE__ */ (0, import_react22.forwardRef)(function Select2(pro
|
|
|
1573
2252
|
"aria-invalid": error || void 0,
|
|
1574
2253
|
"aria-describedby": helperId,
|
|
1575
2254
|
"data-invalid": error || void 0,
|
|
1576
|
-
className: cx(
|
|
2255
|
+
className: cx(root3({ size, fullWidth }), trigger2, className),
|
|
1577
2256
|
children: [
|
|
1578
|
-
/* @__PURE__ */ (0,
|
|
1579
|
-
/* @__PURE__ */ (0,
|
|
2257
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: value, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixSelect.Value, { placeholder }) }),
|
|
2258
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixSelect.Icon, { className: icon4, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_icons13.ChevronDownIcon, { size: 16 }) })
|
|
1580
2259
|
]
|
|
1581
2260
|
}
|
|
1582
2261
|
),
|
|
1583
|
-
/* @__PURE__ */ (0,
|
|
2262
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixSelect.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1584
2263
|
RadixSelect.Content,
|
|
1585
2264
|
{
|
|
1586
2265
|
position: "popper",
|
|
1587
2266
|
sideOffset: 4,
|
|
1588
2267
|
collisionPadding: 8,
|
|
1589
|
-
className: cx(portal2.className,
|
|
2268
|
+
className: cx(portal2.className, content5),
|
|
1590
2269
|
style: portal2.style,
|
|
1591
|
-
children: /* @__PURE__ */ (0,
|
|
2270
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
1592
2271
|
RadixSelect.Item,
|
|
1593
2272
|
{
|
|
1594
2273
|
value: option2.value,
|
|
1595
2274
|
disabled: option2.disabled,
|
|
1596
|
-
className:
|
|
2275
|
+
className: item4,
|
|
1597
2276
|
children: [
|
|
1598
|
-
/* @__PURE__ */ (0,
|
|
1599
|
-
/* @__PURE__ */ (0,
|
|
2277
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixSelect.ItemText, { children: option2.label }),
|
|
2278
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_icons13.CheckIcon, { size: 16 }) })
|
|
1600
2279
|
]
|
|
1601
2280
|
},
|
|
1602
2281
|
option2.value
|
|
@@ -1606,13 +2285,13 @@ var Select = /* @__PURE__ */ (0, import_react22.forwardRef)(function Select2(pro
|
|
|
1606
2285
|
]
|
|
1607
2286
|
}
|
|
1608
2287
|
),
|
|
1609
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
2288
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1610
2289
|
] });
|
|
1611
2290
|
});
|
|
1612
2291
|
|
|
1613
2292
|
// src/components/Skeleton/Skeleton.tsx
|
|
1614
2293
|
var import_dynamic2 = require("@vanilla-extract/dynamic");
|
|
1615
|
-
var
|
|
2294
|
+
var import_react30 = require("react");
|
|
1616
2295
|
|
|
1617
2296
|
// src/components/Skeleton/Skeleton.css.ts
|
|
1618
2297
|
var import_createRuntimeFn17 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1622,13 +2301,13 @@ var skeleton = /* @__PURE__ */ (0, import_createRuntimeFn17.createRuntimeFn)({ d
|
|
|
1622
2301
|
var width = "var(--_1s8datd0)";
|
|
1623
2302
|
|
|
1624
2303
|
// src/components/Skeleton/Skeleton.tsx
|
|
1625
|
-
var
|
|
2304
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1626
2305
|
var toCss = (value4) => typeof value4 === "number" ? `${value4}px` : value4;
|
|
1627
|
-
var Skeleton = /* @__PURE__ */ (0,
|
|
2306
|
+
var Skeleton = /* @__PURE__ */ (0, import_react30.forwardRef)(function Skeleton2({ variant = "text", width: width2, height: height2, lines: lines2 = 1, className, style, ...rest }, ref) {
|
|
1628
2307
|
const w = toCss(width2 ?? (variant === "circle" ? 40 : "100%"));
|
|
1629
2308
|
const h = toCss(height2 ?? (variant === "circle" ? w : variant === "rect" ? 100 : "1em"));
|
|
1630
2309
|
if (variant === "text" && lines2 > 1) {
|
|
1631
|
-
return /* @__PURE__ */ (0,
|
|
2310
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1632
2311
|
"span",
|
|
1633
2312
|
{
|
|
1634
2313
|
ref,
|
|
@@ -1636,7 +2315,7 @@ var Skeleton = /* @__PURE__ */ (0, import_react23.forwardRef)(function Skeleton2
|
|
|
1636
2315
|
className: cx(lines, className),
|
|
1637
2316
|
style: { ...(0, import_dynamic2.assignInlineVars)({ [width]: w }), ...style },
|
|
1638
2317
|
...rest,
|
|
1639
|
-
children: Array.from({ length: lines2 }, (_, i) => /* @__PURE__ */ (0,
|
|
2318
|
+
children: Array.from({ length: lines2 }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1640
2319
|
"span",
|
|
1641
2320
|
{
|
|
1642
2321
|
className: skeleton({ variant }),
|
|
@@ -1647,7 +2326,7 @@ var Skeleton = /* @__PURE__ */ (0, import_react23.forwardRef)(function Skeleton2
|
|
|
1647
2326
|
}
|
|
1648
2327
|
);
|
|
1649
2328
|
}
|
|
1650
|
-
return /* @__PURE__ */ (0,
|
|
2329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1651
2330
|
"span",
|
|
1652
2331
|
{
|
|
1653
2332
|
ref,
|
|
@@ -1661,7 +2340,7 @@ var Skeleton = /* @__PURE__ */ (0, import_react23.forwardRef)(function Skeleton2
|
|
|
1661
2340
|
|
|
1662
2341
|
// src/components/Slider/Slider.tsx
|
|
1663
2342
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"), 1);
|
|
1664
|
-
var
|
|
2343
|
+
var import_react31 = require("react");
|
|
1665
2344
|
|
|
1666
2345
|
// src/components/Slider/Slider.css.ts
|
|
1667
2346
|
var import_createRuntimeFn18 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1676,8 +2355,8 @@ var track2 = /* @__PURE__ */ (0, import_createRuntimeFn18.createRuntimeFn)({ def
|
|
|
1676
2355
|
var value3 = "_126mzjm3";
|
|
1677
2356
|
|
|
1678
2357
|
// src/components/Slider/Slider.tsx
|
|
1679
|
-
var
|
|
1680
|
-
var Slider = /* @__PURE__ */ (0,
|
|
2358
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2359
|
+
var Slider = /* @__PURE__ */ (0, import_react31.forwardRef)(function Slider2(props, ref) {
|
|
1681
2360
|
const {
|
|
1682
2361
|
value: value4,
|
|
1683
2362
|
defaultValue,
|
|
@@ -1696,12 +2375,12 @@ var Slider = /* @__PURE__ */ (0, import_react24.forwardRef)(function Slider2(pro
|
|
|
1696
2375
|
disabled,
|
|
1697
2376
|
...rest
|
|
1698
2377
|
} = props;
|
|
1699
|
-
const generatedId = (0,
|
|
2378
|
+
const generatedId = (0, import_react31.useId)();
|
|
1700
2379
|
const baseId = id ?? generatedId;
|
|
1701
2380
|
const labelId = `${baseId}-label`;
|
|
1702
2381
|
const helperId = `${baseId}-helper`;
|
|
1703
2382
|
const isControlled = "value" in props;
|
|
1704
|
-
const [innerValue, setInnerValue] = (0,
|
|
2383
|
+
const [innerValue, setInnerValue] = (0, import_react31.useState)(defaultValue ?? [min]);
|
|
1705
2384
|
const current2 = isControlled ? value4 ?? [min] : innerValue;
|
|
1706
2385
|
const isRange = current2.length > 1;
|
|
1707
2386
|
const handleChange = (next) => {
|
|
@@ -1709,12 +2388,12 @@ var Slider = /* @__PURE__ */ (0, import_react24.forwardRef)(function Slider2(pro
|
|
|
1709
2388
|
onValueChange?.(next);
|
|
1710
2389
|
};
|
|
1711
2390
|
const valueText = current2.map(formatValue).join(" \u2013 ");
|
|
1712
|
-
return /* @__PURE__ */ (0,
|
|
1713
|
-
(label6 || showValue) && /* @__PURE__ */ (0,
|
|
1714
|
-
label6 && /* @__PURE__ */ (0,
|
|
1715
|
-
showValue && /* @__PURE__ */ (0,
|
|
2391
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: cx(field2, className), children: [
|
|
2392
|
+
(label6 || showValue) && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: header7, children: [
|
|
2393
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { id: labelId, className: label4, children: label6 }),
|
|
2394
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: value3, "aria-hidden": true, children: valueText })
|
|
1716
2395
|
] }),
|
|
1717
|
-
/* @__PURE__ */ (0,
|
|
2396
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
1718
2397
|
RadixSlider.Root,
|
|
1719
2398
|
{
|
|
1720
2399
|
ref,
|
|
@@ -1727,10 +2406,10 @@ var Slider = /* @__PURE__ */ (0, import_react24.forwardRef)(function Slider2(pro
|
|
|
1727
2406
|
className: root7({ size }),
|
|
1728
2407
|
...rest,
|
|
1729
2408
|
children: [
|
|
1730
|
-
/* @__PURE__ */ (0,
|
|
2409
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RadixSlider.Track, { className: track2({ size }), children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RadixSlider.Range, { className: range2 }) }),
|
|
1731
2410
|
current2.map((thumbValue, index) => {
|
|
1732
2411
|
const thumbLabelId = `${baseId}-thumb-${index}`;
|
|
1733
|
-
return /* @__PURE__ */ (0,
|
|
2412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1734
2413
|
RadixSlider.Thumb,
|
|
1735
2414
|
{
|
|
1736
2415
|
className: thumb({ size }),
|
|
@@ -1745,30 +2424,30 @@ var Slider = /* @__PURE__ */ (0, import_react24.forwardRef)(function Slider2(pro
|
|
|
1745
2424
|
]
|
|
1746
2425
|
}
|
|
1747
2426
|
),
|
|
1748
|
-
isRange && current2.map((_, index) => /* @__PURE__ */ (0,
|
|
2427
|
+
isRange && current2.map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
|
|
1749
2428
|
label6 ? "" : ariaLabel ? `${ariaLabel} ` : "",
|
|
1750
2429
|
thumbLabels[index] ?? `${index + 1}`
|
|
1751
2430
|
] }, index)),
|
|
1752
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
2431
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { id: helperId, className: helperText2, children: helperText3 })
|
|
1753
2432
|
] });
|
|
1754
2433
|
});
|
|
1755
2434
|
|
|
1756
2435
|
// src/components/Stack/Stack.tsx
|
|
1757
|
-
var
|
|
2436
|
+
var import_react32 = require("react");
|
|
1758
2437
|
|
|
1759
2438
|
// src/components/Stack/Stack.css.ts
|
|
1760
2439
|
var import_createRuntimeFn19 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1761
2440
|
var stack = /* @__PURE__ */ (0, import_createRuntimeFn19.createRuntimeFn)({ defaultClassName: "_1jz9hj90", variantClassNames: { direction: { row: "_1jz9hj91", column: "_1jz9hj92", "row-reverse": "_1jz9hj93", "column-reverse": "_1jz9hj94" }, gap: { "0": "_1jz9hj95", "1": "_1jz9hj96", "2": "_1jz9hj97", "3": "_1jz9hj98", "4": "_1jz9hj99", "5": "_1jz9hj9a", "6": "_1jz9hj9b", "8": "_1jz9hj9c", "10": "_1jz9hj9d", "12": "_1jz9hj9e", "16": "_1jz9hj9f" }, align: { start: "_1jz9hj9g", center: "_1jz9hj9h", end: "_1jz9hj9i", stretch: "_1jz9hj9j", baseline: "_1jz9hj9k" }, justify: { start: "_1jz9hj9l", center: "_1jz9hj9m", end: "_1jz9hj9n", between: "_1jz9hj9o", around: "_1jz9hj9p", evenly: "_1jz9hj9q" }, wrap: { true: "_1jz9hj9r" } }, defaultVariants: { direction: "column" }, compoundVariants: [] });
|
|
1762
2441
|
|
|
1763
2442
|
// src/components/Stack/Stack.tsx
|
|
1764
|
-
var
|
|
1765
|
-
var Stack = /* @__PURE__ */ (0,
|
|
1766
|
-
return /* @__PURE__ */ (0,
|
|
2443
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2444
|
+
var Stack = /* @__PURE__ */ (0, import_react32.forwardRef)(function Stack2({ as: Component = "div", direction, gap, align, justify, wrap, className, ...rest }, ref) {
|
|
2445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Component, { ref, className: cx(stack({ direction, gap, align, justify, wrap }), className), ...rest });
|
|
1767
2446
|
});
|
|
1768
2447
|
|
|
1769
2448
|
// src/components/Switch/Switch.tsx
|
|
1770
2449
|
var RadixSwitch = __toESM(require("@radix-ui/react-switch"), 1);
|
|
1771
|
-
var
|
|
2450
|
+
var import_react33 = require("react");
|
|
1772
2451
|
|
|
1773
2452
|
// src/components/Switch/Switch.css.ts
|
|
1774
2453
|
var import_createRuntimeFn20 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1778,12 +2457,12 @@ var thumb2 = /* @__PURE__ */ (0, import_createRuntimeFn20.createRuntimeFn)({ def
|
|
|
1778
2457
|
var track3 = /* @__PURE__ */ (0, import_createRuntimeFn20.createRuntimeFn)({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1779
2458
|
|
|
1780
2459
|
// src/components/Switch/Switch.tsx
|
|
1781
|
-
var
|
|
1782
|
-
var Switch = /* @__PURE__ */ (0,
|
|
1783
|
-
const generatedId = (0,
|
|
2460
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2461
|
+
var Switch = /* @__PURE__ */ (0, import_react33.forwardRef)(function Switch2({ label: label6, size, id, className, disabled, "aria-label": ariaLabel, ...rest }, ref) {
|
|
2462
|
+
const generatedId = (0, import_react33.useId)();
|
|
1784
2463
|
const switchId = id ?? generatedId;
|
|
1785
|
-
return /* @__PURE__ */ (0,
|
|
1786
|
-
/* @__PURE__ */ (0,
|
|
2464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("span", { className: cx(root8({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
2465
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1787
2466
|
RadixSwitch.Root,
|
|
1788
2467
|
{
|
|
1789
2468
|
ref,
|
|
@@ -1792,16 +2471,16 @@ var Switch = /* @__PURE__ */ (0, import_react26.forwardRef)(function Switch2({ l
|
|
|
1792
2471
|
"aria-label": ariaLabel,
|
|
1793
2472
|
className: track3({ size }),
|
|
1794
2473
|
...rest,
|
|
1795
|
-
children: /* @__PURE__ */ (0,
|
|
2474
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RadixSwitch.Thumb, { className: thumb2({ size }) })
|
|
1796
2475
|
}
|
|
1797
2476
|
),
|
|
1798
|
-
label6 && /* @__PURE__ */ (0,
|
|
2477
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("label", { htmlFor: switchId, className: label5, children: label6 })
|
|
1799
2478
|
] });
|
|
1800
2479
|
});
|
|
1801
2480
|
|
|
1802
2481
|
// src/components/Table/Table.tsx
|
|
1803
|
-
var
|
|
1804
|
-
var
|
|
2482
|
+
var import_react34 = require("react");
|
|
2483
|
+
var import_icons14 = require("@bestow-ui/icons");
|
|
1805
2484
|
|
|
1806
2485
|
// src/components/Table/Table.css.ts
|
|
1807
2486
|
var import_createRuntimeFn21 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1813,7 +2492,7 @@ var footer4 = "l3ploy7";
|
|
|
1813
2492
|
var footerCell = "l3ployg";
|
|
1814
2493
|
var head = "l3ployf";
|
|
1815
2494
|
var header8 = "l3ploy3";
|
|
1816
|
-
var
|
|
2495
|
+
var row3 = "l3ploy8";
|
|
1817
2496
|
var sortButton = "l3ployh";
|
|
1818
2497
|
var sortIcon = "l3ployi";
|
|
1819
2498
|
var stickyHeader = "l3ploy4";
|
|
@@ -1821,10 +2500,10 @@ var striped = "l3ploy6";
|
|
|
1821
2500
|
var table = "l3ploy1";
|
|
1822
2501
|
|
|
1823
2502
|
// src/components/Table/Table.tsx
|
|
1824
|
-
var
|
|
1825
|
-
var TableSizeContext = /* @__PURE__ */ (0,
|
|
1826
|
-
var TableSectionContext = /* @__PURE__ */ (0,
|
|
1827
|
-
var Table = /* @__PURE__ */ (0,
|
|
2503
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2504
|
+
var TableSizeContext = /* @__PURE__ */ (0, import_react34.createContext)("md");
|
|
2505
|
+
var TableSectionContext = /* @__PURE__ */ (0, import_react34.createContext)("body");
|
|
2506
|
+
var Table = /* @__PURE__ */ (0, import_react34.forwardRef)(function Table2({
|
|
1828
2507
|
size = "md",
|
|
1829
2508
|
striped: striped2,
|
|
1830
2509
|
stickyHeader: stickyHeader2,
|
|
@@ -1836,8 +2515,8 @@ var Table = /* @__PURE__ */ (0, import_react27.forwardRef)(function Table2({
|
|
|
1836
2515
|
children,
|
|
1837
2516
|
...rest
|
|
1838
2517
|
}, ref) {
|
|
1839
|
-
const captionId = (0,
|
|
1840
|
-
return /* @__PURE__ */ (0,
|
|
2518
|
+
const captionId = (0, import_react34.useId)();
|
|
2519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1841
2520
|
"div",
|
|
1842
2521
|
{
|
|
1843
2522
|
className: cx(container, containerClassName),
|
|
@@ -1846,7 +2525,7 @@ var Table = /* @__PURE__ */ (0, import_react27.forwardRef)(function Table2({
|
|
|
1846
2525
|
role: "region",
|
|
1847
2526
|
"aria-labelledby": caption2 ? captionId : void 0,
|
|
1848
2527
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
1849
|
-
children: /* @__PURE__ */ (0,
|
|
2528
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
1850
2529
|
"table",
|
|
1851
2530
|
{
|
|
1852
2531
|
ref,
|
|
@@ -1854,7 +2533,7 @@ var Table = /* @__PURE__ */ (0, import_react27.forwardRef)(function Table2({
|
|
|
1854
2533
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
1855
2534
|
...rest,
|
|
1856
2535
|
children: [
|
|
1857
|
-
caption2 && /* @__PURE__ */ (0,
|
|
2536
|
+
caption2 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("caption", { id: captionId, className: caption, children: caption2 }),
|
|
1858
2537
|
children
|
|
1859
2538
|
]
|
|
1860
2539
|
}
|
|
@@ -1862,31 +2541,31 @@ var Table = /* @__PURE__ */ (0, import_react27.forwardRef)(function Table2({
|
|
|
1862
2541
|
}
|
|
1863
2542
|
) });
|
|
1864
2543
|
});
|
|
1865
|
-
var TableHeader = /* @__PURE__ */ (0,
|
|
2544
|
+
var TableHeader = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
1866
2545
|
function TableHeader2({ className, ...rest }, ref) {
|
|
1867
|
-
return /* @__PURE__ */ (0,
|
|
2546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("thead", { ref, className: cx(header8, className), ...rest }) });
|
|
1868
2547
|
}
|
|
1869
2548
|
);
|
|
1870
|
-
var TableBody = /* @__PURE__ */ (0,
|
|
2549
|
+
var TableBody = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
1871
2550
|
function TableBody2({ className, ...rest }, ref) {
|
|
1872
|
-
return /* @__PURE__ */ (0,
|
|
2551
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("tbody", { ref, className: cx(body4, className), ...rest }) });
|
|
1873
2552
|
}
|
|
1874
2553
|
);
|
|
1875
|
-
var TableFooter = /* @__PURE__ */ (0,
|
|
2554
|
+
var TableFooter = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
1876
2555
|
function TableFooter2({ className, ...rest }, ref) {
|
|
1877
|
-
return /* @__PURE__ */ (0,
|
|
2556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("tfoot", { ref, className: cx(footer4, className), ...rest }) });
|
|
1878
2557
|
}
|
|
1879
2558
|
);
|
|
1880
|
-
var TableRow = /* @__PURE__ */ (0,
|
|
1881
|
-
return /* @__PURE__ */ (0,
|
|
2559
|
+
var TableRow = /* @__PURE__ */ (0, import_react34.forwardRef)(function TableRow2({ selected, className, ...rest }, ref) {
|
|
2560
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("tr", { ref, className: cx(row3, className), "data-state": selected ? "selected" : void 0, ...rest });
|
|
1882
2561
|
});
|
|
1883
|
-
var TableHead = /* @__PURE__ */ (0,
|
|
1884
|
-
const size = (0,
|
|
1885
|
-
const section = (0,
|
|
2562
|
+
var TableHead = /* @__PURE__ */ (0, import_react34.forwardRef)(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
|
|
2563
|
+
const size = (0, import_react34.useContext)(TableSizeContext);
|
|
2564
|
+
const section = (0, import_react34.useContext)(TableSectionContext);
|
|
1886
2565
|
const sortable = onSort !== void 0;
|
|
1887
2566
|
const direction = sortDirection ?? "none";
|
|
1888
|
-
const SortIcon = direction === "descending" ?
|
|
1889
|
-
return /* @__PURE__ */ (0,
|
|
2567
|
+
const SortIcon = direction === "descending" ? import_icons14.ArrowDownIcon : import_icons14.ArrowUpIcon;
|
|
2568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1890
2569
|
"th",
|
|
1891
2570
|
{
|
|
1892
2571
|
ref,
|
|
@@ -1898,17 +2577,17 @@ var TableHead = /* @__PURE__ */ (0, import_react27.forwardRef)(function TableHea
|
|
|
1898
2577
|
className
|
|
1899
2578
|
),
|
|
1900
2579
|
...rest,
|
|
1901
|
-
children: sortable ? /* @__PURE__ */ (0,
|
|
2580
|
+
children: sortable ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("button", { type: "button", className: sortButton, onClick: onSort, children: [
|
|
1902
2581
|
children,
|
|
1903
|
-
/* @__PURE__ */ (0,
|
|
2582
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
|
|
1904
2583
|
] }) : children
|
|
1905
2584
|
}
|
|
1906
2585
|
);
|
|
1907
2586
|
});
|
|
1908
|
-
var TableCell = /* @__PURE__ */ (0,
|
|
1909
|
-
const size = (0,
|
|
1910
|
-
const section = (0,
|
|
1911
|
-
return /* @__PURE__ */ (0,
|
|
2587
|
+
var TableCell = /* @__PURE__ */ (0, import_react34.forwardRef)(function TableCell2({ align, className, ...rest }, ref) {
|
|
2588
|
+
const size = (0, import_react34.useContext)(TableSizeContext);
|
|
2589
|
+
const section = (0, import_react34.useContext)(TableSectionContext);
|
|
2590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1912
2591
|
"td",
|
|
1913
2592
|
{
|
|
1914
2593
|
ref,
|
|
@@ -1920,35 +2599,35 @@ var TableCell = /* @__PURE__ */ (0, import_react27.forwardRef)(function TableCel
|
|
|
1920
2599
|
|
|
1921
2600
|
// src/components/Tabs/Tabs.tsx
|
|
1922
2601
|
var RadixTabs = __toESM(require("@radix-ui/react-tabs"), 1);
|
|
1923
|
-
var
|
|
2602
|
+
var import_react35 = require("react");
|
|
1924
2603
|
|
|
1925
2604
|
// src/components/Tabs/Tabs.css.ts
|
|
1926
2605
|
var import_createRuntimeFn22 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
1927
|
-
var
|
|
1928
|
-
var
|
|
2606
|
+
var content10 = "fvhbtda";
|
|
2607
|
+
var list4 = /* @__PURE__ */ (0, import_createRuntimeFn22.createRuntimeFn)({ defaultClassName: "fvhbtd0", variantClassNames: { variant: { line: "fvhbtd1", soft: "fvhbtd2" } }, defaultVariants: { variant: "line" }, compoundVariants: [] });
|
|
1929
2608
|
var trigger3 = /* @__PURE__ */ (0, import_createRuntimeFn22.createRuntimeFn)({ defaultClassName: "fvhbtd3", variantClassNames: { variant: { line: "fvhbtd4", soft: "fvhbtd5" }, size: { sm: "fvhbtd6", md: "fvhbtd7" } }, defaultVariants: { variant: "line", size: "md" }, compoundVariants: [[{ variant: "soft", size: "sm" }, "fvhbtd8"], [{ variant: "soft", size: "md" }, "fvhbtd9"]] });
|
|
1930
2609
|
|
|
1931
2610
|
// src/components/Tabs/Tabs.tsx
|
|
1932
|
-
var
|
|
1933
|
-
var TabsStyleContext = /* @__PURE__ */ (0,
|
|
1934
|
-
var Tabs = /* @__PURE__ */ (0,
|
|
2611
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2612
|
+
var TabsStyleContext = /* @__PURE__ */ (0, import_react35.createContext)({ variant: "line", size: "md" });
|
|
2613
|
+
var Tabs = /* @__PURE__ */ (0, import_react35.forwardRef)(function Tabs2({ variant = "line", size = "md", ...props }, ref) {
|
|
1935
2614
|
const controlled = "value" in props ? { value: props.value ?? "" } : {};
|
|
1936
|
-
return /* @__PURE__ */ (0,
|
|
2615
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadixTabs.Root, { ref, ...props, ...controlled }) });
|
|
1937
2616
|
});
|
|
1938
|
-
var TabsList = /* @__PURE__ */ (0,
|
|
1939
|
-
const { variant } = (0,
|
|
1940
|
-
return /* @__PURE__ */ (0,
|
|
2617
|
+
var TabsList = /* @__PURE__ */ (0, import_react35.forwardRef)(function TabsList2({ className, ...rest }, ref) {
|
|
2618
|
+
const { variant } = (0, import_react35.useContext)(TabsStyleContext);
|
|
2619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadixTabs.List, { ref, className: cx(list4({ variant }), className), ...rest });
|
|
1941
2620
|
});
|
|
1942
|
-
var TabsTrigger = /* @__PURE__ */ (0,
|
|
1943
|
-
const { variant, size } = (0,
|
|
1944
|
-
return /* @__PURE__ */ (0,
|
|
2621
|
+
var TabsTrigger = /* @__PURE__ */ (0, import_react35.forwardRef)(function TabsTrigger2({ className, ...rest }, ref) {
|
|
2622
|
+
const { variant, size } = (0, import_react35.useContext)(TabsStyleContext);
|
|
2623
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
|
|
1945
2624
|
});
|
|
1946
|
-
var TabsContent = /* @__PURE__ */ (0,
|
|
1947
|
-
return /* @__PURE__ */ (0,
|
|
2625
|
+
var TabsContent = /* @__PURE__ */ (0, import_react35.forwardRef)(function TabsContent2({ className, ...rest }, ref) {
|
|
2626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadixTabs.Content, { ref, className: cx(content10, className), ...rest });
|
|
1948
2627
|
});
|
|
1949
2628
|
|
|
1950
2629
|
// src/components/Textarea/Textarea.tsx
|
|
1951
|
-
var
|
|
2630
|
+
var import_react36 = require("react");
|
|
1952
2631
|
|
|
1953
2632
|
// src/components/Textarea/Textarea.css.ts
|
|
1954
2633
|
var import_createRuntimeFn23 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1959,9 +2638,9 @@ var footer5 = "_1koawa8";
|
|
|
1959
2638
|
var textarea = /* @__PURE__ */ (0, import_createRuntimeFn23.createRuntimeFn)({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
|
|
1960
2639
|
|
|
1961
2640
|
// src/components/Textarea/Textarea.tsx
|
|
1962
|
-
var
|
|
1963
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ?
|
|
1964
|
-
var Textarea = /* @__PURE__ */ (0,
|
|
2641
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2642
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? import_react36.useLayoutEffect : import_react36.useEffect;
|
|
2643
|
+
var Textarea = /* @__PURE__ */ (0, import_react36.forwardRef)(function Textarea2({
|
|
1965
2644
|
label: label6,
|
|
1966
2645
|
helperText: helperText3,
|
|
1967
2646
|
error,
|
|
@@ -1982,13 +2661,13 @@ var Textarea = /* @__PURE__ */ (0, import_react29.forwardRef)(function Textarea2
|
|
|
1982
2661
|
"aria-describedby": ariaDescribedBy,
|
|
1983
2662
|
...rest
|
|
1984
2663
|
}, ref) {
|
|
1985
|
-
const generatedId = (0,
|
|
2664
|
+
const generatedId = (0, import_react36.useId)();
|
|
1986
2665
|
const textareaId = id ?? generatedId;
|
|
1987
2666
|
const helperId = helperText3 ? `${textareaId}-helper` : void 0;
|
|
1988
|
-
const innerRef = (0,
|
|
1989
|
-
const [uncontrolledLength, setUncontrolledLength] = (0,
|
|
2667
|
+
const innerRef = (0, import_react36.useRef)(null);
|
|
2668
|
+
const [uncontrolledLength, setUncontrolledLength] = (0, import_react36.useState)(() => String(defaultValue ?? "").length);
|
|
1990
2669
|
const length = value4 !== void 0 ? String(value4).length : uncontrolledLength;
|
|
1991
|
-
const fitHeight = (0,
|
|
2670
|
+
const fitHeight = (0, import_react36.useCallback)(() => {
|
|
1992
2671
|
const el = innerRef.current;
|
|
1993
2672
|
if (!autoResize || !el) return;
|
|
1994
2673
|
el.style.height = "auto";
|
|
@@ -2001,12 +2680,12 @@ var Textarea = /* @__PURE__ */ (0, import_react29.forwardRef)(function Textarea2
|
|
|
2001
2680
|
fitHeight();
|
|
2002
2681
|
onChange?.(event);
|
|
2003
2682
|
};
|
|
2004
|
-
return /* @__PURE__ */ (0,
|
|
2005
|
-
label6 && /* @__PURE__ */ (0,
|
|
2683
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
2684
|
+
label6 && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("label", { htmlFor: textareaId, className: label, children: [
|
|
2006
2685
|
label6,
|
|
2007
|
-
required && /* @__PURE__ */ (0,
|
|
2686
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2008
2687
|
] }),
|
|
2009
|
-
/* @__PURE__ */ (0,
|
|
2688
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2010
2689
|
"textarea",
|
|
2011
2690
|
{
|
|
2012
2691
|
ref: mergeRefs(innerRef, ref),
|
|
@@ -2028,17 +2707,17 @@ var Textarea = /* @__PURE__ */ (0, import_react29.forwardRef)(function Textarea2
|
|
|
2028
2707
|
...rest
|
|
2029
2708
|
}
|
|
2030
2709
|
),
|
|
2031
|
-
(helperText3 || showCount) && /* @__PURE__ */ (0,
|
|
2032
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
2033
|
-
showCount && /* @__PURE__ */ (0,
|
|
2710
|
+
(helperText3 || showCount) && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: footer5, children: [
|
|
2711
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
2712
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
|
|
2034
2713
|
] })
|
|
2035
2714
|
] });
|
|
2036
2715
|
});
|
|
2037
2716
|
|
|
2038
2717
|
// src/components/Toast/Toast.tsx
|
|
2039
2718
|
var RadixToast = __toESM(require("@radix-ui/react-toast"), 1);
|
|
2040
|
-
var
|
|
2041
|
-
var
|
|
2719
|
+
var import_react37 = require("react");
|
|
2720
|
+
var import_icons15 = require("@bestow-ui/icons");
|
|
2042
2721
|
|
|
2043
2722
|
// src/components/Toast/Toast.css.ts
|
|
2044
2723
|
var import_createRuntimeFn24 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -2050,27 +2729,27 @@ var toast = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defa
|
|
|
2050
2729
|
var viewport2 = "_1g11zvx0";
|
|
2051
2730
|
|
|
2052
2731
|
// src/components/Toast/Toast.tsx
|
|
2053
|
-
var
|
|
2732
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2054
2733
|
var REMOVE_DELAY = 500;
|
|
2055
|
-
var ToastContext = /* @__PURE__ */ (0,
|
|
2734
|
+
var ToastContext = /* @__PURE__ */ (0, import_react37.createContext)(null);
|
|
2056
2735
|
function ToastProvider({ children, duration = 5e3, label: label6 = "\uC54C\uB9BC" }) {
|
|
2057
|
-
const [toasts, setToasts] = (0,
|
|
2058
|
-
const nextId = (0,
|
|
2736
|
+
const [toasts, setToasts] = (0, import_react37.useState)([]);
|
|
2737
|
+
const nextId = (0, import_react37.useRef)(0);
|
|
2059
2738
|
const portal2 = usePortalProps();
|
|
2060
|
-
const toast2 = (0,
|
|
2739
|
+
const toast2 = (0, import_react37.useCallback)((options) => {
|
|
2061
2740
|
const id = nextId.current++;
|
|
2062
2741
|
setToasts((prev) => [...prev, { ...options, id, open: true }]);
|
|
2063
2742
|
return id;
|
|
2064
2743
|
}, []);
|
|
2065
|
-
const dismiss = (0,
|
|
2744
|
+
const dismiss = (0, import_react37.useCallback)((id) => {
|
|
2066
2745
|
const isTarget = (t) => id === void 0 || t.id === id;
|
|
2067
2746
|
setToasts((prev) => prev.map((t) => isTarget(t) ? { ...t, open: false } : t));
|
|
2068
2747
|
setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
|
|
2069
2748
|
}, []);
|
|
2070
|
-
const value4 = (0,
|
|
2071
|
-
return /* @__PURE__ */ (0,
|
|
2749
|
+
const value4 = (0, import_react37.useMemo)(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
|
|
2750
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ToastContext.Provider, { value: value4, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
|
|
2072
2751
|
children,
|
|
2073
|
-
toasts.map(({ id, open, title: title6, description: description6, variant, duration: itemDuration, action: action3 }) => /* @__PURE__ */ (0,
|
|
2752
|
+
toasts.map(({ id, open, title: title6, description: description6, variant, duration: itemDuration, action: action3 }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
2074
2753
|
RadixToast.Root,
|
|
2075
2754
|
{
|
|
2076
2755
|
open,
|
|
@@ -2080,19 +2759,19 @@ function ToastProvider({ children, duration = 5e3, label: label6 = "\uC54C\uB9BC
|
|
|
2080
2759
|
},
|
|
2081
2760
|
className: toast({ variant }),
|
|
2082
2761
|
children: [
|
|
2083
|
-
/* @__PURE__ */ (0,
|
|
2084
|
-
description6 && /* @__PURE__ */ (0,
|
|
2085
|
-
action3 && /* @__PURE__ */ (0,
|
|
2086
|
-
/* @__PURE__ */ (0,
|
|
2762
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadixToast.Title, { className: title5, children: title6 }),
|
|
2763
|
+
description6 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadixToast.Description, { className: description5, children: description6 }),
|
|
2764
|
+
action3 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
|
|
2765
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadixToast.Close, { className: close, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_icons15.XIcon, { size: 16 }) })
|
|
2087
2766
|
]
|
|
2088
2767
|
},
|
|
2089
2768
|
id
|
|
2090
2769
|
)),
|
|
2091
|
-
/* @__PURE__ */ (0,
|
|
2770
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
|
|
2092
2771
|
] }) });
|
|
2093
2772
|
}
|
|
2094
2773
|
function useToast() {
|
|
2095
|
-
const context = (0,
|
|
2774
|
+
const context = (0, import_react37.useContext)(ToastContext);
|
|
2096
2775
|
if (!context) throw new Error("useToast \uB294 ToastProvider \uC548\uC5D0\uC11C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
2097
2776
|
return context;
|
|
2098
2777
|
}
|
|
@@ -2102,12 +2781,12 @@ var RadixTooltip = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
|
2102
2781
|
|
|
2103
2782
|
// src/components/Tooltip/Tooltip.css.ts
|
|
2104
2783
|
var arrow2 = "z7rufs1";
|
|
2105
|
-
var
|
|
2784
|
+
var content11 = "z7rufs0";
|
|
2106
2785
|
|
|
2107
2786
|
// src/components/Tooltip/Tooltip.tsx
|
|
2108
|
-
var
|
|
2787
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2109
2788
|
function Tooltip({
|
|
2110
|
-
content:
|
|
2789
|
+
content: content12,
|
|
2111
2790
|
children,
|
|
2112
2791
|
side = "top",
|
|
2113
2792
|
align = "center",
|
|
@@ -2119,21 +2798,21 @@ function Tooltip({
|
|
|
2119
2798
|
className
|
|
2120
2799
|
}) {
|
|
2121
2800
|
const portal2 = usePortalProps();
|
|
2122
|
-
if (disabled ||
|
|
2123
|
-
return /* @__PURE__ */ (0,
|
|
2124
|
-
/* @__PURE__ */ (0,
|
|
2125
|
-
/* @__PURE__ */ (0,
|
|
2801
|
+
if (disabled || content12 == null || content12 === "") return children;
|
|
2802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
2803
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RadixTooltip.Trigger, { asChild: true, children }),
|
|
2804
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RadixTooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
2126
2805
|
RadixTooltip.Content,
|
|
2127
2806
|
{
|
|
2128
2807
|
side,
|
|
2129
2808
|
align,
|
|
2130
2809
|
sideOffset: 6,
|
|
2131
2810
|
collisionPadding: 8,
|
|
2132
|
-
className: cx(portal2.className,
|
|
2811
|
+
className: cx(portal2.className, content11, className),
|
|
2133
2812
|
style: portal2.style,
|
|
2134
2813
|
children: [
|
|
2135
|
-
|
|
2136
|
-
/* @__PURE__ */ (0,
|
|
2814
|
+
content12,
|
|
2815
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
|
|
2137
2816
|
]
|
|
2138
2817
|
}
|
|
2139
2818
|
) })
|
|
@@ -2141,14 +2820,14 @@ function Tooltip({
|
|
|
2141
2820
|
}
|
|
2142
2821
|
|
|
2143
2822
|
// src/components/Typography/Typography.tsx
|
|
2144
|
-
var
|
|
2823
|
+
var import_react38 = require("react");
|
|
2145
2824
|
|
|
2146
2825
|
// src/components/Typography/Typography.css.ts
|
|
2147
2826
|
var import_createRuntimeFn25 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
2148
2827
|
var typography = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "kiolio0", variantClassNames: { variant: { display: "kiolio1", h1: "kiolio2", h2: "kiolio3", h3: "kiolio4", h4: "kiolio5", "body-lg": "kiolio6", body: "kiolio7", "body-sm": "kiolio8", caption: "kiolio9" }, color: { "default": "kiolioa", muted: "kioliob", subtle: "kiolioc", primary: "kioliod", danger: "kiolioe", success: "kioliof", warning: "kioliog", inherit: "kiolioh" }, weight: { regular: "kiolioi", medium: "kiolioj", semibold: "kioliok", bold: "kioliol" }, align: { start: "kioliom", center: "kiolion", end: "kiolioo" }, truncate: { true: "kioliop" } }, defaultVariants: { variant: "body", color: "default" }, compoundVariants: [] });
|
|
2149
2828
|
|
|
2150
2829
|
// src/components/Typography/Typography.tsx
|
|
2151
|
-
var
|
|
2830
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2152
2831
|
var defaultElement = {
|
|
2153
2832
|
display: "h1",
|
|
2154
2833
|
h1: "h1",
|
|
@@ -2160,9 +2839,9 @@ var defaultElement = {
|
|
|
2160
2839
|
"body-sm": "p",
|
|
2161
2840
|
caption: "span"
|
|
2162
2841
|
};
|
|
2163
|
-
var Typography = /* @__PURE__ */ (0,
|
|
2842
|
+
var Typography = /* @__PURE__ */ (0, import_react38.forwardRef)(function Typography2({ variant = "body", as, color, weight, align, truncate, className, ...rest }, ref) {
|
|
2164
2843
|
const Component = as ?? defaultElement[variant];
|
|
2165
|
-
return /* @__PURE__ */ (0,
|
|
2844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2166
2845
|
Component,
|
|
2167
2846
|
{
|
|
2168
2847
|
ref,
|
|
@@ -2171,14 +2850,158 @@ var Typography = /* @__PURE__ */ (0, import_react31.forwardRef)(function Typogra
|
|
|
2171
2850
|
}
|
|
2172
2851
|
);
|
|
2173
2852
|
});
|
|
2853
|
+
|
|
2854
|
+
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
2855
|
+
var import_react39 = require("react");
|
|
2856
|
+
|
|
2857
|
+
// src/components/VerificationCodeInput/VerificationCodeInput.css.ts
|
|
2858
|
+
var input4 = "ea01812";
|
|
2859
|
+
var row4 = "ea01810";
|
|
2860
|
+
var slot = "ea01813";
|
|
2861
|
+
var slots = "ea01811";
|
|
2862
|
+
var timer = "ea01814";
|
|
2863
|
+
|
|
2864
|
+
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
2865
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2866
|
+
var formatTime = (seconds) => `${String(Math.floor(seconds / 60)).padStart(2, "0")}:${String(seconds % 60).padStart(2, "0")}`;
|
|
2867
|
+
var VerificationCodeInput = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
2868
|
+
function VerificationCodeInput2(props, ref) {
|
|
2869
|
+
const {
|
|
2870
|
+
length = 6,
|
|
2871
|
+
value: value4,
|
|
2872
|
+
defaultValue,
|
|
2873
|
+
onValueChange,
|
|
2874
|
+
onComplete,
|
|
2875
|
+
type = "numeric",
|
|
2876
|
+
label: label6 = "\uC778\uC99D\uBC88\uD638",
|
|
2877
|
+
helperText: helperText3,
|
|
2878
|
+
error,
|
|
2879
|
+
disabled,
|
|
2880
|
+
autoFocus,
|
|
2881
|
+
expiresIn,
|
|
2882
|
+
onExpire,
|
|
2883
|
+
onResend,
|
|
2884
|
+
resendText = "\uC7AC\uC804\uC1A1",
|
|
2885
|
+
expiredText = "\uC778\uC99D \uC2DC\uAC04\uC774 \uC9C0\uB0AC\uC5B4\uC694. \uC7AC\uC804\uC1A1\uD574 \uC8FC\uC138\uC694.",
|
|
2886
|
+
name,
|
|
2887
|
+
id,
|
|
2888
|
+
className
|
|
2889
|
+
} = props;
|
|
2890
|
+
const generatedId = (0, import_react39.useId)();
|
|
2891
|
+
const inputId = id ?? generatedId;
|
|
2892
|
+
const helperId = `${inputId}-helper`;
|
|
2893
|
+
const statusId = `${inputId}-status`;
|
|
2894
|
+
const inputRef = (0, import_react39.useRef)(null);
|
|
2895
|
+
const isControlled = "value" in props;
|
|
2896
|
+
const [innerValue, setInnerValue] = (0, import_react39.useState)(defaultValue ?? "");
|
|
2897
|
+
const code = (isControlled ? value4 ?? "" : innerValue).slice(0, length);
|
|
2898
|
+
const [focused, setFocused] = (0, import_react39.useState)(false);
|
|
2899
|
+
const [endAt, setEndAt] = (0, import_react39.useState)(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
|
|
2900
|
+
const [remaining, setRemaining] = (0, import_react39.useState)(expiresIn ?? 0);
|
|
2901
|
+
const expired = expiresIn !== void 0 && remaining <= 0;
|
|
2902
|
+
const onExpireRef = (0, import_react39.useRef)(onExpire);
|
|
2903
|
+
(0, import_react39.useEffect)(() => {
|
|
2904
|
+
onExpireRef.current = onExpire;
|
|
2905
|
+
});
|
|
2906
|
+
(0, import_react39.useEffect)(() => {
|
|
2907
|
+
if (endAt === null) return;
|
|
2908
|
+
const tick = () => {
|
|
2909
|
+
const left = Math.max(0, Math.ceil((endAt - Date.now()) / 1e3));
|
|
2910
|
+
setRemaining(left);
|
|
2911
|
+
if (left === 0) {
|
|
2912
|
+
clearInterval(timer2);
|
|
2913
|
+
onExpireRef.current?.();
|
|
2914
|
+
}
|
|
2915
|
+
};
|
|
2916
|
+
const timer2 = setInterval(tick, 250);
|
|
2917
|
+
tick();
|
|
2918
|
+
return () => clearInterval(timer2);
|
|
2919
|
+
}, [endAt]);
|
|
2920
|
+
const setCode = (next) => {
|
|
2921
|
+
if (!isControlled) setInnerValue(next);
|
|
2922
|
+
onValueChange?.(next);
|
|
2923
|
+
if (next.length === length && code.length !== length) onComplete?.(next);
|
|
2924
|
+
};
|
|
2925
|
+
const handleChange = (event) => {
|
|
2926
|
+
const raw = event.target.value;
|
|
2927
|
+
const cleaned = (type === "numeric" ? raw.replace(/\D/g, "") : raw.replace(/[^0-9a-z]/gi, "").toUpperCase()).slice(0, length);
|
|
2928
|
+
setCode(cleaned);
|
|
2929
|
+
};
|
|
2930
|
+
const resend = () => {
|
|
2931
|
+
onResend?.();
|
|
2932
|
+
setCode("");
|
|
2933
|
+
if (expiresIn) {
|
|
2934
|
+
setEndAt(Date.now() + expiresIn * 1e3);
|
|
2935
|
+
setRemaining(expiresIn);
|
|
2936
|
+
}
|
|
2937
|
+
inputRef.current?.focus();
|
|
2938
|
+
};
|
|
2939
|
+
const description6 = helperText3 ?? `${length}\uC790\uB9AC ${type === "numeric" ? "\uC22B\uC790" : "\uBB38\uC790"}\uB97C \uC785\uB825\uD558\uC138\uC694.`;
|
|
2940
|
+
const activeIndex = Math.min(code.length, length - 1);
|
|
2941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
2942
|
+
"div",
|
|
2943
|
+
{
|
|
2944
|
+
className: cx(field, className),
|
|
2945
|
+
"data-invalid": error || void 0,
|
|
2946
|
+
"data-disabled": disabled || void 0,
|
|
2947
|
+
children: [
|
|
2948
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("label", { htmlFor: inputId, className: label, children: label6 }),
|
|
2949
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: row4, children: [
|
|
2950
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: slots, children: [
|
|
2951
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2952
|
+
"input",
|
|
2953
|
+
{
|
|
2954
|
+
ref: mergeRefs(ref, inputRef),
|
|
2955
|
+
id: inputId,
|
|
2956
|
+
type: "text",
|
|
2957
|
+
inputMode: type === "numeric" ? "numeric" : "text",
|
|
2958
|
+
autoComplete: "one-time-code",
|
|
2959
|
+
pattern: type === "numeric" ? "[0-9]*" : void 0,
|
|
2960
|
+
value: code,
|
|
2961
|
+
onChange: handleChange,
|
|
2962
|
+
onFocus: () => setFocused(true),
|
|
2963
|
+
onBlur: () => setFocused(false),
|
|
2964
|
+
disabled,
|
|
2965
|
+
autoFocus,
|
|
2966
|
+
"aria-invalid": error || void 0,
|
|
2967
|
+
"aria-describedby": `${helperId} ${statusId}`,
|
|
2968
|
+
className: input4
|
|
2969
|
+
}
|
|
2970
|
+
),
|
|
2971
|
+
Array.from({ length }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2972
|
+
"div",
|
|
2973
|
+
{
|
|
2974
|
+
className: slot,
|
|
2975
|
+
"data-active": focused && index === activeIndex ? "" : void 0,
|
|
2976
|
+
"aria-hidden": true,
|
|
2977
|
+
children: code[index] ?? ""
|
|
2978
|
+
},
|
|
2979
|
+
index
|
|
2980
|
+
))
|
|
2981
|
+
] }),
|
|
2982
|
+
expiresIn !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { role: "timer", className: timer, children: formatTime(remaining) }),
|
|
2983
|
+
onResend && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button, { size: "sm", variant: "outline", color: "neutral", onClick: resend, disabled, children: resendText })
|
|
2984
|
+
] }),
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { id: helperId, className: helperText({ error }), children: description6 }),
|
|
2986
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { id: statusId, role: "status", className: helperText({ error: true }), children: expired ? expiredText : "" }),
|
|
2987
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("input", { type: "hidden", name, value: code })
|
|
2988
|
+
]
|
|
2989
|
+
}
|
|
2990
|
+
);
|
|
2991
|
+
}
|
|
2992
|
+
);
|
|
2174
2993
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2175
2994
|
0 && (module.exports = {
|
|
2176
2995
|
Accordion,
|
|
2177
2996
|
AccordionItem,
|
|
2997
|
+
AddressInput,
|
|
2998
|
+
AgreementGroup,
|
|
2178
2999
|
Alert,
|
|
3000
|
+
AmountInput,
|
|
2179
3001
|
Avatar,
|
|
2180
3002
|
Badge,
|
|
2181
3003
|
Breadcrumb,
|
|
3004
|
+
BusinessNumberInput,
|
|
2182
3005
|
Button,
|
|
2183
3006
|
Card,
|
|
2184
3007
|
CardBody,
|
|
@@ -2202,6 +3025,7 @@ var Typography = /* @__PURE__ */ (0, import_react31.forwardRef)(function Typogra
|
|
|
2202
3025
|
Modal,
|
|
2203
3026
|
ModalClose,
|
|
2204
3027
|
Pagination,
|
|
3028
|
+
PhoneNumberInput,
|
|
2205
3029
|
Popover,
|
|
2206
3030
|
PopoverClose,
|
|
2207
3031
|
Progress,
|
|
@@ -2229,9 +3053,17 @@ var Typography = /* @__PURE__ */ (0, import_react31.forwardRef)(function Typogra
|
|
|
2229
3053
|
ToastProvider,
|
|
2230
3054
|
Tooltip,
|
|
2231
3055
|
Typography,
|
|
3056
|
+
VerificationCodeInput,
|
|
3057
|
+
composeExtraAddress,
|
|
2232
3058
|
contrastRatio,
|
|
2233
3059
|
createIntentColors,
|
|
2234
3060
|
createTheme,
|
|
3061
|
+
formatBusinessNumber,
|
|
3062
|
+
formatKoreanAmount,
|
|
3063
|
+
formatPhoneNumber,
|
|
3064
|
+
hasAllRequiredAgreements,
|
|
3065
|
+
isValidBusinessNumber,
|
|
3066
|
+
kakaoPostcodeProvider,
|
|
2235
3067
|
themeClass,
|
|
2236
3068
|
usePortalClassName,
|
|
2237
3069
|
usePortalProps,
|