@helpwave/hightide 0.1.6 → 0.1.7

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 (502) hide show
  1. package/dist/coloring/{shading.d.cts → shading.d.mts} +1 -1
  2. package/dist/coloring/shading.js +14 -3329
  3. package/dist/coloring/shading.js.map +1 -1
  4. package/dist/coloring/shading.mjs +47 -0
  5. package/dist/coloring/shading.mjs.map +1 -0
  6. package/dist/coloring/types.js +26 -2
  7. package/dist/coloring/types.js.map +1 -1
  8. package/dist/coloring/types.mjs +6 -0
  9. package/dist/coloring/{types.cjs.map → types.mjs.map} +1 -1
  10. package/dist/components/branding/HelpwaveBadge.js +59 -25
  11. package/dist/components/branding/HelpwaveBadge.js.map +1 -1
  12. package/dist/components/branding/HelpwaveBadge.mjs +122 -0
  13. package/dist/components/branding/HelpwaveBadge.mjs.map +1 -0
  14. package/dist/components/date/{DatePicker.d.cts → DatePicker.d.mts} +5 -5
  15. package/dist/components/date/DatePicker.js +119 -83
  16. package/dist/components/date/DatePicker.js.map +1 -1
  17. package/dist/components/date/{DatePicker.cjs → DatePicker.mjs} +85 -120
  18. package/dist/components/date/DatePicker.mjs.map +1 -0
  19. package/dist/components/date/{DayPicker.d.cts → DayPicker.d.mts} +1 -1
  20. package/dist/components/date/DayPicker.js +55 -18
  21. package/dist/components/date/DayPicker.js.map +1 -1
  22. package/dist/components/date/{DayPicker.cjs → DayPicker.mjs} +19 -57
  23. package/dist/components/date/DayPicker.mjs.map +1 -0
  24. package/dist/components/date/{TimeDisplay.d.cts → TimeDisplay.d.mts} +2 -2
  25. package/dist/components/date/TimeDisplay.js +35 -9
  26. package/dist/components/date/TimeDisplay.js.map +1 -1
  27. package/dist/components/date/{TimeDisplay.cjs → TimeDisplay.mjs} +10 -37
  28. package/dist/components/date/TimeDisplay.mjs.map +1 -0
  29. package/dist/components/date/TimePicker.js +57 -22
  30. package/dist/components/date/TimePicker.js.map +1 -1
  31. package/dist/components/date/{TimePicker.cjs → TimePicker.mjs} +23 -59
  32. package/dist/components/date/TimePicker.mjs.map +1 -0
  33. package/dist/components/date/{YearMonthPicker.d.cts → YearMonthPicker.d.mts} +1 -1
  34. package/dist/components/date/YearMonthPicker.d.ts +1 -1
  35. package/dist/components/date/YearMonthPicker.js +73 -38
  36. package/dist/components/date/YearMonthPicker.js.map +1 -1
  37. package/dist/components/date/{YearMonthPicker.cjs → YearMonthPicker.mjs} +39 -75
  38. package/dist/components/date/YearMonthPicker.mjs.map +1 -0
  39. package/dist/components/dialogs/{ConfirmDialog.d.cts → ConfirmDialog.d.mts} +4 -4
  40. package/dist/components/dialogs/ConfirmDialog.js +98 -62
  41. package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
  42. package/dist/components/dialogs/{ConfirmDialog.cjs → ConfirmDialog.mjs} +63 -100
  43. package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -0
  44. package/dist/components/icons-and-geometry/Avatar.js +47 -10
  45. package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
  46. package/dist/components/icons-and-geometry/Avatar.mjs +81 -0
  47. package/dist/components/icons-and-geometry/{Avatar.cjs.map → Avatar.mjs.map} +1 -1
  48. package/dist/components/icons-and-geometry/Circle.js +40 -6
  49. package/dist/components/icons-and-geometry/Circle.js.map +1 -1
  50. package/dist/components/icons-and-geometry/Circle.mjs +27 -0
  51. package/dist/components/icons-and-geometry/{Circle.cjs.map → Circle.mjs.map} +1 -1
  52. package/dist/components/icons-and-geometry/Helpwave.js +38 -14
  53. package/dist/components/icons-and-geometry/Helpwave.js.map +1 -1
  54. package/dist/components/icons-and-geometry/Helpwave.mjs +75 -0
  55. package/dist/components/icons-and-geometry/{Helpwave.cjs.map → Helpwave.mjs.map} +1 -1
  56. package/dist/components/icons-and-geometry/Ring.js +74 -37
  57. package/dist/components/icons-and-geometry/Ring.js.map +1 -1
  58. package/dist/components/icons-and-geometry/{Ring.cjs → Ring.mjs} +38 -76
  59. package/dist/components/icons-and-geometry/{Ring.cjs.map → Ring.mjs.map} +1 -1
  60. package/dist/components/icons-and-geometry/Tag.js +28 -4
  61. package/dist/components/icons-and-geometry/Tag.js.map +1 -1
  62. package/dist/components/icons-and-geometry/Tag.mjs +22 -0
  63. package/dist/components/icons-and-geometry/{Tag.cjs.map → Tag.mjs.map} +1 -1
  64. package/dist/components/layout-and-navigation/BreadCrumb.js +195 -191
  65. package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -1
  66. package/dist/components/layout-and-navigation/{BreadCrumb.cjs → BreadCrumb.mjs} +191 -198
  67. package/dist/components/layout-and-navigation/{BreadCrumb.cjs.map → BreadCrumb.mjs.map} +1 -1
  68. package/dist/components/layout-and-navigation/Carousel.js +68 -34
  69. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  70. package/dist/components/layout-and-navigation/{Carousel.cjs → Carousel.mjs} +35 -70
  71. package/dist/components/layout-and-navigation/{Carousel.cjs.map → Carousel.mjs.map} +1 -1
  72. package/dist/components/layout-and-navigation/Chip.js +43 -8
  73. package/dist/components/layout-and-navigation/Chip.js.map +1 -1
  74. package/dist/components/layout-and-navigation/Chip.mjs +69 -0
  75. package/dist/components/layout-and-navigation/{Chip.cjs.map → Chip.mjs.map} +1 -1
  76. package/dist/components/layout-and-navigation/DividerInserter.js +39 -5
  77. package/dist/components/layout-and-navigation/DividerInserter.js.map +1 -1
  78. package/dist/components/layout-and-navigation/DividerInserter.mjs +25 -0
  79. package/dist/components/layout-and-navigation/{DividerInserter.cjs.map → DividerInserter.mjs.map} +1 -1
  80. package/dist/components/layout-and-navigation/Expandable.js +52 -17
  81. package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
  82. package/dist/components/layout-and-navigation/Expandable.mjs +81 -0
  83. package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -0
  84. package/dist/components/layout-and-navigation/{FAQSection.d.cts → FAQSection.d.mts} +1 -1
  85. package/dist/components/layout-and-navigation/FAQSection.js +75 -41
  86. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
  87. package/dist/components/layout-and-navigation/{FAQSection.cjs → FAQSection.mjs} +42 -77
  88. package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -0
  89. package/dist/components/layout-and-navigation/{MarkdownInterpreter.d.cts → MarkdownInterpreter.d.mts} +1 -1
  90. package/dist/components/layout-and-navigation/MarkdownInterpreter.d.ts +1 -1
  91. package/dist/components/layout-and-navigation/MarkdownInterpreter.js +43 -18
  92. package/dist/components/layout-and-navigation/MarkdownInterpreter.js.map +1 -1
  93. package/dist/components/layout-and-navigation/{MarkdownInterpreter.cjs → MarkdownInterpreter.mjs} +19 -45
  94. package/dist/components/layout-and-navigation/{MarkdownInterpreter.cjs.map → MarkdownInterpreter.mjs.map} +1 -1
  95. package/dist/components/layout-and-navigation/{Overlay.d.cts → Overlay.d.mts} +3 -3
  96. package/dist/components/layout-and-navigation/Overlay.d.ts +1 -1
  97. package/dist/components/layout-and-navigation/Overlay.js +91 -54
  98. package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
  99. package/dist/components/layout-and-navigation/{Overlay.cjs → Overlay.mjs} +55 -93
  100. package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -0
  101. package/dist/components/layout-and-navigation/{Pagination.d.cts → Pagination.d.mts} +2 -2
  102. package/dist/components/layout-and-navigation/Pagination.js +53 -19
  103. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  104. package/dist/components/layout-and-navigation/Pagination.mjs +82 -0
  105. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -0
  106. package/dist/components/layout-and-navigation/{SearchableList.d.cts → SearchableList.d.mts} +2 -2
  107. package/dist/components/layout-and-navigation/SearchableList.js +76 -42
  108. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
  109. package/dist/components/layout-and-navigation/SearchableList.mjs +252 -0
  110. package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -0
  111. package/dist/components/layout-and-navigation/{StepperBar.d.cts → StepperBar.d.mts} +3 -3
  112. package/dist/components/layout-and-navigation/StepperBar.d.ts +1 -1
  113. package/dist/components/layout-and-navigation/StepperBar.js +69 -34
  114. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  115. package/dist/components/layout-and-navigation/{StepperBar.cjs → StepperBar.mjs} +35 -71
  116. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -0
  117. package/dist/components/layout-and-navigation/{Table.d.cts → Table.d.mts} +4 -4
  118. package/dist/components/layout-and-navigation/Table.d.ts +3 -3
  119. package/dist/components/layout-and-navigation/Table.js +111 -68
  120. package/dist/components/layout-and-navigation/Table.js.map +1 -1
  121. package/dist/components/layout-and-navigation/{Table.cjs → Table.mjs} +69 -113
  122. package/dist/components/layout-and-navigation/Table.mjs.map +1 -0
  123. package/dist/components/layout-and-navigation/{TextImage.d.cts → TextImage.d.mts} +2 -2
  124. package/dist/components/layout-and-navigation/TextImage.js +54 -18
  125. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  126. package/dist/components/layout-and-navigation/TextImage.mjs +101 -0
  127. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -0
  128. package/dist/components/layout-and-navigation/Tile.js +42 -8
  129. package/dist/components/layout-and-navigation/Tile.js.map +1 -1
  130. package/dist/components/layout-and-navigation/Tile.mjs +23 -0
  131. package/dist/components/layout-and-navigation/{Tile.cjs.map → Tile.mjs.map} +1 -1
  132. package/dist/components/layout-and-navigation/VerticalDivider.js +33 -9
  133. package/dist/components/layout-and-navigation/VerticalDivider.js.map +1 -1
  134. package/dist/components/layout-and-navigation/VerticalDivider.mjs +56 -0
  135. package/dist/components/layout-and-navigation/{VerticalDivider.cjs.map → VerticalDivider.mjs.map} +1 -1
  136. package/dist/components/loading-states/{ErrorComponent.d.cts → ErrorComponent.d.mts} +2 -2
  137. package/dist/components/loading-states/ErrorComponent.js +46 -12
  138. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  139. package/dist/components/loading-states/ErrorComponent.mjs +68 -0
  140. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -0
  141. package/dist/components/loading-states/{LoadingAndErrorComponent.d.cts → LoadingAndErrorComponent.d.mts} +5 -5
  142. package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +1 -1
  143. package/dist/components/loading-states/LoadingAndErrorComponent.js +68 -34
  144. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
  145. package/dist/components/loading-states/LoadingAndErrorComponent.mjs +194 -0
  146. package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -0
  147. package/dist/components/loading-states/{LoadingAnimation.d.cts → LoadingAnimation.d.mts} +2 -2
  148. package/dist/components/loading-states/LoadingAnimation.js +59 -23
  149. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  150. package/dist/components/loading-states/LoadingAnimation.mjs +139 -0
  151. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -0
  152. package/dist/components/loading-states/{LoadingButton.d.cts → LoadingButton.d.mts} +1 -1
  153. package/dist/components/loading-states/LoadingButton.js +62 -28
  154. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  155. package/dist/components/loading-states/{LoadingButton.cjs → LoadingButton.mjs} +29 -64
  156. package/dist/components/loading-states/LoadingButton.mjs.map +1 -0
  157. package/dist/components/loading-states/ProgressIndicator.js +30 -6
  158. package/dist/components/loading-states/ProgressIndicator.js.map +1 -1
  159. package/dist/components/loading-states/ProgressIndicator.mjs +59 -0
  160. package/dist/components/loading-states/{ProgressIndicator.cjs.map → ProgressIndicator.mjs.map} +1 -1
  161. package/dist/components/modals/{ConfirmModal.d.cts → ConfirmModal.d.mts} +4 -4
  162. package/dist/components/modals/ConfirmModal.js +99 -63
  163. package/dist/components/modals/ConfirmModal.js.map +1 -1
  164. package/dist/components/modals/{ConfirmModal.cjs → ConfirmModal.mjs} +64 -101
  165. package/dist/components/modals/ConfirmModal.mjs.map +1 -0
  166. package/dist/components/modals/{DiscardChangesModal.d.cts → DiscardChangesModal.d.mts} +5 -5
  167. package/dist/components/modals/DiscardChangesModal.js +101 -65
  168. package/dist/components/modals/DiscardChangesModal.js.map +1 -1
  169. package/dist/components/modals/{DiscardChangesModal.cjs → DiscardChangesModal.mjs} +66 -103
  170. package/dist/components/modals/DiscardChangesModal.mjs.map +1 -0
  171. package/dist/components/modals/{InputModal.d.cts → InputModal.d.mts} +7 -7
  172. package/dist/components/modals/InputModal.js +124 -88
  173. package/dist/components/modals/InputModal.js.map +1 -1
  174. package/dist/components/modals/{InputModal.cjs → InputModal.mjs} +89 -126
  175. package/dist/components/modals/InputModal.mjs.map +1 -0
  176. package/dist/components/modals/{LanguageModal.d.cts → LanguageModal.d.mts} +3 -3
  177. package/dist/components/modals/LanguageModal.js +130 -95
  178. package/dist/components/modals/LanguageModal.js.map +1 -1
  179. package/dist/components/modals/{LanguageModal.cjs → LanguageModal.mjs} +95 -133
  180. package/dist/components/modals/LanguageModal.mjs.map +1 -0
  181. package/dist/components/modals/{ThemeModal.d.cts → ThemeModal.d.mts} +4 -4
  182. package/dist/components/modals/ThemeModal.js +134 -99
  183. package/dist/components/modals/ThemeModal.js.map +1 -1
  184. package/dist/components/modals/{ThemeModal.cjs → ThemeModal.mjs} +99 -137
  185. package/dist/components/modals/ThemeModal.mjs.map +1 -0
  186. package/dist/components/properties/{CheckboxProperty.d.cts → CheckboxProperty.d.mts} +3 -3
  187. package/dist/components/properties/CheckboxProperty.js +87 -53
  188. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  189. package/dist/components/properties/{CheckboxProperty.cjs → CheckboxProperty.mjs} +54 -89
  190. package/dist/components/properties/CheckboxProperty.mjs.map +1 -0
  191. package/dist/components/properties/{DateProperty.d.cts → DateProperty.d.mts} +3 -3
  192. package/dist/components/properties/DateProperty.js +94 -60
  193. package/dist/components/properties/DateProperty.js.map +1 -1
  194. package/dist/components/properties/{DateProperty.cjs → DateProperty.mjs} +61 -96
  195. package/dist/components/properties/DateProperty.mjs.map +1 -0
  196. package/dist/components/properties/{MultiSelectProperty.d.cts → MultiSelectProperty.d.mts} +5 -5
  197. package/dist/components/properties/MultiSelectProperty.js +157 -123
  198. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  199. package/dist/components/properties/{MultiSelectProperty.cjs → MultiSelectProperty.mjs} +124 -159
  200. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -0
  201. package/dist/components/properties/{NumberProperty.d.cts → NumberProperty.d.mts} +3 -3
  202. package/dist/components/properties/NumberProperty.js +95 -61
  203. package/dist/components/properties/NumberProperty.js.map +1 -1
  204. package/dist/components/properties/{NumberProperty.cjs → NumberProperty.mjs} +62 -97
  205. package/dist/components/properties/NumberProperty.mjs.map +1 -0
  206. package/dist/components/properties/{PropertyBase.d.cts → PropertyBase.d.mts} +2 -2
  207. package/dist/components/properties/PropertyBase.js +63 -29
  208. package/dist/components/properties/PropertyBase.js.map +1 -1
  209. package/dist/components/properties/PropertyBase.mjs +188 -0
  210. package/dist/components/properties/PropertyBase.mjs.map +1 -0
  211. package/dist/components/properties/{SelectProperty.d.cts → SelectProperty.d.mts} +5 -5
  212. package/dist/components/properties/SelectProperty.js +119 -86
  213. package/dist/components/properties/SelectProperty.js.map +1 -1
  214. package/dist/components/properties/{SelectProperty.cjs → SelectProperty.mjs} +86 -122
  215. package/dist/components/properties/SelectProperty.mjs.map +1 -0
  216. package/dist/components/properties/{TextProperty.d.cts → TextProperty.d.mts} +3 -3
  217. package/dist/components/properties/TextProperty.js +92 -58
  218. package/dist/components/properties/TextProperty.js.map +1 -1
  219. package/dist/components/properties/{TextProperty.cjs → TextProperty.mjs} +59 -94
  220. package/dist/components/properties/TextProperty.mjs.map +1 -0
  221. package/dist/components/user-action/Button.js +67 -28
  222. package/dist/components/user-action/Button.js.map +1 -1
  223. package/dist/components/user-action/{Button.cjs → Button.mjs} +29 -69
  224. package/dist/components/user-action/{Button.cjs.map → Button.mjs.map} +1 -1
  225. package/dist/components/user-action/{Checkbox.d.cts → Checkbox.d.mts} +1 -1
  226. package/dist/components/user-action/Checkbox.js +58 -23
  227. package/dist/components/user-action/Checkbox.js.map +1 -1
  228. package/dist/components/user-action/Checkbox.mjs +122 -0
  229. package/dist/components/user-action/Checkbox.mjs.map +1 -0
  230. package/dist/components/user-action/{DateAndTimePicker.d.cts → DateAndTimePicker.d.mts} +7 -7
  231. package/dist/components/user-action/DateAndTimePicker.js +142 -107
  232. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  233. package/dist/components/user-action/{DateAndTimePicker.cjs → DateAndTimePicker.mjs} +109 -143
  234. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -0
  235. package/dist/components/user-action/{Input.d.cts → Input.d.mts} +1 -1
  236. package/dist/components/user-action/Input.js +62 -26
  237. package/dist/components/user-action/Input.js.map +1 -1
  238. package/dist/components/user-action/Input.mjs +186 -0
  239. package/dist/components/user-action/Input.mjs.map +1 -0
  240. package/dist/components/user-action/Label.js +39 -5
  241. package/dist/components/user-action/Label.js.map +1 -1
  242. package/dist/components/user-action/Label.mjs +21 -0
  243. package/dist/components/user-action/{Label.cjs.map → Label.mjs.map} +1 -1
  244. package/dist/components/user-action/Menu.js +54 -19
  245. package/dist/components/user-action/Menu.js.map +1 -1
  246. package/dist/components/user-action/Menu.mjs +127 -0
  247. package/dist/components/user-action/Menu.mjs.map +1 -0
  248. package/dist/components/user-action/{MultiSelect.d.cts → MultiSelect.d.mts} +3 -3
  249. package/dist/components/user-action/MultiSelect.js +118 -84
  250. package/dist/components/user-action/MultiSelect.js.map +1 -1
  251. package/dist/components/user-action/{MultiSelect.cjs → MultiSelect.mjs} +85 -120
  252. package/dist/components/user-action/MultiSelect.mjs.map +1 -0
  253. package/dist/components/user-action/ScrollPicker.js +50 -16
  254. package/dist/components/user-action/ScrollPicker.js.map +1 -1
  255. package/dist/components/user-action/{ScrollPicker.cjs → ScrollPicker.mjs} +17 -52
  256. package/dist/components/user-action/ScrollPicker.mjs.map +1 -0
  257. package/dist/components/user-action/{Select.d.cts → Select.d.mts} +2 -2
  258. package/dist/components/user-action/Select.d.ts +1 -1
  259. package/dist/components/user-action/Select.js +88 -53
  260. package/dist/components/user-action/Select.js.map +1 -1
  261. package/dist/components/user-action/{Select.cjs → Select.mjs} +53 -91
  262. package/dist/components/user-action/Select.mjs.map +1 -0
  263. package/dist/components/user-action/{Textarea.d.cts → Textarea.d.mts} +1 -1
  264. package/dist/components/user-action/Textarea.js +60 -25
  265. package/dist/components/user-action/Textarea.js.map +1 -1
  266. package/dist/components/user-action/Textarea.mjs +163 -0
  267. package/dist/components/user-action/Textarea.mjs.map +1 -0
  268. package/dist/components/user-action/ToggleableInput.js +61 -26
  269. package/dist/components/user-action/ToggleableInput.js.map +1 -1
  270. package/dist/components/user-action/ToggleableInput.mjs +156 -0
  271. package/dist/components/user-action/ToggleableInput.mjs.map +1 -0
  272. package/dist/components/user-action/Tooltip.js +41 -15
  273. package/dist/components/user-action/Tooltip.js.map +1 -1
  274. package/dist/components/user-action/{Tooltip.cjs → Tooltip.mjs} +16 -43
  275. package/dist/components/user-action/Tooltip.mjs.map +1 -0
  276. package/dist/css/globals.css +33 -24
  277. package/dist/css/uncompiled/globals.css +19 -7
  278. package/dist/hooks/useHoverState.js +31 -7
  279. package/dist/hooks/useHoverState.js.map +1 -1
  280. package/dist/hooks/useHoverState.mjs +47 -0
  281. package/dist/hooks/{useHoverState.cjs.map → useHoverState.mjs.map} +1 -1
  282. package/dist/hooks/useLocalStorage.js +31 -7
  283. package/dist/hooks/useLocalStorage.js.map +1 -1
  284. package/dist/hooks/useLocalStorage.mjs +58 -0
  285. package/dist/hooks/{useLocalStorage.cjs.map → useLocalStorage.mjs.map} +1 -1
  286. package/dist/hooks/useOutsideClick.js +28 -4
  287. package/dist/hooks/useOutsideClick.js.map +1 -1
  288. package/dist/hooks/useOutsideClick.mjs +23 -0
  289. package/dist/hooks/{useOutsideClick.cjs.map → useOutsideClick.mjs.map} +1 -1
  290. package/dist/hooks/useSaveDelay.js +30 -6
  291. package/dist/hooks/useSaveDelay.js.map +1 -1
  292. package/dist/hooks/useSaveDelay.mjs +43 -0
  293. package/dist/hooks/{useSaveDelay.cjs.map → useSaveDelay.mjs.map} +1 -1
  294. package/dist/{index.d.cts → index.d.mts} +78 -78
  295. package/dist/index.js +1038 -885
  296. package/dist/index.js.map +1 -1
  297. package/dist/{index.cjs → index.mjs} +886 -1038
  298. package/dist/index.mjs.map +1 -0
  299. package/dist/localization/{LanguageProvider.d.cts → LanguageProvider.d.mts} +1 -1
  300. package/dist/localization/LanguageProvider.js +43 -16
  301. package/dist/localization/LanguageProvider.js.map +1 -1
  302. package/dist/localization/{LanguageProvider.cjs → LanguageProvider.mjs} +17 -45
  303. package/dist/localization/LanguageProvider.mjs.map +1 -0
  304. package/dist/localization/{useTranslation.d.cts → useTranslation.d.mts} +1 -1
  305. package/dist/localization/useTranslation.js +33 -7
  306. package/dist/localization/useTranslation.js.map +1 -1
  307. package/dist/localization/useTranslation.mjs +42 -0
  308. package/dist/localization/useTranslation.mjs.map +1 -0
  309. package/dist/localization/util.js +26 -2
  310. package/dist/localization/util.js.map +1 -1
  311. package/dist/localization/util.mjs +16 -0
  312. package/dist/localization/{util.cjs.map → util.mjs.map} +1 -1
  313. package/dist/theming/{useTheme.d.cts → useTheme.d.mts} +2 -2
  314. package/dist/theming/useTheme.js +37 -10
  315. package/dist/theming/useTheme.js.map +1 -1
  316. package/dist/theming/useTheme.mjs +48 -0
  317. package/dist/theming/useTheme.mjs.map +1 -0
  318. package/dist/util/array.js +32 -2
  319. package/dist/util/array.js.map +1 -1
  320. package/dist/util/{array.cjs → array.mjs} +3 -34
  321. package/dist/util/{array.cjs.map → array.mjs.map} +1 -1
  322. package/dist/util/builder.js +26 -2
  323. package/dist/util/builder.js.map +1 -1
  324. package/dist/util/builder.mjs +9 -0
  325. package/dist/util/{builder.cjs.map → builder.mjs.map} +1 -1
  326. package/dist/util/date.js +39 -2
  327. package/dist/util/date.js.map +1 -1
  328. package/dist/util/{date.cjs → date.mjs} +3 -41
  329. package/dist/util/date.mjs.map +1 -0
  330. package/dist/util/easeFunctions.js +28 -2
  331. package/dist/util/easeFunctions.js.map +1 -1
  332. package/dist/util/easeFunctions.mjs +36 -0
  333. package/dist/util/easeFunctions.mjs.map +1 -0
  334. package/dist/util/emailValidation.js +26 -2
  335. package/dist/util/emailValidation.js.map +1 -1
  336. package/dist/util/emailValidation.mjs +8 -0
  337. package/dist/util/{emailValidation.cjs.map → emailValidation.mjs.map} +1 -1
  338. package/dist/util/loopingArray.js +26 -2
  339. package/dist/util/loopingArray.js.map +1 -1
  340. package/dist/util/{loopingArray.cjs → loopingArray.mjs} +3 -28
  341. package/dist/util/{loopingArray.cjs.map → loopingArray.mjs.map} +1 -1
  342. package/dist/util/math.js +26 -2
  343. package/dist/util/math.js.map +1 -1
  344. package/dist/util/math.mjs +8 -0
  345. package/dist/util/{math.cjs.map → math.mjs.map} +1 -1
  346. package/dist/util/news.d.mts +101 -0
  347. package/dist/util/news.d.ts +54 -54
  348. package/dist/util/news.js +39 -12
  349. package/dist/util/news.js.map +1 -1
  350. package/dist/util/news.mjs +49 -0
  351. package/dist/util/news.mjs.map +1 -0
  352. package/dist/util/noop.d.mts +3 -0
  353. package/dist/util/noop.d.ts +1 -1
  354. package/dist/util/noop.js +26 -2
  355. package/dist/util/noop.js.map +1 -1
  356. package/dist/util/noop.mjs +6 -0
  357. package/dist/util/noop.mjs.map +1 -0
  358. package/dist/util/simpleSearch.js +29 -2
  359. package/dist/util/simpleSearch.js.map +1 -1
  360. package/dist/util/simpleSearch.mjs +26 -0
  361. package/dist/util/{simpleSearch.cjs.map → simpleSearch.mjs.map} +1 -1
  362. package/dist/util/storage.js +27 -2
  363. package/dist/util/storage.js.map +1 -1
  364. package/dist/util/storage.mjs +38 -0
  365. package/dist/util/{storage.cjs.map → storage.mjs.map} +1 -1
  366. package/dist/util/types.js +17 -0
  367. package/dist/util/types.js.map +1 -1
  368. package/dist/util/types.mjs +1 -0
  369. package/dist/util/types.mjs.map +1 -0
  370. package/package.json +5 -7
  371. package/dist/coloring/shading.cjs +0 -3402
  372. package/dist/coloring/shading.cjs.map +0 -1
  373. package/dist/coloring/types.cjs +0 -31
  374. package/dist/components/branding/HelpwaveBadge.cjs +0 -157
  375. package/dist/components/branding/HelpwaveBadge.cjs.map +0 -1
  376. package/dist/components/date/DatePicker.cjs.map +0 -1
  377. package/dist/components/date/DayPicker.cjs.map +0 -1
  378. package/dist/components/date/TimeDisplay.cjs.map +0 -1
  379. package/dist/components/date/TimePicker.cjs.map +0 -1
  380. package/dist/components/date/YearMonthPicker.cjs.map +0 -1
  381. package/dist/components/dialogs/ConfirmDialog.cjs.map +0 -1
  382. package/dist/components/icons-and-geometry/Avatar.cjs +0 -119
  383. package/dist/components/icons-and-geometry/Circle.cjs +0 -62
  384. package/dist/components/icons-and-geometry/Helpwave.cjs +0 -100
  385. package/dist/components/icons-and-geometry/Tag.cjs +0 -47
  386. package/dist/components/layout-and-navigation/Chip.cjs +0 -105
  387. package/dist/components/layout-and-navigation/DividerInserter.cjs +0 -60
  388. package/dist/components/layout-and-navigation/Expandable.cjs +0 -117
  389. package/dist/components/layout-and-navigation/Expandable.cjs.map +0 -1
  390. package/dist/components/layout-and-navigation/FAQSection.cjs.map +0 -1
  391. package/dist/components/layout-and-navigation/Overlay.cjs.map +0 -1
  392. package/dist/components/layout-and-navigation/Pagination.cjs +0 -117
  393. package/dist/components/layout-and-navigation/Pagination.cjs.map +0 -1
  394. package/dist/components/layout-and-navigation/SearchableList.cjs +0 -287
  395. package/dist/components/layout-and-navigation/SearchableList.cjs.map +0 -1
  396. package/dist/components/layout-and-navigation/StepperBar.cjs.map +0 -1
  397. package/dist/components/layout-and-navigation/Table.cjs.map +0 -1
  398. package/dist/components/layout-and-navigation/TextImage.cjs +0 -138
  399. package/dist/components/layout-and-navigation/TextImage.cjs.map +0 -1
  400. package/dist/components/layout-and-navigation/Tile.cjs +0 -58
  401. package/dist/components/layout-and-navigation/VerticalDivider.cjs +0 -81
  402. package/dist/components/loading-states/ErrorComponent.cjs +0 -103
  403. package/dist/components/loading-states/ErrorComponent.cjs.map +0 -1
  404. package/dist/components/loading-states/LoadingAndErrorComponent.cjs +0 -229
  405. package/dist/components/loading-states/LoadingAndErrorComponent.cjs.map +0 -1
  406. package/dist/components/loading-states/LoadingAnimation.cjs +0 -176
  407. package/dist/components/loading-states/LoadingAnimation.cjs.map +0 -1
  408. package/dist/components/loading-states/LoadingButton.cjs.map +0 -1
  409. package/dist/components/loading-states/ProgressIndicator.cjs +0 -84
  410. package/dist/components/modals/ConfirmModal.cjs.map +0 -1
  411. package/dist/components/modals/DiscardChangesModal.cjs.map +0 -1
  412. package/dist/components/modals/InputModal.cjs.map +0 -1
  413. package/dist/components/modals/LanguageModal.cjs.map +0 -1
  414. package/dist/components/modals/ThemeModal.cjs.map +0 -1
  415. package/dist/components/properties/CheckboxProperty.cjs.map +0 -1
  416. package/dist/components/properties/DateProperty.cjs.map +0 -1
  417. package/dist/components/properties/MultiSelectProperty.cjs.map +0 -1
  418. package/dist/components/properties/NumberProperty.cjs.map +0 -1
  419. package/dist/components/properties/PropertyBase.cjs +0 -223
  420. package/dist/components/properties/PropertyBase.cjs.map +0 -1
  421. package/dist/components/properties/SelectProperty.cjs.map +0 -1
  422. package/dist/components/properties/TextProperty.cjs.map +0 -1
  423. package/dist/components/user-action/Checkbox.cjs +0 -158
  424. package/dist/components/user-action/Checkbox.cjs.map +0 -1
  425. package/dist/components/user-action/DateAndTimePicker.cjs.map +0 -1
  426. package/dist/components/user-action/Input.cjs +0 -223
  427. package/dist/components/user-action/Input.cjs.map +0 -1
  428. package/dist/components/user-action/Label.cjs +0 -56
  429. package/dist/components/user-action/Menu.cjs +0 -163
  430. package/dist/components/user-action/Menu.cjs.map +0 -1
  431. package/dist/components/user-action/MultiSelect.cjs.map +0 -1
  432. package/dist/components/user-action/ScrollPicker.cjs.map +0 -1
  433. package/dist/components/user-action/Select.cjs.map +0 -1
  434. package/dist/components/user-action/Textarea.cjs +0 -199
  435. package/dist/components/user-action/Textarea.cjs.map +0 -1
  436. package/dist/components/user-action/ToggleableInput.cjs +0 -192
  437. package/dist/components/user-action/ToggleableInput.cjs.map +0 -1
  438. package/dist/components/user-action/Tooltip.cjs.map +0 -1
  439. package/dist/hooks/useHoverState.cjs +0 -72
  440. package/dist/hooks/useLocalStorage.cjs +0 -83
  441. package/dist/hooks/useOutsideClick.cjs +0 -48
  442. package/dist/hooks/useSaveDelay.cjs +0 -68
  443. package/dist/index.cjs.map +0 -1
  444. package/dist/localization/LanguageProvider.cjs.map +0 -1
  445. package/dist/localization/useTranslation.cjs +0 -69
  446. package/dist/localization/useTranslation.cjs.map +0 -1
  447. package/dist/localization/util.cjs +0 -41
  448. package/dist/theming/useTheme.cjs +0 -76
  449. package/dist/theming/useTheme.cjs.map +0 -1
  450. package/dist/util/builder.cjs +0 -34
  451. package/dist/util/date.cjs.map +0 -1
  452. package/dist/util/easeFunctions.cjs +0 -63
  453. package/dist/util/easeFunctions.cjs.map +0 -1
  454. package/dist/util/emailValidation.cjs +0 -33
  455. package/dist/util/math.cjs +0 -33
  456. package/dist/util/news.cjs +0 -77
  457. package/dist/util/news.cjs.map +0 -1
  458. package/dist/util/news.d.cts +0 -101
  459. package/dist/util/noop.cjs +0 -31
  460. package/dist/util/noop.cjs.map +0 -1
  461. package/dist/util/noop.d.cts +0 -3
  462. package/dist/util/simpleSearch.cjs +0 -54
  463. package/dist/util/storage.cjs +0 -64
  464. package/dist/util/types.cjs +0 -19
  465. package/dist/util/types.cjs.map +0 -1
  466. /package/dist/coloring/{types.d.cts → types.d.mts} +0 -0
  467. /package/dist/components/branding/{HelpwaveBadge.d.cts → HelpwaveBadge.d.mts} +0 -0
  468. /package/dist/components/date/{TimePicker.d.cts → TimePicker.d.mts} +0 -0
  469. /package/dist/components/icons-and-geometry/{Avatar.d.cts → Avatar.d.mts} +0 -0
  470. /package/dist/components/icons-and-geometry/{Circle.d.cts → Circle.d.mts} +0 -0
  471. /package/dist/components/icons-and-geometry/{Helpwave.d.cts → Helpwave.d.mts} +0 -0
  472. /package/dist/components/icons-and-geometry/{Ring.d.cts → Ring.d.mts} +0 -0
  473. /package/dist/components/icons-and-geometry/{Tag.d.cts → Tag.d.mts} +0 -0
  474. /package/dist/components/layout-and-navigation/{BreadCrumb.d.cts → BreadCrumb.d.mts} +0 -0
  475. /package/dist/components/layout-and-navigation/{Carousel.d.cts → Carousel.d.mts} +0 -0
  476. /package/dist/components/layout-and-navigation/{Chip.d.cts → Chip.d.mts} +0 -0
  477. /package/dist/components/layout-and-navigation/{DividerInserter.d.cts → DividerInserter.d.mts} +0 -0
  478. /package/dist/components/layout-and-navigation/{Expandable.d.cts → Expandable.d.mts} +0 -0
  479. /package/dist/components/layout-and-navigation/{Tile.d.cts → Tile.d.mts} +0 -0
  480. /package/dist/components/layout-and-navigation/{VerticalDivider.d.cts → VerticalDivider.d.mts} +0 -0
  481. /package/dist/components/loading-states/{ProgressIndicator.d.cts → ProgressIndicator.d.mts} +0 -0
  482. /package/dist/components/user-action/{Button.d.cts → Button.d.mts} +0 -0
  483. /package/dist/components/user-action/{Label.d.cts → Label.d.mts} +0 -0
  484. /package/dist/components/user-action/{Menu.d.cts → Menu.d.mts} +0 -0
  485. /package/dist/components/user-action/{ScrollPicker.d.cts → ScrollPicker.d.mts} +0 -0
  486. /package/dist/components/user-action/{ToggleableInput.d.cts → ToggleableInput.d.mts} +0 -0
  487. /package/dist/components/user-action/{Tooltip.d.cts → Tooltip.d.mts} +0 -0
  488. /package/dist/hooks/{useHoverState.d.cts → useHoverState.d.mts} +0 -0
  489. /package/dist/hooks/{useLocalStorage.d.cts → useLocalStorage.d.mts} +0 -0
  490. /package/dist/hooks/{useOutsideClick.d.cts → useOutsideClick.d.mts} +0 -0
  491. /package/dist/hooks/{useSaveDelay.d.cts → useSaveDelay.d.mts} +0 -0
  492. /package/dist/localization/{util.d.cts → util.d.mts} +0 -0
  493. /package/dist/util/{array.d.cts → array.d.mts} +0 -0
  494. /package/dist/util/{builder.d.cts → builder.d.mts} +0 -0
  495. /package/dist/util/{date.d.cts → date.d.mts} +0 -0
  496. /package/dist/util/{easeFunctions.d.cts → easeFunctions.d.mts} +0 -0
  497. /package/dist/util/{emailValidation.d.cts → emailValidation.d.mts} +0 -0
  498. /package/dist/util/{loopingArray.d.cts → loopingArray.d.mts} +0 -0
  499. /package/dist/util/{math.d.cts → math.d.mts} +0 -0
  500. /package/dist/util/{simpleSearch.d.cts → simpleSearch.d.mts} +0 -0
  501. /package/dist/util/{storage.d.cts → storage.d.mts} +0 -0
  502. /package/dist/util/{types.d.cts → types.d.mts} +0 -0
@@ -1,46 +1,12 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
1
  // src/components/user-action/MultiSelect.tsx
31
- var MultiSelect_exports = {};
32
- __export(MultiSelect_exports, {
33
- MultiSelect: () => MultiSelect
34
- });
35
- module.exports = __toCommonJS(MultiSelect_exports);
36
- var import_react9 = require("react");
37
- var import_lucide_react2 = require("lucide-react");
2
+ import { useState as useState7 } from "react";
3
+ import { Search } from "lucide-react";
38
4
 
39
5
  // src/localization/LanguageProvider.tsx
40
- var import_react2 = require("react");
6
+ import { createContext, useContext, useEffect as useEffect2, useState as useState2 } from "react";
41
7
 
42
8
  // src/hooks/useLocalStorage.ts
43
- var import_react = require("react");
9
+ import { useCallback, useEffect, useState } from "react";
44
10
 
45
11
  // src/localization/util.ts
46
12
  var languages = ["en", "de"];
@@ -56,12 +22,12 @@ var LanguageUtil = {
56
22
  };
57
23
 
58
24
  // src/localization/LanguageProvider.tsx
59
- var import_jsx_runtime = require("react/jsx-runtime");
60
- var LanguageContext = (0, import_react2.createContext)({
25
+ import { jsx } from "react/jsx-runtime";
26
+ var LanguageContext = createContext({
61
27
  language: LanguageUtil.DEFAULT_LANGUAGE,
62
28
  setLanguage: (v) => v
63
29
  });
64
- var useLanguage = () => (0, import_react2.useContext)(LanguageContext);
30
+ var useLanguage = () => useContext(LanguageContext);
65
31
 
66
32
  // src/localization/useTranslation.ts
67
33
  var useTranslation = (defaults, translationOverwrite = {}) => {
@@ -84,16 +50,16 @@ var MultiSearchWithMapping = (search, objects, mapping) => {
84
50
  };
85
51
 
86
52
  // src/components/user-action/MultiSelect.tsx
87
- var import_clsx5 = __toESM(require("clsx"), 1);
53
+ import clsx5 from "clsx";
88
54
 
89
55
  // src/components/user-action/Menu.tsx
90
- var import_react5 = require("react");
91
- var import_clsx = __toESM(require("clsx"), 1);
56
+ import { useRef } from "react";
57
+ import clsx from "clsx";
92
58
 
93
59
  // src/hooks/useOutsideClick.ts
94
- var import_react3 = require("react");
60
+ import { useEffect as useEffect3 } from "react";
95
61
  var useOutsideClick = (refs, handler) => {
96
- (0, import_react3.useEffect)(() => {
62
+ useEffect3(() => {
97
63
  const listener = (event) => {
98
64
  if (event.target === null) return;
99
65
  if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
@@ -111,15 +77,15 @@ var useOutsideClick = (refs, handler) => {
111
77
  };
112
78
 
113
79
  // src/hooks/useHoverState.ts
114
- var import_react4 = require("react");
80
+ import { useEffect as useEffect4, useState as useState3 } from "react";
115
81
  var defaultUseHoverStateProps = {
116
82
  closingDelay: 200,
117
83
  isDisabled: false
118
84
  };
119
85
  var useHoverState = (props = void 0) => {
120
86
  const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
121
- const [isHovered, setIsHovered] = (0, import_react4.useState)(false);
122
- const [timer, setTimer] = (0, import_react4.useState)();
87
+ const [isHovered, setIsHovered] = useState3(false);
88
+ const [timer, setTimer] = useState3();
123
89
  const onMouseEnter = () => {
124
90
  if (isDisabled) {
125
91
  return;
@@ -135,14 +101,14 @@ var useHoverState = (props = void 0) => {
135
101
  setIsHovered(false);
136
102
  }, closingDelay));
137
103
  };
138
- (0, import_react4.useEffect)(() => {
104
+ useEffect4(() => {
139
105
  if (timer) {
140
106
  return () => {
141
107
  clearTimeout(timer);
142
108
  };
143
109
  }
144
110
  });
145
- (0, import_react4.useEffect)(() => {
111
+ useEffect4(() => {
146
112
  if (timer) {
147
113
  clearTimeout(timer);
148
114
  }
@@ -155,16 +121,16 @@ var useHoverState = (props = void 0) => {
155
121
  };
156
122
 
157
123
  // src/components/user-action/Menu.tsx
158
- var import_jsx_runtime2 = require("react/jsx-runtime");
124
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
159
125
  var MenuItem = ({
160
126
  children,
161
127
  onClick,
162
128
  alignment = "left",
163
129
  className
164
- }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
130
+ }) => /* @__PURE__ */ jsx2(
165
131
  "div",
166
132
  {
167
- className: (0, import_clsx.default)("block px-3 py-1 bg-menu-background text-menu-text hover:brightness-90", {
133
+ className: clsx("block px-3 py-1 bg-menu-background text-menu-text hover:brightness-90", {
168
134
  "text-right": alignment === "right",
169
135
  "text-left": alignment === "left"
170
136
  }, className),
@@ -180,22 +146,22 @@ var Menu = ({
180
146
  menuClassName = ""
181
147
  }) => {
182
148
  const { isHovered: isOpen, setIsHovered: setIsOpen, handlers } = useHoverState({ isDisabled: !showOnHover });
183
- const triggerRef = (0, import_react5.useRef)(null);
184
- const menuRef = (0, import_react5.useRef)(null);
149
+ const triggerRef = useRef(null);
150
+ const menuRef = useRef(null);
185
151
  useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
186
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
152
+ return /* @__PURE__ */ jsxs(
187
153
  "div",
188
154
  {
189
155
  className: "relative",
190
156
  ...handlers,
191
157
  children: [
192
158
  trigger(() => setIsOpen(!isOpen), triggerRef),
193
- isOpen ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
159
+ isOpen ? /* @__PURE__ */ jsx2(
194
160
  "div",
195
161
  {
196
162
  ref: menuRef,
197
163
  onClick: (e) => e.stopPropagation(),
198
- className: (0, import_clsx.default)("absolute top-full mt-1 py-2 w-60 rounded-lg bg-menu-background text-menu-text ring-1 ring-slate-900/5 text-sm leading-6 font-semibold shadow-md z-[1]", {
164
+ className: clsx("absolute top-full mt-1 py-2 w-60 rounded-lg bg-menu-background text-menu-text ring-1 ring-slate-900/5 text-sm leading-6 font-semibold shadow-md z-[1]", {
199
165
  " top-[8px]": alignment[0] === "t",
200
166
  " bottom-[8px]": alignment[0] === "b",
201
167
  " left-[-8px]": alignment[1] === "l",
@@ -210,14 +176,14 @@ var Menu = ({
210
176
  };
211
177
 
212
178
  // src/components/user-action/Input.tsx
213
- var import_react7 = require("react");
214
- var import_clsx3 = __toESM(require("clsx"), 1);
179
+ import { forwardRef, useEffect as useEffect6, useRef as useRef2, useState as useState5 } from "react";
180
+ import clsx3 from "clsx";
215
181
 
216
182
  // src/hooks/useSaveDelay.ts
217
- var import_react6 = require("react");
183
+ import { useEffect as useEffect5, useState as useState4 } from "react";
218
184
  function useSaveDelay(setNotificationStatus, delay) {
219
- const [updateTimer, setUpdateTimer] = (0, import_react6.useState)(void 0);
220
- const [notificationTimer, setNotificationTimer] = (0, import_react6.useState)(void 0);
185
+ const [updateTimer, setUpdateTimer] = useState4(void 0);
186
+ const [notificationTimer, setNotificationTimer] = useState4(void 0);
221
187
  const restartTimer = (onSave) => {
222
188
  clearTimeout(updateTimer);
223
189
  setUpdateTimer(setTimeout(() => {
@@ -244,7 +210,7 @@ function useSaveDelay(setNotificationStatus, delay) {
244
210
  setNotificationStatus(false);
245
211
  }
246
212
  };
247
- (0, import_react6.useEffect)(() => {
213
+ useEffect5(() => {
248
214
  return () => {
249
215
  clearTimeout(updateTimer);
250
216
  clearTimeout(notificationTimer);
@@ -257,8 +223,8 @@ function useSaveDelay(setNotificationStatus, delay) {
257
223
  var noop = () => void 0;
258
224
 
259
225
  // src/components/user-action/Label.tsx
260
- var import_clsx2 = __toESM(require("clsx"), 1);
261
- var import_jsx_runtime3 = require("react/jsx-runtime");
226
+ import clsx2 from "clsx";
227
+ import { jsx as jsx3 } from "react/jsx-runtime";
262
228
  var styleMapping = {
263
229
  labelSmall: "textstyle-label-sm",
264
230
  labelMedium: "textstyle-label-md",
@@ -271,11 +237,11 @@ var Label = ({
271
237
  className,
272
238
  ...props
273
239
  }) => {
274
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { ...props, className: (0, import_clsx2.default)(styleMapping[labelType], className), children: children ? children : name });
240
+ return /* @__PURE__ */ jsx3("label", { ...props, className: clsx2(styleMapping[labelType], className), children: children ? children : name });
275
241
  };
276
242
 
277
243
  // src/components/user-action/Input.tsx
278
- var import_jsx_runtime4 = require("react/jsx-runtime");
244
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
279
245
  var Input = ({
280
246
  id,
281
247
  type = "text",
@@ -295,15 +261,15 @@ var Input = ({
295
261
  restartTimer,
296
262
  clearUpdateTimer
297
263
  } = useSaveDelay(() => void 0, 3e3);
298
- const ref = (0, import_react7.useRef)(null);
299
- (0, import_react7.useEffect)(() => {
264
+ const ref = useRef2(null);
265
+ useEffect6(() => {
300
266
  if (autoFocus) {
301
267
  ref.current?.focus();
302
268
  }
303
269
  }, [autoFocus]);
304
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_clsx3.default)({ "w-full": expanded }, containerClassName), children: [
305
- label && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Label, { ...label, htmlFor: id, className: (0, import_clsx3.default)("mb-1", label.className) }),
306
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
270
+ return /* @__PURE__ */ jsxs2("div", { className: clsx3({ "w-full": expanded }, containerClassName), children: [
271
+ label && /* @__PURE__ */ jsx4(Label, { ...label, htmlFor: id, className: clsx3("mb-1", label.className) }),
272
+ /* @__PURE__ */ jsx4(
307
273
  "input",
308
274
  {
309
275
  ref,
@@ -336,7 +302,7 @@ var Input = ({
336
302
  )
337
303
  ] });
338
304
  };
339
- var FormInput = (0, import_react7.forwardRef)(function FormInput2({
305
+ var FormInput = forwardRef(function FormInput2({
340
306
  id,
341
307
  labelText,
342
308
  errorText,
@@ -347,13 +313,13 @@ var FormInput = (0, import_react7.forwardRef)(function FormInput2({
347
313
  required,
348
314
  ...restProps
349
315
  }, ref) {
350
- const input = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
316
+ const input = /* @__PURE__ */ jsx4(
351
317
  "input",
352
318
  {
353
319
  ref,
354
320
  id,
355
321
  ...restProps,
356
- className: (0, import_clsx3.default)(
322
+ className: clsx3(
357
323
  {
358
324
  "focus:border-primary focus:ring-primary": !errorText,
359
325
  "focus:border-negative focus:ring-negative text-negative": !!errorText
@@ -362,22 +328,22 @@ var FormInput = (0, import_react7.forwardRef)(function FormInput2({
362
328
  )
363
329
  }
364
330
  );
365
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_clsx3.default)("flex flex-col gap-y-1", containerClassName), children: [
366
- labelText && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("label", { htmlFor: id, className: (0, import_clsx3.default)("textstyle-label-md", labelClassName), children: [
331
+ return /* @__PURE__ */ jsxs2("div", { className: clsx3("flex flex-col gap-y-1", containerClassName), children: [
332
+ labelText && /* @__PURE__ */ jsxs2("label", { htmlFor: id, className: clsx3("textstyle-label-md", labelClassName), children: [
367
333
  labelText,
368
- required && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-primary font-bold", children: "*" })
334
+ required && /* @__PURE__ */ jsx4("span", { className: "text-primary font-bold", children: "*" })
369
335
  ] }),
370
336
  input,
371
- errorText && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("label", { htmlFor: id, className: (0, import_clsx3.default)("text-negative", errorClassName), children: errorText })
337
+ errorText && /* @__PURE__ */ jsx4("label", { htmlFor: id, className: clsx3("text-negative", errorClassName), children: errorText })
372
338
  ] });
373
339
  });
374
340
 
375
341
  // src/components/user-action/Checkbox.tsx
376
- var import_react8 = require("react");
377
- var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
378
- var import_lucide_react = require("lucide-react");
379
- var import_clsx4 = __toESM(require("clsx"), 1);
380
- var import_jsx_runtime5 = require("react/jsx-runtime");
342
+ import { useState as useState6 } from "react";
343
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
344
+ import { Check, Minus } from "lucide-react";
345
+ import clsx4 from "clsx";
346
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
381
347
  var checkboxSizeMapping = {
382
348
  small: "size-4",
383
349
  medium: "size-6",
@@ -413,31 +379,31 @@ var Checkbox = ({
413
379
  const newValue = checked === "indeterminate" ? false : !checked;
414
380
  propagateChange(newValue);
415
381
  };
416
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: (0, import_clsx4.default)("row justify-center items-center", containerClassName), children: [
417
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
382
+ return /* @__PURE__ */ jsxs3("div", { className: clsx4("row justify-center items-center", containerClassName), children: [
383
+ /* @__PURE__ */ jsx5(
418
384
  CheckboxPrimitive.Root,
419
385
  {
420
386
  onCheckedChange: propagateChange,
421
387
  checked,
422
388
  disabled,
423
389
  id,
424
- className: (0, import_clsx4.default)(usedSizeClass, `items-center border-2 rounded outline-none focus:border-primary`, {
425
- "text-disabled-text border-disabled-text": disabled,
426
- "border-on-background": !disabled,
390
+ className: clsx4(usedSizeClass, `items-center border-2 rounded outline-none focus:border-primary`, {
391
+ "text-disabled-text border-disabled-text bg-disabled-background": disabled,
392
+ "bg-surface": !disabled && !checked,
427
393
  "bg-primary/30 border-primary text-primary": checked === true || checked === "indeterminate",
428
- "hover:border-gray-400 focus:hover:border-primary": !checked
394
+ "hover:border-primary focus:hover:border-primary": !checked
429
395
  }, className),
430
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(CheckboxPrimitive.Indicator, { children: [
431
- checked === true && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.Check, { className: innerIconSize }),
432
- checked === "indeterminate" && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.Minus, { className: innerIconSize })
396
+ children: /* @__PURE__ */ jsxs3(CheckboxPrimitive.Indicator, { children: [
397
+ checked === true && /* @__PURE__ */ jsx5(Check, { className: innerIconSize }),
398
+ checked === "indeterminate" && /* @__PURE__ */ jsx5(Minus, { className: innerIconSize })
433
399
  ] })
434
400
  }
435
401
  ),
436
- label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
402
+ label && /* @__PURE__ */ jsx5(
437
403
  Label,
438
404
  {
439
405
  ...label,
440
- className: (0, import_clsx4.default)("cursor-pointer", label.className),
406
+ className: clsx4("cursor-pointer", label.className),
441
407
  htmlFor: id,
442
408
  onClick: changeValue
443
409
  }
@@ -446,7 +412,7 @@ var Checkbox = ({
446
412
  };
447
413
 
448
414
  // src/components/user-action/MultiSelect.tsx
449
- var import_jsx_runtime6 = require("react/jsx-runtime");
415
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
450
416
  var defaultMultiSelectTranslation = {
451
417
  en: {
452
418
  select: "Select",
@@ -473,7 +439,7 @@ var MultiSelect = ({
473
439
  triggerClassName = ""
474
440
  }) => {
475
441
  const translation = useTranslation(defaultMultiSelectTranslation, overwriteTranslation);
476
- const [searchText, setSearchText] = (0, import_react9.useState)(search?.initialSearch ?? "");
442
+ const [searchText, setSearchText] = useState7(search?.initialSearch ?? "");
477
443
  let filteredOptions = options;
478
444
  const enableSearch = !!search;
479
445
  if (enableSearch && !!searchText) {
@@ -487,32 +453,32 @@ var MultiSelect = ({
487
453
  filteredOptions = filteredOptions.filter((value) => !value.disabled);
488
454
  }
489
455
  const selectedItems = options.filter((value) => value.selected);
490
- const menuButtonText = selectedItems.length === 0 ? hintText ?? translation.select : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { children: `${selectedItems.length} ${translation.selected}` });
456
+ const menuButtonText = selectedItems.length === 0 ? hintText ?? translation.select : /* @__PURE__ */ jsx6("span", { children: `${selectedItems.length} ${translation.selected}` });
491
457
  const borderColor = "border-menu-border";
492
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: (0, import_clsx5.default)(className), children: [
493
- label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
458
+ return /* @__PURE__ */ jsxs4("div", { className: clsx5(className), children: [
459
+ label && /* @__PURE__ */ jsx6(
494
460
  Label,
495
461
  {
496
462
  ...label,
497
463
  htmlFor: label.name,
498
- className: (0, import_clsx5.default)(" mb-1", label.className),
464
+ className: clsx5(" mb-1", label.className),
499
465
  labelType: label.labelType ?? "labelBig"
500
466
  }
501
467
  ),
502
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
468
+ /* @__PURE__ */ jsxs4(
503
469
  Menu,
504
470
  {
505
471
  alignment: "t_",
506
- trigger: (onClick, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
472
+ trigger: (onClick, ref) => /* @__PURE__ */ jsx6(
507
473
  "div",
508
474
  {
509
475
  ref,
510
476
  onClick: disabled ? void 0 : onClick,
511
- className: (0, import_clsx5.default)(
477
+ className: clsx5(
512
478
  borderColor,
513
479
  "bg-menu-background text-menu-text inline-w-full justify-between items-center rounded-lg border-2 px-4 py-2 font-medium",
514
480
  {
515
- "hover:brightness-90 hover:border-primary cursor-pointer": !disabled,
481
+ "hover:border-primary cursor-pointer": !disabled,
516
482
  "bg-disabled-background text-disabled cursor-not-allowed": disabled
517
483
  },
518
484
  triggerClassName
@@ -520,27 +486,27 @@ var MultiSelect = ({
520
486
  children: selectedDisplay ? selectedDisplay({ items: options, disabled }) : menuButtonText
521
487
  }
522
488
  ),
523
- menuClassName: (0, import_clsx5.default)(
489
+ menuClassName: clsx5(
524
490
  "!rounded-lg !shadow-lg !max-h-[500px] !min-w-[400px] !max-w-[70vh] !overflow-y-auto !border !border-2",
525
491
  borderColor,
526
492
  { "!py-0": !enableSearch, "!pb-0": enableSearch }
527
493
  ),
528
494
  children: [
529
- enableSearch && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "row gap-x-2 items-center px-2 py-2", children: [
530
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Input, { autoFocus: true, className: "w-full", value: searchText, onChangeText: setSearchText }),
531
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Search, {})
495
+ enableSearch && /* @__PURE__ */ jsxs4("div", { className: "row gap-x-2 items-center px-2 py-2", children: [
496
+ /* @__PURE__ */ jsx6(Input, { autoFocus: true, className: "w-full", value: searchText, onChangeText: setSearchText }),
497
+ /* @__PURE__ */ jsx6(Search, {})
532
498
  ] }, "selectSearch"),
533
- filteredOptions.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
499
+ filteredOptions.map((option, index) => /* @__PURE__ */ jsx6(
534
500
  MenuItem,
535
501
  {
536
- className: (0, import_clsx5.default)({
502
+ className: clsx5({
537
503
  "cursor-not-allowed !bg-disabled-background !text-disabled-text hover:brightness-100": !!option.disabled,
538
504
  "cursor-pointer": !option.disabled
539
505
  }),
540
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
506
+ children: /* @__PURE__ */ jsxs4(
541
507
  "div",
542
508
  {
543
- className: (0, import_clsx5.default)("overflow-hidden whitespace-nowrap text-ellipsis row items-center gap-x-2", option.className),
509
+ className: clsx5("overflow-hidden whitespace-nowrap text-ellipsis row items-center gap-x-2", option.className),
544
510
  onClick: () => {
545
511
  if (!option.disabled) {
546
512
  onChange(options.map((value) => value.value === option.value ? {
@@ -550,7 +516,7 @@ var MultiSelect = ({
550
516
  }
551
517
  },
552
518
  children: [
553
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Checkbox, { checked: option.selected, disabled: option.disabled, size: "small" }),
519
+ /* @__PURE__ */ jsx6(Checkbox, { checked: option.selected, disabled: option.disabled, size: "small" }),
554
520
  option.label
555
521
  ]
556
522
  }
@@ -563,8 +529,7 @@ var MultiSelect = ({
563
529
  )
564
530
  ] });
565
531
  };
566
- // Annotate the CommonJS export names for ESM import in node:
567
- 0 && (module.exports = {
532
+ export {
568
533
  MultiSelect
569
- });
570
- //# sourceMappingURL=MultiSelect.cjs.map
534
+ };
535
+ //# sourceMappingURL=MultiSelect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/user-action/MultiSelect.tsx","../../../src/localization/LanguageProvider.tsx","../../../src/hooks/useLocalStorage.ts","../../../src/localization/util.ts","../../../src/localization/useTranslation.ts","../../../src/util/simpleSearch.ts","../../../src/components/user-action/Menu.tsx","../../../src/hooks/useOutsideClick.ts","../../../src/hooks/useHoverState.ts","../../../src/components/user-action/Input.tsx","../../../src/hooks/useSaveDelay.ts","../../../src/util/noop.ts","../../../src/components/user-action/Label.tsx","../../../src/components/user-action/Checkbox.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useState } from 'react'\nimport { Search } from 'lucide-react'\nimport type { PropsForTranslation } from '../../localization/useTranslation'\nimport { useTranslation } from '../../localization/useTranslation'\nimport type { Language } from '../../localization/util'\nimport { MultiSearchWithMapping } from '../../util/simpleSearch'\nimport clsx from 'clsx'\nimport { Menu, MenuItem } from './Menu'\nimport { Input } from './Input'\nimport { Checkbox } from './Checkbox'\nimport type { LabelProps } from './Label'\nimport { Label } from './Label'\n\ntype MultiSelectTranslation = {\n select: string,\n search: string,\n selected: string,\n}\n\nconst defaultMultiSelectTranslation: Record<Language, MultiSelectTranslation> = {\n en: {\n select: 'Select',\n search: 'Search',\n selected: 'selected'\n },\n de: {\n select: 'Auswählen',\n search: 'Suche',\n selected: 'ausgewählt'\n }\n}\n\n// TODO maybe add custom item builder here\nexport type MultiSelectOption<T> = {\n label: string,\n value: T,\n selected: boolean,\n disabled?: boolean,\n className?: string,\n}\n\nexport type SearchProps<T> = {\n initialSearch?: string,\n searchMapping: (value: MultiSelectOption<T>) => string[],\n}\n\nexport type MultiSelectProps<T> = {\n options: MultiSelectOption<T>[],\n onChange: (options: MultiSelectOption<T>[]) => void,\n search?: SearchProps<T>,\n disabled?: boolean,\n selectedDisplay?: (props: {\n items: MultiSelectOption<T>[],\n disabled: boolean,\n }) => ReactNode,\n label?: LabelProps,\n hintText?: string,\n showDisabledOptions?: boolean,\n className?: string,\n triggerClassName?: string,\n}\n\n/**\n * A Component for multi selection\n */\nexport const MultiSelect = <T, >({\n overwriteTranslation,\n options,\n onChange,\n search,\n disabled = false,\n selectedDisplay,\n label,\n hintText,\n showDisabledOptions = true,\n className = '',\n triggerClassName = '',\n }: PropsForTranslation<MultiSelectTranslation, MultiSelectProps<T>>) => {\n const translation = useTranslation(defaultMultiSelectTranslation, overwriteTranslation)\n const [searchText, setSearchText] = useState<string>(search?.initialSearch ?? '')\n let filteredOptions: MultiSelectOption<T>[] = options\n const enableSearch = !!search\n if (enableSearch && !!searchText) {\n filteredOptions = MultiSearchWithMapping<MultiSelectOption<T>>(\n searchText,\n filteredOptions,\n value => search.searchMapping(value)\n )\n }\n if (!showDisabledOptions) {\n filteredOptions = filteredOptions.filter(value => !value.disabled)\n }\n\n const selectedItems = options.filter(value => value.selected)\n const menuButtonText = selectedItems.length === 0 ?\n hintText ?? translation.select\n : <span>{`${selectedItems.length} ${translation.selected}`}</span>\n\n const borderColor = 'border-menu-border'\n\n return (\n <div className={clsx(className)}>\n {label && (\n <Label {...label} htmlFor={label.name} className={clsx(' mb-1', label.className)}\n labelType={label.labelType ?? 'labelBig'}/>\n )}\n <Menu<HTMLDivElement>\n alignment=\"t_\"\n trigger={(onClick, ref) => (\n <div ref={ref} onClick={disabled ? undefined : onClick}\n className={clsx(borderColor, 'bg-menu-background text-menu-text inline-w-full justify-between items-center rounded-lg border-2 px-4 py-2 font-medium',\n {\n 'hover:border-primary cursor-pointer': !disabled,\n 'bg-disabled-background text-disabled cursor-not-allowed': disabled\n },\n triggerClassName)}\n >\n {selectedDisplay ? selectedDisplay({ items: options, disabled }) : menuButtonText}\n </div>\n )}\n menuClassName={clsx(\n '!rounded-lg !shadow-lg !max-h-[500px] !min-w-[400px] !max-w-[70vh] !overflow-y-auto !border !border-2', borderColor,\n { '!py-0': !enableSearch, '!pb-0': enableSearch }\n )}\n >\n {enableSearch && (\n <div key=\"selectSearch\" className=\"row gap-x-2 items-center px-2 py-2\">\n <Input autoFocus={true} className=\"w-full\" value={searchText} onChangeText={setSearchText}/>\n <Search/>\n </div>\n )}\n {filteredOptions.map((option, index) => (\n <MenuItem key={`item${index}`} className={clsx({\n 'cursor-not-allowed !bg-disabled-background !text-disabled-text hover:brightness-100': !!option.disabled,\n 'cursor-pointer': !option.disabled,\n })}\n >\n <div\n className={clsx('overflow-hidden whitespace-nowrap text-ellipsis row items-center gap-x-2', option.className)}\n onClick={() => {\n if (!option.disabled) {\n onChange(options.map(value => value.value === option.value ? ({\n ...option,\n selected: !value.selected\n }) : value))\n }\n }}\n >\n <Checkbox checked={option.selected} disabled={option.disabled} size=\"small\"/>\n {option.label}\n </div>\n </MenuItem>\n ))}\n </Menu>\n </div>\n )\n}\n","import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { useLocalStorage } from '../hooks/useLocalStorage'\nimport type { Language } from './util'\nimport { LanguageUtil } from './util'\n\nexport type LanguageContextValue = {\n language: Language,\n setLanguage: Dispatch<SetStateAction<Language>>,\n}\n\nexport const LanguageContext = createContext<LanguageContextValue>({\n language: LanguageUtil.DEFAULT_LANGUAGE,\n setLanguage: (v) => v\n})\n\nexport const useLanguage = () => useContext(LanguageContext)\n\nexport const useLocale = (overWriteLanguage?: Language) => {\n const { language } = useLanguage()\n const mapping: Record<Language, string> = {\n en: 'en-US',\n de: 'de-DE'\n }\n return mapping[overWriteLanguage ?? language]\n}\n\ntype LanguageProviderProps = {\n initialLanguage?: Language,\n}\n\nexport const LanguageProvider = ({ initialLanguage, children }: PropsWithChildren<LanguageProviderProps>) => {\n const [language, setLanguage] = useState<Language>(initialLanguage ?? LanguageUtil.DEFAULT_LANGUAGE)\n const [storedLanguage, setStoredLanguage] = useLocalStorage<Language>('language', initialLanguage ?? LanguageUtil.DEFAULT_LANGUAGE)\n\n useEffect(() => {\n if (language !== initialLanguage && initialLanguage) {\n console.warn('LanguageProvider initial state changed: Prefer using languageProvider\\'s setLanguage instead')\n setLanguage(initialLanguage)\n }\n }, [initialLanguage]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // TODO set locale of html tag here as well\n setStoredLanguage(language)\n }, [language, setStoredLanguage])\n\n useEffect(() => {\n if (storedLanguage !== null) {\n setLanguage(storedLanguage)\n return\n }\n\n const LanguageToTestAgainst = Object.values(LanguageUtil.languages)\n\n const matchingBrowserLanguage = window.navigator.languages\n .map(language => LanguageToTestAgainst.find((test) => language === test || language.split('-')[0] === test))\n .filter(entry => entry !== undefined)\n\n if (matchingBrowserLanguage.length === 0) return\n\n const firstMatch = matchingBrowserLanguage[0] as Language\n setLanguage(firstMatch)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <LanguageContext.Provider value={{\n language,\n setLanguage\n }}>\n {children}\n </LanguageContext.Provider>\n )\n}","import type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { LocalStorageService } from '../util/storage'\n\ntype SetValue<T> = Dispatch<SetStateAction<T>>\nexport const useLocalStorage = <T>(key: string, initValue: T): [T, SetValue<T>] => {\n const get = useCallback((): T => {\n if (typeof window === 'undefined') {\n return initValue\n }\n const storageService = new LocalStorageService()\n const value = storageService.get<T>(key)\n return value || initValue\n }, [initValue, key])\n\n const [storedValue, setStoredValue] = useState<T>(get)\n\n const setValue: SetValue<T> = useCallback(value => {\n const newValue = value instanceof Function ? value(storedValue) : value\n const storageService = new LocalStorageService()\n storageService.set(key, value)\n\n setStoredValue(newValue)\n }, [storedValue, setStoredValue, key])\n\n useEffect(() => {\n setStoredValue(get())\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return [storedValue, setValue]\n}","/**\n * The supported languages\n */\nconst languages = ['en', 'de'] as const\n\n/**\n * The supported languages\n */\nexport type Language = typeof languages[number]\n\n/**\n * The supported languages' names in their respective language\n */\nconst languagesLocalNames: Record<Language, string> = {\n en: 'English',\n de: 'Deutsch',\n}\n\n/**\n * The default language\n */\nconst DEFAULT_LANGUAGE: Language = 'en'\n\n/**\n * A constant definition for holding data regarding languages\n */\nexport const LanguageUtil = {\n languages,\n DEFAULT_LANGUAGE,\n languagesLocalNames,\n}","import { useLanguage } from './LanguageProvider'\nimport type { Language } from './util'\n\nexport type Translation<T> = Record<Language, T>\n\ntype OverwriteTranslationType<Translation extends Record<string, unknown>> = {\n language?: Language,\n translation?: Partial<Record<Language, Partial<Translation>>>,\n}\n\n/**\n * Adds the `language` prop to the component props.\n *\n * @param Translation the type of the translation object\n *\n * @param Props the type of the component props, defaults to `Record<string, never>`,\n * if you don't expect any other props other than `language` and get an\n * error when using your component (because it uses `forwardRef` etc.)\n * you can try out `Record<string, unknown>`, this might resolve your\n * problem as `SomeType & never` is still `never` but `SomeType & unknown`\n * is `SomeType` which means that adding back props (like `ref` etc.)\n * works properly\n */\nexport type PropsForTranslation<\n Translation extends Record<string, unknown>,\n Props = Record<string, never>\n> = Props & {\n overwriteTranslation?: OverwriteTranslationType<Translation>,\n};\n\nexport const useTranslation = <Translation extends Record<string, unknown>>(\n defaults: Record<Language, Translation>,\n translationOverwrite: OverwriteTranslationType<Translation> = {}\n): Translation => {\n const { language: languageProp, translation: overwrite } = translationOverwrite\n const { language: inferredLanguage } = useLanguage()\n const usedLanguage = languageProp ?? inferredLanguage\n let defaultValues: Translation = defaults[usedLanguage]\n if (overwrite && overwrite[usedLanguage]) {\n defaultValues = { ...defaultValues, ...overwrite[usedLanguage] }\n }\n return defaultValues\n}\n","/**\n * Finds all values matching the search values by first mapping the values to a string array and then checking each entry for matches.\n * Returns the list of all matches.\n *\n * @param search The list of search strings e.g. `[name, type]`\n *\n * @param objects The list of objects to be searched in\n *\n * @param mapping The mapping of objects to the string properties they fulfil\n *\n * @return The list of objects that match all search strings\n */\nexport const MultiSubjectSearchWithMapping = <T>(search: string[], objects: T[], mapping: (value: T) => (string | undefined)[]) => {\n return objects.filter(object => {\n const mappedSearchKeywords = mapping(object).map(value => value ? value.toLowerCase().trim() : undefined)\n return search.every(searchValue => !!mappedSearchKeywords.find(value => !!value && value.includes(searchValue.toLowerCase().trim())))\n })\n}\n\n/**\n * Finds all values matching the search value by first mapping the values to a string array and then checking each entry for matches.\n * Returns the list of all matches.\n *\n * @param search The search string e.g `name`\n *\n * @param objects The list of objects to be searched in\n *\n * @param mapping The mapping of objects to the string properties they fulfil\n *\n * @return The list of objects that match the search string\n */\nexport const MultiSearchWithMapping = <T>(search: string, objects: T[], mapping: (value: T) => string[]) => {\n return objects.filter(object => {\n const mappedSearchKeywords = mapping(object).map(value => value.toLowerCase().trim())\n return !!mappedSearchKeywords.find(value => value.includes(search.toLowerCase().trim()))\n })\n}\n\n/**\n * Finds all values matching the search value by first mapping the values to a string and returns the list of all matches.\n *\n * @param search The search string e.g `name`\n *\n * @param objects The list of objects to be searched in\n *\n * @param mapping The mapping of objects to a string that is compared to the search\n *\n * @return The list of objects that match the search string\n */\nexport const SimpleSearchWithMapping = <T>(search: string, objects: T[], mapping: (value: T) => string) => {\n return MultiSearchWithMapping(search, objects, value => [mapping(value)])\n}\n\n/**\n * Finds all values matching the search value and returns the list of all matches.\n *\n * @param search The search string e.g `name`\n *\n * @param objects The list of objects to be searched in\n *\n * @return The list of objects that match the search string\n */\nexport const SimpleSearch = (search: string, objects: string[]) => {\n return SimpleSearchWithMapping(search, objects, value => value)\n}\n","import { type PropsWithChildren, type ReactNode, type RefObject, useRef } from 'react'\nimport clsx from 'clsx'\nimport { useOutsideClick } from '../../hooks/useOutsideClick'\nimport { useHoverState } from '../../hooks/useHoverState'\n\ntype MenuProps<T> = PropsWithChildren<{\n trigger: (onClick: () => void, ref: RefObject<T>) => ReactNode,\n /**\n * @default 'tl'\n */\n alignment?: 'tl' | 'tr' | 'bl' | 'br' | '_l' | '_r' | 't_' | 'b_',\n showOnHover?: boolean,\n menuClassName?: string,\n}>\n\nexport type MenuItemProps = {\n onClick?: () => void,\n alignment?: 'left' | 'right',\n className?: string,\n}\nconst MenuItem = ({\n children,\n onClick,\n alignment = 'left',\n className\n }: PropsWithChildren<MenuItemProps>) => (\n <div\n className={clsx('block px-3 py-1 bg-menu-background text-menu-text hover:brightness-90', {\n 'text-right': alignment === 'right',\n 'text-left': alignment === 'left',\n }, className)}\n onClick={onClick}\n >\n {children}\n </div>\n)\n\n/**\n * A Menu Component to allow the user to see different functions\n */\nconst Menu = <T extends HTMLElement>({\n trigger,\n children,\n alignment = 'tl',\n showOnHover = false,\n menuClassName = '',\n }: MenuProps<T>) => {\n const { isHovered: isOpen, setIsHovered: setIsOpen, handlers } = useHoverState({ isDisabled: !showOnHover })\n const triggerRef = useRef<T>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n useOutsideClick([triggerRef, menuRef], () => setIsOpen(false))\n\n return (\n <div\n className=\"relative\"\n {...handlers}\n >\n {trigger(() => setIsOpen(!isOpen), triggerRef)}\n {isOpen ? (\n <div ref={menuRef} onClick={e => e.stopPropagation()}\n className={clsx('absolute top-full mt-1 py-2 w-60 rounded-lg bg-menu-background text-menu-text ring-1 ring-slate-900/5 text-sm leading-6 font-semibold shadow-md z-[1]', {\n ' top-[8px]': alignment[0] === 't',\n ' bottom-[8px]': alignment[0] === 'b',\n ' left-[-8px]': alignment[1] === 'l',\n ' right-[-8px]': alignment[1] === 'r',\n }, menuClassName)}>\n {children}\n </div>\n ) : null}\n </div>\n )\n}\n\nexport { Menu, MenuItem }\n","import type { RefObject } from 'react'\nimport { useEffect } from 'react'\n\nexport const useOutsideClick = <Ts extends RefObject<HTMLElement>[]>(refs: Ts, handler: () => void) => {\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n // returning means not \"not clicking outside\"\n\n // if no target exists, return\n if (event.target === null) return\n // if the target is a ref's element or descendent thereof, return\n if (refs.some((ref) => !ref.current || ref.current.contains(event.target as Node))) {\n return\n }\n\n handler()\n }\n document.addEventListener('mousedown', listener)\n document.addEventListener('touchstart', listener)\n return () => {\n document.removeEventListener('mousedown', listener)\n document.removeEventListener('touchstart', listener)\n }\n }, [refs, handler])\n}\n","import type { Dispatch, SetStateAction } from 'react'\nimport { useEffect, useState } from 'react'\n\ntype UseHoverStateProps = {\n /**\n * The delay after which the menu is closed in milliseconds\n *\n * default: 200ms\n */\n closingDelay: number,\n /**\n * Whether the hover state management should be disabled\n *\n * default: false\n */\n isDisabled: boolean,\n}\n\ntype UseHoverStateReturnType = {\n /**\n * Whether the element is hovered\n */\n isHovered: boolean,\n /**\n * Function to change the current hover status\n */\n setIsHovered: Dispatch<SetStateAction<boolean>>,\n /**\n * Handlers to pass on to the component that should be hovered\n */\n handlers: {\n onMouseEnter: () => void,\n onMouseLeave: () => void,\n },\n}\n\nconst defaultUseHoverStateProps: UseHoverStateProps = {\n closingDelay: 200,\n isDisabled: false,\n}\n\n/**\n * @param props See UseHoverStateProps\n *\n * A react hook for managing the hover state of a component. The handlers provided should be\n * forwarded to the component which should be hovered over\n */\nexport const useHoverState = (props: Partial<UseHoverStateProps> | undefined = undefined): UseHoverStateReturnType => {\n const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props }\n\n const [isHovered, setIsHovered] = useState(false)\n const [timer, setTimer] = useState<NodeJS.Timeout>()\n\n const onMouseEnter = () => {\n if (isDisabled) {\n return\n }\n clearTimeout(timer)\n setIsHovered(true)\n }\n\n const onMouseLeave = () => {\n if (isDisabled) {\n return\n }\n setTimer(setTimeout(() => {\n setIsHovered(false)\n }, closingDelay))\n }\n\n useEffect(() => {\n if (timer) {\n return () => {\n clearTimeout(timer)\n }\n }\n })\n\n useEffect(() => {\n if (timer) {\n clearTimeout(timer)\n }\n }, [isDisabled]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n isHovered, setIsHovered, handlers: { onMouseEnter, onMouseLeave }\n }\n}\n","import React, { forwardRef, type InputHTMLAttributes, useEffect, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport { useSaveDelay } from '../../hooks/useSaveDelay'\nimport { noop } from '../../util/noop'\nimport type { LabelProps } from './Label'\nimport { Label } from './Label'\n\nexport type InputProps = {\n /**\n * used for the label's `for` attribute\n */\n label?: Omit<LabelProps, 'id'>,\n /**\n * Callback for when the input's value changes\n * This is pretty much required but made optional for the rare cases where it actually isn't need such as when used with disabled\n * That could be enforced through a union type but that seems a bit overkill\n * @default noop\n */\n onChangeText?: (text: string) => void,\n className?: string,\n onEditCompleted?: (text: string) => void,\n expanded?: boolean,\n containerClassName?: string,\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'label'>\n\n/**\n * A Component for inputting text or other information\n *\n * Its state is managed must be managed by the parent\n */\nconst Input = ({\n id,\n type = 'text',\n value,\n label,\n onChange = noop,\n onChangeText = noop,\n onEditCompleted,\n className = '',\n expanded = true,\n autoFocus,\n onBlur,\n containerClassName,\n ...restProps\n }: InputProps) => {\n const {\n restartTimer,\n clearUpdateTimer\n } = useSaveDelay(() => undefined, 3000)\n const ref = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if(autoFocus) {\n ref.current?.focus()\n }\n }, [autoFocus])\n\n return (\n <div className={clsx({ 'w-full': expanded }, containerClassName)}>\n {label && <Label {...label} htmlFor={id} className={clsx('mb-1', label.className)}/>}\n <input\n ref={ref}\n value={value}\n id={id}\n type={type}\n className={className}\n onBlur={event => {\n if (onBlur) {\n onBlur(event)\n }\n if (onEditCompleted) {\n onEditCompleted(event.target.value)\n clearUpdateTimer()\n }\n }}\n onChange={e => {\n const value = e.target.value\n if (onEditCompleted) {\n restartTimer(() => {\n onEditCompleted(value)\n clearUpdateTimer()\n })\n }\n onChange(e)\n onChangeText(value)\n }}\n {...restProps}\n />\n </div>\n )\n}\n\ntype InputUncontrolledProps = Omit<InputProps, 'value'> & {\n /**\n * @default ''\n */\n defaultValue?: string,\n}\n\n/**\n * A Component for inputting text or other information\n *\n * Its state is managed by the component itself\n */\nconst InputUncontrolled = ({\n defaultValue = '',\n onChangeText = noop,\n ...props\n }: InputUncontrolledProps) => {\n const [value, setValue] = useState(defaultValue)\n\n return (\n <Input\n {...props}\n value={value}\n onChangeText={text => {\n setValue(text)\n onChangeText(text)\n }}\n />\n )\n}\n\nexport type FormInputProps = InputHTMLAttributes<HTMLInputElement> & {\n id: string,\n labelText?: string,\n errorText?: string,\n labelClassName?: string,\n errorClassName?: string,\n containerClassName?: string,\n}\n\nconst FormInput = forwardRef<HTMLInputElement, FormInputProps>(function FormInput({\n id,\n labelText,\n errorText,\n className,\n labelClassName,\n errorClassName,\n containerClassName,\n required,\n ...restProps\n }, ref) {\n const input = (\n <input\n ref={ref}\n id={id}\n {...restProps}\n className={clsx(\n {\n 'focus:border-primary focus:ring-primary': !errorText,\n 'focus:border-negative focus:ring-negative text-negative': !!errorText,\n },\n className\n )}\n />\n )\n\n return (\n <div className={clsx('flex flex-col gap-y-1', containerClassName)}>\n {labelText && (\n <label htmlFor={id} className={clsx('textstyle-label-md', labelClassName)}>\n {labelText}\n {required && <span className=\"text-primary font-bold\">*</span>}\n </label>\n )}\n {input}\n {errorText && <label htmlFor={id} className={clsx('text-negative', errorClassName)}>{errorText}</label>}\n </div>\n )\n})\n\nexport {\n InputUncontrolled,\n Input,\n FormInput\n}\n","import { useEffect, useState } from 'react'\n\nexport function useSaveDelay(setNotificationStatus: (isShowing: boolean) => void, delay: number) {\n const [updateTimer, setUpdateTimer] = useState<NodeJS.Timeout | undefined>(undefined)\n const [notificationTimer, setNotificationTimer] = useState<NodeJS.Timeout | undefined>(undefined)\n\n const restartTimer = (onSave: () => void) => {\n clearTimeout(updateTimer)\n setUpdateTimer(setTimeout(() => {\n onSave()\n setNotificationStatus(true)\n // Show Saved Notification for fade animation duration\n clearTimeout(notificationTimer)\n setNotificationTimer(setTimeout(() => {\n setNotificationStatus(false)\n clearTimeout(notificationTimer)\n }, delay))\n clearTimeout(updateTimer)\n }, delay))\n }\n\n const clearUpdateTimer = (hasSaved = true) => {\n clearTimeout(updateTimer)\n if (hasSaved) {\n setNotificationStatus(true)\n clearTimeout(notificationTimer)\n setNotificationTimer(setTimeout(() => {\n setNotificationStatus(false)\n clearTimeout(notificationTimer)\n }, delay))\n } else {\n setNotificationStatus(false)\n }\n }\n\n useEffect(() => {\n return () => {\n clearTimeout(updateTimer)\n clearTimeout(notificationTimer)\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return { restartTimer, clearUpdateTimer }\n}","export const noop = () => undefined\n","import type { LabelHTMLAttributes } from 'react'\nimport clsx from 'clsx'\n\nexport type LabelType = 'labelSmall' | 'labelMedium' | 'labelBig'\n\nconst styleMapping: Record<LabelType, string> = {\n labelSmall: 'textstyle-label-sm',\n labelMedium: 'textstyle-label-md',\n labelBig: 'textstyle-label-lg',\n}\n\nexport type LabelProps = {\n /** The text for the label */\n name?: string,\n /** The styling for the label */\n labelType?: LabelType,\n} & LabelHTMLAttributes<HTMLLabelElement>\n\n/**\n * A Label component\n */\nexport const Label = ({\n children,\n name,\n labelType = 'labelSmall',\n className,\n ...props\n }: LabelProps) => {\n return (\n <label {...props} className={clsx(styleMapping[labelType], className)}>\n {children ? children : name}\n </label>\n )\n}\n","import { useState } from 'react'\nimport type { CheckedState } from '@radix-ui/react-checkbox'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check, Minus } from 'lucide-react'\nimport clsx from 'clsx'\nimport type { LabelProps } from './Label'\nimport { Label } from './Label'\n\ntype CheckBoxSize = 'small' | 'medium' | 'large'\n\nconst checkboxSizeMapping: Record<CheckBoxSize, string> = {\n small: 'size-4',\n medium: 'size-6',\n large: 'size-8',\n}\n\nconst checkboxIconSizeMapping: Record<CheckBoxSize, string> = {\n small: 'size-3',\n medium: 'size-5',\n large: 'size-7',\n}\n\ntype CheckboxProps = {\n /** used for the label's `for` attribute */\n id?: string,\n label?: Omit<LabelProps, 'id'>,\n /**\n * @default false\n */\n checked: CheckedState,\n disabled?: boolean,\n onChange?: (checked: boolean) => void,\n onChangeTristate?: (checked: CheckedState) => void,\n size?: CheckBoxSize,\n className?: string,\n containerClassName?: string,\n}\n\n/**\n * A Tristate checkbox\n *\n * The state is managed by the parent\n */\nconst Checkbox = ({\n id,\n label,\n checked,\n disabled,\n onChange,\n onChangeTristate,\n size = 'medium',\n className = '',\n containerClassName\n }: CheckboxProps) => {\n const usedSizeClass = checkboxSizeMapping[size]\n const innerIconSize = checkboxIconSizeMapping[size]\n\n const propagateChange = (checked: CheckedState) => {\n if (onChangeTristate) {\n onChangeTristate(checked)\n }\n if (onChange) {\n onChange(checked === 'indeterminate' ? false : checked)\n }\n }\n\n const changeValue = () => {\n const newValue = checked === 'indeterminate' ? false : !checked\n propagateChange(newValue)\n }\n\n return (\n <div className={clsx('row justify-center items-center', containerClassName)}>\n <CheckboxPrimitive.Root\n onCheckedChange={propagateChange}\n checked={checked}\n disabled={disabled}\n id={id}\n className={clsx(usedSizeClass, `items-center border-2 rounded outline-none focus:border-primary`, {\n 'text-disabled-text border-disabled-text bg-disabled-background': disabled,\n 'bg-surface': !disabled && !checked,\n 'bg-primary/30 border-primary text-primary': checked === true || checked === 'indeterminate',\n 'hover:border-primary focus:hover:border-primary': !checked\n }, className)}\n >\n <CheckboxPrimitive.Indicator>\n {checked === true && <Check className={innerIconSize}/>}\n {checked === 'indeterminate' && <Minus className={innerIconSize}/>}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <Label {...label} className={clsx('cursor-pointer', label.className)} htmlFor={id}\n onClick={changeValue}/>\n )}\n </div>\n )\n}\n\ntype CheckboxUncontrolledProps = Omit<CheckboxProps, 'value' | 'checked'> & {\n /**\n * @default false\n */\n defaultValue?: CheckedState,\n}\n\n/**\n * A Tristate checkbox\n *\n * The state is managed by this component\n */\nconst CheckboxUncontrolled = ({\n onChange,\n onChangeTristate,\n defaultValue = false,\n ...props\n }: CheckboxUncontrolledProps) => {\n const [checked, setChecked] = useState(defaultValue)\n\n const handleChange = (checked: CheckedState) => {\n if (onChangeTristate) {\n onChangeTristate(checked)\n }\n if (onChange) {\n onChange(checked === 'indeterminate' ? false : checked)\n }\n setChecked(checked)\n }\n\n return (\n <Checkbox\n {...props}\n checked={checked}\n onChangeTristate={handleChange}\n />\n )\n}\n\nexport {\n CheckboxProps,\n CheckboxUncontrolled,\n Checkbox,\n}\n"],"mappings":"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","names":["useState","useEffect","useState","clsx","useEffect","useEffect","useState","jsx","useEffect","useRef","useState","clsx","useEffect","useState","clsx","jsx","jsx","jsxs","useRef","useEffect","clsx","value","FormInput","jsx","clsx","jsxs","useState","clsx","jsx","jsxs","checked","clsx","jsx","jsxs","useState","clsx"]}