@helpwave/hightide 0.1.11 → 0.1.13

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 (277) hide show
  1. package/dist/components/date/DatePicker.js +37 -7
  2. package/dist/components/date/DatePicker.js.map +1 -1
  3. package/dist/components/date/DatePicker.mjs +37 -7
  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/TimePicker.js +27 -6
  8. package/dist/components/date/TimePicker.js.map +1 -1
  9. package/dist/components/date/TimePicker.mjs +27 -6
  10. package/dist/components/date/TimePicker.mjs.map +1 -1
  11. package/dist/components/date/YearMonthPicker.js +36 -6
  12. package/dist/components/date/YearMonthPicker.js.map +1 -1
  13. package/dist/components/date/YearMonthPicker.mjs +36 -6
  14. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  15. package/dist/components/dialogs/ConfirmDialog.js +16 -2
  16. package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
  17. package/dist/components/dialogs/ConfirmDialog.mjs +16 -2
  18. package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -1
  19. package/dist/components/layout-and-navigation/Carousel.js +42 -9
  20. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  21. package/dist/components/layout-and-navigation/Carousel.mjs +42 -9
  22. package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
  23. package/dist/components/layout-and-navigation/Expandable.js +1 -1
  24. package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
  25. package/dist/components/layout-and-navigation/Expandable.mjs +1 -1
  26. package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
  27. package/dist/components/layout-and-navigation/FAQSection.js +1 -1
  28. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
  29. package/dist/components/layout-and-navigation/FAQSection.mjs +1 -1
  30. package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -1
  31. package/dist/components/layout-and-navigation/Overlay.js +16 -2
  32. package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
  33. package/dist/components/layout-and-navigation/Overlay.mjs +16 -2
  34. package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
  35. package/dist/components/layout-and-navigation/Pagination.d.mts +6 -3
  36. package/dist/components/layout-and-navigation/Pagination.d.ts +6 -3
  37. package/dist/components/layout-and-navigation/Pagination.js +404 -19
  38. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  39. package/dist/components/layout-and-navigation/Pagination.mjs +404 -19
  40. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  41. package/dist/components/layout-and-navigation/SearchableList.js +187 -67
  42. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
  43. package/dist/components/layout-and-navigation/SearchableList.mjs +183 -63
  44. package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
  45. package/dist/components/layout-and-navigation/StepperBar.js +37 -5
  46. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  47. package/dist/components/layout-and-navigation/StepperBar.mjs +37 -5
  48. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  49. package/dist/components/layout-and-navigation/TextImage.js +2 -0
  50. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  51. package/dist/components/layout-and-navigation/TextImage.mjs +2 -0
  52. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  53. package/dist/components/loading-states/LoadingAndErrorComponent.js +2 -0
  54. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
  55. package/dist/components/loading-states/LoadingAndErrorComponent.mjs +2 -0
  56. package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -1
  57. package/dist/components/loading-states/LoadingAnimation.js +2 -0
  58. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  59. package/dist/components/loading-states/LoadingAnimation.mjs +2 -0
  60. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  61. package/dist/components/loading-states/LoadingButton.js +9 -0
  62. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  63. package/dist/components/loading-states/LoadingButton.mjs +9 -0
  64. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  65. package/dist/components/modals/ConfirmModal.js +16 -2
  66. package/dist/components/modals/ConfirmModal.js.map +1 -1
  67. package/dist/components/modals/ConfirmModal.mjs +16 -2
  68. package/dist/components/modals/ConfirmModal.mjs.map +1 -1
  69. package/dist/components/modals/DiscardChangesModal.js +16 -2
  70. package/dist/components/modals/DiscardChangesModal.js.map +1 -1
  71. package/dist/components/modals/DiscardChangesModal.mjs +16 -2
  72. package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
  73. package/dist/components/modals/InputModal.d.mts +1 -0
  74. package/dist/components/modals/InputModal.d.ts +1 -0
  75. package/dist/components/modals/InputModal.js +196 -76
  76. package/dist/components/modals/InputModal.js.map +1 -1
  77. package/dist/components/modals/InputModal.mjs +189 -69
  78. package/dist/components/modals/InputModal.mjs.map +1 -1
  79. package/dist/components/modals/LanguageModal.js +203 -83
  80. package/dist/components/modals/LanguageModal.js.map +1 -1
  81. package/dist/components/modals/LanguageModal.mjs +192 -72
  82. package/dist/components/modals/LanguageModal.mjs.map +1 -1
  83. package/dist/components/modals/ThemeModal.js +206 -86
  84. package/dist/components/modals/ThemeModal.js.map +1 -1
  85. package/dist/components/modals/ThemeModal.mjs +193 -73
  86. package/dist/components/modals/ThemeModal.mjs.map +1 -1
  87. package/dist/components/properties/CheckboxProperty.js +17 -5
  88. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  89. package/dist/components/properties/CheckboxProperty.mjs +17 -5
  90. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  91. package/dist/components/properties/DateProperty.js +182 -65
  92. package/dist/components/properties/DateProperty.js.map +1 -1
  93. package/dist/components/properties/DateProperty.mjs +179 -62
  94. package/dist/components/properties/DateProperty.mjs.map +1 -1
  95. package/dist/components/properties/MultiSelectProperty.js +194 -74
  96. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  97. package/dist/components/properties/MultiSelectProperty.mjs +187 -67
  98. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  99. package/dist/components/properties/NumberProperty.js +182 -65
  100. package/dist/components/properties/NumberProperty.js.map +1 -1
  101. package/dist/components/properties/NumberProperty.mjs +179 -62
  102. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  103. package/dist/components/properties/PropertyBase.js +12 -1
  104. package/dist/components/properties/PropertyBase.js.map +1 -1
  105. package/dist/components/properties/PropertyBase.mjs +12 -1
  106. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  107. package/dist/components/properties/SelectProperty.js +194 -74
  108. package/dist/components/properties/SelectProperty.js.map +1 -1
  109. package/dist/components/properties/SelectProperty.mjs +187 -67
  110. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  111. package/dist/components/properties/TextProperty.js +43 -34
  112. package/dist/components/properties/TextProperty.js.map +1 -1
  113. package/dist/components/properties/TextProperty.mjs +43 -34
  114. package/dist/components/properties/TextProperty.mjs.map +1 -1
  115. package/dist/components/table/FillerRowElement.d.mts +8 -0
  116. package/dist/components/table/FillerRowElement.d.ts +8 -0
  117. package/dist/components/table/FillerRowElement.js +36 -0
  118. package/dist/components/table/FillerRowElement.js.map +1 -0
  119. package/dist/components/table/FillerRowElement.mjs +12 -0
  120. package/dist/components/table/FillerRowElement.mjs.map +1 -0
  121. package/dist/components/table/Filter.d.mts +5 -0
  122. package/dist/components/table/Filter.d.ts +5 -0
  123. package/dist/components/table/Filter.js +41 -0
  124. package/dist/components/table/Filter.js.map +1 -0
  125. package/dist/components/table/Filter.mjs +17 -0
  126. package/dist/components/table/Filter.mjs.map +1 -0
  127. package/dist/components/table/Table.d.mts +41 -0
  128. package/dist/components/table/Table.d.ts +41 -0
  129. package/dist/components/table/Table.js +1549 -0
  130. package/dist/components/table/Table.js.map +1 -0
  131. package/dist/components/table/Table.mjs +1520 -0
  132. package/dist/components/table/Table.mjs.map +1 -0
  133. package/dist/components/table/TableCell.d.mts +9 -0
  134. package/dist/components/table/TableCell.d.ts +9 -0
  135. package/dist/components/table/TableCell.js +37 -0
  136. package/dist/components/table/TableCell.js.map +1 -0
  137. package/dist/components/table/TableCell.mjs +13 -0
  138. package/dist/components/table/TableCell.mjs.map +1 -0
  139. package/dist/components/table/TableFilterButton.d.mts +11 -0
  140. package/dist/components/table/TableFilterButton.d.ts +11 -0
  141. package/dist/components/table/TableFilterButton.js +888 -0
  142. package/dist/components/table/TableFilterButton.js.map +1 -0
  143. package/dist/components/table/TableFilterButton.mjs +852 -0
  144. package/dist/components/table/TableFilterButton.mjs.map +1 -0
  145. package/dist/components/table/TableSortButton.d.mts +15 -0
  146. package/dist/components/table/TableSortButton.d.ts +15 -0
  147. package/dist/components/table/TableSortButton.js +136 -0
  148. package/dist/components/table/TableSortButton.js.map +1 -0
  149. package/dist/components/table/TableSortButton.mjs +102 -0
  150. package/dist/components/table/TableSortButton.mjs.map +1 -0
  151. package/dist/components/user-action/Button.d.mts +20 -5
  152. package/dist/components/user-action/Button.d.ts +20 -5
  153. package/dist/components/user-action/Button.js +12 -3
  154. package/dist/components/user-action/Button.js.map +1 -1
  155. package/dist/components/user-action/Button.mjs +11 -3
  156. package/dist/components/user-action/Button.mjs.map +1 -1
  157. package/dist/components/user-action/Checkbox.js +5 -4
  158. package/dist/components/user-action/Checkbox.js.map +1 -1
  159. package/dist/components/user-action/Checkbox.mjs +5 -4
  160. package/dist/components/user-action/Checkbox.mjs.map +1 -1
  161. package/dist/components/user-action/DateAndTimePicker.js +41 -9
  162. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  163. package/dist/components/user-action/DateAndTimePicker.mjs +41 -9
  164. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  165. package/dist/components/user-action/Input.d.mts +27 -7
  166. package/dist/components/user-action/Input.d.ts +27 -7
  167. package/dist/components/user-action/Input.js +173 -64
  168. package/dist/components/user-action/Input.js.map +1 -1
  169. package/dist/components/user-action/Input.mjs +172 -63
  170. package/dist/components/user-action/Input.mjs.map +1 -1
  171. package/dist/components/user-action/MultiSelect.js +195 -75
  172. package/dist/components/user-action/MultiSelect.js.map +1 -1
  173. package/dist/components/user-action/MultiSelect.mjs +187 -67
  174. package/dist/components/user-action/MultiSelect.mjs.map +1 -1
  175. package/dist/components/user-action/ScrollPicker.js +26 -5
  176. package/dist/components/user-action/ScrollPicker.js.map +1 -1
  177. package/dist/components/user-action/ScrollPicker.mjs +26 -5
  178. package/dist/components/user-action/ScrollPicker.mjs.map +1 -1
  179. package/dist/components/user-action/Select.js +195 -75
  180. package/dist/components/user-action/Select.js.map +1 -1
  181. package/dist/components/user-action/Select.mjs +187 -67
  182. package/dist/components/user-action/Select.mjs.map +1 -1
  183. package/dist/components/user-action/Textarea.d.mts +3 -1
  184. package/dist/components/user-action/Textarea.d.ts +3 -1
  185. package/dist/components/user-action/Textarea.js +31 -33
  186. package/dist/components/user-action/Textarea.js.map +1 -1
  187. package/dist/components/user-action/Textarea.mjs +31 -33
  188. package/dist/components/user-action/Textarea.mjs.map +1 -1
  189. package/dist/components/user-action/ToggleableInput.d.mts +3 -1
  190. package/dist/components/user-action/ToggleableInput.d.ts +3 -1
  191. package/dist/components/user-action/ToggleableInput.js +31 -33
  192. package/dist/components/user-action/ToggleableInput.js.map +1 -1
  193. package/dist/components/user-action/ToggleableInput.mjs +31 -33
  194. package/dist/components/user-action/ToggleableInput.mjs.map +1 -1
  195. package/dist/css/globals.css +431 -186
  196. package/dist/css/uncompiled/globals.css +36 -493
  197. package/dist/css/uncompiled/textstyles.css +69 -0
  198. package/dist/css/uncompiled/theme/colors-basic.css +72 -0
  199. package/dist/css/uncompiled/theme/colors-component.css +143 -0
  200. package/dist/css/uncompiled/theme/colors-semantic.css +99 -0
  201. package/dist/css/uncompiled/theme/index.css +5 -0
  202. package/dist/css/uncompiled/theme/theme.css +0 -0
  203. package/dist/css/uncompiled/theme/variants.css +3 -0
  204. package/dist/css/uncompiled/utitlity/animation.css +111 -0
  205. package/dist/css/uncompiled/utitlity/borderradius.css +23 -0
  206. package/dist/css/uncompiled/utitlity/general.css +11 -0
  207. package/dist/css/uncompiled/utitlity/index.css +4 -0
  208. package/dist/css/uncompiled/utitlity/shadow.css +29 -0
  209. package/dist/hooks/useDelay.d.mts +11 -0
  210. package/dist/hooks/useDelay.d.ts +11 -0
  211. package/dist/hooks/useDelay.js +64 -0
  212. package/dist/hooks/useDelay.js.map +1 -0
  213. package/dist/hooks/useDelay.mjs +40 -0
  214. package/dist/hooks/useDelay.mjs.map +1 -0
  215. package/dist/hooks/useFocusManagement.d.mts +9 -0
  216. package/dist/hooks/useFocusManagement.d.ts +9 -0
  217. package/dist/hooks/useFocusManagement.js +84 -0
  218. package/dist/hooks/useFocusManagement.js.map +1 -0
  219. package/dist/hooks/useFocusManagement.mjs +60 -0
  220. package/dist/hooks/useFocusManagement.mjs.map +1 -0
  221. package/dist/hooks/useFocusOnceVisible.d.mts +5 -0
  222. package/dist/hooks/useFocusOnceVisible.d.ts +5 -0
  223. package/dist/hooks/useFocusOnceVisible.js +60 -0
  224. package/dist/hooks/useFocusOnceVisible.js.map +1 -0
  225. package/dist/hooks/useFocusOnceVisible.mjs +26 -0
  226. package/dist/hooks/useFocusOnceVisible.mjs.map +1 -0
  227. package/dist/hooks/useRerender.d.mts +5 -0
  228. package/dist/hooks/useRerender.d.ts +5 -0
  229. package/dist/hooks/useRerender.js +33 -0
  230. package/dist/hooks/useRerender.js.map +1 -0
  231. package/dist/hooks/useRerender.mjs +9 -0
  232. package/dist/hooks/useRerender.mjs.map +1 -0
  233. package/dist/hooks/useResizeCallbackWrapper.d.mts +11 -0
  234. package/dist/hooks/useResizeCallbackWrapper.d.ts +11 -0
  235. package/dist/hooks/useResizeCallbackWrapper.js +38 -0
  236. package/dist/hooks/useResizeCallbackWrapper.js.map +1 -0
  237. package/dist/hooks/useResizeCallbackWrapper.mjs +14 -0
  238. package/dist/hooks/useResizeCallbackWrapper.mjs.map +1 -0
  239. package/dist/index.d.mts +16 -5
  240. package/dist/index.d.ts +16 -5
  241. package/dist/index.js +1428 -860
  242. package/dist/index.js.map +1 -1
  243. package/dist/index.mjs +1370 -799
  244. package/dist/index.mjs.map +1 -1
  245. package/dist/localization/defaults/form.d.mts +1 -0
  246. package/dist/localization/defaults/form.d.ts +1 -0
  247. package/dist/localization/defaults/form.js +2 -0
  248. package/dist/localization/defaults/form.js.map +1 -1
  249. package/dist/localization/defaults/form.mjs +2 -0
  250. package/dist/localization/defaults/form.mjs.map +1 -1
  251. package/dist/util/array.d.mts +11 -5
  252. package/dist/util/array.d.ts +11 -5
  253. package/dist/util/array.js +25 -4
  254. package/dist/util/array.js.map +1 -1
  255. package/dist/util/array.mjs +25 -4
  256. package/dist/util/array.mjs.map +1 -1
  257. package/dist/util/date.js.map +1 -1
  258. package/dist/util/date.mjs.map +1 -1
  259. package/dist/util/resolveSetState.d.mts +5 -0
  260. package/dist/util/resolveSetState.d.ts +5 -0
  261. package/dist/util/resolveSetState.js +32 -0
  262. package/dist/util/resolveSetState.js.map +1 -0
  263. package/dist/util/resolveSetState.mjs +8 -0
  264. package/dist/util/resolveSetState.mjs.map +1 -0
  265. package/package.json +4 -2
  266. package/dist/components/layout-and-navigation/Table.d.mts +0 -99
  267. package/dist/components/layout-and-navigation/Table.d.ts +0 -99
  268. package/dist/components/layout-and-navigation/Table.js +0 -688
  269. package/dist/components/layout-and-navigation/Table.js.map +0 -1
  270. package/dist/components/layout-and-navigation/Table.mjs +0 -645
  271. package/dist/components/layout-and-navigation/Table.mjs.map +0 -1
  272. package/dist/hooks/useSaveDelay.d.mts +0 -6
  273. package/dist/hooks/useSaveDelay.d.ts +0 -6
  274. package/dist/hooks/useSaveDelay.js +0 -67
  275. package/dist/hooks/useSaveDelay.js.map +0 -1
  276. package/dist/hooks/useSaveDelay.mjs +0 -43
  277. package/dist/hooks/useSaveDelay.mjs.map +0 -1
@@ -122,7 +122,7 @@ var useTranslation = (translations, overwriteTranslation = {}) => {
122
122
 
123
123
  // src/components/user-action/Select.tsx
124
124
  var import_lucide_react3 = require("lucide-react");
125
- var import_react7 = require("react");
125
+ var import_react9 = require("react");
126
126
  var import_clsx6 = __toESM(require("clsx"));
127
127
 
128
128
  // src/components/user-action/Label.tsx
@@ -148,55 +148,147 @@ var import_lucide_react = require("lucide-react");
148
148
  var import_clsx4 = __toESM(require("clsx"));
149
149
 
150
150
  // src/components/user-action/Input.tsx
151
- var import_react4 = require("react");
151
+ var import_react6 = require("react");
152
152
  var import_clsx2 = __toESM(require("clsx"));
153
153
 
154
- // src/hooks/useSaveDelay.ts
154
+ // src/hooks/useDelay.ts
155
155
  var import_react3 = require("react");
156
- function useSaveDelay(setNotificationStatus, delay) {
157
- const [updateTimer, setUpdateTimer] = (0, import_react3.useState)(void 0);
158
- const [notificationTimer, setNotificationTimer] = (0, import_react3.useState)(void 0);
159
- const restartTimer = (onSave) => {
160
- clearTimeout(updateTimer);
161
- setUpdateTimer(setTimeout(() => {
162
- onSave();
163
- setNotificationStatus(true);
164
- clearTimeout(notificationTimer);
165
- setNotificationTimer(setTimeout(() => {
166
- setNotificationStatus(false);
167
- clearTimeout(notificationTimer);
168
- }, delay));
169
- clearTimeout(updateTimer);
170
- }, delay));
156
+ var defaultOptions = {
157
+ delay: 3e3,
158
+ disabled: false
159
+ };
160
+ function useDelay(options) {
161
+ const [timer, setTimer] = (0, import_react3.useState)(void 0);
162
+ const { delay, disabled } = {
163
+ ...defaultOptions,
164
+ ...options
171
165
  };
172
- const clearUpdateTimer = (hasSaved = true) => {
173
- clearTimeout(updateTimer);
174
- if (hasSaved) {
175
- setNotificationStatus(true);
176
- clearTimeout(notificationTimer);
177
- setNotificationTimer(setTimeout(() => {
178
- setNotificationStatus(false);
179
- clearTimeout(notificationTimer);
180
- }, delay));
181
- } else {
182
- setNotificationStatus(false);
166
+ const restartTimer = (onDelayFinish) => {
167
+ if (disabled) {
168
+ return;
183
169
  }
170
+ clearTimeout(timer);
171
+ setTimer(setTimeout(() => {
172
+ onDelayFinish();
173
+ }, delay));
174
+ };
175
+ const clearTimer = () => {
176
+ clearTimeout(timer);
184
177
  };
185
178
  (0, import_react3.useEffect)(() => {
186
179
  return () => {
187
- clearTimeout(updateTimer);
188
- clearTimeout(notificationTimer);
180
+ clearTimeout(timer);
189
181
  };
190
- }, []);
191
- return { restartTimer, clearUpdateTimer };
182
+ }, [timer]);
183
+ (0, import_react3.useEffect)(() => {
184
+ if (disabled) {
185
+ clearTimeout(timer);
186
+ }
187
+ }, [disabled, timer]);
188
+ return { restartTimer, clearTimer };
192
189
  }
193
190
 
194
191
  // src/util/noop.ts
195
192
  var noop = () => void 0;
196
193
 
194
+ // src/hooks/useFocusManagement.ts
195
+ var import_react4 = require("react");
196
+ function useFocusManagement() {
197
+ const getFocusableElements = (0, import_react4.useCallback)(() => {
198
+ return Array.from(
199
+ document.querySelectorAll(
200
+ 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
201
+ )
202
+ ).filter(
203
+ (el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
204
+ );
205
+ }, []);
206
+ const getNextFocusElement = (0, import_react4.useCallback)(() => {
207
+ const elements = getFocusableElements();
208
+ if (elements.length === 0) {
209
+ return void 0;
210
+ }
211
+ let nextElement = elements[0];
212
+ if (document.activeElement instanceof HTMLElement) {
213
+ const currentIndex = elements.indexOf(document.activeElement);
214
+ nextElement = elements[(currentIndex + 1) % elements.length];
215
+ }
216
+ return nextElement;
217
+ }, [getFocusableElements]);
218
+ const focusNext = (0, import_react4.useCallback)(() => {
219
+ const nextElement = getNextFocusElement();
220
+ nextElement?.focus();
221
+ }, [getNextFocusElement]);
222
+ const getPreviousFocusElement = (0, import_react4.useCallback)(() => {
223
+ const elements = getFocusableElements();
224
+ if (elements.length === 0) {
225
+ return void 0;
226
+ }
227
+ let previousElement = elements[0];
228
+ if (document.activeElement instanceof HTMLElement) {
229
+ const currentIndex = elements.indexOf(document.activeElement);
230
+ if (currentIndex === 0) {
231
+ previousElement = elements[elements.length - 1];
232
+ } else {
233
+ previousElement = elements[currentIndex - 1];
234
+ }
235
+ }
236
+ return previousElement;
237
+ }, [getFocusableElements]);
238
+ const focusPrevious = (0, import_react4.useCallback)(() => {
239
+ const previousElement = getPreviousFocusElement();
240
+ if (previousElement) previousElement.focus();
241
+ }, [getPreviousFocusElement]);
242
+ return {
243
+ getFocusableElements,
244
+ getNextFocusElement,
245
+ getPreviousFocusElement,
246
+ focusNext,
247
+ focusPrevious
248
+ };
249
+ }
250
+
251
+ // src/hooks/useFocusOnceVisible.ts
252
+ var import_react5 = __toESM(require("react"));
253
+ var useFocusOnceVisible = (ref, disable = false) => {
254
+ const [hasUsedFocus, setHasUsedFocus] = import_react5.default.useState(false);
255
+ (0, import_react5.useEffect)(() => {
256
+ if (disable || hasUsedFocus) {
257
+ return;
258
+ }
259
+ const observer = new IntersectionObserver(([entry]) => {
260
+ if (entry.isIntersecting && !hasUsedFocus) {
261
+ ref.current?.focus();
262
+ setHasUsedFocus(hasUsedFocus);
263
+ }
264
+ }, {
265
+ threshold: 0.1
266
+ });
267
+ if (ref.current) {
268
+ observer.observe(ref.current);
269
+ }
270
+ return () => observer.disconnect();
271
+ }, [disable, hasUsedFocus, ref]);
272
+ };
273
+
197
274
  // src/components/user-action/Input.tsx
198
275
  var import_jsx_runtime3 = require("react/jsx-runtime");
199
- var Input = ({
276
+ var getInputClassName = ({ disabled = false, hasError = false }) => {
277
+ return (0, import_clsx2.default)(
278
+ "px-2 py-1.5 rounded-md border-2",
279
+ {
280
+ "bg-surface text-on-surface hover:border-primary focus:border-primary": !disabled && !hasError,
281
+ "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover": !disabled && hasError,
282
+ "bg-disabled-background text-disabled-text border-disabled-border": disabled
283
+ }
284
+ );
285
+ };
286
+ var defaultEditCompleteOptions = {
287
+ onBlur: true,
288
+ afterDelay: true,
289
+ delay: 2500
290
+ };
291
+ var Input = (0, import_react6.forwardRef)(function Input2({
200
292
  id,
201
293
  type = "text",
202
294
  value,
@@ -205,58 +297,73 @@ var Input = ({
205
297
  onChangeText = noop,
206
298
  onEditCompleted,
207
299
  className = "",
300
+ allowEnterComplete = true,
208
301
  expanded = true,
209
- autoFocus,
302
+ autoFocus = false,
210
303
  onBlur,
304
+ editCompleteOptions,
211
305
  containerClassName,
306
+ disabled,
212
307
  ...restProps
213
- }) => {
308
+ }, forwardedRef) {
309
+ const { onBlur: allowEditCompleteOnBlur, afterDelay, delay } = { ...defaultEditCompleteOptions, ...editCompleteOptions };
214
310
  const {
215
311
  restartTimer,
216
- clearUpdateTimer
217
- } = useSaveDelay(() => void 0, 3e3);
218
- const ref = (0, import_react4.useRef)(null);
219
- (0, import_react4.useEffect)(() => {
220
- if (autoFocus) {
221
- ref.current?.focus();
312
+ clearTimer
313
+ } = useDelay({ delay, disabled: !afterDelay });
314
+ const innerRef = (0, import_react6.useRef)(null);
315
+ const { focusNext } = useFocusManagement();
316
+ useFocusOnceVisible(innerRef, !autoFocus);
317
+ (0, import_react6.useImperativeHandle)(forwardedRef, () => innerRef.current);
318
+ const handleKeyDown = (e) => {
319
+ if (e.key === "Enter" && !e.shiftKey) {
320
+ e.preventDefault();
321
+ innerRef.current?.blur();
322
+ focusNext();
222
323
  }
223
- }, [autoFocus]);
324
+ };
224
325
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx2.default)({ "w-full": expanded }, containerClassName), children: [
225
326
  label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Label, { ...label, htmlFor: id, className: (0, import_clsx2.default)("mb-1", label.className) }),
226
327
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
227
328
  "input",
228
329
  {
229
- ref,
330
+ ...restProps,
331
+ ref: innerRef,
230
332
  value,
231
333
  id,
232
334
  type,
233
- className,
335
+ disabled,
336
+ className: (0, import_clsx2.default)(getInputClassName({ disabled }), className),
337
+ onKeyDown: allowEnterComplete ? handleKeyDown : void 0,
234
338
  onBlur: (event) => {
235
- if (onBlur) {
236
- onBlur(event);
237
- }
238
- if (onEditCompleted) {
339
+ onBlur?.(event);
340
+ if (onEditCompleted && allowEditCompleteOnBlur) {
239
341
  onEditCompleted(event.target.value);
240
- clearUpdateTimer();
342
+ clearTimer();
241
343
  }
242
344
  },
243
345
  onChange: (e) => {
244
346
  const value2 = e.target.value;
245
347
  if (onEditCompleted) {
246
348
  restartTimer(() => {
247
- onEditCompleted(value2);
248
- clearUpdateTimer();
349
+ if (innerRef.current) {
350
+ innerRef.current.blur();
351
+ if (!allowEditCompleteOnBlur) {
352
+ onEditCompleted(value2);
353
+ }
354
+ } else {
355
+ onEditCompleted(value2);
356
+ }
249
357
  });
250
358
  }
251
359
  onChange(e);
252
360
  onChangeText(value2);
253
- },
254
- ...restProps
361
+ }
255
362
  }
256
363
  )
257
364
  ] });
258
- };
259
- var FormInput = (0, import_react4.forwardRef)(function FormInput2({
365
+ });
366
+ var FormInput = (0, import_react6.forwardRef)(function FormInput2({
260
367
  id,
261
368
  labelText,
262
369
  errorText,
@@ -265,19 +372,18 @@ var FormInput = (0, import_react4.forwardRef)(function FormInput2({
265
372
  errorClassName,
266
373
  containerClassName,
267
374
  required,
375
+ disabled,
268
376
  ...restProps
269
377
  }, ref) {
270
378
  const input = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
271
379
  "input",
272
380
  {
381
+ ...restProps,
273
382
  ref,
274
383
  id,
275
- ...restProps,
384
+ disabled,
276
385
  className: (0, import_clsx2.default)(
277
- {
278
- "focus:border-primary focus:ring-primary": !errorText,
279
- "focus:border-negative focus:ring-negative text-negative": !!errorText
280
- },
386
+ getInputClassName({ disabled, hasError: !!errorText }),
281
387
  className
282
388
  )
283
389
  }
@@ -295,12 +401,21 @@ var FormInput = (0, import_react4.forwardRef)(function FormInput2({
295
401
  // src/components/user-action/Button.tsx
296
402
  var import_clsx3 = __toESM(require("clsx"));
297
403
  var import_jsx_runtime4 = require("react/jsx-runtime");
404
+ var ButtonColorUtil = {
405
+ solid: ["primary", "secondary", "tertiary", "positive", "warning", "negative", "neutral"],
406
+ text: ["primary", "negative", "neutral"],
407
+ outline: ["primary"]
408
+ };
409
+ var IconButtonUtil = {
410
+ icon: [...ButtonColorUtil.solid, "transparent"]
411
+ };
298
412
  var paddingMapping = {
299
413
  small: "btn-sm",
300
414
  medium: "btn-md",
301
415
  large: "btn-lg"
302
416
  };
303
417
  var iconPaddingMapping = {
418
+ tiny: "icon-btn-xs",
304
419
  small: "icon-btn-sm",
305
420
  medium: "icon-btn-md",
306
421
  large: "icon-btn-lg"
@@ -394,7 +509,8 @@ var IconButton = ({
394
509
  positive: "bg-button-solid-positive-background text-button-solid-positive-text",
395
510
  warning: "bg-button-solid-warning-background text-button-solid-warning-text",
396
511
  negative: "bg-button-solid-negative-background text-button-solid-negative-text",
397
- neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text"
512
+ neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text",
513
+ transparent: "bg-transparent"
398
514
  }[color];
399
515
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
400
516
  "button",
@@ -403,7 +519,9 @@ var IconButton = ({
403
519
  disabled: disabled || onClick === void 0,
404
520
  className: (0, import_clsx3.default)(
405
521
  {
406
- "text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
522
+ "text-disabled-text bg-disabled-background cursor-not-allowed": disabled && color !== "transparent",
523
+ "text-disabled-text cursor-not-allowed opacity-70": disabled && color === "transparent",
524
+ "hover:bg-button-text-hover-background": !disabled && color === "transparent",
407
525
  [(0, import_clsx3.default)(colorClasses, "hover:brightness-90")]: !disabled
408
526
  },
409
527
  ButtonUtil.iconPaddingMapping[size],
@@ -416,7 +534,7 @@ var IconButton = ({
416
534
  };
417
535
 
418
536
  // src/hooks/useSearch.ts
419
- var import_react5 = require("react");
537
+ var import_react7 = require("react");
420
538
 
421
539
  // src/util/simpleSearch.ts
422
540
  var MultiSearchWithMapping = (search, objects, mapping) => {
@@ -435,12 +553,12 @@ var useSearch = ({
435
553
  initialSearch,
436
554
  searchMapping
437
555
  }) => {
438
- const [items, setItems] = (0, import_react5.useState)(list);
439
- const [search, setSearch] = (0, import_react5.useState)(initialSearch);
440
- (0, import_react5.useEffect)(() => {
556
+ const [items, setItems] = (0, import_react7.useState)(list);
557
+ const [search, setSearch] = (0, import_react7.useState)(initialSearch);
558
+ (0, import_react7.useEffect)(() => {
441
559
  setItems(list);
442
560
  }, [list]);
443
- const result = (0, import_react5.useMemo)(
561
+ const result = (0, import_react7.useMemo)(
444
562
  () => MultiSearchWithMapping(search, items, searchMapping),
445
563
  [search, items, searchMapping]
446
564
  );
@@ -458,6 +576,7 @@ var useSearch = ({
458
576
  var formTranslation = {
459
577
  en: {
460
578
  all: "All",
579
+ apply: "Apply",
461
580
  back: "Back",
462
581
  cancel: "Cancel",
463
582
  change: "Change",
@@ -506,6 +625,7 @@ var formTranslation = {
506
625
  },
507
626
  de: {
508
627
  all: "Alle",
628
+ apply: "Anwenden",
509
629
  back: "Zur\xFCck",
510
630
  cancel: "Abbrechen",
511
631
  change: "\xC4ndern",
@@ -638,9 +758,9 @@ var Tile = ({
638
758
  };
639
759
 
640
760
  // src/hooks/useOutsideClick.ts
641
- var import_react6 = require("react");
761
+ var import_react8 = require("react");
642
762
  var useOutsideClick = (refs, handler) => {
643
- (0, import_react6.useEffect)(() => {
763
+ (0, import_react8.useEffect)(() => {
644
764
  const listener = (event) => {
645
765
  if (event.target === null) return;
646
766
  if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
@@ -670,9 +790,9 @@ var Select = ({
670
790
  className,
671
791
  selectedDisplayOverwrite
672
792
  }) => {
673
- const triggerRef = (0, import_react7.useRef)(null);
674
- const menuRef = (0, import_react7.useRef)(null);
675
- const [isOpen, setIsOpen] = (0, import_react7.useState)(false);
793
+ const triggerRef = (0, import_react9.useRef)(null);
794
+ const menuRef = (0, import_react9.useRef)(null);
795
+ const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
676
796
  useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
677
797
  const selectedOption = options.find((option) => option.value === value);
678
798
  if (value !== void 0 && selectedOption === void 0 && selectedDisplayOverwrite === void 0) {
@@ -738,20 +858,20 @@ var Select = ({
738
858
  };
739
859
 
740
860
  // src/components/layout-and-navigation/Overlay.tsx
741
- var import_react9 = require("react");
861
+ var import_react11 = require("react");
742
862
  var import_react_dom = __toESM(require("react-dom"));
743
863
  var import_clsx8 = __toESM(require("clsx"));
744
864
 
745
865
  // src/hooks/useHoverState.ts
746
- var import_react8 = require("react");
866
+ var import_react10 = require("react");
747
867
  var defaultUseHoverStateProps = {
748
868
  closingDelay: 200,
749
869
  isDisabled: false
750
870
  };
751
871
  var useHoverState = (props = void 0) => {
752
872
  const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
753
- const [isHovered, setIsHovered] = (0, import_react8.useState)(false);
754
- const [timer, setTimer] = (0, import_react8.useState)();
873
+ const [isHovered, setIsHovered] = (0, import_react10.useState)(false);
874
+ const [timer, setTimer] = (0, import_react10.useState)();
755
875
  const onMouseEnter = () => {
756
876
  if (isDisabled) {
757
877
  return;
@@ -767,14 +887,14 @@ var useHoverState = (props = void 0) => {
767
887
  setIsHovered(false);
768
888
  }, closingDelay));
769
889
  };
770
- (0, import_react8.useEffect)(() => {
890
+ (0, import_react10.useEffect)(() => {
771
891
  if (timer) {
772
892
  return () => {
773
893
  clearTimeout(timer);
774
894
  };
775
895
  }
776
896
  });
777
- (0, import_react8.useEffect)(() => {
897
+ (0, import_react10.useEffect)(() => {
778
898
  if (timer) {
779
899
  clearTimeout(timer);
780
900
  }
@@ -861,8 +981,8 @@ var Overlay = ({
861
981
  onBackgroundClick,
862
982
  backgroundClassName
863
983
  }) => {
864
- const [root, setRoot] = (0, import_react9.useState)();
865
- (0, import_react9.useEffect)(() => {
984
+ const [root, setRoot] = (0, import_react11.useState)();
985
+ (0, import_react11.useEffect)(() => {
866
986
  setRoot(document.body);
867
987
  }, []);
868
988
  if (!root || !isOpen) return null;
@@ -924,8 +1044,8 @@ var Modal = ({
924
1044
  backgroundClassName,
925
1045
  headerProps
926
1046
  }) => {
927
- const ref = (0, import_react9.useRef)(null);
928
- (0, import_react9.useEffect)(() => {
1047
+ const ref = (0, import_react11.useRef)(null);
1048
+ (0, import_react11.useEffect)(() => {
929
1049
  if (!isOpen) return;
930
1050
  const modal = ref.current;
931
1051
  if (!modal) {
@@ -990,7 +1110,7 @@ var Modal = ({
990
1110
  };
991
1111
 
992
1112
  // src/theming/useTheme.tsx
993
- var import_react10 = require("react");
1113
+ var import_react12 = require("react");
994
1114
  var import_jsx_runtime10 = require("react/jsx-runtime");
995
1115
  var themes = ["light", "dark"];
996
1116
  var defaultThemeTypeTranslation = {
@@ -1015,11 +1135,11 @@ var ThemeUtil = {
1015
1135
  themes,
1016
1136
  translation: defaultThemeTypeTranslation
1017
1137
  };
1018
- var ThemeContext = (0, import_react10.createContext)({
1138
+ var ThemeContext = (0, import_react12.createContext)({
1019
1139
  theme: "light",
1020
1140
  setTheme: noop
1021
1141
  });
1022
- var useTheme = () => (0, import_react10.useContext)(ThemeContext);
1142
+ var useTheme = () => (0, import_react12.useContext)(ThemeContext);
1023
1143
 
1024
1144
  // src/components/modals/ThemeModal.tsx
1025
1145
  var import_jsx_runtime11 = require("react/jsx-runtime");