@ceed/cds 1.14.0 → 1.15.0-next.10
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/FilterableCheckboxGroup/FilterableCheckboxGroup.d.ts +23 -0
- package/dist/components/FilterableCheckboxGroup/index.d.ts +3 -0
- package/dist/components/Pagination/Pagination.d.ts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/inputs/FilterableCheckboxGroup.md +179 -0
- package/dist/components/inputs/llms.txt +1 -0
- package/dist/components/navigation/Pagination.md +2 -2
- package/dist/index.cjs +455 -133
- package/dist/index.d.ts +1 -1
- package/dist/index.js +446 -124
- package/dist/llms.txt +1 -0
- package/framer/index.js +51 -51
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -3466,8 +3466,10 @@ TableBody.displayName = "TableBody";
|
|
|
3466
3466
|
|
|
3467
3467
|
// src/components/Pagination/Pagination.tsx
|
|
3468
3468
|
import React24, { useCallback as useCallback10, useEffect as useEffect6 } from "react";
|
|
3469
|
-
import PreviousIcon from "@mui/icons-material/
|
|
3470
|
-
import NextIcon from "@mui/icons-material/
|
|
3469
|
+
import PreviousIcon from "@mui/icons-material/ChevronLeftRounded";
|
|
3470
|
+
import NextIcon from "@mui/icons-material/ChevronRightRounded";
|
|
3471
|
+
import FirstPageIcon from "@mui/icons-material/FirstPageRounded";
|
|
3472
|
+
import LastPageIcon from "@mui/icons-material/LastPageRounded";
|
|
3471
3473
|
import { styled as styled13 } from "@mui/joy";
|
|
3472
3474
|
var PaginationButton = styled13(Button_default, {
|
|
3473
3475
|
name: "Pagination",
|
|
@@ -3526,6 +3528,7 @@ function Pagination(props) {
|
|
|
3526
3528
|
onPageChange,
|
|
3527
3529
|
rowCount,
|
|
3528
3530
|
size = "md",
|
|
3531
|
+
variant = "standard",
|
|
3529
3532
|
...innerProps
|
|
3530
3533
|
} = props;
|
|
3531
3534
|
const [paginationModel, setPaginationModel] = useControlledState(
|
|
@@ -3552,6 +3555,87 @@ function Pagination(props) {
|
|
|
3552
3555
|
setPaginationModel({ ...paginationModel, page: lastPage });
|
|
3553
3556
|
}
|
|
3554
3557
|
}, [rowCount, paginationModel, lastPage, setPaginationModel]);
|
|
3558
|
+
const pageOptions = Array.from({ length: lastPage }, (_, i) => ({
|
|
3559
|
+
label: `${i + 1}`,
|
|
3560
|
+
value: `${i + 1}`
|
|
3561
|
+
}));
|
|
3562
|
+
if (variant === "compact") {
|
|
3563
|
+
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(
|
|
3564
|
+
PaginationIconButton,
|
|
3565
|
+
{
|
|
3566
|
+
size,
|
|
3567
|
+
variant: "plain",
|
|
3568
|
+
color: "neutral",
|
|
3569
|
+
onClick: () => handlePageChange(firstPage),
|
|
3570
|
+
disabled: paginationModel.page === firstPage,
|
|
3571
|
+
"aria-label": "First page"
|
|
3572
|
+
},
|
|
3573
|
+
/* @__PURE__ */ React24.createElement(FirstPageIcon, null)
|
|
3574
|
+
), /* @__PURE__ */ React24.createElement(
|
|
3575
|
+
PaginationIconButton,
|
|
3576
|
+
{
|
|
3577
|
+
size,
|
|
3578
|
+
variant: "plain",
|
|
3579
|
+
color: "neutral",
|
|
3580
|
+
onClick: () => handlePageChange(paginationModel.page - 1),
|
|
3581
|
+
disabled: paginationModel.page === firstPage,
|
|
3582
|
+
"aria-label": "Previous page"
|
|
3583
|
+
},
|
|
3584
|
+
/* @__PURE__ */ React24.createElement(PreviousIcon, null)
|
|
3585
|
+
)), /* @__PURE__ */ React24.createElement(
|
|
3586
|
+
Autocomplete_default,
|
|
3587
|
+
{
|
|
3588
|
+
size,
|
|
3589
|
+
value: `${paginationModel.page}`,
|
|
3590
|
+
onChange: (event) => {
|
|
3591
|
+
if (event.target.value) {
|
|
3592
|
+
handlePageChange(parseInt(event.target.value, 10));
|
|
3593
|
+
}
|
|
3594
|
+
},
|
|
3595
|
+
options: pageOptions,
|
|
3596
|
+
sx: {
|
|
3597
|
+
width: {
|
|
3598
|
+
sm: "80px",
|
|
3599
|
+
md: "100px",
|
|
3600
|
+
lg: "120px"
|
|
3601
|
+
}[size]
|
|
3602
|
+
}
|
|
3603
|
+
}
|
|
3604
|
+
), /* @__PURE__ */ React24.createElement(
|
|
3605
|
+
Typography_default,
|
|
3606
|
+
{
|
|
3607
|
+
level: `body-${size}`,
|
|
3608
|
+
sx: (theme) => ({
|
|
3609
|
+
color: theme.palette.text.secondary,
|
|
3610
|
+
fontWeight: 500
|
|
3611
|
+
})
|
|
3612
|
+
},
|
|
3613
|
+
"/ ",
|
|
3614
|
+
lastPage
|
|
3615
|
+
), /* @__PURE__ */ React24.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React24.createElement(
|
|
3616
|
+
PaginationIconButton,
|
|
3617
|
+
{
|
|
3618
|
+
size,
|
|
3619
|
+
variant: "plain",
|
|
3620
|
+
color: "neutral",
|
|
3621
|
+
onClick: () => handlePageChange(paginationModel.page + 1),
|
|
3622
|
+
disabled: paginationModel.page === lastPage,
|
|
3623
|
+
"aria-label": "Next page"
|
|
3624
|
+
},
|
|
3625
|
+
/* @__PURE__ */ React24.createElement(NextIcon, null)
|
|
3626
|
+
), /* @__PURE__ */ React24.createElement(
|
|
3627
|
+
PaginationIconButton,
|
|
3628
|
+
{
|
|
3629
|
+
size,
|
|
3630
|
+
variant: "plain",
|
|
3631
|
+
color: "neutral",
|
|
3632
|
+
onClick: () => handlePageChange(lastPage),
|
|
3633
|
+
disabled: paginationModel.page === lastPage,
|
|
3634
|
+
"aria-label": "Last page"
|
|
3635
|
+
},
|
|
3636
|
+
/* @__PURE__ */ React24.createElement(LastPageIcon, null)
|
|
3637
|
+
))));
|
|
3638
|
+
}
|
|
3555
3639
|
return /* @__PURE__ */ React24.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React24.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React24.createElement(
|
|
3556
3640
|
PaginationIconButton,
|
|
3557
3641
|
{
|
|
@@ -3573,7 +3657,7 @@ function Pagination(props) {
|
|
|
3573
3657
|
"aria-label": "More previous pages"
|
|
3574
3658
|
},
|
|
3575
3659
|
"..."
|
|
3576
|
-
), beforePages.map((p) => /* @__PURE__ */ React24.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ React24.createElement(PaginationButton, { active: "
|
|
3660
|
+
), beforePages.map((p) => /* @__PURE__ */ React24.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ React24.createElement(PaginationButton, { active: "true", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ React24.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ React24.createElement(
|
|
3577
3661
|
PaginationButton,
|
|
3578
3662
|
{
|
|
3579
3663
|
size,
|
|
@@ -4442,11 +4526,248 @@ var InsetDrawer = styled20(JoyDrawer2)(({ theme }) => ({
|
|
|
4442
4526
|
}
|
|
4443
4527
|
}));
|
|
4444
4528
|
|
|
4529
|
+
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
4530
|
+
import React31, { useCallback as useCallback13, useEffect as useEffect8, useMemo as useMemo12, useRef as useRef8, useState as useState10 } from "react";
|
|
4531
|
+
import SearchIcon from "@mui/icons-material/Search";
|
|
4532
|
+
import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
|
|
4533
|
+
function LabelWithTooltip(props) {
|
|
4534
|
+
const { label, size } = props;
|
|
4535
|
+
const labelContentRef = useRef8(null);
|
|
4536
|
+
const [isOverflowing, setIsOverflowing] = useState10(false);
|
|
4537
|
+
const labelContent = /* @__PURE__ */ React31.createElement(
|
|
4538
|
+
"span",
|
|
4539
|
+
{
|
|
4540
|
+
ref: labelContentRef,
|
|
4541
|
+
style: {
|
|
4542
|
+
textOverflow: "ellipsis",
|
|
4543
|
+
overflow: "hidden",
|
|
4544
|
+
whiteSpace: "nowrap",
|
|
4545
|
+
display: "block",
|
|
4546
|
+
position: "relative",
|
|
4547
|
+
zIndex: 1,
|
|
4548
|
+
cursor: "pointer"
|
|
4549
|
+
}
|
|
4550
|
+
},
|
|
4551
|
+
label
|
|
4552
|
+
);
|
|
4553
|
+
useEffect8(() => {
|
|
4554
|
+
const element = labelContentRef.current;
|
|
4555
|
+
if (element) {
|
|
4556
|
+
setIsOverflowing(element.scrollWidth > element.clientWidth);
|
|
4557
|
+
}
|
|
4558
|
+
}, [label]);
|
|
4559
|
+
if (isOverflowing) {
|
|
4560
|
+
return /* @__PURE__ */ React31.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
|
|
4561
|
+
}
|
|
4562
|
+
return labelContent;
|
|
4563
|
+
}
|
|
4564
|
+
function FilterableCheckboxGroup(props) {
|
|
4565
|
+
const {
|
|
4566
|
+
value,
|
|
4567
|
+
options,
|
|
4568
|
+
label,
|
|
4569
|
+
placeholder,
|
|
4570
|
+
helperText,
|
|
4571
|
+
size = "md",
|
|
4572
|
+
required,
|
|
4573
|
+
onChange,
|
|
4574
|
+
maxHeight = 300,
|
|
4575
|
+
disabled
|
|
4576
|
+
} = props;
|
|
4577
|
+
const [searchTerm, setSearchTerm] = useState10("");
|
|
4578
|
+
const [sortedOptions, setSortedOptions] = useState10(options);
|
|
4579
|
+
const [internalValue, setInternalValue] = useControlledState(
|
|
4580
|
+
value,
|
|
4581
|
+
value ?? [],
|
|
4582
|
+
useCallback13((newValue) => onChange?.(newValue), [onChange])
|
|
4583
|
+
);
|
|
4584
|
+
const parentRef = useRef8(null);
|
|
4585
|
+
const isInitialSortRef = useRef8(false);
|
|
4586
|
+
const filteredOptions = useMemo12(() => {
|
|
4587
|
+
if (!searchTerm) return sortedOptions;
|
|
4588
|
+
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
4589
|
+
}, [sortedOptions, searchTerm]);
|
|
4590
|
+
const itemSize = useMemo12(() => {
|
|
4591
|
+
switch (size) {
|
|
4592
|
+
case "sm":
|
|
4593
|
+
return 28;
|
|
4594
|
+
case "md":
|
|
4595
|
+
return 32;
|
|
4596
|
+
case "lg":
|
|
4597
|
+
return 36;
|
|
4598
|
+
}
|
|
4599
|
+
}, [size]);
|
|
4600
|
+
const noOptionsFontSize = useMemo12(() => {
|
|
4601
|
+
switch (size) {
|
|
4602
|
+
case "sm":
|
|
4603
|
+
return "14px";
|
|
4604
|
+
case "md":
|
|
4605
|
+
return "16px";
|
|
4606
|
+
case "lg":
|
|
4607
|
+
return "18px";
|
|
4608
|
+
}
|
|
4609
|
+
}, [size]);
|
|
4610
|
+
const virtualizer = useVirtualizer3({
|
|
4611
|
+
count: filteredOptions.length,
|
|
4612
|
+
estimateSize: () => itemSize,
|
|
4613
|
+
measureElement: (element) => element.clientHeight,
|
|
4614
|
+
getScrollElement: () => parentRef.current,
|
|
4615
|
+
overscan: 5
|
|
4616
|
+
});
|
|
4617
|
+
const items = virtualizer.getVirtualItems();
|
|
4618
|
+
useEffect8(() => {
|
|
4619
|
+
if (isInitialSortRef.current) return;
|
|
4620
|
+
const initialValue = value ?? [];
|
|
4621
|
+
const sorted = [...options].sort((a, b) => {
|
|
4622
|
+
const aSelected = initialValue.includes(a.value);
|
|
4623
|
+
const bSelected = initialValue.includes(b.value);
|
|
4624
|
+
if (aSelected !== bSelected) {
|
|
4625
|
+
return aSelected ? -1 : 1;
|
|
4626
|
+
}
|
|
4627
|
+
const aIsAlpha = /^[a-zA-Z]/.test(a.label);
|
|
4628
|
+
const bIsAlpha = /^[a-zA-Z]/.test(b.label);
|
|
4629
|
+
if (aIsAlpha !== bIsAlpha) {
|
|
4630
|
+
return aIsAlpha ? -1 : 1;
|
|
4631
|
+
}
|
|
4632
|
+
return a.label.localeCompare(b.label);
|
|
4633
|
+
});
|
|
4634
|
+
setSortedOptions(sorted);
|
|
4635
|
+
isInitialSortRef.current = true;
|
|
4636
|
+
}, [options, value]);
|
|
4637
|
+
useEffect8(() => {
|
|
4638
|
+
virtualizer.measure();
|
|
4639
|
+
}, [virtualizer, filteredOptions]);
|
|
4640
|
+
const handleSearchChange = useCallback13((event) => {
|
|
4641
|
+
setSearchTerm(event.target.value);
|
|
4642
|
+
}, []);
|
|
4643
|
+
const handleCheckboxChange = useCallback13(
|
|
4644
|
+
(optionValue) => (event) => {
|
|
4645
|
+
const checked = event.target.checked;
|
|
4646
|
+
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
4647
|
+
setInternalValue(newValue);
|
|
4648
|
+
},
|
|
4649
|
+
[internalValue, setInternalValue]
|
|
4650
|
+
);
|
|
4651
|
+
const handleSelectAll = useCallback13(
|
|
4652
|
+
(event) => {
|
|
4653
|
+
const checked = event.target.checked;
|
|
4654
|
+
const enabledOptions = filteredOptions.filter((option) => !option.disabled);
|
|
4655
|
+
const disabledSelectedValues = internalValue.filter(
|
|
4656
|
+
(v) => filteredOptions.some((opt) => opt.value === v && opt.disabled)
|
|
4657
|
+
);
|
|
4658
|
+
if (checked) {
|
|
4659
|
+
const enabledValues = enabledOptions.map((option) => option.value);
|
|
4660
|
+
setInternalValue([...disabledSelectedValues, ...enabledValues]);
|
|
4661
|
+
} else {
|
|
4662
|
+
setInternalValue(disabledSelectedValues);
|
|
4663
|
+
}
|
|
4664
|
+
},
|
|
4665
|
+
[filteredOptions, internalValue, setInternalValue]
|
|
4666
|
+
);
|
|
4667
|
+
const enabledFilteredOptions = useMemo12(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
|
|
4668
|
+
const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
|
|
4669
|
+
const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
|
|
4670
|
+
return /* @__PURE__ */ React31.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ React31.createElement(
|
|
4671
|
+
Input_default,
|
|
4672
|
+
{
|
|
4673
|
+
label,
|
|
4674
|
+
helperText,
|
|
4675
|
+
required,
|
|
4676
|
+
variant: "outlined",
|
|
4677
|
+
color: "neutral",
|
|
4678
|
+
placeholder,
|
|
4679
|
+
value: searchTerm,
|
|
4680
|
+
onChange: handleSearchChange,
|
|
4681
|
+
size,
|
|
4682
|
+
disabled,
|
|
4683
|
+
endDecorator: /* @__PURE__ */ React31.createElement(SearchIcon, null)
|
|
4684
|
+
}
|
|
4685
|
+
), filteredOptions.length === 0 ? /* @__PURE__ */ React31.createElement(
|
|
4686
|
+
Stack_default,
|
|
4687
|
+
{
|
|
4688
|
+
sx: (theme) => ({
|
|
4689
|
+
padding: "20px 12px",
|
|
4690
|
+
justifyContent: "center",
|
|
4691
|
+
alignItems: "center",
|
|
4692
|
+
fontSize: noOptionsFontSize,
|
|
4693
|
+
color: theme.palette.neutral.softDisabledColor
|
|
4694
|
+
})
|
|
4695
|
+
},
|
|
4696
|
+
"No options found."
|
|
4697
|
+
) : /* @__PURE__ */ React31.createElement(
|
|
4698
|
+
"div",
|
|
4699
|
+
{
|
|
4700
|
+
ref: parentRef,
|
|
4701
|
+
style: {
|
|
4702
|
+
overflow: "auto",
|
|
4703
|
+
maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight,
|
|
4704
|
+
padding: "8px 0px",
|
|
4705
|
+
marginTop: "8px"
|
|
4706
|
+
}
|
|
4707
|
+
},
|
|
4708
|
+
!searchTerm && /* @__PURE__ */ React31.createElement(
|
|
4709
|
+
Checkbox_default,
|
|
4710
|
+
{
|
|
4711
|
+
label: "Select all",
|
|
4712
|
+
checked: isAllSelected,
|
|
4713
|
+
indeterminate: isIndeterminate,
|
|
4714
|
+
onChange: handleSelectAll,
|
|
4715
|
+
size,
|
|
4716
|
+
disabled,
|
|
4717
|
+
slotProps: {
|
|
4718
|
+
action: {
|
|
4719
|
+
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4720
|
+
}
|
|
4721
|
+
},
|
|
4722
|
+
sx: { width: "100%", height: itemSize }
|
|
4723
|
+
}
|
|
4724
|
+
),
|
|
4725
|
+
/* @__PURE__ */ React31.createElement(
|
|
4726
|
+
Stack_default,
|
|
4727
|
+
{
|
|
4728
|
+
sx: {
|
|
4729
|
+
height: `${virtualizer.getTotalSize()}px`,
|
|
4730
|
+
position: "relative"
|
|
4731
|
+
}
|
|
4732
|
+
},
|
|
4733
|
+
items.map((virtualRow) => {
|
|
4734
|
+
const option = filteredOptions[virtualRow.index];
|
|
4735
|
+
return /* @__PURE__ */ React31.createElement(
|
|
4736
|
+
Checkbox_default,
|
|
4737
|
+
{
|
|
4738
|
+
key: virtualRow.key,
|
|
4739
|
+
label: /* @__PURE__ */ React31.createElement(LabelWithTooltip, { label: option.label, size }),
|
|
4740
|
+
checked: internalValue.includes(option.value),
|
|
4741
|
+
onChange: handleCheckboxChange(option.value),
|
|
4742
|
+
size,
|
|
4743
|
+
disabled: disabled || option.disabled,
|
|
4744
|
+
slotProps: {
|
|
4745
|
+
action: {
|
|
4746
|
+
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4747
|
+
// NOTE: 불필요한 좌우 스크롤 방지
|
|
4748
|
+
}
|
|
4749
|
+
},
|
|
4750
|
+
sx: {
|
|
4751
|
+
position: "absolute",
|
|
4752
|
+
top: 0,
|
|
4753
|
+
left: 0,
|
|
4754
|
+
width: "100%",
|
|
4755
|
+
height: `${virtualRow.size}px`,
|
|
4756
|
+
transform: `translateY(${virtualRow.start}px)`
|
|
4757
|
+
}
|
|
4758
|
+
}
|
|
4759
|
+
);
|
|
4760
|
+
})
|
|
4761
|
+
)
|
|
4762
|
+
));
|
|
4763
|
+
}
|
|
4764
|
+
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
4765
|
+
|
|
4445
4766
|
// src/components/Grid/Grid.tsx
|
|
4446
4767
|
import { Grid } from "@mui/joy";
|
|
4447
4768
|
|
|
4448
4769
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
4449
|
-
import
|
|
4770
|
+
import React32 from "react";
|
|
4450
4771
|
import { MenuButton as JoyMenuButton2, IconButton as JoyIconButton2 } from "@mui/joy";
|
|
4451
4772
|
function IconMenuButton(props) {
|
|
4452
4773
|
const {
|
|
@@ -4460,7 +4781,7 @@ function IconMenuButton(props) {
|
|
|
4460
4781
|
placement = "bottom"
|
|
4461
4782
|
} = props;
|
|
4462
4783
|
if (!items.length) {
|
|
4463
|
-
return /* @__PURE__ */
|
|
4784
|
+
return /* @__PURE__ */ React32.createElement(
|
|
4464
4785
|
JoyIconButton2,
|
|
4465
4786
|
{
|
|
4466
4787
|
component: props.buttonComponent ?? "button",
|
|
@@ -4474,7 +4795,7 @@ function IconMenuButton(props) {
|
|
|
4474
4795
|
icon
|
|
4475
4796
|
);
|
|
4476
4797
|
}
|
|
4477
|
-
return /* @__PURE__ */
|
|
4798
|
+
return /* @__PURE__ */ React32.createElement(Dropdown_default, null, /* @__PURE__ */ React32.createElement(
|
|
4478
4799
|
JoyMenuButton2,
|
|
4479
4800
|
{
|
|
4480
4801
|
slots: { root: JoyIconButton2 },
|
|
@@ -4491,19 +4812,19 @@ function IconMenuButton(props) {
|
|
|
4491
4812
|
}
|
|
4492
4813
|
},
|
|
4493
4814
|
icon
|
|
4494
|
-
), /* @__PURE__ */
|
|
4815
|
+
), /* @__PURE__ */ React32.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React32.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
4495
4816
|
}
|
|
4496
4817
|
IconMenuButton.displayName = "IconMenuButton";
|
|
4497
4818
|
|
|
4498
4819
|
// src/components/Markdown/Markdown.tsx
|
|
4499
|
-
import
|
|
4820
|
+
import React33, { lazy, Suspense, useEffect as useEffect9, useState as useState11 } from "react";
|
|
4500
4821
|
import { Skeleton } from "@mui/joy";
|
|
4501
4822
|
import { Link as Link2 } from "@mui/joy";
|
|
4502
4823
|
import remarkGfm from "remark-gfm";
|
|
4503
4824
|
var LazyReactMarkdown = lazy(() => import("react-markdown"));
|
|
4504
4825
|
var Markdown = (props) => {
|
|
4505
|
-
const [rehypeAccent2, setRehypeAccent] =
|
|
4506
|
-
|
|
4826
|
+
const [rehypeAccent2, setRehypeAccent] = useState11(null);
|
|
4827
|
+
useEffect9(() => {
|
|
4507
4828
|
const loadRehypeAccent = async () => {
|
|
4508
4829
|
const module = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
4509
4830
|
setRehypeAccent(() => module.rehypeAccent);
|
|
@@ -4525,12 +4846,12 @@ var Markdown = (props) => {
|
|
|
4525
4846
|
if (!rehypeAccent2) {
|
|
4526
4847
|
return null;
|
|
4527
4848
|
}
|
|
4528
|
-
return /* @__PURE__ */
|
|
4849
|
+
return /* @__PURE__ */ React33.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React33.createElement(
|
|
4529
4850
|
Suspense,
|
|
4530
4851
|
{
|
|
4531
|
-
fallback: fallback || /* @__PURE__ */
|
|
4852
|
+
fallback: fallback || /* @__PURE__ */ React33.createElement(Typography, null, /* @__PURE__ */ React33.createElement(Skeleton, null, content || ""))
|
|
4532
4853
|
},
|
|
4533
|
-
/* @__PURE__ */
|
|
4854
|
+
/* @__PURE__ */ React33.createElement(
|
|
4534
4855
|
LazyReactMarkdown,
|
|
4535
4856
|
{
|
|
4536
4857
|
...markdownOptions,
|
|
@@ -4538,15 +4859,15 @@ var Markdown = (props) => {
|
|
|
4538
4859
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
4539
4860
|
remarkPlugins: [remarkGfm],
|
|
4540
4861
|
components: {
|
|
4541
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
4542
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
4543
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
4544
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
4545
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
4546
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
4547
|
-
hr: () => /* @__PURE__ */
|
|
4548
|
-
b: ({ children }) => /* @__PURE__ */
|
|
4549
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
4862
|
+
h1: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
4863
|
+
h2: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
4864
|
+
h3: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
4865
|
+
h4: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
4866
|
+
p: ({ children, node }) => /* @__PURE__ */ React33.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
4867
|
+
a: ({ children, href }) => /* @__PURE__ */ React33.createElement(Link2, { href, target: defaultLinkAction }, children),
|
|
4868
|
+
hr: () => /* @__PURE__ */ React33.createElement(Divider, null),
|
|
4869
|
+
b: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
4870
|
+
strong: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
4550
4871
|
...markdownOptions?.components
|
|
4551
4872
|
}
|
|
4552
4873
|
}
|
|
@@ -4556,7 +4877,7 @@ var Markdown = (props) => {
|
|
|
4556
4877
|
Markdown.displayName = "Markdown";
|
|
4557
4878
|
|
|
4558
4879
|
// src/components/MenuButton/MenuButton.tsx
|
|
4559
|
-
import
|
|
4880
|
+
import React34 from "react";
|
|
4560
4881
|
import { MenuButton as JoyMenuButton3, Button as JoyButton2 } from "@mui/joy";
|
|
4561
4882
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
4562
4883
|
function MenuButton(props) {
|
|
@@ -4574,7 +4895,7 @@ function MenuButton(props) {
|
|
|
4574
4895
|
placement = "bottom"
|
|
4575
4896
|
} = props;
|
|
4576
4897
|
if (!items.length) {
|
|
4577
|
-
return /* @__PURE__ */
|
|
4898
|
+
return /* @__PURE__ */ React34.createElement(
|
|
4578
4899
|
JoyButton2,
|
|
4579
4900
|
{
|
|
4580
4901
|
component: props.buttonComponent ?? "button",
|
|
@@ -4585,12 +4906,12 @@ function MenuButton(props) {
|
|
|
4585
4906
|
loading,
|
|
4586
4907
|
startDecorator,
|
|
4587
4908
|
...props.buttonComponentProps ?? {},
|
|
4588
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
4909
|
+
endDecorator: showIcon ? /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator, /* @__PURE__ */ React34.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator)
|
|
4589
4910
|
},
|
|
4590
4911
|
buttonText
|
|
4591
4912
|
);
|
|
4592
4913
|
}
|
|
4593
|
-
return /* @__PURE__ */
|
|
4914
|
+
return /* @__PURE__ */ React34.createElement(Dropdown_default, null, /* @__PURE__ */ React34.createElement(
|
|
4594
4915
|
JoyMenuButton3,
|
|
4595
4916
|
{
|
|
4596
4917
|
component: props.buttonComponent ?? "button",
|
|
@@ -4601,15 +4922,15 @@ function MenuButton(props) {
|
|
|
4601
4922
|
loading,
|
|
4602
4923
|
startDecorator,
|
|
4603
4924
|
...props.buttonComponentProps ?? {},
|
|
4604
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
4925
|
+
endDecorator: showIcon ? /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator, /* @__PURE__ */ React34.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator)
|
|
4605
4926
|
},
|
|
4606
4927
|
buttonText
|
|
4607
|
-
), /* @__PURE__ */
|
|
4928
|
+
), /* @__PURE__ */ React34.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React34.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
4608
4929
|
}
|
|
4609
4930
|
MenuButton.displayName = "MenuButton";
|
|
4610
4931
|
|
|
4611
4932
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
4612
|
-
import
|
|
4933
|
+
import React35, { forwardRef as forwardRef9, useCallback as useCallback14, useEffect as useEffect10, useImperativeHandle as useImperativeHandle4, useRef as useRef9, useState as useState12 } from "react";
|
|
4613
4934
|
import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
|
|
4614
4935
|
import { styled as styled21, useThemeProps as useThemeProps6 } from "@mui/joy";
|
|
4615
4936
|
import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
|
|
@@ -4691,14 +5012,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4691
5012
|
locale,
|
|
4692
5013
|
...innerProps
|
|
4693
5014
|
} = props;
|
|
4694
|
-
const innerRef =
|
|
4695
|
-
const buttonRef =
|
|
5015
|
+
const innerRef = useRef9(null);
|
|
5016
|
+
const buttonRef = useRef9(null);
|
|
4696
5017
|
const [value, setValue, isControlled] = useControlledState(
|
|
4697
5018
|
props.value,
|
|
4698
5019
|
props.defaultValue || "",
|
|
4699
|
-
|
|
5020
|
+
useCallback14((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
4700
5021
|
);
|
|
4701
|
-
const getFormattedDisplayValue =
|
|
5022
|
+
const getFormattedDisplayValue = useCallback14(
|
|
4702
5023
|
(inputValue) => {
|
|
4703
5024
|
if (!inputValue) return "";
|
|
4704
5025
|
try {
|
|
@@ -4709,19 +5030,19 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4709
5030
|
},
|
|
4710
5031
|
[format, displayFormat, locale]
|
|
4711
5032
|
);
|
|
4712
|
-
const [displayValue, setDisplayValue] =
|
|
4713
|
-
const [anchorEl, setAnchorEl] =
|
|
5033
|
+
const [displayValue, setDisplayValue] = useState12(() => getFormattedDisplayValue(value));
|
|
5034
|
+
const [anchorEl, setAnchorEl] = useState12(null);
|
|
4714
5035
|
const open = Boolean(anchorEl);
|
|
4715
|
-
|
|
5036
|
+
useEffect10(() => {
|
|
4716
5037
|
if (!anchorEl) {
|
|
4717
5038
|
innerRef.current?.blur();
|
|
4718
5039
|
}
|
|
4719
5040
|
}, [anchorEl, innerRef]);
|
|
4720
5041
|
useImperativeHandle4(ref, () => innerRef.current, [innerRef]);
|
|
4721
|
-
|
|
5042
|
+
useEffect10(() => {
|
|
4722
5043
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
4723
5044
|
}, [value, getFormattedDisplayValue]);
|
|
4724
|
-
const handleChange =
|
|
5045
|
+
const handleChange = useCallback14(
|
|
4725
5046
|
(event) => {
|
|
4726
5047
|
const newValue = event.target.value;
|
|
4727
5048
|
setValue(newValue);
|
|
@@ -4731,21 +5052,21 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4731
5052
|
},
|
|
4732
5053
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
4733
5054
|
);
|
|
4734
|
-
const handleCalendarToggle =
|
|
5055
|
+
const handleCalendarToggle = useCallback14(
|
|
4735
5056
|
(event) => {
|
|
4736
5057
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
4737
5058
|
innerRef.current?.focus();
|
|
4738
5059
|
},
|
|
4739
5060
|
[anchorEl, setAnchorEl, innerRef]
|
|
4740
5061
|
);
|
|
4741
|
-
const handleInputMouseDown =
|
|
5062
|
+
const handleInputMouseDown = useCallback14(
|
|
4742
5063
|
(event) => {
|
|
4743
5064
|
event.preventDefault();
|
|
4744
5065
|
buttonRef.current?.focus();
|
|
4745
5066
|
},
|
|
4746
5067
|
[buttonRef]
|
|
4747
5068
|
);
|
|
4748
|
-
return /* @__PURE__ */
|
|
5069
|
+
return /* @__PURE__ */ React35.createElement(MonthPickerRoot, null, /* @__PURE__ */ React35.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(
|
|
4749
5070
|
Input_default,
|
|
4750
5071
|
{
|
|
4751
5072
|
...innerProps,
|
|
@@ -4775,7 +5096,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4775
5096
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
4776
5097
|
fontFamily: "monospace"
|
|
4777
5098
|
},
|
|
4778
|
-
endDecorator: /* @__PURE__ */
|
|
5099
|
+
endDecorator: /* @__PURE__ */ React35.createElement(
|
|
4779
5100
|
IconButton_default,
|
|
4780
5101
|
{
|
|
4781
5102
|
ref: buttonRef,
|
|
@@ -4787,12 +5108,12 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4787
5108
|
"aria-expanded": open,
|
|
4788
5109
|
disabled
|
|
4789
5110
|
},
|
|
4790
|
-
/* @__PURE__ */
|
|
5111
|
+
/* @__PURE__ */ React35.createElement(CalendarTodayIcon3, null)
|
|
4791
5112
|
),
|
|
4792
5113
|
label,
|
|
4793
5114
|
helperText
|
|
4794
5115
|
}
|
|
4795
|
-
), open && /* @__PURE__ */
|
|
5116
|
+
), open && /* @__PURE__ */ React35.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React35.createElement(
|
|
4796
5117
|
StyledPopper3,
|
|
4797
5118
|
{
|
|
4798
5119
|
id: "month-picker-popper",
|
|
@@ -4811,7 +5132,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4811
5132
|
"aria-label": "Calendar Tooltip",
|
|
4812
5133
|
"aria-expanded": open
|
|
4813
5134
|
},
|
|
4814
|
-
/* @__PURE__ */
|
|
5135
|
+
/* @__PURE__ */ React35.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React35.createElement(
|
|
4815
5136
|
Calendar_default,
|
|
4816
5137
|
{
|
|
4817
5138
|
view: "month",
|
|
@@ -4832,14 +5153,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4832
5153
|
disablePast,
|
|
4833
5154
|
locale
|
|
4834
5155
|
}
|
|
4835
|
-
), /* @__PURE__ */
|
|
5156
|
+
), /* @__PURE__ */ React35.createElement(
|
|
4836
5157
|
DialogActions_default,
|
|
4837
5158
|
{
|
|
4838
5159
|
sx: {
|
|
4839
5160
|
p: 1
|
|
4840
5161
|
}
|
|
4841
5162
|
},
|
|
4842
|
-
/* @__PURE__ */
|
|
5163
|
+
/* @__PURE__ */ React35.createElement(
|
|
4843
5164
|
Button_default,
|
|
4844
5165
|
{
|
|
4845
5166
|
size,
|
|
@@ -4862,7 +5183,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
4862
5183
|
});
|
|
4863
5184
|
|
|
4864
5185
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
4865
|
-
import
|
|
5186
|
+
import React36, { forwardRef as forwardRef10, useCallback as useCallback15, useEffect as useEffect11, useImperativeHandle as useImperativeHandle5, useMemo as useMemo13, useRef as useRef10, useState as useState13 } from "react";
|
|
4866
5187
|
import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
|
|
4867
5188
|
import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
|
|
4868
5189
|
import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
|
|
@@ -4920,9 +5241,9 @@ var parseDates2 = (str) => {
|
|
|
4920
5241
|
var formatToPattern3 = (format) => {
|
|
4921
5242
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
4922
5243
|
};
|
|
4923
|
-
var TextMaskAdapter7 =
|
|
5244
|
+
var TextMaskAdapter7 = React36.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
4924
5245
|
const { onChange, format, ...other } = props;
|
|
4925
|
-
return /* @__PURE__ */
|
|
5246
|
+
return /* @__PURE__ */ React36.createElement(
|
|
4926
5247
|
IMaskInput3,
|
|
4927
5248
|
{
|
|
4928
5249
|
...other,
|
|
@@ -4970,35 +5291,35 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
4970
5291
|
size,
|
|
4971
5292
|
...innerProps
|
|
4972
5293
|
} = props;
|
|
4973
|
-
const innerRef =
|
|
5294
|
+
const innerRef = useRef10(null);
|
|
4974
5295
|
const [value, setValue] = useControlledState(
|
|
4975
5296
|
props.value,
|
|
4976
5297
|
props.defaultValue || "",
|
|
4977
|
-
|
|
5298
|
+
useCallback15((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
4978
5299
|
);
|
|
4979
|
-
const [anchorEl, setAnchorEl] =
|
|
5300
|
+
const [anchorEl, setAnchorEl] = useState13(null);
|
|
4980
5301
|
const open = Boolean(anchorEl);
|
|
4981
|
-
const calendarValue =
|
|
4982
|
-
|
|
5302
|
+
const calendarValue = useMemo13(() => value ? parseDates2(value) : void 0, [value]);
|
|
5303
|
+
useEffect11(() => {
|
|
4983
5304
|
if (!anchorEl) {
|
|
4984
5305
|
innerRef.current?.blur();
|
|
4985
5306
|
}
|
|
4986
5307
|
}, [anchorEl, innerRef]);
|
|
4987
5308
|
useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
|
|
4988
|
-
const handleChange =
|
|
5309
|
+
const handleChange = useCallback15(
|
|
4989
5310
|
(event) => {
|
|
4990
5311
|
setValue(event.target.value);
|
|
4991
5312
|
},
|
|
4992
5313
|
[setValue]
|
|
4993
5314
|
);
|
|
4994
|
-
const handleCalendarToggle =
|
|
5315
|
+
const handleCalendarToggle = useCallback15(
|
|
4995
5316
|
(event) => {
|
|
4996
5317
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
4997
5318
|
innerRef.current?.focus();
|
|
4998
5319
|
},
|
|
4999
5320
|
[anchorEl, setAnchorEl, innerRef]
|
|
5000
5321
|
);
|
|
5001
|
-
const handleCalendarChange =
|
|
5322
|
+
const handleCalendarChange = useCallback15(
|
|
5002
5323
|
([date1, date2]) => {
|
|
5003
5324
|
if (!date1 || !date2) return;
|
|
5004
5325
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5006,7 +5327,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5006
5327
|
},
|
|
5007
5328
|
[setValue, setAnchorEl, format]
|
|
5008
5329
|
);
|
|
5009
|
-
return /* @__PURE__ */
|
|
5330
|
+
return /* @__PURE__ */ React36.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React36.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(
|
|
5010
5331
|
Input_default,
|
|
5011
5332
|
{
|
|
5012
5333
|
...innerProps,
|
|
@@ -5028,7 +5349,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5028
5349
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5029
5350
|
fontFamily: "monospace"
|
|
5030
5351
|
},
|
|
5031
|
-
endDecorator: /* @__PURE__ */
|
|
5352
|
+
endDecorator: /* @__PURE__ */ React36.createElement(
|
|
5032
5353
|
IconButton_default,
|
|
5033
5354
|
{
|
|
5034
5355
|
variant: "plain",
|
|
@@ -5038,12 +5359,12 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5038
5359
|
"aria-haspopup": "dialog",
|
|
5039
5360
|
"aria-expanded": open
|
|
5040
5361
|
},
|
|
5041
|
-
/* @__PURE__ */
|
|
5362
|
+
/* @__PURE__ */ React36.createElement(CalendarTodayIcon4, null)
|
|
5042
5363
|
),
|
|
5043
5364
|
label,
|
|
5044
5365
|
helperText
|
|
5045
5366
|
}
|
|
5046
|
-
), open && /* @__PURE__ */
|
|
5367
|
+
), open && /* @__PURE__ */ React36.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React36.createElement(
|
|
5047
5368
|
StyledPopper4,
|
|
5048
5369
|
{
|
|
5049
5370
|
id: "month-range-picker-popper",
|
|
@@ -5062,7 +5383,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5062
5383
|
"aria-label": "Calendar Tooltip",
|
|
5063
5384
|
"aria-expanded": open
|
|
5064
5385
|
},
|
|
5065
|
-
/* @__PURE__ */
|
|
5386
|
+
/* @__PURE__ */ React36.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React36.createElement(
|
|
5066
5387
|
Calendar_default,
|
|
5067
5388
|
{
|
|
5068
5389
|
view: "month",
|
|
@@ -5075,14 +5396,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5075
5396
|
disableFuture,
|
|
5076
5397
|
disablePast
|
|
5077
5398
|
}
|
|
5078
|
-
), /* @__PURE__ */
|
|
5399
|
+
), /* @__PURE__ */ React36.createElement(
|
|
5079
5400
|
DialogActions_default,
|
|
5080
5401
|
{
|
|
5081
5402
|
sx: {
|
|
5082
5403
|
p: 1
|
|
5083
5404
|
}
|
|
5084
5405
|
},
|
|
5085
|
-
/* @__PURE__ */
|
|
5406
|
+
/* @__PURE__ */ React36.createElement(
|
|
5086
5407
|
Button_default,
|
|
5087
5408
|
{
|
|
5088
5409
|
size,
|
|
@@ -5101,7 +5422,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5101
5422
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
5102
5423
|
|
|
5103
5424
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
5104
|
-
import
|
|
5425
|
+
import React37 from "react";
|
|
5105
5426
|
import {
|
|
5106
5427
|
Accordion as JoyAccordion2,
|
|
5107
5428
|
AccordionSummary as JoyAccordionSummary2,
|
|
@@ -5132,11 +5453,11 @@ var AccordionDetails2 = styled23(JoyAccordionDetails2, {
|
|
|
5132
5453
|
}));
|
|
5133
5454
|
function NavigationGroup(props) {
|
|
5134
5455
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
5135
|
-
return /* @__PURE__ */
|
|
5456
|
+
return /* @__PURE__ */ React37.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React37.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React37.createElement(Stack2, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React37.createElement(AccordionDetails2, null, children));
|
|
5136
5457
|
}
|
|
5137
5458
|
|
|
5138
5459
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
5139
|
-
import
|
|
5460
|
+
import React38 from "react";
|
|
5140
5461
|
import {
|
|
5141
5462
|
ListItem as JoyListItem,
|
|
5142
5463
|
ListItemButton as JoyListItemButton,
|
|
@@ -5171,7 +5492,7 @@ function NavigationItem(props) {
|
|
|
5171
5492
|
const handleClick = () => {
|
|
5172
5493
|
onClick?.(id);
|
|
5173
5494
|
};
|
|
5174
|
-
return /* @__PURE__ */
|
|
5495
|
+
return /* @__PURE__ */ React38.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React38.createElement(
|
|
5175
5496
|
ListItemButton,
|
|
5176
5497
|
{
|
|
5177
5498
|
level,
|
|
@@ -5180,21 +5501,21 @@ function NavigationItem(props) {
|
|
|
5180
5501
|
"aria-current": selected,
|
|
5181
5502
|
onClick: handleClick
|
|
5182
5503
|
},
|
|
5183
|
-
startDecorator && /* @__PURE__ */
|
|
5504
|
+
startDecorator && /* @__PURE__ */ React38.createElement(JoyListItemDecorator, null, startDecorator),
|
|
5184
5505
|
children
|
|
5185
5506
|
));
|
|
5186
5507
|
}
|
|
5187
5508
|
|
|
5188
5509
|
// src/components/Navigator/Navigator.tsx
|
|
5189
|
-
import
|
|
5510
|
+
import React39 from "react";
|
|
5190
5511
|
function Navigator(props) {
|
|
5191
5512
|
const { items, level = 0, onSelect } = props;
|
|
5192
5513
|
const handleItemClick = (id) => {
|
|
5193
5514
|
onSelect?.(id);
|
|
5194
5515
|
};
|
|
5195
|
-
return /* @__PURE__ */
|
|
5516
|
+
return /* @__PURE__ */ React39.createElement("div", null, items.map((item, index) => {
|
|
5196
5517
|
if (item.type === "item") {
|
|
5197
|
-
return /* @__PURE__ */
|
|
5518
|
+
return /* @__PURE__ */ React39.createElement(
|
|
5198
5519
|
NavigationItem,
|
|
5199
5520
|
{
|
|
5200
5521
|
key: item.id,
|
|
@@ -5207,7 +5528,7 @@ function Navigator(props) {
|
|
|
5207
5528
|
item.title
|
|
5208
5529
|
);
|
|
5209
5530
|
} else if (item.type === "group") {
|
|
5210
|
-
return /* @__PURE__ */
|
|
5531
|
+
return /* @__PURE__ */ React39.createElement(
|
|
5211
5532
|
NavigationGroup,
|
|
5212
5533
|
{
|
|
5213
5534
|
key: `${item.title}-${index}`,
|
|
@@ -5225,16 +5546,16 @@ function Navigator(props) {
|
|
|
5225
5546
|
Navigator.displayName = "Navigator";
|
|
5226
5547
|
|
|
5227
5548
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
5228
|
-
import
|
|
5549
|
+
import React40, { useCallback as useCallback16, useMemo as useMemo14, useState as useState14 } from "react";
|
|
5229
5550
|
import { NumericFormat as NumericFormat2 } from "react-number-format";
|
|
5230
5551
|
import { styled as styled25, useThemeProps as useThemeProps8 } from "@mui/joy";
|
|
5231
5552
|
var padDecimal = (value, decimalScale) => {
|
|
5232
5553
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
5233
5554
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
5234
5555
|
};
|
|
5235
|
-
var TextMaskAdapter9 =
|
|
5556
|
+
var TextMaskAdapter9 = React40.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
5236
5557
|
const { onChange, min, max, ...innerProps } = props;
|
|
5237
|
-
return /* @__PURE__ */
|
|
5558
|
+
return /* @__PURE__ */ React40.createElement(
|
|
5238
5559
|
NumericFormat2,
|
|
5239
5560
|
{
|
|
5240
5561
|
...innerProps,
|
|
@@ -5259,7 +5580,7 @@ var PercentageInputRoot = styled25(Input_default, {
|
|
|
5259
5580
|
slot: "Root",
|
|
5260
5581
|
overridesResolver: (props, styles) => styles.root
|
|
5261
5582
|
})({});
|
|
5262
|
-
var PercentageInput =
|
|
5583
|
+
var PercentageInput = React40.forwardRef(
|
|
5263
5584
|
function PercentageInput2(inProps, ref) {
|
|
5264
5585
|
const props = useThemeProps8({ props: inProps, name: "PercentageInput" });
|
|
5265
5586
|
const {
|
|
@@ -5282,18 +5603,18 @@ var PercentageInput = React39.forwardRef(
|
|
|
5282
5603
|
const [_value, setValue] = useControlledState(
|
|
5283
5604
|
props.value,
|
|
5284
5605
|
props.defaultValue,
|
|
5285
|
-
|
|
5606
|
+
useCallback16((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
5286
5607
|
);
|
|
5287
|
-
const [internalError, setInternalError] =
|
|
5608
|
+
const [internalError, setInternalError] = useState14(
|
|
5288
5609
|
max && _value && _value > max || min && _value && _value < min
|
|
5289
5610
|
);
|
|
5290
|
-
const value =
|
|
5611
|
+
const value = useMemo14(() => {
|
|
5291
5612
|
if (_value && useMinorUnit) {
|
|
5292
5613
|
return _value / Math.pow(10, maxDecimalScale);
|
|
5293
5614
|
}
|
|
5294
5615
|
return _value;
|
|
5295
5616
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
5296
|
-
const handleChange =
|
|
5617
|
+
const handleChange = useCallback16(
|
|
5297
5618
|
(event) => {
|
|
5298
5619
|
if (event.target.value === "") {
|
|
5299
5620
|
setValue(void 0);
|
|
@@ -5310,7 +5631,7 @@ var PercentageInput = React39.forwardRef(
|
|
|
5310
5631
|
},
|
|
5311
5632
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
5312
5633
|
);
|
|
5313
|
-
return /* @__PURE__ */
|
|
5634
|
+
return /* @__PURE__ */ React40.createElement(
|
|
5314
5635
|
PercentageInputRoot,
|
|
5315
5636
|
{
|
|
5316
5637
|
...innerProps,
|
|
@@ -5351,15 +5672,15 @@ var RadioGroup = MotionRadioGroup;
|
|
|
5351
5672
|
RadioGroup.displayName = "RadioGroup";
|
|
5352
5673
|
|
|
5353
5674
|
// src/components/RadioList/RadioList.tsx
|
|
5354
|
-
import
|
|
5675
|
+
import React41 from "react";
|
|
5355
5676
|
function RadioList(props) {
|
|
5356
5677
|
const { items, ...innerProps } = props;
|
|
5357
|
-
return /* @__PURE__ */
|
|
5678
|
+
return /* @__PURE__ */ React41.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React41.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
5358
5679
|
}
|
|
5359
5680
|
RadioList.displayName = "RadioList";
|
|
5360
5681
|
|
|
5361
5682
|
// src/components/Stepper/Stepper.tsx
|
|
5362
|
-
import
|
|
5683
|
+
import React42 from "react";
|
|
5363
5684
|
import {
|
|
5364
5685
|
Stepper as JoyStepper,
|
|
5365
5686
|
Step as JoyStep,
|
|
@@ -5395,7 +5716,7 @@ function Stepper(props) {
|
|
|
5395
5716
|
stepOrientation = "horizontal"
|
|
5396
5717
|
} = props;
|
|
5397
5718
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
5398
|
-
return /* @__PURE__ */
|
|
5719
|
+
return /* @__PURE__ */ React42.createElement(
|
|
5399
5720
|
MotionStepper,
|
|
5400
5721
|
{
|
|
5401
5722
|
orientation,
|
|
@@ -5434,23 +5755,23 @@ function Stepper(props) {
|
|
|
5434
5755
|
const completed = activeStep > i + 1;
|
|
5435
5756
|
const disabled = activeStep < i + 1;
|
|
5436
5757
|
const hasContent = step.label || step.extraContent;
|
|
5437
|
-
return /* @__PURE__ */
|
|
5758
|
+
return /* @__PURE__ */ React42.createElement(
|
|
5438
5759
|
Step,
|
|
5439
5760
|
{
|
|
5440
5761
|
key: `step-${i}`,
|
|
5441
|
-
indicator: /* @__PURE__ */
|
|
5762
|
+
indicator: /* @__PURE__ */ React42.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React42.createElement(CheckIcon, null) : step.indicatorContent),
|
|
5442
5763
|
active,
|
|
5443
5764
|
completed,
|
|
5444
5765
|
disabled,
|
|
5445
5766
|
orientation: effectiveStepOrientation
|
|
5446
5767
|
},
|
|
5447
|
-
hasContent && /* @__PURE__ */
|
|
5768
|
+
hasContent && /* @__PURE__ */ React42.createElement(
|
|
5448
5769
|
Stack_default,
|
|
5449
5770
|
{
|
|
5450
5771
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
5451
5772
|
},
|
|
5452
|
-
step.label && /* @__PURE__ */
|
|
5453
|
-
step.extraContent && /* @__PURE__ */
|
|
5773
|
+
step.label && /* @__PURE__ */ React42.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
5774
|
+
step.extraContent && /* @__PURE__ */ React42.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
5454
5775
|
)
|
|
5455
5776
|
);
|
|
5456
5777
|
})
|
|
@@ -5459,7 +5780,7 @@ function Stepper(props) {
|
|
|
5459
5780
|
Stepper.displayName = "Stepper";
|
|
5460
5781
|
|
|
5461
5782
|
// src/components/Switch/Switch.tsx
|
|
5462
|
-
import
|
|
5783
|
+
import React43 from "react";
|
|
5463
5784
|
import { Switch as JoySwitch, styled as styled27, switchClasses } from "@mui/joy";
|
|
5464
5785
|
import { motion as motion28 } from "framer-motion";
|
|
5465
5786
|
var MotionSwitch = motion28(JoySwitch);
|
|
@@ -5481,14 +5802,14 @@ var StyledThumb = styled27(motion28.div)({
|
|
|
5481
5802
|
right: "var(--Switch-thumbOffset)"
|
|
5482
5803
|
}
|
|
5483
5804
|
});
|
|
5484
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
5805
|
+
var Thumb = (props) => /* @__PURE__ */ React43.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
5485
5806
|
var spring = {
|
|
5486
5807
|
type: "spring",
|
|
5487
5808
|
stiffness: 700,
|
|
5488
5809
|
damping: 30
|
|
5489
5810
|
};
|
|
5490
5811
|
var Switch = (props) => {
|
|
5491
|
-
return /* @__PURE__ */
|
|
5812
|
+
return /* @__PURE__ */ React43.createElement(
|
|
5492
5813
|
MotionSwitch,
|
|
5493
5814
|
{
|
|
5494
5815
|
...props,
|
|
@@ -5502,7 +5823,7 @@ var Switch = (props) => {
|
|
|
5502
5823
|
Switch.displayName = "Switch";
|
|
5503
5824
|
|
|
5504
5825
|
// src/components/Tabs/Tabs.tsx
|
|
5505
|
-
import
|
|
5826
|
+
import React44, { forwardRef as forwardRef11 } from "react";
|
|
5506
5827
|
import {
|
|
5507
5828
|
Tabs as JoyTabs,
|
|
5508
5829
|
Tab as JoyTab,
|
|
@@ -5526,14 +5847,14 @@ var StyledTab = styled28(JoyTab)(({ theme }) => ({
|
|
|
5526
5847
|
}
|
|
5527
5848
|
}));
|
|
5528
5849
|
var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
5529
|
-
return /* @__PURE__ */
|
|
5850
|
+
return /* @__PURE__ */ React44.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
5530
5851
|
});
|
|
5531
5852
|
Tab.displayName = "Tab";
|
|
5532
5853
|
var TabList = JoyTabList;
|
|
5533
5854
|
var TabPanel = JoyTabPanel;
|
|
5534
5855
|
|
|
5535
5856
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
5536
|
-
import
|
|
5857
|
+
import React45 from "react";
|
|
5537
5858
|
import {
|
|
5538
5859
|
CssBaseline,
|
|
5539
5860
|
CssVarsProvider,
|
|
@@ -5789,12 +6110,12 @@ var defaultTheme = extendTheme({
|
|
|
5789
6110
|
});
|
|
5790
6111
|
function ThemeProvider(props) {
|
|
5791
6112
|
const theme = props.theme || defaultTheme;
|
|
5792
|
-
return /* @__PURE__ */
|
|
6113
|
+
return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React45.createElement(CssBaseline, null), props.children));
|
|
5793
6114
|
}
|
|
5794
6115
|
ThemeProvider.displayName = "ThemeProvider";
|
|
5795
6116
|
|
|
5796
6117
|
// src/components/Uploader/Uploader.tsx
|
|
5797
|
-
import
|
|
6118
|
+
import React46, { useCallback as useCallback17, useEffect as useEffect12, useMemo as useMemo15, useRef as useRef11, useState as useState15 } from "react";
|
|
5798
6119
|
import { styled as styled29, Input as Input2 } from "@mui/joy";
|
|
5799
6120
|
import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
|
|
5800
6121
|
import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
|
|
@@ -5871,7 +6192,7 @@ var getFileSize = (n) => {
|
|
|
5871
6192
|
};
|
|
5872
6193
|
var Preview = (props) => {
|
|
5873
6194
|
const { files, uploaded, onDelete } = props;
|
|
5874
|
-
return /* @__PURE__ */
|
|
6195
|
+
return /* @__PURE__ */ React46.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React46.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React46.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React46.createElement(UploadFileIcon, null), /* @__PURE__ */ React46.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ React46.createElement(
|
|
5875
6196
|
Typography_default,
|
|
5876
6197
|
{
|
|
5877
6198
|
level: "body-sm",
|
|
@@ -5883,7 +6204,7 @@ var Preview = (props) => {
|
|
|
5883
6204
|
}
|
|
5884
6205
|
},
|
|
5885
6206
|
file.name
|
|
5886
|
-
), !!file.size && /* @__PURE__ */
|
|
6207
|
+
), !!file.size && /* @__PURE__ */ React46.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ React46.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React46.createElement(ClearIcon2, null))))));
|
|
5887
6208
|
};
|
|
5888
6209
|
var UploaderRoot = styled29(Stack_default, {
|
|
5889
6210
|
name: "Uploader",
|
|
@@ -5926,7 +6247,7 @@ var UploaderIcon = styled29(MuiFileUploadIcon, {
|
|
|
5926
6247
|
}
|
|
5927
6248
|
})
|
|
5928
6249
|
);
|
|
5929
|
-
var Uploader =
|
|
6250
|
+
var Uploader = React46.memo(
|
|
5930
6251
|
(props) => {
|
|
5931
6252
|
const {
|
|
5932
6253
|
accept,
|
|
@@ -5943,14 +6264,14 @@ var Uploader = React45.memo(
|
|
|
5943
6264
|
error: errorProp,
|
|
5944
6265
|
helperText: helperTextProp
|
|
5945
6266
|
} = props;
|
|
5946
|
-
const dropZoneRef =
|
|
5947
|
-
const inputRef =
|
|
5948
|
-
const [errorText, setErrorText] =
|
|
5949
|
-
const [files, setFiles] =
|
|
5950
|
-
const [uploaded, setUploaded] =
|
|
5951
|
-
const [previewState, setPreviewState] =
|
|
5952
|
-
const accepts =
|
|
5953
|
-
const parsedAccepts =
|
|
6267
|
+
const dropZoneRef = useRef11(null);
|
|
6268
|
+
const inputRef = useRef11(null);
|
|
6269
|
+
const [errorText, setErrorText] = useState15();
|
|
6270
|
+
const [files, setFiles] = useState15([]);
|
|
6271
|
+
const [uploaded, setUploaded] = useState15(props.uploaded || []);
|
|
6272
|
+
const [previewState, setPreviewState] = useState15("idle");
|
|
6273
|
+
const accepts = useMemo15(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
6274
|
+
const parsedAccepts = useMemo15(
|
|
5954
6275
|
() => accepts.flatMap((type) => {
|
|
5955
6276
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
5956
6277
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -5959,7 +6280,7 @@ var Uploader = React45.memo(
|
|
|
5959
6280
|
}),
|
|
5960
6281
|
[accepts]
|
|
5961
6282
|
);
|
|
5962
|
-
const helperText =
|
|
6283
|
+
const helperText = useMemo15(() => {
|
|
5963
6284
|
if (helperTextProp) {
|
|
5964
6285
|
return helperTextProp;
|
|
5965
6286
|
}
|
|
@@ -5989,12 +6310,12 @@ var Uploader = React45.memo(
|
|
|
5989
6310
|
}
|
|
5990
6311
|
return helperTexts.join(", ");
|
|
5991
6312
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
5992
|
-
const error =
|
|
5993
|
-
const showDropZone =
|
|
6313
|
+
const error = useMemo15(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
6314
|
+
const showDropZone = useMemo15(
|
|
5994
6315
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5995
6316
|
[files, maxCount, uploaded]
|
|
5996
6317
|
);
|
|
5997
|
-
const addFiles =
|
|
6318
|
+
const addFiles = useCallback17(
|
|
5998
6319
|
(uploads) => {
|
|
5999
6320
|
try {
|
|
6000
6321
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -6039,7 +6360,7 @@ var Uploader = React45.memo(
|
|
|
6039
6360
|
},
|
|
6040
6361
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
6041
6362
|
);
|
|
6042
|
-
|
|
6363
|
+
useEffect12(() => {
|
|
6043
6364
|
if (!dropZoneRef.current || disabled) {
|
|
6044
6365
|
return;
|
|
6045
6366
|
}
|
|
@@ -6077,7 +6398,7 @@ var Uploader = React45.memo(
|
|
|
6077
6398
|
);
|
|
6078
6399
|
return () => cleanup?.();
|
|
6079
6400
|
}, [disabled, addFiles]);
|
|
6080
|
-
|
|
6401
|
+
useEffect12(() => {
|
|
6081
6402
|
if (inputRef.current && minCount) {
|
|
6082
6403
|
if (files.length < minCount) {
|
|
6083
6404
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -6086,14 +6407,14 @@ var Uploader = React45.memo(
|
|
|
6086
6407
|
}
|
|
6087
6408
|
}
|
|
6088
6409
|
}, [inputRef, files, minCount]);
|
|
6089
|
-
const handleFileChanged =
|
|
6410
|
+
const handleFileChanged = useCallback17(
|
|
6090
6411
|
(event) => {
|
|
6091
6412
|
const files2 = Array.from(event.target.files || []);
|
|
6092
6413
|
addFiles(files2);
|
|
6093
6414
|
},
|
|
6094
6415
|
[addFiles]
|
|
6095
6416
|
);
|
|
6096
|
-
const handleDeleteFile =
|
|
6417
|
+
const handleDeleteFile = useCallback17(
|
|
6097
6418
|
(deletedFile) => {
|
|
6098
6419
|
if (deletedFile instanceof File) {
|
|
6099
6420
|
setFiles((current) => {
|
|
@@ -6113,10 +6434,10 @@ var Uploader = React45.memo(
|
|
|
6113
6434
|
},
|
|
6114
6435
|
[name, onChange, onDelete]
|
|
6115
6436
|
);
|
|
6116
|
-
const handleUploaderButtonClick =
|
|
6437
|
+
const handleUploaderButtonClick = useCallback17(() => {
|
|
6117
6438
|
inputRef.current?.click();
|
|
6118
6439
|
}, []);
|
|
6119
|
-
const uploader = /* @__PURE__ */
|
|
6440
|
+
const uploader = /* @__PURE__ */ React46.createElement(
|
|
6120
6441
|
FileDropZone,
|
|
6121
6442
|
{
|
|
6122
6443
|
state: previewState,
|
|
@@ -6125,8 +6446,8 @@ var Uploader = React45.memo(
|
|
|
6125
6446
|
ref: dropZoneRef,
|
|
6126
6447
|
onClick: handleUploaderButtonClick
|
|
6127
6448
|
},
|
|
6128
|
-
/* @__PURE__ */
|
|
6129
|
-
/* @__PURE__ */
|
|
6449
|
+
/* @__PURE__ */ React46.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React46.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
6450
|
+
/* @__PURE__ */ React46.createElement(
|
|
6130
6451
|
VisuallyHiddenInput,
|
|
6131
6452
|
{
|
|
6132
6453
|
disabled,
|
|
@@ -6149,7 +6470,7 @@ var Uploader = React45.memo(
|
|
|
6149
6470
|
}
|
|
6150
6471
|
)
|
|
6151
6472
|
);
|
|
6152
|
-
return /* @__PURE__ */
|
|
6473
|
+
return /* @__PURE__ */ React46.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React46.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ React46.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ React46.createElement(FormHelperText_default, null, /* @__PURE__ */ React46.createElement(Stack_default, null, errorText && /* @__PURE__ */ React46.createElement("div", null, errorText), /* @__PURE__ */ React46.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React46.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
6153
6474
|
}
|
|
6154
6475
|
);
|
|
6155
6476
|
Uploader.displayName = "Uploader";
|
|
@@ -6191,6 +6512,7 @@ export {
|
|
|
6191
6512
|
Divider,
|
|
6192
6513
|
Drawer,
|
|
6193
6514
|
Dropdown,
|
|
6515
|
+
FilterableCheckboxGroup,
|
|
6194
6516
|
FormControl,
|
|
6195
6517
|
FormHelperText,
|
|
6196
6518
|
FormLabel,
|