@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.mjs CHANGED
@@ -3067,6 +3067,11 @@ var SessionStorageService = class extends StorageService {
3067
3067
  }
3068
3068
  };
3069
3069
 
3070
+ // src/util/resolveSetState.ts
3071
+ function resolveSetState(action, prev) {
3072
+ return typeof action === "function" ? action(prev) : action;
3073
+ }
3074
+
3070
3075
  // src/hooks/useLocalStorage.ts
3071
3076
  var useLocalStorage = (key, initValue) => {
3072
3077
  const get = useCallback(() => {
@@ -3078,10 +3083,10 @@ var useLocalStorage = (key, initValue) => {
3078
3083
  return value || initValue;
3079
3084
  }, [initValue, key]);
3080
3085
  const [storedValue, setStoredValue] = useState(get);
3081
- const setValue = useCallback((value) => {
3082
- const newValue = value instanceof Function ? value(storedValue) : value;
3086
+ const setValue = useCallback((action) => {
3087
+ const newValue = resolveSetState(action, storedValue);
3083
3088
  const storageService = new LocalStorageService();
3084
- storageService.set(key, value);
3089
+ storageService.set(key, newValue);
3085
3090
  setStoredValue(newValue);
3086
3091
  }, [storedValue, setStoredValue, key]);
3087
3092
  useEffect(() => {
@@ -3128,8 +3133,9 @@ var LanguageProvider = ({ initialLanguage, children }) => {
3128
3133
  }
3129
3134
  }, [initialLanguage]);
3130
3135
  useEffect2(() => {
3136
+ document.documentElement.setAttribute("lang", language);
3131
3137
  setStoredLanguage(language);
3132
- }, [language, setStoredLanguage]);
3138
+ }, [language]);
3133
3139
  useEffect2(() => {
3134
3140
  if (storedLanguage !== null) {
3135
3141
  setLanguage(storedLanguage);
@@ -3516,6 +3522,7 @@ var SolidButton = forwardRef(function SolidButton2({
3516
3522
  onClick,
3517
3523
  disabled,
3518
3524
  className: clsx4(
3525
+ "font-semibold",
3519
3526
  {
3520
3527
  "text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
3521
3528
  [clsx4(colorClasses, "hover:brightness-90")]: !disabled
@@ -3573,6 +3580,7 @@ var OutlineButton = ({
3573
3580
  onClick,
3574
3581
  disabled,
3575
3582
  className: clsx4(
3583
+ "font-semibold",
3576
3584
  {
3577
3585
  "text-disabled-text border-disabled-outline cursor-not-allowed": disabled,
3578
3586
  [clsx4(colorClasses, "hover:brightness-80")]: !disabled
@@ -3615,6 +3623,7 @@ var TextButton = ({
3615
3623
  startIcon,
3616
3624
  endIcon,
3617
3625
  onClick,
3626
+ coloredHoverBackground = true,
3618
3627
  className,
3619
3628
  ...restProps
3620
3629
  }) => {
@@ -3623,6 +3632,11 @@ var TextButton = ({
3623
3632
  negative: "bg-transparent text-button-text-negative-text",
3624
3633
  neutral: "bg-transparent text-button-text-neutral-text"
3625
3634
  }[color];
3635
+ const backgroundColor = {
3636
+ primary: "hover:bg-button-text-primary-text/20",
3637
+ negative: "hover:bg-button-text-negative-text/20",
3638
+ neutral: "hover:bg-button-text-neutral-text/20"
3639
+ }[color];
3626
3640
  const iconColorClasses = {
3627
3641
  primary: "text-button-text-primary-icon",
3628
3642
  negative: "text-button-text-negative-icon",
@@ -3634,9 +3648,12 @@ var TextButton = ({
3634
3648
  onClick,
3635
3649
  disabled,
3636
3650
  className: clsx4(
3651
+ "font-semibold",
3637
3652
  {
3638
3653
  "text-disabled-text cursor-not-allowed": disabled,
3639
- [clsx4(colorClasses, "hover:bg-button-text-hover-background")]: !disabled
3654
+ [colorClasses]: !disabled,
3655
+ [backgroundColor]: !disabled && coloredHoverBackground,
3656
+ "hover:bg-button-text-hover-background": !disabled && !coloredHoverBackground
3640
3657
  },
3641
3658
  ButtonUtil.paddingMapping[size],
3642
3659
  className
@@ -4611,7 +4628,7 @@ var Overlay = ({
4611
4628
  }, []);
4612
4629
  if (!root || !isOpen) return null;
4613
4630
  return ReactDOM.createPortal(
4614
- /* @__PURE__ */ jsxs9("div", { className: clsx11("fixed inset-0 z-[9999]"), children: [
4631
+ /* @__PURE__ */ jsxs9("div", { className: clsx11("fixed inset-0 z-[200]"), children: [
4615
4632
  /* @__PURE__ */ jsx13(
4616
4633
  "div",
4617
4634
  {
@@ -4718,7 +4735,7 @@ var Modal = ({
4718
4735
  ref,
4719
4736
  tabIndex: -1,
4720
4737
  className: clsx11(
4721
- "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",
4738
+ "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",
4722
4739
  className
4723
4740
  ),
4724
4741
  role: "dialog",
@@ -4787,7 +4804,7 @@ var Dialog = ({
4787
4804
  ref,
4788
4805
  tabIndex: -1,
4789
4806
  className: clsx11(
4790
- "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",
4807
+ "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",
4791
4808
  className
4792
4809
  ),
4793
4810
  role: "dialog",
@@ -4849,49 +4866,105 @@ var ConfirmDialog = ({
4849
4866
 
4850
4867
  // src/components/icons-and-geometry/Avatar.tsx
4851
4868
  import clsx13 from "clsx";
4869
+
4870
+ // src/hooks/useLogOnce.ts
4871
+ import { useEffect as useEffect10, useState as useState10 } from "react";
4872
+ var useLogOnce = ({
4873
+ message,
4874
+ condition,
4875
+ type = "warning"
4876
+ }) => {
4877
+ const [hasLogged, setHasLogged] = useState10(false);
4878
+ useEffect10(() => {
4879
+ if (!hasLogged && condition) {
4880
+ switch (type) {
4881
+ case "info":
4882
+ console.info(message);
4883
+ break;
4884
+ case "error":
4885
+ console.error(message);
4886
+ break;
4887
+ case "warning":
4888
+ console.warn(message);
4889
+ break;
4890
+ }
4891
+ setHasLogged(true);
4892
+ }
4893
+ }, [condition]);
4894
+ };
4895
+
4896
+ // src/components/icons-and-geometry/Avatar.tsx
4897
+ import { useMemo } from "react";
4852
4898
  import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
4853
- var avtarSizeList = ["tiny", "small", "medium", "large"];
4899
+ var avtarSizeList = ["sm", "md", "lg", "xl"];
4854
4900
  var avatarSizeMapping = {
4855
- tiny: 24,
4856
- small: 32,
4857
- medium: 48,
4858
- large: 64
4859
- };
4860
- var Avatar = ({ avatarUrl, alt, size = "medium", className = "" }) => {
4861
- avatarUrl = "https://cdn.helpwave.de/boringavatar.svg";
4862
- const avtarSize = {
4863
- tiny: 24,
4864
- small: 32,
4865
- medium: 48,
4866
- large: 64
4867
- }[size];
4868
- const style = {
4869
- width: avtarSize + "px",
4870
- height: avtarSize + "px",
4871
- maxWidth: avtarSize + "px",
4872
- maxHeight: avtarSize + "px",
4873
- minWidth: avtarSize + "px",
4874
- minHeight: avtarSize + "px"
4901
+ sm: 18,
4902
+ md: 24,
4903
+ lg: 32,
4904
+ xl: 48
4905
+ };
4906
+ var textClassNameMapping = {
4907
+ sm: "text-xs font-semibold",
4908
+ md: "text-sm font-semibold",
4909
+ lg: "text-lg font-semibold",
4910
+ xl: "text-2xl font-bold"
4911
+ };
4912
+ var AvatarUtil = {
4913
+ avatarSizeMapping,
4914
+ sizes: avtarSizeList
4915
+ };
4916
+ var Avatar = ({ image, name, size = "md", fullyRounded, className = "" }) => {
4917
+ const pixels = avatarSizeMapping[size];
4918
+ const sizeStyle = {
4919
+ minWidth: pixels,
4920
+ maxWidth: pixels,
4921
+ minHeight: pixels,
4922
+ maxHeight: pixels
4875
4923
  };
4876
- return (
4877
- // TODO transparent or white background later
4878
- /* @__PURE__ */ jsx15("div", { className: clsx13(`rounded-full bg-primary shadow`, className), style, children: /* @__PURE__ */ jsx15(
4879
- "img",
4880
- {
4881
- className: "rounded-full",
4882
- style,
4883
- src: avatarUrl,
4884
- alt,
4885
- width: avtarSize,
4886
- height: avtarSize
4887
- }
4888
- ) })
4924
+ const textClassName = textClassNameMapping[size];
4925
+ useLogOnce({ message: "Either set image or name in Avatar", condition: !image && !name, type: "warning" });
4926
+ const displayName = useMemo(() => {
4927
+ const maxLetters = size === "sm" ? 1 : 2;
4928
+ return (name ?? "").split(" ").filter((_, index) => index < maxLetters).map((value) => value[0]).join("").toUpperCase();
4929
+ }, [name, size]);
4930
+ const rounding = {
4931
+ "rounded-full": fullyRounded,
4932
+ "rounded-lg": !fullyRounded && !(size === "sm" || size === "md"),
4933
+ "rounded-sm": !fullyRounded && (size === "sm" || size === "md")
4934
+ };
4935
+ return /* @__PURE__ */ jsxs11(
4936
+ "div",
4937
+ {
4938
+ className: clsx13(
4939
+ `relative bg-primary text-on-primary`,
4940
+ rounding,
4941
+ className
4942
+ ),
4943
+ style: sizeStyle,
4944
+ children: [
4945
+ name && !image && /* @__PURE__ */ jsx15("span", { className: clsx13(textClassName, "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"), children: displayName }),
4946
+ image && /* @__PURE__ */ jsx15(
4947
+ "img",
4948
+ {
4949
+ className: clsx13(
4950
+ "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
4951
+ rounding
4952
+ ),
4953
+ src: image.avatarUrl,
4954
+ alt: image.alt,
4955
+ style: sizeStyle
4956
+ }
4957
+ )
4958
+ ]
4959
+ }
4889
4960
  );
4890
4961
  };
4891
4962
  var AvatarGroup = ({
4892
4963
  avatars,
4893
4964
  maxShownProfiles = 5,
4894
- size = "tiny"
4965
+ showTotalNumber = true,
4966
+ size = "md",
4967
+ fullyRounded
4895
4968
  }) => {
4896
4969
  const displayedProfiles = avatars.length < maxShownProfiles ? avatars : avatars.slice(0, maxShownProfiles);
4897
4970
  const diameter = avatarSizeMapping[size];
@@ -4904,15 +4977,22 @@ var AvatarGroup = ({
4904
4977
  {
4905
4978
  className: "absolute",
4906
4979
  style: { left: index * diameter * stackingOverlap + "px", zIndex: maxShownProfiles - index },
4907
- children: /* @__PURE__ */ jsx15(Avatar, { avatarUrl: avatar.avatarUrl, alt: avatar.alt, size })
4980
+ children: /* @__PURE__ */ jsx15(
4981
+ Avatar,
4982
+ {
4983
+ ...avatar,
4984
+ size,
4985
+ fullyRounded,
4986
+ className: clsx13("shadow-side shadow-r-4 shadow-hard", avatar.className)
4987
+ }
4988
+ )
4908
4989
  },
4909
4990
  index
4910
4991
  )) }),
4911
- notDisplayedProfiles > 0 && /* @__PURE__ */ jsx15(
4992
+ showTotalNumber && notDisplayedProfiles > 0 && /* @__PURE__ */ jsx15(
4912
4993
  "div",
4913
4994
  {
4914
- className: "flex-row-2 truncate items-center",
4915
- style: { fontSize: diameter / 2 + "px", marginLeft: 1 + diameter / 16 + "px" },
4995
+ className: clsx13(textClassNameMapping[size], "flex-row-2 truncate items-center"),
4916
4996
  children: /* @__PURE__ */ jsxs11("span", { children: [
4917
4997
  "+ ",
4918
4998
  notDisplayedProfiles
@@ -4947,7 +5027,7 @@ var Circle = ({
4947
5027
  };
4948
5028
 
4949
5029
  // src/components/icons-and-geometry/Ring.tsx
4950
- import { useCallback as useCallback3, useEffect as useEffect10, useState as useState10 } from "react";
5030
+ import { useCallback as useCallback3, useEffect as useEffect11, useState as useState11 } from "react";
4951
5031
  import clsx15 from "clsx";
4952
5032
  import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
4953
5033
  var Ring = ({
@@ -4976,7 +5056,7 @@ var AnimatedRing = ({
4976
5056
  onAnimationFinished = noop,
4977
5057
  style
4978
5058
  }) => {
4979
- const [currentWidth, setCurrentWidth] = useState10(0);
5059
+ const [currentWidth, setCurrentWidth] = useState11(0);
4980
5060
  const milliseconds = 1e3 * fillAnimationDuration;
4981
5061
  const animate = useCallback3((timestamp, startTime) => {
4982
5062
  const progress = Math.min((timestamp - startTime) / milliseconds, 1);
@@ -4992,7 +5072,7 @@ var AnimatedRing = ({
4992
5072
  }
4993
5073
  }
4994
5074
  }, [milliseconds, onAnimationFinished, repeating, width]);
4995
- useEffect10(() => {
5075
+ useEffect11(() => {
4996
5076
  if (currentWidth < width) {
4997
5077
  requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
4998
5078
  }
@@ -5027,7 +5107,7 @@ var RingWave = ({
5027
5107
  onAnimationFinished = noop,
5028
5108
  style
5029
5109
  }) => {
5030
- const [currentInnerSize, setCurrentInnerSize] = useState10(startInnerSize);
5110
+ const [currentInnerSize, setCurrentInnerSize] = useState11(startInnerSize);
5031
5111
  const distance = endInnerSize - startInnerSize;
5032
5112
  const milliseconds = 1e3 * fillAnimationDuration;
5033
5113
  const animate = useCallback3((timestamp, startTime) => {
@@ -5047,7 +5127,7 @@ var RingWave = ({
5047
5127
  }
5048
5128
  }
5049
5129
  }, [distance, endInnerSize, milliseconds, onAnimationFinished, repeating, startInnerSize]);
5050
- useEffect10(() => {
5130
+ useEffect11(() => {
5051
5131
  if (currentInnerSize < endInnerSize) {
5052
5132
  requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
5053
5133
  }
@@ -5082,7 +5162,7 @@ var RadialRings = ({
5082
5162
  sizeCircle2 = 200,
5083
5163
  sizeCircle3 = 300
5084
5164
  }) => {
5085
- const [currentRing, setCurrentRing] = useState10(0);
5165
+ const [currentRing, setCurrentRing] = useState11(0);
5086
5166
  const size = sizeCircle3;
5087
5167
  return /* @__PURE__ */ jsxs12(
5088
5168
  "div",
@@ -5249,7 +5329,7 @@ var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
5249
5329
  };
5250
5330
 
5251
5331
  // src/components/layout-and-navigation/Carousel.tsx
5252
- import { useCallback as useCallback4, useEffect as useEffect11, useMemo, useRef as useRef4, useState as useState11 } from "react";
5332
+ import { useCallback as useCallback4, useEffect as useEffect12, useMemo as useMemo2, useRef as useRef4, useState as useState12 } from "react";
5253
5333
  import clsx17 from "clsx";
5254
5334
  import { ChevronLeft, ChevronRight } from "lucide-react";
5255
5335
 
@@ -5381,7 +5461,7 @@ var Carousel = ({
5381
5461
  currentPosition,
5382
5462
  dragState,
5383
5463
  animationState
5384
- }, setCarouselInformation] = useState11({
5464
+ }, setCarouselInformation] = useState12({
5385
5465
  currentPosition: 0
5386
5466
  });
5387
5467
  const animationId = useRef4(void 0);
@@ -5389,7 +5469,7 @@ var Carousel = ({
5389
5469
  autoLoopingTimeOut = Math.max(0, autoLoopingTimeOut);
5390
5470
  const length = children.length;
5391
5471
  const paddingItemCount = 3;
5392
- const util = useMemo(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
5472
+ const util = useMemo2(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
5393
5473
  const currentIndex = util.getCorrectedPosition(LoopingArrayCalculator.withoutOffset(currentPosition));
5394
5474
  animationTime = Math.max(200, animationTime);
5395
5475
  autoLoopAnimationTime = Math.max(200, autoLoopAnimationTime);
@@ -5442,7 +5522,7 @@ var Carousel = ({
5442
5522
  animationId.current = requestAnimationFrame((time1) => animation(time1));
5443
5523
  }
5444
5524
  }, [animationTime, autoLoopAnimationTime, util]);
5445
- useEffect11(() => {
5525
+ useEffect12(() => {
5446
5526
  if (animationState) {
5447
5527
  animationId.current = requestAnimationFrame(animation);
5448
5528
  }
@@ -5464,7 +5544,7 @@ var Carousel = ({
5464
5544
  isAutoLooping: true
5465
5545
  }
5466
5546
  }));
5467
- useEffect11(() => {
5547
+ useEffect12(() => {
5468
5548
  if (!animationId.current && !animationState && !dragState && !timeOut.current) {
5469
5549
  if (autoLoopingTimeOut > 0) {
5470
5550
  timeOut.current = setTimeout(() => {
@@ -5672,6 +5752,10 @@ var Carousel = ({
5672
5752
  // src/components/layout-and-navigation/Chip.tsx
5673
5753
  import clsx18 from "clsx";
5674
5754
  import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
5755
+ var chipColors = ["default", "dark", "red", "yellow", "green", "blue", "pink"];
5756
+ var ChipUtil = {
5757
+ colors: chipColors
5758
+ };
5675
5759
  var Chip = ({
5676
5760
  children,
5677
5761
  trailingIcon,
@@ -6015,17 +6099,17 @@ import { ChevronFirst, ChevronLast, ChevronLeft as ChevronLeft2, ChevronRight as
6015
6099
  import clsx23 from "clsx";
6016
6100
 
6017
6101
  // src/components/user-action/Input.tsx
6018
- import { forwardRef as forwardRef3, useEffect as useEffect14, useImperativeHandle, useRef as useRef5, useState as useState13 } from "react";
6102
+ import { forwardRef as forwardRef3, useEffect as useEffect15, useImperativeHandle, useRef as useRef5, useState as useState14 } from "react";
6019
6103
  import clsx22 from "clsx";
6020
6104
 
6021
6105
  // src/hooks/useDelay.ts
6022
- import { useEffect as useEffect12, useState as useState12 } from "react";
6106
+ import { useEffect as useEffect13, useState as useState13 } from "react";
6023
6107
  var defaultOptions = {
6024
6108
  delay: 3e3,
6025
6109
  disabled: false
6026
6110
  };
6027
6111
  function useDelay(options) {
6028
- const [timer, setTimer] = useState12(void 0);
6112
+ const [timer, setTimer] = useState13(void 0);
6029
6113
  const { delay, disabled } = {
6030
6114
  ...defaultOptions,
6031
6115
  ...options
@@ -6044,12 +6128,12 @@ function useDelay(options) {
6044
6128
  setTimer(void 0);
6045
6129
  }, delay));
6046
6130
  };
6047
- useEffect12(() => {
6131
+ useEffect13(() => {
6048
6132
  return () => {
6049
6133
  clearTimeout(timer);
6050
6134
  };
6051
6135
  }, [timer]);
6052
- useEffect12(() => {
6136
+ useEffect13(() => {
6053
6137
  if (disabled) {
6054
6138
  clearTimeout(timer);
6055
6139
  setTimer(void 0);
@@ -6134,10 +6218,10 @@ function useFocusManagement() {
6134
6218
  }
6135
6219
 
6136
6220
  // src/hooks/useFocusOnceVisible.ts
6137
- import React2, { useEffect as useEffect13 } from "react";
6221
+ import React2, { useEffect as useEffect14 } from "react";
6138
6222
  var useFocusOnceVisible = (ref, disable = false) => {
6139
6223
  const [hasUsedFocus, setHasUsedFocus] = React2.useState(false);
6140
- useEffect13(() => {
6224
+ useEffect14(() => {
6141
6225
  if (disable || hasUsedFocus) {
6142
6226
  return;
6143
6227
  }
@@ -6162,7 +6246,7 @@ var getInputClassName = ({ disabled = false, hasError = false }) => {
6162
6246
  return clsx22(
6163
6247
  "px-2 py-1.5 rounded-md border-2",
6164
6248
  {
6165
- "bg-surface text-on-surface hover:border-primary focus:border-primary": !disabled && !hasError,
6249
+ "bg-input-background text-input-text hover:border-primary focus:border-primary": !disabled && !hasError,
6166
6250
  "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover": !disabled && hasError,
6167
6251
  "bg-disabled-background text-disabled-text border-disabled-border": disabled
6168
6252
  }
@@ -6253,8 +6337,8 @@ var InputUncontrolled = ({
6253
6337
  onChangeText = noop,
6254
6338
  ...props
6255
6339
  }) => {
6256
- const [usedValue, setUsedValue] = useState13(value);
6257
- useEffect14(() => {
6340
+ const [usedValue, setUsedValue] = useState14(value);
6341
+ useEffect15(() => {
6258
6342
  setUsedValue(value);
6259
6343
  }, [value]);
6260
6344
  return /* @__PURE__ */ jsx26(
@@ -6305,7 +6389,7 @@ var FormInput = forwardRef3(function FormInput2({
6305
6389
  });
6306
6390
 
6307
6391
  // src/components/layout-and-navigation/Pagination.tsx
6308
- import { useEffect as useEffect15, useState as useState14 } from "react";
6392
+ import { useEffect as useEffect16, useState as useState15 } from "react";
6309
6393
  import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
6310
6394
  var Pagination = ({
6311
6395
  overwriteTranslation,
@@ -6316,11 +6400,11 @@ var Pagination = ({
6316
6400
  style
6317
6401
  }) => {
6318
6402
  const translation = useTranslation([formTranslation], overwriteTranslation);
6319
- const [value, setValue] = useState14((pageIndex + 1).toString());
6403
+ const [value, setValue] = useState15((pageIndex + 1).toString());
6320
6404
  const noPages = pageCount === 0;
6321
6405
  const onFirstPage = pageIndex === 0 && !noPages;
6322
6406
  const onLastPage = pageIndex === pageCount - 1;
6323
- useEffect15(() => {
6407
+ useEffect16(() => {
6324
6408
  if (noPages) {
6325
6409
  setValue("0");
6326
6410
  } else {
@@ -6363,7 +6447,7 @@ var Pagination = ({
6363
6447
  /* @__PURE__ */ jsx27(
6364
6448
  "span",
6365
6449
  {
6366
- className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
6450
+ className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-input-background text-input-text rounded-md font-bold",
6367
6451
  children: pageCount
6368
6452
  }
6369
6453
  )
@@ -6378,7 +6462,7 @@ import { Search } from "lucide-react";
6378
6462
  import clsx24 from "clsx";
6379
6463
 
6380
6464
  // src/hooks/useSearch.ts
6381
- import { useCallback as useCallback6, useEffect as useEffect16, useMemo as useMemo2, useState as useState15 } from "react";
6465
+ import { useCallback as useCallback6, useEffect as useEffect17, useMemo as useMemo3, useState as useState16 } from "react";
6382
6466
 
6383
6467
  // src/util/simpleSearch.ts
6384
6468
  var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
@@ -6417,9 +6501,9 @@ var useSearch = ({
6417
6501
  filter,
6418
6502
  disabled = false
6419
6503
  }) => {
6420
- const [search, setSearch] = useState15(initialSearch ?? "");
6421
- const [result, setResult] = useState15(list);
6422
- const searchTags = useMemo2(() => additionalSearchTags ?? [], [additionalSearchTags]);
6504
+ const [search, setSearch] = useState16(initialSearch ?? "");
6505
+ const [result, setResult] = useState16(list);
6506
+ const searchTags = useMemo3(() => additionalSearchTags ?? [], [additionalSearchTags]);
6423
6507
  const updateSearch = useCallback6((newSearch) => {
6424
6508
  const usedSearch = newSearch ?? search;
6425
6509
  if (newSearch) {
@@ -6427,24 +6511,24 @@ var useSearch = ({
6427
6511
  }
6428
6512
  setResult(MultiSubjectSearchWithMapping([usedSearch, ...searchTags], list, searchMapping));
6429
6513
  }, [searchTags, list, search, searchMapping]);
6430
- useEffect16(() => {
6514
+ useEffect17(() => {
6431
6515
  if (isSearchInstant) {
6432
6516
  setResult(MultiSubjectSearchWithMapping([search, ...searchTags], list, searchMapping));
6433
6517
  }
6434
6518
  }, [searchTags, isSearchInstant, list, search, searchMapping, additionalSearchTags]);
6435
- const filteredResult = useMemo2(() => {
6519
+ const filteredResult = useMemo3(() => {
6436
6520
  if (!filter) {
6437
6521
  return result;
6438
6522
  }
6439
6523
  return result.filter(filter);
6440
6524
  }, [result, filter]);
6441
- const sortedAndFilteredResult = useMemo2(() => {
6525
+ const sortedAndFilteredResult = useMemo3(() => {
6442
6526
  if (!sortingFunction) {
6443
6527
  return filteredResult;
6444
6528
  }
6445
6529
  return filteredResult.sort(sortingFunction);
6446
6530
  }, [filteredResult, sortingFunction]);
6447
- const usedResult = useMemo2(() => {
6531
+ const usedResult = useMemo3(() => {
6448
6532
  if (!disabled) {
6449
6533
  return sortedAndFilteredResult;
6450
6534
  }
@@ -6504,7 +6588,7 @@ var SearchableList = ({
6504
6588
  // src/components/layout-and-navigation/StepperBar.tsx
6505
6589
  import { Check as Check2, ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight3 } from "lucide-react";
6506
6590
  import clsx25 from "clsx";
6507
- import { useEffect as useEffect17, useState as useState16 } from "react";
6591
+ import { useEffect as useEffect18, useState as useState17 } from "react";
6508
6592
  import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
6509
6593
  var defaultState = {
6510
6594
  currentStep: 0,
@@ -6598,8 +6682,8 @@ var StepperBar = ({
6598
6682
  );
6599
6683
  };
6600
6684
  var StepperBarUncontrolled = ({ state, onChange, ...props }) => {
6601
- const [usedState, setUsedState] = useState16(state ?? defaultState);
6602
- useEffect17(() => {
6685
+ const [usedState, setUsedState] = useState17(state ?? defaultState);
6686
+ useEffect18(() => {
6603
6687
  setUsedState(state ?? defaultState);
6604
6688
  }, [state]);
6605
6689
  return /* @__PURE__ */ jsx29(
@@ -6744,7 +6828,7 @@ var ErrorComponent = ({
6744
6828
  };
6745
6829
 
6746
6830
  // src/components/loading-states/LoadingAndErrorComponent.tsx
6747
- import { useState as useState17 } from "react";
6831
+ import { useState as useState18 } from "react";
6748
6832
 
6749
6833
  // src/components/loading-states/LoadingContainer.tsx
6750
6834
  import { clsx as clsx28 } from "clsx";
@@ -6765,8 +6849,8 @@ var LoadingAndErrorComponent = ({
6765
6849
  minimumLoadingDuration,
6766
6850
  className
6767
6851
  }) => {
6768
- const [isInMinimumLoading, setIsInMinimumLoading] = useState17(false);
6769
- const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState17(false);
6852
+ const [isInMinimumLoading, setIsInMinimumLoading] = useState18(false);
6853
+ const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState18(false);
6770
6854
  if (minimumLoadingDuration && !isInMinimumLoading && !hasUsedMinimumLoading) {
6771
6855
  setIsInMinimumLoading(true);
6772
6856
  setTimeout(() => {
@@ -6970,21 +7054,17 @@ var InputModal = ({
6970
7054
 
6971
7055
  // src/components/user-action/Select.tsx
6972
7056
  import { useCallback as useCallback7 } from "react";
6973
- import { useEffect as useEffect20, useState as useState19 } from "react";
7057
+ import { useEffect as useEffect21, useState as useState20 } from "react";
6974
7058
  import clsx35 from "clsx";
6975
7059
 
6976
7060
  // src/components/user-action/Menu.tsx
6977
- import {
6978
- useEffect as useEffect19,
6979
- useRef as useRef6,
6980
- useState as useState18
6981
- } from "react";
7061
+ import { useEffect as useEffect20, useRef as useRef6, useState as useState19 } from "react";
6982
7062
  import clsx33 from "clsx";
6983
7063
 
6984
7064
  // src/hooks/useOutsideClick.ts
6985
- import { useEffect as useEffect18 } from "react";
7065
+ import { useEffect as useEffect19 } from "react";
6986
7066
  var useOutsideClick = (refs, handler) => {
6987
- useEffect18(() => {
7067
+ useEffect19(() => {
6988
7068
  const listener = (event) => {
6989
7069
  if (event.target === null) return;
6990
7070
  if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
@@ -7078,7 +7158,7 @@ var MenuItem = ({
7078
7158
  }) => /* @__PURE__ */ jsx41(
7079
7159
  "div",
7080
7160
  {
7081
- className: clsx33("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold", {
7161
+ className: clsx33("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold text-nowrap", {
7082
7162
  "text-right": alignment === "right",
7083
7163
  "text-left": alignment === "left",
7084
7164
  "text-disabled-text cursor-not-allowed": isDisabled,
@@ -7111,7 +7191,7 @@ var Menu = ({
7111
7191
  const triggerRef = useRef6(null);
7112
7192
  const menuRef = useRef6(null);
7113
7193
  useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
7114
- const [isHidden, setIsHidden] = useState18(true);
7194
+ const [isHidden, setIsHidden] = useState19(true);
7115
7195
  const bag = {
7116
7196
  isOpen,
7117
7197
  close: () => setIsOpen(false),
@@ -7122,7 +7202,7 @@ var Menu = ({
7122
7202
  triggerRef.current?.getBoundingClientRect(),
7123
7203
  { verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
7124
7204
  );
7125
- useEffect19(() => {
7205
+ useEffect20(() => {
7126
7206
  if (!isOpen) return;
7127
7207
  const triggerEl = triggerRef.current;
7128
7208
  if (!triggerEl) return;
@@ -7139,7 +7219,7 @@ var Menu = ({
7139
7219
  window.removeEventListener("resize", close);
7140
7220
  };
7141
7221
  }, [isOpen, setIsOpen]);
7142
- useEffect19(() => {
7222
+ useEffect20(() => {
7143
7223
  if (isOpen) {
7144
7224
  setIsHidden(false);
7145
7225
  }
@@ -7152,7 +7232,7 @@ var Menu = ({
7152
7232
  ref: menuRef,
7153
7233
  onClick: (e) => e.stopPropagation(),
7154
7234
  className: clsx33(
7155
- "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg z-10",
7235
+ "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg shadow-strong z-[300]",
7156
7236
  {
7157
7237
  "animate-pop-in": isOpen,
7158
7238
  "animate-pop-out": !isOpen,
@@ -7254,7 +7334,7 @@ var Select = ({
7254
7334
  "btn-md justify-between w-full border-2",
7255
7335
  {
7256
7336
  "rounded-b-lg": !open,
7257
- "bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
7337
+ "bg-input-background text-input-text hover:border-primary": !disabled,
7258
7338
  "bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
7259
7339
  },
7260
7340
  triggerClassName
@@ -7309,8 +7389,8 @@ var SelectUncontrolled = ({
7309
7389
  hintText,
7310
7390
  ...props
7311
7391
  }) => {
7312
- const [selected, setSelected] = useState19(value);
7313
- useEffect20(() => {
7392
+ const [selected, setSelected] = useState20(value);
7393
+ useEffect21(() => {
7314
7394
  if (options.find((options2) => options2.value === value)) {
7315
7395
  setSelected(value);
7316
7396
  }
@@ -7371,7 +7451,8 @@ var LanguageModal = ({
7371
7451
  className: "mt-2",
7372
7452
  value: language,
7373
7453
  options: LanguageUtil.languages.map((language2) => ({ label: translation(language2), value: language2 })),
7374
- onChange: (language2) => setLanguage(language2)
7454
+ onChange: (language2) => setLanguage(language2),
7455
+ searchOptions: { disabled: true }
7375
7456
  }
7376
7457
  ),
7377
7458
  /* @__PURE__ */ jsx44("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ jsx44(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
@@ -7381,13 +7462,15 @@ var LanguageModal = ({
7381
7462
  };
7382
7463
 
7383
7464
  // src/theming/useTheme.tsx
7384
- import { createContext as createContext2, useContext as useContext2, useEffect as useEffect21, useState as useState20 } from "react";
7465
+ import { useMemo as useMemo4 } from "react";
7466
+ import { createContext as createContext2, useContext as useContext2, useEffect as useEffect22, useState as useState21 } from "react";
7385
7467
  import { jsx as jsx45 } from "react/jsx-runtime";
7386
- var themes = ["light", "dark"];
7468
+ var themes = ["light", "dark", "system"];
7387
7469
  var defaultThemeTypeTranslation = {
7388
7470
  en: {
7389
7471
  dark: "Dark",
7390
7472
  light: "Light",
7473
+ system: "System",
7391
7474
  theme: {
7392
7475
  one: "Theme",
7393
7476
  other: "Themes"
@@ -7396,6 +7479,7 @@ var defaultThemeTypeTranslation = {
7396
7479
  de: {
7397
7480
  dark: "Dunkel",
7398
7481
  light: "Hell",
7482
+ system: "System",
7399
7483
  theme: {
7400
7484
  one: "Farbschema",
7401
7485
  other: "Farbschemas"
@@ -7410,18 +7494,24 @@ var ThemeContext = createContext2({
7410
7494
  theme: "light",
7411
7495
  setTheme: noop
7412
7496
  });
7413
- var ThemeProvider = ({ children, initialTheme = "light" }) => {
7414
- const [theme, setTheme] = useState20(initialTheme);
7415
- useEffect21(() => {
7416
- if (theme !== initialTheme) {
7497
+ var ThemeProvider = ({ children, initialTheme = "system" }) => {
7498
+ const [storedTheme, setStoredTheme] = useLocalStorage("theme", initialTheme);
7499
+ const [userTheme, setUserTheme] = useState21();
7500
+ useEffect22(() => {
7501
+ if (storedTheme !== initialTheme) {
7417
7502
  console.warn("ThemeProvider initial state changed: Prefer using useTheme's setTheme instead");
7418
- setTheme(initialTheme);
7503
+ setStoredTheme(initialTheme);
7419
7504
  }
7420
7505
  }, [initialTheme]);
7421
- useEffect21(() => {
7422
- document.documentElement.setAttribute("data-theme", theme);
7423
- }, [theme]);
7424
- return /* @__PURE__ */ jsx45(ThemeContext.Provider, { value: { theme, setTheme }, children });
7506
+ const usedTheme = useMemo4(() => storedTheme !== "system" ? storedTheme : userTheme, [storedTheme, userTheme]);
7507
+ useEffect22(() => {
7508
+ document.documentElement.setAttribute("data-theme", usedTheme);
7509
+ }, [usedTheme]);
7510
+ useEffect22(() => {
7511
+ const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
7512
+ setUserTheme(prefersDark ? "dark" : "light");
7513
+ }, []);
7514
+ return /* @__PURE__ */ jsx45(ThemeContext.Provider, { value: { theme: storedTheme, setTheme: setStoredTheme }, children });
7425
7515
  };
7426
7516
  var useTheme = () => useContext2(ThemeContext);
7427
7517
 
@@ -7460,7 +7550,8 @@ var ThemeModal = ({
7460
7550
  className: "mt-2",
7461
7551
  value: theme,
7462
7552
  options: ThemeUtil.themes.map((theme2) => ({ label: translation(theme2), value: theme2 })),
7463
- onChange: (theme2) => setTheme(theme2)
7553
+ onChange: (theme2) => setTheme(theme2),
7554
+ searchOptions: { disabled: true }
7464
7555
  }
7465
7556
  ),
7466
7557
  /* @__PURE__ */ jsx46("div", { className: "flex-row-4 mt-3 justify-end", children: /* @__PURE__ */ jsx46(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
@@ -7473,7 +7564,7 @@ var ThemeModal = ({
7473
7564
  import { Check as Check4 } from "lucide-react";
7474
7565
 
7475
7566
  // src/components/user-action/Checkbox.tsx
7476
- import { useState as useState21 } from "react";
7567
+ import { useState as useState22 } from "react";
7477
7568
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
7478
7569
  import { Check as Check3, Minus } from "lucide-react";
7479
7570
  import clsx36 from "clsx";
@@ -7524,7 +7615,7 @@ var Checkbox = ({
7524
7615
  className: clsx36(usedSizeClass, `items-center border-2 rounded outline-none `, {
7525
7616
  "text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
7526
7617
  "focus:border-primary group-hover:border-primary ": !disabled,
7527
- "bg-surface": !disabled && !checked,
7618
+ "bg-input-background": !disabled && !checked,
7528
7619
  "bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
7529
7620
  }, className),
7530
7621
  children: /* @__PURE__ */ jsxs32(CheckboxPrimitive.Indicator, { children: [
@@ -7542,7 +7633,7 @@ var CheckboxUncontrolled = ({
7542
7633
  defaultValue = false,
7543
7634
  ...props
7544
7635
  }) => {
7545
- const [checked, setChecked] = useState21(defaultValue);
7636
+ const [checked, setChecked] = useState22(defaultValue);
7546
7637
  const handleChange = (checked2) => {
7547
7638
  if (onChangeTristate) {
7548
7639
  onChangeTristate(checked2);
@@ -7603,7 +7694,7 @@ var PropertyBase = ({
7603
7694
  className: clsx37(
7604
7695
  "flex-row-2 grow px-3 py-2 justify-between items-center rounded-r-xl border-2 border-l-0 min-h-15",
7605
7696
  {
7606
- "bg-surface group-hover:border-primary": !requiredAndNoValue,
7697
+ "bg-input-background text-input-text group-hover:border-primary": !requiredAndNoValue,
7607
7698
  "bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
7608
7699
  },
7609
7700
  className
@@ -7707,7 +7798,7 @@ import clsx40 from "clsx";
7707
7798
 
7708
7799
  // src/components/user-action/MultiSelect.tsx
7709
7800
  import { useCallback as useCallback8 } from "react";
7710
- import { useEffect as useEffect22, useState as useState22 } from "react";
7801
+ import { useEffect as useEffect23, useState as useState23 } from "react";
7711
7802
  import clsx39 from "clsx";
7712
7803
  import { Plus } from "lucide-react";
7713
7804
  import { Fragment as Fragment5, jsx as jsx51, jsxs as jsxs34 } from "react/jsx-runtime";
@@ -7761,17 +7852,17 @@ var MultiSelect = ({
7761
7852
  {
7762
7853
  ref,
7763
7854
  className: clsx39(
7764
- "btn-md justify-between w-full border-2 h-auto",
7855
+ "group btn-md justify-between w-full border-2 h-auto",
7765
7856
  {
7766
7857
  "min-h-14": useChipDisplay,
7767
- "bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
7858
+ "bg-input-background text-input-text hover:border-primary": !disabled,
7768
7859
  "bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
7769
7860
  },
7770
7861
  triggerClassName
7771
7862
  ),
7772
7863
  onClick: toggleOpen,
7773
7864
  disabled,
7774
- children: useChipDisplay ? /* @__PURE__ */ jsx51(Fragment5, { children: isShowingHint ? /* @__PURE__ */ jsx51(IconButton, { disabled, size: "small", color: "neutral", children: /* @__PURE__ */ jsx51(Plus, {}) }) : /* @__PURE__ */ jsx51(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ jsxs34(Fragment5, { children: [
7865
+ children: useChipDisplay ? /* @__PURE__ */ jsx51(Fragment5, { children: isShowingHint ? /* @__PURE__ */ jsx51("div", { className: "icon-btn-sm bg-button-solid-neutral-background text-button-solid-neutral-text hover:brightness-90 group-hover:brightness-90", children: /* @__PURE__ */ jsx51(Plus, {}) }) : /* @__PURE__ */ jsx51(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ jsxs34(Fragment5, { children: [
7775
7866
  !isShowingHint && /* @__PURE__ */ jsx51("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? translation("selected", { replacements: { amount: selectedItems.length.toString() } }) }),
7776
7867
  isShowingHint && /* @__PURE__ */ jsx51("span", { className: clsx39("textstyle-description", hintTextClassName), children: hintText ?? translation("select") }),
7777
7868
  /* @__PURE__ */ jsx51(ExpansionIcon, { isExpanded: isOpen })
@@ -7864,8 +7955,8 @@ var MultiSelectUncontrolled = ({
7864
7955
  onChange,
7865
7956
  ...props
7866
7957
  }) => {
7867
- const [usedOptions, setUsedOptions] = useState22(options);
7868
- useEffect22(() => {
7958
+ const [usedOptions, setUsedOptions] = useState23(options);
7959
+ useEffect23(() => {
7869
7960
  setUsedOptions(options);
7870
7961
  }, [options]);
7871
7962
  return /* @__PURE__ */ jsx51(
@@ -8093,7 +8184,7 @@ import { Text } from "lucide-react";
8093
8184
  import clsx44 from "clsx";
8094
8185
 
8095
8186
  // src/components/user-action/Textarea.tsx
8096
- import { useEffect as useEffect23, useState as useState23 } from "react";
8187
+ import { useEffect as useEffect24, useState as useState24 } from "react";
8097
8188
  import clsx43 from "clsx";
8098
8189
  import { jsx as jsx55, jsxs as jsxs36 } from "react/jsx-runtime";
8099
8190
  var Textarea = ({
@@ -8112,7 +8203,7 @@ var Textarea = ({
8112
8203
  className,
8113
8204
  ...props
8114
8205
  }) => {
8115
- const [hasFocus, setHasFocus] = useState23(false);
8206
+ const [hasFocus, setHasFocus] = useState24(false);
8116
8207
  const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
8117
8208
  const onEditCompletedWrapper = (text) => {
8118
8209
  onEditCompleted(text);
@@ -8132,11 +8223,11 @@ var Textarea = ({
8132
8223
  "div",
8133
8224
  {
8134
8225
  className: clsx43(
8135
- "bg-surface text-on-surface relative",
8226
+ "bg-input-background text-input-text relative",
8136
8227
  {
8137
- "shadow border-2 rounded-lg": defaultStyle,
8228
+ "border-2 rounded-lg": defaultStyle,
8138
8229
  "hover:border-primary focus-within:border-primary": defaultStyle && !disabled,
8139
- "border-disabled-border cursor-not-allowed": defaultStyle && !disabled
8230
+ "border-disabled-border cursor-not-allowed": defaultStyle && disabled
8140
8231
  }
8141
8232
  ),
8142
8233
  children: [
@@ -8182,8 +8273,8 @@ var TextareaUncontrolled = ({
8182
8273
  onChangeText = noop,
8183
8274
  ...props
8184
8275
  }) => {
8185
- const [text, setText] = useState23(value);
8186
- useEffect23(() => {
8276
+ const [text, setText] = useState24(value);
8277
+ useEffect24(() => {
8187
8278
  setText(value);
8188
8279
  }, [value]);
8189
8280
  return /* @__PURE__ */ jsx55(
@@ -8280,7 +8371,7 @@ var TableFilters = {
8280
8371
  };
8281
8372
 
8282
8373
  // src/components/table/Table.tsx
8283
- import { useCallback as useCallback9, useEffect as useEffect26, useMemo as useMemo3, useRef as useRef7, useState as useState25 } from "react";
8374
+ import { useCallback as useCallback9, useEffect as useEffect27, useMemo as useMemo5, useRef as useRef7, useState as useState26 } from "react";
8284
8375
  import clsx48 from "clsx";
8285
8376
  import {
8286
8377
  flexRender,
@@ -8294,7 +8385,7 @@ import { Scrollbars as Scrollbars3 } from "react-custom-scrollbars-2";
8294
8385
 
8295
8386
  // src/components/table/TableFilterButton.tsx
8296
8387
  import { FilterIcon } from "lucide-react";
8297
- import { useEffect as useEffect24, useState as useState24 } from "react";
8388
+ import { useEffect as useEffect25, useState as useState25 } from "react";
8298
8389
  import { Fragment as Fragment6, jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
8299
8390
  var defaultTableFilterTranslation = {
8300
8391
  en: {
@@ -8320,9 +8411,9 @@ var TableFilterButton = ({
8320
8411
  }) => {
8321
8412
  const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
8322
8413
  const columnFilterValue = column.getFilterValue();
8323
- const [filterValue, setFilterValue] = useState24(columnFilterValue);
8414
+ const [filterValue, setFilterValue] = useState25(columnFilterValue);
8324
8415
  const hasFilter = !!filterValue;
8325
- useEffect24(() => {
8416
+ useEffect25(() => {
8326
8417
  setFilterValue(columnFilterValue);
8327
8418
  }, [columnFilterValue]);
8328
8419
  return /* @__PURE__ */ jsx58(
@@ -8454,9 +8545,9 @@ var TableSortButton = ({
8454
8545
  };
8455
8546
 
8456
8547
  // src/hooks/useResizeCallbackWrapper.ts
8457
- import { useEffect as useEffect25 } from "react";
8548
+ import { useEffect as useEffect26 } from "react";
8458
8549
  var useResizeCallbackWrapper = (callback) => {
8459
- useEffect25(() => {
8550
+ useEffect26(() => {
8460
8551
  window.addEventListener("resize", callback);
8461
8552
  return () => {
8462
8553
  window.removeEventListener("resize", callback);
@@ -8490,20 +8581,20 @@ var Table = ({
8490
8581
  }) => {
8491
8582
  const ref = useRef7(null);
8492
8583
  const tableRef = useRef7(null);
8493
- const [columnSizing, setColumnSizing] = useState25(columns.reduce((previousValue, currentValue) => {
8584
+ const [columnSizing, setColumnSizing] = useState26(columns.reduce((previousValue, currentValue) => {
8494
8585
  return {
8495
8586
  ...previousValue,
8496
8587
  [currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
8497
8588
  };
8498
8589
  }, {}));
8499
- const [columnSizingInfo, setColumnSizingInfo] = useState25();
8500
- const [pagination, setPagination] = useState25({
8590
+ const [columnSizingInfo, setColumnSizingInfo] = useState26();
8591
+ const [pagination, setPagination] = useState26({
8501
8592
  pageSize: 10,
8502
8593
  pageIndex: 0,
8503
8594
  ...initialState?.pagination
8504
8595
  });
8505
- const [columnFilters, setColumnFilters] = useState25(initialState?.columnFilters);
8506
- const computedColumnMinWidths = useMemo3(() => {
8596
+ const [columnFilters, setColumnFilters] = useState26(initialState?.columnFilters);
8597
+ const computedColumnMinWidths = useMemo5(() => {
8507
8598
  return columns.reduce((previousValue, column) => {
8508
8599
  return {
8509
8600
  ...previousValue,
@@ -8512,7 +8603,7 @@ var Table = ({
8512
8603
  };
8513
8604
  }, {});
8514
8605
  }, [columns, defaultColumn]);
8515
- const computedColumnMaxWidths = useMemo3(() => {
8606
+ const computedColumnMaxWidths = useMemo5(() => {
8516
8607
  return columns.reduce((previousValue, column) => {
8517
8608
  return {
8518
8609
  ...previousValue,
@@ -8520,12 +8611,12 @@ var Table = ({
8520
8611
  };
8521
8612
  }, {});
8522
8613
  }, [columns, defaultColumn]);
8523
- const tableMinWidth = useMemo3(() => {
8614
+ const tableMinWidth = useMemo5(() => {
8524
8615
  return columns.reduce((sum, column) => {
8525
8616
  return sum + computedColumnMinWidths[column.id];
8526
8617
  }, 0);
8527
8618
  }, [columns, computedColumnMinWidths]);
8528
- const updateColumnSizes = useMemo3(() => {
8619
+ const updateColumnSizes = useMemo5(() => {
8529
8620
  return (previous) => {
8530
8621
  const updateSizing = {
8531
8622
  ...columnSizing,
@@ -8642,8 +8733,8 @@ var Table = ({
8642
8733
  columnResizeMode: "onChange",
8643
8734
  ...tableOptions
8644
8735
  });
8645
- const [hasInitializedSizing, setHasInitializedSizing] = useState25(false);
8646
- useEffect26(() => {
8736
+ const [hasInitializedSizing, setHasInitializedSizing] = useState26(false);
8737
+ useEffect27(() => {
8647
8738
  if (!hasInitializedSizing && ref.current) {
8648
8739
  setHasInitializedSizing(true);
8649
8740
  table.setColumnSizing(updateColumnSizes(columnSizing));
@@ -8653,7 +8744,7 @@ var Table = ({
8653
8744
  table.setColumnSizing(updateColumnSizes);
8654
8745
  }, [updateColumnSizes]));
8655
8746
  const pageCount = table.getPageCount();
8656
- useEffect26(() => {
8747
+ useEffect27(() => {
8657
8748
  const totalPages = pageCount;
8658
8749
  if (totalPages === 0) {
8659
8750
  if (pagination.pageIndex !== 0) {
@@ -8669,7 +8760,7 @@ var Table = ({
8669
8760
  }));
8670
8761
  }
8671
8762
  }, [data, pageCount, pagination.pageSize, pagination.pageIndex]);
8672
- const columnSizeVars = useMemo3(() => {
8763
+ const columnSizeVars = useMemo5(() => {
8673
8764
  const headers = table.getFlatHeaders();
8674
8765
  const colSizes = {};
8675
8766
  for (let i = 0; i < headers.length; i++) {
@@ -8684,7 +8775,7 @@ var Table = ({
8684
8775
  Scrollbars3,
8685
8776
  {
8686
8777
  autoHeight: true,
8687
- autoHeightMax: tableRef.current?.offsetHeight + 2,
8778
+ autoHeightMax: tableRef.current?.offsetHeight ? tableRef.current?.offsetHeight + 2 : void 0,
8688
8779
  autoHide: true,
8689
8780
  children: /* @__PURE__ */ jsxs38(
8690
8781
  "table",
@@ -8784,8 +8875,8 @@ var Table = ({
8784
8875
  ] });
8785
8876
  };
8786
8877
  var TableUncontrolled = ({ data, ...props }) => {
8787
- const [usedDate, setUsedData] = useState25(data);
8788
- useEffect26(() => {
8878
+ const [usedDate, setUsedData] = useState26(data);
8879
+ useEffect27(() => {
8789
8880
  setUsedData(data);
8790
8881
  }, [data]);
8791
8882
  return /* @__PURE__ */ jsx61(
@@ -8807,7 +8898,7 @@ var TableWithSelection = ({
8807
8898
  meta,
8808
8899
  ...props
8809
8900
  }) => {
8810
- const columnsWithSelection = useMemo3(() => {
8901
+ const columnsWithSelection = useMemo5(() => {
8811
8902
  return [
8812
8903
  {
8813
8904
  id: selectionRowId,
@@ -8877,7 +8968,7 @@ var TableWithSelection = ({
8877
8968
  };
8878
8969
 
8879
8970
  // src/components/user-action/CopyToClipboardWrapper.tsx
8880
- import { useState as useState26 } from "react";
8971
+ import { useState as useState27 } from "react";
8881
8972
  import { clsx as clsx49 } from "clsx";
8882
8973
 
8883
8974
  // src/util/writeToClipboard.ts
@@ -8897,8 +8988,8 @@ var CopyToClipboardWrapper = ({
8897
8988
  zIndex = 10
8898
8989
  }) => {
8899
8990
  const translation = useTranslation([formTranslation]);
8900
- const [isShowingIndication, setIsShowingIndication] = useState26(false);
8901
- const [isShowingConfirmation, setIsShowingConfirmation] = useState26(false);
8991
+ const [isShowingIndication, setIsShowingIndication] = useState27(false);
8992
+ const [isShowingConfirmation, setIsShowingConfirmation] = useState27(false);
8902
8993
  const positionClasses = {
8903
8994
  top: `bottom-full left-1/2 -translate-x-1/2 mb-[6px]`,
8904
8995
  bottom: `top-full left-1/2 -translate-x-1/2 mt-[6px]`,
@@ -9040,7 +9131,7 @@ var DateTimePicker = ({
9040
9131
  };
9041
9132
 
9042
9133
  // src/components/user-action/ScrollPicker.tsx
9043
- import { useCallback as useCallback10, useEffect as useEffect27, useState as useState27 } from "react";
9134
+ import { useCallback as useCallback10, useEffect as useEffect28, useState as useState28 } from "react";
9044
9135
  import clsx51 from "clsx";
9045
9136
  import { jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
9046
9137
  var up = 1;
@@ -9061,7 +9152,7 @@ var ScrollPicker = ({
9061
9152
  transition,
9062
9153
  items,
9063
9154
  lastTimeStamp
9064
- }, setAnimation] = useState27({
9155
+ }, setAnimation] = useState28({
9065
9156
  targetIndex: selectedIndex,
9066
9157
  currentIndex: disabled ? selectedIndex : 0,
9067
9158
  velocity: 0,
@@ -9160,7 +9251,7 @@ var ScrollPicker = ({
9160
9251
  };
9161
9252
  });
9162
9253
  }, [disabled, getDirection, onChange]);
9163
- useEffect27(() => {
9254
+ useEffect28(() => {
9164
9255
  requestAnimationFrame((timestamp) => animate(timestamp, lastTimeStamp));
9165
9256
  });
9166
9257
  const opacity = (transition2, index, itemsCount) => {
@@ -9237,7 +9328,7 @@ var ScrollPicker = ({
9237
9328
  };
9238
9329
 
9239
9330
  // src/components/user-action/ToggleableInput.tsx
9240
- import { useEffect as useEffect28, useRef as useRef8, useState as useState28 } from "react";
9331
+ import { useEffect as useEffect29, useRef as useRef8, useState as useState29 } from "react";
9241
9332
  import { Pencil } from "lucide-react";
9242
9333
  import clsx52 from "clsx";
9243
9334
  import { jsx as jsx65, jsxs as jsxs42 } from "react/jsx-runtime";
@@ -9255,14 +9346,14 @@ var ToggleableInput = ({
9255
9346
  saveDelayOptions,
9256
9347
  ...restProps
9257
9348
  }) => {
9258
- const [isEditing, setIsEditing] = useState28(initialState !== "display");
9349
+ const [isEditing, setIsEditing] = useState29(initialState !== "display");
9259
9350
  const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
9260
9351
  const ref = useRef8(null);
9261
9352
  const onEditCompletedWrapper = (text) => {
9262
9353
  onEditCompleted(text);
9263
9354
  clearTimer();
9264
9355
  };
9265
- useEffect28(() => {
9356
+ useEffect29(() => {
9266
9357
  if (isEditing) {
9267
9358
  ref.current?.focus();
9268
9359
  }
@@ -9327,8 +9418,8 @@ var ToggleableInputUncontrolled = ({
9327
9418
  onChangeText = noop,
9328
9419
  ...restProps
9329
9420
  }) => {
9330
- const [value, setValue] = useState28(initialValue);
9331
- useEffect28(() => {
9421
+ const [value, setValue] = useState29(initialValue);
9422
+ useEffect29(() => {
9332
9423
  setValue(initialValue);
9333
9424
  }, [initialValue]);
9334
9425
  return /* @__PURE__ */ jsx65(
@@ -9388,17 +9479,13 @@ var localizedNewsSchema = z.record(z.enum(LanguageUtil.languages), newsListSchem
9388
9479
  var filterNews = (localizedNews, requiredKeys) => {
9389
9480
  return localizedNews.filter((news) => requiredKeys.every((value) => news.keys.includes(value)));
9390
9481
  };
9391
-
9392
- // src/util/resolveSetState.ts
9393
- function resolveSetState(action, prev) {
9394
- return typeof action === "function" ? action(prev) : action;
9395
- }
9396
9482
  export {
9397
9483
  ASTNodeInterpreter,
9398
9484
  AnimatedRing,
9399
9485
  ArrayUtil,
9400
9486
  Avatar,
9401
9487
  AvatarGroup,
9488
+ AvatarUtil,
9402
9489
  BagFunctionUtil,
9403
9490
  BreadCrumb,
9404
9491
  ButtonColorUtil,
@@ -9409,6 +9496,7 @@ export {
9409
9496
  CheckboxUncontrolled,
9410
9497
  Chip,
9411
9498
  ChipList,
9499
+ ChipUtil,
9412
9500
  Circle,
9413
9501
  ConfirmDialog,
9414
9502
  ConfirmModal,
@@ -9509,8 +9597,6 @@ export {
9509
9597
  YearMonthPicker,
9510
9598
  YearMonthPickerUncontrolled,
9511
9599
  addDuration,
9512
- avatarSizeMapping,
9513
- avtarSizeList,
9514
9600
  builder,
9515
9601
  changeDuration,
9516
9602
  clamp,
@@ -9547,6 +9633,7 @@ export {
9547
9633
  useLanguage,
9548
9634
  useLocalStorage,
9549
9635
  useLocale,
9636
+ useLogOnce,
9550
9637
  useOutsideClick,
9551
9638
  usePopoverPosition,
9552
9639
  useRerender,