@ceed/ads 1.15.0 → 1.16.0-next.4
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/components/FilterableCheckboxGroup.d.ts +11 -0
- package/dist/components/FilterMenu/types.d.ts +9 -1
- package/dist/components/FilterableCheckboxGroup/FilterableCheckboxGroup.d.ts +21 -0
- package/dist/components/FilterableCheckboxGroup/index.d.ts +3 -0
- package/dist/components/ProfileMenu/ProfileMenu.d.ts +1 -1
- 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/index.cjs +594 -381
- package/dist/index.d.ts +1 -1
- package/dist/index.js +404 -191
- package/dist/llms.txt +1 -0
- package/framer/index.js +42 -42
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -4409,17 +4409,200 @@ var InsetDrawer = styled19(JoyDrawer)(({ theme }) => ({
|
|
|
4409
4409
|
}
|
|
4410
4410
|
}));
|
|
4411
4411
|
|
|
4412
|
+
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
4413
|
+
import React30, { useCallback as useCallback13, useEffect as useEffect8, useMemo as useMemo12, useRef as useRef8, useState as useState10 } from "react";
|
|
4414
|
+
import { Input as Input2, Stack as Stack2 } from "@mui/joy";
|
|
4415
|
+
import SearchIcon from "@mui/icons-material/Search";
|
|
4416
|
+
import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
|
|
4417
|
+
function FilterableCheckboxGroup(props) {
|
|
4418
|
+
const { value, options, label, placeholder, helperText, size = "md", required, onChange, maxHeight = 300 } = props;
|
|
4419
|
+
const [searchTerm, setSearchTerm] = useState10("");
|
|
4420
|
+
const [sortedOptions, setSortedOptions] = useState10(options);
|
|
4421
|
+
const [internalValue, setInternalValue] = useControlledState(
|
|
4422
|
+
value,
|
|
4423
|
+
value ?? [],
|
|
4424
|
+
useCallback13((newValue) => onChange?.(newValue), [onChange])
|
|
4425
|
+
);
|
|
4426
|
+
const parentRef = useRef8(null);
|
|
4427
|
+
const isInitialSortRef = useRef8(false);
|
|
4428
|
+
const filteredOptions = useMemo12(() => {
|
|
4429
|
+
if (!searchTerm) return sortedOptions;
|
|
4430
|
+
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
4431
|
+
}, [sortedOptions, searchTerm]);
|
|
4432
|
+
const itemSize = useMemo12(() => {
|
|
4433
|
+
switch (size) {
|
|
4434
|
+
case "sm":
|
|
4435
|
+
return 28;
|
|
4436
|
+
case "md":
|
|
4437
|
+
return 32;
|
|
4438
|
+
case "lg":
|
|
4439
|
+
return 36;
|
|
4440
|
+
}
|
|
4441
|
+
}, [size]);
|
|
4442
|
+
const noOptionsFontSize = useMemo12(() => {
|
|
4443
|
+
switch (size) {
|
|
4444
|
+
case "sm":
|
|
4445
|
+
return "14px";
|
|
4446
|
+
case "md":
|
|
4447
|
+
return "16px";
|
|
4448
|
+
case "lg":
|
|
4449
|
+
return "18px";
|
|
4450
|
+
}
|
|
4451
|
+
}, [size]);
|
|
4452
|
+
const virtualizer = useVirtualizer3({
|
|
4453
|
+
count: filteredOptions.length,
|
|
4454
|
+
estimateSize: () => itemSize,
|
|
4455
|
+
measureElement: (element) => element.clientHeight,
|
|
4456
|
+
getScrollElement: () => parentRef.current,
|
|
4457
|
+
overscan: 5
|
|
4458
|
+
});
|
|
4459
|
+
const items = virtualizer.getVirtualItems();
|
|
4460
|
+
useEffect8(() => {
|
|
4461
|
+
if (isInitialSortRef.current) return;
|
|
4462
|
+
const initialValue = value ?? [];
|
|
4463
|
+
const sorted = [...options].sort((a, b) => {
|
|
4464
|
+
const aSelected = initialValue.includes(a.value);
|
|
4465
|
+
const bSelected = initialValue.includes(b.value);
|
|
4466
|
+
if (aSelected !== bSelected) {
|
|
4467
|
+
return aSelected ? -1 : 1;
|
|
4468
|
+
}
|
|
4469
|
+
const aIsAlpha = /^[a-zA-Z]/.test(a.label);
|
|
4470
|
+
const bIsAlpha = /^[a-zA-Z]/.test(b.label);
|
|
4471
|
+
if (aIsAlpha !== bIsAlpha) {
|
|
4472
|
+
return aIsAlpha ? -1 : 1;
|
|
4473
|
+
}
|
|
4474
|
+
return a.label.localeCompare(b.label);
|
|
4475
|
+
});
|
|
4476
|
+
setSortedOptions(sorted);
|
|
4477
|
+
isInitialSortRef.current = true;
|
|
4478
|
+
}, [options, value]);
|
|
4479
|
+
useEffect8(() => {
|
|
4480
|
+
virtualizer.measure();
|
|
4481
|
+
}, [virtualizer, filteredOptions]);
|
|
4482
|
+
const handleSearchChange = useCallback13((event) => {
|
|
4483
|
+
setSearchTerm(event.target.value);
|
|
4484
|
+
}, []);
|
|
4485
|
+
const handleCheckboxChange = useCallback13(
|
|
4486
|
+
(optionValue) => (event) => {
|
|
4487
|
+
const checked = event.target.checked;
|
|
4488
|
+
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
4489
|
+
setInternalValue(newValue);
|
|
4490
|
+
},
|
|
4491
|
+
[internalValue, setInternalValue]
|
|
4492
|
+
);
|
|
4493
|
+
const handleSelectAll = useCallback13(
|
|
4494
|
+
(event) => {
|
|
4495
|
+
const checked = event.target.checked;
|
|
4496
|
+
if (checked) {
|
|
4497
|
+
setInternalValue(filteredOptions.map((option) => option.value));
|
|
4498
|
+
} else {
|
|
4499
|
+
setInternalValue([]);
|
|
4500
|
+
}
|
|
4501
|
+
},
|
|
4502
|
+
[filteredOptions, setInternalValue]
|
|
4503
|
+
);
|
|
4504
|
+
const isAllSelected = filteredOptions.length > 0 && filteredOptions.every((option) => internalValue.includes(option.value));
|
|
4505
|
+
const isIndeterminate = !isAllSelected && filteredOptions.some((option) => internalValue.includes(option.value));
|
|
4506
|
+
return /* @__PURE__ */ React30.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ React30.createElement(FormControl_default, { required, size }, label && /* @__PURE__ */ React30.createElement(FormLabel_default, null, label), /* @__PURE__ */ React30.createElement(
|
|
4507
|
+
Input2,
|
|
4508
|
+
{
|
|
4509
|
+
variant: "outlined",
|
|
4510
|
+
color: "neutral",
|
|
4511
|
+
placeholder,
|
|
4512
|
+
value: searchTerm,
|
|
4513
|
+
onChange: handleSearchChange,
|
|
4514
|
+
size,
|
|
4515
|
+
endDecorator: /* @__PURE__ */ React30.createElement(SearchIcon, null)
|
|
4516
|
+
}
|
|
4517
|
+
), helperText && /* @__PURE__ */ React30.createElement(FormHelperText_default, null, helperText)), filteredOptions.length === 0 ? /* @__PURE__ */ React30.createElement(
|
|
4518
|
+
Stack2,
|
|
4519
|
+
{
|
|
4520
|
+
sx: {
|
|
4521
|
+
padding: "20px 12px",
|
|
4522
|
+
justifyContent: "center",
|
|
4523
|
+
alignItems: "center",
|
|
4524
|
+
fontSize: noOptionsFontSize,
|
|
4525
|
+
color: "#A2AAB8"
|
|
4526
|
+
}
|
|
4527
|
+
},
|
|
4528
|
+
"No options found."
|
|
4529
|
+
) : /* @__PURE__ */ React30.createElement(
|
|
4530
|
+
"div",
|
|
4531
|
+
{
|
|
4532
|
+
ref: parentRef,
|
|
4533
|
+
style: {
|
|
4534
|
+
overflow: "auto",
|
|
4535
|
+
maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight,
|
|
4536
|
+
padding: "8px 0px",
|
|
4537
|
+
marginTop: "8px"
|
|
4538
|
+
}
|
|
4539
|
+
},
|
|
4540
|
+
!searchTerm && /* @__PURE__ */ React30.createElement(
|
|
4541
|
+
Checkbox_default,
|
|
4542
|
+
{
|
|
4543
|
+
label: "Select all",
|
|
4544
|
+
checked: isAllSelected,
|
|
4545
|
+
indeterminate: isIndeterminate,
|
|
4546
|
+
onChange: handleSelectAll,
|
|
4547
|
+
size,
|
|
4548
|
+
slotProps: {
|
|
4549
|
+
action: {
|
|
4550
|
+
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4551
|
+
}
|
|
4552
|
+
},
|
|
4553
|
+
sx: { width: "100%", height: itemSize }
|
|
4554
|
+
}
|
|
4555
|
+
),
|
|
4556
|
+
/* @__PURE__ */ React30.createElement(
|
|
4557
|
+
Stack2,
|
|
4558
|
+
{
|
|
4559
|
+
sx: {
|
|
4560
|
+
height: `${virtualizer.getTotalSize()}px`,
|
|
4561
|
+
position: "relative"
|
|
4562
|
+
}
|
|
4563
|
+
},
|
|
4564
|
+
items.map((virtualRow) => {
|
|
4565
|
+
const option = filteredOptions[virtualRow.index];
|
|
4566
|
+
return /* @__PURE__ */ React30.createElement(
|
|
4567
|
+
Checkbox_default,
|
|
4568
|
+
{
|
|
4569
|
+
key: virtualRow.key,
|
|
4570
|
+
label: option.label,
|
|
4571
|
+
checked: internalValue.includes(option.value),
|
|
4572
|
+
onChange: handleCheckboxChange(option.value),
|
|
4573
|
+
size,
|
|
4574
|
+
slotProps: {
|
|
4575
|
+
action: {
|
|
4576
|
+
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4577
|
+
}
|
|
4578
|
+
},
|
|
4579
|
+
sx: {
|
|
4580
|
+
position: "absolute",
|
|
4581
|
+
top: 0,
|
|
4582
|
+
left: 0,
|
|
4583
|
+
width: "100%",
|
|
4584
|
+
height: `${virtualRow.size}px`,
|
|
4585
|
+
transform: `translateY(${virtualRow.start}px)`
|
|
4586
|
+
}
|
|
4587
|
+
}
|
|
4588
|
+
);
|
|
4589
|
+
})
|
|
4590
|
+
)
|
|
4591
|
+
));
|
|
4592
|
+
}
|
|
4593
|
+
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
4594
|
+
|
|
4412
4595
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
4413
|
-
import
|
|
4414
|
-
import { Button as Button2, Stack as
|
|
4596
|
+
import React41, { useCallback as useCallback23 } from "react";
|
|
4597
|
+
import { Button as Button2, Stack as Stack12 } from "@mui/joy";
|
|
4415
4598
|
|
|
4416
4599
|
// src/components/FilterMenu/components/CheckboxGroup.tsx
|
|
4417
|
-
import
|
|
4418
|
-
import { Stack as
|
|
4600
|
+
import React31, { useCallback as useCallback14 } from "react";
|
|
4601
|
+
import { Stack as Stack3 } from "@mui/joy";
|
|
4419
4602
|
function CheckboxGroup(props) {
|
|
4420
4603
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4421
4604
|
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
4422
|
-
const handleCheckboxChange =
|
|
4605
|
+
const handleCheckboxChange = useCallback14(
|
|
4423
4606
|
(optionValue) => (event) => {
|
|
4424
4607
|
const checked = event.target.checked;
|
|
4425
4608
|
let newValue;
|
|
@@ -4435,7 +4618,7 @@ function CheckboxGroup(props) {
|
|
|
4435
4618
|
if (hidden) {
|
|
4436
4619
|
return null;
|
|
4437
4620
|
}
|
|
4438
|
-
return /* @__PURE__ */
|
|
4621
|
+
return /* @__PURE__ */ React31.createElement(Stack3, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React31.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), options.map((option) => /* @__PURE__ */ React31.createElement(
|
|
4439
4622
|
Checkbox_default,
|
|
4440
4623
|
{
|
|
4441
4624
|
key: `${id}-${option.value}`,
|
|
@@ -4447,8 +4630,36 @@ function CheckboxGroup(props) {
|
|
|
4447
4630
|
}
|
|
4448
4631
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
4449
4632
|
|
|
4633
|
+
// src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
|
|
4634
|
+
import React32, { useCallback as useCallback15 } from "react";
|
|
4635
|
+
import { Stack as Stack4 } from "@mui/joy";
|
|
4636
|
+
function FilterableCheckboxGroup2(props) {
|
|
4637
|
+
const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
|
|
4638
|
+
const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
|
|
4639
|
+
const handleChange = useCallback15(
|
|
4640
|
+
(newValue) => {
|
|
4641
|
+
setInternalValue(newValue);
|
|
4642
|
+
},
|
|
4643
|
+
[setInternalValue]
|
|
4644
|
+
);
|
|
4645
|
+
if (hidden) {
|
|
4646
|
+
return null;
|
|
4647
|
+
}
|
|
4648
|
+
return /* @__PURE__ */ React32.createElement(Stack4, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React32.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React32.createElement(
|
|
4649
|
+
FilterableCheckboxGroup,
|
|
4650
|
+
{
|
|
4651
|
+
value: internalValue,
|
|
4652
|
+
onChange: handleChange,
|
|
4653
|
+
options,
|
|
4654
|
+
placeholder,
|
|
4655
|
+
maxHeight
|
|
4656
|
+
}
|
|
4657
|
+
));
|
|
4658
|
+
}
|
|
4659
|
+
FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
|
|
4660
|
+
|
|
4450
4661
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4451
|
-
import
|
|
4662
|
+
import React33, { useCallback as useCallback16 } from "react";
|
|
4452
4663
|
|
|
4453
4664
|
// src/components/Radio/Radio.tsx
|
|
4454
4665
|
import { Radio as JoyRadio, RadioGroup as JoyRadioGroup } from "@mui/joy";
|
|
@@ -4461,11 +4672,11 @@ var RadioGroup = MotionRadioGroup;
|
|
|
4461
4672
|
RadioGroup.displayName = "RadioGroup";
|
|
4462
4673
|
|
|
4463
4674
|
// src/components/FilterMenu/components/RadioGroup.tsx
|
|
4464
|
-
import { Stack as
|
|
4675
|
+
import { Stack as Stack5 } from "@mui/joy";
|
|
4465
4676
|
function RadioGroup2(props) {
|
|
4466
4677
|
const { id, label, options, value, onChange, hidden } = props;
|
|
4467
4678
|
const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
|
|
4468
|
-
const handleRadioChange =
|
|
4679
|
+
const handleRadioChange = useCallback16(
|
|
4469
4680
|
(event) => {
|
|
4470
4681
|
const newValue = event.target.value;
|
|
4471
4682
|
const option = options.find((opt) => opt.value.toString() === newValue);
|
|
@@ -4477,13 +4688,13 @@ function RadioGroup2(props) {
|
|
|
4477
4688
|
if (hidden) {
|
|
4478
4689
|
return null;
|
|
4479
4690
|
}
|
|
4480
|
-
return /* @__PURE__ */
|
|
4691
|
+
return /* @__PURE__ */ React33.createElement(Stack5, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React33.createElement(Stack5, { spacing: 1 }, /* @__PURE__ */ React33.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label)), /* @__PURE__ */ React33.createElement(RadioGroup, { name: id, value: internalValue?.toString(), onChange: handleRadioChange }, options.map((option) => /* @__PURE__ */ React33.createElement(Radio, { key: `${id}-${option.value}`, value: option.value.toString(), label: option.label }))));
|
|
4481
4692
|
}
|
|
4482
4693
|
RadioGroup2.displayName = "RadioGroup";
|
|
4483
4694
|
|
|
4484
4695
|
// src/components/FilterMenu/components/DateRange.tsx
|
|
4485
|
-
import
|
|
4486
|
-
import { Stack as
|
|
4696
|
+
import React34, { useCallback as useCallback17, useMemo as useMemo13, useState as useState11, useEffect as useEffect9 } from "react";
|
|
4697
|
+
import { Stack as Stack6 } from "@mui/joy";
|
|
4487
4698
|
function DateRange(props) {
|
|
4488
4699
|
const {
|
|
4489
4700
|
id,
|
|
@@ -4501,8 +4712,8 @@ function DateRange(props) {
|
|
|
4501
4712
|
hideClearButton
|
|
4502
4713
|
} = props;
|
|
4503
4714
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4504
|
-
const [selectedOption, setSelectedOption] =
|
|
4505
|
-
const dateRangeOptions =
|
|
4715
|
+
const [selectedOption, setSelectedOption] = useState11("all-time");
|
|
4716
|
+
const dateRangeOptions = useMemo13(
|
|
4506
4717
|
() => [
|
|
4507
4718
|
{ label: "All Time", value: "all-time" },
|
|
4508
4719
|
{ label: "This Month", value: "this-month" },
|
|
@@ -4512,7 +4723,7 @@ function DateRange(props) {
|
|
|
4512
4723
|
],
|
|
4513
4724
|
[]
|
|
4514
4725
|
);
|
|
4515
|
-
const getDateRangeForOption =
|
|
4726
|
+
const getDateRangeForOption = useCallback17(
|
|
4516
4727
|
(option) => {
|
|
4517
4728
|
const now = /* @__PURE__ */ new Date();
|
|
4518
4729
|
const currentYear = now.getFullYear();
|
|
@@ -4551,7 +4762,7 @@ function DateRange(props) {
|
|
|
4551
4762
|
},
|
|
4552
4763
|
[internalValue]
|
|
4553
4764
|
);
|
|
4554
|
-
const determineOptionFromValue =
|
|
4765
|
+
const determineOptionFromValue = useCallback17(
|
|
4555
4766
|
(value2) => {
|
|
4556
4767
|
if (!value2) {
|
|
4557
4768
|
return "all-time";
|
|
@@ -4567,17 +4778,17 @@ function DateRange(props) {
|
|
|
4567
4778
|
},
|
|
4568
4779
|
[getDateRangeForOption]
|
|
4569
4780
|
);
|
|
4570
|
-
const customDateRangeValue =
|
|
4781
|
+
const customDateRangeValue = useMemo13(() => {
|
|
4571
4782
|
if (selectedOption === "custom" && internalValue) {
|
|
4572
4783
|
return `${internalValue[0]} - ${internalValue[1]}`;
|
|
4573
4784
|
}
|
|
4574
4785
|
return "";
|
|
4575
4786
|
}, [selectedOption, internalValue]);
|
|
4576
|
-
|
|
4787
|
+
useEffect9(() => {
|
|
4577
4788
|
const newOption = determineOptionFromValue(internalValue);
|
|
4578
4789
|
setSelectedOption(newOption);
|
|
4579
4790
|
}, [internalValue, determineOptionFromValue]);
|
|
4580
|
-
const handleOptionChange =
|
|
4791
|
+
const handleOptionChange = useCallback17(
|
|
4581
4792
|
(event) => {
|
|
4582
4793
|
const newOption = event.target.value;
|
|
4583
4794
|
setSelectedOption(newOption);
|
|
@@ -4586,7 +4797,7 @@ function DateRange(props) {
|
|
|
4586
4797
|
},
|
|
4587
4798
|
[getDateRangeForOption, setInternalValue]
|
|
4588
4799
|
);
|
|
4589
|
-
const handleCustomDateChange =
|
|
4800
|
+
const handleCustomDateChange = useCallback17(
|
|
4590
4801
|
(event) => {
|
|
4591
4802
|
const dateRangeString = event.target.value;
|
|
4592
4803
|
if (dateRangeString && dateRangeString.includes(" - ")) {
|
|
@@ -4604,7 +4815,7 @@ function DateRange(props) {
|
|
|
4604
4815
|
if (hidden) {
|
|
4605
4816
|
return null;
|
|
4606
4817
|
}
|
|
4607
|
-
return /* @__PURE__ */
|
|
4818
|
+
return /* @__PURE__ */ React34.createElement(Stack6, { 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(RadioGroup, { name: `${id}-options`, value: selectedOption, onChange: handleOptionChange }, dateRangeOptions.map((option) => /* @__PURE__ */ React34.createElement(Radio, { key: `${id}-${option.value}`, value: option.value, label: option.label }))), selectedOption === "custom" && /* @__PURE__ */ React34.createElement(
|
|
4608
4819
|
DateRangePicker,
|
|
4609
4820
|
{
|
|
4610
4821
|
value: customDateRangeValue,
|
|
@@ -4623,12 +4834,12 @@ function DateRange(props) {
|
|
|
4623
4834
|
DateRange.displayName = "DateRange";
|
|
4624
4835
|
|
|
4625
4836
|
// src/components/FilterMenu/components/CurrencyInput.tsx
|
|
4626
|
-
import
|
|
4627
|
-
import { Stack as
|
|
4837
|
+
import React35, { useCallback as useCallback18 } from "react";
|
|
4838
|
+
import { Stack as Stack7 } from "@mui/joy";
|
|
4628
4839
|
function CurrencyInput3(props) {
|
|
4629
4840
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4630
4841
|
const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
|
|
4631
|
-
const handleCurrencyChange =
|
|
4842
|
+
const handleCurrencyChange = useCallback18(
|
|
4632
4843
|
(event) => {
|
|
4633
4844
|
const newValue = event.target.value;
|
|
4634
4845
|
setInternalValue(newValue);
|
|
@@ -4638,7 +4849,7 @@ function CurrencyInput3(props) {
|
|
|
4638
4849
|
if (hidden) {
|
|
4639
4850
|
return null;
|
|
4640
4851
|
}
|
|
4641
|
-
return /* @__PURE__ */
|
|
4852
|
+
return /* @__PURE__ */ React35.createElement(Stack7, { 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(
|
|
4642
4853
|
CurrencyInput,
|
|
4643
4854
|
{
|
|
4644
4855
|
value: internalValue,
|
|
@@ -4654,14 +4865,14 @@ function CurrencyInput3(props) {
|
|
|
4654
4865
|
CurrencyInput3.displayName = "CurrencyInput";
|
|
4655
4866
|
|
|
4656
4867
|
// src/components/FilterMenu/components/CurrencyRange.tsx
|
|
4657
|
-
import
|
|
4658
|
-
import { Stack as
|
|
4868
|
+
import React36, { useCallback as useCallback19 } from "react";
|
|
4869
|
+
import { Stack as Stack8 } from "@mui/joy";
|
|
4659
4870
|
function CurrencyRange(props) {
|
|
4660
4871
|
const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
|
|
4661
4872
|
const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
|
|
4662
4873
|
const minValue = internalValue?.[0];
|
|
4663
4874
|
const maxValue = internalValue?.[1];
|
|
4664
|
-
const handleMinChange =
|
|
4875
|
+
const handleMinChange = useCallback19(
|
|
4665
4876
|
(event) => {
|
|
4666
4877
|
const newMinValue = event.target.value;
|
|
4667
4878
|
const currentMaxValue = maxValue;
|
|
@@ -4675,7 +4886,7 @@ function CurrencyRange(props) {
|
|
|
4675
4886
|
},
|
|
4676
4887
|
[maxValue, setInternalValue]
|
|
4677
4888
|
);
|
|
4678
|
-
const handleMaxChange =
|
|
4889
|
+
const handleMaxChange = useCallback19(
|
|
4679
4890
|
(event) => {
|
|
4680
4891
|
const newMaxValue = event.target.value;
|
|
4681
4892
|
const currentMinValue = minValue;
|
|
@@ -4692,7 +4903,7 @@ function CurrencyRange(props) {
|
|
|
4692
4903
|
if (hidden) {
|
|
4693
4904
|
return null;
|
|
4694
4905
|
}
|
|
4695
|
-
return /* @__PURE__ */
|
|
4906
|
+
return /* @__PURE__ */ React36.createElement(Stack8, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React36.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React36.createElement(Stack8, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ React36.createElement(
|
|
4696
4907
|
CurrencyInput,
|
|
4697
4908
|
{
|
|
4698
4909
|
label: "Minimum",
|
|
@@ -4705,7 +4916,7 @@ function CurrencyRange(props) {
|
|
|
4705
4916
|
"aria-labelledby": label ? id : void 0,
|
|
4706
4917
|
"aria-label": "Minimum amount"
|
|
4707
4918
|
}
|
|
4708
|
-
), /* @__PURE__ */
|
|
4919
|
+
), /* @__PURE__ */ React36.createElement(
|
|
4709
4920
|
CurrencyInput,
|
|
4710
4921
|
{
|
|
4711
4922
|
label: "Maximum",
|
|
@@ -4723,20 +4934,20 @@ function CurrencyRange(props) {
|
|
|
4723
4934
|
CurrencyRange.displayName = "CurrencyRange";
|
|
4724
4935
|
|
|
4725
4936
|
// src/components/FilterMenu/components/PercentageInput.tsx
|
|
4726
|
-
import
|
|
4727
|
-
import { Stack as
|
|
4937
|
+
import React38 from "react";
|
|
4938
|
+
import { Stack as Stack9, Typography as Typography2 } from "@mui/joy";
|
|
4728
4939
|
|
|
4729
4940
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
4730
|
-
import
|
|
4941
|
+
import React37, { useCallback as useCallback20, useMemo as useMemo14, useState as useState12 } from "react";
|
|
4731
4942
|
import { NumericFormat as NumericFormat2 } from "react-number-format";
|
|
4732
4943
|
import { styled as styled20, useThemeProps as useThemeProps6 } from "@mui/joy";
|
|
4733
4944
|
var padDecimal = (value, decimalScale) => {
|
|
4734
4945
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
4735
4946
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
4736
4947
|
};
|
|
4737
|
-
var TextMaskAdapter7 =
|
|
4948
|
+
var TextMaskAdapter7 = React37.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
4738
4949
|
const { onChange, min, max, ...innerProps } = props;
|
|
4739
|
-
return /* @__PURE__ */
|
|
4950
|
+
return /* @__PURE__ */ React37.createElement(
|
|
4740
4951
|
NumericFormat2,
|
|
4741
4952
|
{
|
|
4742
4953
|
...innerProps,
|
|
@@ -4761,7 +4972,7 @@ var PercentageInputRoot = styled20(Input_default, {
|
|
|
4761
4972
|
slot: "Root",
|
|
4762
4973
|
overridesResolver: (props, styles) => styles.root
|
|
4763
4974
|
})({});
|
|
4764
|
-
var PercentageInput =
|
|
4975
|
+
var PercentageInput = React37.forwardRef(
|
|
4765
4976
|
function PercentageInput2(inProps, ref) {
|
|
4766
4977
|
const props = useThemeProps6({ props: inProps, name: "PercentageInput" });
|
|
4767
4978
|
const {
|
|
@@ -4784,18 +4995,18 @@ var PercentageInput = React35.forwardRef(
|
|
|
4784
4995
|
const [_value, setValue] = useControlledState(
|
|
4785
4996
|
props.value,
|
|
4786
4997
|
props.defaultValue,
|
|
4787
|
-
|
|
4998
|
+
useCallback20((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
4788
4999
|
);
|
|
4789
|
-
const [internalError, setInternalError] =
|
|
5000
|
+
const [internalError, setInternalError] = useState12(
|
|
4790
5001
|
max && _value && _value > max || min && _value && _value < min
|
|
4791
5002
|
);
|
|
4792
|
-
const value =
|
|
5003
|
+
const value = useMemo14(() => {
|
|
4793
5004
|
if (_value && useMinorUnit) {
|
|
4794
5005
|
return _value / Math.pow(10, maxDecimalScale);
|
|
4795
5006
|
}
|
|
4796
5007
|
return _value;
|
|
4797
5008
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
4798
|
-
const handleChange =
|
|
5009
|
+
const handleChange = useCallback20(
|
|
4799
5010
|
(event) => {
|
|
4800
5011
|
if (event.target.value === "") {
|
|
4801
5012
|
setValue(void 0);
|
|
@@ -4812,7 +5023,7 @@ var PercentageInput = React35.forwardRef(
|
|
|
4812
5023
|
},
|
|
4813
5024
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
4814
5025
|
);
|
|
4815
|
-
return /* @__PURE__ */
|
|
5026
|
+
return /* @__PURE__ */ React37.createElement(
|
|
4816
5027
|
PercentageInputRoot,
|
|
4817
5028
|
{
|
|
4818
5029
|
...innerProps,
|
|
@@ -4859,7 +5070,7 @@ var PercentageInput3 = ({
|
|
|
4859
5070
|
if (hidden) {
|
|
4860
5071
|
return null;
|
|
4861
5072
|
}
|
|
4862
|
-
return /* @__PURE__ */
|
|
5073
|
+
return /* @__PURE__ */ React38.createElement(Stack9, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React38.createElement(Typography2, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React38.createElement(
|
|
4863
5074
|
PercentageInput,
|
|
4864
5075
|
{
|
|
4865
5076
|
value: _value,
|
|
@@ -4874,8 +5085,8 @@ var PercentageInput3 = ({
|
|
|
4874
5085
|
};
|
|
4875
5086
|
|
|
4876
5087
|
// src/components/FilterMenu/components/PercentageRange.tsx
|
|
4877
|
-
import
|
|
4878
|
-
import { Stack as
|
|
5088
|
+
import React39, { useCallback as useCallback21 } from "react";
|
|
5089
|
+
import { Stack as Stack10 } from "@mui/joy";
|
|
4879
5090
|
function PercentageRange(props) {
|
|
4880
5091
|
const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
|
|
4881
5092
|
const [internalValue, setInternalValue] = useControlledState(
|
|
@@ -4885,7 +5096,7 @@ function PercentageRange(props) {
|
|
|
4885
5096
|
);
|
|
4886
5097
|
const minValue = internalValue?.[0];
|
|
4887
5098
|
const maxValue = internalValue?.[1];
|
|
4888
|
-
const handleMinChange =
|
|
5099
|
+
const handleMinChange = useCallback21(
|
|
4889
5100
|
(event) => {
|
|
4890
5101
|
const newMinValue = event.target.value;
|
|
4891
5102
|
const currentMaxValue = maxValue;
|
|
@@ -4897,7 +5108,7 @@ function PercentageRange(props) {
|
|
|
4897
5108
|
},
|
|
4898
5109
|
[maxValue, setInternalValue]
|
|
4899
5110
|
);
|
|
4900
|
-
const handleMaxChange =
|
|
5111
|
+
const handleMaxChange = useCallback21(
|
|
4901
5112
|
(event) => {
|
|
4902
5113
|
const newMaxValue = event.target.value;
|
|
4903
5114
|
const currentMinValue = minValue;
|
|
@@ -4912,7 +5123,7 @@ function PercentageRange(props) {
|
|
|
4912
5123
|
if (hidden) {
|
|
4913
5124
|
return null;
|
|
4914
5125
|
}
|
|
4915
|
-
return /* @__PURE__ */
|
|
5126
|
+
return /* @__PURE__ */ React39.createElement(Stack10, { 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(Stack10, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ React39.createElement(
|
|
4916
5127
|
PercentageInput,
|
|
4917
5128
|
{
|
|
4918
5129
|
label: "Minimum",
|
|
@@ -4926,7 +5137,7 @@ function PercentageRange(props) {
|
|
|
4926
5137
|
"aria-label": "Minimum percentage",
|
|
4927
5138
|
placeholder: "0%"
|
|
4928
5139
|
}
|
|
4929
|
-
), /* @__PURE__ */
|
|
5140
|
+
), /* @__PURE__ */ React39.createElement(
|
|
4930
5141
|
PercentageInput,
|
|
4931
5142
|
{
|
|
4932
5143
|
label: "Maximum",
|
|
@@ -4945,13 +5156,13 @@ function PercentageRange(props) {
|
|
|
4945
5156
|
PercentageRange.displayName = "PercentageRange";
|
|
4946
5157
|
|
|
4947
5158
|
// src/components/FilterMenu/components/Autocomplete.tsx
|
|
4948
|
-
import
|
|
4949
|
-
import { Stack as
|
|
5159
|
+
import React40, { useCallback as useCallback22 } from "react";
|
|
5160
|
+
import { Stack as Stack11 } from "@mui/joy";
|
|
4950
5161
|
function Autocomplete2(props) {
|
|
4951
5162
|
const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
|
|
4952
5163
|
const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
|
|
4953
5164
|
const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
|
|
4954
|
-
const handleChange =
|
|
5165
|
+
const handleChange = useCallback22(
|
|
4955
5166
|
(event) => {
|
|
4956
5167
|
const val = event.target.value;
|
|
4957
5168
|
if (val) {
|
|
@@ -4966,7 +5177,7 @@ function Autocomplete2(props) {
|
|
|
4966
5177
|
if (hidden) {
|
|
4967
5178
|
return null;
|
|
4968
5179
|
}
|
|
4969
|
-
return /* @__PURE__ */
|
|
5180
|
+
return /* @__PURE__ */ React40.createElement(Stack11, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React40.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ React40.createElement(
|
|
4970
5181
|
Autocomplete,
|
|
4971
5182
|
{
|
|
4972
5183
|
value: autocompleteValue,
|
|
@@ -4983,6 +5194,7 @@ Autocomplete2.displayName = "Autocomplete";
|
|
|
4983
5194
|
// src/components/FilterMenu/FilterMenu.tsx
|
|
4984
5195
|
var componentMap = {
|
|
4985
5196
|
"checkbox-group": CheckboxGroup,
|
|
5197
|
+
"filterable-checkbox-group": FilterableCheckboxGroup2,
|
|
4986
5198
|
"radio-group": RadioGroup2,
|
|
4987
5199
|
"date-range": DateRange,
|
|
4988
5200
|
"currency-input": CurrencyInput3,
|
|
@@ -4999,7 +5211,7 @@ function FilterMenu(props) {
|
|
|
4999
5211
|
void 0
|
|
5000
5212
|
// onChange는 Apply 버튼에서만 호출
|
|
5001
5213
|
);
|
|
5002
|
-
const handleFilterChange =
|
|
5214
|
+
const handleFilterChange = useCallback23(
|
|
5003
5215
|
(filterId, value) => {
|
|
5004
5216
|
setInternalValues((prev) => ({
|
|
5005
5217
|
...prev,
|
|
@@ -5008,17 +5220,17 @@ function FilterMenu(props) {
|
|
|
5008
5220
|
},
|
|
5009
5221
|
[setInternalValues]
|
|
5010
5222
|
);
|
|
5011
|
-
const handleApply =
|
|
5223
|
+
const handleApply = useCallback23(() => {
|
|
5012
5224
|
onChange?.(internalValues);
|
|
5013
5225
|
onClose?.();
|
|
5014
5226
|
}, [onChange, onClose, internalValues]);
|
|
5015
|
-
const handleClear =
|
|
5227
|
+
const handleClear = useCallback23(() => {
|
|
5016
5228
|
const clearedValues = resetValues || {};
|
|
5017
5229
|
setInternalValues(clearedValues);
|
|
5018
5230
|
onChange?.(clearedValues);
|
|
5019
5231
|
onClose?.();
|
|
5020
5232
|
}, [resetValues, setInternalValues, onChange, onClose]);
|
|
5021
|
-
return /* @__PURE__ */
|
|
5233
|
+
return /* @__PURE__ */ React41.createElement(
|
|
5022
5234
|
ModalDialog,
|
|
5023
5235
|
{
|
|
5024
5236
|
sx: {
|
|
@@ -5028,9 +5240,9 @@ function FilterMenu(props) {
|
|
|
5028
5240
|
top: "initial"
|
|
5029
5241
|
}
|
|
5030
5242
|
},
|
|
5031
|
-
/* @__PURE__ */
|
|
5243
|
+
/* @__PURE__ */ React41.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ React41.createElement(Stack12, { spacing: 6 }, filters?.map((filter) => {
|
|
5032
5244
|
const FilterComponent = componentMap[filter.type];
|
|
5033
|
-
return FilterComponent ? /* @__PURE__ */
|
|
5245
|
+
return FilterComponent ? /* @__PURE__ */ React41.createElement(
|
|
5034
5246
|
FilterComponent,
|
|
5035
5247
|
{
|
|
5036
5248
|
key: filter.id,
|
|
@@ -5042,14 +5254,14 @@ function FilterMenu(props) {
|
|
|
5042
5254
|
}
|
|
5043
5255
|
) : null;
|
|
5044
5256
|
}))),
|
|
5045
|
-
/* @__PURE__ */
|
|
5257
|
+
/* @__PURE__ */ React41.createElement(DialogActions, { sx: { justifyContent: "space-between" } }, useClear && filters?.length === 1 && /* @__PURE__ */ React41.createElement(Button2, { variant: "plain", color: "neutral", size: "md", onClick: handleClear }, "Clear"), useReset && !useClear && /* @__PURE__ */ React41.createElement(Button2, { variant: "plain", color: "neutral", size: "md", onClick: handleClear }, "Reset"), /* @__PURE__ */ React41.createElement(Button2, { variant: "solid", color: "primary", size: "md", onClick: handleApply }, "Apply"))
|
|
5046
5258
|
);
|
|
5047
5259
|
}
|
|
5048
5260
|
FilterMenu.displayName = "FilterMenu";
|
|
5049
5261
|
|
|
5050
5262
|
// src/components/Uploader/Uploader.tsx
|
|
5051
|
-
import
|
|
5052
|
-
import { styled as styled21, Input as
|
|
5263
|
+
import React42, { useCallback as useCallback24, useEffect as useEffect10, useMemo as useMemo15, useRef as useRef9, useState as useState13 } from "react";
|
|
5264
|
+
import { styled as styled21, Input as Input3 } from "@mui/joy";
|
|
5053
5265
|
import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
|
|
5054
5266
|
import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
|
|
5055
5267
|
import MuiClearIcon from "@mui/icons-material/ClearRounded";
|
|
@@ -5071,7 +5283,7 @@ var esmFiles = {
|
|
|
5071
5283
|
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js"
|
|
5072
5284
|
)
|
|
5073
5285
|
};
|
|
5074
|
-
var VisuallyHiddenInput = styled21(
|
|
5286
|
+
var VisuallyHiddenInput = styled21(Input3)({
|
|
5075
5287
|
width: "1px",
|
|
5076
5288
|
height: "1px",
|
|
5077
5289
|
overflow: "hidden",
|
|
@@ -5125,7 +5337,7 @@ var getFileSize = (n) => {
|
|
|
5125
5337
|
};
|
|
5126
5338
|
var Preview = (props) => {
|
|
5127
5339
|
const { files, uploaded, onDelete } = props;
|
|
5128
|
-
return /* @__PURE__ */
|
|
5340
|
+
return /* @__PURE__ */ React42.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React42.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React42.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React42.createElement(UploadFileIcon, null), /* @__PURE__ */ React42.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ React42.createElement(
|
|
5129
5341
|
Typography_default,
|
|
5130
5342
|
{
|
|
5131
5343
|
level: "body-sm",
|
|
@@ -5137,7 +5349,7 @@ var Preview = (props) => {
|
|
|
5137
5349
|
}
|
|
5138
5350
|
},
|
|
5139
5351
|
file.name
|
|
5140
|
-
), !!file.size && /* @__PURE__ */
|
|
5352
|
+
), !!file.size && /* @__PURE__ */ React42.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ React42.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React42.createElement(ClearIcon2, null))))));
|
|
5141
5353
|
};
|
|
5142
5354
|
var UploaderRoot = styled21(Stack_default, {
|
|
5143
5355
|
name: "Uploader",
|
|
@@ -5180,7 +5392,7 @@ var UploaderIcon = styled21(MuiFileUploadIcon, {
|
|
|
5180
5392
|
}
|
|
5181
5393
|
})
|
|
5182
5394
|
);
|
|
5183
|
-
var Uploader =
|
|
5395
|
+
var Uploader = React42.memo(
|
|
5184
5396
|
(props) => {
|
|
5185
5397
|
const {
|
|
5186
5398
|
accept,
|
|
@@ -5197,14 +5409,14 @@ var Uploader = React40.memo(
|
|
|
5197
5409
|
error: errorProp,
|
|
5198
5410
|
helperText: helperTextProp
|
|
5199
5411
|
} = props;
|
|
5200
|
-
const dropZoneRef =
|
|
5201
|
-
const inputRef =
|
|
5202
|
-
const [errorText, setErrorText] =
|
|
5203
|
-
const [files, setFiles] =
|
|
5204
|
-
const [uploaded, setUploaded] =
|
|
5205
|
-
const [previewState, setPreviewState] =
|
|
5206
|
-
const accepts =
|
|
5207
|
-
const parsedAccepts =
|
|
5412
|
+
const dropZoneRef = useRef9(null);
|
|
5413
|
+
const inputRef = useRef9(null);
|
|
5414
|
+
const [errorText, setErrorText] = useState13();
|
|
5415
|
+
const [files, setFiles] = useState13([]);
|
|
5416
|
+
const [uploaded, setUploaded] = useState13(props.uploaded || []);
|
|
5417
|
+
const [previewState, setPreviewState] = useState13("idle");
|
|
5418
|
+
const accepts = useMemo15(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
5419
|
+
const parsedAccepts = useMemo15(
|
|
5208
5420
|
() => accepts.flatMap((type) => {
|
|
5209
5421
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
5210
5422
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -5213,7 +5425,7 @@ var Uploader = React40.memo(
|
|
|
5213
5425
|
}),
|
|
5214
5426
|
[accepts]
|
|
5215
5427
|
);
|
|
5216
|
-
const helperText =
|
|
5428
|
+
const helperText = useMemo15(() => {
|
|
5217
5429
|
if (helperTextProp) {
|
|
5218
5430
|
return helperTextProp;
|
|
5219
5431
|
}
|
|
@@ -5243,12 +5455,12 @@ var Uploader = React40.memo(
|
|
|
5243
5455
|
}
|
|
5244
5456
|
return helperTexts.join(", ");
|
|
5245
5457
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
5246
|
-
const error =
|
|
5247
|
-
const showDropZone =
|
|
5458
|
+
const error = useMemo15(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
5459
|
+
const showDropZone = useMemo15(
|
|
5248
5460
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
5249
5461
|
[files, maxCount, uploaded]
|
|
5250
5462
|
);
|
|
5251
|
-
const addFiles =
|
|
5463
|
+
const addFiles = useCallback24(
|
|
5252
5464
|
(uploads) => {
|
|
5253
5465
|
try {
|
|
5254
5466
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -5293,7 +5505,7 @@ var Uploader = React40.memo(
|
|
|
5293
5505
|
},
|
|
5294
5506
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
5295
5507
|
);
|
|
5296
|
-
|
|
5508
|
+
useEffect10(() => {
|
|
5297
5509
|
if (!dropZoneRef.current || disabled) {
|
|
5298
5510
|
return;
|
|
5299
5511
|
}
|
|
@@ -5331,7 +5543,7 @@ var Uploader = React40.memo(
|
|
|
5331
5543
|
);
|
|
5332
5544
|
return () => cleanup?.();
|
|
5333
5545
|
}, [disabled, addFiles]);
|
|
5334
|
-
|
|
5546
|
+
useEffect10(() => {
|
|
5335
5547
|
if (inputRef.current && minCount) {
|
|
5336
5548
|
if (files.length < minCount) {
|
|
5337
5549
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -5340,14 +5552,14 @@ var Uploader = React40.memo(
|
|
|
5340
5552
|
}
|
|
5341
5553
|
}
|
|
5342
5554
|
}, [inputRef, files, minCount]);
|
|
5343
|
-
const handleFileChanged =
|
|
5555
|
+
const handleFileChanged = useCallback24(
|
|
5344
5556
|
(event) => {
|
|
5345
5557
|
const files2 = Array.from(event.target.files || []);
|
|
5346
5558
|
addFiles(files2);
|
|
5347
5559
|
},
|
|
5348
5560
|
[addFiles]
|
|
5349
5561
|
);
|
|
5350
|
-
const handleDeleteFile =
|
|
5562
|
+
const handleDeleteFile = useCallback24(
|
|
5351
5563
|
(deletedFile) => {
|
|
5352
5564
|
if (deletedFile instanceof File) {
|
|
5353
5565
|
setFiles((current) => {
|
|
@@ -5367,10 +5579,10 @@ var Uploader = React40.memo(
|
|
|
5367
5579
|
},
|
|
5368
5580
|
[name, onChange, onDelete]
|
|
5369
5581
|
);
|
|
5370
|
-
const handleUploaderButtonClick =
|
|
5582
|
+
const handleUploaderButtonClick = useCallback24(() => {
|
|
5371
5583
|
inputRef.current?.click();
|
|
5372
5584
|
}, []);
|
|
5373
|
-
const uploader = /* @__PURE__ */
|
|
5585
|
+
const uploader = /* @__PURE__ */ React42.createElement(
|
|
5374
5586
|
FileDropZone,
|
|
5375
5587
|
{
|
|
5376
5588
|
state: previewState,
|
|
@@ -5379,8 +5591,8 @@ var Uploader = React40.memo(
|
|
|
5379
5591
|
ref: dropZoneRef,
|
|
5380
5592
|
onClick: handleUploaderButtonClick
|
|
5381
5593
|
},
|
|
5382
|
-
/* @__PURE__ */
|
|
5383
|
-
/* @__PURE__ */
|
|
5594
|
+
/* @__PURE__ */ React42.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React42.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
5595
|
+
/* @__PURE__ */ React42.createElement(
|
|
5384
5596
|
VisuallyHiddenInput,
|
|
5385
5597
|
{
|
|
5386
5598
|
disabled,
|
|
@@ -5403,7 +5615,7 @@ var Uploader = React40.memo(
|
|
|
5403
5615
|
}
|
|
5404
5616
|
)
|
|
5405
5617
|
);
|
|
5406
|
-
return /* @__PURE__ */
|
|
5618
|
+
return /* @__PURE__ */ React42.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React42.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ React42.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ React42.createElement(FormHelperText_default, null, /* @__PURE__ */ React42.createElement(Stack_default, null, errorText && /* @__PURE__ */ React42.createElement("div", null, errorText), /* @__PURE__ */ React42.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React42.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
5407
5619
|
}
|
|
5408
5620
|
);
|
|
5409
5621
|
Uploader.displayName = "Uploader";
|
|
@@ -5412,7 +5624,7 @@ Uploader.displayName = "Uploader";
|
|
|
5412
5624
|
import { Grid } from "@mui/joy";
|
|
5413
5625
|
|
|
5414
5626
|
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
5415
|
-
import
|
|
5627
|
+
import React43 from "react";
|
|
5416
5628
|
import { MenuButton as JoyMenuButton2, IconButton as JoyIconButton2 } from "@mui/joy";
|
|
5417
5629
|
function IconMenuButton(props) {
|
|
5418
5630
|
const {
|
|
@@ -5426,7 +5638,7 @@ function IconMenuButton(props) {
|
|
|
5426
5638
|
placement = "bottom"
|
|
5427
5639
|
} = props;
|
|
5428
5640
|
if (!items.length) {
|
|
5429
|
-
return /* @__PURE__ */
|
|
5641
|
+
return /* @__PURE__ */ React43.createElement(
|
|
5430
5642
|
JoyIconButton2,
|
|
5431
5643
|
{
|
|
5432
5644
|
component: props.buttonComponent ?? "button",
|
|
@@ -5440,7 +5652,7 @@ function IconMenuButton(props) {
|
|
|
5440
5652
|
icon
|
|
5441
5653
|
);
|
|
5442
5654
|
}
|
|
5443
|
-
return /* @__PURE__ */
|
|
5655
|
+
return /* @__PURE__ */ React43.createElement(Dropdown_default, null, /* @__PURE__ */ React43.createElement(
|
|
5444
5656
|
JoyMenuButton2,
|
|
5445
5657
|
{
|
|
5446
5658
|
slots: { root: JoyIconButton2 },
|
|
@@ -5457,19 +5669,19 @@ function IconMenuButton(props) {
|
|
|
5457
5669
|
}
|
|
5458
5670
|
},
|
|
5459
5671
|
icon
|
|
5460
|
-
), /* @__PURE__ */
|
|
5672
|
+
), /* @__PURE__ */ React43.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React43.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5461
5673
|
}
|
|
5462
5674
|
IconMenuButton.displayName = "IconMenuButton";
|
|
5463
5675
|
|
|
5464
5676
|
// src/components/Markdown/Markdown.tsx
|
|
5465
|
-
import
|
|
5677
|
+
import React44, { lazy, Suspense, useEffect as useEffect11, useState as useState14 } from "react";
|
|
5466
5678
|
import { Skeleton } from "@mui/joy";
|
|
5467
5679
|
import { Link as Link2 } from "@mui/joy";
|
|
5468
5680
|
import remarkGfm from "remark-gfm";
|
|
5469
5681
|
var LazyReactMarkdown = lazy(() => import("react-markdown"));
|
|
5470
5682
|
var Markdown = (props) => {
|
|
5471
|
-
const [rehypeAccent2, setRehypeAccent] =
|
|
5472
|
-
|
|
5683
|
+
const [rehypeAccent2, setRehypeAccent] = useState14(null);
|
|
5684
|
+
useEffect11(() => {
|
|
5473
5685
|
const loadRehypeAccent = async () => {
|
|
5474
5686
|
const module = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
5475
5687
|
setRehypeAccent(() => module.rehypeAccent);
|
|
@@ -5491,12 +5703,12 @@ var Markdown = (props) => {
|
|
|
5491
5703
|
if (!rehypeAccent2) {
|
|
5492
5704
|
return null;
|
|
5493
5705
|
}
|
|
5494
|
-
return /* @__PURE__ */
|
|
5706
|
+
return /* @__PURE__ */ React44.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React44.createElement(
|
|
5495
5707
|
Suspense,
|
|
5496
5708
|
{
|
|
5497
|
-
fallback: fallback || /* @__PURE__ */
|
|
5709
|
+
fallback: fallback || /* @__PURE__ */ React44.createElement(Typography, null, /* @__PURE__ */ React44.createElement(Skeleton, null, content || ""))
|
|
5498
5710
|
},
|
|
5499
|
-
/* @__PURE__ */
|
|
5711
|
+
/* @__PURE__ */ React44.createElement(
|
|
5500
5712
|
LazyReactMarkdown,
|
|
5501
5713
|
{
|
|
5502
5714
|
...markdownOptions,
|
|
@@ -5504,15 +5716,15 @@ var Markdown = (props) => {
|
|
|
5504
5716
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
5505
5717
|
remarkPlugins: [remarkGfm],
|
|
5506
5718
|
components: {
|
|
5507
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
5508
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
5509
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
5510
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
5511
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
5512
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
5513
|
-
hr: () => /* @__PURE__ */
|
|
5514
|
-
b: ({ children }) => /* @__PURE__ */
|
|
5515
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
5719
|
+
h1: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
5720
|
+
h2: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
5721
|
+
h3: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
5722
|
+
h4: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
5723
|
+
p: ({ children, node }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
5724
|
+
a: ({ children, href }) => /* @__PURE__ */ React44.createElement(Link2, { href, target: defaultLinkAction }, children),
|
|
5725
|
+
hr: () => /* @__PURE__ */ React44.createElement(Divider, null),
|
|
5726
|
+
b: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5727
|
+
strong: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
5516
5728
|
...markdownOptions?.components
|
|
5517
5729
|
}
|
|
5518
5730
|
}
|
|
@@ -5522,7 +5734,7 @@ var Markdown = (props) => {
|
|
|
5522
5734
|
Markdown.displayName = "Markdown";
|
|
5523
5735
|
|
|
5524
5736
|
// src/components/MenuButton/MenuButton.tsx
|
|
5525
|
-
import
|
|
5737
|
+
import React45 from "react";
|
|
5526
5738
|
import { MenuButton as JoyMenuButton3, Button as JoyButton2 } from "@mui/joy";
|
|
5527
5739
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
5528
5740
|
function MenuButton(props) {
|
|
@@ -5540,7 +5752,7 @@ function MenuButton(props) {
|
|
|
5540
5752
|
placement = "bottom"
|
|
5541
5753
|
} = props;
|
|
5542
5754
|
if (!items.length) {
|
|
5543
|
-
return /* @__PURE__ */
|
|
5755
|
+
return /* @__PURE__ */ React45.createElement(
|
|
5544
5756
|
JoyButton2,
|
|
5545
5757
|
{
|
|
5546
5758
|
component: props.buttonComponent ?? "button",
|
|
@@ -5551,12 +5763,12 @@ function MenuButton(props) {
|
|
|
5551
5763
|
loading,
|
|
5552
5764
|
startDecorator,
|
|
5553
5765
|
...props.buttonComponentProps ?? {},
|
|
5554
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5766
|
+
endDecorator: showIcon ? /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator, /* @__PURE__ */ React45.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator)
|
|
5555
5767
|
},
|
|
5556
5768
|
buttonText
|
|
5557
5769
|
);
|
|
5558
5770
|
}
|
|
5559
|
-
return /* @__PURE__ */
|
|
5771
|
+
return /* @__PURE__ */ React45.createElement(Dropdown_default, null, /* @__PURE__ */ React45.createElement(
|
|
5560
5772
|
JoyMenuButton3,
|
|
5561
5773
|
{
|
|
5562
5774
|
component: props.buttonComponent ?? "button",
|
|
@@ -5567,15 +5779,15 @@ function MenuButton(props) {
|
|
|
5567
5779
|
loading,
|
|
5568
5780
|
startDecorator,
|
|
5569
5781
|
...props.buttonComponentProps ?? {},
|
|
5570
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
5782
|
+
endDecorator: showIcon ? /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator, /* @__PURE__ */ React45.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator)
|
|
5571
5783
|
},
|
|
5572
5784
|
buttonText
|
|
5573
|
-
), /* @__PURE__ */
|
|
5785
|
+
), /* @__PURE__ */ React45.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React45.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
5574
5786
|
}
|
|
5575
5787
|
MenuButton.displayName = "MenuButton";
|
|
5576
5788
|
|
|
5577
5789
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
5578
|
-
import
|
|
5790
|
+
import React46, { forwardRef as forwardRef9, useCallback as useCallback25, useEffect as useEffect12, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState15 } from "react";
|
|
5579
5791
|
import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
|
|
5580
5792
|
import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
|
|
5581
5793
|
import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
|
|
@@ -5657,14 +5869,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5657
5869
|
locale,
|
|
5658
5870
|
...innerProps
|
|
5659
5871
|
} = props;
|
|
5660
|
-
const innerRef =
|
|
5661
|
-
const buttonRef =
|
|
5872
|
+
const innerRef = useRef10(null);
|
|
5873
|
+
const buttonRef = useRef10(null);
|
|
5662
5874
|
const [value, setValue, isControlled] = useControlledState(
|
|
5663
5875
|
props.value,
|
|
5664
5876
|
props.defaultValue || "",
|
|
5665
|
-
|
|
5877
|
+
useCallback25((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5666
5878
|
);
|
|
5667
|
-
const getFormattedDisplayValue =
|
|
5879
|
+
const getFormattedDisplayValue = useCallback25(
|
|
5668
5880
|
(inputValue) => {
|
|
5669
5881
|
if (!inputValue) return "";
|
|
5670
5882
|
try {
|
|
@@ -5675,19 +5887,19 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5675
5887
|
},
|
|
5676
5888
|
[format, displayFormat, locale]
|
|
5677
5889
|
);
|
|
5678
|
-
const [displayValue, setDisplayValue] =
|
|
5679
|
-
const [anchorEl, setAnchorEl] =
|
|
5890
|
+
const [displayValue, setDisplayValue] = useState15(() => getFormattedDisplayValue(value));
|
|
5891
|
+
const [anchorEl, setAnchorEl] = useState15(null);
|
|
5680
5892
|
const open = Boolean(anchorEl);
|
|
5681
|
-
|
|
5893
|
+
useEffect12(() => {
|
|
5682
5894
|
if (!anchorEl) {
|
|
5683
5895
|
innerRef.current?.blur();
|
|
5684
5896
|
}
|
|
5685
5897
|
}, [anchorEl, innerRef]);
|
|
5686
5898
|
useImperativeHandle4(ref, () => innerRef.current, [innerRef]);
|
|
5687
|
-
|
|
5899
|
+
useEffect12(() => {
|
|
5688
5900
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
5689
5901
|
}, [value, getFormattedDisplayValue]);
|
|
5690
|
-
const handleChange =
|
|
5902
|
+
const handleChange = useCallback25(
|
|
5691
5903
|
(event) => {
|
|
5692
5904
|
const newValue = event.target.value;
|
|
5693
5905
|
setValue(newValue);
|
|
@@ -5697,21 +5909,21 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5697
5909
|
},
|
|
5698
5910
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
5699
5911
|
);
|
|
5700
|
-
const handleCalendarToggle =
|
|
5912
|
+
const handleCalendarToggle = useCallback25(
|
|
5701
5913
|
(event) => {
|
|
5702
5914
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5703
5915
|
innerRef.current?.focus();
|
|
5704
5916
|
},
|
|
5705
5917
|
[anchorEl, setAnchorEl, innerRef]
|
|
5706
5918
|
);
|
|
5707
|
-
const handleInputMouseDown =
|
|
5919
|
+
const handleInputMouseDown = useCallback25(
|
|
5708
5920
|
(event) => {
|
|
5709
5921
|
event.preventDefault();
|
|
5710
5922
|
buttonRef.current?.focus();
|
|
5711
5923
|
},
|
|
5712
5924
|
[buttonRef]
|
|
5713
5925
|
);
|
|
5714
|
-
return /* @__PURE__ */
|
|
5926
|
+
return /* @__PURE__ */ React46.createElement(MonthPickerRoot, null, /* @__PURE__ */ React46.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(
|
|
5715
5927
|
Input_default,
|
|
5716
5928
|
{
|
|
5717
5929
|
...innerProps,
|
|
@@ -5741,7 +5953,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5741
5953
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5742
5954
|
fontFamily: "monospace"
|
|
5743
5955
|
},
|
|
5744
|
-
endDecorator: /* @__PURE__ */
|
|
5956
|
+
endDecorator: /* @__PURE__ */ React46.createElement(
|
|
5745
5957
|
IconButton_default,
|
|
5746
5958
|
{
|
|
5747
5959
|
ref: buttonRef,
|
|
@@ -5753,12 +5965,12 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5753
5965
|
"aria-expanded": open,
|
|
5754
5966
|
disabled
|
|
5755
5967
|
},
|
|
5756
|
-
/* @__PURE__ */
|
|
5968
|
+
/* @__PURE__ */ React46.createElement(CalendarTodayIcon3, null)
|
|
5757
5969
|
),
|
|
5758
5970
|
label,
|
|
5759
5971
|
helperText
|
|
5760
5972
|
}
|
|
5761
|
-
), open && /* @__PURE__ */
|
|
5973
|
+
), open && /* @__PURE__ */ React46.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React46.createElement(
|
|
5762
5974
|
StyledPopper3,
|
|
5763
5975
|
{
|
|
5764
5976
|
id: "month-picker-popper",
|
|
@@ -5777,7 +5989,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5777
5989
|
"aria-label": "Calendar Tooltip",
|
|
5778
5990
|
"aria-expanded": open
|
|
5779
5991
|
},
|
|
5780
|
-
/* @__PURE__ */
|
|
5992
|
+
/* @__PURE__ */ React46.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React46.createElement(
|
|
5781
5993
|
Calendar_default,
|
|
5782
5994
|
{
|
|
5783
5995
|
view: "month",
|
|
@@ -5798,14 +6010,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5798
6010
|
disablePast,
|
|
5799
6011
|
locale
|
|
5800
6012
|
}
|
|
5801
|
-
), /* @__PURE__ */
|
|
6013
|
+
), /* @__PURE__ */ React46.createElement(
|
|
5802
6014
|
DialogActions_default,
|
|
5803
6015
|
{
|
|
5804
6016
|
sx: {
|
|
5805
6017
|
p: 1
|
|
5806
6018
|
}
|
|
5807
6019
|
},
|
|
5808
|
-
/* @__PURE__ */
|
|
6020
|
+
/* @__PURE__ */ React46.createElement(
|
|
5809
6021
|
Button_default,
|
|
5810
6022
|
{
|
|
5811
6023
|
size,
|
|
@@ -5828,7 +6040,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
|
|
|
5828
6040
|
});
|
|
5829
6041
|
|
|
5830
6042
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
5831
|
-
import
|
|
6043
|
+
import React47, { forwardRef as forwardRef10, useCallback as useCallback26, useEffect as useEffect13, useImperativeHandle as useImperativeHandle5, useMemo as useMemo16, useRef as useRef11, useState as useState16 } from "react";
|
|
5832
6044
|
import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
|
|
5833
6045
|
import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
|
|
5834
6046
|
import { styled as styled23, useThemeProps as useThemeProps8 } from "@mui/joy";
|
|
@@ -5886,9 +6098,9 @@ var parseDates2 = (str) => {
|
|
|
5886
6098
|
var formatToPattern3 = (format) => {
|
|
5887
6099
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
5888
6100
|
};
|
|
5889
|
-
var TextMaskAdapter9 =
|
|
6101
|
+
var TextMaskAdapter9 = React47.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
5890
6102
|
const { onChange, format, ...other } = props;
|
|
5891
|
-
return /* @__PURE__ */
|
|
6103
|
+
return /* @__PURE__ */ React47.createElement(
|
|
5892
6104
|
IMaskInput3,
|
|
5893
6105
|
{
|
|
5894
6106
|
...other,
|
|
@@ -5936,35 +6148,35 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5936
6148
|
size,
|
|
5937
6149
|
...innerProps
|
|
5938
6150
|
} = props;
|
|
5939
|
-
const innerRef =
|
|
6151
|
+
const innerRef = useRef11(null);
|
|
5940
6152
|
const [value, setValue] = useControlledState(
|
|
5941
6153
|
props.value,
|
|
5942
6154
|
props.defaultValue || "",
|
|
5943
|
-
|
|
6155
|
+
useCallback26((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5944
6156
|
);
|
|
5945
|
-
const [anchorEl, setAnchorEl] =
|
|
6157
|
+
const [anchorEl, setAnchorEl] = useState16(null);
|
|
5946
6158
|
const open = Boolean(anchorEl);
|
|
5947
|
-
const calendarValue =
|
|
5948
|
-
|
|
6159
|
+
const calendarValue = useMemo16(() => value ? parseDates2(value) : void 0, [value]);
|
|
6160
|
+
useEffect13(() => {
|
|
5949
6161
|
if (!anchorEl) {
|
|
5950
6162
|
innerRef.current?.blur();
|
|
5951
6163
|
}
|
|
5952
6164
|
}, [anchorEl, innerRef]);
|
|
5953
6165
|
useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
|
|
5954
|
-
const handleChange =
|
|
6166
|
+
const handleChange = useCallback26(
|
|
5955
6167
|
(event) => {
|
|
5956
6168
|
setValue(event.target.value);
|
|
5957
6169
|
},
|
|
5958
6170
|
[setValue]
|
|
5959
6171
|
);
|
|
5960
|
-
const handleCalendarToggle =
|
|
6172
|
+
const handleCalendarToggle = useCallback26(
|
|
5961
6173
|
(event) => {
|
|
5962
6174
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5963
6175
|
innerRef.current?.focus();
|
|
5964
6176
|
},
|
|
5965
6177
|
[anchorEl, setAnchorEl, innerRef]
|
|
5966
6178
|
);
|
|
5967
|
-
const handleCalendarChange =
|
|
6179
|
+
const handleCalendarChange = useCallback26(
|
|
5968
6180
|
([date1, date2]) => {
|
|
5969
6181
|
if (!date1 || !date2) return;
|
|
5970
6182
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5972,7 +6184,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5972
6184
|
},
|
|
5973
6185
|
[setValue, setAnchorEl, format]
|
|
5974
6186
|
);
|
|
5975
|
-
return /* @__PURE__ */
|
|
6187
|
+
return /* @__PURE__ */ React47.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React47.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(
|
|
5976
6188
|
Input_default,
|
|
5977
6189
|
{
|
|
5978
6190
|
...innerProps,
|
|
@@ -5994,7 +6206,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
5994
6206
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5995
6207
|
fontFamily: "monospace"
|
|
5996
6208
|
},
|
|
5997
|
-
endDecorator: /* @__PURE__ */
|
|
6209
|
+
endDecorator: /* @__PURE__ */ React47.createElement(
|
|
5998
6210
|
IconButton_default,
|
|
5999
6211
|
{
|
|
6000
6212
|
variant: "plain",
|
|
@@ -6004,12 +6216,12 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6004
6216
|
"aria-haspopup": "dialog",
|
|
6005
6217
|
"aria-expanded": open
|
|
6006
6218
|
},
|
|
6007
|
-
/* @__PURE__ */
|
|
6219
|
+
/* @__PURE__ */ React47.createElement(CalendarTodayIcon4, null)
|
|
6008
6220
|
),
|
|
6009
6221
|
label,
|
|
6010
6222
|
helperText
|
|
6011
6223
|
}
|
|
6012
|
-
), open && /* @__PURE__ */
|
|
6224
|
+
), open && /* @__PURE__ */ React47.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React47.createElement(
|
|
6013
6225
|
StyledPopper4,
|
|
6014
6226
|
{
|
|
6015
6227
|
id: "month-range-picker-popper",
|
|
@@ -6028,7 +6240,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6028
6240
|
"aria-label": "Calendar Tooltip",
|
|
6029
6241
|
"aria-expanded": open
|
|
6030
6242
|
},
|
|
6031
|
-
/* @__PURE__ */
|
|
6243
|
+
/* @__PURE__ */ React47.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React47.createElement(
|
|
6032
6244
|
Calendar_default,
|
|
6033
6245
|
{
|
|
6034
6246
|
view: "month",
|
|
@@ -6041,14 +6253,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6041
6253
|
disableFuture,
|
|
6042
6254
|
disablePast
|
|
6043
6255
|
}
|
|
6044
|
-
), /* @__PURE__ */
|
|
6256
|
+
), /* @__PURE__ */ React47.createElement(
|
|
6045
6257
|
DialogActions_default,
|
|
6046
6258
|
{
|
|
6047
6259
|
sx: {
|
|
6048
6260
|
p: 1
|
|
6049
6261
|
}
|
|
6050
6262
|
},
|
|
6051
|
-
/* @__PURE__ */
|
|
6263
|
+
/* @__PURE__ */ React47.createElement(
|
|
6052
6264
|
Button_default,
|
|
6053
6265
|
{
|
|
6054
6266
|
size,
|
|
@@ -6067,14 +6279,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
|
|
|
6067
6279
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
6068
6280
|
|
|
6069
6281
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
6070
|
-
import
|
|
6282
|
+
import React48 from "react";
|
|
6071
6283
|
import {
|
|
6072
6284
|
Accordion as JoyAccordion2,
|
|
6073
6285
|
AccordionSummary as JoyAccordionSummary2,
|
|
6074
6286
|
AccordionDetails as JoyAccordionDetails2,
|
|
6075
6287
|
styled as styled24,
|
|
6076
6288
|
accordionSummaryClasses,
|
|
6077
|
-
Stack as
|
|
6289
|
+
Stack as Stack13
|
|
6078
6290
|
} from "@mui/joy";
|
|
6079
6291
|
var AccordionSummary2 = styled24(JoyAccordionSummary2, {
|
|
6080
6292
|
name: "NavigationGroup",
|
|
@@ -6098,11 +6310,11 @@ var AccordionDetails2 = styled24(JoyAccordionDetails2, {
|
|
|
6098
6310
|
}));
|
|
6099
6311
|
function NavigationGroup(props) {
|
|
6100
6312
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
6101
|
-
return /* @__PURE__ */
|
|
6313
|
+
return /* @__PURE__ */ React48.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React48.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React48.createElement(Stack13, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React48.createElement(AccordionDetails2, null, children));
|
|
6102
6314
|
}
|
|
6103
6315
|
|
|
6104
6316
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
6105
|
-
import
|
|
6317
|
+
import React49 from "react";
|
|
6106
6318
|
import {
|
|
6107
6319
|
ListItem as JoyListItem,
|
|
6108
6320
|
ListItemButton as JoyListItemButton,
|
|
@@ -6137,7 +6349,7 @@ function NavigationItem(props) {
|
|
|
6137
6349
|
const handleClick = () => {
|
|
6138
6350
|
onClick?.(id);
|
|
6139
6351
|
};
|
|
6140
|
-
return /* @__PURE__ */
|
|
6352
|
+
return /* @__PURE__ */ React49.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React49.createElement(
|
|
6141
6353
|
ListItemButton,
|
|
6142
6354
|
{
|
|
6143
6355
|
level,
|
|
@@ -6146,21 +6358,21 @@ function NavigationItem(props) {
|
|
|
6146
6358
|
"aria-current": selected,
|
|
6147
6359
|
onClick: handleClick
|
|
6148
6360
|
},
|
|
6149
|
-
startDecorator && /* @__PURE__ */
|
|
6361
|
+
startDecorator && /* @__PURE__ */ React49.createElement(JoyListItemDecorator, null, startDecorator),
|
|
6150
6362
|
children
|
|
6151
6363
|
));
|
|
6152
6364
|
}
|
|
6153
6365
|
|
|
6154
6366
|
// src/components/Navigator/Navigator.tsx
|
|
6155
|
-
import
|
|
6367
|
+
import React50 from "react";
|
|
6156
6368
|
function Navigator(props) {
|
|
6157
6369
|
const { items, level = 0, onSelect } = props;
|
|
6158
6370
|
const handleItemClick = (id) => {
|
|
6159
6371
|
onSelect?.(id);
|
|
6160
6372
|
};
|
|
6161
|
-
return /* @__PURE__ */
|
|
6373
|
+
return /* @__PURE__ */ React50.createElement("div", null, items.map((item, index) => {
|
|
6162
6374
|
if (item.type === "item") {
|
|
6163
|
-
return /* @__PURE__ */
|
|
6375
|
+
return /* @__PURE__ */ React50.createElement(
|
|
6164
6376
|
NavigationItem,
|
|
6165
6377
|
{
|
|
6166
6378
|
key: item.id,
|
|
@@ -6173,7 +6385,7 @@ function Navigator(props) {
|
|
|
6173
6385
|
item.title
|
|
6174
6386
|
);
|
|
6175
6387
|
} else if (item.type === "group") {
|
|
6176
|
-
return /* @__PURE__ */
|
|
6388
|
+
return /* @__PURE__ */ React50.createElement(
|
|
6177
6389
|
NavigationGroup,
|
|
6178
6390
|
{
|
|
6179
6391
|
key: `${item.title}-${index}`,
|
|
@@ -6191,7 +6403,7 @@ function Navigator(props) {
|
|
|
6191
6403
|
Navigator.displayName = "Navigator";
|
|
6192
6404
|
|
|
6193
6405
|
// src/components/ProfileMenu/ProfileMenu.tsx
|
|
6194
|
-
import
|
|
6406
|
+
import React51, { useCallback as useCallback27, useMemo as useMemo17 } from "react";
|
|
6195
6407
|
import { Dropdown as Dropdown2, ListDivider, menuItemClasses, styled as styled26, MenuButton as MenuButton2 } from "@mui/joy";
|
|
6196
6408
|
import { ClickAwayListener as ClickAwayListener5 } from "@mui/base";
|
|
6197
6409
|
import DropdownIcon from "@mui/icons-material/ArrowDropDown";
|
|
@@ -6201,9 +6413,9 @@ var StyledProfileCard = styled26(Stack, {
|
|
|
6201
6413
|
})({});
|
|
6202
6414
|
function ProfileCard(props) {
|
|
6203
6415
|
const { children, chip, caption, size } = props;
|
|
6204
|
-
const captionLevel =
|
|
6205
|
-
const nameLevel =
|
|
6206
|
-
return /* @__PURE__ */
|
|
6416
|
+
const captionLevel = useMemo17(() => size === "sm" ? "body-xs" : "body-sm", [size]);
|
|
6417
|
+
const nameLevel = useMemo17(() => size === "sm" ? "body-sm" : "body-md", [size]);
|
|
6418
|
+
return /* @__PURE__ */ React51.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ React51.createElement(Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ React51.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ React51.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ React51.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
|
|
6207
6419
|
}
|
|
6208
6420
|
ProfileCard.displayName = "ProfileCard";
|
|
6209
6421
|
var StyledProfileMenuButton = styled26(MenuButton2, {
|
|
@@ -6215,16 +6427,16 @@ var StyledProfileMenuButton = styled26(MenuButton2, {
|
|
|
6215
6427
|
}));
|
|
6216
6428
|
function ProfileMenuButton(props) {
|
|
6217
6429
|
const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
|
|
6218
|
-
return /* @__PURE__ */
|
|
6430
|
+
return /* @__PURE__ */ React51.createElement(
|
|
6219
6431
|
StyledProfileMenuButton,
|
|
6220
6432
|
{
|
|
6221
6433
|
variant: "plain",
|
|
6222
6434
|
color: "neutral",
|
|
6223
6435
|
size,
|
|
6224
|
-
endDecorator: /* @__PURE__ */
|
|
6436
|
+
endDecorator: /* @__PURE__ */ React51.createElement(DropdownIcon, null),
|
|
6225
6437
|
...innerProps
|
|
6226
6438
|
},
|
|
6227
|
-
/* @__PURE__ */
|
|
6439
|
+
/* @__PURE__ */ React51.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
|
|
6228
6440
|
);
|
|
6229
6441
|
}
|
|
6230
6442
|
ProfileMenuButton.displayName = "ProfileMenuButton";
|
|
@@ -6243,9 +6455,9 @@ function ProfileMenu(props) {
|
|
|
6243
6455
|
const [open, setOpen] = useControlledState(
|
|
6244
6456
|
_open,
|
|
6245
6457
|
defaultOpen ?? false,
|
|
6246
|
-
|
|
6458
|
+
useCallback27((value) => onOpenChange?.(value), [onOpenChange])
|
|
6247
6459
|
);
|
|
6248
|
-
return /* @__PURE__ */
|
|
6460
|
+
return /* @__PURE__ */ React51.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React51.createElement("div", null, /* @__PURE__ */ React51.createElement(Dropdown2, { open }, /* @__PURE__ */ React51.createElement(
|
|
6249
6461
|
ProfileMenuButton,
|
|
6250
6462
|
{
|
|
6251
6463
|
size,
|
|
@@ -6255,7 +6467,7 @@ function ProfileMenu(props) {
|
|
|
6255
6467
|
getInitial
|
|
6256
6468
|
},
|
|
6257
6469
|
profile.name
|
|
6258
|
-
), /* @__PURE__ */
|
|
6470
|
+
), /* @__PURE__ */ React51.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ React51.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ React51.createElement(ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ React51.createElement(
|
|
6259
6471
|
MenuItem,
|
|
6260
6472
|
{
|
|
6261
6473
|
key: label,
|
|
@@ -6271,7 +6483,7 @@ function ProfileMenu(props) {
|
|
|
6271
6483
|
ProfileMenu.displayName = "ProfileMenu";
|
|
6272
6484
|
|
|
6273
6485
|
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
6274
|
-
import
|
|
6486
|
+
import React52 from "react";
|
|
6275
6487
|
import { styled as styled27, radioClasses, sheetClasses } from "@mui/joy";
|
|
6276
6488
|
var RadioTileGroupRoot = styled27(RadioGroup, {
|
|
6277
6489
|
name: "RadioTileGroup",
|
|
@@ -6359,7 +6571,7 @@ function RadioTileGroup(props) {
|
|
|
6359
6571
|
error,
|
|
6360
6572
|
required
|
|
6361
6573
|
} = props;
|
|
6362
|
-
const radioGroup = /* @__PURE__ */
|
|
6574
|
+
const radioGroup = /* @__PURE__ */ React52.createElement(
|
|
6363
6575
|
RadioTileGroupRoot,
|
|
6364
6576
|
{
|
|
6365
6577
|
overlay: true,
|
|
@@ -6370,7 +6582,7 @@ function RadioTileGroup(props) {
|
|
|
6370
6582
|
flex,
|
|
6371
6583
|
columns
|
|
6372
6584
|
},
|
|
6373
|
-
options.map((option) => /* @__PURE__ */
|
|
6585
|
+
options.map((option) => /* @__PURE__ */ React52.createElement(
|
|
6374
6586
|
RadioTileSheet,
|
|
6375
6587
|
{
|
|
6376
6588
|
key: option.value,
|
|
@@ -6380,7 +6592,7 @@ function RadioTileGroup(props) {
|
|
|
6380
6592
|
flex,
|
|
6381
6593
|
textAlign
|
|
6382
6594
|
},
|
|
6383
|
-
/* @__PURE__ */
|
|
6595
|
+
/* @__PURE__ */ React52.createElement(
|
|
6384
6596
|
Radio,
|
|
6385
6597
|
{
|
|
6386
6598
|
id: `${option.value}`,
|
|
@@ -6408,7 +6620,7 @@ function RadioTileGroup(props) {
|
|
|
6408
6620
|
}
|
|
6409
6621
|
}
|
|
6410
6622
|
),
|
|
6411
|
-
option.startDecorator && /* @__PURE__ */
|
|
6623
|
+
option.startDecorator && /* @__PURE__ */ React52.createElement(
|
|
6412
6624
|
Box_default,
|
|
6413
6625
|
{
|
|
6414
6626
|
sx: {
|
|
@@ -6429,20 +6641,20 @@ function RadioTileGroup(props) {
|
|
|
6429
6641
|
)
|
|
6430
6642
|
))
|
|
6431
6643
|
);
|
|
6432
|
-
return /* @__PURE__ */
|
|
6644
|
+
return /* @__PURE__ */ React52.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ React52.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ React52.createElement(FormHelperText_default, null, helperText));
|
|
6433
6645
|
}
|
|
6434
6646
|
RadioTileGroup.displayName = "RadioTileGroup";
|
|
6435
6647
|
|
|
6436
6648
|
// src/components/RadioList/RadioList.tsx
|
|
6437
|
-
import
|
|
6649
|
+
import React53 from "react";
|
|
6438
6650
|
function RadioList(props) {
|
|
6439
6651
|
const { items, ...innerProps } = props;
|
|
6440
|
-
return /* @__PURE__ */
|
|
6652
|
+
return /* @__PURE__ */ React53.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React53.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
6441
6653
|
}
|
|
6442
6654
|
RadioList.displayName = "RadioList";
|
|
6443
6655
|
|
|
6444
6656
|
// src/components/Stepper/Stepper.tsx
|
|
6445
|
-
import
|
|
6657
|
+
import React54 from "react";
|
|
6446
6658
|
import {
|
|
6447
6659
|
Stepper as JoyStepper,
|
|
6448
6660
|
Step as JoyStep,
|
|
@@ -6478,7 +6690,7 @@ function Stepper(props) {
|
|
|
6478
6690
|
stepOrientation = "horizontal"
|
|
6479
6691
|
} = props;
|
|
6480
6692
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
6481
|
-
return /* @__PURE__ */
|
|
6693
|
+
return /* @__PURE__ */ React54.createElement(
|
|
6482
6694
|
MotionStepper,
|
|
6483
6695
|
{
|
|
6484
6696
|
orientation,
|
|
@@ -6517,23 +6729,23 @@ function Stepper(props) {
|
|
|
6517
6729
|
const completed = activeStep > i + 1;
|
|
6518
6730
|
const disabled = activeStep < i + 1;
|
|
6519
6731
|
const hasContent = step.label || step.extraContent;
|
|
6520
|
-
return /* @__PURE__ */
|
|
6732
|
+
return /* @__PURE__ */ React54.createElement(
|
|
6521
6733
|
Step,
|
|
6522
6734
|
{
|
|
6523
6735
|
key: `step-${i}`,
|
|
6524
|
-
indicator: /* @__PURE__ */
|
|
6736
|
+
indicator: /* @__PURE__ */ React54.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React54.createElement(CheckIcon, null) : step.indicatorContent),
|
|
6525
6737
|
active,
|
|
6526
6738
|
completed,
|
|
6527
6739
|
disabled,
|
|
6528
6740
|
orientation: effectiveStepOrientation
|
|
6529
6741
|
},
|
|
6530
|
-
hasContent && /* @__PURE__ */
|
|
6742
|
+
hasContent && /* @__PURE__ */ React54.createElement(
|
|
6531
6743
|
Stack_default,
|
|
6532
6744
|
{
|
|
6533
6745
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
6534
6746
|
},
|
|
6535
|
-
step.label && /* @__PURE__ */
|
|
6536
|
-
step.extraContent && /* @__PURE__ */
|
|
6747
|
+
step.label && /* @__PURE__ */ React54.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
6748
|
+
step.extraContent && /* @__PURE__ */ React54.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
6537
6749
|
)
|
|
6538
6750
|
);
|
|
6539
6751
|
})
|
|
@@ -6542,7 +6754,7 @@ function Stepper(props) {
|
|
|
6542
6754
|
Stepper.displayName = "Stepper";
|
|
6543
6755
|
|
|
6544
6756
|
// src/components/Switch/Switch.tsx
|
|
6545
|
-
import
|
|
6757
|
+
import React55 from "react";
|
|
6546
6758
|
import { Switch as JoySwitch, styled as styled29, switchClasses } from "@mui/joy";
|
|
6547
6759
|
import { motion as motion27 } from "framer-motion";
|
|
6548
6760
|
var MotionSwitch = motion27(JoySwitch);
|
|
@@ -6564,14 +6776,14 @@ var StyledThumb = styled29(motion27.div)({
|
|
|
6564
6776
|
right: "var(--Switch-thumbOffset)"
|
|
6565
6777
|
}
|
|
6566
6778
|
});
|
|
6567
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6779
|
+
var Thumb = (props) => /* @__PURE__ */ React55.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6568
6780
|
var spring = {
|
|
6569
6781
|
type: "spring",
|
|
6570
6782
|
stiffness: 700,
|
|
6571
6783
|
damping: 30
|
|
6572
6784
|
};
|
|
6573
6785
|
var Switch = (props) => {
|
|
6574
|
-
return /* @__PURE__ */
|
|
6786
|
+
return /* @__PURE__ */ React55.createElement(
|
|
6575
6787
|
MotionSwitch,
|
|
6576
6788
|
{
|
|
6577
6789
|
...props,
|
|
@@ -6585,7 +6797,7 @@ var Switch = (props) => {
|
|
|
6585
6797
|
Switch.displayName = "Switch";
|
|
6586
6798
|
|
|
6587
6799
|
// src/components/Tabs/Tabs.tsx
|
|
6588
|
-
import
|
|
6800
|
+
import React56, { forwardRef as forwardRef11 } from "react";
|
|
6589
6801
|
import {
|
|
6590
6802
|
Tabs as JoyTabs,
|
|
6591
6803
|
Tab as JoyTab,
|
|
@@ -6609,14 +6821,14 @@ var StyledTab = styled30(JoyTab)(({ theme }) => ({
|
|
|
6609
6821
|
}
|
|
6610
6822
|
}));
|
|
6611
6823
|
var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6612
|
-
return /* @__PURE__ */
|
|
6824
|
+
return /* @__PURE__ */ React56.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6613
6825
|
});
|
|
6614
6826
|
Tab.displayName = "Tab";
|
|
6615
6827
|
var TabList = JoyTabList;
|
|
6616
6828
|
var TabPanel = JoyTabPanel;
|
|
6617
6829
|
|
|
6618
6830
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6619
|
-
import
|
|
6831
|
+
import React57 from "react";
|
|
6620
6832
|
import { CssBaseline, CssVarsProvider, checkboxClasses, extendTheme, inputClasses } from "@mui/joy";
|
|
6621
6833
|
var colorScheme = {
|
|
6622
6834
|
palette: {
|
|
@@ -6895,7 +7107,7 @@ var defaultTheme = extendTheme({
|
|
|
6895
7107
|
});
|
|
6896
7108
|
function ThemeProvider(props) {
|
|
6897
7109
|
const theme = props.theme || defaultTheme;
|
|
6898
|
-
return /* @__PURE__ */
|
|
7110
|
+
return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React57.createElement(CssBaseline, null), props.children));
|
|
6899
7111
|
}
|
|
6900
7112
|
ThemeProvider.displayName = "ThemeProvider";
|
|
6901
7113
|
export {
|
|
@@ -6938,6 +7150,7 @@ export {
|
|
|
6938
7150
|
Drawer,
|
|
6939
7151
|
Dropdown,
|
|
6940
7152
|
FilterMenu,
|
|
7153
|
+
FilterableCheckboxGroup,
|
|
6941
7154
|
FormControl,
|
|
6942
7155
|
FormHelperText,
|
|
6943
7156
|
FormLabel,
|