@ceed/ads 1.16.0-next.9 → 1.16.1
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 +2 -10
- 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 +412 -538
- package/dist/index.js +186 -312
- package/framer/index.js +42 -42
- package/package.json +3 -4
- 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
|
{
|
|
@@ -4550,6 +4466,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4550
4466
|
);
|
|
4551
4467
|
const parentRef = useRef8(null);
|
|
4552
4468
|
const isInitialSortRef = useRef8(false);
|
|
4469
|
+
const prevOptionsRef = useRef8([...options]);
|
|
4553
4470
|
const filteredOptions = useMemo12(() => {
|
|
4554
4471
|
if (!searchTerm) return sortedOptions;
|
|
4555
4472
|
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
@@ -4564,16 +4481,6 @@ function FilterableCheckboxGroup(props) {
|
|
|
4564
4481
|
return 36;
|
|
4565
4482
|
}
|
|
4566
4483
|
}, [size]);
|
|
4567
|
-
const noOptionsFontSize = useMemo12(() => {
|
|
4568
|
-
switch (size) {
|
|
4569
|
-
case "sm":
|
|
4570
|
-
return "14px";
|
|
4571
|
-
case "md":
|
|
4572
|
-
return "16px";
|
|
4573
|
-
case "lg":
|
|
4574
|
-
return "18px";
|
|
4575
|
-
}
|
|
4576
|
-
}, [size]);
|
|
4577
4484
|
const virtualizer = useVirtualizer3({
|
|
4578
4485
|
count: filteredOptions.length,
|
|
4579
4486
|
estimateSize: () => itemSize,
|
|
@@ -4583,27 +4490,34 @@ function FilterableCheckboxGroup(props) {
|
|
|
4583
4490
|
});
|
|
4584
4491
|
const items = virtualizer.getVirtualItems();
|
|
4585
4492
|
useEffect8(() => {
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
const
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
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;
|
|
4598
4515
|
}
|
|
4599
|
-
|
|
4600
|
-
});
|
|
4601
|
-
setSortedOptions(sorted);
|
|
4602
|
-
isInitialSortRef.current = true;
|
|
4516
|
+
}
|
|
4603
4517
|
}, [options, value]);
|
|
4604
4518
|
useEffect8(() => {
|
|
4605
4519
|
virtualizer.measure();
|
|
4606
|
-
}, [virtualizer, filteredOptions]);
|
|
4520
|
+
}, [virtualizer, filteredOptions, size]);
|
|
4607
4521
|
const handleSearchChange = useCallback13((event) => {
|
|
4608
4522
|
setSearchTerm(event.target.value);
|
|
4609
4523
|
}, []);
|
|
@@ -4649,19 +4563,7 @@ function FilterableCheckboxGroup(props) {
|
|
|
4649
4563
|
disabled,
|
|
4650
4564
|
endDecorator: /* @__PURE__ */ React30.createElement(SearchIcon, null)
|
|
4651
4565
|
}
|
|
4652
|
-
), filteredOptions.length === 0 ? /* @__PURE__ */ React30.createElement(
|
|
4653
|
-
Stack_default,
|
|
4654
|
-
{
|
|
4655
|
-
sx: (theme) => ({
|
|
4656
|
-
padding: "20px 12px",
|
|
4657
|
-
justifyContent: "center",
|
|
4658
|
-
alignItems: "center",
|
|
4659
|
-
fontSize: noOptionsFontSize,
|
|
4660
|
-
color: theme.palette.neutral.softDisabledColor
|
|
4661
|
-
})
|
|
4662
|
-
},
|
|
4663
|
-
"No options found."
|
|
4664
|
-
) : /* @__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(
|
|
4665
4567
|
"div",
|
|
4666
4568
|
{
|
|
4667
4569
|
ref: parentRef,
|
|
@@ -4731,8 +4633,8 @@ function FilterableCheckboxGroup(props) {
|
|
|
4731
4633
|
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
4732
4634
|
|
|
4733
4635
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
4734
|
-
import
|
|
4735
|
-
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";
|
|
4736
4638
|
|
|
4737
4639
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
4738
4640
|
import React31, { useCallback as useCallback14 } from "react";
|
|
@@ -4768,37 +4670,8 @@ function CheckboxGroup(props) {
|
|
|
4768
4670
|
}
|
|
4769
4671
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
4770
4672
|
|
|
4771
|
-
// src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
|
|
4772
|
-
import React32, { useCallback as useCallback15 } from "react";
|
|
4773
|
-
import { Stack as Stack3 } from "@mui/joy";
|
|
4774
|
-
function FilterableCheckboxGroup2(props) {
|
|
4775
|
-
const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
|
|
4776
|
-
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
4777
|
-
const handleChange = useCallback15(
|
|
4778
|
-
(newValue) => {
|
|
4779
|
-
setInternalValue(newValue);
|
|
4780
|
-
},
|
|
4781
|
-
[setInternalValue]
|
|
4782
|
-
);
|
|
4783
|
-
if (hidden) {
|
|
4784
|
-
return null;
|
|
4785
|
-
}
|
|
4786
|
-
return /* @__PURE__ */ React32.createElement(Stack3, { 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(
|
|
4787
|
-
FilterableCheckboxGroup,
|
|
4788
|
-
{
|
|
4789
|
-
value: internalValue ?? [],
|
|
4790
|
-
onChange: handleChange,
|
|
4791
|
-
options,
|
|
4792
|
-
placeholder,
|
|
4793
|
-
maxHeight,
|
|
4794
|
-
size: "sm"
|
|
4795
|
-
}
|
|
4796
|
-
));
|
|
4797
|
-
}
|
|
4798
|
-
FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
|
|
4799
|
-
|
|
4800
4673
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4801
|
-
import
|
|
4674
|
+
import React32, { useCallback as useCallback15 } from "react";
|
|
4802
4675
|
|
|
4803
4676
|
// src/components/Radio/Radio.tsx
|
|
4804
4677
|
import { Radio as JoyRadio, RadioGroup as JoyRadioGroup } from "@mui/joy";
|
|
@@ -4811,11 +4684,11 @@ var RadioGroup = MotionRadioGroup;
|
|
|
4811
4684
|
RadioGroup.displayName = "RadioGroup";
|
|
4812
4685
|
|
|
4813
4686
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4814
|
-
import { Stack as
|
|
4687
|
+
import { Stack as Stack3 } from "@mui/joy";
|
|
4815
4688
|
function RadioGroup2(props) {
|
|
4816
4689
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4817
4690
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
4818
|
-
const handleRadioChange =
|
|
4691
|
+
const handleRadioChange = useCallback15(
|
|
4819
4692
|
(event) => {
|
|
4820
4693
|
const newValue = event.target.value;
|
|
4821
4694
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -4827,13 +4700,13 @@ function RadioGroup2(props) {
|
|
|
4827
4700
|
if (hidden) {
|
|
4828
4701
|
return null;
|
|
4829
4702
|
}
|
|
4830
|
-
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 }))));
|
|
4831
4704
|
}
|
|
4832
4705
|
RadioGroup2.displayName = "RadioGroup";
|
|
4833
4706
|
|
|
4834
4707
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
4835
|
-
import
|
|
4836
|
-
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";
|
|
4837
4710
|
function DateRange(props) {
|
|
4838
4711
|
const {
|
|
4839
4712
|
id,
|
|
@@ -4845,7 +4718,6 @@ function DateRange(props) {
|
|
|
4845
4718
|
maxDate,
|
|
4846
4719
|
disableFuture,
|
|
4847
4720
|
disablePast,
|
|
4848
|
-
format = "YYYY/MM/DD",
|
|
4849
4721
|
displayFormat,
|
|
4850
4722
|
inputReadOnly,
|
|
4851
4723
|
hideClearButton
|
|
@@ -4862,7 +4734,7 @@ function DateRange(props) {
|
|
|
4862
4734
|
],
|
|
4863
4735
|
[]
|
|
4864
4736
|
);
|
|
4865
|
-
const getDateRangeForOption =
|
|
4737
|
+
const getDateRangeForOption = useCallback16(
|
|
4866
4738
|
(option) => {
|
|
4867
4739
|
const now = /* @__PURE__ */ new Date();
|
|
4868
4740
|
const currentYear = now.getFullYear();
|
|
@@ -4901,7 +4773,7 @@ function DateRange(props) {
|
|
|
4901
4773
|
},
|
|
4902
4774
|
[internalValue]
|
|
4903
4775
|
);
|
|
4904
|
-
const determineOptionFromValue =
|
|
4776
|
+
const determineOptionFromValue = useCallback16(
|
|
4905
4777
|
(value2) => {
|
|
4906
4778
|
if (!value2) {
|
|
4907
4779
|
return "all-time";
|
|
@@ -4927,7 +4799,7 @@ function DateRange(props) {
|
|
|
4927
4799
|
const newOption = determineOptionFromValue(internalValue);
|
|
4928
4800
|
setSelectedOption(newOption);
|
|
4929
4801
|
}, [internalValue, determineOptionFromValue]);
|
|
4930
|
-
const handleOptionChange =
|
|
4802
|
+
const handleOptionChange = useCallback16(
|
|
4931
4803
|
(event) => {
|
|
4932
4804
|
const newOption = event.target.value;
|
|
4933
4805
|
setSelectedOption(newOption);
|
|
@@ -4936,25 +4808,28 @@ function DateRange(props) {
|
|
|
4936
4808
|
},
|
|
4937
4809
|
[getDateRangeForOption, setInternalValue]
|
|
4938
4810
|
);
|
|
4939
|
-
const handleCustomDateChange =
|
|
4811
|
+
const handleCustomDateChange = useCallback16(
|
|
4940
4812
|
(event) => {
|
|
4941
4813
|
const dateRangeString = event.target.value;
|
|
4942
4814
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
4943
4815
|
const [startDate, endDate] = dateRangeString.split(" - ");
|
|
4944
4816
|
if (startDate && endDate) {
|
|
4945
4817
|
const newValue = [startDate, endDate];
|
|
4946
|
-
|
|
4818
|
+
const hasChanged = !internalValue || internalValue[0] !== startDate || internalValue[1] !== endDate;
|
|
4819
|
+
if (hasChanged) {
|
|
4820
|
+
setInternalValue(newValue);
|
|
4821
|
+
}
|
|
4947
4822
|
}
|
|
4948
4823
|
} else if (!dateRangeString) {
|
|
4949
4824
|
setInternalValue(null);
|
|
4950
4825
|
}
|
|
4951
4826
|
},
|
|
4952
|
-
[setInternalValue]
|
|
4827
|
+
[setInternalValue, internalValue]
|
|
4953
4828
|
);
|
|
4954
4829
|
if (hidden) {
|
|
4955
4830
|
return null;
|
|
4956
4831
|
}
|
|
4957
|
-
return /* @__PURE__ */
|
|
4832
|
+
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(
|
|
4958
4833
|
DateRangePicker,
|
|
4959
4834
|
{
|
|
4960
4835
|
value: customDateRangeValue,
|
|
@@ -4963,7 +4838,7 @@ function DateRange(props) {
|
|
|
4963
4838
|
maxDate,
|
|
4964
4839
|
disableFuture,
|
|
4965
4840
|
disablePast,
|
|
4966
|
-
format,
|
|
4841
|
+
format: "YYYY-MM-DD",
|
|
4967
4842
|
displayFormat,
|
|
4968
4843
|
inputReadOnly,
|
|
4969
4844
|
hideClearButton
|
|
@@ -4973,12 +4848,12 @@ function DateRange(props) {
|
|
|
4973
4848
|
DateRange.displayName = "DateRange";
|
|
4974
4849
|
|
|
4975
4850
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
4976
|
-
import
|
|
4977
|
-
import { Stack as
|
|
4851
|
+
import React34, { useCallback as useCallback17 } from "react";
|
|
4852
|
+
import { Stack as Stack5 } from "@mui/joy";
|
|
4978
4853
|
function CurrencyInput3(props) {
|
|
4979
4854
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4980
4855
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
4981
|
-
const handleCurrencyChange =
|
|
4856
|
+
const handleCurrencyChange = useCallback17(
|
|
4982
4857
|
(event) => {
|
|
4983
4858
|
const newValue = event.target.value;
|
|
4984
4859
|
setInternalValue(newValue);
|
|
@@ -4988,7 +4863,7 @@ function CurrencyInput3(props) {
|
|
|
4988
4863
|
if (hidden) {
|
|
4989
4864
|
return null;
|
|
4990
4865
|
}
|
|
4991
|
-
return /* @__PURE__ */
|
|
4866
|
+
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(
|
|
4992
4867
|
CurrencyInput,
|
|
4993
4868
|
{
|
|
4994
4869
|
value: internalValue,
|
|
@@ -5004,14 +4879,14 @@ function CurrencyInput3(props) {
|
|
|
5004
4879
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
5005
4880
|
|
|
5006
4881
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
5007
|
-
import
|
|
5008
|
-
import { Stack as
|
|
4882
|
+
import React35, { useCallback as useCallback18 } from "react";
|
|
4883
|
+
import { Stack as Stack6 } from "@mui/joy";
|
|
5009
4884
|
function CurrencyRange(props) {
|
|
5010
4885
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
5011
4886
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
5012
4887
|
const minValue = internalValue?.[0];
|
|
5013
4888
|
const maxValue = internalValue?.[1];
|
|
5014
|
-
const handleMinChange =
|
|
4889
|
+
const handleMinChange = useCallback18(
|
|
5015
4890
|
(event) => {
|
|
5016
4891
|
const newMinValue = event.target.value;
|
|
5017
4892
|
const currentMaxValue = maxValue;
|
|
@@ -5025,7 +4900,7 @@ function CurrencyRange(props) {
|
|
|
5025
4900
|
},
|
|
5026
4901
|
[maxValue, setInternalValue]
|
|
5027
4902
|
);
|
|
5028
|
-
const handleMaxChange =
|
|
4903
|
+
const handleMaxChange = useCallback18(
|
|
5029
4904
|
(event) => {
|
|
5030
4905
|
const newMaxValue = event.target.value;
|
|
5031
4906
|
const currentMinValue = minValue;
|
|
@@ -5042,7 +4917,7 @@ function CurrencyRange(props) {
|
|
|
5042
4917
|
if (hidden) {
|
|
5043
4918
|
return null;
|
|
5044
4919
|
}
|
|
5045
|
-
return /* @__PURE__ */
|
|
4920
|
+
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(
|
|
5046
4921
|
CurrencyInput,
|
|
5047
4922
|
{
|
|
5048
4923
|
label: "Minimum",
|
|
@@ -5055,7 +4930,7 @@ function CurrencyRange(props) {
|
|
|
5055
4930
|
"aria-labelledby": label ? id : void 0,
|
|
5056
4931
|
"aria-label": "Minimum amount"
|
|
5057
4932
|
}
|
|
5058
|
-
), /* @__PURE__ */
|
|
4933
|
+
), /* @__PURE__ */ React35.createElement(
|
|
5059
4934
|
CurrencyInput,
|
|
5060
4935
|
{
|
|
5061
4936
|
label: "Maximum",
|
|
@@ -5073,20 +4948,20 @@ function CurrencyRange(props) {
|
|
|
5073
4948
|
CurrencyRange.displayName = "CurrencyRange";
|
|
5074
4949
|
|
|
5075
4950
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
5076
|
-
import
|
|
5077
|
-
import { Stack as
|
|
4951
|
+
import React37 from "react";
|
|
4952
|
+
import { Stack as Stack7, Typography as Typography2 } from "@mui/joy";
|
|
5078
4953
|
|
|
5079
4954
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
5080
|
-
import
|
|
4955
|
+
import React36, { useCallback as useCallback19, useMemo as useMemo14, useState as useState12 } from "react";
|
|
5081
4956
|
import { NumericFormat as NumericFormat2 } from "react-number-format";
|
|
5082
4957
|
import { styled as styled20, useThemeProps as useThemeProps6 } from "@mui/joy";
|
|
5083
4958
|
var padDecimal = (value, decimalScale) => {
|
|
5084
4959
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
5085
4960
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
5086
4961
|
};
|
|
5087
|
-
var TextMaskAdapter7 =
|
|
4962
|
+
var TextMaskAdapter7 = React36.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
5088
4963
|
const { onChange, min, max, ...innerProps } = props;
|
|
5089
|
-
return /* @__PURE__ */
|
|
4964
|
+
return /* @__PURE__ */ React36.createElement(
|
|
5090
4965
|
NumericFormat2,
|
|
5091
4966
|
{
|
|
5092
4967
|
...innerProps,
|
|
@@ -5111,7 +4986,7 @@ var PercentageInputRoot = styled20(Input_default, {
|
|
|
5111
4986
|
slot: "Root",
|
|
5112
4987
|
overridesResolver: (props, styles) => styles.root
|
|
5113
4988
|
})({});
|
|
5114
|
-
var PercentageInput =
|
|
4989
|
+
var PercentageInput = React36.forwardRef(
|
|
5115
4990
|
function PercentageInput2(inProps, ref) {
|
|
5116
4991
|
const props = useThemeProps6({ props: inProps, name: "PercentageInput" });
|
|
5117
4992
|
const {
|
|
@@ -5134,7 +5009,7 @@ var PercentageInput = React37.forwardRef(
|
|
|
5134
5009
|
const [_value, setValue] = useControlledState(
|
|
5135
5010
|
props.value,
|
|
5136
5011
|
props.defaultValue,
|
|
5137
|
-
|
|
5012
|
+
useCallback19((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
5138
5013
|
);
|
|
5139
5014
|
const [internalError, setInternalError] = useState12(
|
|
5140
5015
|
max && _value && _value > max || min && _value && _value < min
|
|
@@ -5145,7 +5020,7 @@ var PercentageInput = React37.forwardRef(
|
|
|
5145
5020
|
}
|
|
5146
5021
|
return _value;
|
|
5147
5022
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
5148
|
-
const handleChange =
|
|
5023
|
+
const handleChange = useCallback19(
|
|
5149
5024
|
(event) => {
|
|
5150
5025
|
if (event.target.value === "") {
|
|
5151
5026
|
setValue(void 0);
|
|
@@ -5162,7 +5037,7 @@ var PercentageInput = React37.forwardRef(
|
|
|
5162
5037
|
},
|
|
5163
5038
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
5164
5039
|
);
|
|
5165
|
-
return /* @__PURE__ */
|
|
5040
|
+
return /* @__PURE__ */ React36.createElement(
|
|
5166
5041
|
PercentageInputRoot,
|
|
5167
5042
|
{
|
|
5168
5043
|
...innerProps,
|
|
@@ -5209,7 +5084,7 @@ var PercentageInput3 = ({
|
|
|
5209
5084
|
if (hidden) {
|
|
5210
5085
|
return null;
|
|
5211
5086
|
}
|
|
5212
|
-
return /* @__PURE__ */
|
|
5087
|
+
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(
|
|
5213
5088
|
PercentageInput,
|
|
5214
5089
|
{
|
|
5215
5090
|
value: _value,
|
|
@@ -5224,8 +5099,8 @@ var PercentageInput3 = ({
|
|
|
5224
5099
|
};
|
|
5225
5100
|
|
|
5226
5101
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
5227
|
-
import
|
|
5228
|
-
import { Stack as
|
|
5102
|
+
import React38, { useCallback as useCallback20 } from "react";
|
|
5103
|
+
import { Stack as Stack8 } from "@mui/joy";
|
|
5229
5104
|
function PercentageRange(props) {
|
|
5230
5105
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
5231
5106
|
const [internalValue, setInternalValue] = useControlledState(
|
|
@@ -5235,7 +5110,7 @@ function PercentageRange(props) {
|
|
|
5235
5110
|
);
|
|
5236
5111
|
const minValue = internalValue?.[0];
|
|
5237
5112
|
const maxValue = internalValue?.[1];
|
|
5238
|
-
const handleMinChange =
|
|
5113
|
+
const handleMinChange = useCallback20(
|
|
5239
5114
|
(event) => {
|
|
5240
5115
|
const newMinValue = event.target.value;
|
|
5241
5116
|
const currentMaxValue = maxValue;
|
|
@@ -5247,7 +5122,7 @@ function PercentageRange(props) {
|
|
|
5247
5122
|
},
|
|
5248
5123
|
[maxValue, setInternalValue]
|
|
5249
5124
|
);
|
|
5250
|
-
const handleMaxChange =
|
|
5125
|
+
const handleMaxChange = useCallback20(
|
|
5251
5126
|
(event) => {
|
|
5252
5127
|
const newMaxValue = event.target.value;
|
|
5253
5128
|
const currentMinValue = minValue;
|
|
@@ -5262,7 +5137,7 @@ function PercentageRange(props) {
|
|
|
5262
5137
|
if (hidden) {
|
|
5263
5138
|
return null;
|
|
5264
5139
|
}
|
|
5265
|
-
return /* @__PURE__ */
|
|
5140
|
+
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(
|
|
5266
5141
|
PercentageInput,
|
|
5267
5142
|
{
|
|
5268
5143
|
label: "Minimum",
|
|
@@ -5276,7 +5151,7 @@ function PercentageRange(props) {
|
|
|
5276
5151
|
"aria-label": "Minimum percentage",
|
|
5277
5152
|
placeholder: "0%"
|
|
5278
5153
|
}
|
|
5279
|
-
), /* @__PURE__ */
|
|
5154
|
+
), /* @__PURE__ */ React38.createElement(
|
|
5280
5155
|
PercentageInput,
|
|
5281
5156
|
{
|
|
5282
5157
|
label: "Maximum",
|
|
@@ -5295,13 +5170,13 @@ function PercentageRange(props) {
|
|
|
5295
5170
|
PercentageRange.displayName = "PercentageRange";
|
|
5296
5171
|
|
|
5297
5172
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
5298
|
-
import
|
|
5299
|
-
import { Stack as
|
|
5173
|
+
import React39, { useCallback as useCallback21 } from "react";
|
|
5174
|
+
import { Stack as Stack9 } from "@mui/joy";
|
|
5300
5175
|
function Autocomplete2(props) {
|
|
5301
5176
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
5302
5177
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
5303
5178
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
5304
|
-
const handleChange =
|
|
5179
|
+
const handleChange = useCallback21(
|
|
5305
5180
|
(event) => {
|
|
5306
5181
|
const val = event.target.value;
|
|
5307
5182
|
if (val) {
|
|
@@ -5316,7 +5191,7 @@ function Autocomplete2(props) {
|
|
|
5316
5191
|
if (hidden) {
|
|
5317
5192
|
return null;
|
|
5318
5193
|
}
|
|
5319
|
-
return /* @__PURE__ */
|
|
5194
|
+
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(
|
|
5320
5195
|
Autocomplete,
|
|
5321
5196
|
{
|
|
5322
5197
|
value: autocompleteValue,
|
|
@@ -5333,7 +5208,6 @@ Autocomplete2.displayName = "Autocomplete";
|
|
|
5333
5208
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
5334
5209
|
var componentMap = {
|
|
5335
5210
|
"checkbox-group": CheckboxGroup,
|
|
5336
|
-
"filterable-checkbox-group": FilterableCheckboxGroup2,
|
|
5337
5211
|
"radio-group": RadioGroup2,
|
|
5338
5212
|
"date-range": DateRange,
|
|
5339
5213
|
"currency-input": CurrencyInput3,
|
|
@@ -5350,7 +5224,7 @@ function FilterMenu(props) {
|
|
|
5350
5224
|
void 0
|
|
5351
5225
|
// onChange는 Apply 버튼에서만 호출
|
|
5352
5226
|
);
|
|
5353
|
-
const handleFilterChange =
|
|
5227
|
+
const handleFilterChange = useCallback22(
|
|
5354
5228
|
(filterId, value) => {
|
|
5355
5229
|
setInternalValues((prev) => ({
|
|
5356
5230
|
...prev,
|
|
@@ -5359,17 +5233,17 @@ function FilterMenu(props) {
|
|
|
5359
5233
|
},
|
|
5360
5234
|
[setInternalValues]
|
|
5361
5235
|
);
|
|
5362
|
-
const handleApply =
|
|
5236
|
+
const handleApply = useCallback22(() => {
|
|
5363
5237
|
onChange?.(internalValues);
|
|
5364
5238
|
onClose?.();
|
|
5365
5239
|
}, [onChange, onClose, internalValues]);
|
|
5366
|
-
const handleClear =
|
|
5240
|
+
const handleClear = useCallback22(() => {
|
|
5367
5241
|
const clearedValues = resetValues || {};
|
|
5368
5242
|
setInternalValues(clearedValues);
|
|
5369
5243
|
onChange?.(clearedValues);
|
|
5370
5244
|
onClose?.();
|
|
5371
5245
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
5372
|
-
return /* @__PURE__ */
|
|
5246
|
+
return /* @__PURE__ */ React40.createElement(
|
|
5373
5247
|
ModalDialog,
|
|
5374
5248
|
{
|
|
5375
5249
|
sx: {
|
|
@@ -5379,9 +5253,9 @@ function FilterMenu(props) {
|
|
|
5379
5253
|
top: "initial"
|
|
5380
5254
|
}
|
|
5381
5255
|
},
|
|
5382
|
-
/* @__PURE__ */
|
|
5256
|
+
/* @__PURE__ */ React40.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ React40.createElement(Stack10, { spacing: 6 }, filters?.map((filter) => {
|
|
5383
5257
|
const FilterComponent = componentMap[filter.type];
|
|
5384
|
-
return FilterComponent ? /* @__PURE__ */
|
|
5258
|
+
return FilterComponent ? /* @__PURE__ */ React40.createElement(
|
|
5385
5259
|
FilterComponent,
|
|
5386
5260
|
{
|
|
5387
5261
|
key: filter.id,
|
|
@@ -5393,13 +5267,13 @@ function FilterMenu(props) {
|
|
|
5393
5267
|
}
|
|
5394
5268
|
) : null;
|
|
5395
5269
|
}))),
|
|
5396
|
-
/* @__PURE__ */
|
|
5270
|
+
/* @__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"))
|
|
5397
5271
|
);
|
|
5398
5272
|
}
|
|
5399
5273
|
FilterMenu.displayName = "FilterMenu";
|
|
5400
5274
|
|
|
5401
5275
|
// src/components/Uploader/Uploader.tsx
|
|
5402
|
-
import
|
|
5276
|
+
import React41, { useCallback as useCallback23, useEffect as useEffect10, useMemo as useMemo15, useRef as useRef9, useState as useState13 } from "react";
|
|
5403
5277
|
import { styled as styled21, Input as Input2 } from "@mui/joy";
|
|
5404
5278
|
import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
|
|
5405
5279
|
import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
|
|
@@ -5476,7 +5350,7 @@ var getFileSize = (n) => {
|
|
|
5476
5350
|
};
|
|
5477
5351
|
var Preview = (props) => {
|
|
5478
5352
|
const { files, uploaded, onDelete } = props;
|
|
5479
|
-
return /* @__PURE__ */
|
|
5353
|
+
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(
|
|
5480
5354
|
Typography_default,
|
|
5481
5355
|
{
|
|
5482
5356
|
level: "body-sm",
|
|
@@ -5488,7 +5362,7 @@ var Preview = (props) => {
|
|
|
5488
5362
|
}
|
|
5489
5363
|
},
|
|
5490
5364
|
file.name
|
|
5491
|
-
), !!file.size && /* @__PURE__ */
|
|
5365
|
+
), !!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))))));
|
|
5492
5366
|
};
|
|
5493
5367
|
var UploaderRoot = styled21(Stack_default, {
|
|
5494
5368
|
name: "Uploader",
|
|
@@ -5531,7 +5405,7 @@ var UploaderIcon = styled21(MuiFileUploadIcon, {
|
|
|
5531
5405
|
}
|
|
5532
5406
|
})
|
|
5533
5407
|
);
|
|
5534
|
-
var Uploader =
|
|
5408
|
+
var Uploader = React41.memo(
|
|
5535
5409
|
(props) => {
|
|
5536
5410
|
const {
|
|
5537
5411
|
accept,
|
|
@@ -5599,7 +5473,7 @@ var Uploader = React42.memo(
|
|
|
5599
5473
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5600
5474
|
[files, maxCount, uploaded]
|
|
5601
5475
|
);
|
|
5602
|
-
const addFiles =
|
|
5476
|
+
const addFiles = useCallback23(
|
|
5603
5477
|
(uploads) => {
|
|
5604
5478
|
try {
|
|
5605
5479
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -5691,14 +5565,14 @@ var Uploader = React42.memo(
|
|
|
5691
5565
|
}
|
|
5692
5566
|
}
|
|
5693
5567
|
}, [inputRef, files, minCount]);
|
|
5694
|
-
const handleFileChanged =
|
|
5568
|
+
const handleFileChanged = useCallback23(
|
|
5695
5569
|
(event) => {
|
|
5696
5570
|
const files2 = Array.from(event.target.files || []);
|
|
5697
5571
|
addFiles(files2);
|
|
5698
5572
|
},
|
|
5699
5573
|
[addFiles]
|
|
5700
5574
|
);
|
|
5701
|
-
const handleDeleteFile =
|
|
5575
|
+
const handleDeleteFile = useCallback23(
|
|
5702
5576
|
(deletedFile) => {
|
|
5703
5577
|
if (deletedFile instanceof File) {
|
|
5704
5578
|
setFiles((current) => {
|
|
@@ -5718,10 +5592,10 @@ var Uploader = React42.memo(
|
|
|
5718
5592
|
},
|
|
5719
5593
|
[name, onChange, onDelete]
|
|
5720
5594
|
);
|
|
5721
|
-
const handleUploaderButtonClick =
|
|
5595
|
+
const handleUploaderButtonClick = useCallback23(() => {
|
|
5722
5596
|
inputRef.current?.click();
|
|
5723
5597
|
}, []);
|
|
5724
|
-
const uploader = /* @__PURE__ */
|
|
5598
|
+
const uploader = /* @__PURE__ */ React41.createElement(
|
|
5725
5599
|
FileDropZone,
|
|
5726
5600
|
{
|
|
5727
5601
|
state: previewState,
|
|
@@ -5730,8 +5604,8 @@ var Uploader = React42.memo(
|
|
|
5730
5604
|
ref: dropZoneRef,
|
|
5731
5605
|
onClick: handleUploaderButtonClick
|
|
5732
5606
|
},
|
|
5733
|
-
/* @__PURE__ */
|
|
5734
|
-
/* @__PURE__ */
|
|
5607
|
+
/* @__PURE__ */ React41.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React41.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
5608
|
+
/* @__PURE__ */ React41.createElement(
|
|
5735
5609
|
VisuallyHiddenInput,
|
|
5736
5610
|
{
|
|
5737
5611
|
disabled,
|
|
@@ -5754,7 +5628,7 @@ var Uploader = React42.memo(
|
|
|
5754
5628
|
}
|
|
5755
5629
|
)
|
|
5756
5630
|
);
|
|
5757
|
-
return /* @__PURE__ */
|
|
5631
|
+
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 }));
|
|
5758
5632
|
}
|
|
5759
5633
|
);
|
|
5760
5634
|
Uploader.displayName = "Uploader";
|
|
@@ -5763,7 +5637,7 @@ Uploader.displayName = "Uploader";
|
|
|
5763
5637
|
import { Grid } from "@mui/joy";
|
|
5764
5638
|
|
|
5765
5639
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5766
|
-
import
|
|
5640
|
+
import React42 from "react";
|
|
5767
5641
|
import { MenuButton as JoyMenuButton2, IconButton as JoyIconButton2 } from "@mui/joy";
|
|
5768
5642
|
function IconMenuButton(props) {
|
|
5769
5643
|
const {
|
|
@@ -5777,7 +5651,7 @@ function IconMenuButton(props) {
|
|
|
5777
5651
|
placement = "bottom"
|
|
5778
5652
|
} = props;
|
|
5779
5653
|
if (!items.length) {
|
|
5780
|
-
return /* @__PURE__ */
|
|
5654
|
+
return /* @__PURE__ */ React42.createElement(
|
|
5781
5655
|
JoyIconButton2,
|
|
5782
5656
|
{
|
|
5783
5657
|
component: props.buttonComponent ?? "button",
|
|
@@ -5791,7 +5665,7 @@ function IconMenuButton(props) {
|
|
|
5791
5665
|
icon
|
|
5792
5666
|
);
|
|
5793
5667
|
}
|
|
5794
|
-
return /* @__PURE__ */
|
|
5668
|
+
return /* @__PURE__ */ React42.createElement(Dropdown_default, null, /* @__PURE__ */ React42.createElement(
|
|
5795
5669
|
JoyMenuButton2,
|
|
5796
5670
|
{
|
|
5797
5671
|
slots: { root: JoyIconButton2 },
|
|
@@ -5808,12 +5682,12 @@ function IconMenuButton(props) {
|
|
|
5808
5682
|
}
|
|
5809
5683
|
},
|
|
5810
5684
|
icon
|
|
5811
|
-
), /* @__PURE__ */
|
|
5685
|
+
), /* @__PURE__ */ React42.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React42.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5812
5686
|
}
|
|
5813
5687
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5814
5688
|
|
|
5815
5689
|
// src/components/Markdown/Markdown.tsx
|
|
5816
|
-
import
|
|
5690
|
+
import React43, { lazy, Suspense, useEffect as useEffect11, useState as useState14 } from "react";
|
|
5817
5691
|
import { Skeleton } from "@mui/joy";
|
|
5818
5692
|
import { Link as Link2 } from "@mui/joy";
|
|
5819
5693
|
import remarkGfm from "remark-gfm";
|
|
@@ -5842,12 +5716,12 @@ var Markdown = (props) => {
|
|
|
5842
5716
|
if (!rehypeAccent2) {
|
|
5843
5717
|
return null;
|
|
5844
5718
|
}
|
|
5845
|
-
return /* @__PURE__ */
|
|
5719
|
+
return /* @__PURE__ */ React43.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React43.createElement(
|
|
5846
5720
|
Suspense,
|
|
5847
5721
|
{
|
|
5848
|
-
fallback: fallback || /* @__PURE__ */
|
|
5722
|
+
fallback: fallback || /* @__PURE__ */ React43.createElement(Typography, null, /* @__PURE__ */ React43.createElement(Skeleton, null, content || ""))
|
|
5849
5723
|
},
|
|
5850
|
-
/* @__PURE__ */
|
|
5724
|
+
/* @__PURE__ */ React43.createElement(
|
|
5851
5725
|
LazyReactMarkdown,
|
|
5852
5726
|
{
|
|
5853
5727
|
...markdownOptions,
|
|
@@ -5855,15 +5729,15 @@ var Markdown = (props) => {
|
|
|
5855
5729
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
5856
5730
|
remarkPlugins: [remarkGfm],
|
|
5857
5731
|
components: {
|
|
5858
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
5859
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
5860
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
5861
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
5862
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
5863
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
5864
|
-
hr: () => /* @__PURE__ */
|
|
5865
|
-
b: ({ children }) => /* @__PURE__ */
|
|
5866
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
5732
|
+
h1: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
5733
|
+
h2: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
5734
|
+
h3: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
5735
|
+
h4: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
5736
|
+
p: ({ children, node }) => /* @__PURE__ */ React43.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
5737
|
+
a: ({ children, href }) => /* @__PURE__ */ React43.createElement(Link2, { href, target: defaultLinkAction }, children),
|
|
5738
|
+
hr: () => /* @__PURE__ */ React43.createElement(Divider, null),
|
|
5739
|
+
b: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5740
|
+
strong: ({ children }) => /* @__PURE__ */ React43.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5867
5741
|
...markdownOptions?.components
|
|
5868
5742
|
}
|
|
5869
5743
|
}
|
|
@@ -5873,7 +5747,7 @@ var Markdown = (props) => {
|
|
|
5873
5747
|
Markdown.displayName = "Markdown";
|
|
5874
5748
|
|
|
5875
5749
|
// src/components/MenuButton/MenuButton.tsx
|
|
5876
|
-
import
|
|
5750
|
+
import React44 from "react";
|
|
5877
5751
|
import { MenuButton as JoyMenuButton3, Button as JoyButton2 } from "@mui/joy";
|
|
5878
5752
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
5879
5753
|
function MenuButton(props) {
|
|
@@ -5891,7 +5765,7 @@ function MenuButton(props) {
|
|
|
5891
5765
|
placement = "bottom"
|
|
5892
5766
|
} = props;
|
|
5893
5767
|
if (!items.length) {
|
|
5894
|
-
return /* @__PURE__ */
|
|
5768
|
+
return /* @__PURE__ */ React44.createElement(
|
|
5895
5769
|
JoyButton2,
|
|
5896
5770
|
{
|
|
5897
5771
|
component: props.buttonComponent ?? "button",
|
|
@@ -5902,12 +5776,12 @@ function MenuButton(props) {
|
|
|
5902
5776
|
loading,
|
|
5903
5777
|
startDecorator,
|
|
5904
5778
|
...props.buttonComponentProps ?? {},
|
|
5905
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5779
|
+
endDecorator: showIcon ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator, /* @__PURE__ */ React44.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator)
|
|
5906
5780
|
},
|
|
5907
5781
|
buttonText
|
|
5908
5782
|
);
|
|
5909
5783
|
}
|
|
5910
|
-
return /* @__PURE__ */
|
|
5784
|
+
return /* @__PURE__ */ React44.createElement(Dropdown_default, null, /* @__PURE__ */ React44.createElement(
|
|
5911
5785
|
JoyMenuButton3,
|
|
5912
5786
|
{
|
|
5913
5787
|
component: props.buttonComponent ?? "button",
|
|
@@ -5918,15 +5792,15 @@ function MenuButton(props) {
|
|
|
5918
5792
|
loading,
|
|
5919
5793
|
startDecorator,
|
|
5920
5794
|
...props.buttonComponentProps ?? {},
|
|
5921
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5795
|
+
endDecorator: showIcon ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator, /* @__PURE__ */ React44.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator)
|
|
5922
5796
|
},
|
|
5923
5797
|
buttonText
|
|
5924
|
-
), /* @__PURE__ */
|
|
5798
|
+
), /* @__PURE__ */ React44.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React44.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5925
5799
|
}
|
|
5926
5800
|
MenuButton.displayName = "MenuButton";
|
|
5927
5801
|
|
|
5928
5802
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5929
|
-
import
|
|
5803
|
+
import React45, { forwardRef as forwardRef9, useCallback as useCallback24, useEffect as useEffect12, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState15 } from "react";
|
|
5930
5804
|
import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
|
|
5931
5805
|
import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
|
|
5932
5806
|
import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
|
|
@@ -6013,9 +5887,9 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6013
5887
|
const [value, setValue, isControlled] = useControlledState(
|
|
6014
5888
|
props.value,
|
|
6015
5889
|
props.defaultValue || "",
|
|
6016
|
-
|
|
5890
|
+
useCallback24((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
6017
5891
|
);
|
|
6018
|
-
const getFormattedDisplayValue =
|
|
5892
|
+
const getFormattedDisplayValue = useCallback24(
|
|
6019
5893
|
(inputValue) => {
|
|
6020
5894
|
if (!inputValue) return "";
|
|
6021
5895
|
try {
|
|
@@ -6038,7 +5912,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6038
5912
|
useEffect12(() => {
|
|
6039
5913
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
6040
5914
|
}, [value, getFormattedDisplayValue]);
|
|
6041
|
-
const handleChange =
|
|
5915
|
+
const handleChange = useCallback24(
|
|
6042
5916
|
(event) => {
|
|
6043
5917
|
const newValue = event.target.value;
|
|
6044
5918
|
setValue(newValue);
|
|
@@ -6048,21 +5922,21 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6048
5922
|
},
|
|
6049
5923
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
6050
5924
|
);
|
|
6051
|
-
const handleCalendarToggle =
|
|
5925
|
+
const handleCalendarToggle = useCallback24(
|
|
6052
5926
|
(event) => {
|
|
6053
5927
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6054
5928
|
innerRef.current?.focus();
|
|
6055
5929
|
},
|
|
6056
5930
|
[anchorEl, setAnchorEl, innerRef]
|
|
6057
5931
|
);
|
|
6058
|
-
const handleInputMouseDown =
|
|
5932
|
+
const handleInputMouseDown = useCallback24(
|
|
6059
5933
|
(event) => {
|
|
6060
5934
|
event.preventDefault();
|
|
6061
5935
|
buttonRef.current?.focus();
|
|
6062
5936
|
},
|
|
6063
5937
|
[buttonRef]
|
|
6064
5938
|
);
|
|
6065
|
-
return /* @__PURE__ */
|
|
5939
|
+
return /* @__PURE__ */ React45.createElement(MonthPickerRoot, null, /* @__PURE__ */ React45.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(
|
|
6066
5940
|
Input_default,
|
|
6067
5941
|
{
|
|
6068
5942
|
...innerProps,
|
|
@@ -6092,7 +5966,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6092
5966
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6093
5967
|
fontFamily: "monospace"
|
|
6094
5968
|
},
|
|
6095
|
-
endDecorator: /* @__PURE__ */
|
|
5969
|
+
endDecorator: /* @__PURE__ */ React45.createElement(
|
|
6096
5970
|
IconButton_default,
|
|
6097
5971
|
{
|
|
6098
5972
|
ref: buttonRef,
|
|
@@ -6104,12 +5978,12 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6104
5978
|
"aria-expanded": open,
|
|
6105
5979
|
disabled
|
|
6106
5980
|
},
|
|
6107
|
-
/* @__PURE__ */
|
|
5981
|
+
/* @__PURE__ */ React45.createElement(CalendarTodayIcon3, null)
|
|
6108
5982
|
),
|
|
6109
5983
|
label,
|
|
6110
5984
|
helperText
|
|
6111
5985
|
}
|
|
6112
|
-
), open && /* @__PURE__ */
|
|
5986
|
+
), open && /* @__PURE__ */ React45.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React45.createElement(
|
|
6113
5987
|
StyledPopper3,
|
|
6114
5988
|
{
|
|
6115
5989
|
id: "month-picker-popper",
|
|
@@ -6128,7 +6002,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6128
6002
|
"aria-label": "Calendar Tooltip",
|
|
6129
6003
|
"aria-expanded": open
|
|
6130
6004
|
},
|
|
6131
|
-
/* @__PURE__ */
|
|
6005
|
+
/* @__PURE__ */ React45.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React45.createElement(
|
|
6132
6006
|
Calendar_default,
|
|
6133
6007
|
{
|
|
6134
6008
|
view: "month",
|
|
@@ -6149,14 +6023,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6149
6023
|
disablePast,
|
|
6150
6024
|
locale
|
|
6151
6025
|
}
|
|
6152
|
-
), /* @__PURE__ */
|
|
6026
|
+
), /* @__PURE__ */ React45.createElement(
|
|
6153
6027
|
DialogActions_default,
|
|
6154
6028
|
{
|
|
6155
6029
|
sx: {
|
|
6156
6030
|
p: 1
|
|
6157
6031
|
}
|
|
6158
6032
|
},
|
|
6159
|
-
/* @__PURE__ */
|
|
6033
|
+
/* @__PURE__ */ React45.createElement(
|
|
6160
6034
|
Button_default,
|
|
6161
6035
|
{
|
|
6162
6036
|
size,
|
|
@@ -6179,7 +6053,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
6179
6053
|
});
|
|
6180
6054
|
|
|
6181
6055
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
6182
|
-
import
|
|
6056
|
+
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";
|
|
6183
6057
|
import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
|
|
6184
6058
|
import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
|
|
6185
6059
|
import { styled as styled23, useThemeProps as useThemeProps8 } from "@mui/joy";
|
|
@@ -6237,9 +6111,9 @@ var parseDates2 = (str) => {
|
|
|
6237
6111
|
var formatToPattern3 = (format) => {
|
|
6238
6112
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
6239
6113
|
};
|
|
6240
|
-
var TextMaskAdapter9 =
|
|
6114
|
+
var TextMaskAdapter9 = React46.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
6241
6115
|
const { onChange, format, ...other } = props;
|
|
6242
|
-
return /* @__PURE__ */
|
|
6116
|
+
return /* @__PURE__ */ React46.createElement(
|
|
6243
6117
|
IMaskInput3,
|
|
6244
6118
|
{
|
|
6245
6119
|
...other,
|
|
@@ -6291,7 +6165,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6291
6165
|
const [value, setValue] = useControlledState(
|
|
6292
6166
|
props.value,
|
|
6293
6167
|
props.defaultValue || "",
|
|
6294
|
-
|
|
6168
|
+
useCallback25((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
6295
6169
|
);
|
|
6296
6170
|
const [anchorEl, setAnchorEl] = useState16(null);
|
|
6297
6171
|
const open = Boolean(anchorEl);
|
|
@@ -6302,20 +6176,20 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6302
6176
|
}
|
|
6303
6177
|
}, [anchorEl, innerRef]);
|
|
6304
6178
|
useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
|
|
6305
|
-
const handleChange =
|
|
6179
|
+
const handleChange = useCallback25(
|
|
6306
6180
|
(event) => {
|
|
6307
6181
|
setValue(event.target.value);
|
|
6308
6182
|
},
|
|
6309
6183
|
[setValue]
|
|
6310
6184
|
);
|
|
6311
|
-
const handleCalendarToggle =
|
|
6185
|
+
const handleCalendarToggle = useCallback25(
|
|
6312
6186
|
(event) => {
|
|
6313
6187
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
6314
6188
|
innerRef.current?.focus();
|
|
6315
6189
|
},
|
|
6316
6190
|
[anchorEl, setAnchorEl, innerRef]
|
|
6317
6191
|
);
|
|
6318
|
-
const handleCalendarChange =
|
|
6192
|
+
const handleCalendarChange = useCallback25(
|
|
6319
6193
|
([date1, date2]) => {
|
|
6320
6194
|
if (!date1 || !date2) return;
|
|
6321
6195
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -6323,7 +6197,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6323
6197
|
},
|
|
6324
6198
|
[setValue, setAnchorEl, format]
|
|
6325
6199
|
);
|
|
6326
|
-
return /* @__PURE__ */
|
|
6200
|
+
return /* @__PURE__ */ React46.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React46.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(
|
|
6327
6201
|
Input_default,
|
|
6328
6202
|
{
|
|
6329
6203
|
...innerProps,
|
|
@@ -6345,7 +6219,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6345
6219
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6346
6220
|
fontFamily: "monospace"
|
|
6347
6221
|
},
|
|
6348
|
-
endDecorator: /* @__PURE__ */
|
|
6222
|
+
endDecorator: /* @__PURE__ */ React46.createElement(
|
|
6349
6223
|
IconButton_default,
|
|
6350
6224
|
{
|
|
6351
6225
|
variant: "plain",
|
|
@@ -6355,12 +6229,12 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6355
6229
|
"aria-haspopup": "dialog",
|
|
6356
6230
|
"aria-expanded": open
|
|
6357
6231
|
},
|
|
6358
|
-
/* @__PURE__ */
|
|
6232
|
+
/* @__PURE__ */ React46.createElement(CalendarTodayIcon4, null)
|
|
6359
6233
|
),
|
|
6360
6234
|
label,
|
|
6361
6235
|
helperText
|
|
6362
6236
|
}
|
|
6363
|
-
), open && /* @__PURE__ */
|
|
6237
|
+
), open && /* @__PURE__ */ React46.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React46.createElement(
|
|
6364
6238
|
StyledPopper4,
|
|
6365
6239
|
{
|
|
6366
6240
|
id: "month-range-picker-popper",
|
|
@@ -6379,7 +6253,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6379
6253
|
"aria-label": "Calendar Tooltip",
|
|
6380
6254
|
"aria-expanded": open
|
|
6381
6255
|
},
|
|
6382
|
-
/* @__PURE__ */
|
|
6256
|
+
/* @__PURE__ */ React46.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React46.createElement(
|
|
6383
6257
|
Calendar_default,
|
|
6384
6258
|
{
|
|
6385
6259
|
view: "month",
|
|
@@ -6392,14 +6266,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6392
6266
|
disableFuture,
|
|
6393
6267
|
disablePast
|
|
6394
6268
|
}
|
|
6395
|
-
), /* @__PURE__ */
|
|
6269
|
+
), /* @__PURE__ */ React46.createElement(
|
|
6396
6270
|
DialogActions_default,
|
|
6397
6271
|
{
|
|
6398
6272
|
sx: {
|
|
6399
6273
|
p: 1
|
|
6400
6274
|
}
|
|
6401
6275
|
},
|
|
6402
|
-
/* @__PURE__ */
|
|
6276
|
+
/* @__PURE__ */ React46.createElement(
|
|
6403
6277
|
Button_default,
|
|
6404
6278
|
{
|
|
6405
6279
|
size,
|
|
@@ -6418,14 +6292,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6418
6292
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
6419
6293
|
|
|
6420
6294
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
6421
|
-
import
|
|
6295
|
+
import React47 from "react";
|
|
6422
6296
|
import {
|
|
6423
6297
|
Accordion as JoyAccordion2,
|
|
6424
6298
|
AccordionSummary as JoyAccordionSummary2,
|
|
6425
6299
|
AccordionDetails as JoyAccordionDetails2,
|
|
6426
6300
|
styled as styled24,
|
|
6427
6301
|
accordionSummaryClasses,
|
|
6428
|
-
Stack as
|
|
6302
|
+
Stack as Stack11
|
|
6429
6303
|
} from "@mui/joy";
|
|
6430
6304
|
var AccordionSummary2 = styled24(JoyAccordionSummary2, {
|
|
6431
6305
|
name: "NavigationGroup",
|
|
@@ -6449,11 +6323,11 @@ var AccordionDetails2 = styled24(JoyAccordionDetails2, {
|
|
|
6449
6323
|
}));
|
|
6450
6324
|
function NavigationGroup(props) {
|
|
6451
6325
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
6452
|
-
return /* @__PURE__ */
|
|
6326
|
+
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));
|
|
6453
6327
|
}
|
|
6454
6328
|
|
|
6455
6329
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
6456
|
-
import
|
|
6330
|
+
import React48 from "react";
|
|
6457
6331
|
import {
|
|
6458
6332
|
ListItem as JoyListItem,
|
|
6459
6333
|
ListItemButton as JoyListItemButton,
|
|
@@ -6488,7 +6362,7 @@ function NavigationItem(props) {
|
|
|
6488
6362
|
const handleClick = () => {
|
|
6489
6363
|
onClick?.(id);
|
|
6490
6364
|
};
|
|
6491
|
-
return /* @__PURE__ */
|
|
6365
|
+
return /* @__PURE__ */ React48.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React48.createElement(
|
|
6492
6366
|
ListItemButton,
|
|
6493
6367
|
{
|
|
6494
6368
|
level,
|
|
@@ -6497,21 +6371,21 @@ function NavigationItem(props) {
|
|
|
6497
6371
|
"aria-current": selected,
|
|
6498
6372
|
onClick: handleClick
|
|
6499
6373
|
},
|
|
6500
|
-
startDecorator && /* @__PURE__ */
|
|
6374
|
+
startDecorator && /* @__PURE__ */ React48.createElement(JoyListItemDecorator, null, startDecorator),
|
|
6501
6375
|
children
|
|
6502
6376
|
));
|
|
6503
6377
|
}
|
|
6504
6378
|
|
|
6505
6379
|
// src/components/Navigator/Navigator.tsx
|
|
6506
|
-
import
|
|
6380
|
+
import React49 from "react";
|
|
6507
6381
|
function Navigator(props) {
|
|
6508
6382
|
const { items, level = 0, onSelect } = props;
|
|
6509
6383
|
const handleItemClick = (id) => {
|
|
6510
6384
|
onSelect?.(id);
|
|
6511
6385
|
};
|
|
6512
|
-
return /* @__PURE__ */
|
|
6386
|
+
return /* @__PURE__ */ React49.createElement("div", null, items.map((item, index) => {
|
|
6513
6387
|
if (item.type === "item") {
|
|
6514
|
-
return /* @__PURE__ */
|
|
6388
|
+
return /* @__PURE__ */ React49.createElement(
|
|
6515
6389
|
NavigationItem,
|
|
6516
6390
|
{
|
|
6517
6391
|
key: item.id,
|
|
@@ -6524,7 +6398,7 @@ function Navigator(props) {
|
|
|
6524
6398
|
item.title
|
|
6525
6399
|
);
|
|
6526
6400
|
} else if (item.type === "group") {
|
|
6527
|
-
return /* @__PURE__ */
|
|
6401
|
+
return /* @__PURE__ */ React49.createElement(
|
|
6528
6402
|
NavigationGroup,
|
|
6529
6403
|
{
|
|
6530
6404
|
key: `${item.title}-${index}`,
|
|
@@ -6542,7 +6416,7 @@ function Navigator(props) {
|
|
|
6542
6416
|
Navigator.displayName = "Navigator";
|
|
6543
6417
|
|
|
6544
6418
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
6545
|
-
import
|
|
6419
|
+
import React50, { useCallback as useCallback26, useMemo as useMemo17 } from "react";
|
|
6546
6420
|
import { Dropdown as Dropdown2, ListDivider, menuItemClasses, styled as styled26, MenuButton as MenuButton2 } from "@mui/joy";
|
|
6547
6421
|
import { ClickAwayListener as ClickAwayListener5 } from "@mui/base";
|
|
6548
6422
|
import DropdownIcon from "@mui/icons-material/ArrowDropDown";
|
|
@@ -6554,7 +6428,7 @@ function ProfileCard(props) {
|
|
|
6554
6428
|
const { children, chip, caption, size } = props;
|
|
6555
6429
|
const captionLevel = useMemo17(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
6556
6430
|
const nameLevel = useMemo17(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
6557
|
-
return /* @__PURE__ */
|
|
6431
|
+
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));
|
|
6558
6432
|
}
|
|
6559
6433
|
ProfileCard.displayName = "ProfileCard";
|
|
6560
6434
|
var StyledProfileMenuButton = styled26(MenuButton2, {
|
|
@@ -6566,16 +6440,16 @@ var StyledProfileMenuButton = styled26(MenuButton2, {
|
|
|
6566
6440
|
}));
|
|
6567
6441
|
function ProfileMenuButton(props) {
|
|
6568
6442
|
const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
|
|
6569
|
-
return /* @__PURE__ */
|
|
6443
|
+
return /* @__PURE__ */ React50.createElement(
|
|
6570
6444
|
StyledProfileMenuButton,
|
|
6571
6445
|
{
|
|
6572
6446
|
variant: "plain",
|
|
6573
6447
|
color: "neutral",
|
|
6574
6448
|
size,
|
|
6575
|
-
endDecorator: /* @__PURE__ */
|
|
6449
|
+
endDecorator: /* @__PURE__ */ React50.createElement(DropdownIcon, null),
|
|
6576
6450
|
...innerProps
|
|
6577
6451
|
},
|
|
6578
|
-
/* @__PURE__ */
|
|
6452
|
+
/* @__PURE__ */ React50.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
6579
6453
|
);
|
|
6580
6454
|
}
|
|
6581
6455
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
@@ -6594,9 +6468,9 @@ function ProfileMenu(props) {
|
|
|
6594
6468
|
const [open, setOpen] = useControlledState(
|
|
6595
6469
|
_open,
|
|
6596
6470
|
defaultOpen ?? false,
|
|
6597
|
-
|
|
6471
|
+
useCallback26((value) => onOpenChange?.(value), [onOpenChange])
|
|
6598
6472
|
);
|
|
6599
|
-
return /* @__PURE__ */
|
|
6473
|
+
return /* @__PURE__ */ React50.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React50.createElement("div", null, /* @__PURE__ */ React50.createElement(Dropdown2, { open }, /* @__PURE__ */ React50.createElement(
|
|
6600
6474
|
ProfileMenuButton,
|
|
6601
6475
|
{
|
|
6602
6476
|
size,
|
|
@@ -6606,7 +6480,7 @@ function ProfileMenu(props) {
|
|
|
6606
6480
|
getInitial
|
|
6607
6481
|
},
|
|
6608
6482
|
profile.name
|
|
6609
|
-
), /* @__PURE__ */
|
|
6483
|
+
), /* @__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(
|
|
6610
6484
|
MenuItem,
|
|
6611
6485
|
{
|
|
6612
6486
|
key: label,
|
|
@@ -6622,7 +6496,7 @@ function ProfileMenu(props) {
|
|
|
6622
6496
|
ProfileMenu.displayName = "ProfileMenu";
|
|
6623
6497
|
|
|
6624
6498
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
6625
|
-
import
|
|
6499
|
+
import React51 from "react";
|
|
6626
6500
|
import { styled as styled27, radioClasses, sheetClasses } from "@mui/joy";
|
|
6627
6501
|
var RadioTileGroupRoot = styled27(RadioGroup, {
|
|
6628
6502
|
name: "RadioTileGroup",
|
|
@@ -6710,7 +6584,7 @@ function RadioTileGroup(props) {
|
|
|
6710
6584
|
error,
|
|
6711
6585
|
required
|
|
6712
6586
|
} = props;
|
|
6713
|
-
const radioGroup = /* @__PURE__ */
|
|
6587
|
+
const radioGroup = /* @__PURE__ */ React51.createElement(
|
|
6714
6588
|
RadioTileGroupRoot,
|
|
6715
6589
|
{
|
|
6716
6590
|
overlay: true,
|
|
@@ -6721,7 +6595,7 @@ function RadioTileGroup(props) {
|
|
|
6721
6595
|
flex,
|
|
6722
6596
|
columns
|
|
6723
6597
|
},
|
|
6724
|
-
options.map((option) => /* @__PURE__ */
|
|
6598
|
+
options.map((option) => /* @__PURE__ */ React51.createElement(
|
|
6725
6599
|
RadioTileSheet,
|
|
6726
6600
|
{
|
|
6727
6601
|
key: option.value,
|
|
@@ -6731,7 +6605,7 @@ function RadioTileGroup(props) {
|
|
|
6731
6605
|
flex,
|
|
6732
6606
|
textAlign
|
|
6733
6607
|
},
|
|
6734
|
-
/* @__PURE__ */
|
|
6608
|
+
/* @__PURE__ */ React51.createElement(
|
|
6735
6609
|
Radio,
|
|
6736
6610
|
{
|
|
6737
6611
|
id: `${option.value}`,
|
|
@@ -6759,7 +6633,7 @@ function RadioTileGroup(props) {
|
|
|
6759
6633
|
}
|
|
6760
6634
|
}
|
|
6761
6635
|
),
|
|
6762
|
-
option.startDecorator && /* @__PURE__ */
|
|
6636
|
+
option.startDecorator && /* @__PURE__ */ React51.createElement(
|
|
6763
6637
|
Box_default,
|
|
6764
6638
|
{
|
|
6765
6639
|
sx: {
|
|
@@ -6780,20 +6654,20 @@ function RadioTileGroup(props) {
|
|
|
6780
6654
|
)
|
|
6781
6655
|
))
|
|
6782
6656
|
);
|
|
6783
|
-
return /* @__PURE__ */
|
|
6657
|
+
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));
|
|
6784
6658
|
}
|
|
6785
6659
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
6786
6660
|
|
|
6787
6661
|
// src/components/RadioList/RadioList.tsx
|
|
6788
|
-
import
|
|
6662
|
+
import React52 from "react";
|
|
6789
6663
|
function RadioList(props) {
|
|
6790
6664
|
const { items, ...innerProps } = props;
|
|
6791
|
-
return /* @__PURE__ */
|
|
6665
|
+
return /* @__PURE__ */ React52.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React52.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
6792
6666
|
}
|
|
6793
6667
|
RadioList.displayName = "RadioList";
|
|
6794
6668
|
|
|
6795
6669
|
// src/components/Stepper/Stepper.tsx
|
|
6796
|
-
import
|
|
6670
|
+
import React53 from "react";
|
|
6797
6671
|
import {
|
|
6798
6672
|
Stepper as JoyStepper,
|
|
6799
6673
|
Step as JoyStep,
|
|
@@ -6829,7 +6703,7 @@ function Stepper(props) {
|
|
|
6829
6703
|
stepOrientation = "horizontal"
|
|
6830
6704
|
} = props;
|
|
6831
6705
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
6832
|
-
return /* @__PURE__ */
|
|
6706
|
+
return /* @__PURE__ */ React53.createElement(
|
|
6833
6707
|
MotionStepper,
|
|
6834
6708
|
{
|
|
6835
6709
|
orientation,
|
|
@@ -6868,23 +6742,23 @@ function Stepper(props) {
|
|
|
6868
6742
|
const completed = activeStep > i + 1;
|
|
6869
6743
|
const disabled = activeStep < i + 1;
|
|
6870
6744
|
const hasContent = step.label || step.extraContent;
|
|
6871
|
-
return /* @__PURE__ */
|
|
6745
|
+
return /* @__PURE__ */ React53.createElement(
|
|
6872
6746
|
Step,
|
|
6873
6747
|
{
|
|
6874
6748
|
key: `step-${i}`,
|
|
6875
|
-
indicator: /* @__PURE__ */
|
|
6749
|
+
indicator: /* @__PURE__ */ React53.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React53.createElement(CheckIcon, null) : step.indicatorContent),
|
|
6876
6750
|
active,
|
|
6877
6751
|
completed,
|
|
6878
6752
|
disabled,
|
|
6879
6753
|
orientation: effectiveStepOrientation
|
|
6880
6754
|
},
|
|
6881
|
-
hasContent && /* @__PURE__ */
|
|
6755
|
+
hasContent && /* @__PURE__ */ React53.createElement(
|
|
6882
6756
|
Stack_default,
|
|
6883
6757
|
{
|
|
6884
6758
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
6885
6759
|
},
|
|
6886
|
-
step.label && /* @__PURE__ */
|
|
6887
|
-
step.extraContent && /* @__PURE__ */
|
|
6760
|
+
step.label && /* @__PURE__ */ React53.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
6761
|
+
step.extraContent && /* @__PURE__ */ React53.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
6888
6762
|
)
|
|
6889
6763
|
);
|
|
6890
6764
|
})
|
|
@@ -6893,7 +6767,7 @@ function Stepper(props) {
|
|
|
6893
6767
|
Stepper.displayName = "Stepper";
|
|
6894
6768
|
|
|
6895
6769
|
// src/components/Switch/Switch.tsx
|
|
6896
|
-
import
|
|
6770
|
+
import React54 from "react";
|
|
6897
6771
|
import { Switch as JoySwitch, styled as styled29, switchClasses } from "@mui/joy";
|
|
6898
6772
|
import { motion as motion27 } from "framer-motion";
|
|
6899
6773
|
var MotionSwitch = motion27(JoySwitch);
|
|
@@ -6915,14 +6789,14 @@ var StyledThumb = styled29(motion27.div)({
|
|
|
6915
6789
|
right: "var(--Switch-thumbOffset)"
|
|
6916
6790
|
}
|
|
6917
6791
|
});
|
|
6918
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6792
|
+
var Thumb = (props) => /* @__PURE__ */ React54.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6919
6793
|
var spring = {
|
|
6920
6794
|
type: "spring",
|
|
6921
6795
|
stiffness: 700,
|
|
6922
6796
|
damping: 30
|
|
6923
6797
|
};
|
|
6924
6798
|
var Switch = (props) => {
|
|
6925
|
-
return /* @__PURE__ */
|
|
6799
|
+
return /* @__PURE__ */ React54.createElement(
|
|
6926
6800
|
MotionSwitch,
|
|
6927
6801
|
{
|
|
6928
6802
|
...props,
|
|
@@ -6936,7 +6810,7 @@ var Switch = (props) => {
|
|
|
6936
6810
|
Switch.displayName = "Switch";
|
|
6937
6811
|
|
|
6938
6812
|
// src/components/Tabs/Tabs.tsx
|
|
6939
|
-
import
|
|
6813
|
+
import React55, { forwardRef as forwardRef11 } from "react";
|
|
6940
6814
|
import {
|
|
6941
6815
|
Tabs as JoyTabs,
|
|
6942
6816
|
Tab as JoyTab,
|
|
@@ -6960,14 +6834,14 @@ var StyledTab = styled30(JoyTab)(({ theme }) => ({
|
|
|
6960
6834
|
}
|
|
6961
6835
|
}));
|
|
6962
6836
|
var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6963
|
-
return /* @__PURE__ */
|
|
6837
|
+
return /* @__PURE__ */ React55.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6964
6838
|
});
|
|
6965
6839
|
Tab.displayName = "Tab";
|
|
6966
6840
|
var TabList = JoyTabList;
|
|
6967
6841
|
var TabPanel = JoyTabPanel;
|
|
6968
6842
|
|
|
6969
6843
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6970
|
-
import
|
|
6844
|
+
import React56 from "react";
|
|
6971
6845
|
import { CssBaseline, CssVarsProvider, checkboxClasses, extendTheme, inputClasses } from "@mui/joy";
|
|
6972
6846
|
var colorScheme = {
|
|
6973
6847
|
palette: {
|
|
@@ -7246,7 +7120,7 @@ var defaultTheme = extendTheme({
|
|
|
7246
7120
|
});
|
|
7247
7121
|
function ThemeProvider(props) {
|
|
7248
7122
|
const theme = props.theme || defaultTheme;
|
|
7249
|
-
return /* @__PURE__ */
|
|
7123
|
+
return /* @__PURE__ */ React56.createElement(React56.Fragment, null, /* @__PURE__ */ React56.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React56.createElement(CssBaseline, null), props.children));
|
|
7250
7124
|
}
|
|
7251
7125
|
ThemeProvider.displayName = "ThemeProvider";
|
|
7252
7126
|
export {
|