@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
@@ -33,7 +33,7 @@ __export(MultiSelect_exports, {
33
33
  MultiSelectUncontrolled: () => MultiSelectUncontrolled
34
34
  });
35
35
  module.exports = __toCommonJS(MultiSelect_exports);
36
- var import_react7 = require("react");
36
+ var import_react9 = require("react");
37
37
  var import_lucide_react3 = require("lucide-react");
38
38
 
39
39
  // src/localization/LanguageProvider.tsx
@@ -149,55 +149,147 @@ var import_lucide_react = require("lucide-react");
149
149
  var import_clsx4 = __toESM(require("clsx"));
150
150
 
151
151
  // src/components/user-action/Input.tsx
152
- var import_react4 = require("react");
152
+ var import_react6 = require("react");
153
153
  var import_clsx2 = __toESM(require("clsx"));
154
154
 
155
- // src/hooks/useSaveDelay.ts
155
+ // src/hooks/useDelay.ts
156
156
  var import_react3 = require("react");
157
- function useSaveDelay(setNotificationStatus, delay) {
158
- const [updateTimer, setUpdateTimer] = (0, import_react3.useState)(void 0);
159
- const [notificationTimer, setNotificationTimer] = (0, import_react3.useState)(void 0);
160
- const restartTimer = (onSave) => {
161
- clearTimeout(updateTimer);
162
- setUpdateTimer(setTimeout(() => {
163
- onSave();
164
- setNotificationStatus(true);
165
- clearTimeout(notificationTimer);
166
- setNotificationTimer(setTimeout(() => {
167
- setNotificationStatus(false);
168
- clearTimeout(notificationTimer);
169
- }, delay));
170
- clearTimeout(updateTimer);
171
- }, delay));
157
+ var defaultOptions = {
158
+ delay: 3e3,
159
+ disabled: false
160
+ };
161
+ function useDelay(options) {
162
+ const [timer, setTimer] = (0, import_react3.useState)(void 0);
163
+ const { delay, disabled } = {
164
+ ...defaultOptions,
165
+ ...options
172
166
  };
173
- const clearUpdateTimer = (hasSaved = true) => {
174
- clearTimeout(updateTimer);
175
- if (hasSaved) {
176
- setNotificationStatus(true);
177
- clearTimeout(notificationTimer);
178
- setNotificationTimer(setTimeout(() => {
179
- setNotificationStatus(false);
180
- clearTimeout(notificationTimer);
181
- }, delay));
182
- } else {
183
- setNotificationStatus(false);
167
+ const restartTimer = (onDelayFinish) => {
168
+ if (disabled) {
169
+ return;
184
170
  }
171
+ clearTimeout(timer);
172
+ setTimer(setTimeout(() => {
173
+ onDelayFinish();
174
+ }, delay));
175
+ };
176
+ const clearTimer = () => {
177
+ clearTimeout(timer);
185
178
  };
186
179
  (0, import_react3.useEffect)(() => {
187
180
  return () => {
188
- clearTimeout(updateTimer);
189
- clearTimeout(notificationTimer);
181
+ clearTimeout(timer);
190
182
  };
191
- }, []);
192
- return { restartTimer, clearUpdateTimer };
183
+ }, [timer]);
184
+ (0, import_react3.useEffect)(() => {
185
+ if (disabled) {
186
+ clearTimeout(timer);
187
+ }
188
+ }, [disabled, timer]);
189
+ return { restartTimer, clearTimer };
193
190
  }
194
191
 
195
192
  // src/util/noop.ts
196
193
  var noop = () => void 0;
197
194
 
195
+ // src/hooks/useFocusManagement.ts
196
+ var import_react4 = require("react");
197
+ function useFocusManagement() {
198
+ const getFocusableElements = (0, import_react4.useCallback)(() => {
199
+ return Array.from(
200
+ document.querySelectorAll(
201
+ 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
202
+ )
203
+ ).filter(
204
+ (el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
205
+ );
206
+ }, []);
207
+ const getNextFocusElement = (0, import_react4.useCallback)(() => {
208
+ const elements = getFocusableElements();
209
+ if (elements.length === 0) {
210
+ return void 0;
211
+ }
212
+ let nextElement = elements[0];
213
+ if (document.activeElement instanceof HTMLElement) {
214
+ const currentIndex = elements.indexOf(document.activeElement);
215
+ nextElement = elements[(currentIndex + 1) % elements.length];
216
+ }
217
+ return nextElement;
218
+ }, [getFocusableElements]);
219
+ const focusNext = (0, import_react4.useCallback)(() => {
220
+ const nextElement = getNextFocusElement();
221
+ nextElement?.focus();
222
+ }, [getNextFocusElement]);
223
+ const getPreviousFocusElement = (0, import_react4.useCallback)(() => {
224
+ const elements = getFocusableElements();
225
+ if (elements.length === 0) {
226
+ return void 0;
227
+ }
228
+ let previousElement = elements[0];
229
+ if (document.activeElement instanceof HTMLElement) {
230
+ const currentIndex = elements.indexOf(document.activeElement);
231
+ if (currentIndex === 0) {
232
+ previousElement = elements[elements.length - 1];
233
+ } else {
234
+ previousElement = elements[currentIndex - 1];
235
+ }
236
+ }
237
+ return previousElement;
238
+ }, [getFocusableElements]);
239
+ const focusPrevious = (0, import_react4.useCallback)(() => {
240
+ const previousElement = getPreviousFocusElement();
241
+ if (previousElement) previousElement.focus();
242
+ }, [getPreviousFocusElement]);
243
+ return {
244
+ getFocusableElements,
245
+ getNextFocusElement,
246
+ getPreviousFocusElement,
247
+ focusNext,
248
+ focusPrevious
249
+ };
250
+ }
251
+
252
+ // src/hooks/useFocusOnceVisible.ts
253
+ var import_react5 = __toESM(require("react"));
254
+ var useFocusOnceVisible = (ref, disable = false) => {
255
+ const [hasUsedFocus, setHasUsedFocus] = import_react5.default.useState(false);
256
+ (0, import_react5.useEffect)(() => {
257
+ if (disable || hasUsedFocus) {
258
+ return;
259
+ }
260
+ const observer = new IntersectionObserver(([entry]) => {
261
+ if (entry.isIntersecting && !hasUsedFocus) {
262
+ ref.current?.focus();
263
+ setHasUsedFocus(hasUsedFocus);
264
+ }
265
+ }, {
266
+ threshold: 0.1
267
+ });
268
+ if (ref.current) {
269
+ observer.observe(ref.current);
270
+ }
271
+ return () => observer.disconnect();
272
+ }, [disable, hasUsedFocus, ref]);
273
+ };
274
+
198
275
  // src/components/user-action/Input.tsx
199
276
  var import_jsx_runtime3 = require("react/jsx-runtime");
200
- var Input = ({
277
+ var getInputClassName = ({ disabled = false, hasError = false }) => {
278
+ return (0, import_clsx2.default)(
279
+ "px-2 py-1.5 rounded-md border-2",
280
+ {
281
+ "bg-surface text-on-surface hover:border-primary focus:border-primary": !disabled && !hasError,
282
+ "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover": !disabled && hasError,
283
+ "bg-disabled-background text-disabled-text border-disabled-border": disabled
284
+ }
285
+ );
286
+ };
287
+ var defaultEditCompleteOptions = {
288
+ onBlur: true,
289
+ afterDelay: true,
290
+ delay: 2500
291
+ };
292
+ var Input = (0, import_react6.forwardRef)(function Input2({
201
293
  id,
202
294
  type = "text",
203
295
  value,
@@ -206,58 +298,73 @@ var Input = ({
206
298
  onChangeText = noop,
207
299
  onEditCompleted,
208
300
  className = "",
301
+ allowEnterComplete = true,
209
302
  expanded = true,
210
- autoFocus,
303
+ autoFocus = false,
211
304
  onBlur,
305
+ editCompleteOptions,
212
306
  containerClassName,
307
+ disabled,
213
308
  ...restProps
214
- }) => {
309
+ }, forwardedRef) {
310
+ const { onBlur: allowEditCompleteOnBlur, afterDelay, delay } = { ...defaultEditCompleteOptions, ...editCompleteOptions };
215
311
  const {
216
312
  restartTimer,
217
- clearUpdateTimer
218
- } = useSaveDelay(() => void 0, 3e3);
219
- const ref = (0, import_react4.useRef)(null);
220
- (0, import_react4.useEffect)(() => {
221
- if (autoFocus) {
222
- ref.current?.focus();
313
+ clearTimer
314
+ } = useDelay({ delay, disabled: !afterDelay });
315
+ const innerRef = (0, import_react6.useRef)(null);
316
+ const { focusNext } = useFocusManagement();
317
+ useFocusOnceVisible(innerRef, !autoFocus);
318
+ (0, import_react6.useImperativeHandle)(forwardedRef, () => innerRef.current);
319
+ const handleKeyDown = (e) => {
320
+ if (e.key === "Enter" && !e.shiftKey) {
321
+ e.preventDefault();
322
+ innerRef.current?.blur();
323
+ focusNext();
223
324
  }
224
- }, [autoFocus]);
325
+ };
225
326
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx2.default)({ "w-full": expanded }, containerClassName), children: [
226
327
  label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Label, { ...label, htmlFor: id, className: (0, import_clsx2.default)("mb-1", label.className) }),
227
328
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
228
329
  "input",
229
330
  {
230
- ref,
331
+ ...restProps,
332
+ ref: innerRef,
231
333
  value,
232
334
  id,
233
335
  type,
234
- className,
336
+ disabled,
337
+ className: (0, import_clsx2.default)(getInputClassName({ disabled }), className),
338
+ onKeyDown: allowEnterComplete ? handleKeyDown : void 0,
235
339
  onBlur: (event) => {
236
- if (onBlur) {
237
- onBlur(event);
238
- }
239
- if (onEditCompleted) {
340
+ onBlur?.(event);
341
+ if (onEditCompleted && allowEditCompleteOnBlur) {
240
342
  onEditCompleted(event.target.value);
241
- clearUpdateTimer();
343
+ clearTimer();
242
344
  }
243
345
  },
244
346
  onChange: (e) => {
245
347
  const value2 = e.target.value;
246
348
  if (onEditCompleted) {
247
349
  restartTimer(() => {
248
- onEditCompleted(value2);
249
- clearUpdateTimer();
350
+ if (innerRef.current) {
351
+ innerRef.current.blur();
352
+ if (!allowEditCompleteOnBlur) {
353
+ onEditCompleted(value2);
354
+ }
355
+ } else {
356
+ onEditCompleted(value2);
357
+ }
250
358
  });
251
359
  }
252
360
  onChange(e);
253
361
  onChangeText(value2);
254
- },
255
- ...restProps
362
+ }
256
363
  }
257
364
  )
258
365
  ] });
259
- };
260
- var FormInput = (0, import_react4.forwardRef)(function FormInput2({
366
+ });
367
+ var FormInput = (0, import_react6.forwardRef)(function FormInput2({
261
368
  id,
262
369
  labelText,
263
370
  errorText,
@@ -266,19 +373,18 @@ var FormInput = (0, import_react4.forwardRef)(function FormInput2({
266
373
  errorClassName,
267
374
  containerClassName,
268
375
  required,
376
+ disabled,
269
377
  ...restProps
270
378
  }, ref) {
271
379
  const input = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
272
380
  "input",
273
381
  {
382
+ ...restProps,
274
383
  ref,
275
384
  id,
276
- ...restProps,
385
+ disabled,
277
386
  className: (0, import_clsx2.default)(
278
- {
279
- "focus:border-primary focus:ring-primary": !errorText,
280
- "focus:border-negative focus:ring-negative text-negative": !!errorText
281
- },
387
+ getInputClassName({ disabled, hasError: !!errorText }),
282
388
  className
283
389
  )
284
390
  }
@@ -296,12 +402,21 @@ var FormInput = (0, import_react4.forwardRef)(function FormInput2({
296
402
  // src/components/user-action/Button.tsx
297
403
  var import_clsx3 = __toESM(require("clsx"));
298
404
  var import_jsx_runtime4 = require("react/jsx-runtime");
405
+ var ButtonColorUtil = {
406
+ solid: ["primary", "secondary", "tertiary", "positive", "warning", "negative", "neutral"],
407
+ text: ["primary", "negative", "neutral"],
408
+ outline: ["primary"]
409
+ };
410
+ var IconButtonUtil = {
411
+ icon: [...ButtonColorUtil.solid, "transparent"]
412
+ };
299
413
  var paddingMapping = {
300
414
  small: "btn-sm",
301
415
  medium: "btn-md",
302
416
  large: "btn-lg"
303
417
  };
304
418
  var iconPaddingMapping = {
419
+ tiny: "icon-btn-xs",
305
420
  small: "icon-btn-sm",
306
421
  medium: "icon-btn-md",
307
422
  large: "icon-btn-lg"
@@ -395,7 +510,8 @@ var IconButton = ({
395
510
  positive: "bg-button-solid-positive-background text-button-solid-positive-text",
396
511
  warning: "bg-button-solid-warning-background text-button-solid-warning-text",
397
512
  negative: "bg-button-solid-negative-background text-button-solid-negative-text",
398
- neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text"
513
+ neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text",
514
+ transparent: "bg-transparent"
399
515
  }[color];
400
516
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
401
517
  "button",
@@ -404,7 +520,9 @@ var IconButton = ({
404
520
  disabled: disabled || onClick === void 0,
405
521
  className: (0, import_clsx3.default)(
406
522
  {
407
- "text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
523
+ "text-disabled-text bg-disabled-background cursor-not-allowed": disabled && color !== "transparent",
524
+ "text-disabled-text cursor-not-allowed opacity-70": disabled && color === "transparent",
525
+ "hover:bg-button-text-hover-background": !disabled && color === "transparent",
408
526
  [(0, import_clsx3.default)(colorClasses, "hover:brightness-90")]: !disabled
409
527
  },
410
528
  ButtonUtil.iconPaddingMapping[size],
@@ -417,7 +535,7 @@ var IconButton = ({
417
535
  };
418
536
 
419
537
  // src/hooks/useSearch.ts
420
- var import_react5 = require("react");
538
+ var import_react7 = require("react");
421
539
 
422
540
  // src/util/simpleSearch.ts
423
541
  var MultiSearchWithMapping = (search, objects, mapping) => {
@@ -436,12 +554,12 @@ var useSearch = ({
436
554
  initialSearch,
437
555
  searchMapping
438
556
  }) => {
439
- const [items, setItems] = (0, import_react5.useState)(list);
440
- const [search, setSearch] = (0, import_react5.useState)(initialSearch);
441
- (0, import_react5.useEffect)(() => {
557
+ const [items, setItems] = (0, import_react7.useState)(list);
558
+ const [search, setSearch] = (0, import_react7.useState)(initialSearch);
559
+ (0, import_react7.useEffect)(() => {
442
560
  setItems(list);
443
561
  }, [list]);
444
- const result = (0, import_react5.useMemo)(
562
+ const result = (0, import_react7.useMemo)(
445
563
  () => MultiSearchWithMapping(search, items, searchMapping),
446
564
  [search, items, searchMapping]
447
565
  );
@@ -459,6 +577,7 @@ var useSearch = ({
459
577
  var formTranslation = {
460
578
  en: {
461
579
  all: "All",
580
+ apply: "Apply",
462
581
  back: "Back",
463
582
  cancel: "Cancel",
464
583
  change: "Change",
@@ -507,6 +626,7 @@ var formTranslation = {
507
626
  },
508
627
  de: {
509
628
  all: "Alle",
629
+ apply: "Anwenden",
510
630
  back: "Zur\xFCck",
511
631
  cancel: "Abbrechen",
512
632
  change: "\xC4ndern",
@@ -704,9 +824,9 @@ var ChipList = ({
704
824
  };
705
825
 
706
826
  // src/hooks/useOutsideClick.ts
707
- var import_react6 = require("react");
827
+ var import_react8 = require("react");
708
828
  var useOutsideClick = (refs, handler) => {
709
- (0, import_react6.useEffect)(() => {
829
+ (0, import_react8.useEffect)(() => {
710
830
  const listener = (event) => {
711
831
  if (event.target === null) return;
712
832
  if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
@@ -746,9 +866,9 @@ var MultiSelect = ({
746
866
  className = ""
747
867
  }) => {
748
868
  const translation = useTranslation([formTranslation, defaultMultiSelectTranslation], overwriteTranslation);
749
- const triggerRef = (0, import_react7.useRef)(null);
750
- const menuRef = (0, import_react7.useRef)(null);
751
- const [isOpen, setIsOpen] = (0, import_react7.useState)(false);
869
+ const triggerRef = (0, import_react9.useRef)(null);
870
+ const menuRef = (0, import_react9.useRef)(null);
871
+ const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
752
872
  useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
753
873
  const selectedItems = options.filter((value) => value.selected);
754
874
  const isShowingHint = !selectedDisplayOverwrite && selectedItems.length === 0;
@@ -860,8 +980,8 @@ var MultiSelectUncontrolled = ({
860
980
  onChange,
861
981
  ...props
862
982
  }) => {
863
- const [usedOptions, setUsedOptions] = (0, import_react7.useState)(options);
864
- (0, import_react7.useEffect)(() => {
983
+ const [usedOptions, setUsedOptions] = (0, import_react9.useState)(options);
984
+ (0, import_react9.useEffect)(() => {
865
985
  setUsedOptions(options);
866
986
  }, [options]);
867
987
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(