@helpwave/hightide 0.1.8 → 0.1.9

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 (189) hide show
  1. package/dist/components/date/DatePicker.d.mts +3 -4
  2. package/dist/components/date/DatePicker.d.ts +3 -4
  3. package/dist/components/date/DatePicker.js +117 -13
  4. package/dist/components/date/DatePicker.js.map +1 -1
  5. package/dist/components/date/DatePicker.mjs +117 -13
  6. package/dist/components/date/DatePicker.mjs.map +1 -1
  7. package/dist/components/date/TimeDisplay.d.mts +5 -19
  8. package/dist/components/date/TimeDisplay.d.ts +5 -19
  9. package/dist/components/date/TimeDisplay.js +121 -37
  10. package/dist/components/date/TimeDisplay.js.map +1 -1
  11. package/dist/components/date/TimeDisplay.mjs +121 -37
  12. package/dist/components/date/TimeDisplay.mjs.map +1 -1
  13. package/dist/components/dialogs/ConfirmDialog.d.mts +2 -5
  14. package/dist/components/dialogs/ConfirmDialog.d.ts +2 -5
  15. package/dist/components/dialogs/ConfirmDialog.js +155 -23
  16. package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
  17. package/dist/components/dialogs/ConfirmDialog.mjs +155 -23
  18. package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -1
  19. package/dist/components/layout-and-navigation/Overlay.d.mts +2 -3
  20. package/dist/components/layout-and-navigation/Overlay.d.ts +2 -3
  21. package/dist/components/layout-and-navigation/Overlay.js +150 -10
  22. package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
  23. package/dist/components/layout-and-navigation/Overlay.mjs +150 -10
  24. package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
  25. package/dist/components/layout-and-navigation/Pagination.d.mts +2 -3
  26. package/dist/components/layout-and-navigation/Pagination.d.ts +2 -3
  27. package/dist/components/layout-and-navigation/Pagination.js +145 -13
  28. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  29. package/dist/components/layout-and-navigation/Pagination.mjs +145 -13
  30. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  31. package/dist/components/layout-and-navigation/SearchableList.d.mts +3 -2
  32. package/dist/components/layout-and-navigation/SearchableList.d.ts +3 -2
  33. package/dist/components/layout-and-navigation/SearchableList.js +149 -11
  34. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
  35. package/dist/components/layout-and-navigation/SearchableList.mjs +149 -11
  36. package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
  37. package/dist/components/layout-and-navigation/StepperBar.d.mts +2 -5
  38. package/dist/components/layout-and-navigation/StepperBar.d.ts +2 -5
  39. package/dist/components/layout-and-navigation/StepperBar.js +145 -15
  40. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  41. package/dist/components/layout-and-navigation/StepperBar.mjs +145 -15
  42. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  43. package/dist/components/layout-and-navigation/Table.js +145 -13
  44. package/dist/components/layout-and-navigation/Table.js.map +1 -1
  45. package/dist/components/layout-and-navigation/Table.mjs +145 -13
  46. package/dist/components/layout-and-navigation/Table.mjs.map +1 -1
  47. package/dist/components/layout-and-navigation/TextImage.d.mts +3 -4
  48. package/dist/components/layout-and-navigation/TextImage.d.ts +3 -4
  49. package/dist/components/layout-and-navigation/TextImage.js +153 -19
  50. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  51. package/dist/components/layout-and-navigation/TextImage.mjs +153 -19
  52. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  53. package/dist/components/loading-states/ErrorComponent.js +48 -8
  54. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  55. package/dist/components/loading-states/ErrorComponent.mjs +48 -8
  56. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
  57. package/dist/components/loading-states/LoadingAndErrorComponent.d.mts +1 -0
  58. package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +1 -0
  59. package/dist/components/loading-states/LoadingAndErrorComponent.js +147 -15
  60. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
  61. package/dist/components/loading-states/LoadingAndErrorComponent.mjs +147 -15
  62. package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -1
  63. package/dist/components/loading-states/LoadingAnimation.d.mts +2 -3
  64. package/dist/components/loading-states/LoadingAnimation.d.ts +2 -3
  65. package/dist/components/loading-states/LoadingAnimation.js +145 -13
  66. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  67. package/dist/components/loading-states/LoadingAnimation.mjs +145 -13
  68. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  69. package/dist/components/modals/ConfirmModal.d.mts +2 -5
  70. package/dist/components/modals/ConfirmModal.d.ts +2 -5
  71. package/dist/components/modals/ConfirmModal.js +156 -26
  72. package/dist/components/modals/ConfirmModal.js.map +1 -1
  73. package/dist/components/modals/ConfirmModal.mjs +156 -26
  74. package/dist/components/modals/ConfirmModal.mjs.map +1 -1
  75. package/dist/components/modals/DiscardChangesModal.d.mts +2 -7
  76. package/dist/components/modals/DiscardChangesModal.d.ts +2 -7
  77. package/dist/components/modals/DiscardChangesModal.js +160 -46
  78. package/dist/components/modals/DiscardChangesModal.js.map +1 -1
  79. package/dist/components/modals/DiscardChangesModal.mjs +160 -46
  80. package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
  81. package/dist/components/modals/InputModal.d.mts +1 -0
  82. package/dist/components/modals/InputModal.d.ts +1 -0
  83. package/dist/components/modals/InputModal.js +156 -26
  84. package/dist/components/modals/InputModal.js.map +1 -1
  85. package/dist/components/modals/InputModal.mjs +156 -26
  86. package/dist/components/modals/InputModal.mjs.map +1 -1
  87. package/dist/components/modals/LanguageModal.d.mts +3 -2
  88. package/dist/components/modals/LanguageModal.d.ts +3 -2
  89. package/dist/components/modals/LanguageModal.js +161 -23
  90. package/dist/components/modals/LanguageModal.js.map +1 -1
  91. package/dist/components/modals/LanguageModal.mjs +161 -23
  92. package/dist/components/modals/LanguageModal.mjs.map +1 -1
  93. package/dist/components/modals/ThemeModal.d.mts +5 -5
  94. package/dist/components/modals/ThemeModal.d.ts +5 -5
  95. package/dist/components/modals/ThemeModal.js +169 -29
  96. package/dist/components/modals/ThemeModal.js.map +1 -1
  97. package/dist/components/modals/ThemeModal.mjs +169 -29
  98. package/dist/components/modals/ThemeModal.mjs.map +1 -1
  99. package/dist/components/properties/CheckboxProperty.d.mts +3 -5
  100. package/dist/components/properties/CheckboxProperty.d.ts +3 -5
  101. package/dist/components/properties/CheckboxProperty.js +147 -25
  102. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  103. package/dist/components/properties/CheckboxProperty.mjs +147 -25
  104. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  105. package/dist/components/properties/DateProperty.d.mts +1 -0
  106. package/dist/components/properties/DateProperty.d.ts +1 -0
  107. package/dist/components/properties/DateProperty.js +145 -13
  108. package/dist/components/properties/DateProperty.js.map +1 -1
  109. package/dist/components/properties/DateProperty.mjs +145 -13
  110. package/dist/components/properties/DateProperty.mjs.map +1 -1
  111. package/dist/components/properties/MultiSelectProperty.d.mts +4 -5
  112. package/dist/components/properties/MultiSelectProperty.d.ts +4 -5
  113. package/dist/components/properties/MultiSelectProperty.js +160 -42
  114. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  115. package/dist/components/properties/MultiSelectProperty.mjs +160 -42
  116. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  117. package/dist/components/properties/NumberProperty.d.mts +1 -0
  118. package/dist/components/properties/NumberProperty.d.ts +1 -0
  119. package/dist/components/properties/NumberProperty.js +147 -15
  120. package/dist/components/properties/NumberProperty.js.map +1 -1
  121. package/dist/components/properties/NumberProperty.mjs +147 -15
  122. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  123. package/dist/components/properties/PropertyBase.d.mts +2 -3
  124. package/dist/components/properties/PropertyBase.d.ts +2 -3
  125. package/dist/components/properties/PropertyBase.js +145 -13
  126. package/dist/components/properties/PropertyBase.js.map +1 -1
  127. package/dist/components/properties/PropertyBase.mjs +145 -13
  128. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  129. package/dist/components/properties/SelectProperty.d.mts +2 -3
  130. package/dist/components/properties/SelectProperty.d.ts +2 -3
  131. package/dist/components/properties/SelectProperty.js +150 -28
  132. package/dist/components/properties/SelectProperty.js.map +1 -1
  133. package/dist/components/properties/SelectProperty.mjs +150 -28
  134. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  135. package/dist/components/properties/TextProperty.d.mts +2 -1
  136. package/dist/components/properties/TextProperty.d.ts +2 -1
  137. package/dist/components/properties/TextProperty.js +149 -17
  138. package/dist/components/properties/TextProperty.js.map +1 -1
  139. package/dist/components/properties/TextProperty.mjs +149 -17
  140. package/dist/components/properties/TextProperty.mjs.map +1 -1
  141. package/dist/components/user-action/DateAndTimePicker.d.mts +4 -20
  142. package/dist/components/user-action/DateAndTimePicker.d.ts +4 -20
  143. package/dist/components/user-action/DateAndTimePicker.js +215 -51
  144. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  145. package/dist/components/user-action/DateAndTimePicker.mjs +215 -51
  146. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  147. package/dist/components/user-action/MultiSelect.d.mts +4 -8
  148. package/dist/components/user-action/MultiSelect.d.ts +4 -8
  149. package/dist/components/user-action/MultiSelect.js +156 -22
  150. package/dist/components/user-action/MultiSelect.js.map +1 -1
  151. package/dist/components/user-action/MultiSelect.mjs +156 -22
  152. package/dist/components/user-action/MultiSelect.mjs.map +1 -1
  153. package/dist/components/user-action/Select.js +149 -11
  154. package/dist/components/user-action/Select.js.map +1 -1
  155. package/dist/components/user-action/Select.mjs +149 -11
  156. package/dist/components/user-action/Select.mjs.map +1 -1
  157. package/dist/css/globals.css +13 -4
  158. package/dist/css/uncompiled/globals.css +4 -4
  159. package/dist/index.d.mts +4 -2
  160. package/dist/index.d.ts +4 -2
  161. package/dist/index.js +332 -300
  162. package/dist/index.js.map +1 -1
  163. package/dist/index.mjs +329 -300
  164. package/dist/index.mjs.map +1 -1
  165. package/dist/localization/defaults/form.d.mts +54 -0
  166. package/dist/localization/defaults/form.d.ts +54 -0
  167. package/dist/localization/defaults/form.js +127 -0
  168. package/dist/localization/defaults/form.js.map +1 -0
  169. package/dist/localization/defaults/form.mjs +103 -0
  170. package/dist/localization/defaults/form.mjs.map +1 -0
  171. package/dist/localization/defaults/time.d.mts +39 -0
  172. package/dist/localization/defaults/time.d.ts +39 -0
  173. package/dist/localization/defaults/time.js +101 -0
  174. package/dist/localization/defaults/time.js.map +1 -0
  175. package/dist/localization/defaults/time.mjs +76 -0
  176. package/dist/localization/defaults/time.mjs.map +1 -0
  177. package/dist/localization/useTranslation.d.mts +30 -6
  178. package/dist/localization/useTranslation.d.ts +30 -6
  179. package/dist/localization/useTranslation.js +46 -6
  180. package/dist/localization/useTranslation.js.map +1 -1
  181. package/dist/localization/useTranslation.mjs +46 -6
  182. package/dist/localization/useTranslation.mjs.map +1 -1
  183. package/dist/theming/useTheme.d.mts +4 -2
  184. package/dist/theming/useTheme.d.ts +4 -2
  185. package/dist/theming/useTheme.js +10 -2
  186. package/dist/theming/useTheme.js.map +1 -1
  187. package/dist/theming/useTheme.mjs +10 -2
  188. package/dist/theming/useTheme.mjs.map +1 -1
  189. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2957,6 +2957,7 @@ __export(index_exports, {
2957
2957
  equalDate: () => equalDate,
2958
2958
  equalSizeGroups: () => equalSizeGroups,
2959
2959
  filterNews: () => filterNews,
2960
+ formTranslation: () => formTranslation,
2960
2961
  formatDate: () => formatDate,
2961
2962
  formatDateTime: () => formatDateTime,
2962
2963
  generateShadingColors: () => generateShadingColors,
@@ -2967,6 +2968,7 @@ __export(index_exports, {
2967
2968
  isDataObjectSelected: () => isDataObjectSelected,
2968
2969
  isInTimeSpan: () => isInTimeSpan,
2969
2970
  localizedNewsSchema: () => localizedNewsSchema,
2971
+ monthTranslation: () => monthTranslation,
2970
2972
  monthsList: () => monthsList,
2971
2973
  newsListSchema: () => newsListSchema,
2972
2974
  newsSchema: () => newsSchema,
@@ -2976,6 +2978,7 @@ __export(index_exports, {
2976
2978
  removeFromTableSelection: () => removeFromTableSelection,
2977
2979
  shadingColorValues: () => shadingColorValues,
2978
2980
  subtractDuration: () => subtractDuration,
2981
+ timeTranslation: () => timeTranslation,
2979
2982
  updatePagination: () => updatePagination,
2980
2983
  useHoverState: () => useHoverState,
2981
2984
  useLanguage: () => useLanguage,
@@ -3301,15 +3304,55 @@ var LanguageProvider = ({ initialLanguage, children }) => {
3301
3304
  };
3302
3305
 
3303
3306
  // src/localization/useTranslation.ts
3304
- var useTranslation = (defaults, translationOverwrite = {}) => {
3305
- const { language: languageProp, translation: overwrite } = translationOverwrite;
3307
+ var useTranslation = (translations, overwriteTranslation = {}) => {
3308
+ const { language: languageProp, translation: overwrite } = overwriteTranslation;
3306
3309
  const { language: inferredLanguage } = useLanguage();
3307
3310
  const usedLanguage = languageProp ?? inferredLanguage;
3308
- let defaultValues = defaults[usedLanguage];
3309
- if (overwrite && overwrite[usedLanguage]) {
3310
- defaultValues = { ...defaultValues, ...overwrite[usedLanguage] };
3311
- }
3312
- return defaultValues;
3311
+ const usedTranslations = [...translations];
3312
+ if (overwrite) {
3313
+ usedTranslations.push(overwrite);
3314
+ }
3315
+ return (key, options) => {
3316
+ const { count, replacements } = { ...{ count: 0, replacements: {} }, ...options };
3317
+ try {
3318
+ for (let i = translations.length - 1; i >= 0; i--) {
3319
+ const translation = translations[i];
3320
+ const localizedTranslation = translation[usedLanguage];
3321
+ if (!localizedTranslation) {
3322
+ continue;
3323
+ }
3324
+ const value = localizedTranslation[key];
3325
+ if (!value) {
3326
+ continue;
3327
+ }
3328
+ let forProcessing;
3329
+ if (typeof value !== "string") {
3330
+ if (count <= 0 && value?.zero) {
3331
+ forProcessing = value.zero;
3332
+ } else if (count === 1 && value?.one) {
3333
+ forProcessing = value.one;
3334
+ } else if (count === 2 && value?.two) {
3335
+ forProcessing = value.two;
3336
+ } else if (count <= 10 && value?.few) {
3337
+ forProcessing = value.few;
3338
+ } else if (count > 10 && value?.many) {
3339
+ forProcessing = value.many;
3340
+ } else {
3341
+ forProcessing = value.other;
3342
+ }
3343
+ } else {
3344
+ forProcessing = value;
3345
+ }
3346
+ forProcessing = forProcessing.replace(/\{\{(\w+)}}/g, (_, placeholder) => {
3347
+ return replacements[placeholder] ?? `{{${placeholder}}}`;
3348
+ });
3349
+ return forProcessing;
3350
+ }
3351
+ } catch (e) {
3352
+ console.error(e);
3353
+ }
3354
+ return `{{${usedLanguage}:${key}}}`;
3355
+ };
3313
3356
  };
3314
3357
 
3315
3358
  // src/util/noop.ts
@@ -4023,16 +4066,80 @@ var DayPickerUncontrolled = ({
4023
4066
  );
4024
4067
  };
4025
4068
 
4026
- // src/components/date/DatePicker.tsx
4027
- var import_jsx_runtime9 = require("react/jsx-runtime");
4028
- var defaultDatePickerTranslation = {
4069
+ // src/localization/defaults/time.ts
4070
+ var monthTranslation = {
4029
4071
  en: {
4030
- today: "Today"
4072
+ january: "January",
4073
+ february: "Febuary",
4074
+ march: "March",
4075
+ april: "April",
4076
+ may: "May",
4077
+ june: "June",
4078
+ july: "July",
4079
+ august: "August",
4080
+ september: "September",
4081
+ october: "October",
4082
+ november: "November",
4083
+ december: "December"
4031
4084
  },
4032
4085
  de: {
4033
- today: "Heute"
4086
+ january: "Januar",
4087
+ february: "Febuar",
4088
+ march: "M\xE4rz",
4089
+ april: "April",
4090
+ may: "Mai",
4091
+ june: "Juni",
4092
+ july: "Juli",
4093
+ august: "August",
4094
+ september: "September",
4095
+ october: "October",
4096
+ november: "November",
4097
+ december: "December"
4034
4098
  }
4035
4099
  };
4100
+ var timeTranslation = {
4101
+ en: {
4102
+ ...monthTranslation.en,
4103
+ century: { one: "Century", other: "Centuries" },
4104
+ decade: { one: "Decade", other: "Decades" },
4105
+ year: { one: "Year", other: "Years" },
4106
+ month: { one: "Month", other: "Months" },
4107
+ day: { one: "Day", other: "Days" },
4108
+ hour: { one: "Hour", other: "Hours" },
4109
+ minute: { one: "Minute", other: "Minutes" },
4110
+ second: { one: "Second", other: "Seconds" },
4111
+ millisecond: { one: "Millisecond", other: "Milliseconds" },
4112
+ microsecond: { one: "Microsecond", other: "Microseconds" },
4113
+ nanosecond: { one: "Nanosecond", other: "Nanoseconds" },
4114
+ yesterday: "Yesterday",
4115
+ today: "Today",
4116
+ tomorrow: "Tomorrow",
4117
+ in: "in",
4118
+ ago: "ago"
4119
+ },
4120
+ de: {
4121
+ ...monthTranslation.de,
4122
+ century: { one: "Jahrhundert", other: "Jahrhunderte" },
4123
+ decade: { one: "Jahrzehnt", other: "Jahrzehnte" },
4124
+ year: { one: "Jahr", other: "Jahre" },
4125
+ month: { one: "Monat", other: "Monate" },
4126
+ day: { one: "Tag", other: "Tage" },
4127
+ hour: { one: "Stunde", other: "Stunden" },
4128
+ minute: { one: "Minute", other: "Minuten" },
4129
+ second: { one: "Sekunde", other: "Sekunden" },
4130
+ millisecond: { one: "Millisekunde", other: "Millisekunden" },
4131
+ microsecond: { one: "Mikrosekunde", other: "Mikrosekunden" },
4132
+ nanosecond: { one: "Nanosekunde", other: "Nanosekunden" },
4133
+ yesterday: "Gestern",
4134
+ today: "Heute",
4135
+ tomorrow: "Morgen",
4136
+ in: "in",
4137
+ ago: "vor"
4138
+ }
4139
+ };
4140
+
4141
+ // src/components/date/DatePicker.tsx
4142
+ var import_jsx_runtime9 = require("react/jsx-runtime");
4036
4143
  var DatePicker = ({
4037
4144
  overwriteTranslation,
4038
4145
  value = /* @__PURE__ */ new Date(),
@@ -4045,7 +4152,7 @@ var DatePicker = ({
4045
4152
  className = ""
4046
4153
  }) => {
4047
4154
  const locale = useLocale();
4048
- const translation = useTranslation(defaultDatePickerTranslation, overwriteTranslation);
4155
+ const translation = useTranslation([timeTranslation], overwriteTranslation);
4049
4156
  const [displayedMonth, setDisplayedMonth] = (0, import_react6.useState)(value);
4050
4157
  const [displayMode, setDisplayMode] = (0, import_react6.useState)(initialDisplay);
4051
4158
  (0, import_react6.useEffect)(() => {
@@ -4128,7 +4235,7 @@ var DatePicker = ({
4128
4235
  newDate.setHours(value.getHours(), value.getMinutes());
4129
4236
  onChange(newDate);
4130
4237
  },
4131
- children: translation.today
4238
+ children: translation("today")
4132
4239
  }
4133
4240
  ) })
4134
4241
  ] })
@@ -4158,42 +4265,14 @@ var DatePickerUncontrolled = ({
4158
4265
  var import_jsx_runtime10 = require("react/jsx-runtime");
4159
4266
  var defaultTimeDisplayTranslations = {
4160
4267
  en: {
4161
- today: "today",
4162
- yesterday: "yesterday",
4163
- tomorrow: "tomorrow",
4164
- inDays: (days) => `in ${days} days`,
4165
- agoDays: (days) => `${days} days ago`,
4166
- january: "January",
4167
- february: "February",
4168
- march: "March",
4169
- april: "April",
4170
- may: "May",
4171
- june: "June",
4172
- july: "July",
4173
- august: "August",
4174
- september: "September",
4175
- october: "October",
4176
- november: "November",
4177
- december: "December"
4268
+ ...timeTranslation.en,
4269
+ inDays: `in {{days}} days`,
4270
+ agoDays: `{{days}} days ago`
4178
4271
  },
4179
4272
  de: {
4180
- today: "heute",
4181
- yesterday: "gestern",
4182
- tomorrow: "morgen",
4183
- inDays: (days) => `in ${days} Tagen`,
4184
- agoDays: (days) => `vor ${days} Tagen`,
4185
- january: "Januar",
4186
- february: "Februar",
4187
- march: "M\xE4rz",
4188
- april: "April",
4189
- may: "Mai",
4190
- june: "Juni",
4191
- july: "Juli",
4192
- august: "August",
4193
- september: "September",
4194
- october: "October",
4195
- november: "November",
4196
- december: "December"
4273
+ ...timeTranslation.de,
4274
+ inDays: `in {{days}} Tagen`,
4275
+ agoDays: `vor {{days}} Tagen`
4197
4276
  }
4198
4277
  };
4199
4278
  var TimeDisplay = ({
@@ -4201,31 +4280,31 @@ var TimeDisplay = ({
4201
4280
  date,
4202
4281
  mode = "daysFromToday"
4203
4282
  }) => {
4204
- const translation = useTranslation(defaultTimeDisplayTranslations, overwriteTranslation);
4283
+ const translation = useTranslation([defaultTimeDisplayTranslations], overwriteTranslation);
4205
4284
  const difference = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0).valueOf() - new Date(date).setHours(0, 0, 0, 0).valueOf();
4206
4285
  const isBefore = difference > 0;
4207
4286
  const differenceInDays = Math.floor(Math.abs(difference) / (1e3 * 3600 * 24));
4208
4287
  let displayString;
4209
4288
  if (differenceInDays === 0) {
4210
- displayString = translation.today;
4289
+ displayString = translation("today");
4211
4290
  } else if (differenceInDays === 1) {
4212
- displayString = isBefore ? translation.yesterday : translation.tomorrow;
4291
+ displayString = isBefore ? translation("yesterday") : translation("tomorrow");
4213
4292
  } else {
4214
- displayString = isBefore ? translation.agoDays(differenceInDays) : translation.inDays(differenceInDays);
4293
+ displayString = isBefore ? translation("agoDays", { replacements: { days: differenceInDays.toString() } }) : translation("inDays", { replacements: { days: differenceInDays.toString() } });
4215
4294
  }
4216
4295
  const monthToTranslation = {
4217
- 0: translation.january,
4218
- 1: translation.february,
4219
- 2: translation.march,
4220
- 3: translation.april,
4221
- 4: translation.may,
4222
- 5: translation.june,
4223
- 6: translation.july,
4224
- 7: translation.august,
4225
- 8: translation.september,
4226
- 9: translation.october,
4227
- 10: translation.november,
4228
- 11: translation.december
4296
+ 0: translation("january"),
4297
+ 1: translation("february"),
4298
+ 2: translation("march"),
4299
+ 3: translation("april"),
4300
+ 4: translation("may"),
4301
+ 5: translation("june"),
4302
+ 6: translation("july"),
4303
+ 7: translation("august"),
4304
+ 8: translation("september"),
4305
+ 9: translation("october"),
4306
+ 10: translation("november"),
4307
+ 11: translation("december")
4229
4308
  };
4230
4309
  let fullString;
4231
4310
  if (mode === "daysFromToday") {
@@ -4495,6 +4574,108 @@ var Tooltip = ({
4495
4574
 
4496
4575
  // src/components/layout-and-navigation/Overlay.tsx
4497
4576
  var import_lucide_react4 = require("lucide-react");
4577
+
4578
+ // src/localization/defaults/form.ts
4579
+ var formTranslation = {
4580
+ en: {
4581
+ all: "All",
4582
+ back: "Back",
4583
+ cancel: "Cancel",
4584
+ change: "Change",
4585
+ clear: "Clear",
4586
+ close: "Close",
4587
+ confirm: "Confirm",
4588
+ decline: "Decline",
4589
+ delete: "Delete",
4590
+ discard: "Discard",
4591
+ discardChanges: "Discard Changes",
4592
+ done: "Done",
4593
+ edit: "Edit",
4594
+ enterText: "Enter text here",
4595
+ error: "Error",
4596
+ exit: "Exit",
4597
+ fieldRequiredError: "This field is required.",
4598
+ invalidEmailError: "Please enter a valid email address.",
4599
+ less: "Less",
4600
+ loading: "Loading",
4601
+ maxLengthError: "Maximum length exceeded.",
4602
+ minLengthError: "Minimum length not met.",
4603
+ more: "More",
4604
+ next: "Next",
4605
+ no: "No",
4606
+ none: "None",
4607
+ of: "of",
4608
+ optional: "Optional",
4609
+ pleaseWait: "Please wait...",
4610
+ previous: "Previous",
4611
+ remove: "Remove",
4612
+ required: "Required",
4613
+ reset: "Reset",
4614
+ save: "Save",
4615
+ search: "Search",
4616
+ select: "Select",
4617
+ selectOption: "Select an option",
4618
+ show: "Show",
4619
+ showMore: "Show more",
4620
+ showLess: "Show less",
4621
+ submit: "Submit",
4622
+ success: "Success",
4623
+ update: "Update",
4624
+ unsavedChanges: "Unsaved Changes",
4625
+ unsavedChangesSaveQuestion: "Do you want to save your changes?",
4626
+ yes: "Yes"
4627
+ },
4628
+ de: {
4629
+ all: "Alle",
4630
+ back: "Zur\xFCck",
4631
+ cancel: "Abbrechen",
4632
+ change: "\xC4ndern",
4633
+ clear: "L\xF6schen",
4634
+ close: "Schlie\xDFen",
4635
+ confirm: "Best\xE4tigen",
4636
+ decline: "Ablehnen",
4637
+ delete: "L\xF6schen",
4638
+ discard: "Verwerfen",
4639
+ discardChanges: "\xC4nderungen Verwerfen",
4640
+ done: "Fertig",
4641
+ edit: "Bearbeiten",
4642
+ enterText: "Text hier eingeben",
4643
+ error: "Fehler",
4644
+ exit: "Beenden",
4645
+ fieldRequiredError: "Dieses Feld ist erforderlich.",
4646
+ invalidEmailError: "Bitte geben Sie eine g\xFCltige E-Mail-Adresse ein.",
4647
+ less: "Weniger",
4648
+ loading: "L\xE4dt",
4649
+ maxLengthError: "Maximale L\xE4nge \xFCberschritten.",
4650
+ minLengthError: "Mindestl\xE4nge nicht erreicht.",
4651
+ more: "Mehr",
4652
+ next: "Weiter",
4653
+ no: "Nein",
4654
+ none: "Nichts",
4655
+ of: "von",
4656
+ optional: "Optional",
4657
+ pleaseWait: "Bitte warten...",
4658
+ previous: "Vorherige",
4659
+ remove: "Entfernen",
4660
+ required: "Erforderlich",
4661
+ reset: "Zur\xFCcksetzen",
4662
+ save: "Speichern",
4663
+ search: "Suche",
4664
+ select: "Select",
4665
+ selectOption: "Option ausw\xE4hlen",
4666
+ show: "Anzeigen",
4667
+ showMore: "Mehr anzeigen",
4668
+ showLess: "Weniger anzeigen",
4669
+ submit: "Abschicken",
4670
+ success: "Erfolg",
4671
+ update: "Update",
4672
+ unsavedChanges: "Ungespeicherte \xC4nderungen",
4673
+ unsavedChangesSaveQuestion: "M\xF6chtest du die \xC4nderungen speichern?",
4674
+ yes: "Ja"
4675
+ }
4676
+ };
4677
+
4678
+ // src/components/layout-and-navigation/Overlay.tsx
4498
4679
  var import_jsx_runtime13 = require("react/jsx-runtime");
4499
4680
  var Overlay = ({
4500
4681
  children,
@@ -4524,10 +4705,10 @@ var Overlay = ({
4524
4705
  var overlayStack = [];
4525
4706
  var defaultModalHeaderTranslation = {
4526
4707
  en: {
4527
- close: "Close"
4708
+ ...formTranslation.en
4528
4709
  },
4529
4710
  de: {
4530
- close: "Schlie\xDFen"
4711
+ ...formTranslation.de
4531
4712
  }
4532
4713
  };
4533
4714
  var OverlayHeader = ({
@@ -4538,7 +4719,7 @@ var OverlayHeader = ({
4538
4719
  description,
4539
4720
  descriptionText = ""
4540
4721
  }) => {
4541
- const translation = useTranslation(defaultModalHeaderTranslation, overwriteTranslation);
4722
+ const translation = useTranslation([defaultModalHeaderTranslation], overwriteTranslation);
4542
4723
  const hasTitleRow = !!title || !!titleText || !!onClose;
4543
4724
  const titleRow = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "row justify-between items-start gap-x-8", children: [
4544
4725
  title ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
@@ -4550,7 +4731,7 @@ var OverlayHeader = ({
4550
4731
  children: titleText
4551
4732
  }
4552
4733
  ),
4553
- !!onClose && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Tooltip, { tooltip: translation.close, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.X, { className: "w-full h-full" }) }) })
4734
+ !!onClose && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Tooltip, { tooltip: translation("close"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.X, { className: "w-full h-full" }) }) })
4554
4735
  ] });
4555
4736
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "col", children: [
4556
4737
  hasTitleRow && titleRow,
@@ -4701,16 +4882,6 @@ var Dialog = ({
4701
4882
 
4702
4883
  // src/components/dialogs/ConfirmDialog.tsx
4703
4884
  var import_jsx_runtime14 = require("react/jsx-runtime");
4704
- var defaultConfirmDialogTranslation = {
4705
- en: {
4706
- confirm: "Confirm",
4707
- decline: "Decline"
4708
- },
4709
- de: {
4710
- confirm: "Best\xE4tigen",
4711
- decline: "Ablehnen"
4712
- }
4713
- };
4714
4885
  var ConfirmDialog = ({
4715
4886
  overwriteTranslation,
4716
4887
  children,
@@ -4721,7 +4892,7 @@ var ConfirmDialog = ({
4721
4892
  className,
4722
4893
  ...restProps
4723
4894
  }) => {
4724
- const translation = useTranslation(defaultConfirmDialogTranslation, overwriteTranslation);
4895
+ const translation = useTranslation([formTranslation], overwriteTranslation);
4725
4896
  const mapping = {
4726
4897
  neutral: "primary",
4727
4898
  negative: "negative",
@@ -4737,7 +4908,7 @@ var ConfirmDialog = ({
4737
4908
  color: buttonOverwrites?.[0].color ?? "negative",
4738
4909
  onClick: onDecline,
4739
4910
  disabled: buttonOverwrites?.[0].disabled ?? false,
4740
- children: buttonOverwrites?.[0].text ?? translation.decline
4911
+ children: buttonOverwrites?.[0].text ?? translation("decline")
4741
4912
  }
4742
4913
  ),
4743
4914
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
@@ -4747,7 +4918,7 @@ var ConfirmDialog = ({
4747
4918
  color: buttonOverwrites?.[1].color ?? mapping[confirmType],
4748
4919
  onClick: onConfirm,
4749
4920
  disabled: buttonOverwrites?.[1].disabled ?? false,
4750
- children: buttonOverwrites?.[1].text ?? translation.confirm
4921
+ children: buttonOverwrites?.[1].text ?? translation("confirm")
4751
4922
  }
4752
4923
  )
4753
4924
  ] })
@@ -5923,21 +6094,13 @@ var FAQSection = ({
5923
6094
  var import_lucide_react7 = require("lucide-react");
5924
6095
  var import_clsx21 = __toESM(require("clsx"));
5925
6096
  var import_jsx_runtime25 = require("react/jsx-runtime");
5926
- var defaultPaginationTranslations = {
5927
- en: {
5928
- of: "of"
5929
- },
5930
- de: {
5931
- of: "von"
5932
- }
5933
- };
5934
6097
  var Pagination = ({
5935
6098
  overwriteTranslation,
5936
6099
  page,
5937
6100
  numberOfPages,
5938
6101
  onPageChanged
5939
6102
  }) => {
5940
- const translation = useTranslation(defaultPaginationTranslations, overwriteTranslation);
6103
+ const translation = useTranslation([formTranslation], overwriteTranslation);
5941
6104
  const changePage = (page2) => {
5942
6105
  onPageChanged(page2);
5943
6106
  };
@@ -5949,7 +6112,7 @@ var Pagination = ({
5949
6112
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(page - 1), disabled: onFirstPage, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react7.ChevronLeft, { className: (0, import_clsx21.default)({ "opacity-30": onFirstPage }) }) }),
5950
6113
  /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "min-w-[80px] justify-center mx-2", children: [
5951
6114
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none text-right flex-1", children: noPages ? 0 : page + 1 }),
5952
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none mx-2", children: translation.of }),
6115
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none mx-2", children: translation("of") }),
5953
6116
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "select-none text-left flex-1", children: numberOfPages })
5954
6117
  ] }),
5955
6118
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("button", { onClick: () => changePage(page + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react7.ChevronRight, { className: (0, import_clsx21.default)({ "opacity-30": onLastPage }) }) }),
@@ -6194,11 +6357,9 @@ var useSearch = ({
6194
6357
  var import_jsx_runtime28 = require("react/jsx-runtime");
6195
6358
  var defaultSearchableListTranslation = {
6196
6359
  en: {
6197
- search: "Search",
6198
6360
  nothingFound: "Nothing found"
6199
6361
  },
6200
6362
  de: {
6201
- search: "Suche",
6202
6363
  nothingFound: "Nichts gefunden"
6203
6364
  }
6204
6365
  };
@@ -6213,7 +6374,7 @@ var SearchableList = ({
6213
6374
  className,
6214
6375
  resultListClassName
6215
6376
  }) => {
6216
- const translation = useTranslation(defaultSearchableListTranslation, overwriteTranslation);
6377
+ const translation = useTranslation([defaultSearchableListTranslation, formTranslation], overwriteTranslation);
6217
6378
  const { result, hasResult, search, setSearch } = useSearch({ list, initialSearch, searchMapping });
6218
6379
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: (0, import_clsx24.default)("col gap-y-2", className), children: [
6219
6380
  list.length > minimumItemsForSearch && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "row justify-between gap-x-4 items-center", children: [
@@ -6222,14 +6383,14 @@ var SearchableList = ({
6222
6383
  {
6223
6384
  value: search,
6224
6385
  onChangeText: setSearch,
6225
- placeholder: translation.search,
6386
+ placeholder: translation("search"),
6226
6387
  autoFocus,
6227
6388
  className: "w-full"
6228
6389
  }
6229
6390
  ),
6230
6391
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IconButton, { color: "neutral", disabled: search.length === 0, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react8.Search, { className: "w-full h-full" }) })
6231
6392
  ] }),
6232
- hasResult ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx24.default)("col gap-y-1", resultListClassName), children: result.map(itemMapper) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "row text-description py-2 px-2", children: translation.nothingFound })
6393
+ hasResult ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: (0, import_clsx24.default)("col gap-y-1", resultListClassName), children: result.map(itemMapper) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "row text-description py-2 px-2", children: translation("nothingFound") })
6233
6394
  ] });
6234
6395
  };
6235
6396
 
@@ -6238,18 +6399,6 @@ var import_lucide_react9 = require("lucide-react");
6238
6399
  var import_clsx25 = __toESM(require("clsx"));
6239
6400
  var import_react15 = require("react");
6240
6401
  var import_jsx_runtime29 = require("react/jsx-runtime");
6241
- var defaultStepperBarTranslation = {
6242
- en: {
6243
- back: "Back",
6244
- next: "Next",
6245
- confirm: "Create"
6246
- },
6247
- de: {
6248
- back: "Zur\xFCck",
6249
- next: "N\xE4chster",
6250
- confirm: "Fertig"
6251
- }
6252
- };
6253
6402
  var defaultState = {
6254
6403
  currentStep: 0,
6255
6404
  seenSteps: /* @__PURE__ */ new Set([0])
@@ -6265,7 +6414,7 @@ var StepperBar = ({
6265
6414
  showDots = true,
6266
6415
  className = ""
6267
6416
  }) => {
6268
- const translation = useTranslation(defaultStepperBarTranslation, overwriteTranslation);
6417
+ const translation = useTranslation([formTranslation], overwriteTranslation);
6269
6418
  const dots = range(0, numberOfSteps);
6270
6419
  const { currentStep, seenSteps } = state ?? defaultState;
6271
6420
  const update = (newStep) => {
@@ -6287,7 +6436,7 @@ var StepperBar = ({
6287
6436
  className: "row gap-x-1 items-center justify-center",
6288
6437
  children: [
6289
6438
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.ChevronLeft, { size: 14 }),
6290
- translation.back
6439
+ translation("back")
6291
6440
  ]
6292
6441
  }
6293
6442
  ) }),
@@ -6320,7 +6469,7 @@ var StepperBar = ({
6320
6469
  className: "row gap-x-1 items-center justify-center",
6321
6470
  disabled: disabledSteps.has(currentStep),
6322
6471
  children: [
6323
- translation.next,
6472
+ translation("next"),
6324
6473
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.ChevronRight, { size: 14 })
6325
6474
  ]
6326
6475
  }
@@ -6333,7 +6482,7 @@ var StepperBar = ({
6333
6482
  className: "row gap-x-1 items-center justify-center",
6334
6483
  children: [
6335
6484
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.Check, { size: 14 }),
6336
- finishText ?? translation.confirm
6485
+ finishText ?? translation("confirm")
6337
6486
  ]
6338
6487
  }
6339
6488
  ) })
@@ -6697,14 +6846,6 @@ var SortButton = ({
6697
6846
  // src/components/layout-and-navigation/TextImage.tsx
6698
6847
  var import_clsx28 = __toESM(require("clsx"));
6699
6848
  var import_jsx_runtime32 = require("react/jsx-runtime");
6700
- var defaultTextImageTranslation = {
6701
- de: {
6702
- showMore: "Mehr anzeigen"
6703
- },
6704
- en: {
6705
- showMore: "Show more"
6706
- }
6707
- };
6708
6849
  var TextImage = ({
6709
6850
  overwriteTranslation,
6710
6851
  title,
@@ -6716,11 +6857,11 @@ var TextImage = ({
6716
6857
  contentClassName = "",
6717
6858
  className = ""
6718
6859
  }) => {
6719
- const translation = useTranslation(defaultTextImageTranslation, overwriteTranslation);
6860
+ const translation = useTranslation([formTranslation], overwriteTranslation);
6720
6861
  const chipColorMapping = {
6721
- primary: "text-text-image-primary-background bg-text-text-image-primary-text",
6722
- secondary: "text-text-image-secondary-background bg-text-text-image-secondary-text",
6723
- dark: "text-text-image-dark-background bg-text-text-image-dark-text"
6862
+ primary: "text-text-image-primary-background bg-text-image-primary-text",
6863
+ secondary: "text-text-image-secondary-background bg-text-image-secondary-text",
6864
+ dark: "text-text-image-dark-background bg-text-image-dark-text"
6724
6865
  };
6725
6866
  const colorMapping = {
6726
6867
  primary: "text-text-image-primary-text bg-linear-to-r from-30% from-text-image-primary-background to-text-image-primary-background/55",
@@ -6740,12 +6881,12 @@ var TextImage = ({
6740
6881
  {
6741
6882
  className: (0, import_clsx28.default)(`col px-6 py-12 rounded-2xl h-full`, colorMapping[color], contentClassName),
6742
6883
  children: [
6743
- badge && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: (0, import_clsx28.default)(`chip-full bg-white mb-2 py-2 px-4 w-fit`, chipColorMapping[color]), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-lg font-bold", children: badge }) }),
6744
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "col gap-y-1 text-white overflow-hidden", children: [
6884
+ badge && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: (0, import_clsx28.default)(`chip-full mb-2 py-2 px-4 w-fit`, chipColorMapping[color]), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-lg font-bold", children: badge }) }),
6885
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "col gap-y-1 overflow-hidden", children: [
6745
6886
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "textstyle-title-xl", children: title }),
6746
6887
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-ellipsis overflow-hidden", children: description })
6747
6888
  ] }),
6748
- onShowMoreClicked && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "row mt-2 text-white underline", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("button", { onClick: onShowMoreClicked, children: translation.showMore }) })
6889
+ onShowMoreClicked && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "row mt-2 underline", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("button", { onClick: onShowMoreClicked, children: translation("showMore") }) })
6749
6890
  ]
6750
6891
  }
6751
6892
  )
@@ -6823,10 +6964,10 @@ var ErrorComponent = ({
6823
6964
  errorText,
6824
6965
  classname
6825
6966
  }) => {
6826
- const translation = useTranslation(defaultErrorComponentTranslation, overwriteTranslation);
6967
+ const translation = useTranslation([defaultErrorComponentTranslation], overwriteTranslation);
6827
6968
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: (0, import_clsx29.default)("col items-center justify-center gap-y-4 w-full h-24", classname), children: [
6828
6969
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react12.AlertOctagon, { size: 64, className: "text-warning" }),
6829
- errorText ?? `${translation.errorOccurred} :(`
6970
+ errorText ?? `${translation("errorOccurred")} :(`
6830
6971
  ] });
6831
6972
  };
6832
6973
 
@@ -6836,23 +6977,15 @@ var import_react18 = require("react");
6836
6977
  // src/components/loading-states/LoadingAnimation.tsx
6837
6978
  var import_clsx30 = __toESM(require("clsx"));
6838
6979
  var import_jsx_runtime35 = require("react/jsx-runtime");
6839
- var defaultLoadingAnimationTranslation = {
6840
- en: {
6841
- loading: "Loading data"
6842
- },
6843
- de: {
6844
- loading: "Lade Daten"
6845
- }
6846
- };
6847
6980
  var LoadingAnimation = ({
6848
6981
  overwriteTranslation,
6849
6982
  loadingText,
6850
6983
  classname
6851
6984
  }) => {
6852
- const translation = useTranslation(defaultLoadingAnimationTranslation, overwriteTranslation);
6985
+ const translation = useTranslation([formTranslation], overwriteTranslation);
6853
6986
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: (0, import_clsx30.default)("col items-center justify-center w-full h-24", classname), children: [
6854
6987
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Helpwave, { animate: "loading" }),
6855
- loadingText ?? `${translation.loading}...`
6988
+ loadingText ?? `${translation("loading")}...`
6856
6989
  ] });
6857
6990
  };
6858
6991
 
@@ -6954,18 +7087,6 @@ var ProgressIndicator = ({
6954
7087
  // src/components/modals/ConfirmModal.tsx
6955
7088
  var import_clsx32 = __toESM(require("clsx"));
6956
7089
  var import_jsx_runtime39 = require("react/jsx-runtime");
6957
- var defaultConfirmDialogTranslation2 = {
6958
- en: {
6959
- confirm: "Confirm",
6960
- cancel: "Cancel",
6961
- decline: "Decline"
6962
- },
6963
- de: {
6964
- confirm: "Best\xE4tigen",
6965
- cancel: "Abbrechen",
6966
- decline: "Ablehnen"
6967
- }
6968
- };
6969
7090
  var ConfirmModal = ({
6970
7091
  overwriteTranslation,
6971
7092
  children,
@@ -6977,7 +7098,7 @@ var ConfirmModal = ({
6977
7098
  className,
6978
7099
  ...restProps
6979
7100
  }) => {
6980
- const translation = useTranslation(defaultConfirmDialogTranslation2, overwriteTranslation);
7101
+ const translation = useTranslation([formTranslation], overwriteTranslation);
6981
7102
  const mapping = {
6982
7103
  neutral: "neutral",
6983
7104
  negative: "negative",
@@ -6993,7 +7114,7 @@ var ConfirmModal = ({
6993
7114
  color: buttonOverwrites?.[0].color ?? "neutral",
6994
7115
  onClick: onCancel,
6995
7116
  disabled: buttonOverwrites?.[0].disabled ?? false,
6996
- children: buttonOverwrites?.[0].text ?? translation.cancel
7117
+ children: buttonOverwrites?.[0].text ?? translation("cancel")
6997
7118
  }
6998
7119
  ),
6999
7120
  onDecline && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
@@ -7002,7 +7123,7 @@ var ConfirmModal = ({
7002
7123
  color: buttonOverwrites?.[1].color ?? "negative",
7003
7124
  onClick: onDecline,
7004
7125
  disabled: buttonOverwrites?.[1].disabled ?? false,
7005
- children: buttonOverwrites?.[1].text ?? translation.decline
7126
+ children: buttonOverwrites?.[1].text ?? translation("decline")
7006
7127
  }
7007
7128
  ),
7008
7129
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
@@ -7012,7 +7133,7 @@ var ConfirmModal = ({
7012
7133
  color: buttonOverwrites?.[2].color ?? mapping[confirmType],
7013
7134
  onClick: onConfirm,
7014
7135
  disabled: buttonOverwrites?.[2].disabled ?? false,
7015
- children: buttonOverwrites?.[2].text ?? translation.confirm
7136
+ children: buttonOverwrites?.[2].text ?? translation("confirm")
7016
7137
  }
7017
7138
  )
7018
7139
  ] })
@@ -7021,22 +7142,6 @@ var ConfirmModal = ({
7021
7142
 
7022
7143
  // src/components/modals/DiscardChangesModal.tsx
7023
7144
  var import_jsx_runtime40 = require("react/jsx-runtime");
7024
- var defaultDiscardChangesModalTranslation = {
7025
- en: {
7026
- save: "Save",
7027
- cancel: "Cancel",
7028
- dontSave: "Don't save",
7029
- title: "Unsaved Changes",
7030
- description: "Do you want to save your changes?"
7031
- },
7032
- de: {
7033
- save: "Speichern",
7034
- cancel: "Abbrechen",
7035
- dontSave: "Nicht Speichern",
7036
- title: "Ungespeicherte \xC4nderungen",
7037
- description: "M\xF6chtest du die \xC4nderungen speichern?"
7038
- }
7039
- };
7040
7145
  var DiscardChangesModal = ({
7041
7146
  overwriteTranslation,
7042
7147
  children,
@@ -7046,19 +7151,19 @@ var DiscardChangesModal = ({
7046
7151
  headerProps,
7047
7152
  ...modalProps
7048
7153
  }) => {
7049
- const translation = useTranslation(defaultDiscardChangesModalTranslation, overwriteTranslation);
7154
+ const translation = useTranslation([formTranslation], overwriteTranslation);
7050
7155
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7051
7156
  ConfirmModal,
7052
7157
  {
7053
7158
  headerProps: {
7054
7159
  ...headerProps,
7055
- titleText: headerProps?.titleText ?? translation.title,
7056
- descriptionText: headerProps?.descriptionText ?? translation.description
7160
+ titleText: headerProps?.titleText ?? translation("unsavedChanges"),
7161
+ descriptionText: headerProps?.descriptionText ?? translation("unsavedChangesSaveQuestion")
7057
7162
  },
7058
7163
  onConfirm: onSave,
7059
7164
  onCancel,
7060
7165
  onDecline: onDontSave,
7061
- buttonOverwrites: [{ text: translation.cancel }, { text: translation.dontSave }, { text: translation.save }],
7166
+ buttonOverwrites: [{ text: translation("cancel") }, { text: translation("discardChanges") }, { text: translation("save") }],
7062
7167
  ...modalProps,
7063
7168
  children
7064
7169
  }
@@ -7218,14 +7323,14 @@ var SelectUncontrolled = ({
7218
7323
  var import_jsx_runtime43 = require("react/jsx-runtime");
7219
7324
  var defaultLanguageModalTranslation = {
7220
7325
  en: {
7221
- title: "Language",
7222
- message: "Choose your language",
7326
+ language: "Language",
7327
+ chooseLanguage: "Choose your language",
7223
7328
  done: "Done",
7224
7329
  ...LanguageUtil.languagesLocalNames
7225
7330
  },
7226
7331
  de: {
7227
- title: "Sprache",
7228
- message: "W\xE4hle deine bevorzugte Sprache",
7332
+ language: "Sprache",
7333
+ chooseLanguage: "W\xE4hle deine bevorzugte Sprache",
7229
7334
  done: "Fertig",
7230
7335
  ...LanguageUtil.languagesLocalNames
7231
7336
  }
@@ -7237,14 +7342,14 @@ var LanguageModal = ({
7237
7342
  ...modalProps
7238
7343
  }) => {
7239
7344
  const { language, setLanguage } = useLanguage();
7240
- const translation = useTranslation(defaultLanguageModalTranslation, overwriteTranslation);
7345
+ const translation = useTranslation([defaultLanguageModalTranslation], overwriteTranslation);
7241
7346
  return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7242
7347
  Modal,
7243
7348
  {
7244
7349
  headerProps: {
7245
7350
  ...headerProps,
7246
- titleText: headerProps?.titleText ?? translation.title,
7247
- descriptionText: headerProps?.descriptionText ?? translation.message
7351
+ titleText: headerProps?.titleText ?? translation("language"),
7352
+ descriptionText: headerProps?.descriptionText ?? translation("chooseLanguage")
7248
7353
  },
7249
7354
  onClose,
7250
7355
  ...modalProps,
@@ -7258,7 +7363,7 @@ var LanguageModal = ({
7258
7363
  onChange: (language2) => setLanguage(language2)
7259
7364
  }
7260
7365
  ),
7261
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "row mt-3 gap-x-4 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation.done }) })
7366
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "row mt-3 gap-x-4 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
7262
7367
  ] })
7263
7368
  }
7264
7369
  );
@@ -7271,11 +7376,19 @@ var themes = ["light", "dark"];
7271
7376
  var defaultThemeTypeTranslation = {
7272
7377
  en: {
7273
7378
  dark: "Dark",
7274
- light: "Light"
7379
+ light: "Light",
7380
+ theme: {
7381
+ one: "Theme",
7382
+ other: "Themes"
7383
+ }
7275
7384
  },
7276
7385
  de: {
7277
7386
  dark: "Dunkel",
7278
- light: "Hell"
7387
+ light: "Hell",
7388
+ theme: {
7389
+ one: "Farbschema",
7390
+ other: "Farbschemas"
7391
+ }
7279
7392
  }
7280
7393
  };
7281
7394
  var ThemeUtil = {
@@ -7303,18 +7416,12 @@ var useTheme = () => (0, import_react21.useContext)(ThemeContext);
7303
7416
 
7304
7417
  // src/components/modals/ThemeModal.tsx
7305
7418
  var import_jsx_runtime45 = require("react/jsx-runtime");
7306
- var defaultConfirmDialogTranslation3 = {
7419
+ var defaultConfirmDialogTranslation = {
7307
7420
  en: {
7308
- title: "Theme",
7309
- message: "Choose your preferred theme",
7310
- done: "Done",
7311
- ...ThemeUtil.translation.en
7421
+ chooseTheme: "Choose your preferred theme"
7312
7422
  },
7313
7423
  de: {
7314
- title: "Farbschema",
7315
- message: "W\xE4hle dein bevorzugtes Farbschema",
7316
- done: "Fertig",
7317
- ...ThemeUtil.translation.en
7424
+ chooseTheme: "W\xE4hle dein bevorzugtes Farbschema"
7318
7425
  }
7319
7426
  };
7320
7427
  var ThemeModal = ({
@@ -7324,14 +7431,14 @@ var ThemeModal = ({
7324
7431
  ...modalProps
7325
7432
  }) => {
7326
7433
  const { theme, setTheme } = useTheme();
7327
- const translation = useTranslation(defaultConfirmDialogTranslation3, overwriteTranslation);
7434
+ const translation = useTranslation([defaultConfirmDialogTranslation, formTranslation, ThemeUtil.translation], overwriteTranslation);
7328
7435
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
7329
7436
  Modal,
7330
7437
  {
7331
7438
  headerProps: {
7332
7439
  ...headerProps,
7333
- titleText: headerProps?.titleText ?? translation.title,
7334
- descriptionText: headerProps?.descriptionText ?? translation.message
7440
+ titleText: headerProps?.titleText ?? translation("theme"),
7441
+ descriptionText: headerProps?.descriptionText ?? translation("chooseTheme")
7335
7442
  },
7336
7443
  onClose,
7337
7444
  ...modalProps,
@@ -7345,7 +7452,7 @@ var ThemeModal = ({
7345
7452
  onChange: (theme2) => setTheme(theme2)
7346
7453
  }
7347
7454
  ),
7348
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "row mt-3 gap-x-4 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation.done }) })
7455
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "row mt-3 gap-x-4 justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SolidButton, { autoFocus: true, color: "positive", onClick: onClose, children: translation("done") }) })
7349
7456
  ] })
7350
7457
  }
7351
7458
  );
@@ -7358,14 +7465,6 @@ var import_lucide_react15 = require("lucide-react");
7358
7465
  var import_lucide_react14 = require("lucide-react");
7359
7466
  var import_clsx34 = __toESM(require("clsx"));
7360
7467
  var import_jsx_runtime46 = require("react/jsx-runtime");
7361
- var defaultPropertyBaseTranslation = {
7362
- en: {
7363
- remove: "Remove"
7364
- },
7365
- de: {
7366
- remove: "Entfernen"
7367
- }
7368
- };
7369
7468
  var PropertyBase = ({
7370
7469
  overwriteTranslation,
7371
7470
  name,
@@ -7377,7 +7476,7 @@ var PropertyBase = ({
7377
7476
  onRemove,
7378
7477
  className = ""
7379
7478
  }) => {
7380
- const translation = useTranslation(defaultPropertyBaseTranslation, overwriteTranslation);
7479
+ const translation = useTranslation([formTranslation], overwriteTranslation);
7381
7480
  const requiredAndNoValue = softRequired && !hasValue;
7382
7481
  return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: (0, import_clsx34.default)("row gap-x-0 group", className), children: [
7383
7482
  /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
@@ -7410,7 +7509,7 @@ var PropertyBase = ({
7410
7509
  color: "negative",
7411
7510
  className: (0, import_clsx34.default)("pr-4 items-center", { "!text-transparent": !hasValue || readOnly }),
7412
7511
  disabled: !hasValue || readOnly,
7413
- children: translation.remove
7512
+ children: translation("remove")
7414
7513
  }
7415
7514
  )
7416
7515
  ]
@@ -7421,16 +7520,6 @@ var PropertyBase = ({
7421
7520
 
7422
7521
  // src/components/properties/CheckboxProperty.tsx
7423
7522
  var import_jsx_runtime47 = require("react/jsx-runtime");
7424
- var defaultCheckboxPropertyTranslation = {
7425
- en: {
7426
- yes: "Yes",
7427
- no: "No"
7428
- },
7429
- de: {
7430
- yes: "Ja",
7431
- no: "Nein"
7432
- }
7433
- };
7434
7523
  var CheckboxProperty = ({
7435
7524
  overwriteTranslation,
7436
7525
  value,
@@ -7438,7 +7527,7 @@ var CheckboxProperty = ({
7438
7527
  readOnly,
7439
7528
  ...baseProps
7440
7529
  }) => {
7441
- const translation = useTranslation(defaultCheckboxPropertyTranslation, overwriteTranslation);
7530
+ const translation = useTranslation([formTranslation], overwriteTranslation);
7442
7531
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
7443
7532
  PropertyBase,
7444
7533
  {
@@ -7452,7 +7541,7 @@ var CheckboxProperty = ({
7452
7541
  checked: value ?? true,
7453
7542
  disabled: readOnly,
7454
7543
  onChange,
7455
- label: { name: `${translation.yes}/${translation.no}`, labelType: "labelMedium" }
7544
+ label: { name: `${translation("yes")}/${translation("no")}`, labelType: "labelMedium" }
7456
7545
  }
7457
7546
  ) })
7458
7547
  }
@@ -7519,14 +7608,10 @@ var import_clsx36 = __toESM(require("clsx"));
7519
7608
  var import_jsx_runtime49 = require("react/jsx-runtime");
7520
7609
  var defaultMultiSelectTranslation = {
7521
7610
  en: {
7522
- select: "Select",
7523
- search: "Search",
7524
- selected: "selected"
7611
+ selected: `{{amount}} selected`
7525
7612
  },
7526
7613
  de: {
7527
- select: "Ausw\xE4hlen",
7528
- search: "Suche",
7529
- selected: "ausgew\xE4hlt"
7614
+ selected: `{{amount}} ausgew\xE4hlt`
7530
7615
  }
7531
7616
  };
7532
7617
  var MultiSelect = ({
@@ -7541,7 +7626,7 @@ var MultiSelect = ({
7541
7626
  useChipDisplay = false,
7542
7627
  className = ""
7543
7628
  }) => {
7544
- const translation = useTranslation(defaultMultiSelectTranslation, overwriteTranslation);
7629
+ const translation = useTranslation([formTranslation, defaultMultiSelectTranslation], overwriteTranslation);
7545
7630
  const triggerRef = (0, import_react22.useRef)(null);
7546
7631
  const menuRef = (0, import_react22.useRef)(null);
7547
7632
  const [isOpen, setIsOpen] = (0, import_react22.useState)(false);
@@ -7574,8 +7659,8 @@ var MultiSelect = ({
7574
7659
  onClick: () => setIsOpen(!isOpen),
7575
7660
  disabled: isDisabled,
7576
7661
  children: [
7577
- !isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-semibold text-menu-text", children: selectedDisplayOverwrite ?? (useChipDisplay && selectedItems ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) : `${selectedItems.length} ${translation.selected}`) }),
7578
- isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "textstyle-description", children: hintText ?? translation.select }),
7662
+ !isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "font-semibold text-menu-text", children: selectedDisplayOverwrite ?? (useChipDisplay && selectedItems ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) : translation("selected", { replacements: { amount: selectedItems.length.toString() } })) }),
7663
+ isShowingHint && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "textstyle-description", children: hintText ?? translation("select") }),
7579
7664
  isOpen ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react17.ChevronUp, { size: 24, className: "min-w-6" }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react17.ChevronDown, { className: "min-w-6" })
7580
7665
  ]
7581
7666
  }
@@ -7625,7 +7710,7 @@ var MultiSelect = ({
7625
7710
  })));
7626
7711
  },
7627
7712
  disabled: options.every((value) => value.selected || value.disabled),
7628
- children: "All"
7713
+ children: translation("all")
7629
7714
  }
7630
7715
  ),
7631
7716
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
@@ -7639,7 +7724,7 @@ var MultiSelect = ({
7639
7724
  selected: false
7640
7725
  })));
7641
7726
  },
7642
- children: "None"
7727
+ children: translation("none")
7643
7728
  }
7644
7729
  )
7645
7730
  ] }),
@@ -7675,14 +7760,6 @@ var MultiSelectUncontrolled = ({
7675
7760
 
7676
7761
  // src/components/properties/MultiSelectProperty.tsx
7677
7762
  var import_jsx_runtime50 = require("react/jsx-runtime");
7678
- var defaultMultiSelectPropertyTranslation = {
7679
- en: {
7680
- select: "Select"
7681
- },
7682
- de: {
7683
- select: "Ausw\xE4hlen"
7684
- }
7685
- };
7686
7763
  var MultiSelectProperty = ({
7687
7764
  overwriteTranslation,
7688
7765
  options,
@@ -7692,7 +7769,7 @@ var MultiSelectProperty = ({
7692
7769
  onRemove,
7693
7770
  ...multiSelectProps
7694
7771
  }) => {
7695
- const translation = useTranslation(defaultMultiSelectPropertyTranslation, overwriteTranslation);
7772
+ const translation = useTranslation([formTranslation], overwriteTranslation);
7696
7773
  const hasValue = options.some((value) => value.selected);
7697
7774
  return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
7698
7775
  PropertyBase,
@@ -7715,7 +7792,7 @@ var MultiSelectProperty = ({
7715
7792
  options,
7716
7793
  isDisabled: readOnly,
7717
7794
  useChipDisplay: true,
7718
- hintText: `${translation.select}...`
7795
+ hintText: `${translation("select")}...`
7719
7796
  }
7720
7797
  )
7721
7798
  }
@@ -7746,7 +7823,7 @@ var NumberProperty = ({
7746
7823
  suffix,
7747
7824
  ...baseProps
7748
7825
  }) => {
7749
- const translation = useTranslation(defaultNumberPropertyTranslation, overwriteTranslation);
7826
+ const translation = useTranslation([defaultNumberPropertyTranslation], overwriteTranslation);
7750
7827
  const hasValue = value !== void 0;
7751
7828
  return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
7752
7829
  PropertyBase,
@@ -7768,7 +7845,7 @@ var NumberProperty = ({
7768
7845
  value: value?.toString() ?? "",
7769
7846
  type: "number",
7770
7847
  readOnly,
7771
- placeholder: `${translation.value}...`,
7848
+ placeholder: `${translation("value")}...`,
7772
7849
  onChangeText: (value2) => {
7773
7850
  const numberValue = parseFloat(value2);
7774
7851
  if (isNaN(numberValue)) {
@@ -7799,14 +7876,6 @@ var NumberProperty = ({
7799
7876
  var import_lucide_react20 = require("lucide-react");
7800
7877
  var import_clsx39 = __toESM(require("clsx"));
7801
7878
  var import_jsx_runtime52 = require("react/jsx-runtime");
7802
- var defaultSingleSelectPropertyTranslation = {
7803
- en: {
7804
- select: "Select"
7805
- },
7806
- de: {
7807
- select: "Ausw\xE4hlen"
7808
- }
7809
- };
7810
7879
  var SingleSelectProperty = ({
7811
7880
  overwriteTranslation,
7812
7881
  value,
@@ -7817,7 +7886,7 @@ var SingleSelectProperty = ({
7817
7886
  onRemove,
7818
7887
  ...selectProps
7819
7888
  }) => {
7820
- const translation = useTranslation(defaultSingleSelectPropertyTranslation, overwriteTranslation);
7889
+ const translation = useTranslation([formTranslation], overwriteTranslation);
7821
7890
  const hasValue = value !== void 0;
7822
7891
  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7823
7892
  PropertyBase,
@@ -7840,7 +7909,7 @@ var SingleSelectProperty = ({
7840
7909
  options,
7841
7910
  isDisabled: readOnly,
7842
7911
  className: (0, import_clsx39.default)("w-full", { "bg-surface-warning": softRequired2 && !hasValue }),
7843
- hintText: `${translation.select}...`
7912
+ hintText: `${translation("select")}...`
7844
7913
  }
7845
7914
  )
7846
7915
  }
@@ -7953,10 +8022,10 @@ var TextareaUncontrolled = ({
7953
8022
  var import_jsx_runtime54 = require("react/jsx-runtime");
7954
8023
  var defaultTextPropertyTranslation = {
7955
8024
  en: {
7956
- value: "Text"
8025
+ text: "Text"
7957
8026
  },
7958
8027
  de: {
7959
- value: "Text"
8028
+ text: "Text"
7960
8029
  }
7961
8030
  };
7962
8031
  var TextProperty = ({
@@ -7968,7 +8037,7 @@ var TextProperty = ({
7968
8037
  onEditComplete = noop,
7969
8038
  ...baseProps
7970
8039
  }) => {
7971
- const translation = useTranslation(defaultTextPropertyTranslation, overwriteTranslation);
8040
+ const translation = useTranslation([defaultTextPropertyTranslation], overwriteTranslation);
7972
8041
  const hasValue = value !== void 0;
7973
8042
  return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
7974
8043
  PropertyBase,
@@ -7989,7 +8058,7 @@ var TextProperty = ({
7989
8058
  defaultStyle: false,
7990
8059
  value: value ?? "",
7991
8060
  readOnly,
7992
- placeholder: `${translation.value}...`,
8061
+ placeholder: `${translation("text")}...`,
7993
8062
  onChangeText: (value2) => {
7994
8063
  if (!value2) {
7995
8064
  onRemove();
@@ -8015,46 +8084,6 @@ var TextProperty = ({
8015
8084
  // src/components/user-action/DateAndTimePicker.tsx
8016
8085
  var import_clsx42 = __toESM(require("clsx"));
8017
8086
  var import_jsx_runtime55 = require("react/jsx-runtime");
8018
- var defaultTimeTranslation = {
8019
- en: {
8020
- clear: "Clear",
8021
- change: "Change",
8022
- year: "Year",
8023
- month: "Month",
8024
- day: "Day",
8025
- january: "January",
8026
- february: "Febuary",
8027
- march: "March",
8028
- april: "April",
8029
- may: "May",
8030
- june: "June",
8031
- july: "July",
8032
- august: "August",
8033
- september: "September",
8034
- october: "October",
8035
- november: "November",
8036
- december: "December"
8037
- },
8038
- de: {
8039
- clear: "Entfernen",
8040
- change: "\xC4ndern",
8041
- year: "Jahr",
8042
- month: "Monat",
8043
- day: "Tag",
8044
- january: "Januar",
8045
- february: "Febuar",
8046
- march: "M\xE4rz",
8047
- april: "April",
8048
- may: "Mai",
8049
- june: "Juni",
8050
- july: "Juli",
8051
- august: "August",
8052
- september: "September",
8053
- october: "October",
8054
- november: "November",
8055
- december: "December"
8056
- }
8057
- };
8058
8087
  var DateTimePicker = ({
8059
8088
  overwriteTranslation,
8060
8089
  value = /* @__PURE__ */ new Date(),
@@ -8067,7 +8096,7 @@ var DateTimePicker = ({
8067
8096
  timePickerProps,
8068
8097
  datePickerProps
8069
8098
  }) => {
8070
- const translation = useTranslation(defaultTimeTranslation, overwriteTranslation);
8099
+ const translation = useTranslation([formTranslation, timeTranslation], overwriteTranslation);
8071
8100
  const useDate = mode === "dateTime" || mode === "date";
8072
8101
  const useTime = mode === "dateTime" || mode === "time";
8073
8102
  let dateDisplay;
@@ -8104,13 +8133,13 @@ var DateTimePicker = ({
8104
8133
  timeDisplay
8105
8134
  ] }),
8106
8135
  /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "row justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "row gap-x-2 mt-1", children: [
8107
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SolidButton, { size: "medium", color: "negative", onClick: onRemove, children: translation.clear }),
8136
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SolidButton, { size: "medium", color: "negative", onClick: onRemove, children: translation("clear") }),
8108
8137
  /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
8109
8138
  SolidButton,
8110
8139
  {
8111
8140
  size: "medium",
8112
8141
  onClick: () => onFinish(value),
8113
- children: translation.change
8142
+ children: translation("change")
8114
8143
  }
8115
8144
  )
8116
8145
  ] }) })
@@ -8658,6 +8687,7 @@ var filterNews = (localizedNews, requiredKeys) => {
8658
8687
  equalDate,
8659
8688
  equalSizeGroups,
8660
8689
  filterNews,
8690
+ formTranslation,
8661
8691
  formatDate,
8662
8692
  formatDateTime,
8663
8693
  generateShadingColors,
@@ -8668,6 +8698,7 @@ var filterNews = (localizedNews, requiredKeys) => {
8668
8698
  isDataObjectSelected,
8669
8699
  isInTimeSpan,
8670
8700
  localizedNewsSchema,
8701
+ monthTranslation,
8671
8702
  monthsList,
8672
8703
  newsListSchema,
8673
8704
  newsSchema,
@@ -8677,6 +8708,7 @@ var filterNews = (localizedNews, requiredKeys) => {
8677
8708
  removeFromTableSelection,
8678
8709
  shadingColorValues,
8679
8710
  subtractDuration,
8711
+ timeTranslation,
8680
8712
  updatePagination,
8681
8713
  useHoverState,
8682
8714
  useLanguage,