@ceed/ads 1.16.1 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3456,8 +3456,10 @@ 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/ChevronLeft";
3460
- import NextIcon from "@mui/icons-material/ChevronRight";
3459
+ import PreviousIcon from "@mui/icons-material/ChevronLeftRounded";
3460
+ import NextIcon from "@mui/icons-material/ChevronRightRounded";
3461
+ import FirstPageIcon from "@mui/icons-material/FirstPageRounded";
3462
+ import LastPageIcon from "@mui/icons-material/LastPageRounded";
3461
3463
  import { styled as styled13 } from "@mui/joy";
3462
3464
  var PaginationButton = styled13(Button_default, {
3463
3465
  name: "Pagination",
@@ -3516,6 +3518,7 @@ function Pagination(props) {
3516
3518
  onPageChange,
3517
3519
  rowCount,
3518
3520
  size = "md",
3521
+ variant = "standard",
3519
3522
  ...innerProps
3520
3523
  } = props;
3521
3524
  const [paginationModel, setPaginationModel] = useControlledState(
@@ -3542,6 +3545,87 @@ function Pagination(props) {
3542
3545
  setPaginationModel({ ...paginationModel, page: lastPage });
3543
3546
  }
3544
3547
  }, [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
+ }
3545
3629
  return /* @__PURE__ */ React24.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React24.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React24.createElement(
3546
3630
  PaginationIconButton,
3547
3631
  {
@@ -4633,8 +4717,8 @@ function FilterableCheckboxGroup(props) {
4633
4717
  FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
4634
4718
 
4635
4719
  // src/components/FilterMenu/FilterMenu.tsx
4636
- import React40, { useCallback as useCallback22 } from "react";
4637
- import { Button as Button2, Stack as Stack10 } from "@mui/joy";
4720
+ import React41, { useCallback as useCallback23 } from "react";
4721
+ import { Button as Button2, Stack as Stack11 } from "@mui/joy";
4638
4722
 
4639
4723
  // src/components/FilterMenu/components/CheckboxGroup.tsx
4640
4724
  import React31, { useCallback as useCallback14 } from "react";
@@ -4670,8 +4754,37 @@ function CheckboxGroup(props) {
4670
4754
  }
4671
4755
  CheckboxGroup.displayName = "CheckboxGroup";
4672
4756
 
4673
- // src/components/FilterMenu/components/RadioGroup.tsx
4757
+ // src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
4674
4758
  import React32, { useCallback as useCallback15 } from "react";
4759
+ import { Stack as Stack3 } from "@mui/joy";
4760
+ function FilterableCheckboxGroup2(props) {
4761
+ const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
4762
+ const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
4763
+ const handleChange = useCallback15(
4764
+ (newValue) => {
4765
+ setInternalValue(newValue);
4766
+ },
4767
+ [setInternalValue]
4768
+ );
4769
+ if (hidden) {
4770
+ return null;
4771
+ }
4772
+ 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(
4773
+ FilterableCheckboxGroup,
4774
+ {
4775
+ value: internalValue ?? [],
4776
+ onChange: handleChange,
4777
+ options,
4778
+ placeholder,
4779
+ maxHeight,
4780
+ size: "sm"
4781
+ }
4782
+ ));
4783
+ }
4784
+ FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
4785
+
4786
+ // src/components/FilterMenu/components/RadioGroup.tsx
4787
+ import React33, { useCallback as useCallback16 } from "react";
4675
4788
 
4676
4789
  // src/components/Radio/Radio.tsx
4677
4790
  import { Radio as JoyRadio, RadioGroup as JoyRadioGroup } from "@mui/joy";
@@ -4684,11 +4797,11 @@ var RadioGroup = MotionRadioGroup;
4684
4797
  RadioGroup.displayName = "RadioGroup";
4685
4798
 
4686
4799
  // src/components/FilterMenu/components/RadioGroup.tsx
4687
- import { Stack as Stack3 } from "@mui/joy";
4800
+ import { Stack as Stack4 } from "@mui/joy";
4688
4801
  function RadioGroup2(props) {
4689
4802
  const { id, label, options, value, onChange, hidden } = props;
4690
4803
  const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
4691
- const handleRadioChange = useCallback15(
4804
+ const handleRadioChange = useCallback16(
4692
4805
  (event) => {
4693
4806
  const newValue = event.target.value;
4694
4807
  const option = options.find((opt) => opt.value.toString() === newValue);
@@ -4700,13 +4813,13 @@ function RadioGroup2(props) {
4700
4813
  if (hidden) {
4701
4814
  return null;
4702
4815
  }
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 }))));
4816
+ return /* @__PURE__ */ React33.createElement(Stack4, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ React33.createElement(Stack4, { 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 }))));
4704
4817
  }
4705
4818
  RadioGroup2.displayName = "RadioGroup";
4706
4819
 
4707
4820
  // src/components/FilterMenu/components/DateRange.tsx
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";
4821
+ import React34, { useCallback as useCallback17, useMemo as useMemo13, useState as useState11, useEffect as useEffect9 } from "react";
4822
+ import { Stack as Stack5 } from "@mui/joy";
4710
4823
  function DateRange(props) {
4711
4824
  const {
4712
4825
  id,
@@ -4734,7 +4847,7 @@ function DateRange(props) {
4734
4847
  ],
4735
4848
  []
4736
4849
  );
4737
- const getDateRangeForOption = useCallback16(
4850
+ const getDateRangeForOption = useCallback17(
4738
4851
  (option) => {
4739
4852
  const now = /* @__PURE__ */ new Date();
4740
4853
  const currentYear = now.getFullYear();
@@ -4773,7 +4886,7 @@ function DateRange(props) {
4773
4886
  },
4774
4887
  [internalValue]
4775
4888
  );
4776
- const determineOptionFromValue = useCallback16(
4889
+ const determineOptionFromValue = useCallback17(
4777
4890
  (value2) => {
4778
4891
  if (!value2) {
4779
4892
  return "all-time";
@@ -4799,7 +4912,7 @@ function DateRange(props) {
4799
4912
  const newOption = determineOptionFromValue(internalValue);
4800
4913
  setSelectedOption(newOption);
4801
4914
  }, [internalValue, determineOptionFromValue]);
4802
- const handleOptionChange = useCallback16(
4915
+ const handleOptionChange = useCallback17(
4803
4916
  (event) => {
4804
4917
  const newOption = event.target.value;
4805
4918
  setSelectedOption(newOption);
@@ -4808,7 +4921,7 @@ function DateRange(props) {
4808
4921
  },
4809
4922
  [getDateRangeForOption, setInternalValue]
4810
4923
  );
4811
- const handleCustomDateChange = useCallback16(
4924
+ const handleCustomDateChange = useCallback17(
4812
4925
  (event) => {
4813
4926
  const dateRangeString = event.target.value;
4814
4927
  if (dateRangeString && dateRangeString.includes(" - ")) {
@@ -4829,7 +4942,7 @@ function DateRange(props) {
4829
4942
  if (hidden) {
4830
4943
  return null;
4831
4944
  }
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(
4945
+ 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(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(
4833
4946
  DateRangePicker,
4834
4947
  {
4835
4948
  value: customDateRangeValue,
@@ -4848,12 +4961,12 @@ function DateRange(props) {
4848
4961
  DateRange.displayName = "DateRange";
4849
4962
 
4850
4963
  // src/components/FilterMenu/components/CurrencyInput.tsx
4851
- import React34, { useCallback as useCallback17 } from "react";
4852
- import { Stack as Stack5 } from "@mui/joy";
4964
+ import React35, { useCallback as useCallback18 } from "react";
4965
+ import { Stack as Stack6 } from "@mui/joy";
4853
4966
  function CurrencyInput3(props) {
4854
4967
  const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
4855
4968
  const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
4856
- const handleCurrencyChange = useCallback17(
4969
+ const handleCurrencyChange = useCallback18(
4857
4970
  (event) => {
4858
4971
  const newValue = event.target.value;
4859
4972
  setInternalValue(newValue);
@@ -4863,7 +4976,7 @@ function CurrencyInput3(props) {
4863
4976
  if (hidden) {
4864
4977
  return null;
4865
4978
  }
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(
4979
+ 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(
4867
4980
  CurrencyInput,
4868
4981
  {
4869
4982
  value: internalValue,
@@ -4879,14 +4992,14 @@ function CurrencyInput3(props) {
4879
4992
  CurrencyInput3.displayName = "CurrencyInput";
4880
4993
 
4881
4994
  // src/components/FilterMenu/components/CurrencyRange.tsx
4882
- import React35, { useCallback as useCallback18 } from "react";
4883
- import { Stack as Stack6 } from "@mui/joy";
4995
+ import React36, { useCallback as useCallback19 } from "react";
4996
+ import { Stack as Stack7 } from "@mui/joy";
4884
4997
  function CurrencyRange(props) {
4885
4998
  const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
4886
4999
  const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
4887
5000
  const minValue = internalValue?.[0];
4888
5001
  const maxValue = internalValue?.[1];
4889
- const handleMinChange = useCallback18(
5002
+ const handleMinChange = useCallback19(
4890
5003
  (event) => {
4891
5004
  const newMinValue = event.target.value;
4892
5005
  const currentMaxValue = maxValue;
@@ -4900,7 +5013,7 @@ function CurrencyRange(props) {
4900
5013
  },
4901
5014
  [maxValue, setInternalValue]
4902
5015
  );
4903
- const handleMaxChange = useCallback18(
5016
+ const handleMaxChange = useCallback19(
4904
5017
  (event) => {
4905
5018
  const newMaxValue = event.target.value;
4906
5019
  const currentMinValue = minValue;
@@ -4917,7 +5030,7 @@ function CurrencyRange(props) {
4917
5030
  if (hidden) {
4918
5031
  return null;
4919
5032
  }
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(
5033
+ return /* @__PURE__ */ React36.createElement(Stack7, { 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(Stack7, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ React36.createElement(
4921
5034
  CurrencyInput,
4922
5035
  {
4923
5036
  label: "Minimum",
@@ -4930,7 +5043,7 @@ function CurrencyRange(props) {
4930
5043
  "aria-labelledby": label ? id : void 0,
4931
5044
  "aria-label": "Minimum amount"
4932
5045
  }
4933
- ), /* @__PURE__ */ React35.createElement(
5046
+ ), /* @__PURE__ */ React36.createElement(
4934
5047
  CurrencyInput,
4935
5048
  {
4936
5049
  label: "Maximum",
@@ -4948,20 +5061,20 @@ function CurrencyRange(props) {
4948
5061
  CurrencyRange.displayName = "CurrencyRange";
4949
5062
 
4950
5063
  // src/components/FilterMenu/components/PercentageInput.tsx
4951
- import React37 from "react";
4952
- import { Stack as Stack7, Typography as Typography2 } from "@mui/joy";
5064
+ import React38 from "react";
5065
+ import { Stack as Stack8, Typography as Typography2 } from "@mui/joy";
4953
5066
 
4954
5067
  // src/components/PercentageInput/PercentageInput.tsx
4955
- import React36, { useCallback as useCallback19, useMemo as useMemo14, useState as useState12 } from "react";
5068
+ import React37, { useCallback as useCallback20, useMemo as useMemo14, useState as useState12 } from "react";
4956
5069
  import { NumericFormat as NumericFormat2 } from "react-number-format";
4957
5070
  import { styled as styled20, useThemeProps as useThemeProps6 } from "@mui/joy";
4958
5071
  var padDecimal = (value, decimalScale) => {
4959
5072
  const [integer, decimal = ""] = `${value}`.split(".");
4960
5073
  return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
4961
5074
  };
4962
- var TextMaskAdapter7 = React36.forwardRef(function TextMaskAdapter8(props, ref) {
5075
+ var TextMaskAdapter7 = React37.forwardRef(function TextMaskAdapter8(props, ref) {
4963
5076
  const { onChange, min, max, ...innerProps } = props;
4964
- return /* @__PURE__ */ React36.createElement(
5077
+ return /* @__PURE__ */ React37.createElement(
4965
5078
  NumericFormat2,
4966
5079
  {
4967
5080
  ...innerProps,
@@ -4986,7 +5099,7 @@ var PercentageInputRoot = styled20(Input_default, {
4986
5099
  slot: "Root",
4987
5100
  overridesResolver: (props, styles) => styles.root
4988
5101
  })({});
4989
- var PercentageInput = React36.forwardRef(
5102
+ var PercentageInput = React37.forwardRef(
4990
5103
  function PercentageInput2(inProps, ref) {
4991
5104
  const props = useThemeProps6({ props: inProps, name: "PercentageInput" });
4992
5105
  const {
@@ -5009,7 +5122,7 @@ var PercentageInput = React36.forwardRef(
5009
5122
  const [_value, setValue] = useControlledState(
5010
5123
  props.value,
5011
5124
  props.defaultValue,
5012
- useCallback19((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
5125
+ useCallback20((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
5013
5126
  );
5014
5127
  const [internalError, setInternalError] = useState12(
5015
5128
  max && _value && _value > max || min && _value && _value < min
@@ -5020,7 +5133,7 @@ var PercentageInput = React36.forwardRef(
5020
5133
  }
5021
5134
  return _value;
5022
5135
  }, [_value, useMinorUnit, maxDecimalScale]);
5023
- const handleChange = useCallback19(
5136
+ const handleChange = useCallback20(
5024
5137
  (event) => {
5025
5138
  if (event.target.value === "") {
5026
5139
  setValue(void 0);
@@ -5037,7 +5150,7 @@ var PercentageInput = React36.forwardRef(
5037
5150
  },
5038
5151
  [setValue, useMinorUnit, maxDecimalScale, min, max]
5039
5152
  );
5040
- return /* @__PURE__ */ React36.createElement(
5153
+ return /* @__PURE__ */ React37.createElement(
5041
5154
  PercentageInputRoot,
5042
5155
  {
5043
5156
  ...innerProps,
@@ -5084,7 +5197,7 @@ var PercentageInput3 = ({
5084
5197
  if (hidden) {
5085
5198
  return null;
5086
5199
  }
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(
5200
+ return /* @__PURE__ */ React38.createElement(Stack8, { 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(
5088
5201
  PercentageInput,
5089
5202
  {
5090
5203
  value: _value,
@@ -5099,8 +5212,8 @@ var PercentageInput3 = ({
5099
5212
  };
5100
5213
 
5101
5214
  // src/components/FilterMenu/components/PercentageRange.tsx
5102
- import React38, { useCallback as useCallback20 } from "react";
5103
- import { Stack as Stack8 } from "@mui/joy";
5215
+ import React39, { useCallback as useCallback21 } from "react";
5216
+ import { Stack as Stack9 } from "@mui/joy";
5104
5217
  function PercentageRange(props) {
5105
5218
  const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
5106
5219
  const [internalValue, setInternalValue] = useControlledState(
@@ -5110,7 +5223,7 @@ function PercentageRange(props) {
5110
5223
  );
5111
5224
  const minValue = internalValue?.[0];
5112
5225
  const maxValue = internalValue?.[1];
5113
- const handleMinChange = useCallback20(
5226
+ const handleMinChange = useCallback21(
5114
5227
  (event) => {
5115
5228
  const newMinValue = event.target.value;
5116
5229
  const currentMaxValue = maxValue;
@@ -5122,7 +5235,7 @@ function PercentageRange(props) {
5122
5235
  },
5123
5236
  [maxValue, setInternalValue]
5124
5237
  );
5125
- const handleMaxChange = useCallback20(
5238
+ const handleMaxChange = useCallback21(
5126
5239
  (event) => {
5127
5240
  const newMaxValue = event.target.value;
5128
5241
  const currentMinValue = minValue;
@@ -5137,7 +5250,7 @@ function PercentageRange(props) {
5137
5250
  if (hidden) {
5138
5251
  return null;
5139
5252
  }
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(
5253
+ 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(Stack9, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ React39.createElement(
5141
5254
  PercentageInput,
5142
5255
  {
5143
5256
  label: "Minimum",
@@ -5151,7 +5264,7 @@ function PercentageRange(props) {
5151
5264
  "aria-label": "Minimum percentage",
5152
5265
  placeholder: "0%"
5153
5266
  }
5154
- ), /* @__PURE__ */ React38.createElement(
5267
+ ), /* @__PURE__ */ React39.createElement(
5155
5268
  PercentageInput,
5156
5269
  {
5157
5270
  label: "Maximum",
@@ -5170,13 +5283,13 @@ function PercentageRange(props) {
5170
5283
  PercentageRange.displayName = "PercentageRange";
5171
5284
 
5172
5285
  // src/components/FilterMenu/components/Autocomplete.tsx
5173
- import React39, { useCallback as useCallback21 } from "react";
5174
- import { Stack as Stack9 } from "@mui/joy";
5286
+ import React40, { useCallback as useCallback22 } from "react";
5287
+ import { Stack as Stack10 } from "@mui/joy";
5175
5288
  function Autocomplete2(props) {
5176
5289
  const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
5177
5290
  const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
5178
5291
  const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
5179
- const handleChange = useCallback21(
5292
+ const handleChange = useCallback22(
5180
5293
  (event) => {
5181
5294
  const val = event.target.value;
5182
5295
  if (val) {
@@ -5191,7 +5304,7 @@ function Autocomplete2(props) {
5191
5304
  if (hidden) {
5192
5305
  return null;
5193
5306
  }
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(
5307
+ return /* @__PURE__ */ React40.createElement(Stack10, { 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(
5195
5308
  Autocomplete,
5196
5309
  {
5197
5310
  value: autocompleteValue,
@@ -5208,6 +5321,7 @@ Autocomplete2.displayName = "Autocomplete";
5208
5321
  // src/components/FilterMenu/FilterMenu.tsx
5209
5322
  var componentMap = {
5210
5323
  "checkbox-group": CheckboxGroup,
5324
+ "filterable-checkbox-group": FilterableCheckboxGroup2,
5211
5325
  "radio-group": RadioGroup2,
5212
5326
  "date-range": DateRange,
5213
5327
  "currency-input": CurrencyInput3,
@@ -5224,7 +5338,7 @@ function FilterMenu(props) {
5224
5338
  void 0
5225
5339
  // onChange는 Apply 버튼에서만 호출
5226
5340
  );
5227
- const handleFilterChange = useCallback22(
5341
+ const handleFilterChange = useCallback23(
5228
5342
  (filterId, value) => {
5229
5343
  setInternalValues((prev) => ({
5230
5344
  ...prev,
@@ -5233,17 +5347,17 @@ function FilterMenu(props) {
5233
5347
  },
5234
5348
  [setInternalValues]
5235
5349
  );
5236
- const handleApply = useCallback22(() => {
5350
+ const handleApply = useCallback23(() => {
5237
5351
  onChange?.(internalValues);
5238
5352
  onClose?.();
5239
5353
  }, [onChange, onClose, internalValues]);
5240
- const handleClear = useCallback22(() => {
5354
+ const handleClear = useCallback23(() => {
5241
5355
  const clearedValues = resetValues || {};
5242
5356
  setInternalValues(clearedValues);
5243
5357
  onChange?.(clearedValues);
5244
5358
  onClose?.();
5245
5359
  }, [resetValues, setInternalValues, onChange, onClose]);
5246
- return /* @__PURE__ */ React40.createElement(
5360
+ return /* @__PURE__ */ React41.createElement(
5247
5361
  ModalDialog,
5248
5362
  {
5249
5363
  sx: {
@@ -5253,9 +5367,9 @@ function FilterMenu(props) {
5253
5367
  top: "initial"
5254
5368
  }
5255
5369
  },
5256
- /* @__PURE__ */ React40.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ React40.createElement(Stack10, { spacing: 6 }, filters?.map((filter) => {
5370
+ /* @__PURE__ */ React41.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ React41.createElement(Stack11, { spacing: 6 }, filters?.map((filter) => {
5257
5371
  const FilterComponent = componentMap[filter.type];
5258
- return FilterComponent ? /* @__PURE__ */ React40.createElement(
5372
+ return FilterComponent ? /* @__PURE__ */ React41.createElement(
5259
5373
  FilterComponent,
5260
5374
  {
5261
5375
  key: filter.id,
@@ -5267,13 +5381,13 @@ function FilterMenu(props) {
5267
5381
  }
5268
5382
  ) : null;
5269
5383
  }))),
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"))
5384
+ /* @__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"))
5271
5385
  );
5272
5386
  }
5273
5387
  FilterMenu.displayName = "FilterMenu";
5274
5388
 
5275
5389
  // src/components/Uploader/Uploader.tsx
5276
- import React41, { useCallback as useCallback23, useEffect as useEffect10, useMemo as useMemo15, useRef as useRef9, useState as useState13 } from "react";
5390
+ import React42, { useCallback as useCallback24, useEffect as useEffect10, useMemo as useMemo15, useRef as useRef9, useState as useState13 } from "react";
5277
5391
  import { styled as styled21, Input as Input2 } from "@mui/joy";
5278
5392
  import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
5279
5393
  import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
@@ -5350,7 +5464,7 @@ var getFileSize = (n) => {
5350
5464
  };
5351
5465
  var Preview = (props) => {
5352
5466
  const { files, uploaded, onDelete } = props;
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(
5467
+ 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(
5354
5468
  Typography_default,
5355
5469
  {
5356
5470
  level: "body-sm",
@@ -5362,7 +5476,7 @@ var Preview = (props) => {
5362
5476
  }
5363
5477
  },
5364
5478
  file.name
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))))));
5479
+ ), !!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))))));
5366
5480
  };
5367
5481
  var UploaderRoot = styled21(Stack_default, {
5368
5482
  name: "Uploader",
@@ -5405,7 +5519,7 @@ var UploaderIcon = styled21(MuiFileUploadIcon, {
5405
5519
  }
5406
5520
  })
5407
5521
  );
5408
- var Uploader = React41.memo(
5522
+ var Uploader = React42.memo(
5409
5523
  (props) => {
5410
5524
  const {
5411
5525
  accept,
@@ -5473,7 +5587,7 @@ var Uploader = React41.memo(
5473
5587
  () => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
5474
5588
  [files, maxCount, uploaded]
5475
5589
  );
5476
- const addFiles = useCallback23(
5590
+ const addFiles = useCallback24(
5477
5591
  (uploads) => {
5478
5592
  try {
5479
5593
  const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
@@ -5565,14 +5679,14 @@ var Uploader = React41.memo(
5565
5679
  }
5566
5680
  }
5567
5681
  }, [inputRef, files, minCount]);
5568
- const handleFileChanged = useCallback23(
5682
+ const handleFileChanged = useCallback24(
5569
5683
  (event) => {
5570
5684
  const files2 = Array.from(event.target.files || []);
5571
5685
  addFiles(files2);
5572
5686
  },
5573
5687
  [addFiles]
5574
5688
  );
5575
- const handleDeleteFile = useCallback23(
5689
+ const handleDeleteFile = useCallback24(
5576
5690
  (deletedFile) => {
5577
5691
  if (deletedFile instanceof File) {
5578
5692
  setFiles((current) => {
@@ -5592,10 +5706,10 @@ var Uploader = React41.memo(
5592
5706
  },
5593
5707
  [name, onChange, onDelete]
5594
5708
  );
5595
- const handleUploaderButtonClick = useCallback23(() => {
5709
+ const handleUploaderButtonClick = useCallback24(() => {
5596
5710
  inputRef.current?.click();
5597
5711
  }, []);
5598
- const uploader = /* @__PURE__ */ React41.createElement(
5712
+ const uploader = /* @__PURE__ */ React42.createElement(
5599
5713
  FileDropZone,
5600
5714
  {
5601
5715
  state: previewState,
@@ -5604,8 +5718,8 @@ var Uploader = React41.memo(
5604
5718
  ref: dropZoneRef,
5605
5719
  onClick: handleUploaderButtonClick
5606
5720
  },
5607
- /* @__PURE__ */ React41.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React41.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
5608
- /* @__PURE__ */ React41.createElement(
5721
+ /* @__PURE__ */ React42.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React42.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
5722
+ /* @__PURE__ */ React42.createElement(
5609
5723
  VisuallyHiddenInput,
5610
5724
  {
5611
5725
  disabled,
@@ -5628,7 +5742,7 @@ var Uploader = React41.memo(
5628
5742
  }
5629
5743
  )
5630
5744
  );
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 }));
5745
+ 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 }));
5632
5746
  }
5633
5747
  );
5634
5748
  Uploader.displayName = "Uploader";
@@ -5637,7 +5751,7 @@ Uploader.displayName = "Uploader";
5637
5751
  import { Grid } from "@mui/joy";
5638
5752
 
5639
5753
  // src/components/IconMenuButton/IconMenuButton.tsx
5640
- import React42 from "react";
5754
+ import React43 from "react";
5641
5755
  import { MenuButton as JoyMenuButton2, IconButton as JoyIconButton2 } from "@mui/joy";
5642
5756
  function IconMenuButton(props) {
5643
5757
  const {
@@ -5651,7 +5765,7 @@ function IconMenuButton(props) {
5651
5765
  placement = "bottom"
5652
5766
  } = props;
5653
5767
  if (!items.length) {
5654
- return /* @__PURE__ */ React42.createElement(
5768
+ return /* @__PURE__ */ React43.createElement(
5655
5769
  JoyIconButton2,
5656
5770
  {
5657
5771
  component: props.buttonComponent ?? "button",
@@ -5665,7 +5779,7 @@ function IconMenuButton(props) {
5665
5779
  icon
5666
5780
  );
5667
5781
  }
5668
- return /* @__PURE__ */ React42.createElement(Dropdown_default, null, /* @__PURE__ */ React42.createElement(
5782
+ return /* @__PURE__ */ React43.createElement(Dropdown_default, null, /* @__PURE__ */ React43.createElement(
5669
5783
  JoyMenuButton2,
5670
5784
  {
5671
5785
  slots: { root: JoyIconButton2 },
@@ -5682,12 +5796,12 @@ function IconMenuButton(props) {
5682
5796
  }
5683
5797
  },
5684
5798
  icon
5685
- ), /* @__PURE__ */ React42.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React42.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5799
+ ), /* @__PURE__ */ React43.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React43.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5686
5800
  }
5687
5801
  IconMenuButton.displayName = "IconMenuButton";
5688
5802
 
5689
5803
  // src/components/Markdown/Markdown.tsx
5690
- import React43, { lazy, Suspense, useEffect as useEffect11, useState as useState14 } from "react";
5804
+ import React44, { lazy, Suspense, useEffect as useEffect11, useState as useState14 } from "react";
5691
5805
  import { Skeleton } from "@mui/joy";
5692
5806
  import { Link as Link2 } from "@mui/joy";
5693
5807
  import remarkGfm from "remark-gfm";
@@ -5716,12 +5830,12 @@ var Markdown = (props) => {
5716
5830
  if (!rehypeAccent2) {
5717
5831
  return null;
5718
5832
  }
5719
- return /* @__PURE__ */ React43.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React43.createElement(
5833
+ return /* @__PURE__ */ React44.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React44.createElement(
5720
5834
  Suspense,
5721
5835
  {
5722
- fallback: fallback || /* @__PURE__ */ React43.createElement(Typography, null, /* @__PURE__ */ React43.createElement(Skeleton, null, content || ""))
5836
+ fallback: fallback || /* @__PURE__ */ React44.createElement(Typography, null, /* @__PURE__ */ React44.createElement(Skeleton, null, content || ""))
5723
5837
  },
5724
- /* @__PURE__ */ React43.createElement(
5838
+ /* @__PURE__ */ React44.createElement(
5725
5839
  LazyReactMarkdown,
5726
5840
  {
5727
5841
  ...markdownOptions,
@@ -5729,15 +5843,15 @@ var Markdown = (props) => {
5729
5843
  rehypePlugins: [[rehypeAccent2, { accentColor }]],
5730
5844
  remarkPlugins: [remarkGfm],
5731
5845
  components: {
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),
5846
+ h1: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h1" }, children),
5847
+ h2: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h2" }, children),
5848
+ h3: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h3" }, children),
5849
+ h4: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: "h4" }, children),
5850
+ p: ({ children, node }) => /* @__PURE__ */ React44.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
5851
+ a: ({ children, href }) => /* @__PURE__ */ React44.createElement(Link2, { href, target: defaultLinkAction }, children),
5852
+ hr: () => /* @__PURE__ */ React44.createElement(Divider, null),
5853
+ b: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { fontWeight: boldFontWeight }, children),
5854
+ strong: ({ children }) => /* @__PURE__ */ React44.createElement(Typography, { fontWeight: boldFontWeight }, children),
5741
5855
  ...markdownOptions?.components
5742
5856
  }
5743
5857
  }
@@ -5747,7 +5861,7 @@ var Markdown = (props) => {
5747
5861
  Markdown.displayName = "Markdown";
5748
5862
 
5749
5863
  // src/components/MenuButton/MenuButton.tsx
5750
- import React44 from "react";
5864
+ import React45 from "react";
5751
5865
  import { MenuButton as JoyMenuButton3, Button as JoyButton2 } from "@mui/joy";
5752
5866
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
5753
5867
  function MenuButton(props) {
@@ -5765,7 +5879,7 @@ function MenuButton(props) {
5765
5879
  placement = "bottom"
5766
5880
  } = props;
5767
5881
  if (!items.length) {
5768
- return /* @__PURE__ */ React44.createElement(
5882
+ return /* @__PURE__ */ React45.createElement(
5769
5883
  JoyButton2,
5770
5884
  {
5771
5885
  component: props.buttonComponent ?? "button",
@@ -5776,12 +5890,12 @@ function MenuButton(props) {
5776
5890
  loading,
5777
5891
  startDecorator,
5778
5892
  ...props.buttonComponentProps ?? {},
5779
- endDecorator: showIcon ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator, /* @__PURE__ */ React44.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator)
5893
+ endDecorator: showIcon ? /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator, /* @__PURE__ */ React45.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator)
5780
5894
  },
5781
5895
  buttonText
5782
5896
  );
5783
5897
  }
5784
- return /* @__PURE__ */ React44.createElement(Dropdown_default, null, /* @__PURE__ */ React44.createElement(
5898
+ return /* @__PURE__ */ React45.createElement(Dropdown_default, null, /* @__PURE__ */ React45.createElement(
5785
5899
  JoyMenuButton3,
5786
5900
  {
5787
5901
  component: props.buttonComponent ?? "button",
@@ -5792,15 +5906,15 @@ function MenuButton(props) {
5792
5906
  loading,
5793
5907
  startDecorator,
5794
5908
  ...props.buttonComponentProps ?? {},
5795
- endDecorator: showIcon ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator, /* @__PURE__ */ React44.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, endDecorator)
5909
+ endDecorator: showIcon ? /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator, /* @__PURE__ */ React45.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React45.createElement(React45.Fragment, null, endDecorator)
5796
5910
  },
5797
5911
  buttonText
5798
- ), /* @__PURE__ */ React44.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React44.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5912
+ ), /* @__PURE__ */ React45.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React45.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5799
5913
  }
5800
5914
  MenuButton.displayName = "MenuButton";
5801
5915
 
5802
5916
  // src/components/MonthPicker/MonthPicker.tsx
5803
- import React45, { forwardRef as forwardRef9, useCallback as useCallback24, useEffect as useEffect12, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState15 } from "react";
5917
+ import React46, { forwardRef as forwardRef9, useCallback as useCallback25, useEffect as useEffect12, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState15 } from "react";
5804
5918
  import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
5805
5919
  import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
5806
5920
  import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
@@ -5887,9 +6001,9 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5887
6001
  const [value, setValue, isControlled] = useControlledState(
5888
6002
  props.value,
5889
6003
  props.defaultValue || "",
5890
- useCallback24((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6004
+ useCallback25((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
5891
6005
  );
5892
- const getFormattedDisplayValue = useCallback24(
6006
+ const getFormattedDisplayValue = useCallback25(
5893
6007
  (inputValue) => {
5894
6008
  if (!inputValue) return "";
5895
6009
  try {
@@ -5912,7 +6026,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5912
6026
  useEffect12(() => {
5913
6027
  setDisplayValue(getFormattedDisplayValue(value));
5914
6028
  }, [value, getFormattedDisplayValue]);
5915
- const handleChange = useCallback24(
6029
+ const handleChange = useCallback25(
5916
6030
  (event) => {
5917
6031
  const newValue = event.target.value;
5918
6032
  setValue(newValue);
@@ -5922,21 +6036,21 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5922
6036
  },
5923
6037
  [setValue, getFormattedDisplayValue, isControlled]
5924
6038
  );
5925
- const handleCalendarToggle = useCallback24(
6039
+ const handleCalendarToggle = useCallback25(
5926
6040
  (event) => {
5927
6041
  setAnchorEl(anchorEl ? null : event.currentTarget);
5928
6042
  innerRef.current?.focus();
5929
6043
  },
5930
6044
  [anchorEl, setAnchorEl, innerRef]
5931
6045
  );
5932
- const handleInputMouseDown = useCallback24(
6046
+ const handleInputMouseDown = useCallback25(
5933
6047
  (event) => {
5934
6048
  event.preventDefault();
5935
6049
  buttonRef.current?.focus();
5936
6050
  },
5937
6051
  [buttonRef]
5938
6052
  );
5939
- return /* @__PURE__ */ React45.createElement(MonthPickerRoot, null, /* @__PURE__ */ React45.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(
6053
+ return /* @__PURE__ */ React46.createElement(MonthPickerRoot, null, /* @__PURE__ */ React46.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(
5940
6054
  Input_default,
5941
6055
  {
5942
6056
  ...innerProps,
@@ -5966,7 +6080,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5966
6080
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
5967
6081
  fontFamily: "monospace"
5968
6082
  },
5969
- endDecorator: /* @__PURE__ */ React45.createElement(
6083
+ endDecorator: /* @__PURE__ */ React46.createElement(
5970
6084
  IconButton_default,
5971
6085
  {
5972
6086
  ref: buttonRef,
@@ -5978,12 +6092,12 @@ var MonthPicker = forwardRef9((inProps, ref) => {
5978
6092
  "aria-expanded": open,
5979
6093
  disabled
5980
6094
  },
5981
- /* @__PURE__ */ React45.createElement(CalendarTodayIcon3, null)
6095
+ /* @__PURE__ */ React46.createElement(CalendarTodayIcon3, null)
5982
6096
  ),
5983
6097
  label,
5984
6098
  helperText
5985
6099
  }
5986
- ), open && /* @__PURE__ */ React45.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React45.createElement(
6100
+ ), open && /* @__PURE__ */ React46.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React46.createElement(
5987
6101
  StyledPopper3,
5988
6102
  {
5989
6103
  id: "month-picker-popper",
@@ -6002,7 +6116,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6002
6116
  "aria-label": "Calendar Tooltip",
6003
6117
  "aria-expanded": open
6004
6118
  },
6005
- /* @__PURE__ */ React45.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React45.createElement(
6119
+ /* @__PURE__ */ React46.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React46.createElement(
6006
6120
  Calendar_default,
6007
6121
  {
6008
6122
  view: "month",
@@ -6023,14 +6137,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6023
6137
  disablePast,
6024
6138
  locale
6025
6139
  }
6026
- ), /* @__PURE__ */ React45.createElement(
6140
+ ), /* @__PURE__ */ React46.createElement(
6027
6141
  DialogActions_default,
6028
6142
  {
6029
6143
  sx: {
6030
6144
  p: 1
6031
6145
  }
6032
6146
  },
6033
- /* @__PURE__ */ React45.createElement(
6147
+ /* @__PURE__ */ React46.createElement(
6034
6148
  Button_default,
6035
6149
  {
6036
6150
  size,
@@ -6053,7 +6167,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6053
6167
  });
6054
6168
 
6055
6169
  // src/components/MonthRangePicker/MonthRangePicker.tsx
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";
6170
+ 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";
6057
6171
  import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
6058
6172
  import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
6059
6173
  import { styled as styled23, useThemeProps as useThemeProps8 } from "@mui/joy";
@@ -6111,9 +6225,9 @@ var parseDates2 = (str) => {
6111
6225
  var formatToPattern3 = (format) => {
6112
6226
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
6113
6227
  };
6114
- var TextMaskAdapter9 = React46.forwardRef(function TextMaskAdapter10(props, ref) {
6228
+ var TextMaskAdapter9 = React47.forwardRef(function TextMaskAdapter10(props, ref) {
6115
6229
  const { onChange, format, ...other } = props;
6116
- return /* @__PURE__ */ React46.createElement(
6230
+ return /* @__PURE__ */ React47.createElement(
6117
6231
  IMaskInput3,
6118
6232
  {
6119
6233
  ...other,
@@ -6165,7 +6279,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6165
6279
  const [value, setValue] = useControlledState(
6166
6280
  props.value,
6167
6281
  props.defaultValue || "",
6168
- useCallback25((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6282
+ useCallback26((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6169
6283
  );
6170
6284
  const [anchorEl, setAnchorEl] = useState16(null);
6171
6285
  const open = Boolean(anchorEl);
@@ -6176,20 +6290,20 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6176
6290
  }
6177
6291
  }, [anchorEl, innerRef]);
6178
6292
  useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
6179
- const handleChange = useCallback25(
6293
+ const handleChange = useCallback26(
6180
6294
  (event) => {
6181
6295
  setValue(event.target.value);
6182
6296
  },
6183
6297
  [setValue]
6184
6298
  );
6185
- const handleCalendarToggle = useCallback25(
6299
+ const handleCalendarToggle = useCallback26(
6186
6300
  (event) => {
6187
6301
  setAnchorEl(anchorEl ? null : event.currentTarget);
6188
6302
  innerRef.current?.focus();
6189
6303
  },
6190
6304
  [anchorEl, setAnchorEl, innerRef]
6191
6305
  );
6192
- const handleCalendarChange = useCallback25(
6306
+ const handleCalendarChange = useCallback26(
6193
6307
  ([date1, date2]) => {
6194
6308
  if (!date1 || !date2) return;
6195
6309
  setValue(formatValueString4([date1, date2], format));
@@ -6197,7 +6311,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6197
6311
  },
6198
6312
  [setValue, setAnchorEl, format]
6199
6313
  );
6200
- return /* @__PURE__ */ React46.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React46.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(
6314
+ return /* @__PURE__ */ React47.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React47.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(
6201
6315
  Input_default,
6202
6316
  {
6203
6317
  ...innerProps,
@@ -6219,7 +6333,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6219
6333
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
6220
6334
  fontFamily: "monospace"
6221
6335
  },
6222
- endDecorator: /* @__PURE__ */ React46.createElement(
6336
+ endDecorator: /* @__PURE__ */ React47.createElement(
6223
6337
  IconButton_default,
6224
6338
  {
6225
6339
  variant: "plain",
@@ -6229,12 +6343,12 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6229
6343
  "aria-haspopup": "dialog",
6230
6344
  "aria-expanded": open
6231
6345
  },
6232
- /* @__PURE__ */ React46.createElement(CalendarTodayIcon4, null)
6346
+ /* @__PURE__ */ React47.createElement(CalendarTodayIcon4, null)
6233
6347
  ),
6234
6348
  label,
6235
6349
  helperText
6236
6350
  }
6237
- ), open && /* @__PURE__ */ React46.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React46.createElement(
6351
+ ), open && /* @__PURE__ */ React47.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React47.createElement(
6238
6352
  StyledPopper4,
6239
6353
  {
6240
6354
  id: "month-range-picker-popper",
@@ -6253,7 +6367,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6253
6367
  "aria-label": "Calendar Tooltip",
6254
6368
  "aria-expanded": open
6255
6369
  },
6256
- /* @__PURE__ */ React46.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React46.createElement(
6370
+ /* @__PURE__ */ React47.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React47.createElement(
6257
6371
  Calendar_default,
6258
6372
  {
6259
6373
  view: "month",
@@ -6266,14 +6380,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6266
6380
  disableFuture,
6267
6381
  disablePast
6268
6382
  }
6269
- ), /* @__PURE__ */ React46.createElement(
6383
+ ), /* @__PURE__ */ React47.createElement(
6270
6384
  DialogActions_default,
6271
6385
  {
6272
6386
  sx: {
6273
6387
  p: 1
6274
6388
  }
6275
6389
  },
6276
- /* @__PURE__ */ React46.createElement(
6390
+ /* @__PURE__ */ React47.createElement(
6277
6391
  Button_default,
6278
6392
  {
6279
6393
  size,
@@ -6292,14 +6406,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6292
6406
  MonthRangePicker.displayName = "MonthRangePicker";
6293
6407
 
6294
6408
  // src/components/NavigationGroup/NavigationGroup.tsx
6295
- import React47 from "react";
6409
+ import React48 from "react";
6296
6410
  import {
6297
6411
  Accordion as JoyAccordion2,
6298
6412
  AccordionSummary as JoyAccordionSummary2,
6299
6413
  AccordionDetails as JoyAccordionDetails2,
6300
6414
  styled as styled24,
6301
6415
  accordionSummaryClasses,
6302
- Stack as Stack11
6416
+ Stack as Stack12
6303
6417
  } from "@mui/joy";
6304
6418
  var AccordionSummary2 = styled24(JoyAccordionSummary2, {
6305
6419
  name: "NavigationGroup",
@@ -6323,11 +6437,11 @@ var AccordionDetails2 = styled24(JoyAccordionDetails2, {
6323
6437
  }));
6324
6438
  function NavigationGroup(props) {
6325
6439
  const { title, children, startDecorator, level, ...rest } = props;
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));
6440
+ return /* @__PURE__ */ React48.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React48.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React48.createElement(Stack12, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React48.createElement(AccordionDetails2, null, children));
6327
6441
  }
6328
6442
 
6329
6443
  // src/components/NavigationItem/NavigationItem.tsx
6330
- import React48 from "react";
6444
+ import React49 from "react";
6331
6445
  import {
6332
6446
  ListItem as JoyListItem,
6333
6447
  ListItemButton as JoyListItemButton,
@@ -6362,7 +6476,7 @@ function NavigationItem(props) {
6362
6476
  const handleClick = () => {
6363
6477
  onClick?.(id);
6364
6478
  };
6365
- return /* @__PURE__ */ React48.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React48.createElement(
6479
+ return /* @__PURE__ */ React49.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React49.createElement(
6366
6480
  ListItemButton,
6367
6481
  {
6368
6482
  level,
@@ -6371,21 +6485,21 @@ function NavigationItem(props) {
6371
6485
  "aria-current": selected,
6372
6486
  onClick: handleClick
6373
6487
  },
6374
- startDecorator && /* @__PURE__ */ React48.createElement(JoyListItemDecorator, null, startDecorator),
6488
+ startDecorator && /* @__PURE__ */ React49.createElement(JoyListItemDecorator, null, startDecorator),
6375
6489
  children
6376
6490
  ));
6377
6491
  }
6378
6492
 
6379
6493
  // src/components/Navigator/Navigator.tsx
6380
- import React49 from "react";
6494
+ import React50 from "react";
6381
6495
  function Navigator(props) {
6382
6496
  const { items, level = 0, onSelect } = props;
6383
6497
  const handleItemClick = (id) => {
6384
6498
  onSelect?.(id);
6385
6499
  };
6386
- return /* @__PURE__ */ React49.createElement("div", null, items.map((item, index) => {
6500
+ return /* @__PURE__ */ React50.createElement("div", null, items.map((item, index) => {
6387
6501
  if (item.type === "item") {
6388
- return /* @__PURE__ */ React49.createElement(
6502
+ return /* @__PURE__ */ React50.createElement(
6389
6503
  NavigationItem,
6390
6504
  {
6391
6505
  key: item.id,
@@ -6398,7 +6512,7 @@ function Navigator(props) {
6398
6512
  item.title
6399
6513
  );
6400
6514
  } else if (item.type === "group") {
6401
- return /* @__PURE__ */ React49.createElement(
6515
+ return /* @__PURE__ */ React50.createElement(
6402
6516
  NavigationGroup,
6403
6517
  {
6404
6518
  key: `${item.title}-${index}`,
@@ -6416,7 +6530,7 @@ function Navigator(props) {
6416
6530
  Navigator.displayName = "Navigator";
6417
6531
 
6418
6532
  // src/components/ProfileMenu/ProfileMenu.tsx
6419
- import React50, { useCallback as useCallback26, useMemo as useMemo17 } from "react";
6533
+ import React51, { useCallback as useCallback27, useMemo as useMemo17 } from "react";
6420
6534
  import { Dropdown as Dropdown2, ListDivider, menuItemClasses, styled as styled26, MenuButton as MenuButton2 } from "@mui/joy";
6421
6535
  import { ClickAwayListener as ClickAwayListener5 } from "@mui/base";
6422
6536
  import DropdownIcon from "@mui/icons-material/ArrowDropDown";
@@ -6428,7 +6542,7 @@ function ProfileCard(props) {
6428
6542
  const { children, chip, caption, size } = props;
6429
6543
  const captionLevel = useMemo17(() => size === "sm" ? "body-xs" : "body-sm", [size]);
6430
6544
  const nameLevel = useMemo17(() => size === "sm" ? "body-sm" : "body-md", [size]);
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));
6545
+ 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));
6432
6546
  }
6433
6547
  ProfileCard.displayName = "ProfileCard";
6434
6548
  var StyledProfileMenuButton = styled26(MenuButton2, {
@@ -6440,16 +6554,16 @@ var StyledProfileMenuButton = styled26(MenuButton2, {
6440
6554
  }));
6441
6555
  function ProfileMenuButton(props) {
6442
6556
  const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
6443
- return /* @__PURE__ */ React50.createElement(
6557
+ return /* @__PURE__ */ React51.createElement(
6444
6558
  StyledProfileMenuButton,
6445
6559
  {
6446
6560
  variant: "plain",
6447
6561
  color: "neutral",
6448
6562
  size,
6449
- endDecorator: /* @__PURE__ */ React50.createElement(DropdownIcon, null),
6563
+ endDecorator: /* @__PURE__ */ React51.createElement(DropdownIcon, null),
6450
6564
  ...innerProps
6451
6565
  },
6452
- /* @__PURE__ */ React50.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
6566
+ /* @__PURE__ */ React51.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
6453
6567
  );
6454
6568
  }
6455
6569
  ProfileMenuButton.displayName = "ProfileMenuButton";
@@ -6468,9 +6582,9 @@ function ProfileMenu(props) {
6468
6582
  const [open, setOpen] = useControlledState(
6469
6583
  _open,
6470
6584
  defaultOpen ?? false,
6471
- useCallback26((value) => onOpenChange?.(value), [onOpenChange])
6585
+ useCallback27((value) => onOpenChange?.(value), [onOpenChange])
6472
6586
  );
6473
- return /* @__PURE__ */ React50.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React50.createElement("div", null, /* @__PURE__ */ React50.createElement(Dropdown2, { open }, /* @__PURE__ */ React50.createElement(
6587
+ return /* @__PURE__ */ React51.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React51.createElement("div", null, /* @__PURE__ */ React51.createElement(Dropdown2, { open }, /* @__PURE__ */ React51.createElement(
6474
6588
  ProfileMenuButton,
6475
6589
  {
6476
6590
  size,
@@ -6480,7 +6594,7 @@ function ProfileMenu(props) {
6480
6594
  getInitial
6481
6595
  },
6482
6596
  profile.name
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(
6597
+ ), /* @__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(
6484
6598
  MenuItem,
6485
6599
  {
6486
6600
  key: label,
@@ -6496,7 +6610,7 @@ function ProfileMenu(props) {
6496
6610
  ProfileMenu.displayName = "ProfileMenu";
6497
6611
 
6498
6612
  // src/components/RadioTileGroup/RadioTileGroup.tsx
6499
- import React51 from "react";
6613
+ import React52 from "react";
6500
6614
  import { styled as styled27, radioClasses, sheetClasses } from "@mui/joy";
6501
6615
  var RadioTileGroupRoot = styled27(RadioGroup, {
6502
6616
  name: "RadioTileGroup",
@@ -6584,7 +6698,7 @@ function RadioTileGroup(props) {
6584
6698
  error,
6585
6699
  required
6586
6700
  } = props;
6587
- const radioGroup = /* @__PURE__ */ React51.createElement(
6701
+ const radioGroup = /* @__PURE__ */ React52.createElement(
6588
6702
  RadioTileGroupRoot,
6589
6703
  {
6590
6704
  overlay: true,
@@ -6595,7 +6709,7 @@ function RadioTileGroup(props) {
6595
6709
  flex,
6596
6710
  columns
6597
6711
  },
6598
- options.map((option) => /* @__PURE__ */ React51.createElement(
6712
+ options.map((option) => /* @__PURE__ */ React52.createElement(
6599
6713
  RadioTileSheet,
6600
6714
  {
6601
6715
  key: option.value,
@@ -6605,7 +6719,7 @@ function RadioTileGroup(props) {
6605
6719
  flex,
6606
6720
  textAlign
6607
6721
  },
6608
- /* @__PURE__ */ React51.createElement(
6722
+ /* @__PURE__ */ React52.createElement(
6609
6723
  Radio,
6610
6724
  {
6611
6725
  id: `${option.value}`,
@@ -6633,7 +6747,7 @@ function RadioTileGroup(props) {
6633
6747
  }
6634
6748
  }
6635
6749
  ),
6636
- option.startDecorator && /* @__PURE__ */ React51.createElement(
6750
+ option.startDecorator && /* @__PURE__ */ React52.createElement(
6637
6751
  Box_default,
6638
6752
  {
6639
6753
  sx: {
@@ -6654,20 +6768,20 @@ function RadioTileGroup(props) {
6654
6768
  )
6655
6769
  ))
6656
6770
  );
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));
6771
+ 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));
6658
6772
  }
6659
6773
  RadioTileGroup.displayName = "RadioTileGroup";
6660
6774
 
6661
6775
  // src/components/RadioList/RadioList.tsx
6662
- import React52 from "react";
6776
+ import React53 from "react";
6663
6777
  function RadioList(props) {
6664
6778
  const { items, ...innerProps } = props;
6665
- return /* @__PURE__ */ React52.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React52.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
6779
+ return /* @__PURE__ */ React53.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React53.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
6666
6780
  }
6667
6781
  RadioList.displayName = "RadioList";
6668
6782
 
6669
6783
  // src/components/Stepper/Stepper.tsx
6670
- import React53 from "react";
6784
+ import React54 from "react";
6671
6785
  import {
6672
6786
  Stepper as JoyStepper,
6673
6787
  Step as JoyStep,
@@ -6703,7 +6817,7 @@ function Stepper(props) {
6703
6817
  stepOrientation = "horizontal"
6704
6818
  } = props;
6705
6819
  const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
6706
- return /* @__PURE__ */ React53.createElement(
6820
+ return /* @__PURE__ */ React54.createElement(
6707
6821
  MotionStepper,
6708
6822
  {
6709
6823
  orientation,
@@ -6742,23 +6856,23 @@ function Stepper(props) {
6742
6856
  const completed = activeStep > i + 1;
6743
6857
  const disabled = activeStep < i + 1;
6744
6858
  const hasContent = step.label || step.extraContent;
6745
- return /* @__PURE__ */ React53.createElement(
6859
+ return /* @__PURE__ */ React54.createElement(
6746
6860
  Step,
6747
6861
  {
6748
6862
  key: `step-${i}`,
6749
- indicator: /* @__PURE__ */ React53.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React53.createElement(CheckIcon, null) : step.indicatorContent),
6863
+ indicator: /* @__PURE__ */ React54.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React54.createElement(CheckIcon, null) : step.indicatorContent),
6750
6864
  active,
6751
6865
  completed,
6752
6866
  disabled,
6753
6867
  orientation: effectiveStepOrientation
6754
6868
  },
6755
- hasContent && /* @__PURE__ */ React53.createElement(
6869
+ hasContent && /* @__PURE__ */ React54.createElement(
6756
6870
  Stack_default,
6757
6871
  {
6758
6872
  sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
6759
6873
  },
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)
6874
+ step.label && /* @__PURE__ */ React54.createElement(Typography_default, { level: "title-sm" }, step.label),
6875
+ step.extraContent && /* @__PURE__ */ React54.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
6762
6876
  )
6763
6877
  );
6764
6878
  })
@@ -6767,7 +6881,7 @@ function Stepper(props) {
6767
6881
  Stepper.displayName = "Stepper";
6768
6882
 
6769
6883
  // src/components/Switch/Switch.tsx
6770
- import React54 from "react";
6884
+ import React55 from "react";
6771
6885
  import { Switch as JoySwitch, styled as styled29, switchClasses } from "@mui/joy";
6772
6886
  import { motion as motion27 } from "framer-motion";
6773
6887
  var MotionSwitch = motion27(JoySwitch);
@@ -6789,14 +6903,14 @@ var StyledThumb = styled29(motion27.div)({
6789
6903
  right: "var(--Switch-thumbOffset)"
6790
6904
  }
6791
6905
  });
6792
- var Thumb = (props) => /* @__PURE__ */ React54.createElement(StyledThumb, { ...props, layout: true, transition: spring });
6906
+ var Thumb = (props) => /* @__PURE__ */ React55.createElement(StyledThumb, { ...props, layout: true, transition: spring });
6793
6907
  var spring = {
6794
6908
  type: "spring",
6795
6909
  stiffness: 700,
6796
6910
  damping: 30
6797
6911
  };
6798
6912
  var Switch = (props) => {
6799
- return /* @__PURE__ */ React54.createElement(
6913
+ return /* @__PURE__ */ React55.createElement(
6800
6914
  MotionSwitch,
6801
6915
  {
6802
6916
  ...props,
@@ -6810,7 +6924,7 @@ var Switch = (props) => {
6810
6924
  Switch.displayName = "Switch";
6811
6925
 
6812
6926
  // src/components/Tabs/Tabs.tsx
6813
- import React55, { forwardRef as forwardRef11 } from "react";
6927
+ import React56, { forwardRef as forwardRef11 } from "react";
6814
6928
  import {
6815
6929
  Tabs as JoyTabs,
6816
6930
  Tab as JoyTab,
@@ -6834,14 +6948,14 @@ var StyledTab = styled30(JoyTab)(({ theme }) => ({
6834
6948
  }
6835
6949
  }));
6836
6950
  var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
6837
- return /* @__PURE__ */ React55.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
6951
+ return /* @__PURE__ */ React56.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
6838
6952
  });
6839
6953
  Tab.displayName = "Tab";
6840
6954
  var TabList = JoyTabList;
6841
6955
  var TabPanel = JoyTabPanel;
6842
6956
 
6843
6957
  // src/components/ThemeProvider/ThemeProvider.tsx
6844
- import React56 from "react";
6958
+ import React57 from "react";
6845
6959
  import { CssBaseline, CssVarsProvider, checkboxClasses, extendTheme, inputClasses } from "@mui/joy";
6846
6960
  var colorScheme = {
6847
6961
  palette: {
@@ -7120,7 +7234,7 @@ var defaultTheme = extendTheme({
7120
7234
  });
7121
7235
  function ThemeProvider(props) {
7122
7236
  const theme = props.theme || defaultTheme;
7123
- return /* @__PURE__ */ React56.createElement(React56.Fragment, null, /* @__PURE__ */ React56.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React56.createElement(CssBaseline, null), props.children));
7237
+ return /* @__PURE__ */ React57.createElement(React57.Fragment, null, /* @__PURE__ */ React57.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React57.createElement(CssBaseline, null), props.children));
7124
7238
  }
7125
7239
  ThemeProvider.displayName = "ThemeProvider";
7126
7240
  export {