@helpwave/hightide 0.1.20 → 0.1.22

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.
Files changed (193) hide show
  1. package/dist/components/date/DatePicker.js +11 -1
  2. package/dist/components/date/DatePicker.js.map +1 -1
  3. package/dist/components/date/DatePicker.mjs +11 -1
  4. package/dist/components/date/DatePicker.mjs.map +1 -1
  5. package/dist/components/date/DayPicker.js.map +1 -1
  6. package/dist/components/date/DayPicker.mjs.map +1 -1
  7. package/dist/components/date/TimeDisplay.js.map +1 -1
  8. package/dist/components/date/TimeDisplay.mjs.map +1 -1
  9. package/dist/components/date/YearMonthPicker.js +1 -0
  10. package/dist/components/date/YearMonthPicker.js.map +1 -1
  11. package/dist/components/date/YearMonthPicker.mjs +1 -0
  12. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  13. package/dist/components/dialogs/ConfirmDialog.js +3 -2
  14. package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
  15. package/dist/components/dialogs/ConfirmDialog.mjs +3 -2
  16. package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -1
  17. package/dist/components/icons-and-geometry/Avatar.d.mts +17 -7
  18. package/dist/components/icons-and-geometry/Avatar.d.ts +17 -7
  19. package/dist/components/icons-and-geometry/Avatar.js +103 -42
  20. package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
  21. package/dist/components/icons-and-geometry/Avatar.mjs +102 -40
  22. package/dist/components/icons-and-geometry/Avatar.mjs.map +1 -1
  23. package/dist/components/layout-and-navigation/Carousel.js +1 -0
  24. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  25. package/dist/components/layout-and-navigation/Carousel.mjs +1 -0
  26. package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
  27. package/dist/components/layout-and-navigation/Chip.d.mts +6 -2
  28. package/dist/components/layout-and-navigation/Chip.d.ts +6 -2
  29. package/dist/components/layout-and-navigation/Chip.js +8 -2
  30. package/dist/components/layout-and-navigation/Chip.js.map +1 -1
  31. package/dist/components/layout-and-navigation/Chip.mjs +6 -1
  32. package/dist/components/layout-and-navigation/Chip.mjs.map +1 -1
  33. package/dist/components/layout-and-navigation/Overlay.js +4 -3
  34. package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
  35. package/dist/components/layout-and-navigation/Overlay.mjs +4 -3
  36. package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
  37. package/dist/components/layout-and-navigation/Pagination.js +3 -2
  38. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  39. package/dist/components/layout-and-navigation/Pagination.mjs +3 -2
  40. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  41. package/dist/components/layout-and-navigation/SearchableList.js +2 -1
  42. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
  43. package/dist/components/layout-and-navigation/SearchableList.mjs +2 -1
  44. package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
  45. package/dist/components/layout-and-navigation/StepperBar.js +1 -0
  46. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  47. package/dist/components/layout-and-navigation/StepperBar.mjs +1 -0
  48. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  49. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  50. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  51. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  52. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
  53. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  54. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  55. package/dist/components/loading-states/LoadingButton.js +1 -0
  56. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  57. package/dist/components/loading-states/LoadingButton.mjs +1 -0
  58. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  59. package/dist/components/modals/ConfirmModal.js +3 -2
  60. package/dist/components/modals/ConfirmModal.js.map +1 -1
  61. package/dist/components/modals/ConfirmModal.mjs +3 -2
  62. package/dist/components/modals/ConfirmModal.mjs.map +1 -1
  63. package/dist/components/modals/DiscardChangesModal.js +3 -2
  64. package/dist/components/modals/DiscardChangesModal.js.map +1 -1
  65. package/dist/components/modals/DiscardChangesModal.mjs +3 -2
  66. package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
  67. package/dist/components/modals/InputModal.js +4 -3
  68. package/dist/components/modals/InputModal.js.map +1 -1
  69. package/dist/components/modals/InputModal.mjs +4 -3
  70. package/dist/components/modals/InputModal.mjs.map +1 -1
  71. package/dist/components/modals/LanguageModal.js +8 -6
  72. package/dist/components/modals/LanguageModal.js.map +1 -1
  73. package/dist/components/modals/LanguageModal.mjs +9 -11
  74. package/dist/components/modals/LanguageModal.mjs.map +1 -1
  75. package/dist/components/modals/ThemeModal.js +14 -9
  76. package/dist/components/modals/ThemeModal.js.map +1 -1
  77. package/dist/components/modals/ThemeModal.mjs +13 -12
  78. package/dist/components/modals/ThemeModal.mjs.map +1 -1
  79. package/dist/components/properties/CheckboxProperty.js +13 -3
  80. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  81. package/dist/components/properties/CheckboxProperty.mjs +13 -3
  82. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  83. package/dist/components/properties/DateProperty.js +13 -3
  84. package/dist/components/properties/DateProperty.js.map +1 -1
  85. package/dist/components/properties/DateProperty.mjs +13 -3
  86. package/dist/components/properties/DateProperty.mjs.map +1 -1
  87. package/dist/components/properties/MultiSelectProperty.js +18 -8
  88. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  89. package/dist/components/properties/MultiSelectProperty.mjs +19 -13
  90. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  91. package/dist/components/properties/NumberProperty.js +13 -3
  92. package/dist/components/properties/NumberProperty.js.map +1 -1
  93. package/dist/components/properties/NumberProperty.mjs +13 -3
  94. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  95. package/dist/components/properties/PropertyBase.js +12 -2
  96. package/dist/components/properties/PropertyBase.js.map +1 -1
  97. package/dist/components/properties/PropertyBase.mjs +12 -2
  98. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  99. package/dist/components/properties/SelectProperty.js +15 -5
  100. package/dist/components/properties/SelectProperty.js.map +1 -1
  101. package/dist/components/properties/SelectProperty.mjs +16 -10
  102. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  103. package/dist/components/properties/TextProperty.js +15 -5
  104. package/dist/components/properties/TextProperty.js.map +1 -1
  105. package/dist/components/properties/TextProperty.mjs +15 -5
  106. package/dist/components/properties/TextProperty.mjs.map +1 -1
  107. package/dist/components/table/Table.js +6 -5
  108. package/dist/components/table/Table.js.map +1 -1
  109. package/dist/components/table/Table.mjs +7 -10
  110. package/dist/components/table/Table.mjs.map +1 -1
  111. package/dist/components/table/TableFilterButton.js +3 -2
  112. package/dist/components/table/TableFilterButton.js.map +1 -1
  113. package/dist/components/table/TableFilterButton.mjs +4 -7
  114. package/dist/components/table/TableFilterButton.mjs.map +1 -1
  115. package/dist/components/table/TableSortButton.js +1 -0
  116. package/dist/components/table/TableSortButton.js.map +1 -1
  117. package/dist/components/table/TableSortButton.mjs +1 -0
  118. package/dist/components/table/TableSortButton.mjs.map +1 -1
  119. package/dist/components/user-action/Button.d.mts +2 -1
  120. package/dist/components/user-action/Button.d.ts +2 -1
  121. package/dist/components/user-action/Button.js +12 -1
  122. package/dist/components/user-action/Button.js.map +1 -1
  123. package/dist/components/user-action/Button.mjs +12 -1
  124. package/dist/components/user-action/Button.mjs.map +1 -1
  125. package/dist/components/user-action/Checkbox.js +1 -1
  126. package/dist/components/user-action/Checkbox.js.map +1 -1
  127. package/dist/components/user-action/Checkbox.mjs +1 -1
  128. package/dist/components/user-action/Checkbox.mjs.map +1 -1
  129. package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
  130. package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
  131. package/dist/components/user-action/DateAndTimePicker.js +11 -1
  132. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  133. package/dist/components/user-action/DateAndTimePicker.mjs +11 -1
  134. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  135. package/dist/components/user-action/Input.js +1 -1
  136. package/dist/components/user-action/Input.js.map +1 -1
  137. package/dist/components/user-action/Input.mjs +1 -1
  138. package/dist/components/user-action/Input.mjs.map +1 -1
  139. package/dist/components/user-action/Menu.js +2 -2
  140. package/dist/components/user-action/Menu.js.map +1 -1
  141. package/dist/components/user-action/Menu.mjs +3 -7
  142. package/dist/components/user-action/Menu.mjs.map +1 -1
  143. package/dist/components/user-action/MultiSelect.js +7 -6
  144. package/dist/components/user-action/MultiSelect.js.map +1 -1
  145. package/dist/components/user-action/MultiSelect.mjs +8 -11
  146. package/dist/components/user-action/MultiSelect.mjs.map +1 -1
  147. package/dist/components/user-action/SearchBar.js +2 -1
  148. package/dist/components/user-action/SearchBar.js.map +1 -1
  149. package/dist/components/user-action/SearchBar.mjs +2 -1
  150. package/dist/components/user-action/SearchBar.mjs.map +1 -1
  151. package/dist/components/user-action/Select.js +4 -3
  152. package/dist/components/user-action/Select.js.map +1 -1
  153. package/dist/components/user-action/Select.mjs +5 -8
  154. package/dist/components/user-action/Select.mjs.map +1 -1
  155. package/dist/components/user-action/Textarea.js +3 -3
  156. package/dist/components/user-action/Textarea.js.map +1 -1
  157. package/dist/components/user-action/Textarea.mjs +3 -3
  158. package/dist/components/user-action/Textarea.mjs.map +1 -1
  159. package/dist/css/globals.css +279 -42
  160. package/dist/css/uncompiled/globals.css +2 -2
  161. package/dist/css/uncompiled/theme/colors-basic.css +1 -1
  162. package/dist/css/uncompiled/theme/colors-component.css +9 -13
  163. package/dist/css/uncompiled/theme/colors-semantic.css +13 -8
  164. package/dist/css/uncompiled/utitlity/shadow.css +45 -16
  165. package/dist/hooks/useLocalStorage.js +8 -3
  166. package/dist/hooks/useLocalStorage.js.map +1 -1
  167. package/dist/hooks/useLocalStorage.mjs +8 -3
  168. package/dist/hooks/useLocalStorage.mjs.map +1 -1
  169. package/dist/hooks/useLogOnce.d.mts +8 -0
  170. package/dist/hooks/useLogOnce.d.ts +8 -0
  171. package/dist/hooks/useLogOnce.js +53 -0
  172. package/dist/hooks/useLogOnce.js.map +1 -0
  173. package/dist/hooks/useLogOnce.mjs +29 -0
  174. package/dist/hooks/useLogOnce.mjs.map +1 -0
  175. package/dist/index.d.mts +3 -2
  176. package/dist/index.d.ts +3 -2
  177. package/dist/index.js +295 -203
  178. package/dist/index.js.map +1 -1
  179. package/dist/index.mjs +259 -172
  180. package/dist/index.mjs.map +1 -1
  181. package/dist/localization/LanguageProvider.js +10 -4
  182. package/dist/localization/LanguageProvider.js.map +1 -1
  183. package/dist/localization/LanguageProvider.mjs +10 -4
  184. package/dist/localization/LanguageProvider.mjs.map +1 -1
  185. package/dist/localization/useTranslation.js.map +1 -1
  186. package/dist/localization/useTranslation.mjs.map +1 -1
  187. package/dist/theming/useTheme.d.mts +2 -2
  188. package/dist/theming/useTheme.d.ts +2 -2
  189. package/dist/theming/useTheme.js +82 -13
  190. package/dist/theming/useTheme.js.map +1 -1
  191. package/dist/theming/useTheme.mjs +80 -11
  192. package/dist/theming/useTheme.mjs.map +1 -1
  193. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2845,6 +2845,7 @@ __export(index_exports, {
2845
2845
  ArrayUtil: () => ArrayUtil,
2846
2846
  Avatar: () => Avatar,
2847
2847
  AvatarGroup: () => AvatarGroup,
2848
+ AvatarUtil: () => AvatarUtil,
2848
2849
  BagFunctionUtil: () => BagFunctionUtil,
2849
2850
  BreadCrumb: () => BreadCrumb,
2850
2851
  ButtonColorUtil: () => ButtonColorUtil,
@@ -2855,6 +2856,7 @@ __export(index_exports, {
2855
2856
  CheckboxUncontrolled: () => CheckboxUncontrolled,
2856
2857
  Chip: () => Chip,
2857
2858
  ChipList: () => ChipList,
2859
+ ChipUtil: () => ChipUtil,
2858
2860
  Circle: () => Circle,
2859
2861
  ConfirmDialog: () => ConfirmDialog,
2860
2862
  ConfirmModal: () => ConfirmModal,
@@ -2955,8 +2957,6 @@ __export(index_exports, {
2955
2957
  YearMonthPicker: () => YearMonthPicker,
2956
2958
  YearMonthPickerUncontrolled: () => YearMonthPickerUncontrolled,
2957
2959
  addDuration: () => addDuration,
2958
- avatarSizeMapping: () => avatarSizeMapping,
2959
- avtarSizeList: () => avtarSizeList,
2960
2960
  builder: () => builder,
2961
2961
  changeDuration: () => changeDuration,
2962
2962
  clamp: () => clamp,
@@ -2993,6 +2993,7 @@ __export(index_exports, {
2993
2993
  useLanguage: () => useLanguage,
2994
2994
  useLocalStorage: () => useLocalStorage,
2995
2995
  useLocale: () => useLocale,
2996
+ useLogOnce: () => useLogOnce,
2996
2997
  useOutsideClick: () => useOutsideClick,
2997
2998
  usePopoverPosition: () => usePopoverPosition,
2998
2999
  useRerender: () => useRerender,
@@ -3235,6 +3236,11 @@ var SessionStorageService = class extends StorageService {
3235
3236
  }
3236
3237
  };
3237
3238
 
3239
+ // src/util/resolveSetState.ts
3240
+ function resolveSetState(action, prev) {
3241
+ return typeof action === "function" ? action(prev) : action;
3242
+ }
3243
+
3238
3244
  // src/hooks/useLocalStorage.ts
3239
3245
  var useLocalStorage = (key, initValue) => {
3240
3246
  const get = (0, import_react.useCallback)(() => {
@@ -3246,10 +3252,10 @@ var useLocalStorage = (key, initValue) => {
3246
3252
  return value || initValue;
3247
3253
  }, [initValue, key]);
3248
3254
  const [storedValue, setStoredValue] = (0, import_react.useState)(get);
3249
- const setValue = (0, import_react.useCallback)((value) => {
3250
- const newValue = value instanceof Function ? value(storedValue) : value;
3255
+ const setValue = (0, import_react.useCallback)((action) => {
3256
+ const newValue = resolveSetState(action, storedValue);
3251
3257
  const storageService = new LocalStorageService();
3252
- storageService.set(key, value);
3258
+ storageService.set(key, newValue);
3253
3259
  setStoredValue(newValue);
3254
3260
  }, [storedValue, setStoredValue, key]);
3255
3261
  (0, import_react.useEffect)(() => {
@@ -3296,8 +3302,9 @@ var LanguageProvider = ({ initialLanguage, children }) => {
3296
3302
  }
3297
3303
  }, [initialLanguage]);
3298
3304
  (0, import_react2.useEffect)(() => {
3305
+ document.documentElement.setAttribute("lang", language);
3299
3306
  setStoredLanguage(language);
3300
- }, [language, setStoredLanguage]);
3307
+ }, [language]);
3301
3308
  (0, import_react2.useEffect)(() => {
3302
3309
  if (storedLanguage !== null) {
3303
3310
  setLanguage(storedLanguage);
@@ -3684,6 +3691,7 @@ var SolidButton = (0, import_react3.forwardRef)(function SolidButton2({
3684
3691
  onClick,
3685
3692
  disabled,
3686
3693
  className: (0, import_clsx4.default)(
3694
+ "font-semibold",
3687
3695
  {
3688
3696
  "text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
3689
3697
  [(0, import_clsx4.default)(colorClasses, "hover:brightness-90")]: !disabled
@@ -3741,6 +3749,7 @@ var OutlineButton = ({
3741
3749
  onClick,
3742
3750
  disabled,
3743
3751
  className: (0, import_clsx4.default)(
3752
+ "font-semibold",
3744
3753
  {
3745
3754
  "text-disabled-text border-disabled-outline cursor-not-allowed": disabled,
3746
3755
  [(0, import_clsx4.default)(colorClasses, "hover:brightness-80")]: !disabled
@@ -3783,6 +3792,7 @@ var TextButton = ({
3783
3792
  startIcon,
3784
3793
  endIcon,
3785
3794
  onClick,
3795
+ coloredHoverBackground = true,
3786
3796
  className,
3787
3797
  ...restProps
3788
3798
  }) => {
@@ -3791,6 +3801,11 @@ var TextButton = ({
3791
3801
  negative: "bg-transparent text-button-text-negative-text",
3792
3802
  neutral: "bg-transparent text-button-text-neutral-text"
3793
3803
  }[color];
3804
+ const backgroundColor = {
3805
+ primary: "hover:bg-button-text-primary-text/20",
3806
+ negative: "hover:bg-button-text-negative-text/20",
3807
+ neutral: "hover:bg-button-text-neutral-text/20"
3808
+ }[color];
3794
3809
  const iconColorClasses = {
3795
3810
  primary: "text-button-text-primary-icon",
3796
3811
  negative: "text-button-text-negative-icon",
@@ -3802,9 +3817,12 @@ var TextButton = ({
3802
3817
  onClick,
3803
3818
  disabled,
3804
3819
  className: (0, import_clsx4.default)(
3820
+ "font-semibold",
3805
3821
  {
3806
3822
  "text-disabled-text cursor-not-allowed": disabled,
3807
- [(0, import_clsx4.default)(colorClasses, "hover:bg-button-text-hover-background")]: !disabled
3823
+ [colorClasses]: !disabled,
3824
+ [backgroundColor]: !disabled && coloredHoverBackground,
3825
+ "hover:bg-button-text-hover-background": !disabled && !coloredHoverBackground
3808
3826
  },
3809
3827
  ButtonUtil.paddingMapping[size],
3810
3828
  className
@@ -4779,7 +4797,7 @@ var Overlay = ({
4779
4797
  }, []);
4780
4798
  if (!root || !isOpen) return null;
4781
4799
  return import_react_dom.default.createPortal(
4782
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: (0, import_clsx11.default)("fixed inset-0 z-[9999]"), children: [
4800
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: (0, import_clsx11.default)("fixed inset-0 z-[200]"), children: [
4783
4801
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4784
4802
  "div",
4785
4803
  {
@@ -4886,7 +4904,7 @@ var Modal = ({
4886
4904
  ref,
4887
4905
  tabIndex: -1,
4888
4906
  className: (0, import_clsx11.default)(
4889
- "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl animate-pop-in",
4907
+ "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-around-lg shadow-strong animate-pop-in",
4890
4908
  className
4891
4909
  ),
4892
4910
  role: "dialog",
@@ -4955,7 +4973,7 @@ var Dialog = ({
4955
4973
  ref,
4956
4974
  tabIndex: -1,
4957
4975
  className: (0, import_clsx11.default)(
4958
- "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl animate-pop-in",
4976
+ "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-around-lg shadow-strong animate-pop-in",
4959
4977
  className
4960
4978
  ),
4961
4979
  role: "dialog",
@@ -5017,49 +5035,105 @@ var ConfirmDialog = ({
5017
5035
 
5018
5036
  // src/components/icons-and-geometry/Avatar.tsx
5019
5037
  var import_clsx13 = __toESM(require("clsx"));
5038
+
5039
+ // src/hooks/useLogOnce.ts
5040
+ var import_react11 = require("react");
5041
+ var useLogOnce = ({
5042
+ message,
5043
+ condition,
5044
+ type = "warning"
5045
+ }) => {
5046
+ const [hasLogged, setHasLogged] = (0, import_react11.useState)(false);
5047
+ (0, import_react11.useEffect)(() => {
5048
+ if (!hasLogged && condition) {
5049
+ switch (type) {
5050
+ case "info":
5051
+ console.info(message);
5052
+ break;
5053
+ case "error":
5054
+ console.error(message);
5055
+ break;
5056
+ case "warning":
5057
+ console.warn(message);
5058
+ break;
5059
+ }
5060
+ setHasLogged(true);
5061
+ }
5062
+ }, [condition]);
5063
+ };
5064
+
5065
+ // src/components/icons-and-geometry/Avatar.tsx
5066
+ var import_react12 = require("react");
5020
5067
  var import_jsx_runtime15 = require("react/jsx-runtime");
5021
- var avtarSizeList = ["tiny", "small", "medium", "large"];
5068
+ var avtarSizeList = ["sm", "md", "lg", "xl"];
5022
5069
  var avatarSizeMapping = {
5023
- tiny: 24,
5024
- small: 32,
5025
- medium: 48,
5026
- large: 64
5027
- };
5028
- var Avatar = ({ avatarUrl, alt, size = "medium", className = "" }) => {
5029
- avatarUrl = "https://cdn.helpwave.de/boringavatar.svg";
5030
- const avtarSize = {
5031
- tiny: 24,
5032
- small: 32,
5033
- medium: 48,
5034
- large: 64
5035
- }[size];
5036
- const style = {
5037
- width: avtarSize + "px",
5038
- height: avtarSize + "px",
5039
- maxWidth: avtarSize + "px",
5040
- maxHeight: avtarSize + "px",
5041
- minWidth: avtarSize + "px",
5042
- minHeight: avtarSize + "px"
5070
+ sm: 18,
5071
+ md: 24,
5072
+ lg: 32,
5073
+ xl: 48
5074
+ };
5075
+ var textClassNameMapping = {
5076
+ sm: "text-xs font-semibold",
5077
+ md: "text-sm font-semibold",
5078
+ lg: "text-lg font-semibold",
5079
+ xl: "text-2xl font-bold"
5080
+ };
5081
+ var AvatarUtil = {
5082
+ avatarSizeMapping,
5083
+ sizes: avtarSizeList
5084
+ };
5085
+ var Avatar = ({ image, name, size = "md", fullyRounded, className = "" }) => {
5086
+ const pixels = avatarSizeMapping[size];
5087
+ const sizeStyle = {
5088
+ minWidth: pixels,
5089
+ maxWidth: pixels,
5090
+ minHeight: pixels,
5091
+ maxHeight: pixels
5043
5092
  };
5044
- return (
5045
- // TODO transparent or white background later
5046
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: (0, import_clsx13.default)(`rounded-full bg-primary shadow`, className), style, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5047
- "img",
5048
- {
5049
- className: "rounded-full",
5050
- style,
5051
- src: avatarUrl,
5052
- alt,
5053
- width: avtarSize,
5054
- height: avtarSize
5055
- }
5056
- ) })
5093
+ const textClassName = textClassNameMapping[size];
5094
+ useLogOnce({ message: "Either set image or name in Avatar", condition: !image && !name, type: "warning" });
5095
+ const displayName = (0, import_react12.useMemo)(() => {
5096
+ const maxLetters = size === "sm" ? 1 : 2;
5097
+ return (name ?? "").split(" ").filter((_, index) => index < maxLetters).map((value) => value[0]).join("").toUpperCase();
5098
+ }, [name, size]);
5099
+ const rounding = {
5100
+ "rounded-full": fullyRounded,
5101
+ "rounded-lg": !fullyRounded && !(size === "sm" || size === "md"),
5102
+ "rounded-sm": !fullyRounded && (size === "sm" || size === "md")
5103
+ };
5104
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5105
+ "div",
5106
+ {
5107
+ className: (0, import_clsx13.default)(
5108
+ `relative bg-primary text-on-primary`,
5109
+ rounding,
5110
+ className
5111
+ ),
5112
+ style: sizeStyle,
5113
+ children: [
5114
+ name && !image && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: (0, import_clsx13.default)(textClassName, "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"), children: displayName }),
5115
+ image && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5116
+ "img",
5117
+ {
5118
+ className: (0, import_clsx13.default)(
5119
+ "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
5120
+ rounding
5121
+ ),
5122
+ src: image.avatarUrl,
5123
+ alt: image.alt,
5124
+ style: sizeStyle
5125
+ }
5126
+ )
5127
+ ]
5128
+ }
5057
5129
  );
5058
5130
  };
5059
5131
  var AvatarGroup = ({
5060
5132
  avatars,
5061
5133
  maxShownProfiles = 5,
5062
- size = "tiny"
5134
+ showTotalNumber = true,
5135
+ size = "md",
5136
+ fullyRounded
5063
5137
  }) => {
5064
5138
  const displayedProfiles = avatars.length < maxShownProfiles ? avatars : avatars.slice(0, maxShownProfiles);
5065
5139
  const diameter = avatarSizeMapping[size];
@@ -5072,15 +5146,22 @@ var AvatarGroup = ({
5072
5146
  {
5073
5147
  className: "absolute",
5074
5148
  style: { left: index * diameter * stackingOverlap + "px", zIndex: maxShownProfiles - index },
5075
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Avatar, { avatarUrl: avatar.avatarUrl, alt: avatar.alt, size })
5149
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5150
+ Avatar,
5151
+ {
5152
+ ...avatar,
5153
+ size,
5154
+ fullyRounded,
5155
+ className: (0, import_clsx13.default)("shadow-side shadow-r-4 shadow-hard", avatar.className)
5156
+ }
5157
+ )
5076
5158
  },
5077
5159
  index
5078
5160
  )) }),
5079
- notDisplayedProfiles > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5161
+ showTotalNumber && notDisplayedProfiles > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5080
5162
  "div",
5081
5163
  {
5082
- className: "flex-row-2 truncate items-center",
5083
- style: { fontSize: diameter / 2 + "px", marginLeft: 1 + diameter / 16 + "px" },
5164
+ className: (0, import_clsx13.default)(textClassNameMapping[size], "flex-row-2 truncate items-center"),
5084
5165
  children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { children: [
5085
5166
  "+ ",
5086
5167
  notDisplayedProfiles
@@ -5115,7 +5196,7 @@ var Circle = ({
5115
5196
  };
5116
5197
 
5117
5198
  // src/components/icons-and-geometry/Ring.tsx
5118
- var import_react11 = require("react");
5199
+ var import_react13 = require("react");
5119
5200
  var import_clsx15 = __toESM(require("clsx"));
5120
5201
  var import_jsx_runtime17 = require("react/jsx-runtime");
5121
5202
  var Ring = ({
@@ -5144,9 +5225,9 @@ var AnimatedRing = ({
5144
5225
  onAnimationFinished = noop,
5145
5226
  style
5146
5227
  }) => {
5147
- const [currentWidth, setCurrentWidth] = (0, import_react11.useState)(0);
5228
+ const [currentWidth, setCurrentWidth] = (0, import_react13.useState)(0);
5148
5229
  const milliseconds = 1e3 * fillAnimationDuration;
5149
- const animate = (0, import_react11.useCallback)((timestamp, startTime) => {
5230
+ const animate = (0, import_react13.useCallback)((timestamp, startTime) => {
5150
5231
  const progress = Math.min((timestamp - startTime) / milliseconds, 1);
5151
5232
  const newWidth = Math.min(width * progress, width);
5152
5233
  setCurrentWidth(newWidth);
@@ -5160,7 +5241,7 @@ var AnimatedRing = ({
5160
5241
  }
5161
5242
  }
5162
5243
  }, [milliseconds, onAnimationFinished, repeating, width]);
5163
- (0, import_react11.useEffect)(() => {
5244
+ (0, import_react13.useEffect)(() => {
5164
5245
  if (currentWidth < width) {
5165
5246
  requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
5166
5247
  }
@@ -5195,10 +5276,10 @@ var RingWave = ({
5195
5276
  onAnimationFinished = noop,
5196
5277
  style
5197
5278
  }) => {
5198
- const [currentInnerSize, setCurrentInnerSize] = (0, import_react11.useState)(startInnerSize);
5279
+ const [currentInnerSize, setCurrentInnerSize] = (0, import_react13.useState)(startInnerSize);
5199
5280
  const distance = endInnerSize - startInnerSize;
5200
5281
  const milliseconds = 1e3 * fillAnimationDuration;
5201
- const animate = (0, import_react11.useCallback)((timestamp, startTime) => {
5282
+ const animate = (0, import_react13.useCallback)((timestamp, startTime) => {
5202
5283
  const progress = Math.min((timestamp - startTime) / milliseconds, 1);
5203
5284
  const newInnerSize = Math.min(
5204
5285
  startInnerSize + distance * progress,
@@ -5215,7 +5296,7 @@ var RingWave = ({
5215
5296
  }
5216
5297
  }
5217
5298
  }, [distance, endInnerSize, milliseconds, onAnimationFinished, repeating, startInnerSize]);
5218
- (0, import_react11.useEffect)(() => {
5299
+ (0, import_react13.useEffect)(() => {
5219
5300
  if (currentInnerSize < endInnerSize) {
5220
5301
  requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
5221
5302
  }
@@ -5250,7 +5331,7 @@ var RadialRings = ({
5250
5331
  sizeCircle2 = 200,
5251
5332
  sizeCircle3 = 300
5252
5333
  }) => {
5253
- const [currentRing, setCurrentRing] = (0, import_react11.useState)(0);
5334
+ const [currentRing, setCurrentRing] = (0, import_react13.useState)(0);
5254
5335
  const size = sizeCircle3;
5255
5336
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
5256
5337
  "div",
@@ -5417,7 +5498,7 @@ var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
5417
5498
  };
5418
5499
 
5419
5500
  // src/components/layout-and-navigation/Carousel.tsx
5420
- var import_react12 = require("react");
5501
+ var import_react14 = require("react");
5421
5502
  var import_clsx17 = __toESM(require("clsx"));
5422
5503
  var import_lucide_react5 = require("lucide-react");
5423
5504
 
@@ -5549,15 +5630,15 @@ var Carousel = ({
5549
5630
  currentPosition,
5550
5631
  dragState,
5551
5632
  animationState
5552
- }, setCarouselInformation] = (0, import_react12.useState)({
5633
+ }, setCarouselInformation] = (0, import_react14.useState)({
5553
5634
  currentPosition: 0
5554
5635
  });
5555
- const animationId = (0, import_react12.useRef)(void 0);
5556
- const timeOut = (0, import_react12.useRef)(void 0);
5636
+ const animationId = (0, import_react14.useRef)(void 0);
5637
+ const timeOut = (0, import_react14.useRef)(void 0);
5557
5638
  autoLoopingTimeOut = Math.max(0, autoLoopingTimeOut);
5558
5639
  const length = children.length;
5559
5640
  const paddingItemCount = 3;
5560
- const util = (0, import_react12.useMemo)(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
5641
+ const util = (0, import_react14.useMemo)(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
5561
5642
  const currentIndex = util.getCorrectedPosition(LoopingArrayCalculator.withoutOffset(currentPosition));
5562
5643
  animationTime = Math.max(200, animationTime);
5563
5644
  autoLoopAnimationTime = Math.max(200, autoLoopAnimationTime);
@@ -5565,7 +5646,7 @@ var Carousel = ({
5565
5646
  const baseOffset = -50 + (index - currentPosition) * 100;
5566
5647
  return `${baseOffset}%`;
5567
5648
  };
5568
- const animation = (0, import_react12.useCallback)((time) => {
5649
+ const animation = (0, import_react14.useCallback)((time) => {
5569
5650
  let keepAnimating = true;
5570
5651
  setCarouselInformation((state) => {
5571
5652
  const {
@@ -5610,7 +5691,7 @@ var Carousel = ({
5610
5691
  animationId.current = requestAnimationFrame((time1) => animation(time1));
5611
5692
  }
5612
5693
  }, [animationTime, autoLoopAnimationTime, util]);
5613
- (0, import_react12.useEffect)(() => {
5694
+ (0, import_react14.useEffect)(() => {
5614
5695
  if (animationState) {
5615
5696
  animationId.current = requestAnimationFrame(animation);
5616
5697
  }
@@ -5632,7 +5713,7 @@ var Carousel = ({
5632
5713
  isAutoLooping: true
5633
5714
  }
5634
5715
  }));
5635
- (0, import_react12.useEffect)(() => {
5716
+ (0, import_react14.useEffect)(() => {
5636
5717
  if (!animationId.current && !animationState && !dragState && !timeOut.current) {
5637
5718
  if (autoLoopingTimeOut > 0) {
5638
5719
  timeOut.current = setTimeout(() => {
@@ -5840,6 +5921,10 @@ var Carousel = ({
5840
5921
  // src/components/layout-and-navigation/Chip.tsx
5841
5922
  var import_clsx18 = __toESM(require("clsx"));
5842
5923
  var import_jsx_runtime21 = require("react/jsx-runtime");
5924
+ var chipColors = ["default", "dark", "red", "yellow", "green", "blue", "pink"];
5925
+ var ChipUtil = {
5926
+ colors: chipColors
5927
+ };
5843
5928
  var Chip = ({
5844
5929
  children,
5845
5930
  trailingIcon,
@@ -6183,17 +6268,17 @@ var import_lucide_react6 = require("lucide-react");
6183
6268
  var import_clsx23 = __toESM(require("clsx"));
6184
6269
 
6185
6270
  // src/components/user-action/Input.tsx
6186
- var import_react16 = require("react");
6271
+ var import_react18 = require("react");
6187
6272
  var import_clsx22 = __toESM(require("clsx"));
6188
6273
 
6189
6274
  // src/hooks/useDelay.ts
6190
- var import_react13 = require("react");
6275
+ var import_react15 = require("react");
6191
6276
  var defaultOptions = {
6192
6277
  delay: 3e3,
6193
6278
  disabled: false
6194
6279
  };
6195
6280
  function useDelay(options) {
6196
- const [timer, setTimer] = (0, import_react13.useState)(void 0);
6281
+ const [timer, setTimer] = (0, import_react15.useState)(void 0);
6197
6282
  const { delay, disabled } = {
6198
6283
  ...defaultOptions,
6199
6284
  ...options
@@ -6212,12 +6297,12 @@ function useDelay(options) {
6212
6297
  setTimer(void 0);
6213
6298
  }, delay));
6214
6299
  };
6215
- (0, import_react13.useEffect)(() => {
6300
+ (0, import_react15.useEffect)(() => {
6216
6301
  return () => {
6217
6302
  clearTimeout(timer);
6218
6303
  };
6219
6304
  }, [timer]);
6220
- (0, import_react13.useEffect)(() => {
6305
+ (0, import_react15.useEffect)(() => {
6221
6306
  if (disabled) {
6222
6307
  clearTimeout(timer);
6223
6308
  setTimer(void 0);
@@ -6245,9 +6330,9 @@ var Label = ({
6245
6330
  };
6246
6331
 
6247
6332
  // src/hooks/useFocusManagement.ts
6248
- var import_react14 = require("react");
6333
+ var import_react16 = require("react");
6249
6334
  function useFocusManagement() {
6250
- const getFocusableElements = (0, import_react14.useCallback)(() => {
6335
+ const getFocusableElements = (0, import_react16.useCallback)(() => {
6251
6336
  return Array.from(
6252
6337
  document.querySelectorAll(
6253
6338
  'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
@@ -6256,7 +6341,7 @@ function useFocusManagement() {
6256
6341
  (el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
6257
6342
  );
6258
6343
  }, []);
6259
- const getNextFocusElement = (0, import_react14.useCallback)(() => {
6344
+ const getNextFocusElement = (0, import_react16.useCallback)(() => {
6260
6345
  const elements = getFocusableElements();
6261
6346
  if (elements.length === 0) {
6262
6347
  return void 0;
@@ -6268,11 +6353,11 @@ function useFocusManagement() {
6268
6353
  }
6269
6354
  return nextElement;
6270
6355
  }, [getFocusableElements]);
6271
- const focusNext = (0, import_react14.useCallback)(() => {
6356
+ const focusNext = (0, import_react16.useCallback)(() => {
6272
6357
  const nextElement = getNextFocusElement();
6273
6358
  nextElement?.focus();
6274
6359
  }, [getNextFocusElement]);
6275
- const getPreviousFocusElement = (0, import_react14.useCallback)(() => {
6360
+ const getPreviousFocusElement = (0, import_react16.useCallback)(() => {
6276
6361
  const elements = getFocusableElements();
6277
6362
  if (elements.length === 0) {
6278
6363
  return void 0;
@@ -6288,7 +6373,7 @@ function useFocusManagement() {
6288
6373
  }
6289
6374
  return previousElement;
6290
6375
  }, [getFocusableElements]);
6291
- const focusPrevious = (0, import_react14.useCallback)(() => {
6376
+ const focusPrevious = (0, import_react16.useCallback)(() => {
6292
6377
  const previousElement = getPreviousFocusElement();
6293
6378
  if (previousElement) previousElement.focus();
6294
6379
  }, [getPreviousFocusElement]);
@@ -6302,10 +6387,10 @@ function useFocusManagement() {
6302
6387
  }
6303
6388
 
6304
6389
  // src/hooks/useFocusOnceVisible.ts
6305
- var import_react15 = __toESM(require("react"));
6390
+ var import_react17 = __toESM(require("react"));
6306
6391
  var useFocusOnceVisible = (ref, disable = false) => {
6307
- const [hasUsedFocus, setHasUsedFocus] = import_react15.default.useState(false);
6308
- (0, import_react15.useEffect)(() => {
6392
+ const [hasUsedFocus, setHasUsedFocus] = import_react17.default.useState(false);
6393
+ (0, import_react17.useEffect)(() => {
6309
6394
  if (disable || hasUsedFocus) {
6310
6395
  return;
6311
6396
  }
@@ -6330,7 +6415,7 @@ var getInputClassName = ({ disabled = false, hasError = false }) => {
6330
6415
  return (0, import_clsx22.default)(
6331
6416
  "px-2 py-1.5 rounded-md border-2",
6332
6417
  {
6333
- "bg-surface text-on-surface hover:border-primary focus:border-primary": !disabled && !hasError,
6418
+ "bg-input-background text-input-text hover:border-primary focus:border-primary": !disabled && !hasError,
6334
6419
  "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover": !disabled && hasError,
6335
6420
  "bg-disabled-background text-disabled-text border-disabled-border": disabled
6336
6421
  }
@@ -6341,7 +6426,7 @@ var defaultEditCompleteOptions = {
6341
6426
  afterDelay: true,
6342
6427
  delay: 2500
6343
6428
  };
6344
- var Input = (0, import_react16.forwardRef)(function Input2({
6429
+ var Input = (0, import_react18.forwardRef)(function Input2({
6345
6430
  id,
6346
6431
  type = "text",
6347
6432
  value,
@@ -6364,10 +6449,10 @@ var Input = (0, import_react16.forwardRef)(function Input2({
6364
6449
  restartTimer,
6365
6450
  clearTimer
6366
6451
  } = useDelay({ delay, disabled: !afterDelay });
6367
- const innerRef = (0, import_react16.useRef)(null);
6452
+ const innerRef = (0, import_react18.useRef)(null);
6368
6453
  const { focusNext } = useFocusManagement();
6369
6454
  useFocusOnceVisible(innerRef, !autoFocus);
6370
- (0, import_react16.useImperativeHandle)(forwardedRef, () => innerRef.current);
6455
+ (0, import_react18.useImperativeHandle)(forwardedRef, () => innerRef.current);
6371
6456
  const handleKeyDown = (e) => {
6372
6457
  if (e.key === "Enter" && !e.shiftKey) {
6373
6458
  e.preventDefault();
@@ -6421,8 +6506,8 @@ var InputUncontrolled = ({
6421
6506
  onChangeText = noop,
6422
6507
  ...props
6423
6508
  }) => {
6424
- const [usedValue, setUsedValue] = (0, import_react16.useState)(value);
6425
- (0, import_react16.useEffect)(() => {
6509
+ const [usedValue, setUsedValue] = (0, import_react18.useState)(value);
6510
+ (0, import_react18.useEffect)(() => {
6426
6511
  setUsedValue(value);
6427
6512
  }, [value]);
6428
6513
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
@@ -6437,7 +6522,7 @@ var InputUncontrolled = ({
6437
6522
  }
6438
6523
  );
6439
6524
  };
6440
- var FormInput = (0, import_react16.forwardRef)(function FormInput2({
6525
+ var FormInput = (0, import_react18.forwardRef)(function FormInput2({
6441
6526
  id,
6442
6527
  labelText,
6443
6528
  errorText,
@@ -6473,7 +6558,7 @@ var FormInput = (0, import_react16.forwardRef)(function FormInput2({
6473
6558
  });
6474
6559
 
6475
6560
  // src/components/layout-and-navigation/Pagination.tsx
6476
- var import_react17 = require("react");
6561
+ var import_react19 = require("react");
6477
6562
  var import_jsx_runtime27 = require("react/jsx-runtime");
6478
6563
  var Pagination = ({
6479
6564
  overwriteTranslation,
@@ -6484,11 +6569,11 @@ var Pagination = ({
6484
6569
  style
6485
6570
  }) => {
6486
6571
  const translation = useTranslation([formTranslation], overwriteTranslation);
6487
- const [value, setValue] = (0, import_react17.useState)((pageIndex + 1).toString());
6572
+ const [value, setValue] = (0, import_react19.useState)((pageIndex + 1).toString());
6488
6573
  const noPages = pageCount === 0;
6489
6574
  const onFirstPage = pageIndex === 0 && !noPages;
6490
6575
  const onLastPage = pageIndex === pageCount - 1;
6491
- (0, import_react17.useEffect)(() => {
6576
+ (0, import_react19.useEffect)(() => {
6492
6577
  if (noPages) {
6493
6578
  setValue("0");
6494
6579
  } else {
@@ -6531,7 +6616,7 @@ var Pagination = ({
6531
6616
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
6532
6617
  "span",
6533
6618
  {
6534
- className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
6619
+ className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-input-background text-input-text rounded-md font-bold",
6535
6620
  children: pageCount
6536
6621
  }
6537
6622
  )
@@ -6546,7 +6631,7 @@ var import_lucide_react7 = require("lucide-react");
6546
6631
  var import_clsx24 = __toESM(require("clsx"));
6547
6632
 
6548
6633
  // src/hooks/useSearch.ts
6549
- var import_react18 = require("react");
6634
+ var import_react20 = require("react");
6550
6635
 
6551
6636
  // src/util/simpleSearch.ts
6552
6637
  var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
@@ -6585,34 +6670,34 @@ var useSearch = ({
6585
6670
  filter,
6586
6671
  disabled = false
6587
6672
  }) => {
6588
- const [search, setSearch] = (0, import_react18.useState)(initialSearch ?? "");
6589
- const [result, setResult] = (0, import_react18.useState)(list);
6590
- const searchTags = (0, import_react18.useMemo)(() => additionalSearchTags ?? [], [additionalSearchTags]);
6591
- const updateSearch = (0, import_react18.useCallback)((newSearch) => {
6673
+ const [search, setSearch] = (0, import_react20.useState)(initialSearch ?? "");
6674
+ const [result, setResult] = (0, import_react20.useState)(list);
6675
+ const searchTags = (0, import_react20.useMemo)(() => additionalSearchTags ?? [], [additionalSearchTags]);
6676
+ const updateSearch = (0, import_react20.useCallback)((newSearch) => {
6592
6677
  const usedSearch = newSearch ?? search;
6593
6678
  if (newSearch) {
6594
6679
  setSearch(search);
6595
6680
  }
6596
6681
  setResult(MultiSubjectSearchWithMapping([usedSearch, ...searchTags], list, searchMapping));
6597
6682
  }, [searchTags, list, search, searchMapping]);
6598
- (0, import_react18.useEffect)(() => {
6683
+ (0, import_react20.useEffect)(() => {
6599
6684
  if (isSearchInstant) {
6600
6685
  setResult(MultiSubjectSearchWithMapping([search, ...searchTags], list, searchMapping));
6601
6686
  }
6602
6687
  }, [searchTags, isSearchInstant, list, search, searchMapping, additionalSearchTags]);
6603
- const filteredResult = (0, import_react18.useMemo)(() => {
6688
+ const filteredResult = (0, import_react20.useMemo)(() => {
6604
6689
  if (!filter) {
6605
6690
  return result;
6606
6691
  }
6607
6692
  return result.filter(filter);
6608
6693
  }, [result, filter]);
6609
- const sortedAndFilteredResult = (0, import_react18.useMemo)(() => {
6694
+ const sortedAndFilteredResult = (0, import_react20.useMemo)(() => {
6610
6695
  if (!sortingFunction) {
6611
6696
  return filteredResult;
6612
6697
  }
6613
6698
  return filteredResult.sort(sortingFunction);
6614
6699
  }, [filteredResult, sortingFunction]);
6615
- const usedResult = (0, import_react18.useMemo)(() => {
6700
+ const usedResult = (0, import_react20.useMemo)(() => {
6616
6701
  if (!disabled) {
6617
6702
  return sortedAndFilteredResult;
6618
6703
  }
@@ -6672,7 +6757,7 @@ var SearchableList = ({
6672
6757
  // src/components/layout-and-navigation/StepperBar.tsx
6673
6758
  var import_lucide_react8 = require("lucide-react");
6674
6759
  var import_clsx25 = __toESM(require("clsx"));
6675
- var import_react19 = require("react");
6760
+ var import_react21 = require("react");
6676
6761
  var import_jsx_runtime29 = require("react/jsx-runtime");
6677
6762
  var defaultState = {
6678
6763
  currentStep: 0,
@@ -6766,8 +6851,8 @@ var StepperBar = ({
6766
6851
  );
6767
6852
  };
6768
6853
  var StepperBarUncontrolled = ({ state, onChange, ...props }) => {
6769
- const [usedState, setUsedState] = (0, import_react19.useState)(state ?? defaultState);
6770
- (0, import_react19.useEffect)(() => {
6854
+ const [usedState, setUsedState] = (0, import_react21.useState)(state ?? defaultState);
6855
+ (0, import_react21.useEffect)(() => {
6771
6856
  setUsedState(state ?? defaultState);
6772
6857
  }, [state]);
6773
6858
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
@@ -6912,7 +6997,7 @@ var ErrorComponent = ({
6912
6997
  };
6913
6998
 
6914
6999
  // src/components/loading-states/LoadingAndErrorComponent.tsx
6915
- var import_react20 = require("react");
7000
+ var import_react22 = require("react");
6916
7001
 
6917
7002
  // src/components/loading-states/LoadingContainer.tsx
6918
7003
  var import_clsx28 = require("clsx");
@@ -6933,8 +7018,8 @@ var LoadingAndErrorComponent = ({
6933
7018
  minimumLoadingDuration,
6934
7019
  className
6935
7020
  }) => {
6936
- const [isInMinimumLoading, setIsInMinimumLoading] = (0, import_react20.useState)(false);
6937
- const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = (0, import_react20.useState)(false);
7021
+ const [isInMinimumLoading, setIsInMinimumLoading] = (0, import_react22.useState)(false);
7022
+ const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = (0, import_react22.useState)(false);
6938
7023
  if (minimumLoadingDuration && !isInMinimumLoading && !hasUsedMinimumLoading) {
6939
7024
  setIsInMinimumLoading(true);
6940
7025
  setTimeout(() => {
@@ -7137,18 +7222,18 @@ var InputModal = ({
7137
7222
  };
7138
7223
 
7139
7224
  // src/components/user-action/Select.tsx
7140
- var import_react23 = require("react");
7141
- var import_react24 = require("react");
7225
+ var import_react25 = require("react");
7226
+ var import_react26 = require("react");
7142
7227
  var import_clsx35 = __toESM(require("clsx"));
7143
7228
 
7144
7229
  // src/components/user-action/Menu.tsx
7145
- var import_react22 = require("react");
7230
+ var import_react24 = require("react");
7146
7231
  var import_clsx33 = __toESM(require("clsx"));
7147
7232
 
7148
7233
  // src/hooks/useOutsideClick.ts
7149
- var import_react21 = require("react");
7234
+ var import_react23 = require("react");
7150
7235
  var useOutsideClick = (refs, handler) => {
7151
- (0, import_react21.useEffect)(() => {
7236
+ (0, import_react23.useEffect)(() => {
7152
7237
  const listener = (event) => {
7153
7238
  if (event.target === null) return;
7154
7239
  if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
@@ -7242,7 +7327,7 @@ var MenuItem = ({
7242
7327
  }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7243
7328
  "div",
7244
7329
  {
7245
- className: (0, import_clsx33.default)("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold", {
7330
+ className: (0, import_clsx33.default)("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold text-nowrap", {
7246
7331
  "text-right": alignment === "right",
7247
7332
  "text-left": alignment === "left",
7248
7333
  "text-disabled-text cursor-not-allowed": isDisabled,
@@ -7272,10 +7357,10 @@ var Menu = ({
7272
7357
  menuClassName = ""
7273
7358
  }) => {
7274
7359
  const { isHovered: isOpen, setIsHovered: setIsOpen } = useHoverState({ isDisabled: !showOnHover || disabled });
7275
- const triggerRef = (0, import_react22.useRef)(null);
7276
- const menuRef = (0, import_react22.useRef)(null);
7360
+ const triggerRef = (0, import_react24.useRef)(null);
7361
+ const menuRef = (0, import_react24.useRef)(null);
7277
7362
  useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
7278
- const [isHidden, setIsHidden] = (0, import_react22.useState)(true);
7363
+ const [isHidden, setIsHidden] = (0, import_react24.useState)(true);
7279
7364
  const bag = {
7280
7365
  isOpen,
7281
7366
  close: () => setIsOpen(false),
@@ -7286,7 +7371,7 @@ var Menu = ({
7286
7371
  triggerRef.current?.getBoundingClientRect(),
7287
7372
  { verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
7288
7373
  );
7289
- (0, import_react22.useEffect)(() => {
7374
+ (0, import_react24.useEffect)(() => {
7290
7375
  if (!isOpen) return;
7291
7376
  const triggerEl = triggerRef.current;
7292
7377
  if (!triggerEl) return;
@@ -7303,7 +7388,7 @@ var Menu = ({
7303
7388
  window.removeEventListener("resize", close);
7304
7389
  };
7305
7390
  }, [isOpen, setIsOpen]);
7306
- (0, import_react22.useEffect)(() => {
7391
+ (0, import_react24.useEffect)(() => {
7307
7392
  if (isOpen) {
7308
7393
  setIsHidden(false);
7309
7394
  }
@@ -7316,7 +7401,7 @@ var Menu = ({
7316
7401
  ref: menuRef,
7317
7402
  onClick: (e) => e.stopPropagation(),
7318
7403
  className: (0, import_clsx33.default)(
7319
- "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg z-10",
7404
+ "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg shadow-strong z-[300]",
7320
7405
  {
7321
7406
  "animate-pop-in": isOpen,
7322
7407
  "animate-pop-out": !isOpen,
@@ -7401,7 +7486,7 @@ var Select = ({
7401
7486
  const isShowingHint = !selectedDisplayOverwrite && !selectedOption?.label;
7402
7487
  const { result, search, setSearch } = useSearch({
7403
7488
  list: options,
7404
- searchMapping: (0, import_react23.useCallback)((item) => item.searchTags, []),
7489
+ searchMapping: (0, import_react25.useCallback)((item) => item.searchTags, []),
7405
7490
  ...searchOptions
7406
7491
  });
7407
7492
  return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: (0, import_clsx35.default)(className), children: [
@@ -7418,7 +7503,7 @@ var Select = ({
7418
7503
  "btn-md justify-between w-full border-2",
7419
7504
  {
7420
7505
  "rounded-b-lg": !open,
7421
- "bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
7506
+ "bg-input-background text-input-text hover:border-primary": !disabled,
7422
7507
  "bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
7423
7508
  },
7424
7509
  triggerClassName
@@ -7473,8 +7558,8 @@ var SelectUncontrolled = ({
7473
7558
  hintText,
7474
7559
  ...props
7475
7560
  }) => {
7476
- const [selected, setSelected] = (0, import_react24.useState)(value);
7477
- (0, import_react24.useEffect)(() => {
7561
+ const [selected, setSelected] = (0, import_react26.useState)(value);
7562
+ (0, import_react26.useEffect)(() => {
7478
7563
  if (options.find((options2) => options2.value === value)) {
7479
7564
  setSelected(value);
7480
7565
  }
@@ -7535,7 +7620,8 @@ var LanguageModal = ({
7535
7620
  className: "mt-2",
7536
7621
  value: language,
7537
7622
  options: LanguageUtil.languages.map((language2) => ({ label: translation(language2), value: language2 })),
7538
- onChange: (language2) => setLanguage(language2)
7623
+ onChange: (language2) => setLanguage(language2),
7624
+ searchOptions: { disabled: true }
7539
7625
  }
7540
7626
  ),
7541
7627
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
@@ -7545,13 +7631,15 @@ var LanguageModal = ({
7545
7631
  };
7546
7632
 
7547
7633
  // src/theming/useTheme.tsx
7548
- var import_react25 = require("react");
7634
+ var import_react27 = require("react");
7635
+ var import_react28 = require("react");
7549
7636
  var import_jsx_runtime45 = require("react/jsx-runtime");
7550
- var themes = ["light", "dark"];
7637
+ var themes = ["light", "dark", "system"];
7551
7638
  var defaultThemeTypeTranslation = {
7552
7639
  en: {
7553
7640
  dark: "Dark",
7554
7641
  light: "Light",
7642
+ system: "System",
7555
7643
  theme: {
7556
7644
  one: "Theme",
7557
7645
  other: "Themes"
@@ -7560,6 +7648,7 @@ var defaultThemeTypeTranslation = {
7560
7648
  de: {
7561
7649
  dark: "Dunkel",
7562
7650
  light: "Hell",
7651
+ system: "System",
7563
7652
  theme: {
7564
7653
  one: "Farbschema",
7565
7654
  other: "Farbschemas"
@@ -7570,24 +7659,30 @@ var ThemeUtil = {
7570
7659
  themes,
7571
7660
  translation: defaultThemeTypeTranslation
7572
7661
  };
7573
- var ThemeContext = (0, import_react25.createContext)({
7662
+ var ThemeContext = (0, import_react28.createContext)({
7574
7663
  theme: "light",
7575
7664
  setTheme: noop
7576
7665
  });
7577
- var ThemeProvider = ({ children, initialTheme = "light" }) => {
7578
- const [theme, setTheme] = (0, import_react25.useState)(initialTheme);
7579
- (0, import_react25.useEffect)(() => {
7580
- if (theme !== initialTheme) {
7666
+ var ThemeProvider = ({ children, initialTheme = "system" }) => {
7667
+ const [storedTheme, setStoredTheme] = useLocalStorage("theme", initialTheme);
7668
+ const [userTheme, setUserTheme] = (0, import_react28.useState)();
7669
+ (0, import_react28.useEffect)(() => {
7670
+ if (storedTheme !== initialTheme) {
7581
7671
  console.warn("ThemeProvider initial state changed: Prefer using useTheme's setTheme instead");
7582
- setTheme(initialTheme);
7672
+ setStoredTheme(initialTheme);
7583
7673
  }
7584
7674
  }, [initialTheme]);
7585
- (0, import_react25.useEffect)(() => {
7586
- document.documentElement.setAttribute("data-theme", theme);
7587
- }, [theme]);
7588
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ThemeContext.Provider, { value: { theme, setTheme }, children });
7675
+ const usedTheme = (0, import_react27.useMemo)(() => storedTheme !== "system" ? storedTheme : userTheme, [storedTheme, userTheme]);
7676
+ (0, import_react28.useEffect)(() => {
7677
+ document.documentElement.setAttribute("data-theme", usedTheme);
7678
+ }, [usedTheme]);
7679
+ (0, import_react28.useEffect)(() => {
7680
+ const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
7681
+ setUserTheme(prefersDark ? "dark" : "light");
7682
+ }, []);
7683
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ThemeContext.Provider, { value: { theme: storedTheme, setTheme: setStoredTheme }, children });
7589
7684
  };
7590
- var useTheme = () => (0, import_react25.useContext)(ThemeContext);
7685
+ var useTheme = () => (0, import_react28.useContext)(ThemeContext);
7591
7686
 
7592
7687
  // src/components/modals/ThemeModal.tsx
7593
7688
  var import_jsx_runtime46 = require("react/jsx-runtime");
@@ -7624,7 +7719,8 @@ var ThemeModal = ({
7624
7719
  className: "mt-2",
7625
7720
  value: theme,
7626
7721
  options: ThemeUtil.themes.map((theme2) => ({ label: translation(theme2), value: theme2 })),
7627
- onChange: (theme2) => setTheme(theme2)
7722
+ onChange: (theme2) => setTheme(theme2),
7723
+ searchOptions: { disabled: true }
7628
7724
  }
7629
7725
  ),
7630
7726
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
@@ -7637,7 +7733,7 @@ var ThemeModal = ({
7637
7733
  var import_lucide_react13 = require("lucide-react");
7638
7734
 
7639
7735
  // src/components/user-action/Checkbox.tsx
7640
- var import_react26 = require("react");
7736
+ var import_react29 = require("react");
7641
7737
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
7642
7738
  var import_lucide_react11 = require("lucide-react");
7643
7739
  var import_clsx36 = __toESM(require("clsx"));
@@ -7688,7 +7784,7 @@ var Checkbox = ({
7688
7784
  className: (0, import_clsx36.default)(usedSizeClass, `items-center border-2 rounded outline-none `, {
7689
7785
  "text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
7690
7786
  "focus:border-primary group-hover:border-primary ": !disabled,
7691
- "bg-surface": !disabled && !checked,
7787
+ "bg-input-background": !disabled && !checked,
7692
7788
  "bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
7693
7789
  }, className),
7694
7790
  children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(CheckboxPrimitive.Indicator, { children: [
@@ -7706,7 +7802,7 @@ var CheckboxUncontrolled = ({
7706
7802
  defaultValue = false,
7707
7803
  ...props
7708
7804
  }) => {
7709
- const [checked, setChecked] = (0, import_react26.useState)(defaultValue);
7805
+ const [checked, setChecked] = (0, import_react29.useState)(defaultValue);
7710
7806
  const handleChange = (checked2) => {
7711
7807
  if (onChangeTristate) {
7712
7808
  onChangeTristate(checked2);
@@ -7767,7 +7863,7 @@ var PropertyBase = ({
7767
7863
  className: (0, import_clsx37.default)(
7768
7864
  "flex-row-2 grow px-3 py-2 justify-between items-center rounded-r-xl border-2 border-l-0 min-h-15",
7769
7865
  {
7770
- "bg-surface group-hover:border-primary": !requiredAndNoValue,
7866
+ "bg-input-background text-input-text group-hover:border-primary": !requiredAndNoValue,
7771
7867
  "bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
7772
7868
  },
7773
7869
  className
@@ -7870,8 +7966,8 @@ var import_lucide_react16 = require("lucide-react");
7870
7966
  var import_clsx40 = __toESM(require("clsx"));
7871
7967
 
7872
7968
  // src/components/user-action/MultiSelect.tsx
7873
- var import_react27 = require("react");
7874
- var import_react28 = require("react");
7969
+ var import_react30 = require("react");
7970
+ var import_react31 = require("react");
7875
7971
  var import_clsx39 = __toESM(require("clsx"));
7876
7972
  var import_lucide_react15 = require("lucide-react");
7877
7973
  var import_jsx_runtime51 = require("react/jsx-runtime");
@@ -7901,7 +7997,7 @@ var MultiSelect = ({
7901
7997
  const translation = useTranslation([formTranslation, defaultMultiSelectTranslation], overwriteTranslation);
7902
7998
  const { result, search, setSearch } = useSearch({
7903
7999
  list: options,
7904
- searchMapping: (0, import_react27.useCallback)((item) => item.searchTags, []),
8000
+ searchMapping: (0, import_react30.useCallback)((item) => item.searchTags, []),
7905
8001
  ...searchOptions
7906
8002
  });
7907
8003
  const selectedItems = options.filter((value) => value.selected);
@@ -7925,17 +8021,17 @@ var MultiSelect = ({
7925
8021
  {
7926
8022
  ref,
7927
8023
  className: (0, import_clsx39.default)(
7928
- "btn-md justify-between w-full border-2 h-auto",
8024
+ "group btn-md justify-between w-full border-2 h-auto",
7929
8025
  {
7930
8026
  "min-h-14": useChipDisplay,
7931
- "bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
8027
+ "bg-input-background text-input-text hover:border-primary": !disabled,
7932
8028
  "bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
7933
8029
  },
7934
8030
  triggerClassName
7935
8031
  ),
7936
8032
  onClick: toggleOpen,
7937
8033
  disabled,
7938
- children: useChipDisplay ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: isShowingHint ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconButton, { disabled, size: "small", color: "neutral", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react15.Plus, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
8034
+ children: useChipDisplay ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: isShowingHint ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "icon-btn-sm bg-button-solid-neutral-background text-button-solid-neutral-text hover:brightness-90 group-hover:brightness-90", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react15.Plus, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
7939
8035
  !isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? translation("selected", { replacements: { amount: selectedItems.length.toString() } }) }),
7940
8036
  isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: (0, import_clsx39.default)("textstyle-description", hintTextClassName), children: hintText ?? translation("select") }),
7941
8037
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ExpansionIcon, { isExpanded: isOpen })
@@ -8028,8 +8124,8 @@ var MultiSelectUncontrolled = ({
8028
8124
  onChange,
8029
8125
  ...props
8030
8126
  }) => {
8031
- const [usedOptions, setUsedOptions] = (0, import_react28.useState)(options);
8032
- (0, import_react28.useEffect)(() => {
8127
+ const [usedOptions, setUsedOptions] = (0, import_react31.useState)(options);
8128
+ (0, import_react31.useEffect)(() => {
8033
8129
  setUsedOptions(options);
8034
8130
  }, [options]);
8035
8131
  return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
@@ -8257,7 +8353,7 @@ var import_lucide_react19 = require("lucide-react");
8257
8353
  var import_clsx44 = __toESM(require("clsx"));
8258
8354
 
8259
8355
  // src/components/user-action/Textarea.tsx
8260
- var import_react29 = require("react");
8356
+ var import_react32 = require("react");
8261
8357
  var import_clsx43 = __toESM(require("clsx"));
8262
8358
  var import_jsx_runtime55 = require("react/jsx-runtime");
8263
8359
  var Textarea = ({
@@ -8276,7 +8372,7 @@ var Textarea = ({
8276
8372
  className,
8277
8373
  ...props
8278
8374
  }) => {
8279
- const [hasFocus, setHasFocus] = (0, import_react29.useState)(false);
8375
+ const [hasFocus, setHasFocus] = (0, import_react32.useState)(false);
8280
8376
  const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
8281
8377
  const onEditCompletedWrapper = (text) => {
8282
8378
  onEditCompleted(text);
@@ -8296,11 +8392,11 @@ var Textarea = ({
8296
8392
  "div",
8297
8393
  {
8298
8394
  className: (0, import_clsx43.default)(
8299
- "bg-surface text-on-surface relative",
8395
+ "bg-input-background text-input-text relative",
8300
8396
  {
8301
- "shadow border-2 rounded-lg": defaultStyle,
8397
+ "border-2 rounded-lg": defaultStyle,
8302
8398
  "hover:border-primary focus-within:border-primary": defaultStyle && !disabled,
8303
- "border-disabled-border cursor-not-allowed": defaultStyle && !disabled
8399
+ "border-disabled-border cursor-not-allowed": defaultStyle && disabled
8304
8400
  }
8305
8401
  ),
8306
8402
  children: [
@@ -8346,8 +8442,8 @@ var TextareaUncontrolled = ({
8346
8442
  onChangeText = noop,
8347
8443
  ...props
8348
8444
  }) => {
8349
- const [text, setText] = (0, import_react29.useState)(value);
8350
- (0, import_react29.useEffect)(() => {
8445
+ const [text, setText] = (0, import_react32.useState)(value);
8446
+ (0, import_react32.useEffect)(() => {
8351
8447
  setText(value);
8352
8448
  }, [value]);
8353
8449
  return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
@@ -8444,14 +8540,14 @@ var TableFilters = {
8444
8540
  };
8445
8541
 
8446
8542
  // src/components/table/Table.tsx
8447
- var import_react32 = require("react");
8543
+ var import_react35 = require("react");
8448
8544
  var import_clsx48 = __toESM(require("clsx"));
8449
8545
  var import_react_table = require("@tanstack/react-table");
8450
8546
  var import_react_custom_scrollbars_23 = require("react-custom-scrollbars-2");
8451
8547
 
8452
8548
  // src/components/table/TableFilterButton.tsx
8453
8549
  var import_lucide_react20 = require("lucide-react");
8454
- var import_react30 = require("react");
8550
+ var import_react33 = require("react");
8455
8551
  var import_jsx_runtime58 = require("react/jsx-runtime");
8456
8552
  var defaultTableFilterTranslation = {
8457
8553
  en: {
@@ -8477,9 +8573,9 @@ var TableFilterButton = ({
8477
8573
  }) => {
8478
8574
  const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
8479
8575
  const columnFilterValue = column.getFilterValue();
8480
- const [filterValue, setFilterValue] = (0, import_react30.useState)(columnFilterValue);
8576
+ const [filterValue, setFilterValue] = (0, import_react33.useState)(columnFilterValue);
8481
8577
  const hasFilter = !!filterValue;
8482
- (0, import_react30.useEffect)(() => {
8578
+ (0, import_react33.useEffect)(() => {
8483
8579
  setFilterValue(columnFilterValue);
8484
8580
  }, [columnFilterValue]);
8485
8581
  return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
@@ -8611,9 +8707,9 @@ var TableSortButton = ({
8611
8707
  };
8612
8708
 
8613
8709
  // src/hooks/useResizeCallbackWrapper.ts
8614
- var import_react31 = require("react");
8710
+ var import_react34 = require("react");
8615
8711
  var useResizeCallbackWrapper = (callback) => {
8616
- (0, import_react31.useEffect)(() => {
8712
+ (0, import_react34.useEffect)(() => {
8617
8713
  window.addEventListener("resize", callback);
8618
8714
  return () => {
8619
8715
  window.removeEventListener("resize", callback);
@@ -8645,22 +8741,22 @@ var Table = ({
8645
8741
  columns,
8646
8742
  ...tableOptions
8647
8743
  }) => {
8648
- const ref = (0, import_react32.useRef)(null);
8649
- const tableRef = (0, import_react32.useRef)(null);
8650
- const [columnSizing, setColumnSizing] = (0, import_react32.useState)(columns.reduce((previousValue, currentValue) => {
8744
+ const ref = (0, import_react35.useRef)(null);
8745
+ const tableRef = (0, import_react35.useRef)(null);
8746
+ const [columnSizing, setColumnSizing] = (0, import_react35.useState)(columns.reduce((previousValue, currentValue) => {
8651
8747
  return {
8652
8748
  ...previousValue,
8653
8749
  [currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
8654
8750
  };
8655
8751
  }, {}));
8656
- const [columnSizingInfo, setColumnSizingInfo] = (0, import_react32.useState)();
8657
- const [pagination, setPagination] = (0, import_react32.useState)({
8752
+ const [columnSizingInfo, setColumnSizingInfo] = (0, import_react35.useState)();
8753
+ const [pagination, setPagination] = (0, import_react35.useState)({
8658
8754
  pageSize: 10,
8659
8755
  pageIndex: 0,
8660
8756
  ...initialState?.pagination
8661
8757
  });
8662
- const [columnFilters, setColumnFilters] = (0, import_react32.useState)(initialState?.columnFilters);
8663
- const computedColumnMinWidths = (0, import_react32.useMemo)(() => {
8758
+ const [columnFilters, setColumnFilters] = (0, import_react35.useState)(initialState?.columnFilters);
8759
+ const computedColumnMinWidths = (0, import_react35.useMemo)(() => {
8664
8760
  return columns.reduce((previousValue, column) => {
8665
8761
  return {
8666
8762
  ...previousValue,
@@ -8669,7 +8765,7 @@ var Table = ({
8669
8765
  };
8670
8766
  }, {});
8671
8767
  }, [columns, defaultColumn]);
8672
- const computedColumnMaxWidths = (0, import_react32.useMemo)(() => {
8768
+ const computedColumnMaxWidths = (0, import_react35.useMemo)(() => {
8673
8769
  return columns.reduce((previousValue, column) => {
8674
8770
  return {
8675
8771
  ...previousValue,
@@ -8677,12 +8773,12 @@ var Table = ({
8677
8773
  };
8678
8774
  }, {});
8679
8775
  }, [columns, defaultColumn]);
8680
- const tableMinWidth = (0, import_react32.useMemo)(() => {
8776
+ const tableMinWidth = (0, import_react35.useMemo)(() => {
8681
8777
  return columns.reduce((sum, column) => {
8682
8778
  return sum + computedColumnMinWidths[column.id];
8683
8779
  }, 0);
8684
8780
  }, [columns, computedColumnMinWidths]);
8685
- const updateColumnSizes = (0, import_react32.useMemo)(() => {
8781
+ const updateColumnSizes = (0, import_react35.useMemo)(() => {
8686
8782
  return (previous) => {
8687
8783
  const updateSizing = {
8688
8784
  ...columnSizing,
@@ -8799,18 +8895,18 @@ var Table = ({
8799
8895
  columnResizeMode: "onChange",
8800
8896
  ...tableOptions
8801
8897
  });
8802
- const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react32.useState)(false);
8803
- (0, import_react32.useEffect)(() => {
8898
+ const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react35.useState)(false);
8899
+ (0, import_react35.useEffect)(() => {
8804
8900
  if (!hasInitializedSizing && ref.current) {
8805
8901
  setHasInitializedSizing(true);
8806
8902
  table.setColumnSizing(updateColumnSizes(columnSizing));
8807
8903
  }
8808
8904
  }, [columnSizing, hasInitializedSizing]);
8809
- useResizeCallbackWrapper((0, import_react32.useCallback)(() => {
8905
+ useResizeCallbackWrapper((0, import_react35.useCallback)(() => {
8810
8906
  table.setColumnSizing(updateColumnSizes);
8811
8907
  }, [updateColumnSizes]));
8812
8908
  const pageCount = table.getPageCount();
8813
- (0, import_react32.useEffect)(() => {
8909
+ (0, import_react35.useEffect)(() => {
8814
8910
  const totalPages = pageCount;
8815
8911
  if (totalPages === 0) {
8816
8912
  if (pagination.pageIndex !== 0) {
@@ -8826,7 +8922,7 @@ var Table = ({
8826
8922
  }));
8827
8923
  }
8828
8924
  }, [data, pageCount, pagination.pageSize, pagination.pageIndex]);
8829
- const columnSizeVars = (0, import_react32.useMemo)(() => {
8925
+ const columnSizeVars = (0, import_react35.useMemo)(() => {
8830
8926
  const headers = table.getFlatHeaders();
8831
8927
  const colSizes = {};
8832
8928
  for (let i = 0; i < headers.length; i++) {
@@ -8841,7 +8937,7 @@ var Table = ({
8841
8937
  import_react_custom_scrollbars_23.Scrollbars,
8842
8938
  {
8843
8939
  autoHeight: true,
8844
- autoHeightMax: tableRef.current?.offsetHeight + 2,
8940
+ autoHeightMax: tableRef.current?.offsetHeight ? tableRef.current?.offsetHeight + 2 : void 0,
8845
8941
  autoHide: true,
8846
8942
  children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
8847
8943
  "table",
@@ -8941,8 +9037,8 @@ var Table = ({
8941
9037
  ] });
8942
9038
  };
8943
9039
  var TableUncontrolled = ({ data, ...props }) => {
8944
- const [usedDate, setUsedData] = (0, import_react32.useState)(data);
8945
- (0, import_react32.useEffect)(() => {
9040
+ const [usedDate, setUsedData] = (0, import_react35.useState)(data);
9041
+ (0, import_react35.useEffect)(() => {
8946
9042
  setUsedData(data);
8947
9043
  }, [data]);
8948
9044
  return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
@@ -8964,7 +9060,7 @@ var TableWithSelection = ({
8964
9060
  meta,
8965
9061
  ...props
8966
9062
  }) => {
8967
- const columnsWithSelection = (0, import_react32.useMemo)(() => {
9063
+ const columnsWithSelection = (0, import_react35.useMemo)(() => {
8968
9064
  return [
8969
9065
  {
8970
9066
  id: selectionRowId,
@@ -9034,7 +9130,7 @@ var TableWithSelection = ({
9034
9130
  };
9035
9131
 
9036
9132
  // src/components/user-action/CopyToClipboardWrapper.tsx
9037
- var import_react33 = require("react");
9133
+ var import_react36 = require("react");
9038
9134
  var import_clsx49 = require("clsx");
9039
9135
 
9040
9136
  // src/util/writeToClipboard.ts
@@ -9054,8 +9150,8 @@ var CopyToClipboardWrapper = ({
9054
9150
  zIndex = 10
9055
9151
  }) => {
9056
9152
  const translation = useTranslation([formTranslation]);
9057
- const [isShowingIndication, setIsShowingIndication] = (0, import_react33.useState)(false);
9058
- const [isShowingConfirmation, setIsShowingConfirmation] = (0, import_react33.useState)(false);
9153
+ const [isShowingIndication, setIsShowingIndication] = (0, import_react36.useState)(false);
9154
+ const [isShowingConfirmation, setIsShowingConfirmation] = (0, import_react36.useState)(false);
9059
9155
  const positionClasses = {
9060
9156
  top: `bottom-full left-1/2 -translate-x-1/2 mb-[6px]`,
9061
9157
  bottom: `top-full left-1/2 -translate-x-1/2 mt-[6px]`,
@@ -9197,7 +9293,7 @@ var DateTimePicker = ({
9197
9293
  };
9198
9294
 
9199
9295
  // src/components/user-action/ScrollPicker.tsx
9200
- var import_react34 = require("react");
9296
+ var import_react37 = require("react");
9201
9297
  var import_clsx51 = __toESM(require("clsx"));
9202
9298
  var import_jsx_runtime64 = require("react/jsx-runtime");
9203
9299
  var up = 1;
@@ -9218,7 +9314,7 @@ var ScrollPicker = ({
9218
9314
  transition,
9219
9315
  items,
9220
9316
  lastTimeStamp
9221
- }, setAnimation] = (0, import_react34.useState)({
9317
+ }, setAnimation] = (0, import_react37.useState)({
9222
9318
  targetIndex: selectedIndex,
9223
9319
  currentIndex: disabled ? selectedIndex : 0,
9224
9320
  velocity: 0,
@@ -9234,7 +9330,7 @@ var ScrollPicker = ({
9234
9330
  const itemHeight = 40;
9235
9331
  const distance = 8;
9236
9332
  const containerHeight = itemHeight * (itemsShownCount - 2) + distance * (itemsShownCount - 2 + 1);
9237
- const getDirection = (0, import_react34.useCallback)((targetIndex, currentIndex2, transition2, length) => {
9333
+ const getDirection = (0, import_react37.useCallback)((targetIndex, currentIndex2, transition2, length) => {
9238
9334
  if (targetIndex === currentIndex2) {
9239
9335
  return transition2 > 0 ? up : down;
9240
9336
  }
@@ -9244,7 +9340,7 @@ var ScrollPicker = ({
9244
9340
  }
9245
9341
  return distanceForward >= length / 2 ? down : up;
9246
9342
  }, []);
9247
- const animate = (0, import_react34.useCallback)((timestamp, startTime) => {
9343
+ const animate = (0, import_react37.useCallback)((timestamp, startTime) => {
9248
9344
  setAnimation((prevState) => {
9249
9345
  const {
9250
9346
  targetIndex,
@@ -9317,7 +9413,7 @@ var ScrollPicker = ({
9317
9413
  };
9318
9414
  });
9319
9415
  }, [disabled, getDirection, onChange]);
9320
- (0, import_react34.useEffect)(() => {
9416
+ (0, import_react37.useEffect)(() => {
9321
9417
  requestAnimationFrame((timestamp) => animate(timestamp, lastTimeStamp));
9322
9418
  });
9323
9419
  const opacity = (transition2, index, itemsCount) => {
@@ -9394,7 +9490,7 @@ var ScrollPicker = ({
9394
9490
  };
9395
9491
 
9396
9492
  // src/components/user-action/ToggleableInput.tsx
9397
- var import_react35 = require("react");
9493
+ var import_react38 = require("react");
9398
9494
  var import_lucide_react23 = require("lucide-react");
9399
9495
  var import_clsx52 = __toESM(require("clsx"));
9400
9496
  var import_jsx_runtime65 = require("react/jsx-runtime");
@@ -9412,14 +9508,14 @@ var ToggleableInput = ({
9412
9508
  saveDelayOptions,
9413
9509
  ...restProps
9414
9510
  }) => {
9415
- const [isEditing, setIsEditing] = (0, import_react35.useState)(initialState !== "display");
9511
+ const [isEditing, setIsEditing] = (0, import_react38.useState)(initialState !== "display");
9416
9512
  const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
9417
- const ref = (0, import_react35.useRef)(null);
9513
+ const ref = (0, import_react38.useRef)(null);
9418
9514
  const onEditCompletedWrapper = (text) => {
9419
9515
  onEditCompleted(text);
9420
9516
  clearTimer();
9421
9517
  };
9422
- (0, import_react35.useEffect)(() => {
9518
+ (0, import_react38.useEffect)(() => {
9423
9519
  if (isEditing) {
9424
9520
  ref.current?.focus();
9425
9521
  }
@@ -9484,8 +9580,8 @@ var ToggleableInputUncontrolled = ({
9484
9580
  onChangeText = noop,
9485
9581
  ...restProps
9486
9582
  }) => {
9487
- const [value, setValue] = (0, import_react35.useState)(initialValue);
9488
- (0, import_react35.useEffect)(() => {
9583
+ const [value, setValue] = (0, import_react38.useState)(initialValue);
9584
+ (0, import_react38.useEffect)(() => {
9489
9585
  setValue(initialValue);
9490
9586
  }, [initialValue]);
9491
9587
  return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
@@ -9502,9 +9598,9 @@ var ToggleableInputUncontrolled = ({
9502
9598
  };
9503
9599
 
9504
9600
  // src/hooks/useRerender.ts
9505
- var import_react36 = require("react");
9601
+ var import_react39 = require("react");
9506
9602
  var useRerender = () => {
9507
- return (0, import_react36.useReducer)(() => ({}), {})[1];
9603
+ return (0, import_react39.useReducer)(() => ({}), {})[1];
9508
9604
  };
9509
9605
 
9510
9606
  // src/util/builder.ts
@@ -9545,11 +9641,6 @@ var localizedNewsSchema = import_zod.z.record(import_zod.z.enum(LanguageUtil.lan
9545
9641
  var filterNews = (localizedNews, requiredKeys) => {
9546
9642
  return localizedNews.filter((news) => requiredKeys.every((value) => news.keys.includes(value)));
9547
9643
  };
9548
-
9549
- // src/util/resolveSetState.ts
9550
- function resolveSetState(action, prev) {
9551
- return typeof action === "function" ? action(prev) : action;
9552
- }
9553
9644
  // Annotate the CommonJS export names for ESM import in node:
9554
9645
  0 && (module.exports = {
9555
9646
  ASTNodeInterpreter,
@@ -9557,6 +9648,7 @@ function resolveSetState(action, prev) {
9557
9648
  ArrayUtil,
9558
9649
  Avatar,
9559
9650
  AvatarGroup,
9651
+ AvatarUtil,
9560
9652
  BagFunctionUtil,
9561
9653
  BreadCrumb,
9562
9654
  ButtonColorUtil,
@@ -9567,6 +9659,7 @@ function resolveSetState(action, prev) {
9567
9659
  CheckboxUncontrolled,
9568
9660
  Chip,
9569
9661
  ChipList,
9662
+ ChipUtil,
9570
9663
  Circle,
9571
9664
  ConfirmDialog,
9572
9665
  ConfirmModal,
@@ -9667,8 +9760,6 @@ function resolveSetState(action, prev) {
9667
9760
  YearMonthPicker,
9668
9761
  YearMonthPickerUncontrolled,
9669
9762
  addDuration,
9670
- avatarSizeMapping,
9671
- avtarSizeList,
9672
9763
  builder,
9673
9764
  changeDuration,
9674
9765
  clamp,
@@ -9705,6 +9796,7 @@ function resolveSetState(action, prev) {
9705
9796
  useLanguage,
9706
9797
  useLocalStorage,
9707
9798
  useLocale,
9799
+ useLogOnce,
9708
9800
  useOutsideClick,
9709
9801
  usePopoverPosition,
9710
9802
  useRerender,