react-better-html 1.1.213 → 1.1.215

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
@@ -4136,6 +4136,7 @@ var filterHover = () => {
4136
4136
 
4137
4137
  // src/components/Chip.tsx
4138
4138
  var import_jsx_runtime14 = require("react/jsx-runtime");
4139
+ var borderRadiusOffset = 1.3;
4139
4140
  var ChipComponent = (0, import_react16.forwardRef)(function Chip({
4140
4141
  text,
4141
4142
  color,
@@ -4160,7 +4161,7 @@ var ChipComponent = (0, import_react16.forwardRef)(function Chip({
4160
4161
  {
4161
4162
  width: "fit-content",
4162
4163
  backgroundColor: backgroundColor ?? theme2.colors.backgroundSecondary,
4163
- borderRadius: isCircle ? 999 : borderRadius ?? theme2.styles.borderRadius / 1.3,
4164
+ borderRadius: isCircle ? 999 : borderRadius ?? theme2.styles.borderRadius / borderRadiusOffset,
4164
4165
  paddingBlock: theme2.styles.gap / 2,
4165
4166
  paddingInline: theme2.styles.space / 1.5,
4166
4167
  filterHover: onClick || onClickWithValue ? filterHover().z1 : void 0,
@@ -4172,11 +4173,11 @@ var ChipComponent = (0, import_react16.forwardRef)(function Chip({
4172
4173
  }
4173
4174
  );
4174
4175
  });
4175
- ChipComponent.colored = (0, import_react16.forwardRef)(function Colored({ color, ...props }, ref) {
4176
+ ChipComponent.colored = (0, import_react16.forwardRef)(function Colored({ color, withWhiteBackground, ...props }, ref) {
4176
4177
  const theme2 = useTheme();
4177
4178
  const { colorTheme } = useBetterHtmlContextInternal();
4178
4179
  const readyColor = color ?? theme2.colors.textSecondary;
4179
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4180
+ const chip = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4180
4181
  ChipComponent,
4181
4182
  {
4182
4183
  color: colorTheme === "light" ? darkenColor(readyColor, 0.7) : lightenColor(readyColor, 0.7),
@@ -4186,13 +4187,22 @@ ChipComponent.colored = (0, import_react16.forwardRef)(function Colored({ color,
4186
4187
  ...props
4187
4188
  }
4188
4189
  );
4190
+ return withWhiteBackground ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4191
+ Div_default,
4192
+ {
4193
+ width: "fit-content",
4194
+ backgroundColor: withWhiteBackground ? colorTheme === "light" ? "#ffffff" : "#000000" : void 0,
4195
+ borderRadius: withWhiteBackground ? props.borderRadius ?? theme2.styles.borderRadius / borderRadiusOffset + 0.3 : void 0,
4196
+ children: chip
4197
+ }
4198
+ ) : chip;
4189
4199
  });
4190
4200
  var Chip2 = (0, import_react16.memo)(ChipComponent);
4191
4201
  Chip2.colored = ChipComponent.colored;
4192
4202
  var Chip_default = Chip2;
4193
4203
 
4194
4204
  // src/components/InputField.tsx
4195
- var import_react20 = require("react");
4205
+ var import_react21 = require("react");
4196
4206
  var import_styled_components11 = __toESM(require("styled-components"));
4197
4207
 
4198
4208
  // src/constants/countries.ts
@@ -5821,6 +5831,7 @@ var Label_default = (0, import_react17.memo)(Label);
5821
5831
  // src/components/Dropdown.tsx
5822
5832
  var import_react18 = require("react");
5823
5833
  var import_jsx_runtime16 = require("react/jsx-runtime");
5834
+ var import_react19 = require("react");
5824
5835
  var DropdownComponent = (0, import_react18.forwardRef)(function Dropdown({
5825
5836
  label,
5826
5837
  labelColor,
@@ -5992,7 +6003,7 @@ var DropdownComponent = (0, import_react18.forwardRef)(function Dropdown({
5992
6003
  role: "option",
5993
6004
  "aria-selected": isSelected,
5994
6005
  "aria-disabled": isDisabled,
5995
- children: renderOption ? renderOption(option, index, isSelected) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text_default, { children: option.label })
6006
+ children: renderOption ? renderOption(option, index, isSelected) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, { children: !option.renderType || option.renderType === "default" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text_default, { children: option.label }) : option.renderType === "chip" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Chip_default, { text: option.label, ...option.chipProps }) : option.renderType === "chip.colored" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Chip_default.colored, { text: option.label, withWhiteBackground: true, ...option.chipProps }) : void 0 })
5996
6007
  }
5997
6008
  ),
5998
6009
  renderOptionDivider ? renderOptionDivider(
@@ -6090,7 +6101,18 @@ var DropdownComponent = (0, import_react18.forwardRef)(function Dropdown({
6090
6101
  paddingBlock: theme2.styles.gap,
6091
6102
  paddingInline: (theme2.styles.space + theme2.styles.gap) / 2,
6092
6103
  transition: theme2.styles.transition,
6093
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Div_default.row, { width: "100%", flexWrap: "wrap", gap: theme2.styles.gap, children: selectedOption.map((option) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Chip_default, { text: option.label }, JSON.stringify(option))) })
6104
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Div_default.row, { width: "100%", flexWrap: "wrap", gap: theme2.styles.gap, children: selectedOption.map((option) => {
6105
+ const ChipComponentTag = !option.renderType || option.renderType === "default" || option.renderType === "chip" ? Chip_default : option.renderType === "chip.colored" ? Chip_default.colored : Chip_default;
6106
+ return /* @__PURE__ */ (0, import_react19.createElement)(
6107
+ ChipComponentTag,
6108
+ {
6109
+ text: option.label,
6110
+ ...option.renderType === "chip" || option.renderType === "chip.colored" ? option.chipProps : [],
6111
+ withWhiteBackground: option.renderType === "chip.colored",
6112
+ key: JSON.stringify(option)
6113
+ }
6114
+ );
6115
+ }) })
6094
6116
  }
6095
6117
  ) : void 0,
6096
6118
  insideInputFieldAfterComponent: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
@@ -6212,7 +6234,7 @@ Dropdown2.countries = DropdownComponent.countries;
6212
6234
  var Dropdown_default = Dropdown2;
6213
6235
 
6214
6236
  // src/components/Calendar.tsx
6215
- var import_react19 = require("react");
6237
+ var import_react20 = require("react");
6216
6238
  var import_styled_components10 = __toESM(require("styled-components"));
6217
6239
  var import_jsx_runtime17 = require("react/jsx-runtime");
6218
6240
  var getMonthName = (month, short = false) => {
@@ -6265,24 +6287,24 @@ var SelectComponent = import_styled_components10.default.select.withConfig({
6265
6287
  `;
6266
6288
  function Calendar({ value, minDate, maxDate, onChange }) {
6267
6289
  const theme2 = useTheme();
6268
- const internalYearSelectId = (0, import_react19.useId)();
6269
- const [currentDate, setCurrentDate] = (0, import_react19.useState)(value ? new Date(value) : void 0);
6270
- const [currentMonth, setCurrentMonth] = (0, import_react19.useState)(currentDate?.getMonth() ?? (/* @__PURE__ */ new Date()).getMonth());
6271
- const [currentYear, setCurrentYear] = (0, import_react19.useState)(currentDate?.getFullYear() ?? (/* @__PURE__ */ new Date()).getFullYear());
6272
- const daysInMonth = (0, import_react19.useMemo)(() => new Date(currentYear, currentMonth + 1, 0).getDate(), [currentMonth, currentYear]);
6273
- const onClickPreviousMonthButton = (0, import_react19.useCallback)(() => {
6290
+ const internalYearSelectId = (0, import_react20.useId)();
6291
+ const [currentDate, setCurrentDate] = (0, import_react20.useState)(value ? new Date(value) : void 0);
6292
+ const [currentMonth, setCurrentMonth] = (0, import_react20.useState)(currentDate?.getMonth() ?? (/* @__PURE__ */ new Date()).getMonth());
6293
+ const [currentYear, setCurrentYear] = (0, import_react20.useState)(currentDate?.getFullYear() ?? (/* @__PURE__ */ new Date()).getFullYear());
6294
+ const daysInMonth = (0, import_react20.useMemo)(() => new Date(currentYear, currentMonth + 1, 0).getDate(), [currentMonth, currentYear]);
6295
+ const onClickPreviousMonthButton = (0, import_react20.useCallback)(() => {
6274
6296
  const newMonth = currentMonth === 0 ? 11 : currentMonth - 1;
6275
6297
  const newYear = currentMonth === 0 ? currentYear - 1 : currentYear;
6276
6298
  setCurrentMonth(newMonth);
6277
6299
  setCurrentYear(newYear);
6278
6300
  }, [currentMonth, currentYear]);
6279
- const onClickNextMonthButton = (0, import_react19.useCallback)(() => {
6301
+ const onClickNextMonthButton = (0, import_react20.useCallback)(() => {
6280
6302
  const newMonth = currentMonth === 11 ? 0 : currentMonth + 1;
6281
6303
  const newYear = currentMonth === 11 ? currentYear + 1 : currentYear;
6282
6304
  setCurrentMonth(newMonth);
6283
6305
  setCurrentYear(newYear);
6284
6306
  }, [currentMonth, currentYear]);
6285
- const onClickDay = (0, import_react19.useCallback)(
6307
+ const onClickDay = (0, import_react20.useCallback)(
6286
6308
  (day) => {
6287
6309
  if (!day) return;
6288
6310
  const newDate = new Date(currentYear, currentMonth, day);
@@ -6293,25 +6315,25 @@ function Calendar({ value, minDate, maxDate, onChange }) {
6293
6315
  },
6294
6316
  [currentMonth, currentYear, onChange]
6295
6317
  );
6296
- const onClickClear = (0, import_react19.useCallback)(() => {
6318
+ const onClickClear = (0, import_react20.useCallback)(() => {
6297
6319
  setCurrentDate(void 0);
6298
6320
  onChange?.(void 0);
6299
6321
  }, []);
6300
- const onClickToday = (0, import_react19.useCallback)(() => {
6322
+ const onClickToday = (0, import_react20.useCallback)(() => {
6301
6323
  const today = /* @__PURE__ */ new Date();
6302
6324
  setCurrentDate(today);
6303
6325
  onChange?.(
6304
6326
  `${today.getFullYear()}-${(today.getMonth() + 1).toString().padStart(2, "0")}-${today.getDate().toString().padStart(2, "0")}`
6305
6327
  );
6306
6328
  }, [onChange]);
6307
- const onChangeYearSelect = (0, import_react19.useCallback)((event) => {
6329
+ const onChangeYearSelect = (0, import_react20.useCallback)((event) => {
6308
6330
  setCurrentYear(parseInt(event.target.value));
6309
6331
  }, []);
6310
- const firstDayOfMonth = (0, import_react19.useMemo)(() => {
6332
+ const firstDayOfMonth = (0, import_react20.useMemo)(() => {
6311
6333
  const day = new Date(currentYear, currentMonth, 1).getDay();
6312
6334
  return day === 0 ? 6 : day - 1;
6313
6335
  }, [currentMonth, currentYear]);
6314
- const days = (0, import_react19.useMemo)(() => {
6336
+ const days = (0, import_react20.useMemo)(() => {
6315
6337
  const result = [];
6316
6338
  for (let index = 0; index < firstDayOfMonth; index++) {
6317
6339
  result.push(void 0);
@@ -6321,7 +6343,7 @@ function Calendar({ value, minDate, maxDate, onChange }) {
6321
6343
  }
6322
6344
  return result;
6323
6345
  }, [daysInMonth, firstDayOfMonth]);
6324
- (0, import_react19.useEffect)(() => {
6346
+ (0, import_react20.useEffect)(() => {
6325
6347
  if (!value) return;
6326
6348
  const date = new Date(value);
6327
6349
  setCurrentDate(date);
@@ -6427,7 +6449,7 @@ function Calendar({ value, minDate, maxDate, onChange }) {
6427
6449
  ] })
6428
6450
  ] });
6429
6451
  }
6430
- var Calendar_default = (0, import_react19.memo)(Calendar);
6452
+ var Calendar_default = (0, import_react20.memo)(Calendar);
6431
6453
 
6432
6454
  // src/components/InputField.tsx
6433
6455
  var import_jsx_runtime18 = require("react/jsx-runtime");
@@ -6595,7 +6617,7 @@ var TextareaElement = import_styled_components11.default.textarea.withConfig({
6595
6617
  `;
6596
6618
  var hours = Array.from({ length: 24 }, (_, index) => index);
6597
6619
  var minutes = Array.from({ length: 60 }, (_, index) => index);
6598
- var InputFieldComponent = (0, import_react20.forwardRef)(function InputField({
6620
+ var InputFieldComponent = (0, import_react21.forwardRef)(function InputField({
6599
6621
  label,
6600
6622
  labelColor,
6601
6623
  errorText,
@@ -6620,7 +6642,7 @@ var InputFieldComponent = (0, import_react20.forwardRef)(function InputField({
6620
6642
  ...props
6621
6643
  }, ref) {
6622
6644
  const theme2 = useTheme();
6623
- const internalId = (0, import_react20.useId)();
6645
+ const internalId = (0, import_react21.useId)();
6624
6646
  const { colorTheme } = useBetterHtmlContextInternal();
6625
6647
  const [_, debouncedValue, setDebouncedValue] = useDebounceState(
6626
6648
  props.value?.toString() ?? "",
@@ -6631,7 +6653,7 @@ var InputFieldComponent = (0, import_react20.forwardRef)(function InputField({
6631
6653
  const dataProps = useComponentPropsWithPrefix(props, "data");
6632
6654
  const ariaProps = useComponentPropsWithPrefix(props, "aria");
6633
6655
  const restProps = useComponentPropsWithoutStyle(props);
6634
- const onChangeElement = (0, import_react20.useCallback)(
6656
+ const onChangeElement = (0, import_react21.useCallback)(
6635
6657
  (event) => {
6636
6658
  const newValue = event.target.value;
6637
6659
  if (withDebounce) {
@@ -6644,13 +6666,13 @@ var InputFieldComponent = (0, import_react20.forwardRef)(function InputField({
6644
6666
  },
6645
6667
  [onChange, onChangeValue, withDebounce]
6646
6668
  );
6647
- const leftIconZIndex = (0, import_react20.useMemo)(
6669
+ const leftIconZIndex = (0, import_react21.useMemo)(
6648
6670
  () => ["react-better-html-dropdown-open-late", "react-better-html-inputField-dateTime-opened-late"].some(
6649
6671
  (classNameItem) => props.className?.includes(classNameItem)
6650
6672
  ) ? 1002 : 1,
6651
6673
  [props.className]
6652
6674
  );
6653
- (0, import_react20.useEffect)(() => {
6675
+ (0, import_react21.useEffect)(() => {
6654
6676
  if (!withDebounce) return;
6655
6677
  onChangeValue?.(debouncedValue);
6656
6678
  }, [withDebounce, onChangeValue, debouncedValue]);
@@ -6757,7 +6779,7 @@ var InputFieldComponent = (0, import_react20.forwardRef)(function InputField({
6757
6779
  )
6758
6780
  ] });
6759
6781
  });
6760
- InputFieldComponent.multiline = (0, import_react20.forwardRef)(function Multiline({
6782
+ InputFieldComponent.multiline = (0, import_react21.forwardRef)(function Multiline({
6761
6783
  label,
6762
6784
  placeholder,
6763
6785
  errorText,
@@ -6772,12 +6794,12 @@ InputFieldComponent.multiline = (0, import_react20.forwardRef)(function Multilin
6772
6794
  ...props
6773
6795
  }, ref) {
6774
6796
  const theme2 = useTheme();
6775
- const internalId = (0, import_react20.useId)();
6797
+ const internalId = (0, import_react21.useId)();
6776
6798
  const styledComponentStyles = useStyledComponentStyles(props, theme2);
6777
6799
  const dataProps = useComponentPropsWithPrefix(props, "data");
6778
6800
  const ariaProps = useComponentPropsWithPrefix(props, "aria");
6779
6801
  const restProps = useComponentPropsWithoutStyle(props);
6780
- const onChangeElement = (0, import_react20.useCallback)(
6802
+ const onChangeElement = (0, import_react21.useCallback)(
6781
6803
  (event) => {
6782
6804
  onChange?.(event);
6783
6805
  onChangeValue?.(event.target.value);
@@ -6851,7 +6873,7 @@ InputFieldComponent.multiline = (0, import_react20.forwardRef)(function Multilin
6851
6873
  )
6852
6874
  ] });
6853
6875
  });
6854
- InputFieldComponent.email = (0, import_react20.forwardRef)(function Email({ ...props }, ref) {
6876
+ InputFieldComponent.email = (0, import_react21.forwardRef)(function Email({ ...props }, ref) {
6855
6877
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
6856
6878
  InputFieldComponent,
6857
6879
  {
@@ -6865,7 +6887,7 @@ InputFieldComponent.email = (0, import_react20.forwardRef)(function Email({ ...p
6865
6887
  }
6866
6888
  );
6867
6889
  });
6868
- InputFieldComponent.password = (0, import_react20.forwardRef)(function Password({ ...props }, ref) {
6890
+ InputFieldComponent.password = (0, import_react21.forwardRef)(function Password({ ...props }, ref) {
6869
6891
  const [isPassword, setIsPassword] = useBooleanState(true);
6870
6892
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
6871
6893
  InputFieldComponent,
@@ -6882,31 +6904,31 @@ InputFieldComponent.password = (0, import_react20.forwardRef)(function Password(
6882
6904
  }
6883
6905
  );
6884
6906
  });
6885
- InputFieldComponent.search = (0, import_react20.forwardRef)(function Search({ value, onChangeValue, onFocus, onBlur, ...props }, ref) {
6886
- const [inputFieldValue, setInputFieldValue] = (0, import_react20.useState)(value?.toString() ?? "");
6907
+ InputFieldComponent.search = (0, import_react21.forwardRef)(function Search({ value, onChangeValue, onFocus, onBlur, ...props }, ref) {
6908
+ const [inputFieldValue, setInputFieldValue] = (0, import_react21.useState)(value?.toString() ?? "");
6887
6909
  const [inputFieldFocused, setInputFieldFocused] = useBooleanState();
6888
- const onChangeValueElement = (0, import_react20.useCallback)(
6910
+ const onChangeValueElement = (0, import_react21.useCallback)(
6889
6911
  (value2) => {
6890
6912
  setInputFieldValue(value2);
6891
6913
  onChangeValue?.(value2);
6892
6914
  },
6893
6915
  [onChangeValue]
6894
6916
  );
6895
- const onFocusElement = (0, import_react20.useCallback)(
6917
+ const onFocusElement = (0, import_react21.useCallback)(
6896
6918
  (event) => {
6897
6919
  setInputFieldFocused.setTrue();
6898
6920
  onFocus?.(event);
6899
6921
  },
6900
6922
  [onFocus]
6901
6923
  );
6902
- const onBlurElement = (0, import_react20.useCallback)(
6924
+ const onBlurElement = (0, import_react21.useCallback)(
6903
6925
  (event) => {
6904
6926
  setTimeout(() => setInputFieldFocused.setFalse(), 0.1 * 1e3);
6905
6927
  onBlur?.(event);
6906
6928
  },
6907
6929
  [onBlur]
6908
6930
  );
6909
- const onClickRightIcon = (0, import_react20.useCallback)(() => {
6931
+ const onClickRightIcon = (0, import_react21.useCallback)(() => {
6910
6932
  onChangeValueElement("");
6911
6933
  }, [onChangeValueElement]);
6912
6934
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -6925,26 +6947,26 @@ InputFieldComponent.search = (0, import_react20.forwardRef)(function Search({ va
6925
6947
  }
6926
6948
  );
6927
6949
  });
6928
- InputFieldComponent.phoneNumber = (0, import_react20.forwardRef)(function PhoneNumber({ label, value, onChangeValue, labelColor, id, ...props }, ref) {
6950
+ InputFieldComponent.phoneNumber = (0, import_react21.forwardRef)(function PhoneNumber({ label, value, onChangeValue, labelColor, id, ...props }, ref) {
6929
6951
  const theme2 = useTheme();
6930
- const internalId = (0, import_react20.useId)();
6931
- const [dropdownValue, setDropdownValue] = (0, import_react20.useState)();
6932
- const [inputFieldValue, setInputFieldValue] = (0, import_react20.useState)(value?.toString() ?? "");
6933
- const renderOption = (0, import_react20.useCallback)(
6952
+ const internalId = (0, import_react21.useId)();
6953
+ const [dropdownValue, setDropdownValue] = (0, import_react21.useState)();
6954
+ const [inputFieldValue, setInputFieldValue] = (0, import_react21.useState)(value?.toString() ?? "");
6955
+ const renderOption = (0, import_react21.useCallback)(
6934
6956
  (option, index, isSelected) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Div_default.row, { alignItems: "center", gap: theme2.styles.gap, children: [
6935
6957
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Image_default, { src: `https://flagcdn.com/w80/${option.data?.code.toString().toLowerCase()}.webp`, width: 20 }),
6936
6958
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text_default, { children: option.label })
6937
6959
  ] }),
6938
6960
  []
6939
6961
  );
6940
- const onChangeDropdown = (0, import_react20.useCallback)(
6962
+ const onChangeDropdown = (0, import_react21.useCallback)(
6941
6963
  (value2) => {
6942
6964
  setDropdownValue(value2);
6943
6965
  onChangeValue?.(value2 ? `+${value2}${inputFieldValue}` : inputFieldValue);
6944
6966
  },
6945
6967
  [onChangeValue, inputFieldValue]
6946
6968
  );
6947
- const onChangeValueElement = (0, import_react20.useCallback)(
6969
+ const onChangeValueElement = (0, import_react21.useCallback)(
6948
6970
  (value2) => {
6949
6971
  const readyValue = value2.replace(/\D/g, "");
6950
6972
  setInputFieldValue(readyValue);
@@ -6952,7 +6974,7 @@ InputFieldComponent.phoneNumber = (0, import_react20.forwardRef)(function PhoneN
6952
6974
  },
6953
6975
  [onChangeValue, dropdownValue]
6954
6976
  );
6955
- const options = (0, import_react20.useMemo)(
6977
+ const options = (0, import_react21.useMemo)(
6956
6978
  () => countries.map((country) => ({
6957
6979
  value: country.phoneNumberExtension,
6958
6980
  label: `+${country.phoneNumberExtension}`,
@@ -6960,13 +6982,13 @@ InputFieldComponent.phoneNumber = (0, import_react20.forwardRef)(function PhoneN
6960
6982
  })),
6961
6983
  []
6962
6984
  );
6963
- const defaultValue = (0, import_react20.useMemo)(() => {
6985
+ const defaultValue = (0, import_react21.useMemo)(() => {
6964
6986
  const thisTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
6965
6987
  const initialDefaultValue = options.find((option) => option.data?.timeZone === thisTimeZone)?.value ?? "";
6966
6988
  setDropdownValue(initialDefaultValue);
6967
6989
  return initialDefaultValue;
6968
6990
  }, [options]);
6969
- (0, import_react20.useEffect)(() => {
6991
+ (0, import_react21.useEffect)(() => {
6970
6992
  if (value === void 0 || value === null) return;
6971
6993
  const newValue = value.toString();
6972
6994
  const country = countries.find(
@@ -7028,12 +7050,12 @@ InputFieldComponent.phoneNumber = (0, import_react20.forwardRef)(function PhoneN
7028
7050
  ] })
7029
7051
  ] });
7030
7052
  });
7031
- InputFieldComponent.date = (0, import_react20.forwardRef)(function Date2({ minDate, maxDate, ...props }, ref) {
7053
+ InputFieldComponent.date = (0, import_react21.forwardRef)(function Date2({ minDate, maxDate, ...props }, ref) {
7032
7054
  const theme2 = useTheme();
7033
- const holderRef = (0, import_react20.useRef)(null);
7055
+ const holderRef = (0, import_react21.useRef)(null);
7034
7056
  const isMobileIOS = isMobileDevice && getBrowser() === "safari";
7035
7057
  const { internalValue, setInternalValue, inputFieldProps, insideInputFieldComponentProps } = useComponentInputFieldDateProps(props, holderRef, isMobileIOS);
7036
- const onChange = (0, import_react20.useCallback)(
7058
+ const onChange = (0, import_react21.useCallback)(
7037
7059
  (date) => {
7038
7060
  inputFieldProps.onChangeValue?.(date ?? "");
7039
7061
  setInternalValue(date ?? "");
@@ -7067,14 +7089,14 @@ InputFieldComponent.date = (0, import_react20.forwardRef)(function Date2({ minDa
7067
7089
  }
7068
7090
  );
7069
7091
  });
7070
- InputFieldComponent.dateTime = (0, import_react20.forwardRef)(function DateTime({ minDate, maxDate, defaultDateAfterTimePick, defaultTimeAfterDatePick = "00:00", ...props }, ref) {
7092
+ InputFieldComponent.dateTime = (0, import_react21.forwardRef)(function DateTime({ minDate, maxDate, defaultDateAfterTimePick, defaultTimeAfterDatePick = "00:00", ...props }, ref) {
7071
7093
  const theme2 = useTheme();
7072
- const holderRef = (0, import_react20.useRef)(null);
7073
- const selectedHourRef = (0, import_react20.useRef)(null);
7074
- const selectedMinuteRef = (0, import_react20.useRef)(null);
7094
+ const holderRef = (0, import_react21.useRef)(null);
7095
+ const selectedHourRef = (0, import_react21.useRef)(null);
7096
+ const selectedMinuteRef = (0, import_react21.useRef)(null);
7075
7097
  const isMobileIOS = isMobileDevice && getBrowser() === "safari";
7076
7098
  const { internalValue, setInternalValue, inputFieldProps, insideInputFieldComponentProps, isOpen } = useComponentInputFieldDateProps(props, holderRef, isMobileIOS);
7077
- const onChange = (0, import_react20.useCallback)(
7099
+ const onChange = (0, import_react21.useCallback)(
7078
7100
  (date) => {
7079
7101
  const newValue = date ? `${date}T${internalValue?.toString().split("T")[1] ?? defaultTimeAfterDatePick}` : "";
7080
7102
  inputFieldProps.onChangeValue?.(newValue);
@@ -7082,7 +7104,7 @@ InputFieldComponent.dateTime = (0, import_react20.forwardRef)(function DateTime(
7082
7104
  },
7083
7105
  [internalValue, defaultTimeAfterDatePick, inputFieldProps.onChangeValue]
7084
7106
  );
7085
- const onClickHour = (0, import_react20.useCallback)(
7107
+ const onClickHour = (0, import_react21.useCallback)(
7086
7108
  (hour) => {
7087
7109
  const newTime = `${hour.toString().padStart(2, "0")}:${internalValue?.toString().split(":")[1] || "00"}`;
7088
7110
  const today = defaultDateAfterTimePick ?? `${(/* @__PURE__ */ new Date()).getFullYear()}-${((/* @__PURE__ */ new Date()).getMonth() + 1).toString().padStart(2, "0")}-${(/* @__PURE__ */ new Date()).getDate().toString().padStart(2, "0")}`;
@@ -7092,7 +7114,7 @@ InputFieldComponent.dateTime = (0, import_react20.forwardRef)(function DateTime(
7092
7114
  },
7093
7115
  [defaultDateAfterTimePick, internalValue, inputFieldProps.onChangeValue]
7094
7116
  );
7095
- const onClickMinute = (0, import_react20.useCallback)(
7117
+ const onClickMinute = (0, import_react21.useCallback)(
7096
7118
  (minute) => {
7097
7119
  const newTime = `${internalValue?.toString().split("T")?.[1]?.split(":")[0] || "00"}:${minute.toString().padStart(2, "0")}`;
7098
7120
  const today = defaultDateAfterTimePick ?? `${(/* @__PURE__ */ new Date()).getFullYear()}-${((/* @__PURE__ */ new Date()).getMonth() + 1).toString().padStart(2, "0")}-${(/* @__PURE__ */ new Date()).getDate().toString().padStart(2, "0")}`;
@@ -7102,7 +7124,7 @@ InputFieldComponent.dateTime = (0, import_react20.forwardRef)(function DateTime(
7102
7124
  },
7103
7125
  [defaultDateAfterTimePick, internalValue, inputFieldProps.onChangeValue]
7104
7126
  );
7105
- (0, import_react20.useEffect)(() => {
7127
+ (0, import_react21.useEffect)(() => {
7106
7128
  if (isOpen && selectedHourRef.current)
7107
7129
  selectedHourRef.current.scrollIntoView({ block: "nearest", behavior: "instant" });
7108
7130
  if (isOpen && selectedMinuteRef.current)
@@ -7221,14 +7243,14 @@ InputFieldComponent.dateTime = (0, import_react20.forwardRef)(function DateTime(
7221
7243
  }
7222
7244
  );
7223
7245
  });
7224
- InputFieldComponent.time = (0, import_react20.forwardRef)(function Time({ ...props }, ref) {
7246
+ InputFieldComponent.time = (0, import_react21.forwardRef)(function Time({ ...props }, ref) {
7225
7247
  const theme2 = useTheme();
7226
- const holderRef = (0, import_react20.useRef)(null);
7227
- const selectedHourRef = (0, import_react20.useRef)(null);
7228
- const selectedMinuteRef = (0, import_react20.useRef)(null);
7248
+ const holderRef = (0, import_react21.useRef)(null);
7249
+ const selectedHourRef = (0, import_react21.useRef)(null);
7250
+ const selectedMinuteRef = (0, import_react21.useRef)(null);
7229
7251
  const isMobileIOS = isMobileDevice && getBrowser() === "safari";
7230
7252
  const { internalValue, setInternalValue, inputFieldProps, insideInputFieldComponentProps, isOpen } = useComponentInputFieldDateProps(props, holderRef, isMobileIOS);
7231
- const onClickHour = (0, import_react20.useCallback)(
7253
+ const onClickHour = (0, import_react21.useCallback)(
7232
7254
  (hour) => {
7233
7255
  const value = `${hour.toString().padStart(2, "0")}:${internalValue?.toString().split(":")[1] || "00"}`;
7234
7256
  inputFieldProps.onChangeValue?.(value);
@@ -7236,7 +7258,7 @@ InputFieldComponent.time = (0, import_react20.forwardRef)(function Time({ ...pro
7236
7258
  },
7237
7259
  [internalValue, inputFieldProps.onChangeValue]
7238
7260
  );
7239
- const onClickMinute = (0, import_react20.useCallback)(
7261
+ const onClickMinute = (0, import_react21.useCallback)(
7240
7262
  (minute) => {
7241
7263
  const value = `${internalValue?.toString().split(":")[0] || "00"}:${minute.toString().padStart(2, "0")}`;
7242
7264
  inputFieldProps.onChangeValue?.(value);
@@ -7244,7 +7266,7 @@ InputFieldComponent.time = (0, import_react20.forwardRef)(function Time({ ...pro
7244
7266
  },
7245
7267
  [internalValue, inputFieldProps.onChangeValue]
7246
7268
  );
7247
- (0, import_react20.useEffect)(() => {
7269
+ (0, import_react21.useEffect)(() => {
7248
7270
  if (isOpen && selectedHourRef.current)
7249
7271
  selectedHourRef.current.scrollIntoView({ block: "nearest", behavior: "instant" });
7250
7272
  if (isOpen && selectedMinuteRef.current)
@@ -7343,16 +7365,16 @@ InputFieldComponent.time = (0, import_react20.forwardRef)(function Time({ ...pro
7343
7365
  }
7344
7366
  );
7345
7367
  });
7346
- InputFieldComponent.color = (0, import_react20.forwardRef)(function Color2({ value, onChangeValue, ...props }, ref) {
7347
- const [inputFieldValue, setInputFieldValue] = (0, import_react20.useState)(value ?? "#000000");
7348
- const onChangeValueElement = (0, import_react20.useCallback)(
7368
+ InputFieldComponent.color = (0, import_react21.forwardRef)(function Color2({ value, onChangeValue, ...props }, ref) {
7369
+ const [inputFieldValue, setInputFieldValue] = (0, import_react21.useState)(value ?? "#000000");
7370
+ const onChangeValueElement = (0, import_react21.useCallback)(
7349
7371
  (value2) => {
7350
7372
  setInputFieldValue(value2);
7351
7373
  onChangeValue?.(value2);
7352
7374
  },
7353
7375
  [onChangeValue]
7354
7376
  );
7355
- (0, import_react20.useEffect)(() => {
7377
+ (0, import_react21.useEffect)(() => {
7356
7378
  setInputFieldValue(value);
7357
7379
  }, [value]);
7358
7380
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -7381,7 +7403,7 @@ InputFieldComponent.color = (0, import_react20.forwardRef)(function Color2({ val
7381
7403
  }
7382
7404
  );
7383
7405
  });
7384
- var InputField2 = (0, import_react20.memo)(InputFieldComponent);
7406
+ var InputField2 = (0, import_react21.memo)(InputFieldComponent);
7385
7407
  InputField2.multiline = InputFieldComponent.multiline;
7386
7408
  InputField2.email = InputFieldComponent.email;
7387
7409
  InputField2.password = InputFieldComponent.password;
@@ -7394,7 +7416,7 @@ InputField2.color = InputFieldComponent.color;
7394
7416
  var InputField_default = InputField2;
7395
7417
 
7396
7418
  // src/components/ToggleInput.tsx
7397
- var import_react21 = require("react");
7419
+ var import_react22 = require("react");
7398
7420
  var import_styled_components12 = __toESM(require("styled-components"));
7399
7421
  var import_jsx_runtime19 = require("react/jsx-runtime");
7400
7422
  var componentSize = 26;
@@ -7489,7 +7511,7 @@ var SwitchElement = import_styled_components12.default.div.withConfig({
7489
7511
  ${(props) => props.hoverStyle}
7490
7512
  }
7491
7513
  `;
7492
- var ToggleInputComponent = (0, import_react21.forwardRef)(function ToggleInput({
7514
+ var ToggleInputComponent = (0, import_react22.forwardRef)(function ToggleInput({
7493
7515
  label,
7494
7516
  labelColor,
7495
7517
  text,
@@ -7505,14 +7527,14 @@ var ToggleInputComponent = (0, import_react21.forwardRef)(function ToggleInput({
7505
7527
  ...props
7506
7528
  }, ref) {
7507
7529
  const theme2 = useTheme();
7508
- const internalId = (0, import_react21.useId)();
7530
+ const internalId = (0, import_react22.useId)();
7509
7531
  const styledComponentStyles = useStyledComponentStyles(props, theme2, true);
7510
7532
  const styledComponentStylesWithExcluded = useComponentPropsWithExcludedStyle(props);
7511
7533
  const dataProps = useComponentPropsWithPrefix(props, "data");
7512
7534
  const ariaProps = useComponentPropsWithPrefix(props, "aria");
7513
7535
  const restProps = useComponentPropsWithoutStyle(props);
7514
- const [internalChecked, setInternalChecked] = (0, import_react21.useState)(false);
7515
- const onChangeElement = (0, import_react21.useCallback)(
7536
+ const [internalChecked, setInternalChecked] = (0, import_react22.useState)(false);
7537
+ const onChangeElement = (0, import_react22.useCallback)(
7516
7538
  (event) => {
7517
7539
  const newIsChecked = event.target.checked;
7518
7540
  if (controlledChecked === void 0) setInternalChecked(newIsChecked);
@@ -7521,7 +7543,7 @@ var ToggleInputComponent = (0, import_react21.forwardRef)(function ToggleInput({
7521
7543
  [onChange, controlledChecked, value]
7522
7544
  );
7523
7545
  const checked = controlledChecked ?? internalChecked;
7524
- const onClickText = (0, import_react21.useCallback)(() => {
7546
+ const onClickText = (0, import_react22.useCallback)(() => {
7525
7547
  const newIsChecked = !checked;
7526
7548
  if (controlledChecked === void 0) setInternalChecked(newIsChecked);
7527
7549
  onChange?.(newIsChecked, value);
@@ -7602,13 +7624,13 @@ var ToggleInputComponent = (0, import_react21.forwardRef)(function ToggleInput({
7602
7624
  ] });
7603
7625
  });
7604
7626
  var ToggleInput_default = {
7605
- checkbox: (0, import_react21.forwardRef)(function Checkbox(props, ref) {
7627
+ checkbox: (0, import_react22.forwardRef)(function Checkbox(props, ref) {
7606
7628
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToggleInputComponent, { type: "checkbox", ref, ...props });
7607
7629
  }),
7608
- radiobutton: (0, import_react21.forwardRef)(function RadioButton(props, ref) {
7630
+ radiobutton: (0, import_react22.forwardRef)(function RadioButton(props, ref) {
7609
7631
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToggleInputComponent, { type: "radio", ref, ...props });
7610
7632
  }),
7611
- switch: (0, import_react21.forwardRef)(function Switch({
7633
+ switch: (0, import_react22.forwardRef)(function Switch({
7612
7634
  label,
7613
7635
  labelColor,
7614
7636
  errorText,
@@ -7622,7 +7644,7 @@ var ToggleInput_default = {
7622
7644
  ...props
7623
7645
  }, ref) {
7624
7646
  const theme2 = useTheme();
7625
- const internalId = (0, import_react21.useId)();
7647
+ const internalId = (0, import_react22.useId)();
7626
7648
  const styledComponentStyles = useStyledComponentStyles(props, theme2, true);
7627
7649
  const styledComponentStylesWithExcluded = useComponentPropsWithExcludedStyle(props);
7628
7650
  const dataProps = useComponentPropsWithPrefix(props, "data");
@@ -7631,7 +7653,7 @@ var ToggleInput_default = {
7631
7653
  const [internalChecked, setInternalChecked] = useBooleanState();
7632
7654
  const [isMouseDown, setIsMouseDown] = useBooleanState();
7633
7655
  const checked = controlledChecked ?? internalChecked;
7634
- const onClickElement = (0, import_react21.useCallback)(() => {
7656
+ const onClickElement = (0, import_react22.useCallback)(() => {
7635
7657
  if (disabled) return;
7636
7658
  const newIsChecked = !checked;
7637
7659
  if (controlledChecked === void 0) setInternalChecked.setState(newIsChecked);
@@ -7688,9 +7710,9 @@ var ToggleInput_default = {
7688
7710
  };
7689
7711
 
7690
7712
  // src/components/Form.tsx
7691
- var import_react22 = require("react");
7713
+ var import_react23 = require("react");
7692
7714
  var import_jsx_runtime20 = require("react/jsx-runtime");
7693
- var FormComponent = (0, import_react22.forwardRef)(function Form({
7715
+ var FormComponent = (0, import_react23.forwardRef)(function Form({
7694
7716
  form,
7695
7717
  name,
7696
7718
  submitButtonText,
@@ -7714,7 +7736,7 @@ var FormComponent = (0, import_react22.forwardRef)(function Form({
7714
7736
  ...props
7715
7737
  }, ref) {
7716
7738
  const theme2 = useTheme();
7717
- const submitButtonIsDisabledInternal = (0, import_react22.useMemo)(() => {
7739
+ const submitButtonIsDisabledInternal = (0, import_react23.useMemo)(() => {
7718
7740
  if (!form || !form.requiredFields) return false;
7719
7741
  return Object.entries(form.values).some(
7720
7742
  ([key, value]) => form.requiredFields?.includes(key) && (value === void 0 || value === null || value?.toString().trim() === "")
@@ -7723,9 +7745,9 @@ var FormComponent = (0, import_react22.forwardRef)(function Form({
7723
7745
  const SubmitButtonTag = isDestructive ? Button_default.destructive : Button_default;
7724
7746
  const submitButtonIsDisabledFinal = submitButtonIsDisabled || submitButtonIsDisabledInternal;
7725
7747
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Div_default, { width: "100%", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("form", { name, onSubmit: onSubmit ?? form?.onSubmit, ref, children: [
7726
- gap !== void 0 || withDividers ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Div_default.column, { gap: gap ?? (withDividers ? theme2.styles.space : theme2.styles.gap), children: withDividers ? import_react22.Children.toArray(children).map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react22.Fragment, { children: [
7748
+ gap !== void 0 || withDividers ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Div_default.column, { gap: gap ?? (withDividers ? theme2.styles.space : theme2.styles.gap), children: withDividers ? import_react23.Children.toArray(children).map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react23.Fragment, { children: [
7727
7749
  child,
7728
- index < import_react22.Children.toArray(children).length - 1 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Divider_default.horizontal, {})
7750
+ index < import_react23.Children.toArray(children).length - 1 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Divider_default.horizontal, {})
7729
7751
  ] }, index)) : children }) : children,
7730
7752
  submitButtonText && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
7731
7753
  Div_default.row,
@@ -7763,13 +7785,13 @@ var FormComponent = (0, import_react22.forwardRef)(function Form({
7763
7785
  )
7764
7786
  ] }) });
7765
7787
  });
7766
- var Form2 = (0, import_react22.memo)(FormComponent);
7788
+ var Form2 = (0, import_react23.memo)(FormComponent);
7767
7789
  var Form_default = Form2;
7768
7790
 
7769
7791
  // src/components/FormRow.tsx
7770
- var import_react23 = require("react");
7792
+ var import_react24 = require("react");
7771
7793
  var import_jsx_runtime21 = require("react/jsx-runtime");
7772
- var FormRowComponent = (0, import_react23.forwardRef)(function FormRow({ oneItemOnly, noBreakingPoint, asColumn, gap, children, ...props }, ref) {
7794
+ var FormRowComponent = (0, import_react24.forwardRef)(function FormRow({ oneItemOnly, noBreakingPoint, asColumn, gap, children, ...props }, ref) {
7773
7795
  const theme2 = useTheme();
7774
7796
  const mediaQuery = useMediaQuery();
7775
7797
  const breakingPoint = asColumn ?? (!noBreakingPoint ? mediaQuery.size900 : false);
@@ -7779,7 +7801,7 @@ var FormRowComponent = (0, import_react23.forwardRef)(function FormRow({ oneItem
7779
7801
  oneItemOnly && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Div_default, { width: "100%" })
7780
7802
  ] });
7781
7803
  });
7782
- FormRowComponent.withTitle = (0, import_react23.forwardRef)(function WithTitle({
7804
+ FormRowComponent.withTitle = (0, import_react24.forwardRef)(function WithTitle({
7783
7805
  icon,
7784
7806
  title,
7785
7807
  titleAs = "h3",
@@ -7846,12 +7868,12 @@ FormRowComponent.withTitle = (0, import_react23.forwardRef)(function WithTitle({
7846
7868
  )
7847
7869
  ] });
7848
7870
  });
7849
- var FormRow2 = (0, import_react23.memo)(FormRowComponent);
7871
+ var FormRow2 = (0, import_react24.memo)(FormRowComponent);
7850
7872
  FormRow2.withTitle = FormRowComponent.withTitle;
7851
7873
  var FormRow_default = FormRow2;
7852
7874
 
7853
7875
  // src/components/ColorThemeSwitch.tsx
7854
- var import_react24 = require("react");
7876
+ var import_react25 = require("react");
7855
7877
  var import_jsx_runtime22 = require("react/jsx-runtime");
7856
7878
  var ColorThemeSwitchComponent = function ColorThemeSwitch({
7857
7879
  withMoon,
@@ -7863,10 +7885,10 @@ var ColorThemeSwitchComponent = function ColorThemeSwitch({
7863
7885
  darkMode: localStorage.getItem("theme") === "dark"
7864
7886
  }
7865
7887
  });
7866
- (0, import_react24.useEffect)(() => {
7888
+ (0, import_react25.useEffect)(() => {
7867
7889
  colorThemeControls.toggleTheme(form.values.darkMode ? "dark" : "light");
7868
7890
  }, [form.values.darkMode]);
7869
- (0, import_react24.useEffect)(() => {
7891
+ (0, import_react25.useEffect)(() => {
7870
7892
  const html = document.querySelector("html");
7871
7893
  if (!html) return;
7872
7894
  const observer = new MutationObserver((mutations) => {
@@ -7900,16 +7922,16 @@ ColorThemeSwitchComponent.withText = function WithText({ withMoon, className, ..
7900
7922
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text_default, { children: "Dark" })
7901
7923
  ] });
7902
7924
  };
7903
- var ColorThemeSwitch2 = (0, import_react24.memo)(ColorThemeSwitchComponent);
7925
+ var ColorThemeSwitch2 = (0, import_react25.memo)(ColorThemeSwitchComponent);
7904
7926
  ColorThemeSwitch2.withText = ColorThemeSwitchComponent.withText;
7905
7927
  var ColorThemeSwitch_default = ColorThemeSwitch2;
7906
7928
 
7907
7929
  // src/components/Table.tsx
7908
- var import_react26 = require("react");
7930
+ var import_react27 = require("react");
7909
7931
  var import_styled_components13 = __toESM(require("styled-components"));
7910
7932
 
7911
7933
  // src/components/Pagination.tsx
7912
- var import_react25 = require("react");
7934
+ var import_react26 = require("react");
7913
7935
  var import_jsx_runtime23 = require("react/jsx-runtime");
7914
7936
  var PaginationComponent = function Pagination({
7915
7937
  currentPage = 1,
@@ -7923,19 +7945,19 @@ var PaginationComponent = function Pagination({
7923
7945
  }) {
7924
7946
  const theme2 = useTheme();
7925
7947
  const mediaQuery = useMediaQuery();
7926
- const [currentPageInternal, setCurrentPage] = (0, import_react25.useState)(currentPage);
7948
+ const [currentPageInternal, setCurrentPage] = (0, import_react26.useState)(currentPage);
7927
7949
  const pageCountInternal = pageCount ?? (itemsPerPage !== void 0 ? Math.ceil(itemsLength / itemsPerPage) : 1);
7928
- const onClickPreviousPageElement = (0, import_react25.useCallback)(() => {
7950
+ const onClickPreviousPageElement = (0, import_react26.useCallback)(() => {
7929
7951
  const newPage = currentPageInternal <= 1 ? 1 : currentPageInternal - 1;
7930
7952
  setCurrentPage(newPage);
7931
7953
  onClickPreviousPage?.(newPage);
7932
7954
  }, [currentPageInternal, onClickPreviousPage]);
7933
- const onClickNextPageElement = (0, import_react25.useCallback)(() => {
7955
+ const onClickNextPageElement = (0, import_react26.useCallback)(() => {
7934
7956
  const newPage = currentPageInternal >= pageCountInternal ? pageCountInternal : currentPageInternal + 1;
7935
7957
  setCurrentPage(newPage);
7936
7958
  onClickNextPage?.(newPage);
7937
7959
  }, [currentPageInternal, pageCountInternal, onClickNextPage]);
7938
- const paginationItems = (0, import_react25.useMemo)(() => {
7960
+ const paginationItems = (0, import_react26.useMemo)(() => {
7939
7961
  const halfRange = Math.floor(maximumVisiblePages2 / 2);
7940
7962
  let startPage = Math.max(1, currentPageInternal - halfRange);
7941
7963
  let endPage = Math.min(pageCountInternal, currentPageInternal + halfRange);
@@ -7950,10 +7972,10 @@ var PaginationComponent = function Pagination({
7950
7972
  (_, index) => startPage + index
7951
7973
  );
7952
7974
  }, [pageCountInternal, currentPageInternal]);
7953
- (0, import_react25.useEffect)(() => {
7975
+ (0, import_react26.useEffect)(() => {
7954
7976
  onChangePage?.(currentPageInternal);
7955
7977
  }, [currentPageInternal, onChangePage]);
7956
- (0, import_react25.useEffect)(() => {
7978
+ (0, import_react26.useEffect)(() => {
7957
7979
  setCurrentPage(currentPage);
7958
7980
  }, [currentPage]);
7959
7981
  const mobileFooterBreakingPoint = mediaQuery.size700 && pageCountInternal > maximumVisiblePages2 / 1.4;
@@ -8018,7 +8040,7 @@ var PaginationComponent = function Pagination({
8018
8040
  )
8019
8041
  ] });
8020
8042
  };
8021
- var Pagination2 = (0, import_react25.memo)(PaginationComponent);
8043
+ var Pagination2 = (0, import_react26.memo)(PaginationComponent);
8022
8044
  var Pagination_default = Pagination2;
8023
8045
 
8024
8046
  // src/components/Table.tsx
@@ -8167,7 +8189,7 @@ var filterPresetsText = {
8167
8189
  nextMonth: "Next month",
8168
8190
  nextYear: "Next year"
8169
8191
  };
8170
- var TableComponent = (0, import_react26.forwardRef)(function Table({
8192
+ var TableComponent = (0, import_react27.forwardRef)(function Table({
8171
8193
  name,
8172
8194
  columns,
8173
8195
  data,
@@ -8194,14 +8216,14 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8194
8216
  const theme2 = useTheme();
8195
8217
  const mediaQuery = useMediaQuery();
8196
8218
  const { colorTheme } = useBetterHtmlContextInternal();
8197
- const filterModalRef = (0, import_react26.useRef)(null);
8198
- const readyColumns = (0, import_react26.useMemo)(() => columns.filter((column) => !column.hidden), [columns]);
8199
- const columnsRef = (0, import_react26.useRef)(readyColumns);
8219
+ const filterModalRef = (0, import_react27.useRef)(null);
8220
+ const readyColumns = (0, import_react27.useMemo)(() => columns.filter((column) => !column.hidden), [columns]);
8221
+ const columnsRef = (0, import_react27.useRef)(readyColumns);
8200
8222
  columnsRef.current = readyColumns;
8201
- const [checkedItems, setCheckedItems] = (0, import_react26.useState)([]);
8202
- const [expandedRows, setExpandedRows] = (0, import_react26.useState)([]);
8203
- const [currentPage, setCurrentPage] = (0, import_react26.useState)(1);
8204
- const [filterData, setFilterData] = (0, import_react26.useState)(() => {
8223
+ const [checkedItems, setCheckedItems] = (0, import_react27.useState)([]);
8224
+ const [expandedRows, setExpandedRows] = (0, import_react27.useState)([]);
8225
+ const [currentPage, setCurrentPage] = (0, import_react27.useState)(1);
8226
+ const [filterData, setFilterData] = (0, import_react27.useState)(() => {
8205
8227
  if (!memoizeFilters || !name) return defaultFilterData ?? {};
8206
8228
  const localStorageData = JSON.parse(localStorage.getItem(`react-better-html-table-filters-${name}`) || "{}");
8207
8229
  const timestamp = localStorageData.timestamp;
@@ -8210,8 +8232,8 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8210
8232
  if (timeDiff > memoizeFiltersLifespan) return defaultFilterData ?? {};
8211
8233
  return data2;
8212
8234
  });
8213
- const [openedFilterColumnIndex, setOpenedFilterColumnIndex] = (0, import_react26.useState)();
8214
- const [filterListSelectedItems, setFilterListSelectedItems] = (0, import_react26.useState)();
8235
+ const [openedFilterColumnIndex, setOpenedFilterColumnIndex] = (0, import_react27.useState)();
8236
+ const [filterListSelectedItems, setFilterListSelectedItems] = (0, import_react27.useState)();
8215
8237
  const openedFilterData = openedFilterColumnIndex !== void 0 ? filterData[openedFilterColumnIndex] : void 0;
8216
8238
  const openedFilterColumn = openedFilterColumnIndex !== void 0 ? readyColumns[openedFilterColumnIndex] : void 0;
8217
8239
  const filterForm = useForm({
@@ -8241,8 +8263,8 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8241
8263
  filterModalRef.current?.close();
8242
8264
  }
8243
8265
  });
8244
- const expandColumn = (0, import_react26.useMemo)(() => readyColumns.find((column) => column.type === "expand"), [readyColumns]);
8245
- const renderCellContent = (0, import_react26.useCallback)(
8266
+ const expandColumn = (0, import_react27.useMemo)(() => readyColumns.find((column) => column.type === "expand"), [readyColumns]);
8267
+ const renderCellContent = (0, import_react27.useCallback)(
8246
8268
  (column, item, itemIndex) => {
8247
8269
  switch (column.type) {
8248
8270
  case "text": {
@@ -8297,7 +8319,7 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8297
8319
  },
8298
8320
  [theme2, checkedItems, expandedRows]
8299
8321
  );
8300
- const onClickRowElement = (0, import_react26.useCallback)(
8322
+ const onClickRowElement = (0, import_react27.useCallback)(
8301
8323
  (item, index) => {
8302
8324
  if (expandColumn) {
8303
8325
  setExpandedRows((oldValue) => {
@@ -8314,14 +8336,14 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8314
8336
  },
8315
8337
  [onClickRow, expandColumn]
8316
8338
  );
8317
- const onClickAllCheckboxesElement = (0, import_react26.useCallback)(
8339
+ const onClickAllCheckboxesElement = (0, import_react27.useCallback)(
8318
8340
  (checked) => {
8319
8341
  onClickAllCheckboxes?.(checked);
8320
8342
  setCheckedItems(data.map(() => checked));
8321
8343
  },
8322
8344
  [onClickAllCheckboxes, data]
8323
8345
  );
8324
- const onClickFilterButton = (0, import_react26.useCallback)(
8346
+ const onClickFilterButton = (0, import_react27.useCallback)(
8325
8347
  (columnIndex) => {
8326
8348
  const thisFilterData = filterData[columnIndex];
8327
8349
  if (thisFilterData?.type === "number" || thisFilterData?.type === "date" || thisFilterData?.type === "date-time") {
@@ -8337,12 +8359,12 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8337
8359
  },
8338
8360
  [filterData]
8339
8361
  );
8340
- const onCloseFilterModal = (0, import_react26.useCallback)(() => {
8362
+ const onCloseFilterModal = (0, import_react27.useCallback)(() => {
8341
8363
  setTimeout(() => setOpenedFilterColumnIndex(void 0), 0.2 * 1e3);
8342
8364
  setFilterListSelectedItems(void 0);
8343
8365
  filterForm.reset();
8344
8366
  }, []);
8345
- const onClickCancelFormFilter = (0, import_react26.useCallback)(() => {
8367
+ const onClickCancelFormFilter = (0, import_react27.useCallback)(() => {
8346
8368
  if (openedFilterColumnIndex === void 0) return;
8347
8369
  setFilterData(
8348
8370
  (oldValue) => Object.entries({
@@ -8355,7 +8377,7 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8355
8377
  );
8356
8378
  filterModalRef.current?.close();
8357
8379
  }, [openedFilterColumnIndex]);
8358
- const onClickFilterListItem = (0, import_react26.useCallback)(
8380
+ const onClickFilterListItem = (0, import_react27.useCallback)(
8359
8381
  (value) => setFilterListSelectedItems((oldValue) => {
8360
8382
  if (!oldValue) return [value];
8361
8383
  if (oldValue.includes(value)) return oldValue.filter((item) => item !== value);
@@ -8363,7 +8385,7 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8363
8385
  }),
8364
8386
  []
8365
8387
  );
8366
- const onClickFilterPreset = (0, import_react26.useCallback)(
8388
+ const onClickFilterPreset = (0, import_react27.useCallback)(
8367
8389
  (preset) => {
8368
8390
  const getValueForDate = (date) => {
8369
8391
  if (openedFilterColumn?.filter === "date") return date.toISOString().split("T")[0];
@@ -8448,7 +8470,7 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8448
8470
  },
8449
8471
  [openedFilterColumn]
8450
8472
  );
8451
- const renderExpandedRow = (0, import_react26.useCallback)(
8473
+ const renderExpandedRow = (0, import_react27.useCallback)(
8452
8474
  (...props2) => {
8453
8475
  const expandColumn2 = readyColumns.find((column) => column.type === "expand");
8454
8476
  if (!expandColumn2) return;
@@ -8456,7 +8478,7 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8456
8478
  },
8457
8479
  [readyColumns]
8458
8480
  );
8459
- const dataAfterFilter = (0, import_react26.useMemo)(
8481
+ const dataAfterFilter = (0, import_react27.useMemo)(
8460
8482
  () => data.filter(
8461
8483
  (item) => Object.entries(filterData).every(([columnIndex, filter]) => {
8462
8484
  if (!filter) return true;
@@ -8477,7 +8499,7 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8477
8499
  if (filter.min !== void 0 && minDate && itemValue < minDate) return false;
8478
8500
  if (filter.max !== void 0 && maxDate && itemValue > maxDate) return false;
8479
8501
  } else if (column.filter === "list" && filter.type === "list") {
8480
- const itemValue = column.getValueForList?.(item).value ?? (column.type === "text" && column.keyName ? String(item[column.keyName]) : "");
8502
+ const itemValue = column.getItemValue?.(item) ?? (column.type === "text" && column.keyName ? String(item[column.keyName]) : "");
8481
8503
  if (!filter.list?.includes(itemValue)) return false;
8482
8504
  }
8483
8505
  return true;
@@ -8485,57 +8507,42 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8485
8507
  ),
8486
8508
  [data, filterData]
8487
8509
  );
8488
- const dataAfterPagination = (0, import_react26.useMemo)(() => {
8510
+ const dataAfterPagination = (0, import_react27.useMemo)(() => {
8489
8511
  if (pageSize === void 0) return dataAfterFilter;
8490
8512
  if (pageCount !== void 0) return dataAfterFilter;
8491
8513
  const pageStartItemIndex = (currentPage - 1) * (pageSize ?? 0);
8492
8514
  const pageEndItemIndex = pageStartItemIndex + (pageSize ?? 0);
8493
8515
  return dataAfterFilter.slice(pageStartItemIndex, pageEndItemIndex);
8494
8516
  }, [dataAfterFilter, pageSize, currentPage, pageCount]);
8495
- const everythingIsChecked = (0, import_react26.useMemo)(() => {
8517
+ const everythingIsChecked = (0, import_react27.useMemo)(() => {
8496
8518
  return data.length > 0 && checkedItems.every((checked) => checked) && checkedItems.length === data.length;
8497
8519
  }, [data, checkedItems]);
8498
- const possibleFilterListValues = (0, import_react26.useMemo)(() => {
8499
- if (!openedFilterColumn) return [];
8500
- return data.reduce((previousValue, currentValue) => {
8501
- const valueFromList = openedFilterColumn.filter === "list" && openedFilterColumn.getValueForList ? openedFilterColumn.getValueForList(currentValue) : void 0;
8502
- const value = valueFromList ? valueFromList.value : openedFilterColumn.type === "text" && openedFilterColumn.keyName ? String(currentValue[openedFilterColumn.keyName]) : void 0;
8503
- const label = valueFromList ? valueFromList.label : value;
8504
- let searchPassed = openedFilterColumn.filter === "list" && openedFilterColumn.withSearch ? false : true;
8505
- if (openedFilterColumn.filter === "list" && openedFilterColumn.withSearch) {
8506
- searchPassed = label?.toString().toLowerCase().includes(filterForm.values.search.toLowerCase()) ?? false;
8507
- }
8508
- if (value !== void 0 && value !== null && value !== "" && searchPassed) {
8509
- if (previousValue.some((item) => item.value === value)) {
8510
- previousValue = previousValue.map(
8511
- (item) => item.value === value ? {
8512
- ...item,
8513
- count: item.count + 1
8514
- } : item
8515
- );
8516
- } else
8517
- previousValue.push({
8518
- label: label?.toString() ?? "",
8519
- value,
8520
- count: 1
8521
- });
8522
- }
8523
- return previousValue;
8524
- }, []);
8520
+ const possibleFilterListValues = (0, import_react27.useMemo)(() => {
8521
+ if (!openedFilterColumn || openedFilterColumn.filter !== "list") return [];
8522
+ return openedFilterColumn.list.map((item) => ({
8523
+ ...item,
8524
+ count: data.reduce((previousValue, currentValue) => {
8525
+ const value = openedFilterColumn.getItemValue?.(currentValue) ?? (openedFilterColumn.type === "text" && openedFilterColumn.keyName ? String(currentValue[openedFilterColumn.keyName]) : "");
8526
+ return previousValue + (item.value === value ? 1 : 0);
8527
+ }, 0)
8528
+ })).reduce(
8529
+ (previousValue, currentValue) => !previousValue.some((item) => item.value === currentValue.value) ? [...previousValue, currentValue] : previousValue,
8530
+ []
8531
+ );
8525
8532
  }, [data, openedFilterColumn, filterForm.values.search]);
8526
8533
  const pageCountInternal = pageCount ?? (pageSize !== void 0 ? Math.ceil(dataAfterFilter.length / pageSize) : 1);
8527
- const onClickSelectAllFilterListItems = (0, import_react26.useCallback)(
8534
+ const onClickSelectAllFilterListItems = (0, import_react27.useCallback)(
8528
8535
  () => setFilterListSelectedItems(possibleFilterListValues.map((item) => item.value)),
8529
8536
  [possibleFilterListValues]
8530
8537
  );
8531
- const onClickDeselectAllFilterListItems = (0, import_react26.useCallback)(() => setFilterListSelectedItems([]), []);
8532
- (0, import_react26.useEffect)(() => {
8538
+ const onClickDeselectAllFilterListItems = (0, import_react27.useCallback)(() => setFilterListSelectedItems([]), []);
8539
+ (0, import_react27.useEffect)(() => {
8533
8540
  onChangePage?.(currentPage);
8534
8541
  }, [onChangePage, currentPage]);
8535
- (0, import_react26.useEffect)(() => {
8542
+ (0, import_react27.useEffect)(() => {
8536
8543
  onChangeFilter?.(filterData);
8537
8544
  }, [onChangeFilter, filterData]);
8538
- (0, import_react26.useEffect)(() => {
8545
+ (0, import_react27.useEffect)(() => {
8539
8546
  if (!memoizeFilters) return;
8540
8547
  if (!name) return;
8541
8548
  localStorage.setItem(
@@ -8546,10 +8553,10 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8546
8553
  })
8547
8554
  );
8548
8555
  }, [memoizeFilters, name, filterData]);
8549
- (0, import_react26.useEffect)(() => {
8556
+ (0, import_react27.useEffect)(() => {
8550
8557
  onChangeFilterDataValue?.(dataAfterFilter);
8551
8558
  }, [onChangeFilterDataValue, dataAfterFilter]);
8552
- (0, import_react26.useImperativeHandle)(
8559
+ (0, import_react27.useImperativeHandle)(
8553
8560
  ref,
8554
8561
  () => {
8555
8562
  return {
@@ -8621,28 +8628,31 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8621
8628
  },
8622
8629
  column.type + column.label + index
8623
8630
  )) }) }),
8624
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tbody", { children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "withoutHover", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { className: "noData", colSpan: readyColumns.length, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Loader_default.box, {}) }) }) : dataAfterPagination.length > 0 ? dataAfterPagination.map((item, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react26.Fragment, { children: [
8625
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
8626
- "tr",
8627
- {
8628
- className: isInsideTableExpandRow && onClickRow === void 0 && expandColumn === void 0 ? "withoutHover" : void 0,
8629
- style: getRowStyle?.(item, rowIndex),
8630
- onClick: () => onClickRowElement(item, rowIndex),
8631
- children: readyColumns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
8632
- TdStyledComponent,
8633
- {
8634
- textAlign: column.align,
8635
- onClick: (event) => {
8636
- if (column.clickStopPropagation) event.stopPropagation();
8631
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tbody", { children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "withoutHover", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { className: "noData", colSpan: readyColumns.length, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Loader_default.box, {}) }) }) : dataAfterPagination.length > 0 ? dataAfterPagination.map((item, rowIndex) => {
8632
+ const realRowIndex = rowIndex + (pageSize ? (currentPage - 1) * pageSize : 0);
8633
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react27.Fragment, { children: [
8634
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
8635
+ "tr",
8636
+ {
8637
+ className: isInsideTableExpandRow && onClickRow === void 0 && expandColumn === void 0 ? "withoutHover" : void 0,
8638
+ style: getRowStyle?.(item, realRowIndex),
8639
+ onClick: () => onClickRowElement(item, realRowIndex),
8640
+ children: readyColumns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
8641
+ TdStyledComponent,
8642
+ {
8643
+ textAlign: column.align,
8644
+ onClick: (event) => {
8645
+ if (column.clickStopPropagation) event.stopPropagation();
8646
+ },
8647
+ children: renderCellContent(column, item, realRowIndex)
8637
8648
  },
8638
- children: renderCellContent(column, item, rowIndex)
8639
- },
8640
- column.type + column.label + colIndex
8641
- ))
8642
- }
8643
- ),
8644
- expandedRows[rowIndex] && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "withoutHover isExpandRow", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { colSpan: readyColumns.length, children: renderExpandedRow(item, rowIndex) }) })
8645
- ] }, JSON.stringify(item) + rowIndex)) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "withoutHover", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { className: "noData", colSpan: readyColumns.length, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text_default.unknown, { children: noDataItemsMessage }) }) }) }),
8649
+ column.type + column.label + colIndex
8650
+ ))
8651
+ }
8652
+ ),
8653
+ expandedRows[realRowIndex] && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "withoutHover isExpandRow", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { colSpan: readyColumns.length, children: renderExpandedRow(item, realRowIndex) }) })
8654
+ ] }, JSON.stringify(item) + realRowIndex);
8655
+ }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "withoutHover", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { className: "noData", colSpan: readyColumns.length, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text_default.unknown, { children: noDataItemsMessage }) }) }) }),
8646
8656
  withFooter && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tfoot", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("tr", { className: "isFooter", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("td", { colSpan: readyColumns.length, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
8647
8657
  Div_default.column,
8648
8658
  {
@@ -8811,11 +8821,11 @@ var TableComponent = (0, import_react26.forwardRef)(function Table({
8811
8821
  )
8812
8822
  ] });
8813
8823
  });
8814
- var Table2 = (0, import_react26.memo)(TableComponent);
8824
+ var Table2 = (0, import_react27.memo)(TableComponent);
8815
8825
  var Table_default = Table2;
8816
8826
 
8817
8827
  // src/components/Tooltip.tsx
8818
- var import_react27 = require("react");
8828
+ var import_react28 = require("react");
8819
8829
  var import_styled_components14 = __toESM(require("styled-components"));
8820
8830
  var import_jsx_runtime25 = require("react/jsx-runtime");
8821
8831
  var tooltipContainerStyle = (props) => ({
@@ -8919,10 +8929,10 @@ var arrowStyle = (props, borderWidth) => ({
8919
8929
  transform: !borderWidth && props.align === "center" ? "translateY(-50%);" : void 0
8920
8930
  }
8921
8931
  });
8922
- var Arrow = (0, import_react27.memo)(function Arrow2(props) {
8932
+ var Arrow = (0, import_react28.memo)(function Arrow2(props) {
8923
8933
  const theme2 = useTheme();
8924
8934
  const { position, size } = props;
8925
- const outerProps = (0, import_react27.useMemo)(
8935
+ const outerProps = (0, import_react28.useMemo)(
8926
8936
  () => ({
8927
8937
  ...props,
8928
8938
  color: theme2.colors.border
@@ -8951,7 +8961,7 @@ var Arrow = (0, import_react27.memo)(function Arrow2(props) {
8951
8961
  }
8952
8962
  );
8953
8963
  });
8954
- var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
8964
+ var TooltipComponent = (0, import_react28.forwardRef)(function Tooltip({
8955
8965
  position = "bottom",
8956
8966
  trigger = "hover",
8957
8967
  align = "center",
@@ -8972,17 +8982,17 @@ var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
8972
8982
  children
8973
8983
  }, ref) {
8974
8984
  const theme2 = useTheme();
8975
- const triggerHolderRef = (0, import_react27.useRef)(null);
8976
- const contentRef = (0, import_react27.useRef)(null);
8977
- const tooltipContainerRef = (0, import_react27.useRef)(null);
8978
- const closeTimerRef = (0, import_react27.useRef)(void 0);
8979
- const [isOpen, setIsOpen] = (0, import_react27.useState)(false);
8980
- const [isOpenLate, setIsOpenLate] = (0, import_react27.useState)(false);
8985
+ const triggerHolderRef = (0, import_react28.useRef)(null);
8986
+ const contentRef = (0, import_react28.useRef)(null);
8987
+ const tooltipContainerRef = (0, import_react28.useRef)(null);
8988
+ const closeTimerRef = (0, import_react28.useRef)(void 0);
8989
+ const [isOpen, setIsOpen] = (0, import_react28.useState)(false);
8990
+ const [isOpenLate, setIsOpenLate] = (0, import_react28.useState)(false);
8981
8991
  const arrowSize = withArrow ? theme2.styles.gap : 0;
8982
8992
  const gap = theme2.styles.gap / 2;
8983
8993
  const outsideScreenGap = theme2.styles.gap / 2;
8984
8994
  const totalGap = arrowSize + gap;
8985
- const openTooltip = (0, import_react27.useCallback)(() => {
8995
+ const openTooltip = (0, import_react28.useCallback)(() => {
8986
8996
  if (disabled) return;
8987
8997
  if (closeTimerRef.current) clearTimeout(closeTimerRef.current);
8988
8998
  setIsOpen(true);
@@ -9007,18 +9017,18 @@ var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
9007
9017
  }, 1);
9008
9018
  onOpen?.();
9009
9019
  }, [disabled, onOpen, outsideScreenGap, totalGap]);
9010
- const closeTooltip = (0, import_react27.useCallback)(() => {
9020
+ const closeTooltip = (0, import_react28.useCallback)(() => {
9011
9021
  setIsOpen(false);
9012
9022
  closeTimerRef.current = setTimeout(() => setIsOpenLate(false), 300);
9013
9023
  onClose?.();
9014
9024
  }, [onClose]);
9015
- const onMouseEnter = (0, import_react27.useCallback)(() => {
9025
+ const onMouseEnter = (0, import_react28.useCallback)(() => {
9016
9026
  if (trigger === "hover") openTooltip();
9017
9027
  }, [trigger, openTooltip]);
9018
- const onMouseLeave = (0, import_react27.useCallback)(() => {
9028
+ const onMouseLeave = (0, import_react28.useCallback)(() => {
9019
9029
  if (trigger === "hover") closeTooltip();
9020
9030
  }, [trigger, closeTooltip]);
9021
- const onClickHolder = (0, import_react27.useCallback)(
9031
+ const onClickHolder = (0, import_react28.useCallback)(
9022
9032
  (event) => {
9023
9033
  if (trigger === "click") {
9024
9034
  if (!isOpen) openTooltip();
@@ -9027,7 +9037,7 @@ var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
9027
9037
  },
9028
9038
  [trigger, openTooltip, isOpen, closeTooltip]
9029
9039
  );
9030
- const onClickOutside = (0, import_react27.useCallback)(
9040
+ const onClickOutside = (0, import_react28.useCallback)(
9031
9041
  (event) => {
9032
9042
  if (!isOpen) return;
9033
9043
  if (trigger !== "click") return;
@@ -9037,7 +9047,7 @@ var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
9037
9047
  },
9038
9048
  [trigger, isOpen, closeTooltip]
9039
9049
  );
9040
- (0, import_react27.useEffect)(() => {
9050
+ (0, import_react28.useEffect)(() => {
9041
9051
  if (trigger === "click") {
9042
9052
  document.addEventListener("mousedown", onClickOutside);
9043
9053
  return () => {
@@ -9045,11 +9055,11 @@ var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
9045
9055
  };
9046
9056
  }
9047
9057
  }, [trigger, onClickOutside]);
9048
- (0, import_react27.useEffect)(() => {
9058
+ (0, import_react28.useEffect)(() => {
9049
9059
  if (!disabled) return;
9050
9060
  closeTooltip();
9051
9061
  }, [disabled]);
9052
- (0, import_react27.useImperativeHandle)(
9062
+ (0, import_react28.useImperativeHandle)(
9053
9063
  ref,
9054
9064
  () => {
9055
9065
  return {
@@ -9140,7 +9150,7 @@ var TooltipComponent = (0, import_react27.forwardRef)(function Tooltip({
9140
9150
  }
9141
9151
  );
9142
9152
  });
9143
- TooltipComponent.item = (0, import_react27.forwardRef)(function Item({
9153
+ TooltipComponent.item = (0, import_react28.forwardRef)(function Item({
9144
9154
  icon,
9145
9155
  iconColor,
9146
9156
  text,
@@ -9181,11 +9191,11 @@ TooltipComponent.item = (0, import_react27.forwardRef)(function Item({
9181
9191
  }
9182
9192
  );
9183
9193
  });
9184
- TooltipComponent.divider = (0, import_react27.forwardRef)(function DividerComponent(props, ref) {
9194
+ TooltipComponent.divider = (0, import_react28.forwardRef)(function DividerComponent(props, ref) {
9185
9195
  const theme2 = useTheme();
9186
9196
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Divider_default.horizontal, { marginBlock: theme2.styles.gap, ...props, ref });
9187
9197
  });
9188
- TooltipComponent.sectionTitle = (0, import_react27.forwardRef)(function SectionTitle({ text, ...props }, ref) {
9198
+ TooltipComponent.sectionTitle = (0, import_react28.forwardRef)(function SectionTitle({ text, ...props }, ref) {
9189
9199
  const theme2 = useTheme();
9190
9200
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
9191
9201
  Text_default,
@@ -9201,26 +9211,26 @@ TooltipComponent.sectionTitle = (0, import_react27.forwardRef)(function SectionT
9201
9211
  }
9202
9212
  );
9203
9213
  });
9204
- var Tooltip2 = (0, import_react27.memo)(TooltipComponent);
9214
+ var Tooltip2 = (0, import_react28.memo)(TooltipComponent);
9205
9215
  Tooltip2.item = TooltipComponent.item;
9206
9216
  Tooltip2.divider = TooltipComponent.divider;
9207
9217
  Tooltip2.sectionTitle = TooltipComponent.sectionTitle;
9208
9218
  var Tooltip_default = Tooltip2;
9209
9219
 
9210
9220
  // src/components/Tabs.tsx
9211
- var import_react28 = require("react");
9221
+ var import_react29 = require("react");
9212
9222
  var import_jsx_runtime26 = require("react/jsx-runtime");
9213
9223
  var tabBottomLineWidth = 2;
9214
9224
  var tabDotSize = 6;
9215
9225
  var defaultTabName = "tab";
9216
- var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, accentColor, style = "default", onChange, children, ...props }, ref) {
9226
+ var TabsComponent = (0, import_react29.forwardRef)(function Tabs({ tabs, name, accentColor, style = "default", onChange, children, ...props }, ref) {
9217
9227
  const reactRouterDomPlugin2 = usePlugin("react-router-dom");
9218
9228
  const theme2 = useTheme();
9219
9229
  const urlQuery = reactRouterDomPlugin2 ? useUrlQuery() : void 0;
9220
9230
  const { colorTheme, componentsState } = useBetterHtmlContextInternal();
9221
- const firstRenderPassedRef = (0, import_react28.useRef)(false);
9222
- const tabsRef = (0, import_react28.useRef)({});
9223
- const [selectedTab, setSelectedTab] = (0, import_react28.useState)(() => {
9231
+ const firstRenderPassedRef = (0, import_react29.useRef)(false);
9232
+ const tabsRef = (0, import_react29.useRef)({});
9233
+ const [selectedTab, setSelectedTab] = (0, import_react29.useState)(() => {
9224
9234
  const selectedTabValue = tabs[0] ?? "";
9225
9235
  if (urlQuery) {
9226
9236
  const tabQueryValue = urlQuery.getQuery(name ?? defaultTabName);
@@ -9229,9 +9239,9 @@ var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, a
9229
9239
  }
9230
9240
  return selectedTabValue;
9231
9241
  });
9232
- const [rerenderState, setRerenderState] = (0, import_react28.useState)(0);
9242
+ const [rerenderState, setRerenderState] = (0, import_react29.useState)(0);
9233
9243
  const tabsGap = style === "box" ? theme2.styles.gap / 2 : 0;
9234
- const onClickTab = (0, import_react28.useCallback)(
9244
+ const onClickTab = (0, import_react29.useCallback)(
9235
9245
  (tab) => {
9236
9246
  setSelectedTab(tab);
9237
9247
  onChange?.(tab);
@@ -9243,11 +9253,11 @@ var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, a
9243
9253
  },
9244
9254
  [onChange, name, urlQuery]
9245
9255
  );
9246
- const width = (0, import_react28.useMemo)(
9256
+ const width = (0, import_react29.useMemo)(
9247
9257
  () => tabsRef.current[selectedTab]?.getBoundingClientRect().width ?? 0,
9248
9258
  [rerenderState, selectedTab]
9249
9259
  );
9250
- const leftSpacing = (0, import_react28.useMemo)(() => {
9260
+ const leftSpacing = (0, import_react29.useMemo)(() => {
9251
9261
  const selectedTabIndex = tabs.findIndex((tab) => tab === selectedTab);
9252
9262
  let spacing = 0;
9253
9263
  Object.values(tabsRef.current).forEach((tab, index) => {
@@ -9255,7 +9265,7 @@ var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, a
9255
9265
  });
9256
9266
  return spacing;
9257
9267
  }, [selectedTab, tabs, tabsGap]);
9258
- (0, import_react28.useEffect)(() => {
9268
+ (0, import_react29.useEffect)(() => {
9259
9269
  const timeout = setTimeout(() => {
9260
9270
  setRerenderState(Math.random());
9261
9271
  firstRenderPassedRef.current = true;
@@ -9264,7 +9274,7 @@ var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, a
9264
9274
  clearTimeout(timeout);
9265
9275
  };
9266
9276
  }, []);
9267
- (0, import_react28.useEffect)(() => {
9277
+ (0, import_react29.useEffect)(() => {
9268
9278
  componentsState.tabs.setTabGroups((oldValue) => {
9269
9279
  const thisTabGroup = oldValue.find((item) => item.name === (name ?? defaultTabName));
9270
9280
  if (thisTabGroup) {
@@ -9285,20 +9295,20 @@ var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, a
9285
9295
  }
9286
9296
  });
9287
9297
  }, [selectedTab, name]);
9288
- (0, import_react28.useEffect)(() => {
9298
+ (0, import_react29.useEffect)(() => {
9289
9299
  tabsRef.current[selectedTab]?.scrollIntoView({
9290
9300
  behavior: firstRenderPassedRef.current ? "smooth" : void 0,
9291
9301
  block: "nearest"
9292
9302
  });
9293
9303
  }, [selectedTab]);
9294
- (0, import_react28.useEffect)(() => {
9304
+ (0, import_react29.useEffect)(() => {
9295
9305
  return () => {
9296
9306
  componentsState.tabs.setTabGroups(
9297
9307
  (oldValue) => oldValue.filter((item) => item.name !== (name ?? defaultTabName))
9298
9308
  );
9299
9309
  };
9300
9310
  }, []);
9301
- (0, import_react28.useImperativeHandle)(
9311
+ (0, import_react29.useImperativeHandle)(
9302
9312
  ref,
9303
9313
  () => {
9304
9314
  return {
@@ -9379,11 +9389,11 @@ var TabsComponent = (0, import_react28.forwardRef)(function Tabs({ tabs, name, a
9379
9389
  });
9380
9390
  TabsComponent.content = function Content({ tab, tabWithDot, tabsGroupName, isInitialTab, children }) {
9381
9391
  const { componentsState } = useBetterHtmlContextInternal();
9382
- const thisTabGroupData = (0, import_react28.useMemo)(
9392
+ const thisTabGroupData = (0, import_react29.useMemo)(
9383
9393
  () => componentsState.tabs.tabGroups.find((item) => item.name === (tabsGroupName ?? defaultTabName)),
9384
9394
  [componentsState.tabs, tabsGroupName]
9385
9395
  );
9386
- (0, import_react28.useEffect)(() => {
9396
+ (0, import_react29.useEffect)(() => {
9387
9397
  if (tabWithDot) {
9388
9398
  componentsState.tabs.setTabsWithDots?.((oldValue) => oldValue.includes(tab) ? oldValue : [...oldValue, tab]);
9389
9399
  } else {
@@ -9394,16 +9404,16 @@ TabsComponent.content = function Content({ tab, tabWithDot, tabsGroupName, isIni
9394
9404
  }, [tabWithDot]);
9395
9405
  return (thisTabGroupData ? thisTabGroupData.selectedTab === tab : isInitialTab) ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Div_default, { width: "100%", children }) : void 0;
9396
9406
  };
9397
- var Tabs2 = (0, import_react28.memo)(TabsComponent);
9407
+ var Tabs2 = (0, import_react29.memo)(TabsComponent);
9398
9408
  Tabs2.content = TabsComponent.content;
9399
9409
  var Tabs_default = Tabs2;
9400
9410
 
9401
9411
  // src/components/Foldable.tsx
9402
- var import_react29 = require("react");
9412
+ var import_react30 = require("react");
9403
9413
  var import_jsx_runtime27 = require("react/jsx-runtime");
9404
9414
  var animationDurationClose = 0.15;
9405
9415
  var animationDurationOpen = animationDurationClose * 2;
9406
- var FoldableComponent = (0, import_react29.forwardRef)(function Foldable({
9416
+ var FoldableComponent = (0, import_react30.forwardRef)(function Foldable({
9407
9417
  isOpen: controlledIsOpen,
9408
9418
  defaultOpen = false,
9409
9419
  title,
@@ -9423,23 +9433,23 @@ var FoldableComponent = (0, import_react29.forwardRef)(function Foldable({
9423
9433
  ...props
9424
9434
  }, ref) {
9425
9435
  const theme2 = useTheme();
9426
- const bodyRef = (0, import_react29.useRef)(null);
9436
+ const bodyRef = (0, import_react30.useRef)(null);
9427
9437
  const [internalIsOpen, setInternalIsOpen] = useBooleanState(defaultOpen);
9428
- const [bodyVirtualHeight, setBodyVirtualHeight] = (0, import_react29.useState)();
9438
+ const [bodyVirtualHeight, setBodyVirtualHeight] = (0, import_react30.useState)();
9429
9439
  const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
9430
- const open = (0, import_react29.useCallback)(() => {
9440
+ const open = (0, import_react30.useCallback)(() => {
9431
9441
  if (controlledIsOpen === void 0) setInternalIsOpen.setTrue();
9432
9442
  onOpenChange?.(true);
9433
9443
  }, [controlledIsOpen, onOpenChange]);
9434
- const close = (0, import_react29.useCallback)(() => {
9444
+ const close = (0, import_react30.useCallback)(() => {
9435
9445
  if (controlledIsOpen === void 0) setInternalIsOpen.setFalse();
9436
9446
  onOpenChange?.(false);
9437
9447
  }, [controlledIsOpen, onOpenChange]);
9438
- const toggleOpen = (0, import_react29.useCallback)(() => {
9448
+ const toggleOpen = (0, import_react30.useCallback)(() => {
9439
9449
  if (controlledIsOpen === void 0) setInternalIsOpen.toggle();
9440
9450
  onOpenChange?.(!isOpen);
9441
9451
  }, [controlledIsOpen, isOpen, onOpenChange]);
9442
- (0, import_react29.useEffect)(() => {
9452
+ (0, import_react30.useEffect)(() => {
9443
9453
  if (!bodyRef.current) return;
9444
9454
  const body = bodyRef.current;
9445
9455
  setBodyVirtualHeight(body.scrollHeight * 2);
@@ -9450,7 +9460,7 @@ var FoldableComponent = (0, import_react29.forwardRef)(function Foldable({
9450
9460
  clearTimeout(timeout);
9451
9461
  };
9452
9462
  }, [isOpen]);
9453
- (0, import_react29.useEffect)(() => {
9463
+ (0, import_react30.useEffect)(() => {
9454
9464
  if (!isOpen) return;
9455
9465
  if (!bodyRef.current) return;
9456
9466
  const observer = new ResizeObserver(() => {
@@ -9462,7 +9472,7 @@ var FoldableComponent = (0, import_react29.forwardRef)(function Foldable({
9462
9472
  observer.disconnect();
9463
9473
  };
9464
9474
  }, [isOpen]);
9465
- (0, import_react29.useImperativeHandle)(
9475
+ (0, import_react30.useImperativeHandle)(
9466
9476
  ref,
9467
9477
  () => {
9468
9478
  return {
@@ -9534,7 +9544,7 @@ var FoldableComponent = (0, import_react29.forwardRef)(function Foldable({
9534
9544
  )
9535
9545
  ] });
9536
9546
  });
9537
- FoldableComponent.box = (0, import_react29.forwardRef)(function Box3({ ...props }, ref) {
9547
+ FoldableComponent.box = (0, import_react30.forwardRef)(function Box3({ ...props }, ref) {
9538
9548
  const theme2 = useTheme();
9539
9549
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
9540
9550
  FoldableComponent,
@@ -9549,23 +9559,23 @@ FoldableComponent.box = (0, import_react29.forwardRef)(function Box3({ ...props
9549
9559
  }
9550
9560
  );
9551
9561
  });
9552
- var Foldable2 = (0, import_react29.memo)(FoldableComponent);
9562
+ var Foldable2 = (0, import_react30.memo)(FoldableComponent);
9553
9563
  Foldable2.box = FoldableComponent.box;
9554
9564
  var Foldable_default = Foldable2;
9555
9565
 
9556
9566
  // src/components/SideMenu.tsx
9557
- var import_react30 = require("react");
9567
+ var import_react31 = require("react");
9558
9568
  var import_jsx_runtime28 = require("react/jsx-runtime");
9559
- var sideMenuContext = (0, import_react30.createContext)(void 0);
9569
+ var sideMenuContext = (0, import_react31.createContext)(void 0);
9560
9570
  var SideMenuContextProvider = sideMenuContext.Provider;
9561
9571
  var useSideMenuContext = () => {
9562
- const context = (0, import_react30.useContext)(sideMenuContext);
9572
+ const context = (0, import_react31.useContext)(sideMenuContext);
9563
9573
  if (!context) {
9564
9574
  throw new Error("`useSideMenuContext` must be used within a `<SideMenuContextProvider>` component");
9565
9575
  }
9566
9576
  return context;
9567
9577
  };
9568
- var MenuItemComponent = (0, import_react30.memo)(function MenuItemComponent2({ item, backgroundColor, onClick }) {
9578
+ var MenuItemComponent = (0, import_react31.memo)(function MenuItemComponent2({ item, backgroundColor, onClick }) {
9569
9579
  const reactRouterDomPlugin2 = usePlugin("react-router-dom");
9570
9580
  if (!reactRouterDomPlugin2) {
9571
9581
  throw new Error(
@@ -9580,7 +9590,7 @@ var MenuItemComponent = (0, import_react30.memo)(function MenuItemComponent2({ i
9580
9590
  const { activeItem, setActiveItem } = useSideMenuContext();
9581
9591
  const [isOpened, setIsOpened] = useBooleanState();
9582
9592
  const isCollapsed = sideMenuIsCollapsed && !mediaQuery.size1000;
9583
- const onClickElement = (0, import_react30.useCallback)(() => {
9593
+ const onClickElement = (0, import_react31.useCallback)(() => {
9584
9594
  if (item.disabled) return;
9585
9595
  if (!item.children) setActiveItem((oldValue) => oldValue?.href === item.href ? oldValue : void 0);
9586
9596
  if (item.children) {
@@ -9657,7 +9667,7 @@ var MenuItemComponent = (0, import_react30.memo)(function MenuItemComponent2({ i
9657
9667
  )
9658
9668
  }
9659
9669
  );
9660
- (0, import_react30.useEffect)(() => {
9670
+ (0, import_react31.useEffect)(() => {
9661
9671
  if (!item.href) return;
9662
9672
  const isActive2 = location.pathname === "/" ? location.pathname === item.href : location.pathname.startsWith(item.href) && item.href !== "/";
9663
9673
  if (!isActive2) return;
@@ -9668,14 +9678,14 @@ var MenuItemComponent = (0, import_react30.memo)(function MenuItemComponent2({ i
9668
9678
  } : void 0
9669
9679
  );
9670
9680
  }, [location.pathname]);
9671
- (0, import_react30.useEffect)(() => {
9681
+ (0, import_react31.useEffect)(() => {
9672
9682
  if (!item.children) return;
9673
9683
  const toBeOpened = item.children.some(
9674
9684
  (child) => child.href ? location.pathname === "/" ? location.pathname === child.href : location.pathname.startsWith(child.href) && child.href !== "/" : false
9675
9685
  );
9676
9686
  setIsOpened.setState(toBeOpened);
9677
9687
  }, [item]);
9678
- (0, import_react30.useEffect)(() => {
9688
+ (0, import_react31.useEffect)(() => {
9679
9689
  if (!isCollapsed) return;
9680
9690
  setIsOpened.setFalse();
9681
9691
  }, [isCollapsed]);
@@ -9765,13 +9775,13 @@ var SideMenuComponent = function SideMenu({
9765
9775
  const theme2 = useTheme();
9766
9776
  const mediaQuery = useMediaQuery();
9767
9777
  const { components, sideMenuIsCollapsed, setSideMenuIsCollapsed, sideMenuIsOpenMobile, setSideMenuIsOpenMobile } = useBetterHtmlContextInternal();
9768
- const [activeItem, setActiveItem] = (0, import_react30.useState)();
9769
- const onClickXButton = (0, import_react30.useCallback)(() => {
9778
+ const [activeItem, setActiveItem] = (0, import_react31.useState)();
9779
+ const onClickXButton = (0, import_react31.useCallback)(() => {
9770
9780
  setSideMenuIsOpenMobile.setFalse();
9771
9781
  }, []);
9772
- const readyItems = (0, import_react30.useMemo)(() => items.filter((item) => !item.hidden), [items]);
9773
- const readyBottomItems = (0, import_react30.useMemo)(() => bottomItems?.filter((item) => !item.hidden), [bottomItems]);
9774
- const contextValue = (0, import_react30.useMemo)(
9782
+ const readyItems = (0, import_react31.useMemo)(() => items.filter((item) => !item.hidden), [items]);
9783
+ const readyBottomItems = (0, import_react31.useMemo)(() => bottomItems?.filter((item) => !item.hidden), [bottomItems]);
9784
+ const contextValue = (0, import_react31.useMemo)(
9775
9785
  () => ({
9776
9786
  activeItem,
9777
9787
  setActiveItem
@@ -10036,7 +10046,7 @@ SideMenuComponent.burgerButton = function BurgerButton() {
10036
10046
  }
10037
10047
  );
10038
10048
  };
10039
- var SideMenu2 = (0, import_react30.memo)(SideMenuComponent);
10049
+ var SideMenu2 = (0, import_react31.memo)(SideMenuComponent);
10040
10050
  SideMenu2.pageHolder = SideMenuComponent.pageHolder;
10041
10051
  SideMenu2.burgerButton = SideMenuComponent.burgerButton;
10042
10052
  var SideMenu_default = SideMenu2;