@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,34 +1,8 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/components/date/TimeDisplay.tsx
21
- var TimeDisplay_exports = {};
22
- __export(TimeDisplay_exports, {
23
- TimeDisplay: () => TimeDisplay
24
- });
25
- module.exports = __toCommonJS(TimeDisplay_exports);
26
-
27
1
  // src/localization/LanguageProvider.tsx
28
- var import_react2 = require("react");
2
+ import { createContext, useContext, useEffect as useEffect2, useState as useState2 } from "react";
29
3
 
30
4
  // src/hooks/useLocalStorage.ts
31
- var import_react = require("react");
5
+ import { useCallback, useEffect, useState } from "react";
32
6
 
33
7
  // src/localization/util.ts
34
8
  var languages = ["en", "de"];
@@ -44,12 +18,12 @@ var LanguageUtil = {
44
18
  };
45
19
 
46
20
  // src/localization/LanguageProvider.tsx
47
- var import_jsx_runtime = require("react/jsx-runtime");
48
- var LanguageContext = (0, import_react2.createContext)({
21
+ import { jsx } from "react/jsx-runtime";
22
+ var LanguageContext = createContext({
49
23
  language: LanguageUtil.DEFAULT_LANGUAGE,
50
24
  setLanguage: (v) => v
51
25
  });
52
- var useLanguage = () => (0, import_react2.useContext)(LanguageContext);
26
+ var useLanguage = () => useContext(LanguageContext);
53
27
 
54
28
  // src/localization/useTranslation.ts
55
29
  var useTranslation = (defaults, translationOverwrite = {}) => {
@@ -64,7 +38,7 @@ var useTranslation = (defaults, translationOverwrite = {}) => {
64
38
  };
65
39
 
66
40
  // src/components/date/TimeDisplay.tsx
67
- var import_jsx_runtime2 = require("react/jsx-runtime");
41
+ import { jsx as jsx2 } from "react/jsx-runtime";
68
42
  var defaultTimeDisplayTranslations = {
69
43
  en: {
70
44
  today: "today",
@@ -142,10 +116,9 @@ var TimeDisplay = ({
142
116
  } else {
143
117
  fullString = `${date.getDate()}. ${monthToTranslation[date.getMonth()]} ${date.getFullYear()}`;
144
118
  }
145
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: fullString });
119
+ return /* @__PURE__ */ jsx2("span", { children: fullString });
146
120
  };
147
- // Annotate the CommonJS export names for ESM import in node:
148
- 0 && (module.exports = {
121
+ export {
149
122
  TimeDisplay
150
- });
151
- //# sourceMappingURL=TimeDisplay.cjs.map
123
+ };
124
+ //# sourceMappingURL=TimeDisplay.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/localization/LanguageProvider.tsx","../../../src/hooks/useLocalStorage.ts","../../../src/localization/util.ts","../../../src/localization/useTranslation.ts","../../../src/components/date/TimeDisplay.tsx"],"sourcesContent":["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","import type { Language } from '../../localization/util'\nimport type { PropsForTranslation } from '../../localization/useTranslation'\nimport { useTranslation } from '../../localization/useTranslation'\n\ntype TimeDisplayTranslation = {\n today: string,\n yesterday: string,\n tomorrow: string,\n inDays: (days: number) => string,\n agoDays: (days: number) => string,\n january: string,\n february: string,\n march: string,\n april: string,\n may: string,\n june: string,\n july: string,\n august: string,\n september: string,\n october: string,\n november: string,\n december: string,\n}\n\nconst defaultTimeDisplayTranslations: Record<Language, TimeDisplayTranslation> = {\n en: {\n today: 'today',\n yesterday: 'yesterday',\n tomorrow: 'tomorrow',\n inDays: (days: number) => `in ${days} days`,\n agoDays: (days: number) => `${days} days ago`,\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December'\n },\n de: {\n today: 'heute',\n yesterday: 'gestern',\n tomorrow: 'morgen',\n inDays: (days: number) => `in ${days} Tagen`,\n agoDays: (days: number) => `vor ${days} Tagen`,\n january: 'Januar',\n february: 'Februar',\n march: 'März',\n april: 'April',\n may: 'Mai',\n june: 'Juni',\n july: 'Juli',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December'\n }\n}\n\ntype TimeDisplayMode = 'daysFromToday' | 'date'\n\ntype TimeDisplayProps = {\n date: Date,\n mode?: TimeDisplayMode,\n}\n\n/**\n * A Component for displaying time and dates in a unified fashion\n */\nexport const TimeDisplay = ({\n overwriteTranslation,\n date,\n mode = 'daysFromToday'\n }: PropsForTranslation<TimeDisplayTranslation, TimeDisplayProps>) => {\n const translation = useTranslation(defaultTimeDisplayTranslations, overwriteTranslation)\n const difference = new Date().setHours(0, 0, 0, 0).valueOf() - new Date(date).setHours(0, 0, 0, 0).valueOf()\n const isBefore = difference > 0\n const differenceInDays = Math.floor(Math.abs(difference) / (1000 * 3600 * 24))\n\n let displayString\n if (differenceInDays === 0) {\n displayString = translation.today\n } else if (differenceInDays === 1) {\n displayString = isBefore ? translation.yesterday : translation.tomorrow\n } else {\n displayString = isBefore ? translation.agoDays(differenceInDays) : translation.inDays(differenceInDays)\n }\n const monthToTranslation: { [key: number]: string } = {\n 0: translation.january,\n 1: translation.february,\n 2: translation.march,\n 3: translation.april,\n 4: translation.may,\n 5: translation.june,\n 6: translation.july,\n 7: translation.august,\n 8: translation.september,\n 9: translation.october,\n 10: translation.november,\n 11: translation.december\n } as const\n\n let fullString\n if (mode === 'daysFromToday') {\n fullString = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')} - ${displayString}`\n } else {\n fullString = `${date.getDate()}. ${monthToTranslation[date.getMonth()]} ${date.getFullYear()}`\n }\n\n return (\n <span>\n {fullString}\n </span>\n )\n}\n"],"mappings":"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","names":["useEffect","useState","jsx"]}
@@ -1,6 +1,40 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
1
29
  // src/components/date/TimePicker.tsx
2
- import { useEffect, useRef, useState } from "react";
3
- import { Scrollbars } from "react-custom-scrollbars-2";
30
+ var TimePicker_exports = {};
31
+ __export(TimePicker_exports, {
32
+ TimePicker: () => TimePicker,
33
+ TimePickerUncontrolled: () => TimePickerUncontrolled
34
+ });
35
+ module.exports = __toCommonJS(TimePicker_exports);
36
+ var import_react = require("react");
37
+ var import_react_custom_scrollbars_2 = require("react-custom-scrollbars-2");
4
38
 
5
39
  // src/util/noop.ts
6
40
  var noop = () => void 0;
@@ -22,8 +56,8 @@ var closestMatch = (list, firstCloser) => {
22
56
  };
23
57
 
24
58
  // src/components/date/TimePicker.tsx
25
- import clsx from "clsx";
26
- import { jsx, jsxs } from "react/jsx-runtime";
59
+ var import_clsx = __toESM(require("clsx"));
60
+ var import_jsx_runtime = require("react/jsx-runtime");
27
61
  var TimePicker = ({
28
62
  time = /* @__PURE__ */ new Date(),
29
63
  onChange = noop,
@@ -32,12 +66,12 @@ var TimePicker = ({
32
66
  maxHeight = 300,
33
67
  className = ""
34
68
  }) => {
35
- const minuteRef = useRef(null);
36
- const hourRef = useRef(null);
69
+ const minuteRef = (0, import_react.useRef)(null);
70
+ const hourRef = (0, import_react.useRef)(null);
37
71
  const isPM = time.getHours() >= 11;
38
72
  const hours = is24HourFormat ? range(0, 23) : range(1, 12);
39
73
  let minutes = range(0, 59);
40
- useEffect(() => {
74
+ (0, import_react.useEffect)(() => {
41
75
  const scrollToItem = () => {
42
76
  if (minuteRef.current) {
43
77
  const container = minuteRef.current.parentElement;
@@ -52,7 +86,7 @@ var TimePicker = ({
52
86
  };
53
87
  scrollToItem();
54
88
  }, [minuteRef, minuteRef.current]);
55
- useEffect(() => {
89
+ (0, import_react.useEffect)(() => {
56
90
  const scrollToItem = () => {
57
91
  if (hourRef.current) {
58
92
  const container = hourRef.current.parentElement;
@@ -82,7 +116,7 @@ var TimePicker = ({
82
116
  break;
83
117
  }
84
118
  const closestMinute = closestMatch(minutes, (item1, item2) => Math.abs(item1 - time.getMinutes()) < Math.abs(item2 - time.getMinutes()));
85
- const style = (selected) => clsx(
119
+ const style = (selected) => (0, import_clsx.default)(
86
120
  "chip-full hover:brightness-90 hover:bg-primary hover:text-on-primary rounded-md mr-3",
87
121
  { "bg-primary text-on-primary": selected, "bg-white text-black": !selected }
88
122
  );
@@ -91,10 +125,10 @@ var TimePicker = ({
91
125
  transformer(newDate);
92
126
  onChange(newDate);
93
127
  };
94
- return /* @__PURE__ */ jsxs("div", { className: clsx("row gap-x-2 w-fit min-w-[150px] select-none", className), children: [
95
- /* @__PURE__ */ jsx(Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx("div", { className: "col gap-y-1 h-full", children: hours.map((hour) => {
128
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_clsx.default)("row gap-x-2 w-fit min-w-[150px] select-none", className), children: [
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_custom_scrollbars_2.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "col gap-y-1 h-full", children: hours.map((hour) => {
96
130
  const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0);
97
- return /* @__PURE__ */ jsx(
131
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
98
132
  "button",
99
133
  {
100
134
  ref: currentHour ? hourRef : void 0,
@@ -105,9 +139,9 @@ var TimePicker = ({
105
139
  hour
106
140
  );
107
141
  }) }) }),
108
- /* @__PURE__ */ jsx(Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx("div", { className: "col gap-y-1 h-full", children: minutes.map((minute) => {
142
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_custom_scrollbars_2.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "col gap-y-1 h-full", children: minutes.map((minute) => {
109
143
  const currentMinute = minute === closestMinute;
110
- return /* @__PURE__ */ jsx(
144
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
111
145
  "button",
112
146
  {
113
147
  ref: currentMinute ? minuteRef : void 0,
@@ -118,8 +152,8 @@ var TimePicker = ({
118
152
  minute + minuteIncrement
119
153
  );
120
154
  }) }) }),
121
- !is24HourFormat && /* @__PURE__ */ jsxs("div", { className: "col gap-y-1", children: [
122
- /* @__PURE__ */ jsx(
155
+ !is24HourFormat && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "col gap-y-1", children: [
156
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
123
157
  "button",
124
158
  {
125
159
  className: style(!isPM),
@@ -127,7 +161,7 @@ var TimePicker = ({
127
161
  children: "AM"
128
162
  }
129
163
  ),
130
- /* @__PURE__ */ jsx(
164
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
131
165
  "button",
132
166
  {
133
167
  className: style(isPM),
@@ -143,9 +177,9 @@ var TimePickerUncontrolled = ({
143
177
  onChange = noop,
144
178
  ...props
145
179
  }) => {
146
- const [value, setValue] = useState(time);
147
- useEffect(() => setValue(time), [time]);
148
- return /* @__PURE__ */ jsx(
180
+ const [value, setValue] = (0, import_react.useState)(time);
181
+ (0, import_react.useEffect)(() => setValue(time), [time]);
182
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
149
183
  TimePicker,
150
184
  {
151
185
  ...props,
@@ -157,8 +191,9 @@ var TimePickerUncontrolled = ({
157
191
  }
158
192
  );
159
193
  };
160
- export {
194
+ // Annotate the CommonJS export names for ESM import in node:
195
+ 0 && (module.exports = {
161
196
  TimePicker,
162
197
  TimePickerUncontrolled
163
- };
198
+ });
164
199
  //# sourceMappingURL=TimePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/date/TimePicker.tsx","../../../src/util/noop.ts","../../../src/util/array.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Scrollbars } from 'react-custom-scrollbars-2'\nimport { noop } from '@/util/noop'\nimport { closestMatch, range } from '@/util/array'\nimport clsx from 'clsx'\n\ntype MinuteIncrement = '1min' | '5min' | '10min' | '15min' | '30min'\n\nexport type TimePickerProps = {\n time?: Date,\n onChange?: (time: Date) => void,\n is24HourFormat?: boolean,\n minuteIncrement?: MinuteIncrement,\n maxHeight?: number,\n className?: string,\n}\n\nexport const TimePicker = ({\n time = new Date(),\n onChange = noop,\n is24HourFormat = true,\n minuteIncrement = '5min',\n maxHeight = 300,\n className = ''\n }: TimePickerProps) => {\n const minuteRef = useRef<HTMLButtonElement>(null)\n const hourRef = useRef<HTMLButtonElement>(null)\n\n const isPM = time.getHours() >= 11\n const hours = is24HourFormat ? range(0, 23) : range(1, 12)\n let minutes = range(0, 59)\n\n useEffect(() => {\n const scrollToItem = () => {\n if (minuteRef.current) {\n const container = minuteRef.current.parentElement!\n\n const hasOverflow = container.scrollHeight > maxHeight\n if (hasOverflow) {\n minuteRef.current.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n })\n }\n }\n }\n scrollToItem()\n }, [minuteRef, minuteRef.current]) // eslint-disable-line\n\n useEffect(() => {\n const scrollToItem = () => {\n if (hourRef.current) {\n const container = hourRef.current.parentElement!\n\n const hasOverflow = container.scrollHeight > maxHeight\n if (hasOverflow) {\n hourRef.current.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n })\n }\n }\n }\n scrollToItem()\n }, [hourRef, hourRef.current]) // eslint-disable-line\n\n switch (minuteIncrement) {\n case '5min':\n minutes = minutes.filter(value => value % 5 === 0)\n break\n case '10min':\n minutes = minutes.filter(value => value % 10 === 0)\n break\n case '15min':\n minutes = minutes.filter(value => value % 15 === 0)\n break\n case '30min':\n minutes = minutes.filter(value => value % 30 === 0)\n break\n }\n\n const closestMinute = closestMatch(minutes, (item1, item2) => Math.abs(item1 - time.getMinutes()) < Math.abs(item2 - time.getMinutes()))\n\n const style = (selected: boolean) => clsx('chip-full hover:brightness-90 hover:bg-primary hover:text-on-primary rounded-md mr-3',\n { 'bg-primary text-on-primary': selected, 'bg-white text-black': !selected })\n\n const onChangeWrapper = (transformer: (newDate: Date) => void) => {\n const newDate = new Date(time)\n transformer(newDate)\n onChange(newDate)\n }\n\n return (\n <div className={clsx('row gap-x-2 w-fit min-w-[150px] select-none', className)}>\n <Scrollbars autoHeight autoHeightMax={maxHeight} style={{ height: '100%' }}>\n <div className=\"col gap-y-1 h-full\">\n {hours.map(hour => {\n const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0)\n return (\n <button\n key={hour}\n ref={currentHour ? hourRef : undefined}\n className={style(currentHour)}\n onClick={() => onChangeWrapper(newDate => newDate.setHours(hour + (!is24HourFormat && isPM ? 12 : 0)))}\n >\n {hour.toString().padStart(2, '0')}\n </button>\n )\n })}\n </div>\n </Scrollbars>\n <Scrollbars autoHeight autoHeightMax={maxHeight} style={{ height: '100%' }}>\n <div className=\"col gap-y-1 h-full\">\n {minutes.map(minute => {\n const currentMinute = minute === closestMinute\n return (\n <button\n key={minute + minuteIncrement} // minute increment so that scroll works\n ref={currentMinute ? minuteRef : undefined}\n className={style(currentMinute)}\n onClick={() => onChangeWrapper(newDate => newDate.setMinutes(minute))}\n >\n {minute.toString().padStart(2, '0')}\n </button>\n )\n })}\n </div>\n </Scrollbars>\n {!is24HourFormat && (\n <div className=\"col gap-y-1\">\n <button\n className={style(!isPM)}\n onClick={() => onChangeWrapper(newDate => isPM && newDate.setHours(newDate.getHours() - 12))}\n >\n AM\n </button>\n <button\n className={style(isPM)}\n onClick={() => onChangeWrapper(newDate => !isPM && newDate.setHours(newDate.getHours() + 12))}\n >\n PM\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport const TimePickerUncontrolled = ({\n time,\n onChange = noop,\n ...props\n }: TimePickerProps) => {\n const [value, setValue] = useState(time)\n useEffect(() => setValue(time), [time])\n\n return (\n <TimePicker\n {...props}\n time={value}\n onChange={time1 => {\n setValue(time1)\n onChange(time1)\n }}\n />\n )\n}\n","export const noop = () => undefined\n","export const equalSizeGroups = <T>(array: T[], groupSize: number): T[][] => {\n if (groupSize <= 0) {\n console.warn(`group size should be greater than 0: groupSize = ${groupSize}`)\n return [[...array]]\n }\n\n const groups = []\n for (let i = 0; i < array.length; i += groupSize) {\n groups.push(array.slice(i, Math.min(i + groupSize, array.length)))\n }\n return groups\n}\n\n/**\n * @param start\n * @param end inclusive\n * @param allowEmptyRange Whether the range can be defined empty via end < start\n */\nexport const range = (start: number, end: number, allowEmptyRange: boolean = false): number[] => {\n if (end < start) {\n if (!allowEmptyRange) {\n console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set allowEmptyRange to true`)\n }\n return []\n }\n return Array.from({ length: end - start + 1 }, (_, index) => index + start)\n}\n\n/** Finds the closest match\n * @param list The list of all possible matches\n * @param firstCloser Return whether item1 is closer than item2\n */\nexport const closestMatch = <T>(list: T[], firstCloser: (item1: T, item2: T) => boolean) => {\n return list.reduce((item1, item2) => {\n return firstCloser(item1, item2) ? item1 : item2\n })\n}\n\n/**\n * returns the item in middle of a list and its neighbours before and after\n * e.g. [1,2,3,4,5,6] for item = 1 would return [5,6,1,2,3]\n */\nexport const getNeighbours = <T>(list: T[], item: T, neighbourDistance: number = 2) => {\n const index = list.indexOf(item)\n const totalItems = neighbourDistance * 2 + 1\n if (list.length < totalItems) {\n console.warn('List is to short')\n return list\n }\n\n if (index === -1) {\n console.error('item not found in list')\n return list.splice(0, totalItems)\n }\n\n let start = index - neighbourDistance\n if (start < 0) {\n start += list.length\n }\n const end = (index + neighbourDistance + 1) % list.length\n\n const result: T[] = []\n let ignoreOnce = list.length === totalItems\n for (let i = start; i !== end || ignoreOnce; i = (i + 1) % list.length) {\n result.push(list[i]!)\n if (end === i && ignoreOnce) {\n ignoreOnce = false\n }\n }\n return result\n}\n\nexport const createLoopingListWithIndex = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n if (length < 0) {\n console.warn(`createLoopingList: length must be >= 0, given ${length}`)\n } else if (length === 0) {\n length = list.length\n }\n\n const returnList: [number, T][] = []\n\n if (forwards) {\n for (let i = startIndex; returnList.length < length; i = (i + 1) % list.length) {\n returnList.push([i, list[i]!])\n }\n } else {\n for (let i = startIndex; returnList.length < length; i = i === 0 ? i = list.length - 1 : i - 1) {\n returnList.push([i, list[i]!])\n }\n }\n\n return returnList\n}\n\nexport const createLoopingList = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n return createLoopingListWithIndex(list, startIndex, length, forwards).map(([_, item]) => item)\n}\n\nexport const ArrayUtil = {\n unique: <T>(list: T[]): T[] => {\n const seen = new Set<T>()\n return list.filter((item) => {\n if (seen.has(item)) {\n return false\n }\n seen.add(item)\n return true\n })\n },\n\n difference: <T>(list: T[], removeList: T[]): T[] => {\n const remove = new Set<T>(removeList)\n return list.filter((item) => !remove.has(item))\n }\n}\n"],"mappings":";AAAA,SAAS,WAAW,QAAQ,gBAAgB;AAC5C,SAAS,kBAAkB;;;ACDpB,IAAM,OAAO,MAAM;;;ACkBnB,IAAM,QAAQ,CAAC,OAAe,KAAa,kBAA2B,UAAoB;AAC/F,MAAI,MAAM,OAAO;AACf,QAAI,CAAC,iBAAiB;AACpB,cAAQ,KAAK,eAAe,GAAG,cAAc,KAAK,6DAA6D;AAAA,IACjH;AACA,WAAO,CAAC;AAAA,EACV;AACA,SAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,QAAQ,EAAE,GAAG,CAAC,GAAG,UAAU,QAAQ,KAAK;AAC5E;AAMO,IAAM,eAAe,CAAI,MAAW,gBAAiD;AAC1F,SAAO,KAAK,OAAO,CAAC,OAAO,UAAU;AACnC,WAAO,YAAY,OAAO,KAAK,IAAI,QAAQ;AAAA,EAC7C,CAAC;AACH;;;AFhCA,OAAO,UAAU;AA+FH,cA8BN,YA9BM;AAlFP,IAAM,aAAa,CAAC;AAAA,EACE,OAAO,oBAAI,KAAK;AAAA,EAChB,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,YAAY;AACd,MAAuB;AAChD,QAAM,YAAY,OAA0B,IAAI;AAChD,QAAM,UAAU,OAA0B,IAAI;AAE9C,QAAM,OAAO,KAAK,SAAS,KAAK;AAChC,QAAM,QAAQ,iBAAiB,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE;AACzD,MAAI,UAAU,MAAM,GAAG,EAAE;AAEzB,YAAU,MAAM;AACd,UAAM,eAAe,MAAM;AACzB,UAAI,UAAU,SAAS;AACrB,cAAM,YAAY,UAAU,QAAQ;AAEpC,cAAM,cAAc,UAAU,eAAe;AAC7C,YAAI,aAAa;AACf,oBAAU,QAAQ,eAAe;AAAA,YAC/B,UAAU;AAAA,YACV,OAAO;AAAA,UACT,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,iBAAa;AAAA,EACf,GAAG,CAAC,WAAW,UAAU,OAAO,CAAC;AAEjC,YAAU,MAAM;AACd,UAAM,eAAe,MAAM;AACzB,UAAI,QAAQ,SAAS;AACnB,cAAM,YAAY,QAAQ,QAAQ;AAElC,cAAM,cAAc,UAAU,eAAe;AAC7C,YAAI,aAAa;AACf,kBAAQ,QAAQ,eAAe;AAAA,YAC7B,UAAU;AAAA,YACV,OAAO;AAAA,UACT,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,iBAAa;AAAA,EACf,GAAG,CAAC,SAAS,QAAQ,OAAO,CAAC;AAE7B,UAAQ,iBAAiB;AAAA,IACvB,KAAK;AACH,gBAAU,QAAQ,OAAO,WAAS,QAAQ,MAAM,CAAC;AACjD;AAAA,IACF,KAAK;AACH,gBAAU,QAAQ,OAAO,WAAS,QAAQ,OAAO,CAAC;AAClD;AAAA,IACF,KAAK;AACH,gBAAU,QAAQ,OAAO,WAAS,QAAQ,OAAO,CAAC;AAClD;AAAA,IACF,KAAK;AACH,gBAAU,QAAQ,OAAO,WAAS,QAAQ,OAAO,CAAC;AAClD;AAAA,EACJ;AAEA,QAAM,gBAAgB,aAAa,SAAS,CAAC,OAAO,UAAU,KAAK,IAAI,QAAQ,KAAK,WAAW,CAAC,IAAI,KAAK,IAAI,QAAQ,KAAK,WAAW,CAAC,CAAC;AAEvI,QAAM,QAAQ,CAAC,aAAsB;AAAA,IAAK;AAAA,IACxC,EAAE,8BAA8B,UAAU,uBAAuB,CAAC,SAAS;AAAA,EAAC;AAE9E,QAAM,kBAAkB,CAAC,gBAAyC;AAChE,UAAM,UAAU,IAAI,KAAK,IAAI;AAC7B,gBAAY,OAAO;AACnB,aAAS,OAAO;AAAA,EAClB;AAEA,SACE,qBAAC,SAAI,WAAW,KAAK,+CAA+C,SAAS,GAC3E;AAAA,wBAAC,cAAW,YAAU,MAAC,eAAe,WAAW,OAAO,EAAE,QAAQ,OAAO,GACvE,8BAAC,SAAI,WAAU,sBACZ,gBAAM,IAAI,UAAQ;AACjB,YAAM,cAAc,SAAS,KAAK,SAAS,KAAK,CAAC,kBAAkB,OAAO,KAAK;AAC/E,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,KAAK,cAAc,UAAU;AAAA,UAC7B,WAAW,MAAM,WAAW;AAAA,UAC5B,SAAS,MAAM,gBAAgB,aAAW,QAAQ,SAAS,QAAQ,CAAC,kBAAkB,OAAO,KAAK,EAAE,CAAC;AAAA,UAEpG,eAAK,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA;AAAA,QAL3B;AAAA,MAMP;AAAA,IAEJ,CAAC,GACH,GACF;AAAA,IACA,oBAAC,cAAW,YAAU,MAAC,eAAe,WAAW,OAAO,EAAE,QAAQ,OAAO,GACvE,8BAAC,SAAI,WAAU,sBACZ,kBAAQ,IAAI,YAAU;AACrB,YAAM,gBAAgB,WAAW;AACjC,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,KAAK,gBAAgB,YAAY;AAAA,UACjC,WAAW,MAAM,aAAa;AAAA,UAC9B,SAAS,MAAM,gBAAgB,aAAW,QAAQ,WAAW,MAAM,CAAC;AAAA,UAEnE,iBAAO,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA;AAAA,QAL7B,SAAS;AAAA,MAMhB;AAAA,IAEJ,CAAC,GACH,GACF;AAAA,IACC,CAAC,kBACA,qBAAC,SAAI,WAAU,eACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,MAAM,CAAC,IAAI;AAAA,UACtB,SAAS,MAAM,gBAAgB,aAAW,QAAQ,QAAQ,SAAS,QAAQ,SAAS,IAAI,EAAE,CAAC;AAAA,UAC5F;AAAA;AAAA,MAED;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,MAAM,IAAI;AAAA,UACrB,SAAS,MAAM,gBAAgB,aAAW,CAAC,QAAQ,QAAQ,SAAS,QAAQ,SAAS,IAAI,EAAE,CAAC;AAAA,UAC7F;AAAA;AAAA,MAED;AAAA,OACF;AAAA,KAEJ;AAEJ;AAEO,IAAM,yBAAyB,CAAC;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAAuB;AAC1D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AACvC,YAAU,MAAM,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC;AAEtC,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,MAAM;AAAA,MACN,UAAU,WAAS;AACjB,iBAAS,KAAK;AACd,iBAAS,KAAK;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/date/TimePicker.tsx","../../../src/util/noop.ts","../../../src/util/array.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Scrollbars } from 'react-custom-scrollbars-2'\nimport { noop } from '../../util/noop'\nimport { closestMatch, range } from '../../util/array'\nimport clsx from 'clsx'\n\ntype MinuteIncrement = '1min' | '5min' | '10min' | '15min' | '30min'\n\nexport type TimePickerProps = {\n time?: Date,\n onChange?: (time: Date) => void,\n is24HourFormat?: boolean,\n minuteIncrement?: MinuteIncrement,\n maxHeight?: number,\n className?: string,\n}\n\nexport const TimePicker = ({\n time = new Date(),\n onChange = noop,\n is24HourFormat = true,\n minuteIncrement = '5min',\n maxHeight = 300,\n className = ''\n }: TimePickerProps) => {\n const minuteRef = useRef<HTMLButtonElement>(null)\n const hourRef = useRef<HTMLButtonElement>(null)\n\n const isPM = time.getHours() >= 11\n const hours = is24HourFormat ? range(0, 23) : range(1, 12)\n let minutes = range(0, 59)\n\n useEffect(() => {\n const scrollToItem = () => {\n if (minuteRef.current) {\n const container = minuteRef.current.parentElement!\n\n const hasOverflow = container.scrollHeight > maxHeight\n if (hasOverflow) {\n minuteRef.current.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n })\n }\n }\n }\n scrollToItem()\n }, [minuteRef, minuteRef.current]) // eslint-disable-line\n\n useEffect(() => {\n const scrollToItem = () => {\n if (hourRef.current) {\n const container = hourRef.current.parentElement!\n\n const hasOverflow = container.scrollHeight > maxHeight\n if (hasOverflow) {\n hourRef.current.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n })\n }\n }\n }\n scrollToItem()\n }, [hourRef, hourRef.current]) // eslint-disable-line\n\n switch (minuteIncrement) {\n case '5min':\n minutes = minutes.filter(value => value % 5 === 0)\n break\n case '10min':\n minutes = minutes.filter(value => value % 10 === 0)\n break\n case '15min':\n minutes = minutes.filter(value => value % 15 === 0)\n break\n case '30min':\n minutes = minutes.filter(value => value % 30 === 0)\n break\n }\n\n const closestMinute = closestMatch(minutes, (item1, item2) => Math.abs(item1 - time.getMinutes()) < Math.abs(item2 - time.getMinutes()))\n\n const style = (selected: boolean) => clsx('chip-full hover:brightness-90 hover:bg-primary hover:text-on-primary rounded-md mr-3',\n { 'bg-primary text-on-primary': selected, 'bg-white text-black': !selected })\n\n const onChangeWrapper = (transformer: (newDate: Date) => void) => {\n const newDate = new Date(time)\n transformer(newDate)\n onChange(newDate)\n }\n\n return (\n <div className={clsx('row gap-x-2 w-fit min-w-[150px] select-none', className)}>\n <Scrollbars autoHeight autoHeightMax={maxHeight} style={{ height: '100%' }}>\n <div className=\"col gap-y-1 h-full\">\n {hours.map(hour => {\n const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0)\n return (\n <button\n key={hour}\n ref={currentHour ? hourRef : undefined}\n className={style(currentHour)}\n onClick={() => onChangeWrapper(newDate => newDate.setHours(hour + (!is24HourFormat && isPM ? 12 : 0)))}\n >\n {hour.toString().padStart(2, '0')}\n </button>\n )\n })}\n </div>\n </Scrollbars>\n <Scrollbars autoHeight autoHeightMax={maxHeight} style={{ height: '100%' }}>\n <div className=\"col gap-y-1 h-full\">\n {minutes.map(minute => {\n const currentMinute = minute === closestMinute\n return (\n <button\n key={minute + minuteIncrement} // minute increment so that scroll works\n ref={currentMinute ? minuteRef : undefined}\n className={style(currentMinute)}\n onClick={() => onChangeWrapper(newDate => newDate.setMinutes(minute))}\n >\n {minute.toString().padStart(2, '0')}\n </button>\n )\n })}\n </div>\n </Scrollbars>\n {!is24HourFormat && (\n <div className=\"col gap-y-1\">\n <button\n className={style(!isPM)}\n onClick={() => onChangeWrapper(newDate => isPM && newDate.setHours(newDate.getHours() - 12))}\n >\n AM\n </button>\n <button\n className={style(isPM)}\n onClick={() => onChangeWrapper(newDate => !isPM && newDate.setHours(newDate.getHours() + 12))}\n >\n PM\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport const TimePickerUncontrolled = ({\n time,\n onChange = noop,\n ...props\n }: TimePickerProps) => {\n const [value, setValue] = useState(time)\n useEffect(() => setValue(time), [time])\n\n return (\n <TimePicker\n {...props}\n time={value}\n onChange={time1 => {\n setValue(time1)\n onChange(time1)\n }}\n />\n )\n}\n","export const noop = () => undefined\n","export const equalSizeGroups = <T>(array: T[], groupSize: number): T[][] => {\n if (groupSize <= 0) {\n console.warn(`group size should be greater than 0: groupSize = ${groupSize}`)\n return [[...array]]\n }\n\n const groups = []\n for (let i = 0; i < array.length; i += groupSize) {\n groups.push(array.slice(i, Math.min(i + groupSize, array.length)))\n }\n return groups\n}\n\n/**\n * @param start\n * @param end inclusive\n * @param allowEmptyRange Whether the range can be defined empty via end < start\n */\nexport const range = (start: number, end: number, allowEmptyRange: boolean = false): number[] => {\n if (end < start) {\n if (!allowEmptyRange) {\n console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set allowEmptyRange to true`)\n }\n return []\n }\n return Array.from({ length: end - start + 1 }, (_, index) => index + start)\n}\n\n/** Finds the closest match\n * @param list The list of all possible matches\n * @param firstCloser Return whether item1 is closer than item2\n */\nexport const closestMatch = <T>(list: T[], firstCloser: (item1: T, item2: T) => boolean) => {\n return list.reduce((item1, item2) => {\n return firstCloser(item1, item2) ? item1 : item2\n })\n}\n\n/**\n * returns the item in middle of a list and its neighbours before and after\n * e.g. [1,2,3,4,5,6] for item = 1 would return [5,6,1,2,3]\n */\nexport const getNeighbours = <T>(list: T[], item: T, neighbourDistance: number = 2) => {\n const index = list.indexOf(item)\n const totalItems = neighbourDistance * 2 + 1\n if (list.length < totalItems) {\n console.warn('List is to short')\n return list\n }\n\n if (index === -1) {\n console.error('item not found in list')\n return list.splice(0, totalItems)\n }\n\n let start = index - neighbourDistance\n if (start < 0) {\n start += list.length\n }\n const end = (index + neighbourDistance + 1) % list.length\n\n const result: T[] = []\n let ignoreOnce = list.length === totalItems\n for (let i = start; i !== end || ignoreOnce; i = (i + 1) % list.length) {\n result.push(list[i]!)\n if (end === i && ignoreOnce) {\n ignoreOnce = false\n }\n }\n return result\n}\n\nexport const createLoopingListWithIndex = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n if (length < 0) {\n console.warn(`createLoopingList: length must be >= 0, given ${length}`)\n } else if (length === 0) {\n length = list.length\n }\n\n const returnList: [number, T][] = []\n\n if (forwards) {\n for (let i = startIndex; returnList.length < length; i = (i + 1) % list.length) {\n returnList.push([i, list[i]!])\n }\n } else {\n for (let i = startIndex; returnList.length < length; i = i === 0 ? i = list.length - 1 : i - 1) {\n returnList.push([i, list[i]!])\n }\n }\n\n return returnList\n}\n\nexport const createLoopingList = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n return createLoopingListWithIndex(list, startIndex, length, forwards).map(([_, item]) => item)\n}\n\nexport const ArrayUtil = {\n unique: <T>(list: T[]): T[] => {\n const seen = new Set<T>()\n return list.filter((item) => {\n if (seen.has(item)) {\n return false\n }\n seen.add(item)\n return true\n })\n },\n\n difference: <T>(list: T[], removeList: T[]): T[] => {\n const remove = new Set<T>(removeList)\n return list.filter((item) => !remove.has(item))\n }\n}\n"],"mappings":"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","names":["clsx"]}
@@ -1,41 +1,6 @@
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/date/TimePicker.tsx
31
- var TimePicker_exports = {};
32
- __export(TimePicker_exports, {
33
- TimePicker: () => TimePicker,
34
- TimePickerUncontrolled: () => TimePickerUncontrolled
35
- });
36
- module.exports = __toCommonJS(TimePicker_exports);
37
- var import_react = require("react");
38
- var import_react_custom_scrollbars_2 = require("react-custom-scrollbars-2");
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { Scrollbars } from "react-custom-scrollbars-2";
39
4
 
40
5
  // src/util/noop.ts
41
6
  var noop = () => void 0;
@@ -57,8 +22,8 @@ var closestMatch = (list, firstCloser) => {
57
22
  };
58
23
 
59
24
  // src/components/date/TimePicker.tsx
60
- var import_clsx = __toESM(require("clsx"), 1);
61
- var import_jsx_runtime = require("react/jsx-runtime");
25
+ import clsx from "clsx";
26
+ import { jsx, jsxs } from "react/jsx-runtime";
62
27
  var TimePicker = ({
63
28
  time = /* @__PURE__ */ new Date(),
64
29
  onChange = noop,
@@ -67,12 +32,12 @@ var TimePicker = ({
67
32
  maxHeight = 300,
68
33
  className = ""
69
34
  }) => {
70
- const minuteRef = (0, import_react.useRef)(null);
71
- const hourRef = (0, import_react.useRef)(null);
35
+ const minuteRef = useRef(null);
36
+ const hourRef = useRef(null);
72
37
  const isPM = time.getHours() >= 11;
73
38
  const hours = is24HourFormat ? range(0, 23) : range(1, 12);
74
39
  let minutes = range(0, 59);
75
- (0, import_react.useEffect)(() => {
40
+ useEffect(() => {
76
41
  const scrollToItem = () => {
77
42
  if (minuteRef.current) {
78
43
  const container = minuteRef.current.parentElement;
@@ -87,7 +52,7 @@ var TimePicker = ({
87
52
  };
88
53
  scrollToItem();
89
54
  }, [minuteRef, minuteRef.current]);
90
- (0, import_react.useEffect)(() => {
55
+ useEffect(() => {
91
56
  const scrollToItem = () => {
92
57
  if (hourRef.current) {
93
58
  const container = hourRef.current.parentElement;
@@ -117,7 +82,7 @@ var TimePicker = ({
117
82
  break;
118
83
  }
119
84
  const closestMinute = closestMatch(minutes, (item1, item2) => Math.abs(item1 - time.getMinutes()) < Math.abs(item2 - time.getMinutes()));
120
- const style = (selected) => (0, import_clsx.default)(
85
+ const style = (selected) => clsx(
121
86
  "chip-full hover:brightness-90 hover:bg-primary hover:text-on-primary rounded-md mr-3",
122
87
  { "bg-primary text-on-primary": selected, "bg-white text-black": !selected }
123
88
  );
@@ -126,10 +91,10 @@ var TimePicker = ({
126
91
  transformer(newDate);
127
92
  onChange(newDate);
128
93
  };
129
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_clsx.default)("row gap-x-2 w-fit min-w-[150px] select-none", className), children: [
130
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_custom_scrollbars_2.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "col gap-y-1 h-full", children: hours.map((hour) => {
94
+ return /* @__PURE__ */ jsxs("div", { className: clsx("row gap-x-2 w-fit min-w-[150px] select-none", className), children: [
95
+ /* @__PURE__ */ jsx(Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx("div", { className: "col gap-y-1 h-full", children: hours.map((hour) => {
131
96
  const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0);
132
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
97
+ return /* @__PURE__ */ jsx(
133
98
  "button",
134
99
  {
135
100
  ref: currentHour ? hourRef : void 0,
@@ -140,9 +105,9 @@ var TimePicker = ({
140
105
  hour
141
106
  );
142
107
  }) }) }),
143
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_custom_scrollbars_2.Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "col gap-y-1 h-full", children: minutes.map((minute) => {
108
+ /* @__PURE__ */ jsx(Scrollbars, { autoHeight: true, autoHeightMax: maxHeight, style: { height: "100%" }, children: /* @__PURE__ */ jsx("div", { className: "col gap-y-1 h-full", children: minutes.map((minute) => {
144
109
  const currentMinute = minute === closestMinute;
145
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
110
+ return /* @__PURE__ */ jsx(
146
111
  "button",
147
112
  {
148
113
  ref: currentMinute ? minuteRef : void 0,
@@ -153,8 +118,8 @@ var TimePicker = ({
153
118
  minute + minuteIncrement
154
119
  );
155
120
  }) }) }),
156
- !is24HourFormat && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "col gap-y-1", children: [
157
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
121
+ !is24HourFormat && /* @__PURE__ */ jsxs("div", { className: "col gap-y-1", children: [
122
+ /* @__PURE__ */ jsx(
158
123
  "button",
159
124
  {
160
125
  className: style(!isPM),
@@ -162,7 +127,7 @@ var TimePicker = ({
162
127
  children: "AM"
163
128
  }
164
129
  ),
165
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
130
+ /* @__PURE__ */ jsx(
166
131
  "button",
167
132
  {
168
133
  className: style(isPM),
@@ -178,9 +143,9 @@ var TimePickerUncontrolled = ({
178
143
  onChange = noop,
179
144
  ...props
180
145
  }) => {
181
- const [value, setValue] = (0, import_react.useState)(time);
182
- (0, import_react.useEffect)(() => setValue(time), [time]);
183
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
146
+ const [value, setValue] = useState(time);
147
+ useEffect(() => setValue(time), [time]);
148
+ return /* @__PURE__ */ jsx(
184
149
  TimePicker,
185
150
  {
186
151
  ...props,
@@ -192,9 +157,8 @@ var TimePickerUncontrolled = ({
192
157
  }
193
158
  );
194
159
  };
195
- // Annotate the CommonJS export names for ESM import in node:
196
- 0 && (module.exports = {
160
+ export {
197
161
  TimePicker,
198
162
  TimePickerUncontrolled
199
- });
200
- //# sourceMappingURL=TimePicker.cjs.map
163
+ };
164
+ //# sourceMappingURL=TimePicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/date/TimePicker.tsx","../../../src/util/noop.ts","../../../src/util/array.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Scrollbars } from 'react-custom-scrollbars-2'\nimport { noop } from '../../util/noop'\nimport { closestMatch, range } from '../../util/array'\nimport clsx from 'clsx'\n\ntype MinuteIncrement = '1min' | '5min' | '10min' | '15min' | '30min'\n\nexport type TimePickerProps = {\n time?: Date,\n onChange?: (time: Date) => void,\n is24HourFormat?: boolean,\n minuteIncrement?: MinuteIncrement,\n maxHeight?: number,\n className?: string,\n}\n\nexport const TimePicker = ({\n time = new Date(),\n onChange = noop,\n is24HourFormat = true,\n minuteIncrement = '5min',\n maxHeight = 300,\n className = ''\n }: TimePickerProps) => {\n const minuteRef = useRef<HTMLButtonElement>(null)\n const hourRef = useRef<HTMLButtonElement>(null)\n\n const isPM = time.getHours() >= 11\n const hours = is24HourFormat ? range(0, 23) : range(1, 12)\n let minutes = range(0, 59)\n\n useEffect(() => {\n const scrollToItem = () => {\n if (minuteRef.current) {\n const container = minuteRef.current.parentElement!\n\n const hasOverflow = container.scrollHeight > maxHeight\n if (hasOverflow) {\n minuteRef.current.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n })\n }\n }\n }\n scrollToItem()\n }, [minuteRef, minuteRef.current]) // eslint-disable-line\n\n useEffect(() => {\n const scrollToItem = () => {\n if (hourRef.current) {\n const container = hourRef.current.parentElement!\n\n const hasOverflow = container.scrollHeight > maxHeight\n if (hasOverflow) {\n hourRef.current.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n })\n }\n }\n }\n scrollToItem()\n }, [hourRef, hourRef.current]) // eslint-disable-line\n\n switch (minuteIncrement) {\n case '5min':\n minutes = minutes.filter(value => value % 5 === 0)\n break\n case '10min':\n minutes = minutes.filter(value => value % 10 === 0)\n break\n case '15min':\n minutes = minutes.filter(value => value % 15 === 0)\n break\n case '30min':\n minutes = minutes.filter(value => value % 30 === 0)\n break\n }\n\n const closestMinute = closestMatch(minutes, (item1, item2) => Math.abs(item1 - time.getMinutes()) < Math.abs(item2 - time.getMinutes()))\n\n const style = (selected: boolean) => clsx('chip-full hover:brightness-90 hover:bg-primary hover:text-on-primary rounded-md mr-3',\n { 'bg-primary text-on-primary': selected, 'bg-white text-black': !selected })\n\n const onChangeWrapper = (transformer: (newDate: Date) => void) => {\n const newDate = new Date(time)\n transformer(newDate)\n onChange(newDate)\n }\n\n return (\n <div className={clsx('row gap-x-2 w-fit min-w-[150px] select-none', className)}>\n <Scrollbars autoHeight autoHeightMax={maxHeight} style={{ height: '100%' }}>\n <div className=\"col gap-y-1 h-full\">\n {hours.map(hour => {\n const currentHour = hour === time.getHours() - (!is24HourFormat && isPM ? 12 : 0)\n return (\n <button\n key={hour}\n ref={currentHour ? hourRef : undefined}\n className={style(currentHour)}\n onClick={() => onChangeWrapper(newDate => newDate.setHours(hour + (!is24HourFormat && isPM ? 12 : 0)))}\n >\n {hour.toString().padStart(2, '0')}\n </button>\n )\n })}\n </div>\n </Scrollbars>\n <Scrollbars autoHeight autoHeightMax={maxHeight} style={{ height: '100%' }}>\n <div className=\"col gap-y-1 h-full\">\n {minutes.map(minute => {\n const currentMinute = minute === closestMinute\n return (\n <button\n key={minute + minuteIncrement} // minute increment so that scroll works\n ref={currentMinute ? minuteRef : undefined}\n className={style(currentMinute)}\n onClick={() => onChangeWrapper(newDate => newDate.setMinutes(minute))}\n >\n {minute.toString().padStart(2, '0')}\n </button>\n )\n })}\n </div>\n </Scrollbars>\n {!is24HourFormat && (\n <div className=\"col gap-y-1\">\n <button\n className={style(!isPM)}\n onClick={() => onChangeWrapper(newDate => isPM && newDate.setHours(newDate.getHours() - 12))}\n >\n AM\n </button>\n <button\n className={style(isPM)}\n onClick={() => onChangeWrapper(newDate => !isPM && newDate.setHours(newDate.getHours() + 12))}\n >\n PM\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport const TimePickerUncontrolled = ({\n time,\n onChange = noop,\n ...props\n }: TimePickerProps) => {\n const [value, setValue] = useState(time)\n useEffect(() => setValue(time), [time])\n\n return (\n <TimePicker\n {...props}\n time={value}\n onChange={time1 => {\n setValue(time1)\n onChange(time1)\n }}\n />\n )\n}\n","export const noop = () => undefined\n","export const equalSizeGroups = <T>(array: T[], groupSize: number): T[][] => {\n if (groupSize <= 0) {\n console.warn(`group size should be greater than 0: groupSize = ${groupSize}`)\n return [[...array]]\n }\n\n const groups = []\n for (let i = 0; i < array.length; i += groupSize) {\n groups.push(array.slice(i, Math.min(i + groupSize, array.length)))\n }\n return groups\n}\n\n/**\n * @param start\n * @param end inclusive\n * @param allowEmptyRange Whether the range can be defined empty via end < start\n */\nexport const range = (start: number, end: number, allowEmptyRange: boolean = false): number[] => {\n if (end < start) {\n if (!allowEmptyRange) {\n console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set allowEmptyRange to true`)\n }\n return []\n }\n return Array.from({ length: end - start + 1 }, (_, index) => index + start)\n}\n\n/** Finds the closest match\n * @param list The list of all possible matches\n * @param firstCloser Return whether item1 is closer than item2\n */\nexport const closestMatch = <T>(list: T[], firstCloser: (item1: T, item2: T) => boolean) => {\n return list.reduce((item1, item2) => {\n return firstCloser(item1, item2) ? item1 : item2\n })\n}\n\n/**\n * returns the item in middle of a list and its neighbours before and after\n * e.g. [1,2,3,4,5,6] for item = 1 would return [5,6,1,2,3]\n */\nexport const getNeighbours = <T>(list: T[], item: T, neighbourDistance: number = 2) => {\n const index = list.indexOf(item)\n const totalItems = neighbourDistance * 2 + 1\n if (list.length < totalItems) {\n console.warn('List is to short')\n return list\n }\n\n if (index === -1) {\n console.error('item not found in list')\n return list.splice(0, totalItems)\n }\n\n let start = index - neighbourDistance\n if (start < 0) {\n start += list.length\n }\n const end = (index + neighbourDistance + 1) % list.length\n\n const result: T[] = []\n let ignoreOnce = list.length === totalItems\n for (let i = start; i !== end || ignoreOnce; i = (i + 1) % list.length) {\n result.push(list[i]!)\n if (end === i && ignoreOnce) {\n ignoreOnce = false\n }\n }\n return result\n}\n\nexport const createLoopingListWithIndex = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n if (length < 0) {\n console.warn(`createLoopingList: length must be >= 0, given ${length}`)\n } else if (length === 0) {\n length = list.length\n }\n\n const returnList: [number, T][] = []\n\n if (forwards) {\n for (let i = startIndex; returnList.length < length; i = (i + 1) % list.length) {\n returnList.push([i, list[i]!])\n }\n } else {\n for (let i = startIndex; returnList.length < length; i = i === 0 ? i = list.length - 1 : i - 1) {\n returnList.push([i, list[i]!])\n }\n }\n\n return returnList\n}\n\nexport const createLoopingList = <T>(list: T[], startIndex: number = 0, length: number = 0, forwards: boolean = true) => {\n return createLoopingListWithIndex(list, startIndex, length, forwards).map(([_, item]) => item)\n}\n\nexport const ArrayUtil = {\n unique: <T>(list: T[]): T[] => {\n const seen = new Set<T>()\n return list.filter((item) => {\n if (seen.has(item)) {\n return false\n }\n seen.add(item)\n return true\n })\n },\n\n difference: <T>(list: T[], removeList: T[]): T[] => {\n const remove = new Set<T>(removeList)\n return list.filter((item) => !remove.has(item))\n }\n}\n"],"mappings":"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","names":[]}
@@ -9,7 +9,7 @@ type YearMonthPickerProps = {
9
9
  maxHeight?: number;
10
10
  showValueOpen?: boolean;
11
11
  };
12
- declare const YearMonthPicker: ({ displayedYearMonth, start, end, onChange, className, maxHeight, showValueOpen }: YearMonthPickerProps) => react_jsx_runtime.JSX.Element | null;
12
+ declare const YearMonthPicker: ({ displayedYearMonth, start, end, onChange, className, maxHeight, showValueOpen }: YearMonthPickerProps) => react_jsx_runtime.JSX.Element;
13
13
  declare const YearMonthPickerUncontrolled: ({ displayedYearMonth, onChange, ...props }: YearMonthPickerProps) => react_jsx_runtime.JSX.Element;
14
14
 
15
15
  export { YearMonthPicker, type YearMonthPickerProps, YearMonthPickerUncontrolled };
@@ -9,7 +9,7 @@ type YearMonthPickerProps = {
9
9
  maxHeight?: number;
10
10
  showValueOpen?: boolean;
11
11
  };
12
- declare const YearMonthPicker: ({ displayedYearMonth, start, end, onChange, className, maxHeight, showValueOpen }: YearMonthPickerProps) => react_jsx_runtime.JSX.Element | null;
12
+ declare const YearMonthPicker: ({ displayedYearMonth, start, end, onChange, className, maxHeight, showValueOpen }: YearMonthPickerProps) => react_jsx_runtime.JSX.Element;
13
13
  declare const YearMonthPickerUncontrolled: ({ displayedYearMonth, onChange, ...props }: YearMonthPickerProps) => react_jsx_runtime.JSX.Element;
14
14
 
15
15
  export { YearMonthPicker, type YearMonthPickerProps, YearMonthPickerUncontrolled };