@ceed/ads 1.16.0-next.8 → 1.16.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/dist/components/FilterMenu/types.d.ts +1 -9
- package/dist/components/Pagination/Pagination.d.ts +0 -1
- package/dist/components/ProfileMenu/ProfileMenu.d.ts +1 -1
- package/dist/components/inputs/FilterMenu.md +0 -20
- package/dist/components/inputs/FilterableCheckboxGroup.md +15 -2
- package/dist/components/navigation/Pagination.md +2 -11
- package/dist/index.cjs +449 -546
- package/dist/index.js +224 -321
- package/framer/index.js +42 -42
- package/package.json +2 -3
- package/dist/components/FilterMenu/components/FilterableCheckboxGroup.d.ts +0 -11
package/dist/index.js
CHANGED
|
@@ -3456,10 +3456,8 @@ TableBody.displayName = "TableBody";
|
|
|
3456
3456
|
|
|
3457
3457
|
// src/components/Pagination/Pagination.tsx
|
|
3458
3458
|
import React24, { useCallback as useCallback10, useEffect as useEffect6 } from "react";
|
|
3459
|
-
import PreviousIcon from "@mui/icons-material/
|
|
3460
|
-
import NextIcon from "@mui/icons-material/
|
|
3461
|
-
import FirstPageIcon from "@mui/icons-material/FirstPageRounded";
|
|
3462
|
-
import LastPageIcon from "@mui/icons-material/LastPageRounded";
|
|
3459
|
+
import PreviousIcon from "@mui/icons-material/ChevronLeft";
|
|
3460
|
+
import NextIcon from "@mui/icons-material/ChevronRight";
|
|
3463
3461
|
import { styled as styled13 } from "@mui/joy";
|
|
3464
3462
|
var PaginationButton = styled13(Button_default, {
|
|
3465
3463
|
name: "Pagination",
|
|
@@ -3518,7 +3516,6 @@ function Pagination(props) {
|
|
|
3518
3516
|
onPageChange,
|
|
3519
3517
|
rowCount,
|
|
3520
3518
|
size = "md",
|
|
3521
|
-
variant = "standard",
|
|
3522
3519
|
...innerProps
|
|
3523
3520
|
} = props;
|
|
3524
3521
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
@@ -3545,87 +3542,6 @@ function Pagination(props) {
|
|
|
3545
3542
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
3546
3543
|
}
|
|
3547
3544
|
}, [rowCount, paginationModel, lastPage, setPaginationModel]);
|
|
3548
|
-
const pageOptions = Array.from({ length: lastPage }, (_, i) => ({
|
|
3549
|
-
label: `${i + 1}`,
|
|
3550
|
-
value: `${i + 1}`
|
|
3551
|
-
}));
|
|
3552
|
-
if (variant === "compact") {
|
|
3553
|
-
return /* @__PURE__ */ React24.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React24.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React24.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React24.createElement(
|
|
3554
|
-
PaginationIconButton,
|
|
3555
|
-
{
|
|
3556
|
-
size,
|
|
3557
|
-
variant: "plain",
|
|
3558
|
-
color: "neutral",
|
|
3559
|
-
onClick: () => handlePageChange(firstPage),
|
|
3560
|
-
disabled: paginationModel.page === firstPage,
|
|
3561
|
-
"aria-label": "First page"
|
|
3562
|
-
},
|
|
3563
|
-
/* @__PURE__ */ React24.createElement(FirstPageIcon, null)
|
|
3564
|
-
), /* @__PURE__ */ React24.createElement(
|
|
3565
|
-
PaginationIconButton,
|
|
3566
|
-
{
|
|
3567
|
-
size,
|
|
3568
|
-
variant: "plain",
|
|
3569
|
-
color: "neutral",
|
|
3570
|
-
onClick: () => handlePageChange(paginationModel.page - 1),
|
|
3571
|
-
disabled: paginationModel.page === firstPage,
|
|
3572
|
-
"aria-label": "Previous page"
|
|
3573
|
-
},
|
|
3574
|
-
/* @__PURE__ */ React24.createElement(PreviousIcon, null)
|
|
3575
|
-
)), /* @__PURE__ */ React24.createElement(
|
|
3576
|
-
Autocomplete_default,
|
|
3577
|
-
{
|
|
3578
|
-
size,
|
|
3579
|
-
value: `${paginationModel.page}`,
|
|
3580
|
-
onChange: (event) => {
|
|
3581
|
-
if (event.target.value) {
|
|
3582
|
-
handlePageChange(parseInt(event.target.value, 10));
|
|
3583
|
-
}
|
|
3584
|
-
},
|
|
3585
|
-
options: pageOptions,
|
|
3586
|
-
sx: {
|
|
3587
|
-
width: {
|
|
3588
|
-
sm: "80px",
|
|
3589
|
-
md: "100px",
|
|
3590
|
-
lg: "120px"
|
|
3591
|
-
}[size]
|
|
3592
|
-
}
|
|
3593
|
-
}
|
|
3594
|
-
), /* @__PURE__ */ React24.createElement(
|
|
3595
|
-
Typography_default,
|
|
3596
|
-
{
|
|
3597
|
-
level: `body-${size}`,
|
|
3598
|
-
sx: (theme) => ({
|
|
3599
|
-
color: theme.palette.text.secondary,
|
|
3600
|
-
fontWeight: 500
|
|
3601
|
-
})
|
|
3602
|
-
},
|
|
3603
|
-
"/ ",
|
|
3604
|
-
lastPage
|
|
3605
|
-
), /* @__PURE__ */ React24.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React24.createElement(
|
|
3606
|
-
PaginationIconButton,
|
|
3607
|
-
{
|
|
3608
|
-
size,
|
|
3609
|
-
variant: "plain",
|
|
3610
|
-
color: "neutral",
|
|
3611
|
-
onClick: () => handlePageChange(paginationModel.page + 1),
|
|
3612
|
-
disabled: paginationModel.page === lastPage,
|
|
3613
|
-
"aria-label": "Next page"
|
|
3614
|
-
},
|
|
3615
|
-
/* @__PURE__ */ React24.createElement(NextIcon, null)
|
|
3616
|
-
), /* @__PURE__ */ React24.createElement(
|
|
3617
|
-
PaginationIconButton,
|
|
3618
|
-
{
|
|
3619
|
-
size,
|
|
3620
|
-
variant: "plain",
|
|
3621
|
-
color: "neutral",
|
|
3622
|
-
onClick: () => handlePageChange(lastPage),
|
|
3623
|
-
disabled: paginationModel.page === lastPage,
|
|
3624
|
-
"aria-label": "Last page"
|
|
3625
|
-
},
|
|
3626
|
-
/* @__PURE__ */ React24.createElement(LastPageIcon, null)
|
|
3627
|
-
))));
|
|
3628
|
-
}
|
|
3629
3545
|
return /* @__PURE__ */ React24.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React24.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React24.createElement(
|
|
3630
3546
|
PaginationIconButton,
|
|
3631
3547
|
{
|
|
@@ -4495,9 +4411,39 @@ var InsetDrawer = styled19(JoyDrawer)(({ theme }) => ({
|
|
|
4495
4411
|
|
|
4496
4412
|
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
4497
4413
|
import React30, { useCallback as useCallback13, useEffect as useEffect8, useMemo as useMemo12, useRef as useRef8, useState as useState10 } from "react";
|
|
4498
|
-
import { Input as Input2, Stack as Stack2 } from "@mui/joy";
|
|
4499
4414
|
import SearchIcon from "@mui/icons-material/Search";
|
|
4500
4415
|
import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
|
|
4416
|
+
function LabelWithTooltip(props) {
|
|
4417
|
+
const { label, size } = props;
|
|
4418
|
+
const labelContentRef = useRef8(null);
|
|
4419
|
+
const [isOverflowing, setIsOverflowing] = useState10(false);
|
|
4420
|
+
const labelContent = /* @__PURE__ */ React30.createElement(
|
|
4421
|
+
"span",
|
|
4422
|
+
{
|
|
4423
|
+
ref: labelContentRef,
|
|
4424
|
+
style: {
|
|
4425
|
+
textOverflow: "ellipsis",
|
|
4426
|
+
overflow: "hidden",
|
|
4427
|
+
whiteSpace: "nowrap",
|
|
4428
|
+
display: "block",
|
|
4429
|
+
position: "relative",
|
|
4430
|
+
zIndex: 1,
|
|
4431
|
+
cursor: "pointer"
|
|
4432
|
+
}
|
|
4433
|
+
},
|
|
4434
|
+
label
|
|
4435
|
+
);
|
|
4436
|
+
useEffect8(() => {
|
|
4437
|
+
const element = labelContentRef.current;
|
|
4438
|
+
if (element) {
|
|
4439
|
+
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
4440
|
+
}
|
|
4441
|
+
}, [label]);
|
|
4442
|
+
if (isOverflowing) {
|
|
4443
|
+
return /* @__PURE__ */ React30.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
|
|
4444
|
+
}
|
|
4445
|
+
return labelContent;
|
|
4446
|
+
}
|
|
4501
4447
|
function FilterableCheckboxGroup(props) {
|
|
4502
4448
|
const {
|
|
4503
4449
|
value,
|
|
@@ -4520,6 +4466,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4520
4466
|
);
|
|
4521
4467
|
const parentRef = useRef8(null);
|
|
4522
4468
|
const isInitialSortRef = useRef8(false);
|
|
4469
|
+
const prevOptionsRef = useRef8([...options]);
|
|
4523
4470
|
const filteredOptions = useMemo12(() => {
|
|
4524
4471
|
if (!searchTerm) return sortedOptions;
|
|
4525
4472
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
@@ -4534,16 +4481,6 @@ function FilterableCheckboxGroup(props) {
|
|
|
4534
4481
|
return 36;
|
|
4535
4482
|
}
|
|
4536
4483
|
}, [size]);
|
|
4537
|
-
const noOptionsFontSize = useMemo12(() => {
|
|
4538
|
-
switch (size) {
|
|
4539
|
-
case "sm":
|
|
4540
|
-
return "14px";
|
|
4541
|
-
case "md":
|
|
4542
|
-
return "16px";
|
|
4543
|
-
case "lg":
|
|
4544
|
-
return "18px";
|
|
4545
|
-
}
|
|
4546
|
-
}, [size]);
|
|
4547
4484
|
const virtualizer = useVirtualizer3({
|
|
4548
4485
|
count: filteredOptions.length,
|
|
4549
4486
|
estimateSize: () => itemSize,
|
|
@@ -4553,27 +4490,34 @@ function FilterableCheckboxGroup(props) {
|
|
|
4553
4490
|
});
|
|
4554
4491
|
const items = virtualizer.getVirtualItems();
|
|
4555
4492
|
useEffect8(() => {
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
const
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4493
|
+
const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
|
|
4494
|
+
(prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
|
|
4495
|
+
);
|
|
4496
|
+
if (!isInitialSortRef.current || optionsChanged) {
|
|
4497
|
+
const initialValue = value ?? [];
|
|
4498
|
+
const sorted = [...options].sort((a, b) => {
|
|
4499
|
+
const aSelected = initialValue.includes(a.value);
|
|
4500
|
+
const bSelected = initialValue.includes(b.value);
|
|
4501
|
+
if (aSelected !== bSelected) {
|
|
4502
|
+
return aSelected ? -1 : 1;
|
|
4503
|
+
}
|
|
4504
|
+
const aIsAlpha = /^[a-zA-Z]/.test(a.label);
|
|
4505
|
+
const bIsAlpha = /^[a-zA-Z]/.test(b.label);
|
|
4506
|
+
if (aIsAlpha !== bIsAlpha) {
|
|
4507
|
+
return aIsAlpha ? -1 : 1;
|
|
4508
|
+
}
|
|
4509
|
+
return a.label.localeCompare(b.label);
|
|
4510
|
+
});
|
|
4511
|
+
setSortedOptions(sorted);
|
|
4512
|
+
prevOptionsRef.current = [...options];
|
|
4513
|
+
if (!isInitialSortRef.current) {
|
|
4514
|
+
isInitialSortRef.current = true;
|
|
4568
4515
|
}
|
|
4569
|
-
|
|
4570
|
-
});
|
|
4571
|
-
setSortedOptions(sorted);
|
|
4572
|
-
isInitialSortRef.current = true;
|
|
4516
|
+
}
|
|
4573
4517
|
}, [options, value]);
|
|
4574
4518
|
useEffect8(() => {
|
|
4575
4519
|
virtualizer.measure();
|
|
4576
|
-
}, [virtualizer, filteredOptions]);
|
|
4520
|
+
}, [virtualizer, filteredOptions, size]);
|
|
4577
4521
|
const handleSearchChange = useCallback13((event) => {
|
|
4578
4522
|
setSearchTerm(event.target.value);
|
|
4579
4523
|
}, []);
|
|
@@ -4601,15 +4545,15 @@ function FilterableCheckboxGroup(props) {
|
|
|
4601
4545
|
},
|
|
4602
4546
|
[filteredOptions, internalValue, setInternalValue]
|
|
4603
4547
|
);
|
|
4604
|
-
const enabledFilteredOptions = useMemo12(
|
|
4605
|
-
() => filteredOptions.filter((option) => !option.disabled),
|
|
4606
|
-
[filteredOptions]
|
|
4607
|
-
);
|
|
4548
|
+
const enabledFilteredOptions = useMemo12(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
|
|
4608
4549
|
const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
|
|
4609
4550
|
const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
|
|
4610
|
-
return /* @__PURE__ */ React30.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ React30.createElement(
|
|
4611
|
-
|
|
4551
|
+
return /* @__PURE__ */ React30.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ React30.createElement(
|
|
4552
|
+
Input_default,
|
|
4612
4553
|
{
|
|
4554
|
+
label,
|
|
4555
|
+
helperText,
|
|
4556
|
+
required,
|
|
4613
4557
|
variant: "outlined",
|
|
4614
4558
|
color: "neutral",
|
|
4615
4559
|
placeholder,
|
|
@@ -4619,19 +4563,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4619
4563
|
disabled,
|
|
4620
4564
|
endDecorator: /* @__PURE__ */ React30.createElement(SearchIcon, null)
|
|
4621
4565
|
}
|
|
4622
|
-
),
|
|
4623
|
-
Stack2,
|
|
4624
|
-
{
|
|
4625
|
-
sx: {
|
|
4626
|
-
padding: "20px 12px",
|
|
4627
|
-
justifyContent: "center",
|
|
4628
|
-
alignItems: "center",
|
|
4629
|
-
fontSize: noOptionsFontSize,
|
|
4630
|
-
color: "#A2AAB8"
|
|
4631
|
-
}
|
|
4632
|
-
},
|
|
4633
|
-
"No options found."
|
|
4634
|
-
) : /* @__PURE__ */ React30.createElement(
|
|
4566
|
+
), filteredOptions.length === 0 ? /* @__PURE__ */ React30.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ React30.createElement(
|
|
4635
4567
|
"div",
|
|
4636
4568
|
{
|
|
4637
4569
|
ref: parentRef,
|
|
@@ -4660,7 +4592,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4660
4592
|
}
|
|
4661
4593
|
),
|
|
4662
4594
|
/* @__PURE__ */ React30.createElement(
|
|
4663
|
-
|
|
4595
|
+
Stack_default,
|
|
4664
4596
|
{
|
|
4665
4597
|
sx: {
|
|
4666
4598
|
height: `${virtualizer.getTotalSize()}px`,
|
|
@@ -4673,7 +4605,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4673
4605
|
Checkbox_default,
|
|
4674
4606
|
{
|
|
4675
4607
|
key: virtualRow.key,
|
|
4676
|
-
label: option.label,
|
|
4608
|
+
label: /* @__PURE__ */ React30.createElement(LabelWithTooltip, { label: option.label, size }),
|
|
4677
4609
|
checked: internalValue.includes(option.value),
|
|
4678
4610
|
onChange: handleCheckboxChange(option.value),
|
|
4679
4611
|
size,
|
|
@@ -4681,6 +4613,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4681
4613
|
slotProps: {
|
|
4682
4614
|
action: {
|
|
4683
4615
|
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4616
|
+
// NOTE: 불필요한 좌우 스크롤 방지
|
|
4684
4617
|
}
|
|
4685
4618
|
},
|
|
4686
4619
|
sx: {
|
|
@@ -4700,12 +4633,12 @@ function FilterableCheckboxGroup(props) {
|
|
|
4700
4633
|
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
4701
4634
|
|
|
4702
4635
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
4703
|
-
import
|
|
4704
|
-
import { Button as Button2, Stack as
|
|
4636
|
+
import React40, { useCallback as useCallback22 } from "react";
|
|
4637
|
+
import { Button as Button2, Stack as Stack10 } from "@mui/joy";
|
|
4705
4638
|
|
|
4706
4639
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
4707
4640
|
import React31, { useCallback as useCallback14 } from "react";
|
|
4708
|
-
import { Stack as
|
|
4641
|
+
import { Stack as Stack2 } from "@mui/joy";
|
|
4709
4642
|
function CheckboxGroup(props) {
|
|
4710
4643
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4711
4644
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
@@ -4725,7 +4658,7 @@ function CheckboxGroup(props) {
|
|
|
4725
4658
|
if (hidden) {
|
|
4726
4659
|
return null;
|
|
4727
4660
|
}
|
|
4728
|
-
return /* @__PURE__ */ React31.createElement(
|
|
4661
|
+
return /* @__PURE__ */ React31.createElement(Stack2, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React31.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), options.map((option) => /* @__PURE__ */ React31.createElement(
|
|
4729
4662
|
Checkbox_default,
|
|
4730
4663
|
{
|
|
4731
4664
|
key: `${id}-${option.value}`,
|
|
@@ -4737,37 +4670,8 @@ function CheckboxGroup(props) {
|
|
|
4737
4670
|
}
|
|
4738
4671
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
4739
4672
|
|
|
4740
|
-
// src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
|
|
4741
|
-
import React32, { useCallback as useCallback15 } from "react";
|
|
4742
|
-
import { Stack as Stack4 } from "@mui/joy";
|
|
4743
|
-
function FilterableCheckboxGroup2(props) {
|
|
4744
|
-
const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
|
|
4745
|
-
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
4746
|
-
const handleChange = useCallback15(
|
|
4747
|
-
(newValue) => {
|
|
4748
|
-
setInternalValue(newValue);
|
|
4749
|
-
},
|
|
4750
|
-
[setInternalValue]
|
|
4751
|
-
);
|
|
4752
|
-
if (hidden) {
|
|
4753
|
-
return null;
|
|
4754
|
-
}
|
|
4755
|
-
return /* @__PURE__ */ React32.createElement(Stack4, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React32.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React32.createElement(
|
|
4756
|
-
FilterableCheckboxGroup,
|
|
4757
|
-
{
|
|
4758
|
-
value: internalValue ?? [],
|
|
4759
|
-
onChange: handleChange,
|
|
4760
|
-
options,
|
|
4761
|
-
placeholder,
|
|
4762
|
-
maxHeight,
|
|
4763
|
-
size: "sm"
|
|
4764
|
-
}
|
|
4765
|
-
));
|
|
4766
|
-
}
|
|
4767
|
-
FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
|
|
4768
|
-
|
|
4769
4673
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4770
|
-
import
|
|
4674
|
+
import React32, { useCallback as useCallback15 } from "react";
|
|
4771
4675
|
|
|
4772
4676
|
// src/components/Radio/Radio.tsx
|
|
4773
4677
|
import { Radio as JoyRadio, RadioGroup as JoyRadioGroup } from "@mui/joy";
|
|
@@ -4780,11 +4684,11 @@ var RadioGroup = MotionRadioGroup;
|
|
|
4780
4684
|
RadioGroup.displayName = "RadioGroup";
|
|
4781
4685
|
|
|
4782
4686
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4783
|
-
import { Stack as
|
|
4687
|
+
import { Stack as Stack3 } from "@mui/joy";
|
|
4784
4688
|
function RadioGroup2(props) {
|
|
4785
4689
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4786
4690
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
4787
|
-
const handleRadioChange =
|
|
4691
|
+
const handleRadioChange = useCallback15(
|
|
4788
4692
|
(event) => {
|
|
4789
4693
|
const newValue = event.target.value;
|
|
4790
4694
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -4796,13 +4700,13 @@ function RadioGroup2(props) {
|
|
|
4796
4700
|
if (hidden) {
|
|
4797
4701
|
return null;
|
|
4798
4702
|
}
|
|
4799
|
-
return /* @__PURE__ */
|
|
4703
|
+
return /* @__PURE__ */ React32.createElement(Stack3, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React32.createElement(Stack3, { spacing: 1 }, /* @__PURE__ */ React32.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label)), /* @__PURE__ */ React32.createElement(RadioGroup, { name: id, value: internalValue?.toString(), onChange: handleRadioChange }, options.map((option) => /* @__PURE__ */ React32.createElement(Radio, { key: `${id}-${option.value}`, value: option.value.toString(), label: option.label }))));
|
|
4800
4704
|
}
|
|
4801
4705
|
RadioGroup2.displayName = "RadioGroup";
|
|
4802
4706
|
|
|
4803
4707
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
4804
|
-
import
|
|
4805
|
-
import { Stack as
|
|
4708
|
+
import React33, { useCallback as useCallback16, useMemo as useMemo13, useState as useState11, useEffect as useEffect9 } from "react";
|
|
4709
|
+
import { Stack as Stack4 } from "@mui/joy";
|
|
4806
4710
|
function DateRange(props) {
|
|
4807
4711
|
const {
|
|
4808
4712
|
id,
|
|
@@ -4831,7 +4735,7 @@ function DateRange(props) {
|
|
|
4831
4735
|
],
|
|
4832
4736
|
[]
|
|
4833
4737
|
);
|
|
4834
|
-
const getDateRangeForOption =
|
|
4738
|
+
const getDateRangeForOption = useCallback16(
|
|
4835
4739
|
(option) => {
|
|
4836
4740
|
const now = /* @__PURE__ */ new Date();
|
|
4837
4741
|
const currentYear = now.getFullYear();
|
|
@@ -4870,7 +4774,7 @@ function DateRange(props) {
|
|
|
4870
4774
|
},
|
|
4871
4775
|
[internalValue]
|
|
4872
4776
|
);
|
|
4873
|
-
const determineOptionFromValue =
|
|
4777
|
+
const determineOptionFromValue = useCallback16(
|
|
4874
4778
|
(value2) => {
|
|
4875
4779
|
if (!value2) {
|
|
4876
4780
|
return "all-time";
|
|
@@ -4896,7 +4800,7 @@ function DateRange(props) {
|
|
|
4896
4800
|
const newOption = determineOptionFromValue(internalValue);
|
|
4897
4801
|
setSelectedOption(newOption);
|
|
4898
4802
|
}, [internalValue, determineOptionFromValue]);
|
|
4899
|
-
const handleOptionChange =
|
|
4803
|
+
const handleOptionChange = useCallback16(
|
|
4900
4804
|
(event) => {
|
|
4901
4805
|
const newOption = event.target.value;
|
|
4902
4806
|
setSelectedOption(newOption);
|
|
@@ -4905,7 +4809,7 @@ function DateRange(props) {
|
|
|
4905
4809
|
},
|
|
4906
4810
|
[getDateRangeForOption, setInternalValue]
|
|
4907
4811
|
);
|
|
4908
|
-
const handleCustomDateChange =
|
|
4812
|
+
const handleCustomDateChange = useCallback16(
|
|
4909
4813
|
(event) => {
|
|
4910
4814
|
const dateRangeString = event.target.value;
|
|
4911
4815
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -4923,7 +4827,7 @@ function DateRange(props) {
|
|
|
4923
4827
|
if (hidden) {
|
|
4924
4828
|
return null;
|
|
4925
4829
|
}
|
|
4926
|
-
return /* @__PURE__ */
|
|
4830
|
+
return /* @__PURE__ */ React33.createElement(Stack4, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React33.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React33.createElement(RadioGroup, { name: `${id}-options`, value: selectedOption, onChange: handleOptionChange }, dateRangeOptions.map((option) => /* @__PURE__ */ React33.createElement(Radio, { key: `${id}-${option.value}`, value: option.value, label: option.label }))), selectedOption === "custom" && /* @__PURE__ */ React33.createElement(
|
|
4927
4831
|
DateRangePicker,
|
|
4928
4832
|
{
|
|
4929
4833
|
value: customDateRangeValue,
|
|
@@ -4942,12 +4846,12 @@ function DateRange(props) {
|
|
|
4942
4846
|
DateRange.displayName = "DateRange";
|
|
4943
4847
|
|
|
4944
4848
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
4945
|
-
import
|
|
4946
|
-
import { Stack as
|
|
4849
|
+
import React34, { useCallback as useCallback17 } from "react";
|
|
4850
|
+
import { Stack as Stack5 } from "@mui/joy";
|
|
4947
4851
|
function CurrencyInput3(props) {
|
|
4948
4852
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4949
4853
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
4950
|
-
const handleCurrencyChange =
|
|
4854
|
+
const handleCurrencyChange = useCallback17(
|
|
4951
4855
|
(event) => {
|
|
4952
4856
|
const newValue = event.target.value;
|
|
4953
4857
|
setInternalValue(newValue);
|
|
@@ -4957,7 +4861,7 @@ function CurrencyInput3(props) {
|
|
|
4957
4861
|
if (hidden) {
|
|
4958
4862
|
return null;
|
|
4959
4863
|
}
|
|
4960
|
-
return /* @__PURE__ */
|
|
4864
|
+
return /* @__PURE__ */ React34.createElement(Stack5, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React34.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React34.createElement(
|
|
4961
4865
|
CurrencyInput,
|
|
4962
4866
|
{
|
|
4963
4867
|
value: internalValue,
|
|
@@ -4973,14 +4877,14 @@ function CurrencyInput3(props) {
|
|
|
4973
4877
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
4974
4878
|
|
|
4975
4879
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
4976
|
-
import
|
|
4977
|
-
import { Stack as
|
|
4880
|
+
import React35, { useCallback as useCallback18 } from "react";
|
|
4881
|
+
import { Stack as Stack6 } from "@mui/joy";
|
|
4978
4882
|
function CurrencyRange(props) {
|
|
4979
4883
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4980
4884
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4981
4885
|
const minValue = internalValue?.[0];
|
|
4982
4886
|
const maxValue = internalValue?.[1];
|
|
4983
|
-
const handleMinChange =
|
|
4887
|
+
const handleMinChange = useCallback18(
|
|
4984
4888
|
(event) => {
|
|
4985
4889
|
const newMinValue = event.target.value;
|
|
4986
4890
|
const currentMaxValue = maxValue;
|
|
@@ -4994,7 +4898,7 @@ function CurrencyRange(props) {
|
|
|
4994
4898
|
},
|
|
4995
4899
|
[maxValue, setInternalValue]
|
|
4996
4900
|
);
|
|
4997
|
-
const handleMaxChange =
|
|
4901
|
+
const handleMaxChange = useCallback18(
|
|
4998
4902
|
(event) => {
|
|
4999
4903
|
const newMaxValue = event.target.value;
|
|
5000
4904
|
const currentMinValue = minValue;
|
|
@@ -5011,7 +4915,7 @@ function CurrencyRange(props) {
|
|
|
5011
4915
|
if (hidden) {
|
|
5012
4916
|
return null;
|
|
5013
4917
|
}
|
|
5014
|
-
return /* @__PURE__ */
|
|
4918
|
+
return /* @__PURE__ */ React35.createElement(Stack6, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React35.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React35.createElement(Stack6, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ React35.createElement(
|
|
5015
4919
|
CurrencyInput,
|
|
5016
4920
|
{
|
|
5017
4921
|
label: "Minimum",
|
|
@@ -5024,7 +4928,7 @@ function CurrencyRange(props) {
|
|
|
5024
4928
|
"aria-labelledby": label ? id : void 0,
|
|
5025
4929
|
"aria-label": "Minimum amount"
|
|
5026
4930
|
}
|
|
5027
|
-
), /* @__PURE__ */
|
|
4931
|
+
), /* @__PURE__ */ React35.createElement(
|
|
5028
4932
|
CurrencyInput,
|
|
5029
4933
|
{
|
|
5030
4934
|
label: "Maximum",
|
|
@@ -5042,20 +4946,20 @@ function CurrencyRange(props) {
|
|
|
5042
4946
|
CurrencyRange.displayName = "CurrencyRange";
|
|
5043
4947
|
|
|
5044
4948
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
5045
|
-
import
|
|
5046
|
-
import { Stack as
|
|
4949
|
+
import React37 from "react";
|
|
4950
|
+
import { Stack as Stack7, Typography as Typography2 } from "@mui/joy";
|
|
5047
4951
|
|
|
5048
4952
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
5049
|
-
import
|
|
4953
|
+
import React36, { useCallback as useCallback19, useMemo as useMemo14, useState as useState12 } from "react";
|
|
5050
4954
|
import { NumericFormat as NumericFormat2 } from "react-number-format";
|
|
5051
4955
|
import { styled as styled20, useThemeProps as useThemeProps6 } from "@mui/joy";
|
|
5052
4956
|
var padDecimal = (value, decimalScale) => {
|
|
5053
4957
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
5054
4958
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
5055
4959
|
};
|
|
5056
|
-
var TextMaskAdapter7 =
|
|
4960
|
+
var TextMaskAdapter7 = React36.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
5057
4961
|
const { onChange, min, max, ...innerProps } = props;
|
|
5058
|
-
return /* @__PURE__ */
|
|
4962
|
+
return /* @__PURE__ */ React36.createElement(
|
|
5059
4963
|
NumericFormat2,
|
|
5060
4964
|
{
|
|
5061
4965
|
...innerProps,
|
|
@@ -5080,7 +4984,7 @@ var PercentageInputRoot = styled20(Input_default, {
|
|
|
5080
4984
|
slot: "Root",
|
|
5081
4985
|
overridesResolver: (props, styles) => styles.root
|
|
5082
4986
|
})({});
|
|
5083
|
-
var PercentageInput =
|
|
4987
|
+
var PercentageInput = React36.forwardRef(
|
|
5084
4988
|
function PercentageInput2(inProps, ref) {
|
|
5085
4989
|
const props = useThemeProps6({ props: inProps, name: "PercentageInput" });
|
|
5086
4990
|
const {
|
|
@@ -5103,7 +5007,7 @@ var PercentageInput = React37.forwardRef(
|
|
|
5103
5007
|
const [_value, setValue] = useControlledState(
|
|
5104
5008
|
props.value,
|
|
5105
5009
|
props.defaultValue,
|
|
5106
|
-
|
|
5010
|
+
useCallback19((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
5107
5011
|
);
|
|
5108
5012
|
const [internalError, setInternalError] = useState12(
|
|
5109
5013
|
max && _value && _value > max || min && _value && _value < min
|
|
@@ -5114,7 +5018,7 @@ var PercentageInput = React37.forwardRef(
|
|
|
5114
5018
|
}
|
|
5115
5019
|
return _value;
|
|
5116
5020
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
5117
|
-
const handleChange =
|
|
5021
|
+
const handleChange = useCallback19(
|
|
5118
5022
|
(event) => {
|
|
5119
5023
|
if (event.target.value === "") {
|
|
5120
5024
|
setValue(void 0);
|
|
@@ -5131,7 +5035,7 @@ var PercentageInput = React37.forwardRef(
|
|
|
5131
5035
|
},
|
|
5132
5036
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
5133
5037
|
);
|
|
5134
|
-
return /* @__PURE__ */
|
|
5038
|
+
return /* @__PURE__ */ React36.createElement(
|
|
5135
5039
|
PercentageInputRoot,
|
|
5136
5040
|
{
|
|
5137
5041
|
...innerProps,
|
|
@@ -5178,7 +5082,7 @@ var PercentageInput3 = ({
|
|
|
5178
5082
|
if (hidden) {
|
|
5179
5083
|
return null;
|
|
5180
5084
|
}
|
|
5181
|
-
return /* @__PURE__ */
|
|
5085
|
+
return /* @__PURE__ */ React37.createElement(Stack7, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React37.createElement(Typography2, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React37.createElement(
|
|
5182
5086
|
PercentageInput,
|
|
5183
5087
|
{
|
|
5184
5088
|
value: _value,
|
|
@@ -5193,8 +5097,8 @@ var PercentageInput3 = ({
|
|
|
5193
5097
|
};
|
|
5194
5098
|
|
|
5195
5099
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
5196
|
-
import
|
|
5197
|
-
import { Stack as
|
|
5100
|
+
import React38, { useCallback as useCallback20 } from "react";
|
|
5101
|
+
import { Stack as Stack8 } from "@mui/joy";
|
|
5198
5102
|
function PercentageRange(props) {
|
|
5199
5103
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
5200
5104
|
const [internalValue, setInternalValue] = useControlledState(
|
|
@@ -5204,7 +5108,7 @@ function PercentageRange(props) {
|
|
|
5204
5108
|
);
|
|
5205
5109
|
const minValue = internalValue?.[0];
|
|
5206
5110
|
const maxValue = internalValue?.[1];
|
|
5207
|
-
const handleMinChange =
|
|
5111
|
+
const handleMinChange = useCallback20(
|
|
5208
5112
|
(event) => {
|
|
5209
5113
|
const newMinValue = event.target.value;
|
|
5210
5114
|
const currentMaxValue = maxValue;
|
|
@@ -5216,7 +5120,7 @@ function PercentageRange(props) {
|
|
|
5216
5120
|
},
|
|
5217
5121
|
[maxValue, setInternalValue]
|
|
5218
5122
|
);
|
|
5219
|
-
const handleMaxChange =
|
|
5123
|
+
const handleMaxChange = useCallback20(
|
|
5220
5124
|
(event) => {
|
|
5221
5125
|
const newMaxValue = event.target.value;
|
|
5222
5126
|
const currentMinValue = minValue;
|
|
@@ -5231,7 +5135,7 @@ function PercentageRange(props) {
|
|
|
5231
5135
|
if (hidden) {
|
|
5232
5136
|
return null;
|
|
5233
5137
|
}
|
|
5234
|
-
return /* @__PURE__ */
|
|
5138
|
+
return /* @__PURE__ */ React38.createElement(Stack8, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React38.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React38.createElement(Stack8, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ React38.createElement(
|
|
5235
5139
|
PercentageInput,
|
|
5236
5140
|
{
|
|
5237
5141
|
label: "Minimum",
|
|
@@ -5245,7 +5149,7 @@ function PercentageRange(props) {
|
|
|
5245
5149
|
"aria-label": "Minimum percentage",
|
|
5246
5150
|
placeholder: "0%"
|
|
5247
5151
|
}
|
|
5248
|
-
), /* @__PURE__ */
|
|
5152
|
+
), /* @__PURE__ */ React38.createElement(
|
|
5249
5153
|
PercentageInput,
|
|
5250
5154
|
{
|
|
5251
5155
|
label: "Maximum",
|
|
@@ -5264,13 +5168,13 @@ function PercentageRange(props) {
|
|
|
5264
5168
|
PercentageRange.displayName = "PercentageRange";
|
|
5265
5169
|
|
|
5266
5170
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
5267
|
-
import
|
|
5268
|
-
import { Stack as
|
|
5171
|
+
import React39, { useCallback as useCallback21 } from "react";
|
|
5172
|
+
import { Stack as Stack9 } from "@mui/joy";
|
|
5269
5173
|
function Autocomplete2(props) {
|
|
5270
5174
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
5271
5175
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
5272
5176
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
5273
|
-
const handleChange =
|
|
5177
|
+
const handleChange = useCallback21(
|
|
5274
5178
|
(event) => {
|
|
5275
5179
|
const val = event.target.value;
|
|
5276
5180
|
if (val) {
|
|
@@ -5285,7 +5189,7 @@ function Autocomplete2(props) {
|
|
|
5285
5189
|
if (hidden) {
|
|
5286
5190
|
return null;
|
|
5287
5191
|
}
|
|
5288
|
-
return /* @__PURE__ */
|
|
5192
|
+
return /* @__PURE__ */ React39.createElement(Stack9, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React39.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React39.createElement(
|
|
5289
5193
|
Autocomplete,
|
|
5290
5194
|
{
|
|
5291
5195
|
value: autocompleteValue,
|
|
@@ -5302,7 +5206,6 @@ Autocomplete2.displayName = "Autocomplete";
|
|
|
5302
5206
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
5303
5207
|
var componentMap = {
|
|
5304
5208
|
"checkbox-group": CheckboxGroup,
|
|
5305
|
-
"filterable-checkbox-group": FilterableCheckboxGroup2,
|
|
5306
5209
|
"radio-group": RadioGroup2,
|
|
5307
5210
|
"date-range": DateRange,
|
|
5308
5211
|
"currency-input": CurrencyInput3,
|
|
@@ -5319,7 +5222,7 @@ function FilterMenu(props) {
|
|
|
5319
5222
|
void 0
|
|
5320
5223
|
// onChange는 Apply 버튼에서만 호출
|
|
5321
5224
|
);
|
|
5322
|
-
const handleFilterChange =
|
|
5225
|
+
const handleFilterChange = useCallback22(
|
|
5323
5226
|
(filterId, value) => {
|
|
5324
5227
|
setInternalValues((prev) => ({
|
|
5325
5228
|
...prev,
|
|
@@ -5328,17 +5231,17 @@ function FilterMenu(props) {
|
|
|
5328
5231
|
},
|
|
5329
5232
|
[setInternalValues]
|
|
5330
5233
|
);
|
|
5331
|
-
const handleApply =
|
|
5234
|
+
const handleApply = useCallback22(() => {
|
|
5332
5235
|
onChange?.(internalValues);
|
|
5333
5236
|
onClose?.();
|
|
5334
5237
|
}, [onChange, onClose, internalValues]);
|
|
5335
|
-
const handleClear =
|
|
5238
|
+
const handleClear = useCallback22(() => {
|
|
5336
5239
|
const clearedValues = resetValues || {};
|
|
5337
5240
|
setInternalValues(clearedValues);
|
|
5338
5241
|
onChange?.(clearedValues);
|
|
5339
5242
|
onClose?.();
|
|
5340
5243
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
5341
|
-
return /* @__PURE__ */
|
|
5244
|
+
return /* @__PURE__ */ React40.createElement(
|
|
5342
5245
|
ModalDialog,
|
|
5343
5246
|
{
|
|
5344
5247
|
sx: {
|
|
@@ -5348,9 +5251,9 @@ function FilterMenu(props) {
|
|
|
5348
5251
|
top: "initial"
|
|
5349
5252
|
}
|
|
5350
5253
|
},
|
|
5351
|
-
/* @__PURE__ */
|
|
5254
|
+
/* @__PURE__ */ React40.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ React40.createElement(Stack10, { spacing: 6 }, filters?.map((filter) => {
|
|
5352
5255
|
const FilterComponent = componentMap[filter.type];
|
|
5353
|
-
return FilterComponent ? /* @__PURE__ */
|
|
5256
|
+
return FilterComponent ? /* @__PURE__ */ React40.createElement(
|
|
5354
5257
|
FilterComponent,
|
|
5355
5258
|
{
|
|
5356
5259
|
key: filter.id,
|
|
@@ -5362,14 +5265,14 @@ function FilterMenu(props) {
|
|
|
5362
5265
|
}
|
|
5363
5266
|
) : null;
|
|
5364
5267
|
}))),
|
|
5365
|
-
/* @__PURE__ */
|
|
5268
|
+
/* @__PURE__ */ React40.createElement(DialogActions, { sx: { justifyContent: "space-between" } }, useClear && filters?.length === 1 && /* @__PURE__ */ React40.createElement(Button2, { variant: "plain", color: "neutral", size: "md", onClick: handleClear }, "Clear"), useReset && !useClear && /* @__PURE__ */ React40.createElement(Button2, { variant: "plain", color: "neutral", size: "md", onClick: handleClear }, "Reset"), /* @__PURE__ */ React40.createElement(Button2, { variant: "solid", color: "primary", size: "md", onClick: handleApply }, "Apply"))
|
|
5366
5269
|
);
|
|
5367
5270
|
}
|
|
5368
5271
|
FilterMenu.displayName = "FilterMenu";
|
|
5369
5272
|
|
|
5370
5273
|
// src/components/Uploader/Uploader.tsx
|
|
5371
|
-
import
|
|
5372
|
-
import { styled as styled21, Input as
|
|
5274
|
+
import React41, { useCallback as useCallback23, useEffect as useEffect10, useMemo as useMemo15, useRef as useRef9, useState as useState13 } from "react";
|
|
5275
|
+
import { styled as styled21, Input as Input2 } from "@mui/joy";
|
|
5373
5276
|
import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
|
|
5374
5277
|
import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
|
|
5375
5278
|
import MuiClearIcon from "@mui/icons-material/ClearRounded";
|
|
@@ -5391,7 +5294,7 @@ var esmFiles = {
|
|
|
5391
5294
|
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js"
|
|
5392
5295
|
)
|
|
5393
5296
|
};
|
|
5394
|
-
var VisuallyHiddenInput = styled21(
|
|
5297
|
+
var VisuallyHiddenInput = styled21(Input2)({
|
|
5395
5298
|
width: "1px",
|
|
5396
5299
|
height: "1px",
|
|
5397
5300
|
overflow: "hidden",
|
|
@@ -5445,7 +5348,7 @@ var getFileSize = (n) => {
|
|
|
5445
5348
|
};
|
|
5446
5349
|
var Preview = (props) => {
|
|
5447
5350
|
const { files, uploaded, onDelete } = props;
|
|
5448
|
-
return /* @__PURE__ */
|
|
5351
|
+
return /* @__PURE__ */ React41.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React41.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React41.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React41.createElement(UploadFileIcon, null), /* @__PURE__ */ React41.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ React41.createElement(
|
|
5449
5352
|
Typography_default,
|
|
5450
5353
|
{
|
|
5451
5354
|
level: "body-sm",
|
|
@@ -5457,7 +5360,7 @@ var Preview = (props) => {
|
|
|
5457
5360
|
}
|
|
5458
5361
|
},
|
|
5459
5362
|
file.name
|
|
5460
|
-
), !!file.size && /* @__PURE__ */
|
|
5363
|
+
), !!file.size && /* @__PURE__ */ React41.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ React41.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React41.createElement(ClearIcon2, null))))));
|
|
5461
5364
|
};
|
|
5462
5365
|
var UploaderRoot = styled21(Stack_default, {
|
|
5463
5366
|
name: "Uploader",
|
|
@@ -5500,7 +5403,7 @@ var UploaderIcon = styled21(MuiFileUploadIcon, {
|
|
|
5500
5403
|
}
|
|
5501
5404
|
})
|
|
5502
5405
|
);
|
|
5503
|
-
var Uploader =
|
|
5406
|
+
var Uploader = React41.memo(
|
|
5504
5407
|
(props) => {
|
|
5505
5408
|
const {
|
|
5506
5409
|
accept,
|
|
@@ -5568,7 +5471,7 @@ var Uploader = React42.memo(
|
|
|
5568
5471
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5569
5472
|
[files, maxCount, uploaded]
|
|
5570
5473
|
);
|
|
5571
|
-
const addFiles =
|
|
5474
|
+
const addFiles = useCallback23(
|
|
5572
5475
|
(uploads) => {
|
|
5573
5476
|
try {
|
|
5574
5477
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -5660,14 +5563,14 @@ var Uploader = React42.memo(
|
|
|
5660
5563
|
}
|
|
5661
5564
|
}
|
|
5662
5565
|
}, [inputRef, files, minCount]);
|
|
5663
|
-
const handleFileChanged =
|
|
5566
|
+
const handleFileChanged = useCallback23(
|
|
5664
5567
|
(event) => {
|
|
5665
5568
|
const files2 = Array.from(event.target.files || []);
|
|
5666
5569
|
addFiles(files2);
|
|
5667
5570
|
},
|
|
5668
5571
|
[addFiles]
|
|
5669
5572
|
);
|
|
5670
|
-
const handleDeleteFile =
|
|
5573
|
+
const handleDeleteFile = useCallback23(
|
|
5671
5574
|
(deletedFile) => {
|
|
5672
5575
|
if (deletedFile instanceof File) {
|
|
5673
5576
|
setFiles((current) => {
|
|
@@ -5687,10 +5590,10 @@ var Uploader = React42.memo(
|
|
|
5687
5590
|
},
|
|
5688
5591
|
[name, onChange, onDelete]
|
|
5689
5592
|
);
|
|
5690
|
-
const handleUploaderButtonClick =
|
|
5593
|
+
const handleUploaderButtonClick = useCallback23(() => {
|
|
5691
5594
|
inputRef.current?.click();
|
|
5692
5595
|
}, []);
|
|
5693
|
-
const uploader = /* @__PURE__ */
|
|
5596
|
+
const uploader = /* @__PURE__ */ React41.createElement(
|
|
5694
5597
|
FileDropZone,
|
|
5695
5598
|
{
|
|
5696
5599
|
state: previewState,
|
|
@@ -5699,8 +5602,8 @@ var Uploader = React42.memo(
|
|
|
5699
5602
|
ref: dropZoneRef,
|
|
5700
5603
|
onClick: handleUploaderButtonClick
|
|
5701
5604
|
},
|
|
5702
|
-
/* @__PURE__ */
|
|
5703
|
-
/* @__PURE__ */
|
|
5605
|
+
/* @__PURE__ */ React41.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React41.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
5606
|
+
/* @__PURE__ */ React41.createElement(
|
|
5704
5607
|
VisuallyHiddenInput,
|
|
5705
5608
|
{
|
|
5706
5609
|
disabled,
|
|
@@ -5723,7 +5626,7 @@ var Uploader = React42.memo(
|
|
|
5723
5626
|
}
|
|
5724
5627
|
)
|
|
5725
5628
|
);
|
|
5726
|
-
return /* @__PURE__ */
|
|
5629
|
+
return /* @__PURE__ */ React41.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React41.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ React41.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ React41.createElement(FormHelperText_default, null, /* @__PURE__ */ React41.createElement(Stack_default, null, errorText && /* @__PURE__ */ React41.createElement("div", null, errorText), /* @__PURE__ */ React41.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React41.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
5727
5630
|
}
|
|
5728
5631
|
);
|
|
5729
5632
|
Uploader.displayName = "Uploader";
|
|
@@ -5732,7 +5635,7 @@ Uploader.displayName = "Uploader";
|
|
|
5732
5635
|
import { Grid } from "@mui/joy";
|
|
5733
5636
|
|
|
5734
5637
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5735
|
-
import
|
|
5638
|
+
import React42 from "react";
|
|
5736
5639
|
import { MenuButton as JoyMenuButton2, IconButton as JoyIconButton2 } from "@mui/joy";
|
|
5737
5640
|
function IconMenuButton(props) {
|
|
5738
5641
|
const {
|
|
@@ -5746,7 +5649,7 @@ function IconMenuButton(props) {
|
|
|
5746
5649
|
placement = "bottom"
|
|
5747
5650
|
} = props;
|
|
5748
5651
|
if (!items.length) {
|
|
5749
|
-
return /* @__PURE__ */
|
|
5652
|
+
return /* @__PURE__ */ React42.createElement(
|
|
5750
5653
|
JoyIconButton2,
|
|
5751
5654
|
{
|
|
5752
5655
|
component: props.buttonComponent ?? "button",
|
|
@@ -5760,7 +5663,7 @@ function IconMenuButton(props) {
|
|
|
5760
5663
|
icon
|
|
5761
5664
|
);
|
|
5762
5665
|
}
|
|
5763
|
-
return /* @__PURE__ */
|
|
5666
|
+
return /* @__PURE__ */ React42.createElement(Dropdown_default, null, /* @__PURE__ */ React42.createElement(
|
|
5764
5667
|
JoyMenuButton2,
|
|
5765
5668
|
{
|
|
5766
5669
|
slots: { root: JoyIconButton2 },
|
|
@@ -5777,12 +5680,12 @@ function IconMenuButton(props) {
|
|
|
5777
5680
|
}
|
|
5778
5681
|
},
|
|
5779
5682
|
icon
|
|
5780
|
-
), /* @__PURE__ */
|
|
5683
|
+
), /* @__PURE__ */ React42.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React42.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5781
5684
|
}
|
|
5782
5685
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5783
5686
|
|
|
5784
5687
|
// src/components/Markdown/Markdown.tsx
|
|
5785
|
-
import
|
|
5688
|
+
import React43, { lazy, Suspense, useEffect as useEffect11, useState as useState14 } from "react";
|
|
5786
5689
|
import { Skeleton } from "@mui/joy";
|
|
5787
5690
|
import { Link as Link2 } from "@mui/joy";
|
|
5788
5691
|
import remarkGfm from "remark-gfm";
|
|
@@ -5811,12 +5714,12 @@ var Markdown = (props) => {
|
|
|
5811
5714
|
if (!rehypeAccent2) {
|
|
5812
5715
|
return null;
|
|
5813
5716
|
}
|
|
5814
|
-
return /* @__PURE__ */
|
|
5717
|
+
return /* @__PURE__ */ React43.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React43.createElement(
|
|
5815
5718
|
Suspense,
|
|
5816
5719
|
{
|
|
5817
|
-
fallback: fallback || /* @__PURE__ */
|
|
5720
|
+
fallback: fallback || /* @__PURE__ */ React43.createElement(Typography, null, /* @__PURE__ */ React43.createElement(Skeleton, null, content || ""))
|
|
5818
5721
|
},
|
|
5819
|
-
/* @__PURE__ */
|
|
5722
|
+
/* @__PURE__ */ React43.createElement(
|
|
5820
5723
|
LazyReactMarkdown,
|
|
5821
5724
|
{
|
|
5822
5725
|
...markdownOptions,
|
|
@@ -5824,15 +5727,15 @@ var Markdown = (props) => {
|
|
|
5824
5727
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
5825
5728
|
remarkPlugins: [remarkGfm],
|
|
5826
5729
|
components: {
|
|
5827
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
5828
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
5829
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
5830
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
5831
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
5832
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
5833
|
-
hr: () => /* @__PURE__ */
|
|
5834
|
-
b: ({ children }) => /* @__PURE__ */
|
|
5835
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
5730
|
+
h1: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
5731
|
+
h2: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
5732
|
+
h3: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
5733
|
+
h4: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
5734
|
+
p: ({ children, node }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
5735
|
+
a: ({ children, href }) => /* @__PURE__ */ React43.createElement(Link2, { href, target: defaultLinkAction }, children),
|
|
5736
|
+
hr: () => /* @__PURE__ */ React43.createElement(Divider, null),
|
|
5737
|
+
b: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5738
|
+
strong: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5836
5739
|
...markdownOptions?.components
|
|
5837
5740
|
}
|
|
5838
5741
|
}
|
|
@@ -5842,7 +5745,7 @@ var Markdown = (props) => {
|
|
|
5842
5745
|
Markdown.displayName = "Markdown";
|
|
5843
5746
|
|
|
5844
5747
|
// src/components/MenuButton/MenuButton.tsx
|
|
5845
|
-
import
|
|
5748
|
+
import React44 from "react";
|
|
5846
5749
|
import { MenuButton as JoyMenuButton3, Button as JoyButton2 } from "@mui/joy";
|
|
5847
5750
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
5848
5751
|
function MenuButton(props) {
|
|
@@ -5860,7 +5763,7 @@ function MenuButton(props) {
|
|
|
5860
5763
|
placement = "bottom"
|
|
5861
5764
|
} = props;
|
|
5862
5765
|
if (!items.length) {
|
|
5863
|
-
return /* @__PURE__ */
|
|
5766
|
+
return /* @__PURE__ */ React44.createElement(
|
|
5864
5767
|
JoyButton2,
|
|
5865
5768
|
{
|
|
5866
5769
|
component: props.buttonComponent ?? "button",
|
|
@@ -5871,12 +5774,12 @@ function MenuButton(props) {
|
|
|
5871
5774
|
loading,
|
|
5872
5775
|
startDecorator,
|
|
5873
5776
|
...props.buttonComponentProps ?? {},
|
|
5874
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5777
|
+
endDecorator: showIcon ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator, /* @__PURE__ */ React44.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator)
|
|
5875
5778
|
},
|
|
5876
5779
|
buttonText
|
|
5877
5780
|
);
|
|
5878
5781
|
}
|
|
5879
|
-
return /* @__PURE__ */
|
|
5782
|
+
return /* @__PURE__ */ React44.createElement(Dropdown_default, null, /* @__PURE__ */ React44.createElement(
|
|
5880
5783
|
JoyMenuButton3,
|
|
5881
5784
|
{
|
|
5882
5785
|
component: props.buttonComponent ?? "button",
|
|
@@ -5887,15 +5790,15 @@ function MenuButton(props) {
|
|
|
5887
5790
|
loading,
|
|
5888
5791
|
startDecorator,
|
|
5889
5792
|
...props.buttonComponentProps ?? {},
|
|
5890
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5793
|
+
endDecorator: showIcon ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator, /* @__PURE__ */ React44.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator)
|
|
5891
5794
|
},
|
|
5892
5795
|
buttonText
|
|
5893
|
-
), /* @__PURE__ */
|
|
5796
|
+
), /* @__PURE__ */ React44.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React44.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5894
5797
|
}
|
|
5895
5798
|
MenuButton.displayName = "MenuButton";
|
|
5896
5799
|
|
|
5897
5800
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5898
|
-
import
|
|
5801
|
+
import React45, { forwardRef as forwardRef9, useCallback as useCallback24, useEffect as useEffect12, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState15 } from "react";
|
|
5899
5802
|
import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
|
|
5900
5803
|
import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
|
|
5901
5804
|
import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
|
|
@@ -5982,9 +5885,9 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5982
5885
|
const [value, setValue, isControlled] = useControlledState(
|
|
5983
5886
|
props.value,
|
|
5984
5887
|
props.defaultValue || "",
|
|
5985
|
-
|
|
5888
|
+
useCallback24((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5986
5889
|
);
|
|
5987
|
-
const getFormattedDisplayValue =
|
|
5890
|
+
const getFormattedDisplayValue = useCallback24(
|
|
5988
5891
|
(inputValue) => {
|
|
5989
5892
|
if (!inputValue) return "";
|
|
5990
5893
|
try {
|
|
@@ -6007,7 +5910,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6007
5910
|
useEffect12(() => {
|
|
6008
5911
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
6009
5912
|
}, [value, getFormattedDisplayValue]);
|
|
6010
|
-
const handleChange =
|
|
5913
|
+
const handleChange = useCallback24(
|
|
6011
5914
|
(event) => {
|
|
6012
5915
|
const newValue = event.target.value;
|
|
6013
5916
|
setValue(newValue);
|
|
@@ -6017,21 +5920,21 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6017
5920
|
},
|
|
6018
5921
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
6019
5922
|
);
|
|
6020
|
-
const handleCalendarToggle =
|
|
5923
|
+
const handleCalendarToggle = useCallback24(
|
|
6021
5924
|
(event) => {
|
|
6022
5925
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6023
5926
|
innerRef.current?.focus();
|
|
6024
5927
|
},
|
|
6025
5928
|
[anchorEl, setAnchorEl, innerRef]
|
|
6026
5929
|
);
|
|
6027
|
-
const handleInputMouseDown =
|
|
5930
|
+
const handleInputMouseDown = useCallback24(
|
|
6028
5931
|
(event) => {
|
|
6029
5932
|
event.preventDefault();
|
|
6030
5933
|
buttonRef.current?.focus();
|
|
6031
5934
|
},
|
|
6032
5935
|
[buttonRef]
|
|
6033
5936
|
);
|
|
6034
|
-
return /* @__PURE__ */
|
|
5937
|
+
return /* @__PURE__ */ React45.createElement(MonthPickerRoot, null, /* @__PURE__ */ React45.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(
|
|
6035
5938
|
Input_default,
|
|
6036
5939
|
{
|
|
6037
5940
|
...innerProps,
|
|
@@ -6061,7 +5964,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6061
5964
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6062
5965
|
fontFamily: "monospace"
|
|
6063
5966
|
},
|
|
6064
|
-
endDecorator: /* @__PURE__ */
|
|
5967
|
+
endDecorator: /* @__PURE__ */ React45.createElement(
|
|
6065
5968
|
IconButton_default,
|
|
6066
5969
|
{
|
|
6067
5970
|
ref: buttonRef,
|
|
@@ -6073,12 +5976,12 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6073
5976
|
"aria-expanded": open,
|
|
6074
5977
|
disabled
|
|
6075
5978
|
},
|
|
6076
|
-
/* @__PURE__ */
|
|
5979
|
+
/* @__PURE__ */ React45.createElement(CalendarTodayIcon3, null)
|
|
6077
5980
|
),
|
|
6078
5981
|
label,
|
|
6079
5982
|
helperText
|
|
6080
5983
|
}
|
|
6081
|
-
), open && /* @__PURE__ */
|
|
5984
|
+
), open && /* @__PURE__ */ React45.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React45.createElement(
|
|
6082
5985
|
StyledPopper3,
|
|
6083
5986
|
{
|
|
6084
5987
|
id: "month-picker-popper",
|
|
@@ -6097,7 +6000,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6097
6000
|
"aria-label": "Calendar Tooltip",
|
|
6098
6001
|
"aria-expanded": open
|
|
6099
6002
|
},
|
|
6100
|
-
/* @__PURE__ */
|
|
6003
|
+
/* @__PURE__ */ React45.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React45.createElement(
|
|
6101
6004
|
Calendar_default,
|
|
6102
6005
|
{
|
|
6103
6006
|
view: "month",
|
|
@@ -6118,14 +6021,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6118
6021
|
disablePast,
|
|
6119
6022
|
locale
|
|
6120
6023
|
}
|
|
6121
|
-
), /* @__PURE__ */
|
|
6024
|
+
), /* @__PURE__ */ React45.createElement(
|
|
6122
6025
|
DialogActions_default,
|
|
6123
6026
|
{
|
|
6124
6027
|
sx: {
|
|
6125
6028
|
p: 1
|
|
6126
6029
|
}
|
|
6127
6030
|
},
|
|
6128
|
-
/* @__PURE__ */
|
|
6031
|
+
/* @__PURE__ */ React45.createElement(
|
|
6129
6032
|
Button_default,
|
|
6130
6033
|
{
|
|
6131
6034
|
size,
|
|
@@ -6148,7 +6051,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6148
6051
|
});
|
|
6149
6052
|
|
|
6150
6053
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
6151
|
-
import
|
|
6054
|
+
import React46, { forwardRef as forwardRef10, useCallback as useCallback25, useEffect as useEffect13, useImperativeHandle as useImperativeHandle5, useMemo as useMemo16, useRef as useRef11, useState as useState16 } from "react";
|
|
6152
6055
|
import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
|
|
6153
6056
|
import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
|
|
6154
6057
|
import { styled as styled23, useThemeProps as useThemeProps8 } from "@mui/joy";
|
|
@@ -6206,9 +6109,9 @@ var parseDates2 = (str) => {
|
|
|
6206
6109
|
var formatToPattern3 = (format) => {
|
|
6207
6110
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
6208
6111
|
};
|
|
6209
|
-
var TextMaskAdapter9 =
|
|
6112
|
+
var TextMaskAdapter9 = React46.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
6210
6113
|
const { onChange, format, ...other } = props;
|
|
6211
|
-
return /* @__PURE__ */
|
|
6114
|
+
return /* @__PURE__ */ React46.createElement(
|
|
6212
6115
|
IMaskInput3,
|
|
6213
6116
|
{
|
|
6214
6117
|
...other,
|
|
@@ -6260,7 +6163,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6260
6163
|
const [value, setValue] = useControlledState(
|
|
6261
6164
|
props.value,
|
|
6262
6165
|
props.defaultValue || "",
|
|
6263
|
-
|
|
6166
|
+
useCallback25((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
6264
6167
|
);
|
|
6265
6168
|
const [anchorEl, setAnchorEl] = useState16(null);
|
|
6266
6169
|
const open = Boolean(anchorEl);
|
|
@@ -6271,20 +6174,20 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6271
6174
|
}
|
|
6272
6175
|
}, [anchorEl, innerRef]);
|
|
6273
6176
|
useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
|
|
6274
|
-
const handleChange =
|
|
6177
|
+
const handleChange = useCallback25(
|
|
6275
6178
|
(event) => {
|
|
6276
6179
|
setValue(event.target.value);
|
|
6277
6180
|
},
|
|
6278
6181
|
[setValue]
|
|
6279
6182
|
);
|
|
6280
|
-
const handleCalendarToggle =
|
|
6183
|
+
const handleCalendarToggle = useCallback25(
|
|
6281
6184
|
(event) => {
|
|
6282
6185
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6283
6186
|
innerRef.current?.focus();
|
|
6284
6187
|
},
|
|
6285
6188
|
[anchorEl, setAnchorEl, innerRef]
|
|
6286
6189
|
);
|
|
6287
|
-
const handleCalendarChange =
|
|
6190
|
+
const handleCalendarChange = useCallback25(
|
|
6288
6191
|
([date1, date2]) => {
|
|
6289
6192
|
if (!date1 || !date2) return;
|
|
6290
6193
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -6292,7 +6195,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6292
6195
|
},
|
|
6293
6196
|
[setValue, setAnchorEl, format]
|
|
6294
6197
|
);
|
|
6295
|
-
return /* @__PURE__ */
|
|
6198
|
+
return /* @__PURE__ */ React46.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React46.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(
|
|
6296
6199
|
Input_default,
|
|
6297
6200
|
{
|
|
6298
6201
|
...innerProps,
|
|
@@ -6314,7 +6217,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6314
6217
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6315
6218
|
fontFamily: "monospace"
|
|
6316
6219
|
},
|
|
6317
|
-
endDecorator: /* @__PURE__ */
|
|
6220
|
+
endDecorator: /* @__PURE__ */ React46.createElement(
|
|
6318
6221
|
IconButton_default,
|
|
6319
6222
|
{
|
|
6320
6223
|
variant: "plain",
|
|
@@ -6324,12 +6227,12 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6324
6227
|
"aria-haspopup": "dialog",
|
|
6325
6228
|
"aria-expanded": open
|
|
6326
6229
|
},
|
|
6327
|
-
/* @__PURE__ */
|
|
6230
|
+
/* @__PURE__ */ React46.createElement(CalendarTodayIcon4, null)
|
|
6328
6231
|
),
|
|
6329
6232
|
label,
|
|
6330
6233
|
helperText
|
|
6331
6234
|
}
|
|
6332
|
-
), open && /* @__PURE__ */
|
|
6235
|
+
), open && /* @__PURE__ */ React46.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React46.createElement(
|
|
6333
6236
|
StyledPopper4,
|
|
6334
6237
|
{
|
|
6335
6238
|
id: "month-range-picker-popper",
|
|
@@ -6348,7 +6251,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6348
6251
|
"aria-label": "Calendar Tooltip",
|
|
6349
6252
|
"aria-expanded": open
|
|
6350
6253
|
},
|
|
6351
|
-
/* @__PURE__ */
|
|
6254
|
+
/* @__PURE__ */ React46.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React46.createElement(
|
|
6352
6255
|
Calendar_default,
|
|
6353
6256
|
{
|
|
6354
6257
|
view: "month",
|
|
@@ -6361,14 +6264,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6361
6264
|
disableFuture,
|
|
6362
6265
|
disablePast
|
|
6363
6266
|
}
|
|
6364
|
-
), /* @__PURE__ */
|
|
6267
|
+
), /* @__PURE__ */ React46.createElement(
|
|
6365
6268
|
DialogActions_default,
|
|
6366
6269
|
{
|
|
6367
6270
|
sx: {
|
|
6368
6271
|
p: 1
|
|
6369
6272
|
}
|
|
6370
6273
|
},
|
|
6371
|
-
/* @__PURE__ */
|
|
6274
|
+
/* @__PURE__ */ React46.createElement(
|
|
6372
6275
|
Button_default,
|
|
6373
6276
|
{
|
|
6374
6277
|
size,
|
|
@@ -6387,14 +6290,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6387
6290
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
6388
6291
|
|
|
6389
6292
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
6390
|
-
import
|
|
6293
|
+
import React47 from "react";
|
|
6391
6294
|
import {
|
|
6392
6295
|
Accordion as JoyAccordion2,
|
|
6393
6296
|
AccordionSummary as JoyAccordionSummary2,
|
|
6394
6297
|
AccordionDetails as JoyAccordionDetails2,
|
|
6395
6298
|
styled as styled24,
|
|
6396
6299
|
accordionSummaryClasses,
|
|
6397
|
-
Stack as
|
|
6300
|
+
Stack as Stack11
|
|
6398
6301
|
} from "@mui/joy";
|
|
6399
6302
|
var AccordionSummary2 = styled24(JoyAccordionSummary2, {
|
|
6400
6303
|
name: "NavigationGroup",
|
|
@@ -6418,11 +6321,11 @@ var AccordionDetails2 = styled24(JoyAccordionDetails2, {
|
|
|
6418
6321
|
}));
|
|
6419
6322
|
function NavigationGroup(props) {
|
|
6420
6323
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
6421
|
-
return /* @__PURE__ */
|
|
6324
|
+
return /* @__PURE__ */ React47.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React47.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React47.createElement(Stack11, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React47.createElement(AccordionDetails2, null, children));
|
|
6422
6325
|
}
|
|
6423
6326
|
|
|
6424
6327
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
6425
|
-
import
|
|
6328
|
+
import React48 from "react";
|
|
6426
6329
|
import {
|
|
6427
6330
|
ListItem as JoyListItem,
|
|
6428
6331
|
ListItemButton as JoyListItemButton,
|
|
@@ -6457,7 +6360,7 @@ function NavigationItem(props) {
|
|
|
6457
6360
|
const handleClick = () => {
|
|
6458
6361
|
onClick?.(id);
|
|
6459
6362
|
};
|
|
6460
|
-
return /* @__PURE__ */
|
|
6363
|
+
return /* @__PURE__ */ React48.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React48.createElement(
|
|
6461
6364
|
ListItemButton,
|
|
6462
6365
|
{
|
|
6463
6366
|
level,
|
|
@@ -6466,21 +6369,21 @@ function NavigationItem(props) {
|
|
|
6466
6369
|
"aria-current": selected,
|
|
6467
6370
|
onClick: handleClick
|
|
6468
6371
|
},
|
|
6469
|
-
startDecorator && /* @__PURE__ */
|
|
6372
|
+
startDecorator && /* @__PURE__ */ React48.createElement(JoyListItemDecorator, null, startDecorator),
|
|
6470
6373
|
children
|
|
6471
6374
|
));
|
|
6472
6375
|
}
|
|
6473
6376
|
|
|
6474
6377
|
// src/components/Navigator/Navigator.tsx
|
|
6475
|
-
import
|
|
6378
|
+
import React49 from "react";
|
|
6476
6379
|
function Navigator(props) {
|
|
6477
6380
|
const { items, level = 0, onSelect } = props;
|
|
6478
6381
|
const handleItemClick = (id) => {
|
|
6479
6382
|
onSelect?.(id);
|
|
6480
6383
|
};
|
|
6481
|
-
return /* @__PURE__ */
|
|
6384
|
+
return /* @__PURE__ */ React49.createElement("div", null, items.map((item, index) => {
|
|
6482
6385
|
if (item.type === "item") {
|
|
6483
|
-
return /* @__PURE__ */
|
|
6386
|
+
return /* @__PURE__ */ React49.createElement(
|
|
6484
6387
|
NavigationItem,
|
|
6485
6388
|
{
|
|
6486
6389
|
key: item.id,
|
|
@@ -6493,7 +6396,7 @@ function Navigator(props) {
|
|
|
6493
6396
|
item.title
|
|
6494
6397
|
);
|
|
6495
6398
|
} else if (item.type === "group") {
|
|
6496
|
-
return /* @__PURE__ */
|
|
6399
|
+
return /* @__PURE__ */ React49.createElement(
|
|
6497
6400
|
NavigationGroup,
|
|
6498
6401
|
{
|
|
6499
6402
|
key: `${item.title}-${index}`,
|
|
@@ -6511,7 +6414,7 @@ function Navigator(props) {
|
|
|
6511
6414
|
Navigator.displayName = "Navigator";
|
|
6512
6415
|
|
|
6513
6416
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
6514
|
-
import
|
|
6417
|
+
import React50, { useCallback as useCallback26, useMemo as useMemo17 } from "react";
|
|
6515
6418
|
import { Dropdown as Dropdown2, ListDivider, menuItemClasses, styled as styled26, MenuButton as MenuButton2 } from "@mui/joy";
|
|
6516
6419
|
import { ClickAwayListener as ClickAwayListener5 } from "@mui/base";
|
|
6517
6420
|
import DropdownIcon from "@mui/icons-material/ArrowDropDown";
|
|
@@ -6523,7 +6426,7 @@ function ProfileCard(props) {
|
|
|
6523
6426
|
const { children, chip, caption, size } = props;
|
|
6524
6427
|
const captionLevel = useMemo17(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
6525
6428
|
const nameLevel = useMemo17(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
6526
|
-
return /* @__PURE__ */
|
|
6429
|
+
return /* @__PURE__ */ React50.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ React50.createElement(Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ React50.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ React50.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ React50.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
|
|
6527
6430
|
}
|
|
6528
6431
|
ProfileCard.displayName = "ProfileCard";
|
|
6529
6432
|
var StyledProfileMenuButton = styled26(MenuButton2, {
|
|
@@ -6535,16 +6438,16 @@ var StyledProfileMenuButton = styled26(MenuButton2, {
|
|
|
6535
6438
|
}));
|
|
6536
6439
|
function ProfileMenuButton(props) {
|
|
6537
6440
|
const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
|
|
6538
|
-
return /* @__PURE__ */
|
|
6441
|
+
return /* @__PURE__ */ React50.createElement(
|
|
6539
6442
|
StyledProfileMenuButton,
|
|
6540
6443
|
{
|
|
6541
6444
|
variant: "plain",
|
|
6542
6445
|
color: "neutral",
|
|
6543
6446
|
size,
|
|
6544
|
-
endDecorator: /* @__PURE__ */
|
|
6447
|
+
endDecorator: /* @__PURE__ */ React50.createElement(DropdownIcon, null),
|
|
6545
6448
|
...innerProps
|
|
6546
6449
|
},
|
|
6547
|
-
/* @__PURE__ */
|
|
6450
|
+
/* @__PURE__ */ React50.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
6548
6451
|
);
|
|
6549
6452
|
}
|
|
6550
6453
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
@@ -6563,9 +6466,9 @@ function ProfileMenu(props) {
|
|
|
6563
6466
|
const [open, setOpen] = useControlledState(
|
|
6564
6467
|
_open,
|
|
6565
6468
|
defaultOpen ?? false,
|
|
6566
|
-
|
|
6469
|
+
useCallback26((value) => onOpenChange?.(value), [onOpenChange])
|
|
6567
6470
|
);
|
|
6568
|
-
return /* @__PURE__ */
|
|
6471
|
+
return /* @__PURE__ */ React50.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React50.createElement("div", null, /* @__PURE__ */ React50.createElement(Dropdown2, { open }, /* @__PURE__ */ React50.createElement(
|
|
6569
6472
|
ProfileMenuButton,
|
|
6570
6473
|
{
|
|
6571
6474
|
size,
|
|
@@ -6575,7 +6478,7 @@ function ProfileMenu(props) {
|
|
|
6575
6478
|
getInitial
|
|
6576
6479
|
},
|
|
6577
6480
|
profile.name
|
|
6578
|
-
), /* @__PURE__ */
|
|
6481
|
+
), /* @__PURE__ */ React50.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ React50.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ React50.createElement(ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ React50.createElement(
|
|
6579
6482
|
MenuItem,
|
|
6580
6483
|
{
|
|
6581
6484
|
key: label,
|
|
@@ -6591,7 +6494,7 @@ function ProfileMenu(props) {
|
|
|
6591
6494
|
ProfileMenu.displayName = "ProfileMenu";
|
|
6592
6495
|
|
|
6593
6496
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
6594
|
-
import
|
|
6497
|
+
import React51 from "react";
|
|
6595
6498
|
import { styled as styled27, radioClasses, sheetClasses } from "@mui/joy";
|
|
6596
6499
|
var RadioTileGroupRoot = styled27(RadioGroup, {
|
|
6597
6500
|
name: "RadioTileGroup",
|
|
@@ -6679,7 +6582,7 @@ function RadioTileGroup(props) {
|
|
|
6679
6582
|
error,
|
|
6680
6583
|
required
|
|
6681
6584
|
} = props;
|
|
6682
|
-
const radioGroup = /* @__PURE__ */
|
|
6585
|
+
const radioGroup = /* @__PURE__ */ React51.createElement(
|
|
6683
6586
|
RadioTileGroupRoot,
|
|
6684
6587
|
{
|
|
6685
6588
|
overlay: true,
|
|
@@ -6690,7 +6593,7 @@ function RadioTileGroup(props) {
|
|
|
6690
6593
|
flex,
|
|
6691
6594
|
columns
|
|
6692
6595
|
},
|
|
6693
|
-
options.map((option) => /* @__PURE__ */
|
|
6596
|
+
options.map((option) => /* @__PURE__ */ React51.createElement(
|
|
6694
6597
|
RadioTileSheet,
|
|
6695
6598
|
{
|
|
6696
6599
|
key: option.value,
|
|
@@ -6700,7 +6603,7 @@ function RadioTileGroup(props) {
|
|
|
6700
6603
|
flex,
|
|
6701
6604
|
textAlign
|
|
6702
6605
|
},
|
|
6703
|
-
/* @__PURE__ */
|
|
6606
|
+
/* @__PURE__ */ React51.createElement(
|
|
6704
6607
|
Radio,
|
|
6705
6608
|
{
|
|
6706
6609
|
id: `${option.value}`,
|
|
@@ -6728,7 +6631,7 @@ function RadioTileGroup(props) {
|
|
|
6728
6631
|
}
|
|
6729
6632
|
}
|
|
6730
6633
|
),
|
|
6731
|
-
option.startDecorator && /* @__PURE__ */
|
|
6634
|
+
option.startDecorator && /* @__PURE__ */ React51.createElement(
|
|
6732
6635
|
Box_default,
|
|
6733
6636
|
{
|
|
6734
6637
|
sx: {
|
|
@@ -6749,20 +6652,20 @@ function RadioTileGroup(props) {
|
|
|
6749
6652
|
)
|
|
6750
6653
|
))
|
|
6751
6654
|
);
|
|
6752
|
-
return /* @__PURE__ */
|
|
6655
|
+
return /* @__PURE__ */ React51.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ React51.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ React51.createElement(FormHelperText_default, null, helperText));
|
|
6753
6656
|
}
|
|
6754
6657
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
6755
6658
|
|
|
6756
6659
|
// src/components/RadioList/RadioList.tsx
|
|
6757
|
-
import
|
|
6660
|
+
import React52 from "react";
|
|
6758
6661
|
function RadioList(props) {
|
|
6759
6662
|
const { items, ...innerProps } = props;
|
|
6760
|
-
return /* @__PURE__ */
|
|
6663
|
+
return /* @__PURE__ */ React52.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React52.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
6761
6664
|
}
|
|
6762
6665
|
RadioList.displayName = "RadioList";
|
|
6763
6666
|
|
|
6764
6667
|
// src/components/Stepper/Stepper.tsx
|
|
6765
|
-
import
|
|
6668
|
+
import React53 from "react";
|
|
6766
6669
|
import {
|
|
6767
6670
|
Stepper as JoyStepper,
|
|
6768
6671
|
Step as JoyStep,
|
|
@@ -6798,7 +6701,7 @@ function Stepper(props) {
|
|
|
6798
6701
|
stepOrientation = "horizontal"
|
|
6799
6702
|
} = props;
|
|
6800
6703
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
6801
|
-
return /* @__PURE__ */
|
|
6704
|
+
return /* @__PURE__ */ React53.createElement(
|
|
6802
6705
|
MotionStepper,
|
|
6803
6706
|
{
|
|
6804
6707
|
orientation,
|
|
@@ -6837,23 +6740,23 @@ function Stepper(props) {
|
|
|
6837
6740
|
const completed = activeStep > i + 1;
|
|
6838
6741
|
const disabled = activeStep < i + 1;
|
|
6839
6742
|
const hasContent = step.label || step.extraContent;
|
|
6840
|
-
return /* @__PURE__ */
|
|
6743
|
+
return /* @__PURE__ */ React53.createElement(
|
|
6841
6744
|
Step,
|
|
6842
6745
|
{
|
|
6843
6746
|
key: `step-${i}`,
|
|
6844
|
-
indicator: /* @__PURE__ */
|
|
6747
|
+
indicator: /* @__PURE__ */ React53.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React53.createElement(CheckIcon, null) : step.indicatorContent),
|
|
6845
6748
|
active,
|
|
6846
6749
|
completed,
|
|
6847
6750
|
disabled,
|
|
6848
6751
|
orientation: effectiveStepOrientation
|
|
6849
6752
|
},
|
|
6850
|
-
hasContent && /* @__PURE__ */
|
|
6753
|
+
hasContent && /* @__PURE__ */ React53.createElement(
|
|
6851
6754
|
Stack_default,
|
|
6852
6755
|
{
|
|
6853
6756
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
6854
6757
|
},
|
|
6855
|
-
step.label && /* @__PURE__ */
|
|
6856
|
-
step.extraContent && /* @__PURE__ */
|
|
6758
|
+
step.label && /* @__PURE__ */ React53.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
6759
|
+
step.extraContent && /* @__PURE__ */ React53.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
6857
6760
|
)
|
|
6858
6761
|
);
|
|
6859
6762
|
})
|
|
@@ -6862,7 +6765,7 @@ function Stepper(props) {
|
|
|
6862
6765
|
Stepper.displayName = "Stepper";
|
|
6863
6766
|
|
|
6864
6767
|
// src/components/Switch/Switch.tsx
|
|
6865
|
-
import
|
|
6768
|
+
import React54 from "react";
|
|
6866
6769
|
import { Switch as JoySwitch, styled as styled29, switchClasses } from "@mui/joy";
|
|
6867
6770
|
import { motion as motion27 } from "framer-motion";
|
|
6868
6771
|
var MotionSwitch = motion27(JoySwitch);
|
|
@@ -6884,14 +6787,14 @@ var StyledThumb = styled29(motion27.div)({
|
|
|
6884
6787
|
right: "var(--Switch-thumbOffset)"
|
|
6885
6788
|
}
|
|
6886
6789
|
});
|
|
6887
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6790
|
+
var Thumb = (props) => /* @__PURE__ */ React54.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6888
6791
|
var spring = {
|
|
6889
6792
|
type: "spring",
|
|
6890
6793
|
stiffness: 700,
|
|
6891
6794
|
damping: 30
|
|
6892
6795
|
};
|
|
6893
6796
|
var Switch = (props) => {
|
|
6894
|
-
return /* @__PURE__ */
|
|
6797
|
+
return /* @__PURE__ */ React54.createElement(
|
|
6895
6798
|
MotionSwitch,
|
|
6896
6799
|
{
|
|
6897
6800
|
...props,
|
|
@@ -6905,7 +6808,7 @@ var Switch = (props) => {
|
|
|
6905
6808
|
Switch.displayName = "Switch";
|
|
6906
6809
|
|
|
6907
6810
|
// src/components/Tabs/Tabs.tsx
|
|
6908
|
-
import
|
|
6811
|
+
import React55, { forwardRef as forwardRef11 } from "react";
|
|
6909
6812
|
import {
|
|
6910
6813
|
Tabs as JoyTabs,
|
|
6911
6814
|
Tab as JoyTab,
|
|
@@ -6929,14 +6832,14 @@ var StyledTab = styled30(JoyTab)(({ theme }) => ({
|
|
|
6929
6832
|
}
|
|
6930
6833
|
}));
|
|
6931
6834
|
var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6932
|
-
return /* @__PURE__ */
|
|
6835
|
+
return /* @__PURE__ */ React55.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6933
6836
|
});
|
|
6934
6837
|
Tab.displayName = "Tab";
|
|
6935
6838
|
var TabList = JoyTabList;
|
|
6936
6839
|
var TabPanel = JoyTabPanel;
|
|
6937
6840
|
|
|
6938
6841
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6939
|
-
import
|
|
6842
|
+
import React56 from "react";
|
|
6940
6843
|
import { CssBaseline, CssVarsProvider, checkboxClasses, extendTheme, inputClasses } from "@mui/joy";
|
|
6941
6844
|
var colorScheme = {
|
|
6942
6845
|
palette: {
|
|
@@ -7215,7 +7118,7 @@ var defaultTheme = extendTheme({
|
|
|
7215
7118
|
});
|
|
7216
7119
|
function ThemeProvider(props) {
|
|
7217
7120
|
const theme = props.theme || defaultTheme;
|
|
7218
|
-
return /* @__PURE__ */
|
|
7121
|
+
return /* @__PURE__ */ React56.createElement(React56.Fragment, null, /* @__PURE__ */ React56.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React56.createElement(CssBaseline, null), props.children));
|
|
7219
7122
|
}
|
|
7220
7123
|
ThemeProvider.displayName = "ThemeProvider";
|
|
7221
7124
|
export {
|