@helpwave/hightide 0.0.19 → 0.1.1

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 (665) hide show
  1. package/README.md +21 -2
  2. package/dist/coloring/shading.cjs +562 -0
  3. package/dist/coloring/shading.cjs.map +1 -0
  4. package/dist/coloring/{shading.d.mts → shading.d.cts} +1 -1
  5. package/dist/coloring/shading.js +482 -37
  6. package/dist/coloring/shading.js.map +1 -1
  7. package/dist/coloring/types.cjs +31 -0
  8. package/dist/coloring/{types.mjs.map → types.cjs.map} +1 -1
  9. package/dist/coloring/types.js +2 -27
  10. package/dist/coloring/types.js.map +1 -1
  11. package/dist/components/{HelpwaveBadge.js → branding/HelpwaveBadge.cjs} +65 -33
  12. package/dist/components/branding/HelpwaveBadge.cjs.map +1 -0
  13. package/dist/components/branding/HelpwaveBadge.js +123 -0
  14. package/dist/components/branding/HelpwaveBadge.js.map +1 -0
  15. package/dist/components/date/{DatePicker.mjs → DatePicker.cjs} +158 -94
  16. package/dist/components/date/DatePicker.cjs.map +1 -0
  17. package/dist/components/date/{DatePicker.d.mts → DatePicker.d.cts} +7 -8
  18. package/dist/components/date/DatePicker.d.ts +4 -5
  19. package/dist/components/date/DatePicker.js +121 -129
  20. package/dist/components/date/DatePicker.js.map +1 -1
  21. package/dist/components/date/{DayPicker.mjs → DayPicker.cjs} +77 -24
  22. package/dist/components/date/DayPicker.cjs.map +1 -0
  23. package/dist/components/date/{DayPicker.d.mts → DayPicker.d.cts} +3 -3
  24. package/dist/components/date/DayPicker.d.ts +2 -2
  25. package/dist/components/date/DayPicker.js +38 -61
  26. package/dist/components/date/DayPicker.js.map +1 -1
  27. package/dist/components/{TimeDisplay.js → date/TimeDisplay.cjs} +24 -9
  28. package/dist/components/date/TimeDisplay.cjs.map +1 -0
  29. package/dist/components/{TimeDisplay.d.mts → date/TimeDisplay.d.cts} +2 -3
  30. package/dist/components/{TimeDisplay.d.ts → date/TimeDisplay.d.ts} +2 -3
  31. package/dist/components/{TimeDisplay.mjs → date/TimeDisplay.js} +23 -8
  32. package/dist/components/date/TimeDisplay.js.map +1 -0
  33. package/dist/components/date/{TimePicker.mjs → TimePicker.cjs} +62 -26
  34. package/dist/components/date/TimePicker.cjs.map +1 -0
  35. package/dist/components/date/{TimePicker.d.mts → TimePicker.d.cts} +2 -2
  36. package/dist/components/date/TimePicker.d.ts +2 -2
  37. package/dist/components/date/TimePicker.js +25 -61
  38. package/dist/components/date/TimePicker.js.map +1 -1
  39. package/dist/components/date/{YearMonthPicker.mjs → YearMonthPicker.cjs} +93 -42
  40. package/dist/components/date/YearMonthPicker.cjs.map +1 -0
  41. package/dist/components/date/{YearMonthPicker.d.mts → YearMonthPicker.d.cts} +2 -2
  42. package/dist/components/date/YearMonthPicker.d.ts +2 -2
  43. package/dist/components/date/YearMonthPicker.js +56 -77
  44. package/dist/components/date/YearMonthPicker.js.map +1 -1
  45. package/dist/components/dialogs/ConfirmDialog.cjs +509 -0
  46. package/dist/components/dialogs/ConfirmDialog.cjs.map +1 -0
  47. package/dist/components/dialogs/ConfirmDialog.d.cts +37 -0
  48. package/dist/components/dialogs/ConfirmDialog.d.ts +37 -0
  49. package/dist/components/dialogs/ConfirmDialog.js +472 -0
  50. package/dist/components/dialogs/ConfirmDialog.js.map +1 -0
  51. package/dist/components/{AvatarGroup.js → icons-and-geometry/Avatar.cjs} +23 -19
  52. package/dist/components/icons-and-geometry/Avatar.cjs.map +1 -0
  53. package/dist/components/icons-and-geometry/Avatar.d.cts +30 -0
  54. package/dist/components/icons-and-geometry/Avatar.d.ts +30 -0
  55. package/dist/components/{AvatarGroup.mjs → icons-and-geometry/Avatar.js} +13 -10
  56. package/dist/components/icons-and-geometry/Avatar.js.map +1 -0
  57. package/dist/components/{Circle.js → icons-and-geometry/Circle.cjs} +3 -3
  58. package/dist/components/icons-and-geometry/Circle.cjs.map +1 -0
  59. package/dist/components/{Circle.mjs → icons-and-geometry/Circle.js} +2 -2
  60. package/dist/components/icons-and-geometry/Circle.js.map +1 -0
  61. package/dist/components/{icons/Helpwave.js → icons-and-geometry/Helpwave.cjs} +38 -6
  62. package/dist/components/icons-and-geometry/Helpwave.cjs.map +1 -0
  63. package/dist/components/icons-and-geometry/Helpwave.js +75 -0
  64. package/dist/components/icons-and-geometry/Helpwave.js.map +1 -0
  65. package/dist/components/{Ring.js → icons-and-geometry/Ring.cjs} +6 -6
  66. package/dist/components/icons-and-geometry/Ring.cjs.map +1 -0
  67. package/dist/components/{Ring.mjs → icons-and-geometry/Ring.js} +4 -4
  68. package/dist/components/icons-and-geometry/Ring.js.map +1 -0
  69. package/dist/components/{icons/Tag.js → icons-and-geometry/Tag.cjs} +3 -3
  70. package/dist/components/icons-and-geometry/Tag.cjs.map +1 -0
  71. package/dist/components/{icons/Tag.mjs → icons-and-geometry/Tag.js} +2 -2
  72. package/dist/components/icons-and-geometry/Tag.js.map +1 -0
  73. package/dist/components/{BreadCrumb.js → layout-and-navigation/BreadCrumb.cjs} +12 -5
  74. package/dist/components/layout-and-navigation/BreadCrumb.cjs.map +1 -0
  75. package/dist/components/{BreadCrumb.mjs → layout-and-navigation/BreadCrumb.js} +10 -3
  76. package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -0
  77. package/dist/components/{layout/Carousel.js → layout-and-navigation/Carousel.cjs} +4 -4
  78. package/dist/components/layout-and-navigation/Carousel.cjs.map +1 -0
  79. package/dist/components/{layout/Carousel.mjs → layout-and-navigation/Carousel.js} +4 -4
  80. package/dist/components/layout-and-navigation/Carousel.js.map +1 -0
  81. package/dist/components/{ChipList.js → layout-and-navigation/Chip.cjs} +6 -6
  82. package/dist/components/layout-and-navigation/Chip.cjs.map +1 -0
  83. package/dist/components/{ChipList.mjs → layout-and-navigation/Chip.js} +2 -2
  84. package/dist/components/layout-and-navigation/Chip.js.map +1 -0
  85. package/dist/components/{layout/DividerInserter.js → layout-and-navigation/DividerInserter.cjs} +3 -3
  86. package/dist/components/layout-and-navigation/DividerInserter.cjs.map +1 -0
  87. package/dist/components/{layout/DividerInserter.mjs → layout-and-navigation/DividerInserter.js} +2 -2
  88. package/dist/components/layout-and-navigation/DividerInserter.js.map +1 -0
  89. package/dist/components/{Expandable.js → layout-and-navigation/Expandable.cjs} +3 -3
  90. package/dist/components/layout-and-navigation/Expandable.cjs.map +1 -0
  91. package/dist/components/{Expandable.mjs → layout-and-navigation/Expandable.js} +2 -2
  92. package/dist/components/layout-and-navigation/Expandable.js.map +1 -0
  93. package/dist/components/{layout/FAQSection.js → layout-and-navigation/FAQSection.cjs} +7 -7
  94. package/dist/components/layout-and-navigation/FAQSection.cjs.map +1 -0
  95. package/dist/components/{layout/FAQSection.d.mts → layout-and-navigation/FAQSection.d.cts} +1 -1
  96. package/dist/components/{layout → layout-and-navigation}/FAQSection.d.ts +1 -1
  97. package/dist/components/{layout/FAQSection.mjs → layout-and-navigation/FAQSection.js} +5 -5
  98. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -0
  99. package/dist/components/{MarkdownInterpreter.js → layout-and-navigation/MarkdownInterpreter.cjs} +2 -2
  100. package/dist/components/layout-and-navigation/MarkdownInterpreter.cjs.map +1 -0
  101. package/dist/components/{MarkdownInterpreter.mjs → layout-and-navigation/MarkdownInterpreter.js} +2 -2
  102. package/dist/components/layout-and-navigation/MarkdownInterpreter.js.map +1 -0
  103. package/dist/components/layout-and-navigation/Overlay.cjs +460 -0
  104. package/dist/components/layout-and-navigation/Overlay.cjs.map +1 -0
  105. package/dist/components/layout-and-navigation/Overlay.d.cts +68 -0
  106. package/dist/components/layout-and-navigation/Overlay.d.ts +68 -0
  107. package/dist/components/layout-and-navigation/Overlay.js +422 -0
  108. package/dist/components/layout-and-navigation/Overlay.js.map +1 -0
  109. package/dist/components/{Pagination.js → layout-and-navigation/Pagination.cjs} +25 -10
  110. package/dist/components/layout-and-navigation/Pagination.cjs.map +1 -0
  111. package/dist/components/{Pagination.d.mts → layout-and-navigation/Pagination.d.cts} +2 -3
  112. package/dist/components/{Pagination.d.ts → layout-and-navigation/Pagination.d.ts} +2 -3
  113. package/dist/components/{Pagination.mjs → layout-and-navigation/Pagination.js} +25 -10
  114. package/dist/components/layout-and-navigation/Pagination.js.map +1 -0
  115. package/dist/components/{SearchableList.js → layout-and-navigation/SearchableList.cjs} +51 -34
  116. package/dist/components/layout-and-navigation/SearchableList.cjs.map +1 -0
  117. package/dist/components/{SearchableList.d.mts → layout-and-navigation/SearchableList.d.cts} +2 -2
  118. package/dist/components/{SearchableList.d.ts → layout-and-navigation/SearchableList.d.ts} +2 -2
  119. package/dist/components/{SearchableList.mjs → layout-and-navigation/SearchableList.js} +52 -40
  120. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -0
  121. package/dist/components/{StepperBar.js → layout-and-navigation/StepperBar.cjs} +42 -16
  122. package/dist/components/layout-and-navigation/StepperBar.cjs.map +1 -0
  123. package/dist/components/{StepperBar.d.mts → layout-and-navigation/StepperBar.d.cts} +2 -3
  124. package/dist/components/{StepperBar.d.ts → layout-and-navigation/StepperBar.d.ts} +2 -3
  125. package/dist/components/{StepperBar.mjs → layout-and-navigation/StepperBar.js} +40 -14
  126. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -0
  127. package/dist/components/{Table.js → layout-and-navigation/Table.cjs} +176 -40
  128. package/dist/components/layout-and-navigation/Table.cjs.map +1 -0
  129. package/dist/components/{Table.d.mts → layout-and-navigation/Table.d.cts} +10 -1
  130. package/dist/components/{Table.d.ts → layout-and-navigation/Table.d.ts} +10 -1
  131. package/dist/components/{Table.mjs → layout-and-navigation/Table.js} +175 -40
  132. package/dist/components/layout-and-navigation/Table.js.map +1 -0
  133. package/dist/components/{TextImage.js → layout-and-navigation/TextImage.cjs} +25 -10
  134. package/dist/components/layout-and-navigation/TextImage.cjs.map +1 -0
  135. package/dist/components/{TextImage.d.mts → layout-and-navigation/TextImage.d.cts} +2 -3
  136. package/dist/components/{TextImage.d.ts → layout-and-navigation/TextImage.d.ts} +2 -3
  137. package/dist/components/{TextImage.mjs → layout-and-navigation/TextImage.js} +23 -8
  138. package/dist/components/layout-and-navigation/TextImage.js.map +1 -0
  139. package/dist/components/{layout/Tile.js → layout-and-navigation/Tile.cjs} +4 -4
  140. package/dist/components/layout-and-navigation/Tile.cjs.map +1 -0
  141. package/dist/components/{layout/Tile.mjs → layout-and-navigation/Tile.js} +2 -2
  142. package/dist/components/layout-and-navigation/Tile.js.map +1 -0
  143. package/dist/components/{VerticalDivider.js → layout-and-navigation/VerticalDivider.cjs} +2 -2
  144. package/dist/components/layout-and-navigation/VerticalDivider.cjs.map +1 -0
  145. package/dist/components/{VerticalDivider.mjs → layout-and-navigation/VerticalDivider.js} +2 -2
  146. package/dist/components/layout-and-navigation/VerticalDivider.js.map +1 -0
  147. package/dist/components/{ErrorComponent.js → loading-states/ErrorComponent.cjs} +25 -10
  148. package/dist/components/loading-states/ErrorComponent.cjs.map +1 -0
  149. package/dist/components/{ErrorComponent.d.mts → loading-states/ErrorComponent.d.cts} +2 -3
  150. package/dist/components/{ErrorComponent.d.ts → loading-states/ErrorComponent.d.ts} +2 -3
  151. package/dist/components/{ErrorComponent.mjs → loading-states/ErrorComponent.js} +24 -9
  152. package/dist/components/loading-states/ErrorComponent.js.map +1 -0
  153. package/dist/components/{LoadingAndErrorComponent.js → loading-states/LoadingAndErrorComponent.cjs} +67 -18
  154. package/dist/components/loading-states/LoadingAndErrorComponent.cjs.map +1 -0
  155. package/dist/components/{LoadingAndErrorComponent.d.mts → loading-states/LoadingAndErrorComponent.d.cts} +6 -6
  156. package/dist/components/{LoadingAndErrorComponent.d.ts → loading-states/LoadingAndErrorComponent.d.ts} +4 -4
  157. package/dist/components/{LoadingAndErrorComponent.mjs → loading-states/LoadingAndErrorComponent.js} +66 -17
  158. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -0
  159. package/dist/components/{LoadingAnimation.js → loading-states/LoadingAnimation.cjs} +64 -15
  160. package/dist/components/loading-states/LoadingAnimation.cjs.map +1 -0
  161. package/dist/components/{LoadingAnimation.d.mts → loading-states/LoadingAnimation.d.cts} +2 -3
  162. package/dist/components/{LoadingAnimation.d.ts → loading-states/LoadingAnimation.d.ts} +2 -3
  163. package/dist/components/{LoadingAnimation.mjs → loading-states/LoadingAnimation.js} +63 -14
  164. package/dist/components/loading-states/LoadingAnimation.js.map +1 -0
  165. package/dist/components/{LoadingButton.js → loading-states/LoadingButton.cjs} +101 -58
  166. package/dist/components/loading-states/LoadingButton.cjs.map +1 -0
  167. package/dist/components/{LoadingButton.d.mts → loading-states/LoadingButton.d.cts} +1 -1
  168. package/dist/components/{LoadingButton.d.ts → loading-states/LoadingButton.d.ts} +1 -1
  169. package/dist/components/{LoadingButton.mjs → loading-states/LoadingButton.js} +100 -57
  170. package/dist/components/loading-states/LoadingButton.js.map +1 -0
  171. package/dist/components/{ProgressIndicator.js → loading-states/ProgressIndicator.cjs} +2 -2
  172. package/dist/components/loading-states/ProgressIndicator.cjs.map +1 -0
  173. package/dist/components/{ProgressIndicator.mjs → loading-states/ProgressIndicator.js} +2 -2
  174. package/dist/components/loading-states/ProgressIndicator.js.map +1 -0
  175. package/dist/components/modals/{ConfirmDialog.js → ConfirmModal.cjs} +214 -117
  176. package/dist/components/modals/ConfirmModal.cjs.map +1 -0
  177. package/dist/components/modals/ConfirmModal.d.cts +36 -0
  178. package/dist/components/modals/ConfirmModal.d.ts +36 -0
  179. package/dist/components/modals/{ConfirmDialog.mjs → ConfirmModal.js} +203 -106
  180. package/dist/components/modals/ConfirmModal.js.map +1 -0
  181. package/dist/components/modals/DiscardChangesModal.cjs +570 -0
  182. package/dist/components/modals/DiscardChangesModal.cjs.map +1 -0
  183. package/dist/components/modals/DiscardChangesModal.d.cts +25 -0
  184. package/dist/components/modals/DiscardChangesModal.d.ts +25 -0
  185. package/dist/components/modals/DiscardChangesModal.js +533 -0
  186. package/dist/components/modals/DiscardChangesModal.js.map +1 -0
  187. package/dist/components/modals/InputModal.cjs +689 -0
  188. package/dist/components/modals/InputModal.cjs.map +1 -0
  189. package/dist/components/modals/{InputModal.d.mts → InputModal.d.cts} +7 -7
  190. package/dist/components/modals/InputModal.d.ts +7 -7
  191. package/dist/components/modals/InputModal.js +273 -221
  192. package/dist/components/modals/InputModal.js.map +1 -1
  193. package/dist/components/modals/LanguageModal.cjs +667 -0
  194. package/dist/components/modals/LanguageModal.cjs.map +1 -0
  195. package/dist/components/modals/LanguageModal.d.cts +20 -0
  196. package/dist/components/modals/LanguageModal.d.ts +7 -8
  197. package/dist/components/modals/LanguageModal.js +308 -206
  198. package/dist/components/modals/LanguageModal.js.map +1 -1
  199. package/dist/components/modals/ThemeModal.cjs +694 -0
  200. package/dist/components/modals/ThemeModal.cjs.map +1 -0
  201. package/dist/components/modals/ThemeModal.d.cts +21 -0
  202. package/dist/components/modals/ThemeModal.d.ts +21 -0
  203. package/dist/components/modals/ThemeModal.js +657 -0
  204. package/dist/components/modals/ThemeModal.js.map +1 -0
  205. package/dist/components/properties/CheckboxProperty.cjs +362 -0
  206. package/dist/components/properties/CheckboxProperty.cjs.map +1 -0
  207. package/dist/components/properties/{CheckboxProperty.d.mts → CheckboxProperty.d.cts} +3 -3
  208. package/dist/components/properties/CheckboxProperty.d.ts +2 -2
  209. package/dist/components/properties/CheckboxProperty.js +94 -93
  210. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  211. package/dist/components/properties/DateProperty.cjs +451 -0
  212. package/dist/components/properties/DateProperty.cjs.map +1 -0
  213. package/dist/components/properties/{DateProperty.d.mts → DateProperty.d.cts} +3 -3
  214. package/dist/components/properties/DateProperty.d.ts +2 -2
  215. package/dist/components/properties/DateProperty.js +110 -116
  216. package/dist/components/properties/DateProperty.js.map +1 -1
  217. package/dist/components/properties/{MultiSelectProperty.mjs → MultiSelectProperty.cjs} +216 -155
  218. package/dist/components/properties/MultiSelectProperty.cjs.map +1 -0
  219. package/dist/components/properties/{MultiSelectProperty.d.mts → MultiSelectProperty.d.cts} +5 -5
  220. package/dist/components/properties/MultiSelectProperty.d.ts +4 -4
  221. package/dist/components/properties/MultiSelectProperty.js +180 -184
  222. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  223. package/dist/components/properties/NumberProperty.cjs +459 -0
  224. package/dist/components/properties/NumberProperty.cjs.map +1 -0
  225. package/dist/components/properties/{NumberProperty.d.mts → NumberProperty.d.cts} +3 -3
  226. package/dist/components/properties/NumberProperty.d.ts +2 -2
  227. package/dist/components/properties/NumberProperty.js +109 -116
  228. package/dist/components/properties/NumberProperty.js.map +1 -1
  229. package/dist/components/properties/PropertyBase.cjs +223 -0
  230. package/dist/components/properties/PropertyBase.cjs.map +1 -0
  231. package/dist/components/properties/{PropertyBase.d.mts → PropertyBase.d.cts} +2 -2
  232. package/dist/components/properties/PropertyBase.d.ts +2 -2
  233. package/dist/components/properties/PropertyBase.js +60 -69
  234. package/dist/components/properties/PropertyBase.js.map +1 -1
  235. package/dist/components/properties/{SelectProperty.mjs → SelectProperty.cjs} +251 -199
  236. package/dist/components/properties/SelectProperty.cjs.map +1 -0
  237. package/dist/components/properties/{SelectProperty.d.mts → SelectProperty.d.cts} +5 -6
  238. package/dist/components/properties/SelectProperty.d.ts +4 -5
  239. package/dist/components/properties/SelectProperty.js +215 -228
  240. package/dist/components/properties/SelectProperty.js.map +1 -1
  241. package/dist/components/properties/TextProperty.cjs +428 -0
  242. package/dist/components/properties/TextProperty.cjs.map +1 -0
  243. package/dist/components/properties/{TextProperty.d.mts → TextProperty.d.cts} +3 -3
  244. package/dist/components/properties/TextProperty.d.ts +2 -2
  245. package/dist/components/properties/TextProperty.js +134 -121
  246. package/dist/components/properties/TextProperty.js.map +1 -1
  247. package/dist/components/{Button.js → user-action/Button.cjs} +70 -12
  248. package/dist/components/user-action/Button.cjs.map +1 -0
  249. package/dist/components/{Button.d.mts → user-action/Button.d.cts} +32 -5
  250. package/dist/components/{Button.d.ts → user-action/Button.d.ts} +32 -5
  251. package/dist/components/{Button.mjs → user-action/Button.js} +66 -10
  252. package/dist/components/user-action/Button.js.map +1 -0
  253. package/dist/components/{user-input/Checkbox.js → user-action/Checkbox.cjs} +26 -16
  254. package/dist/components/user-action/Checkbox.cjs.map +1 -0
  255. package/dist/components/{user-input/Checkbox.d.mts → user-action/Checkbox.d.cts} +5 -5
  256. package/dist/components/{user-input → user-action}/Checkbox.d.ts +4 -4
  257. package/dist/components/{user-input/Checkbox.mjs → user-action/Checkbox.js} +24 -14
  258. package/dist/components/user-action/Checkbox.js.map +1 -0
  259. package/dist/components/{user-input/DateAndTimePicker.js → user-action/DateAndTimePicker.cjs} +51 -23
  260. package/dist/components/user-action/DateAndTimePicker.cjs.map +1 -0
  261. package/dist/components/{user-input/DateAndTimePicker.d.mts → user-action/DateAndTimePicker.d.cts} +7 -8
  262. package/dist/components/{user-input → user-action}/DateAndTimePicker.d.ts +2 -3
  263. package/dist/components/{user-input/DateAndTimePicker.mjs → user-action/DateAndTimePicker.js} +44 -16
  264. package/dist/components/user-action/DateAndTimePicker.js.map +1 -0
  265. package/dist/components/{user-input/Input.js → user-action/Input.cjs} +35 -34
  266. package/dist/components/user-action/Input.cjs.map +1 -0
  267. package/dist/components/{user-input/Input.d.mts → user-action/Input.d.cts} +9 -16
  268. package/dist/components/{user-input → user-action}/Input.d.ts +8 -15
  269. package/dist/components/{user-input/Input.mjs → user-action/Input.js} +35 -39
  270. package/dist/components/user-action/Input.js.map +1 -0
  271. package/dist/components/{user-input/Label.js → user-action/Label.cjs} +15 -3
  272. package/dist/components/user-action/Label.cjs.map +1 -0
  273. package/dist/components/{user-input/Label.d.mts → user-action/Label.d.cts} +1 -1
  274. package/dist/components/{user-input → user-action}/Label.d.ts +1 -1
  275. package/dist/components/{user-input/Label.mjs → user-action/Label.js} +5 -3
  276. package/dist/components/user-action/Label.js.map +1 -0
  277. package/dist/components/{user-input/Menu.js → user-action/Menu.cjs} +4 -4
  278. package/dist/components/user-action/Menu.cjs.map +1 -0
  279. package/dist/components/{user-input/Menu.mjs → user-action/Menu.js} +3 -3
  280. package/dist/components/user-action/Menu.js.map +1 -0
  281. package/dist/components/{user-input/MultiSelect.js → user-action/MultiSelect.cjs} +76 -51
  282. package/dist/components/user-action/MultiSelect.cjs.map +1 -0
  283. package/dist/components/{user-input/MultiSelect.d.mts → user-action/MultiSelect.d.cts} +3 -3
  284. package/dist/components/{user-input → user-action}/MultiSelect.d.ts +2 -2
  285. package/dist/components/{user-input/MultiSelect.mjs → user-action/MultiSelect.js} +75 -55
  286. package/dist/components/user-action/MultiSelect.js.map +1 -0
  287. package/dist/components/{user-input/ScrollPicker.js → user-action/ScrollPicker.cjs} +4 -4
  288. package/dist/components/user-action/ScrollPicker.cjs.map +1 -0
  289. package/dist/components/{user-input/ScrollPicker.mjs → user-action/ScrollPicker.js} +3 -3
  290. package/dist/components/user-action/ScrollPicker.js.map +1 -0
  291. package/dist/components/{user-input/SearchableSelect.js → user-action/Select.cjs} +181 -152
  292. package/dist/components/user-action/Select.cjs.map +1 -0
  293. package/dist/components/user-action/Select.d.cts +49 -0
  294. package/dist/components/user-action/Select.d.ts +49 -0
  295. package/dist/components/{user-input/SearchableSelect.mjs → user-action/Select.js} +167 -145
  296. package/dist/components/user-action/Select.js.map +1 -0
  297. package/dist/components/{user-input/Textarea.js → user-action/Textarea.cjs} +80 -35
  298. package/dist/components/user-action/Textarea.cjs.map +1 -0
  299. package/dist/components/user-action/Textarea.d.cts +28 -0
  300. package/dist/components/{user-input → user-action}/Textarea.d.ts +9 -5
  301. package/dist/components/user-action/Textarea.js +163 -0
  302. package/dist/components/user-action/Textarea.js.map +1 -0
  303. package/dist/components/{user-input/ToggleableInput.js → user-action/ToggleableInput.cjs} +9 -15
  304. package/dist/components/user-action/ToggleableInput.cjs.map +1 -0
  305. package/dist/components/{user-input/ToggleableInput.mjs → user-action/ToggleableInput.js} +8 -14
  306. package/dist/components/user-action/ToggleableInput.js.map +1 -0
  307. package/dist/components/{Tooltip.js → user-action/Tooltip.cjs} +13 -9
  308. package/dist/components/user-action/Tooltip.cjs.map +1 -0
  309. package/dist/components/{Tooltip.d.mts → user-action/Tooltip.d.cts} +1 -1
  310. package/dist/components/{Tooltip.d.ts → user-action/Tooltip.d.ts} +1 -1
  311. package/dist/components/{Tooltip.mjs → user-action/Tooltip.js} +12 -8
  312. package/dist/components/user-action/Tooltip.js.map +1 -0
  313. package/dist/css/globals.css +185 -129
  314. package/dist/css/uncompiled/globals.css +71 -32
  315. package/dist/hooks/useHoverState.cjs +72 -0
  316. package/dist/hooks/{useHoverState.mjs.map → useHoverState.cjs.map} +1 -1
  317. package/dist/hooks/useHoverState.js +7 -32
  318. package/dist/hooks/useHoverState.js.map +1 -1
  319. package/dist/hooks/useLocalStorage.cjs +83 -0
  320. package/dist/hooks/useLocalStorage.cjs.map +1 -0
  321. package/dist/hooks/useLocalStorage.js +9 -34
  322. package/dist/hooks/useLocalStorage.js.map +1 -1
  323. package/dist/hooks/useOutsideClick.cjs +48 -0
  324. package/dist/hooks/{useOutsideClick.mjs.map → useOutsideClick.cjs.map} +1 -1
  325. package/dist/hooks/useOutsideClick.js +4 -29
  326. package/dist/hooks/useOutsideClick.js.map +1 -1
  327. package/dist/hooks/useSaveDelay.cjs +68 -0
  328. package/dist/hooks/{useSaveDelay.mjs.map → useSaveDelay.cjs.map} +1 -1
  329. package/dist/hooks/useSaveDelay.js +6 -31
  330. package/dist/hooks/useSaveDelay.js.map +1 -1
  331. package/dist/{index.mjs → index.cjs} +4042 -3867
  332. package/dist/index.cjs.map +1 -0
  333. package/dist/index.d.cts +83 -0
  334. package/dist/index.d.ts +51 -56
  335. package/dist/index.js +3858 -4041
  336. package/dist/index.js.map +1 -1
  337. package/dist/{hooks/useLanguage.js → localization/LanguageProvider.cjs} +30 -26
  338. package/dist/localization/LanguageProvider.cjs.map +1 -0
  339. package/dist/localization/LanguageProvider.d.cts +18 -0
  340. package/dist/localization/LanguageProvider.d.ts +18 -0
  341. package/dist/{hooks/useLanguage.mjs → localization/LanguageProvider.js} +26 -19
  342. package/dist/localization/LanguageProvider.js.map +1 -0
  343. package/dist/{hooks/useTranslation.js → localization/useTranslation.cjs} +23 -8
  344. package/dist/localization/useTranslation.cjs.map +1 -0
  345. package/dist/{hooks/useTranslation.d.mts → localization/useTranslation.d.cts} +5 -7
  346. package/dist/{hooks → localization}/useTranslation.d.ts +5 -7
  347. package/dist/{hooks/useTranslation.mjs → localization/useTranslation.js} +22 -7
  348. package/dist/localization/useTranslation.js.map +1 -0
  349. package/dist/localization/util.cjs +41 -0
  350. package/dist/localization/util.cjs.map +1 -0
  351. package/dist/localization/util.d.cts +18 -0
  352. package/dist/localization/util.d.ts +18 -0
  353. package/dist/localization/util.js +16 -0
  354. package/dist/localization/util.js.map +1 -0
  355. package/dist/{hooks/useTheme.js → theming/useTheme.cjs} +19 -11
  356. package/dist/theming/useTheme.cjs.map +1 -0
  357. package/dist/{hooks/useTheme.d.mts → theming/useTheme.d.cts} +9 -5
  358. package/dist/{hooks → theming}/useTheme.d.ts +9 -5
  359. package/dist/{hooks/useTheme.mjs → theming/useTheme.js} +15 -7
  360. package/dist/theming/useTheme.js.map +1 -0
  361. package/dist/util/{array.mjs → array.cjs} +34 -3
  362. package/dist/util/array.cjs.map +1 -0
  363. package/dist/util/array.js +2 -33
  364. package/dist/util/array.js.map +1 -1
  365. package/dist/util/builder.cjs +34 -0
  366. package/dist/util/{builder.mjs.map → builder.cjs.map} +1 -1
  367. package/dist/util/builder.js +2 -27
  368. package/dist/util/builder.js.map +1 -1
  369. package/dist/util/{date.mjs → date.cjs} +41 -3
  370. package/dist/util/date.cjs.map +1 -0
  371. package/dist/util/date.js +2 -40
  372. package/dist/util/date.js.map +1 -1
  373. package/dist/util/easeFunctions.cjs +63 -0
  374. package/dist/util/easeFunctions.cjs.map +1 -0
  375. package/dist/util/easeFunctions.js +2 -29
  376. package/dist/util/easeFunctions.js.map +1 -1
  377. package/dist/util/emailValidation.cjs +33 -0
  378. package/dist/util/{emailValidation.mjs.map → emailValidation.cjs.map} +1 -1
  379. package/dist/util/emailValidation.js +2 -27
  380. package/dist/util/emailValidation.js.map +1 -1
  381. package/dist/util/{loopingArray.mjs → loopingArray.cjs} +28 -3
  382. package/dist/util/{loopingArray.mjs.map → loopingArray.cjs.map} +1 -1
  383. package/dist/util/loopingArray.js +2 -27
  384. package/dist/util/loopingArray.js.map +1 -1
  385. package/dist/util/math.cjs +33 -0
  386. package/dist/util/{math.mjs.map → math.cjs.map} +1 -1
  387. package/dist/util/math.js +2 -27
  388. package/dist/util/math.js.map +1 -1
  389. package/dist/util/news.cjs +77 -0
  390. package/dist/util/news.cjs.map +1 -0
  391. package/dist/util/{news.d.mts → news.d.cts} +11 -13
  392. package/dist/util/news.d.ts +11 -13
  393. package/dist/util/news.js +22 -49
  394. package/dist/util/news.js.map +1 -1
  395. package/dist/util/noop.cjs +31 -0
  396. package/dist/util/noop.cjs.map +1 -0
  397. package/dist/util/noop.js +2 -27
  398. package/dist/util/noop.js.map +1 -1
  399. package/dist/util/simpleSearch.cjs +54 -0
  400. package/dist/util/simpleSearch.cjs.map +1 -0
  401. package/dist/util/simpleSearch.js +2 -30
  402. package/dist/util/simpleSearch.js.map +1 -1
  403. package/dist/util/storage.cjs +64 -0
  404. package/dist/util/storage.cjs.map +1 -0
  405. package/dist/util/storage.js +2 -28
  406. package/dist/util/storage.js.map +1 -1
  407. package/dist/util/types.cjs +19 -0
  408. package/dist/util/types.cjs.map +1 -0
  409. package/dist/util/types.js +0 -18
  410. package/dist/util/types.js.map +1 -1
  411. package/package.json +9 -12
  412. package/dist/coloring/shading.mjs +0 -47
  413. package/dist/coloring/shading.mjs.map +0 -1
  414. package/dist/coloring/types.mjs +0 -6
  415. package/dist/components/Avatar.d.mts +0 -17
  416. package/dist/components/Avatar.d.ts +0 -17
  417. package/dist/components/Avatar.js +0 -85
  418. package/dist/components/Avatar.js.map +0 -1
  419. package/dist/components/Avatar.mjs +0 -48
  420. package/dist/components/Avatar.mjs.map +0 -1
  421. package/dist/components/AvatarGroup.d.mts +0 -14
  422. package/dist/components/AvatarGroup.d.ts +0 -14
  423. package/dist/components/AvatarGroup.js.map +0 -1
  424. package/dist/components/AvatarGroup.mjs.map +0 -1
  425. package/dist/components/BreadCrumb.js.map +0 -1
  426. package/dist/components/BreadCrumb.mjs.map +0 -1
  427. package/dist/components/Button.js.map +0 -1
  428. package/dist/components/Button.mjs.map +0 -1
  429. package/dist/components/ChipList.js.map +0 -1
  430. package/dist/components/ChipList.mjs.map +0 -1
  431. package/dist/components/Circle.js.map +0 -1
  432. package/dist/components/Circle.mjs.map +0 -1
  433. package/dist/components/ErrorComponent.js.map +0 -1
  434. package/dist/components/ErrorComponent.mjs.map +0 -1
  435. package/dist/components/Expandable.js.map +0 -1
  436. package/dist/components/Expandable.mjs.map +0 -1
  437. package/dist/components/HelpwaveBadge.js.map +0 -1
  438. package/dist/components/HelpwaveBadge.mjs +0 -91
  439. package/dist/components/HelpwaveBadge.mjs.map +0 -1
  440. package/dist/components/HideableContentSection.d.mts +0 -14
  441. package/dist/components/HideableContentSection.d.ts +0 -14
  442. package/dist/components/HideableContentSection.js +0 -70
  443. package/dist/components/HideableContentSection.js.map +0 -1
  444. package/dist/components/HideableContentSection.mjs +0 -35
  445. package/dist/components/HideableContentSection.mjs.map +0 -1
  446. package/dist/components/InputGroup.d.mts +0 -17
  447. package/dist/components/InputGroup.d.ts +0 -17
  448. package/dist/components/InputGroup.js +0 -97
  449. package/dist/components/InputGroup.js.map +0 -1
  450. package/dist/components/InputGroup.mjs +0 -62
  451. package/dist/components/InputGroup.mjs.map +0 -1
  452. package/dist/components/LoadingAndErrorComponent.js.map +0 -1
  453. package/dist/components/LoadingAndErrorComponent.mjs.map +0 -1
  454. package/dist/components/LoadingAnimation.js.map +0 -1
  455. package/dist/components/LoadingAnimation.mjs.map +0 -1
  456. package/dist/components/LoadingButton.js.map +0 -1
  457. package/dist/components/LoadingButton.mjs.map +0 -1
  458. package/dist/components/MarkdownInterpreter.js.map +0 -1
  459. package/dist/components/MarkdownInterpreter.mjs.map +0 -1
  460. package/dist/components/Pagination.js.map +0 -1
  461. package/dist/components/Pagination.mjs.map +0 -1
  462. package/dist/components/Profile.d.mts +0 -31
  463. package/dist/components/Profile.d.ts +0 -31
  464. package/dist/components/Profile.js +0 -197
  465. package/dist/components/Profile.js.map +0 -1
  466. package/dist/components/Profile.mjs +0 -162
  467. package/dist/components/Profile.mjs.map +0 -1
  468. package/dist/components/ProgressIndicator.js.map +0 -1
  469. package/dist/components/ProgressIndicator.mjs.map +0 -1
  470. package/dist/components/Ring.js.map +0 -1
  471. package/dist/components/Ring.mjs.map +0 -1
  472. package/dist/components/SearchableList.js.map +0 -1
  473. package/dist/components/SearchableList.mjs.map +0 -1
  474. package/dist/components/SortButton.d.mts +0 -15
  475. package/dist/components/SortButton.d.ts +0 -15
  476. package/dist/components/SortButton.js +0 -132
  477. package/dist/components/SortButton.js.map +0 -1
  478. package/dist/components/SortButton.mjs +0 -97
  479. package/dist/components/SortButton.mjs.map +0 -1
  480. package/dist/components/StepperBar.js.map +0 -1
  481. package/dist/components/StepperBar.mjs.map +0 -1
  482. package/dist/components/Table.js.map +0 -1
  483. package/dist/components/Table.mjs.map +0 -1
  484. package/dist/components/TechRadar.d.mts +0 -39
  485. package/dist/components/TechRadar.d.ts +0 -39
  486. package/dist/components/TechRadar.js +0 -243
  487. package/dist/components/TechRadar.js.map +0 -1
  488. package/dist/components/TechRadar.mjs +0 -208
  489. package/dist/components/TechRadar.mjs.map +0 -1
  490. package/dist/components/TextImage.js.map +0 -1
  491. package/dist/components/TextImage.mjs.map +0 -1
  492. package/dist/components/TimeDisplay.js.map +0 -1
  493. package/dist/components/TimeDisplay.mjs.map +0 -1
  494. package/dist/components/Tooltip.js.map +0 -1
  495. package/dist/components/Tooltip.mjs.map +0 -1
  496. package/dist/components/VerticalDivider.js.map +0 -1
  497. package/dist/components/VerticalDivider.mjs.map +0 -1
  498. package/dist/components/date/DatePicker.mjs.map +0 -1
  499. package/dist/components/date/DayPicker.mjs.map +0 -1
  500. package/dist/components/date/TimePicker.mjs.map +0 -1
  501. package/dist/components/date/YearMonthPicker.mjs.map +0 -1
  502. package/dist/components/icons/Helpwave.js.map +0 -1
  503. package/dist/components/icons/Helpwave.mjs +0 -43
  504. package/dist/components/icons/Helpwave.mjs.map +0 -1
  505. package/dist/components/icons/Tag.js.map +0 -1
  506. package/dist/components/icons/Tag.mjs.map +0 -1
  507. package/dist/components/layout/Carousel.js.map +0 -1
  508. package/dist/components/layout/Carousel.mjs.map +0 -1
  509. package/dist/components/layout/DividerInserter.js.map +0 -1
  510. package/dist/components/layout/DividerInserter.mjs.map +0 -1
  511. package/dist/components/layout/FAQSection.js.map +0 -1
  512. package/dist/components/layout/FAQSection.mjs.map +0 -1
  513. package/dist/components/layout/Tile.js.map +0 -1
  514. package/dist/components/layout/Tile.mjs.map +0 -1
  515. package/dist/components/modals/ConfirmDialog.d.mts +0 -38
  516. package/dist/components/modals/ConfirmDialog.d.ts +0 -38
  517. package/dist/components/modals/ConfirmDialog.js.map +0 -1
  518. package/dist/components/modals/ConfirmDialog.mjs.map +0 -1
  519. package/dist/components/modals/DiscardChangesDialog.d.mts +0 -23
  520. package/dist/components/modals/DiscardChangesDialog.d.ts +0 -23
  521. package/dist/components/modals/DiscardChangesDialog.js +0 -409
  522. package/dist/components/modals/DiscardChangesDialog.js.map +0 -1
  523. package/dist/components/modals/DiscardChangesDialog.mjs +0 -372
  524. package/dist/components/modals/DiscardChangesDialog.mjs.map +0 -1
  525. package/dist/components/modals/InputModal.mjs +0 -568
  526. package/dist/components/modals/InputModal.mjs.map +0 -1
  527. package/dist/components/modals/LanguageModal.d.mts +0 -21
  528. package/dist/components/modals/LanguageModal.mjs +0 -491
  529. package/dist/components/modals/LanguageModal.mjs.map +0 -1
  530. package/dist/components/modals/Modal.d.mts +0 -43
  531. package/dist/components/modals/Modal.d.ts +0 -43
  532. package/dist/components/modals/Modal.js +0 -288
  533. package/dist/components/modals/Modal.js.map +0 -1
  534. package/dist/components/modals/Modal.mjs +0 -251
  535. package/dist/components/modals/Modal.mjs.map +0 -1
  536. package/dist/components/modals/ModalRegister.d.mts +0 -16
  537. package/dist/components/modals/ModalRegister.d.ts +0 -16
  538. package/dist/components/modals/ModalRegister.js +0 -63
  539. package/dist/components/modals/ModalRegister.js.map +0 -1
  540. package/dist/components/modals/ModalRegister.mjs +0 -37
  541. package/dist/components/modals/ModalRegister.mjs.map +0 -1
  542. package/dist/components/properties/CheckboxProperty.mjs +0 -291
  543. package/dist/components/properties/CheckboxProperty.mjs.map +0 -1
  544. package/dist/components/properties/DateProperty.mjs +0 -392
  545. package/dist/components/properties/DateProperty.mjs.map +0 -1
  546. package/dist/components/properties/MultiSelectProperty.mjs.map +0 -1
  547. package/dist/components/properties/NumberProperty.mjs +0 -401
  548. package/dist/components/properties/NumberProperty.mjs.map +0 -1
  549. package/dist/components/properties/PropertyBase.mjs +0 -162
  550. package/dist/components/properties/PropertyBase.mjs.map +0 -1
  551. package/dist/components/properties/SelectProperty.mjs.map +0 -1
  552. package/dist/components/properties/TextProperty.mjs +0 -345
  553. package/dist/components/properties/TextProperty.mjs.map +0 -1
  554. package/dist/components/user-input/Checkbox.js.map +0 -1
  555. package/dist/components/user-input/Checkbox.mjs.map +0 -1
  556. package/dist/components/user-input/DateAndTimePicker.js.map +0 -1
  557. package/dist/components/user-input/DateAndTimePicker.mjs.map +0 -1
  558. package/dist/components/user-input/Input.js.map +0 -1
  559. package/dist/components/user-input/Input.mjs.map +0 -1
  560. package/dist/components/user-input/Label.js.map +0 -1
  561. package/dist/components/user-input/Label.mjs.map +0 -1
  562. package/dist/components/user-input/Menu.js.map +0 -1
  563. package/dist/components/user-input/Menu.mjs.map +0 -1
  564. package/dist/components/user-input/MultiSelect.js.map +0 -1
  565. package/dist/components/user-input/MultiSelect.mjs.map +0 -1
  566. package/dist/components/user-input/ScrollPicker.js.map +0 -1
  567. package/dist/components/user-input/ScrollPicker.mjs.map +0 -1
  568. package/dist/components/user-input/SearchableSelect.d.mts +0 -14
  569. package/dist/components/user-input/SearchableSelect.d.ts +0 -14
  570. package/dist/components/user-input/SearchableSelect.js.map +0 -1
  571. package/dist/components/user-input/SearchableSelect.mjs.map +0 -1
  572. package/dist/components/user-input/Select.d.mts +0 -36
  573. package/dist/components/user-input/Select.d.ts +0 -36
  574. package/dist/components/user-input/Select.js +0 -153
  575. package/dist/components/user-input/Select.js.map +0 -1
  576. package/dist/components/user-input/Select.mjs +0 -118
  577. package/dist/components/user-input/Select.mjs.map +0 -1
  578. package/dist/components/user-input/Textarea.d.mts +0 -24
  579. package/dist/components/user-input/Textarea.js.map +0 -1
  580. package/dist/components/user-input/Textarea.mjs +0 -119
  581. package/dist/components/user-input/Textarea.mjs.map +0 -1
  582. package/dist/components/user-input/ToggleableInput.js.map +0 -1
  583. package/dist/components/user-input/ToggleableInput.mjs.map +0 -1
  584. package/dist/hooks/useHoverState.mjs +0 -47
  585. package/dist/hooks/useLanguage.d.mts +0 -21
  586. package/dist/hooks/useLanguage.d.ts +0 -21
  587. package/dist/hooks/useLanguage.js.map +0 -1
  588. package/dist/hooks/useLanguage.mjs.map +0 -1
  589. package/dist/hooks/useLocalStorage.mjs +0 -58
  590. package/dist/hooks/useLocalStorage.mjs.map +0 -1
  591. package/dist/hooks/useOutsideClick.mjs +0 -23
  592. package/dist/hooks/useSaveDelay.mjs +0 -43
  593. package/dist/hooks/useTheme.js.map +0 -1
  594. package/dist/hooks/useTheme.mjs.map +0 -1
  595. package/dist/hooks/useTranslation.js.map +0 -1
  596. package/dist/hooks/useTranslation.mjs.map +0 -1
  597. package/dist/index.d.mts +0 -88
  598. package/dist/index.mjs.map +0 -1
  599. package/dist/util/array.mjs.map +0 -1
  600. package/dist/util/builder.mjs +0 -9
  601. package/dist/util/date.mjs.map +0 -1
  602. package/dist/util/easeFunctions.mjs +0 -36
  603. package/dist/util/easeFunctions.mjs.map +0 -1
  604. package/dist/util/emailValidation.mjs +0 -8
  605. package/dist/util/math.mjs +0 -8
  606. package/dist/util/news.mjs +0 -48
  607. package/dist/util/news.mjs.map +0 -1
  608. package/dist/util/noop.mjs +0 -6
  609. package/dist/util/noop.mjs.map +0 -1
  610. package/dist/util/simpleSearch.mjs +0 -26
  611. package/dist/util/simpleSearch.mjs.map +0 -1
  612. package/dist/util/storage.mjs +0 -38
  613. package/dist/util/storage.mjs.map +0 -1
  614. package/dist/util/types.mjs +0 -1
  615. package/dist/util/types.mjs.map +0 -1
  616. /package/dist/coloring/{types.d.mts → types.d.cts} +0 -0
  617. /package/dist/components/{HelpwaveBadge.d.mts → branding/HelpwaveBadge.d.cts} +0 -0
  618. /package/dist/components/{HelpwaveBadge.d.ts → branding/HelpwaveBadge.d.ts} +0 -0
  619. /package/dist/components/{Circle.d.mts → icons-and-geometry/Circle.d.cts} +0 -0
  620. /package/dist/components/{Circle.d.ts → icons-and-geometry/Circle.d.ts} +0 -0
  621. /package/dist/components/{icons/Helpwave.d.mts → icons-and-geometry/Helpwave.d.cts} +0 -0
  622. /package/dist/components/{icons → icons-and-geometry}/Helpwave.d.ts +0 -0
  623. /package/dist/components/{Ring.d.mts → icons-and-geometry/Ring.d.cts} +0 -0
  624. /package/dist/components/{Ring.d.ts → icons-and-geometry/Ring.d.ts} +0 -0
  625. /package/dist/components/{icons/Tag.d.mts → icons-and-geometry/Tag.d.cts} +0 -0
  626. /package/dist/components/{icons → icons-and-geometry}/Tag.d.ts +0 -0
  627. /package/dist/components/{BreadCrumb.d.mts → layout-and-navigation/BreadCrumb.d.cts} +0 -0
  628. /package/dist/components/{BreadCrumb.d.ts → layout-and-navigation/BreadCrumb.d.ts} +0 -0
  629. /package/dist/components/{layout/Carousel.d.mts → layout-and-navigation/Carousel.d.cts} +0 -0
  630. /package/dist/components/{layout → layout-and-navigation}/Carousel.d.ts +0 -0
  631. /package/dist/components/{ChipList.d.mts → layout-and-navigation/Chip.d.cts} +0 -0
  632. /package/dist/components/{ChipList.d.ts → layout-and-navigation/Chip.d.ts} +0 -0
  633. /package/dist/components/{layout/DividerInserter.d.mts → layout-and-navigation/DividerInserter.d.cts} +0 -0
  634. /package/dist/components/{layout → layout-and-navigation}/DividerInserter.d.ts +0 -0
  635. /package/dist/components/{Expandable.d.mts → layout-and-navigation/Expandable.d.cts} +0 -0
  636. /package/dist/components/{Expandable.d.ts → layout-and-navigation/Expandable.d.ts} +0 -0
  637. /package/dist/components/{MarkdownInterpreter.d.mts → layout-and-navigation/MarkdownInterpreter.d.cts} +0 -0
  638. /package/dist/components/{MarkdownInterpreter.d.ts → layout-and-navigation/MarkdownInterpreter.d.ts} +0 -0
  639. /package/dist/components/{layout/Tile.d.mts → layout-and-navigation/Tile.d.cts} +0 -0
  640. /package/dist/components/{layout → layout-and-navigation}/Tile.d.ts +0 -0
  641. /package/dist/components/{VerticalDivider.d.mts → layout-and-navigation/VerticalDivider.d.cts} +0 -0
  642. /package/dist/components/{VerticalDivider.d.ts → layout-and-navigation/VerticalDivider.d.ts} +0 -0
  643. /package/dist/components/{ProgressIndicator.d.mts → loading-states/ProgressIndicator.d.cts} +0 -0
  644. /package/dist/components/{ProgressIndicator.d.ts → loading-states/ProgressIndicator.d.ts} +0 -0
  645. /package/dist/components/{user-input/Menu.d.mts → user-action/Menu.d.cts} +0 -0
  646. /package/dist/components/{user-input → user-action}/Menu.d.ts +0 -0
  647. /package/dist/components/{user-input/ScrollPicker.d.mts → user-action/ScrollPicker.d.cts} +0 -0
  648. /package/dist/components/{user-input → user-action}/ScrollPicker.d.ts +0 -0
  649. /package/dist/components/{user-input/ToggleableInput.d.mts → user-action/ToggleableInput.d.cts} +0 -0
  650. /package/dist/components/{user-input → user-action}/ToggleableInput.d.ts +0 -0
  651. /package/dist/hooks/{useHoverState.d.mts → useHoverState.d.cts} +0 -0
  652. /package/dist/hooks/{useLocalStorage.d.mts → useLocalStorage.d.cts} +0 -0
  653. /package/dist/hooks/{useOutsideClick.d.mts → useOutsideClick.d.cts} +0 -0
  654. /package/dist/hooks/{useSaveDelay.d.mts → useSaveDelay.d.cts} +0 -0
  655. /package/dist/util/{array.d.mts → array.d.cts} +0 -0
  656. /package/dist/util/{builder.d.mts → builder.d.cts} +0 -0
  657. /package/dist/util/{date.d.mts → date.d.cts} +0 -0
  658. /package/dist/util/{easeFunctions.d.mts → easeFunctions.d.cts} +0 -0
  659. /package/dist/util/{emailValidation.d.mts → emailValidation.d.cts} +0 -0
  660. /package/dist/util/{loopingArray.d.mts → loopingArray.d.cts} +0 -0
  661. /package/dist/util/{math.d.mts → math.d.cts} +0 -0
  662. /package/dist/util/{noop.d.mts → noop.d.cts} +0 -0
  663. /package/dist/util/{simpleSearch.d.mts → simpleSearch.d.cts} +0 -0
  664. /package/dist/util/{storage.d.mts → storage.d.cts} +0 -0
  665. /package/dist/util/{types.d.mts → types.d.cts} +0 -0
@@ -17,18 +17,23 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/hooks/useTheme.tsx
20
+ // src/theming/useTheme.tsx
21
21
  var useTheme_exports = {};
22
22
  __export(useTheme_exports, {
23
23
  ThemeContext: () => ThemeContext,
24
24
  ThemeProvider: () => ThemeProvider,
25
- defaultThemeTypeTranslation: () => defaultThemeTypeTranslation,
25
+ ThemeUtil: () => ThemeUtil,
26
26
  useTheme: () => useTheme
27
27
  });
28
28
  module.exports = __toCommonJS(useTheme_exports);
29
29
  var import_react = require("react");
30
- var import_react2 = require("react");
30
+
31
+ // src/util/noop.ts
32
+ var noop = () => void 0;
33
+
34
+ // src/theming/useTheme.tsx
31
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
+ var themes = ["light", "dark"];
32
37
  var defaultThemeTypeTranslation = {
33
38
  en: {
34
39
  dark: "Dark",
@@ -39,20 +44,23 @@ var defaultThemeTypeTranslation = {
39
44
  light: "Hell"
40
45
  }
41
46
  };
42
- var ThemeContext = (0, import_react2.createContext)({
47
+ var ThemeUtil = {
48
+ themes,
49
+ translation: defaultThemeTypeTranslation
50
+ };
51
+ var ThemeContext = (0, import_react.createContext)({
43
52
  theme: "light",
44
- setTheme: (_) => {
45
- }
53
+ setTheme: noop
46
54
  });
47
55
  var ThemeProvider = ({ children, initialTheme = "light" }) => {
48
- const [theme, setTheme] = (0, import_react2.useState)(initialTheme);
49
- (0, import_react2.useEffect)(() => {
56
+ const [theme, setTheme] = (0, import_react.useState)(initialTheme);
57
+ (0, import_react.useEffect)(() => {
50
58
  if (theme !== initialTheme) {
51
59
  console.warn("ThemeProvider initial state changed: Prefer using useTheme's setTheme instead");
52
60
  setTheme(initialTheme);
53
61
  }
54
62
  }, [initialTheme]);
55
- (0, import_react2.useEffect)(() => {
63
+ (0, import_react.useEffect)(() => {
56
64
  document.documentElement.setAttribute("data-theme", theme);
57
65
  }, [theme]);
58
66
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeContext.Provider, { value: { theme, setTheme }, children });
@@ -62,7 +70,7 @@ var useTheme = () => (0, import_react.useContext)(ThemeContext);
62
70
  0 && (module.exports = {
63
71
  ThemeContext,
64
72
  ThemeProvider,
65
- defaultThemeTypeTranslation,
73
+ ThemeUtil,
66
74
  useTheme
67
75
  });
68
- //# sourceMappingURL=useTheme.js.map
76
+ //# sourceMappingURL=useTheme.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/theming/useTheme.tsx","../../src/util/noop.ts"],"sourcesContent":["import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport type { Translation } from '@/localization/useTranslation'\nimport { noop } from '@/util/noop'\n\nconst themes = ['light', 'dark'] as const\n\nexport type ThemeType = typeof themes[number]\n\nexport type ThemeTypeTranslation = Record<ThemeType, string>\n\nconst defaultThemeTypeTranslation: Translation<ThemeTypeTranslation> = {\n en: {\n dark: 'Dark',\n light: 'Light'\n },\n de: {\n dark: 'Dunkel',\n light: 'Hell'\n }\n}\n\nexport const ThemeUtil = {\n themes,\n translation: defaultThemeTypeTranslation,\n}\n\ntype ThemeContextType = {\n theme: ThemeType,\n setTheme: Dispatch<SetStateAction<ThemeType>>,\n}\n\nexport const ThemeContext = createContext<ThemeContextType>({\n theme: 'light',\n setTheme: noop\n})\n\ntype ThemeProviderProps = {\n initialTheme?: ThemeType,\n}\n\nexport const ThemeProvider = ({ children, initialTheme = 'light' }: PropsWithChildren<ThemeProviderProps>) => {\n const [theme, setTheme] = useState<ThemeType>(initialTheme)\n\n useEffect(() => {\n if (theme !== initialTheme) {\n console.warn('ThemeProvider initial state changed: Prefer using useTheme\\'s setTheme instead')\n setTheme(initialTheme)\n }\n }, [initialTheme]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', theme)\n }, [theme])\n\n return (\n <ThemeContext.Provider value={{ theme, setTheme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\n\nexport const useTheme = () => useContext(ThemeContext)\n","export const noop = () => undefined\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA+D;;;ACDxD,IAAM,OAAO,MAAM;;;ADwDtB;AAnDJ,IAAM,SAAS,CAAC,SAAS,MAAM;AAM/B,IAAM,8BAAiE;AAAA,EACrE,IAAI;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAEO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA,aAAa;AACf;AAOO,IAAM,mBAAe,4BAAgC;AAAA,EAC1D,OAAO;AAAA,EACP,UAAU;AACZ,CAAC;AAMM,IAAM,gBAAgB,CAAC,EAAE,UAAU,eAAe,QAAQ,MAA6C;AAC5G,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAoB,YAAY;AAE1D,8BAAU,MAAM;AACd,QAAI,UAAU,cAAc;AAC1B,cAAQ,KAAK,+EAAgF;AAC7F,eAAS,YAAY;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,8BAAU,MAAM;AACd,aAAS,gBAAgB,aAAa,cAAc,KAAK;AAAA,EAC3D,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,4CAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,OAAO,SAAS,GAC7C,UACH;AAEJ;AAGO,IAAM,WAAW,UAAM,yBAAW,YAAY;","names":[]}
@@ -1,12 +1,16 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { Dispatch, SetStateAction, PropsWithChildren } from 'react';
4
- import { Translation } from './useTranslation.mjs';
5
- import './useLanguage.mjs';
4
+ import { Translation } from '../localization/useTranslation.cjs';
5
+ import '../localization/util.cjs';
6
6
 
7
- type ThemeType = 'light' | 'dark';
7
+ declare const themes: readonly ["light", "dark"];
8
+ type ThemeType = typeof themes[number];
8
9
  type ThemeTypeTranslation = Record<ThemeType, string>;
9
- declare const defaultThemeTypeTranslation: Translation<ThemeTypeTranslation>;
10
+ declare const ThemeUtil: {
11
+ themes: readonly ["light", "dark"];
12
+ translation: Translation<ThemeTypeTranslation>;
13
+ };
10
14
  type ThemeContextType = {
11
15
  theme: ThemeType;
12
16
  setTheme: Dispatch<SetStateAction<ThemeType>>;
@@ -18,4 +22,4 @@ type ThemeProviderProps = {
18
22
  declare const ThemeProvider: ({ children, initialTheme }: PropsWithChildren<ThemeProviderProps>) => react_jsx_runtime.JSX.Element;
19
23
  declare const useTheme: () => ThemeContextType;
20
24
 
21
- export { ThemeContext, ThemeProvider, type ThemeType, type ThemeTypeTranslation, defaultThemeTypeTranslation, useTheme };
25
+ export { ThemeContext, ThemeProvider, type ThemeType, type ThemeTypeTranslation, ThemeUtil, useTheme };
@@ -1,12 +1,16 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { Dispatch, SetStateAction, PropsWithChildren } from 'react';
4
- import { Translation } from './useTranslation.js';
5
- import './useLanguage.js';
4
+ import { Translation } from '../localization/useTranslation.js';
5
+ import '../localization/util.js';
6
6
 
7
- type ThemeType = 'light' | 'dark';
7
+ declare const themes: readonly ["light", "dark"];
8
+ type ThemeType = typeof themes[number];
8
9
  type ThemeTypeTranslation = Record<ThemeType, string>;
9
- declare const defaultThemeTypeTranslation: Translation<ThemeTypeTranslation>;
10
+ declare const ThemeUtil: {
11
+ themes: readonly ["light", "dark"];
12
+ translation: Translation<ThemeTypeTranslation>;
13
+ };
10
14
  type ThemeContextType = {
11
15
  theme: ThemeType;
12
16
  setTheme: Dispatch<SetStateAction<ThemeType>>;
@@ -18,4 +22,4 @@ type ThemeProviderProps = {
18
22
  declare const ThemeProvider: ({ children, initialTheme }: PropsWithChildren<ThemeProviderProps>) => react_jsx_runtime.JSX.Element;
19
23
  declare const useTheme: () => ThemeContextType;
20
24
 
21
- export { ThemeContext, ThemeProvider, type ThemeType, type ThemeTypeTranslation, defaultThemeTypeTranslation, useTheme };
25
+ export { ThemeContext, ThemeProvider, type ThemeType, type ThemeTypeTranslation, ThemeUtil, useTheme };
@@ -1,7 +1,12 @@
1
- // src/hooks/useTheme.tsx
2
- import { useContext } from "react";
3
- import { createContext, useState, useEffect } from "react";
1
+ // src/theming/useTheme.tsx
2
+ import { createContext, useContext, useEffect, useState } from "react";
3
+
4
+ // src/util/noop.ts
5
+ var noop = () => void 0;
6
+
7
+ // src/theming/useTheme.tsx
4
8
  import { jsx } from "react/jsx-runtime";
9
+ var themes = ["light", "dark"];
5
10
  var defaultThemeTypeTranslation = {
6
11
  en: {
7
12
  dark: "Dark",
@@ -12,10 +17,13 @@ var defaultThemeTypeTranslation = {
12
17
  light: "Hell"
13
18
  }
14
19
  };
20
+ var ThemeUtil = {
21
+ themes,
22
+ translation: defaultThemeTypeTranslation
23
+ };
15
24
  var ThemeContext = createContext({
16
25
  theme: "light",
17
- setTheme: (_) => {
18
- }
26
+ setTheme: noop
19
27
  });
20
28
  var ThemeProvider = ({ children, initialTheme = "light" }) => {
21
29
  const [theme, setTheme] = useState(initialTheme);
@@ -34,7 +42,7 @@ var useTheme = () => useContext(ThemeContext);
34
42
  export {
35
43
  ThemeContext,
36
44
  ThemeProvider,
37
- defaultThemeTypeTranslation,
45
+ ThemeUtil,
38
46
  useTheme
39
47
  };
40
- //# sourceMappingURL=useTheme.mjs.map
48
+ //# sourceMappingURL=useTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/theming/useTheme.tsx","../../src/util/noop.ts"],"sourcesContent":["import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport type { Translation } from '@/localization/useTranslation'\nimport { noop } from '@/util/noop'\n\nconst themes = ['light', 'dark'] as const\n\nexport type ThemeType = typeof themes[number]\n\nexport type ThemeTypeTranslation = Record<ThemeType, string>\n\nconst defaultThemeTypeTranslation: Translation<ThemeTypeTranslation> = {\n en: {\n dark: 'Dark',\n light: 'Light'\n },\n de: {\n dark: 'Dunkel',\n light: 'Hell'\n }\n}\n\nexport const ThemeUtil = {\n themes,\n translation: defaultThemeTypeTranslation,\n}\n\ntype ThemeContextType = {\n theme: ThemeType,\n setTheme: Dispatch<SetStateAction<ThemeType>>,\n}\n\nexport const ThemeContext = createContext<ThemeContextType>({\n theme: 'light',\n setTheme: noop\n})\n\ntype ThemeProviderProps = {\n initialTheme?: ThemeType,\n}\n\nexport const ThemeProvider = ({ children, initialTheme = 'light' }: PropsWithChildren<ThemeProviderProps>) => {\n const [theme, setTheme] = useState<ThemeType>(initialTheme)\n\n useEffect(() => {\n if (theme !== initialTheme) {\n console.warn('ThemeProvider initial state changed: Prefer using useTheme\\'s setTheme instead')\n setTheme(initialTheme)\n }\n }, [initialTheme]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', theme)\n }, [theme])\n\n return (\n <ThemeContext.Provider value={{ theme, setTheme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\n\nexport const useTheme = () => useContext(ThemeContext)\n","export const noop = () => undefined\n"],"mappings":";AACA,SAAS,eAAe,YAAY,WAAW,gBAAgB;;;ACDxD,IAAM,OAAO,MAAM;;;ADwDtB;AAnDJ,IAAM,SAAS,CAAC,SAAS,MAAM;AAM/B,IAAM,8BAAiE;AAAA,EACrE,IAAI;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAEO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA,aAAa;AACf;AAOO,IAAM,eAAe,cAAgC;AAAA,EAC1D,OAAO;AAAA,EACP,UAAU;AACZ,CAAC;AAMM,IAAM,gBAAgB,CAAC,EAAE,UAAU,eAAe,QAAQ,MAA6C;AAC5G,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAoB,YAAY;AAE1D,YAAU,MAAM;AACd,QAAI,UAAU,cAAc;AAC1B,cAAQ,KAAK,+EAAgF;AAC7F,eAAS,YAAY;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,aAAS,gBAAgB,aAAa,cAAc,KAAK;AAAA,EAC3D,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,OAAO,SAAS,GAC7C,UACH;AAEJ;AAGO,IAAM,WAAW,MAAM,WAAW,YAAY;","names":[]}
@@ -1,4 +1,34 @@
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
+
1
20
  // src/util/array.ts
21
+ var array_exports = {};
22
+ __export(array_exports, {
23
+ ArrayUtil: () => ArrayUtil,
24
+ closestMatch: () => closestMatch,
25
+ createLoopingList: () => createLoopingList,
26
+ createLoopingListWithIndex: () => createLoopingListWithIndex,
27
+ equalSizeGroups: () => equalSizeGroups,
28
+ getNeighbours: () => getNeighbours,
29
+ range: () => range
30
+ });
31
+ module.exports = __toCommonJS(array_exports);
2
32
  var equalSizeGroups = (array, groupSize) => {
3
33
  if (groupSize <= 0) {
4
34
  console.warn(`group size should be greater than 0: groupSize = ${groupSize}`);
@@ -87,7 +117,8 @@ var ArrayUtil = {
87
117
  return list.filter((item) => !remove.has(item));
88
118
  }
89
119
  };
90
- export {
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {
91
122
  ArrayUtil,
92
123
  closestMatch,
93
124
  createLoopingList,
@@ -95,5 +126,5 @@ export {
95
126
  equalSizeGroups,
96
127
  getNeighbours,
97
128
  range
98
- };
99
- //# sourceMappingURL=array.mjs.map
129
+ });
130
+ //# sourceMappingURL=array.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/array.ts"],"sourcesContent":["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":[]}
@@ -1,34 +1,4 @@
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
1
  // src/util/array.ts
21
- var array_exports = {};
22
- __export(array_exports, {
23
- ArrayUtil: () => ArrayUtil,
24
- closestMatch: () => closestMatch,
25
- createLoopingList: () => createLoopingList,
26
- createLoopingListWithIndex: () => createLoopingListWithIndex,
27
- equalSizeGroups: () => equalSizeGroups,
28
- getNeighbours: () => getNeighbours,
29
- range: () => range
30
- });
31
- module.exports = __toCommonJS(array_exports);
32
2
  var equalSizeGroups = (array, groupSize) => {
33
3
  if (groupSize <= 0) {
34
4
  console.warn(`group size should be greater than 0: groupSize = ${groupSize}`);
@@ -117,8 +87,7 @@ var ArrayUtil = {
117
87
  return list.filter((item) => !remove.has(item));
118
88
  }
119
89
  };
120
- // Annotate the CommonJS export names for ESM import in node:
121
- 0 && (module.exports = {
90
+ export {
122
91
  ArrayUtil,
123
92
  closestMatch,
124
93
  createLoopingList,
@@ -126,5 +95,5 @@ var ArrayUtil = {
126
95
  equalSizeGroups,
127
96
  getNeighbours,
128
97
  range
129
- });
98
+ };
130
99
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/array.ts"],"sourcesContent":["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":[]}
1
+ {"version":3,"sources":["../../src/util/array.ts"],"sourcesContent":["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":[]}
@@ -0,0 +1,34 @@
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/util/builder.ts
21
+ var builder_exports = {};
22
+ __export(builder_exports, {
23
+ builder: () => builder
24
+ });
25
+ module.exports = __toCommonJS(builder_exports);
26
+ var builder = (value, update) => {
27
+ update(value);
28
+ return value;
29
+ };
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ builder
33
+ });
34
+ //# sourceMappingURL=builder.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/builder.ts"],"sourcesContent":["/**\n * A simple function that implements the builder pattern\n * @param value The value to update which gets return with the same reference\n * @param update The updates to apply on the object\n */\nexport const builder = <T>(value: T, update: (value: T) => void): T => {\n update(value)\n return value\n}\n"],"mappings":";AAKO,IAAM,UAAU,CAAI,OAAU,WAAkC;AACrE,SAAO,KAAK;AACZ,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/util/builder.ts"],"sourcesContent":["/**\n * A simple function that implements the builder pattern\n * @param value The value to update which gets return with the same reference\n * @param update The updates to apply on the object\n */\nexport const builder = <T>(value: T, update: (value: T) => void): T => {\n update(value)\n return value\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,IAAM,UAAU,CAAI,OAAU,WAAkC;AACrE,SAAO,KAAK;AACZ,SAAO;AACT;","names":[]}
@@ -1,34 +1,9 @@
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
1
  // src/util/builder.ts
21
- var builder_exports = {};
22
- __export(builder_exports, {
23
- builder: () => builder
24
- });
25
- module.exports = __toCommonJS(builder_exports);
26
2
  var builder = (value, update) => {
27
3
  update(value);
28
4
  return value;
29
5
  };
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
6
+ export {
32
7
  builder
33
- });
8
+ };
34
9
  //# sourceMappingURL=builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/builder.ts"],"sourcesContent":["/**\n * A simple function that implements the builder pattern\n * @param value The value to update which gets return with the same reference\n * @param update The updates to apply on the object\n */\nexport const builder = <T>(value: T, update: (value: T) => void): T => {\n update(value)\n return value\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,IAAM,UAAU,CAAI,OAAU,WAAkC;AACrE,SAAO,KAAK;AACZ,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/util/builder.ts"],"sourcesContent":["/**\n * A simple function that implements the builder pattern\n * @param value The value to update which gets return with the same reference\n * @param update The updates to apply on the object\n */\nexport const builder = <T>(value: T, update: (value: T) => void): T => {\n update(value)\n return value\n}\n"],"mappings":";AAKO,IAAM,UAAU,CAAI,OAAU,WAAkC;AACrE,SAAO,KAAK;AACZ,SAAO;AACT;","names":[]}
@@ -1,3 +1,40 @@
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/util/date.ts
21
+ var date_exports = {};
22
+ __export(date_exports, {
23
+ addDuration: () => addDuration,
24
+ changeDuration: () => changeDuration,
25
+ equalDate: () => equalDate,
26
+ formatDate: () => formatDate,
27
+ formatDateTime: () => formatDateTime,
28
+ getBetweenDuration: () => getBetweenDuration,
29
+ getDaysInMonth: () => getDaysInMonth,
30
+ getWeeksForCalenderMonth: () => getWeeksForCalenderMonth,
31
+ isInTimeSpan: () => isInTimeSpan,
32
+ monthsList: () => monthsList,
33
+ subtractDuration: () => subtractDuration,
34
+ weekDayList: () => weekDayList
35
+ });
36
+ module.exports = __toCommonJS(date_exports);
37
+
1
38
  // src/util/array.ts
2
39
  var equalSizeGroups = (array, groupSize) => {
3
40
  if (groupSize <= 0) {
@@ -139,7 +176,8 @@ var getWeeksForCalenderMonth = (date, weekStart, weeks = 6) => {
139
176
  }
140
177
  return equalSizeGroups(dayList, 7);
141
178
  };
142
- export {
179
+ // Annotate the CommonJS export names for ESM import in node:
180
+ 0 && (module.exports = {
143
181
  addDuration,
144
182
  changeDuration,
145
183
  equalDate,
@@ -152,5 +190,5 @@ export {
152
190
  monthsList,
153
191
  subtractDuration,
154
192
  weekDayList
155
- };
156
- //# sourceMappingURL=date.mjs.map
193
+ });
194
+ //# sourceMappingURL=date.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/date.ts","../../src/util/array.ts"],"sourcesContent":["import { equalSizeGroups } from './array'\n\nexport const monthsList = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'] as const\nexport type Month = typeof monthsList[number]\n\nexport const weekDayList = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'] as const\nexport type WeekDay = typeof weekDayList[number]\n\nexport const formatDate = (date: Date) => {\n const year = date.getFullYear().toString().padStart(4, '0')\n const month = (date.getMonth() + 1).toString().padStart(2, '0')\n const day = (date.getDate()).toString().padStart(2, '0')\n return `${year}-${month}-${day}`\n}\n\nexport const formatDateTime = (date: Date) => {\n const dateString = formatDate(date)\n const hours = date.getHours().toString().padStart(2, '0')\n const minutes = date.getMinutes().toString().padStart(2, '0')\n return `${dateString}T${hours}:${minutes}`\n}\n\nexport const getDaysInMonth = (year: number, month: number): number => {\n const lastDayOfMonth = new Date(year, month + 1, 0)\n return lastDayOfMonth.getDate()\n}\n\nexport type Duration = {\n years?: number,\n months?: number,\n days?: number,\n hours?: number,\n minutes?: number,\n seconds?: number,\n milliseconds?: number,\n}\n\nexport const changeDuration = (date: Date, duration: Duration, isAdding?: boolean): Date => {\n const {\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n } = duration\n\n // Check ranges\n if (years < 0) {\n console.error(`Range error years must be greater than 0: received ${years}`)\n return new Date(date)\n }\n if (months < 0 || months > 11) {\n console.error(`Range error month must be 0 <= month <= 11: received ${months}`)\n return new Date(date)\n }\n if (days < 0) {\n console.error(`Range error days must be greater than 0: received ${days}`)\n return new Date(date)\n }\n if (hours < 0 || hours > 23) {\n console.error(`Range error hours must be 0 <= hours <= 23: received ${hours}`)\n return new Date(date)\n }\n if (minutes < 0 || minutes > 59) {\n console.error(`Range error minutes must be 0 <= minutes <= 59: received ${minutes}`)\n return new Date(date)\n }\n if (seconds < 0 || seconds > 59) {\n console.error(`Range error seconds must be 0 <= seconds <= 59: received ${seconds}`)\n return new Date(date)\n }\n if (milliseconds < 0) {\n console.error(`Range error seconds must be greater than 0: received ${milliseconds}`)\n return new Date(date)\n }\n\n const multiplier = isAdding ? 1 : -1\n\n const newDate = new Date(date)\n\n newDate.setFullYear(newDate.getFullYear() + multiplier * years)\n\n newDate.setMonth(newDate.getMonth() + multiplier * months)\n\n newDate.setDate(newDate.getDate() + multiplier * days)\n\n newDate.setHours(newDate.getHours() + multiplier * hours)\n\n newDate.setMinutes(newDate.getMinutes() + multiplier * minutes)\n\n newDate.setSeconds(newDate.getSeconds() + multiplier * seconds)\n\n newDate.setMilliseconds(newDate.getMilliseconds() + multiplier * milliseconds)\n\n return newDate\n}\n\nexport const addDuration = (date: Date, duration: Duration): Date => {\n return changeDuration(date, duration, true)\n}\n\nexport const subtractDuration = (date: Date, duration: Duration): Date => {\n return changeDuration(date, duration, false)\n}\n\nexport const getBetweenDuration = (startDate: Date, endDate: Date): Duration => {\n const durationInMilliseconds = endDate.getTime() - startDate.getTime()\n\n const millisecondsInSecond = 1000\n const millisecondsInMinute = 60 * millisecondsInSecond\n const millisecondsInHour = 60 * millisecondsInMinute\n const millisecondsInDay = 24 * millisecondsInHour\n const millisecondsInMonth = 30 * millisecondsInDay // Rough estimation, can be adjusted\n\n const years = Math.floor(durationInMilliseconds / (365.25 * millisecondsInDay))\n const months = Math.floor(durationInMilliseconds / millisecondsInMonth)\n const days = Math.floor(durationInMilliseconds / millisecondsInDay)\n const hours = Math.floor((durationInMilliseconds % millisecondsInDay) / millisecondsInHour)\n const seconds = Math.floor((durationInMilliseconds % millisecondsInHour) / millisecondsInSecond)\n const milliseconds = durationInMilliseconds % millisecondsInSecond\n\n return {\n years,\n months,\n days,\n hours,\n seconds,\n milliseconds,\n }\n}\n\n/** Checks if a given date is in the range of two dates\n *\n * An undefined value for startDate or endDate means no bound for the start or end respectively\n */\nexport const isInTimeSpan = (value: Date, startDate?: Date, endDate?: Date): boolean => {\n if (startDate && endDate) {\n console.assert(startDate <= endDate)\n return startDate <= value && value <= endDate\n } else if (startDate) {\n return startDate <= value\n } else if (endDate) {\n return endDate >= value\n } else {\n return true\n }\n}\n\n/** Compare two dates on the year, month, day */\nexport const equalDate = (date1: Date, date2: Date) => {\n return date1.getFullYear() === date2.getFullYear()\n && date1.getMonth() === date2.getMonth()\n && date1.getDate() === date2.getDate()\n}\n\nexport const getWeeksForCalenderMonth = (date: Date, weekStart: WeekDay, weeks: number = 6) => {\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const dayList: Date[] = []\n let currentDate = new Date(year, month, 1) // Start of month\n const weekStartIndex = weekDayList.indexOf(weekStart)\n\n // Move the current day to the week before\n while (currentDate.getDay() !== weekStartIndex) {\n currentDate = subtractDuration(currentDate, { days: 1 })\n }\n\n while (dayList.length < 7 * weeks) {\n const date = new Date(currentDate)\n date.setHours(date.getHours(), date.getMinutes()) // To make sure we are not overwriting the time\n dayList.push(date)\n currentDate = addDuration(currentDate, { days: 1 })\n }\n\n // weeks\n return equalSizeGroups(dayList, 7)\n}\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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,kBAAkB,CAAI,OAAY,cAA6B;AAC1E,MAAI,aAAa,GAAG;AAClB,YAAQ,KAAK,oDAAoD,SAAS,EAAE;AAC5E,WAAO,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,EACpB;AAEA,QAAM,SAAS,CAAC;AAChB,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,WAAW;AAChD,WAAO,KAAK,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,WAAW,MAAM,MAAM,CAAC,CAAC;AAAA,EACnE;AACA,SAAO;AACT;;;ADTO,IAAM,aAAa,CAAC,WAAW,YAAY,SAAS,SAAS,OAAO,QAAQ,QAAQ,UAAU,aAAa,WAAW,YAAY,UAAU;AAG5I,IAAM,cAAc,CAAC,UAAU,UAAU,WAAW,aAAa,YAAY,UAAU,UAAU;AAGjG,IAAM,aAAa,CAAC,SAAe;AACxC,QAAM,OAAO,KAAK,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AAC1D,QAAM,SAAS,KAAK,SAAS,IAAI,GAAG,SAAS,EAAE,SAAS,GAAG,GAAG;AAC9D,QAAM,MAAO,KAAK,QAAQ,EAAG,SAAS,EAAE,SAAS,GAAG,GAAG;AACvD,SAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG;AAChC;AAEO,IAAM,iBAAiB,CAAC,SAAe;AAC5C,QAAM,aAAa,WAAW,IAAI;AAClC,QAAM,QAAQ,KAAK,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AACxD,QAAM,UAAU,KAAK,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AAC5D,SAAO,GAAG,UAAU,IAAI,KAAK,IAAI,OAAO;AAC1C;AAEO,IAAM,iBAAiB,CAAC,MAAc,UAA0B;AACrE,QAAM,iBAAiB,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC;AAClD,SAAO,eAAe,QAAQ;AAChC;AAYO,IAAM,iBAAiB,CAAC,MAAY,UAAoB,aAA6B;AAC1F,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,eAAe;AAAA,EACjB,IAAI;AAGJ,MAAI,QAAQ,GAAG;AACb,YAAQ,MAAM,sDAAsD,KAAK,EAAE;AAC3E,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AACA,MAAI,SAAS,KAAK,SAAS,IAAI;AAC7B,YAAQ,MAAM,wDAAwD,MAAM,EAAE;AAC9E,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AACA,MAAI,OAAO,GAAG;AACZ,YAAQ,MAAM,qDAAqD,IAAI,EAAE;AACzE,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AACA,MAAI,QAAQ,KAAK,QAAQ,IAAI;AAC3B,YAAQ,MAAM,wDAAwD,KAAK,EAAE;AAC7E,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AACA,MAAI,UAAU,KAAK,UAAU,IAAI;AAC/B,YAAQ,MAAM,4DAA4D,OAAO,EAAE;AACnF,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AACA,MAAI,UAAU,KAAK,UAAU,IAAI;AAC/B,YAAQ,MAAM,4DAA4D,OAAO,EAAE;AACnF,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AACA,MAAI,eAAe,GAAG;AACpB,YAAQ,MAAM,wDAAwD,YAAY,EAAE;AACpF,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AAEA,QAAM,aAAa,WAAW,IAAI;AAElC,QAAM,UAAU,IAAI,KAAK,IAAI;AAE7B,UAAQ,YAAY,QAAQ,YAAY,IAAI,aAAa,KAAK;AAE9D,UAAQ,SAAS,QAAQ,SAAS,IAAI,aAAa,MAAM;AAEzD,UAAQ,QAAQ,QAAQ,QAAQ,IAAI,aAAa,IAAI;AAErD,UAAQ,SAAS,QAAQ,SAAS,IAAI,aAAa,KAAK;AAExD,UAAQ,WAAW,QAAQ,WAAW,IAAI,aAAa,OAAO;AAE9D,UAAQ,WAAW,QAAQ,WAAW,IAAI,aAAa,OAAO;AAE9D,UAAQ,gBAAgB,QAAQ,gBAAgB,IAAI,aAAa,YAAY;AAE7E,SAAO;AACT;AAEO,IAAM,cAAc,CAAC,MAAY,aAA6B;AACnE,SAAO,eAAe,MAAM,UAAU,IAAI;AAC5C;AAEO,IAAM,mBAAmB,CAAC,MAAY,aAA6B;AACxE,SAAO,eAAe,MAAM,UAAU,KAAK;AAC7C;AAEO,IAAM,qBAAqB,CAAC,WAAiB,YAA4B;AAC9E,QAAM,yBAAyB,QAAQ,QAAQ,IAAI,UAAU,QAAQ;AAErE,QAAM,uBAAuB;AAC7B,QAAM,uBAAuB,KAAK;AAClC,QAAM,qBAAqB,KAAK;AAChC,QAAM,oBAAoB,KAAK;AAC/B,QAAM,sBAAsB,KAAK;AAEjC,QAAM,QAAQ,KAAK,MAAM,0BAA0B,SAAS,kBAAkB;AAC9E,QAAM,SAAS,KAAK,MAAM,yBAAyB,mBAAmB;AACtE,QAAM,OAAO,KAAK,MAAM,yBAAyB,iBAAiB;AAClE,QAAM,QAAQ,KAAK,MAAO,yBAAyB,oBAAqB,kBAAkB;AAC1F,QAAM,UAAU,KAAK,MAAO,yBAAyB,qBAAsB,oBAAoB;AAC/F,QAAM,eAAe,yBAAyB;AAE9C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAMO,IAAM,eAAe,CAAC,OAAa,WAAkB,YAA4B;AACtF,MAAI,aAAa,SAAS;AACxB,YAAQ,OAAO,aAAa,OAAO;AACnC,WAAO,aAAa,SAAS,SAAS;AAAA,EACxC,WAAW,WAAW;AACpB,WAAO,aAAa;AAAA,EACtB,WAAW,SAAS;AAClB,WAAO,WAAW;AAAA,EACpB,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAGO,IAAM,YAAY,CAAC,OAAa,UAAgB;AACrD,SAAO,MAAM,YAAY,MAAM,MAAM,YAAY,KAC5C,MAAM,SAAS,MAAM,MAAM,SAAS,KACpC,MAAM,QAAQ,MAAM,MAAM,QAAQ;AACzC;AAEO,IAAM,2BAA2B,CAAC,MAAY,WAAoB,QAAgB,MAAM;AAC7F,QAAM,QAAQ,KAAK,SAAS;AAC5B,QAAM,OAAO,KAAK,YAAY;AAE9B,QAAM,UAAkB,CAAC;AACzB,MAAI,cAAc,IAAI,KAAK,MAAM,OAAO,CAAC;AACzC,QAAM,iBAAiB,YAAY,QAAQ,SAAS;AAGpD,SAAO,YAAY,OAAO,MAAM,gBAAgB;AAC9C,kBAAc,iBAAiB,aAAa,EAAE,MAAM,EAAE,CAAC;AAAA,EACzD;AAEA,SAAO,QAAQ,SAAS,IAAI,OAAO;AACjC,UAAMA,QAAO,IAAI,KAAK,WAAW;AACjC,IAAAA,MAAK,SAASA,MAAK,SAAS,GAAGA,MAAK,WAAW,CAAC;AAChD,YAAQ,KAAKA,KAAI;AACjB,kBAAc,YAAY,aAAa,EAAE,MAAM,EAAE,CAAC;AAAA,EACpD;AAGA,SAAO,gBAAgB,SAAS,CAAC;AACnC;","names":["date"]}
package/dist/util/date.js CHANGED
@@ -1,40 +1,3 @@
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/util/date.ts
21
- var date_exports = {};
22
- __export(date_exports, {
23
- addDuration: () => addDuration,
24
- changeDuration: () => changeDuration,
25
- equalDate: () => equalDate,
26
- formatDate: () => formatDate,
27
- formatDateTime: () => formatDateTime,
28
- getBetweenDuration: () => getBetweenDuration,
29
- getDaysInMonth: () => getDaysInMonth,
30
- getWeeksForCalenderMonth: () => getWeeksForCalenderMonth,
31
- isInTimeSpan: () => isInTimeSpan,
32
- monthsList: () => monthsList,
33
- subtractDuration: () => subtractDuration,
34
- weekDayList: () => weekDayList
35
- });
36
- module.exports = __toCommonJS(date_exports);
37
-
38
1
  // src/util/array.ts
39
2
  var equalSizeGroups = (array, groupSize) => {
40
3
  if (groupSize <= 0) {
@@ -176,8 +139,7 @@ var getWeeksForCalenderMonth = (date, weekStart, weeks = 6) => {
176
139
  }
177
140
  return equalSizeGroups(dayList, 7);
178
141
  };
179
- // Annotate the CommonJS export names for ESM import in node:
180
- 0 && (module.exports = {
142
+ export {
181
143
  addDuration,
182
144
  changeDuration,
183
145
  equalDate,
@@ -190,5 +152,5 @@ var getWeeksForCalenderMonth = (date, weekStart, weeks = 6) => {
190
152
  monthsList,
191
153
  subtractDuration,
192
154
  weekDayList
193
- });
155
+ };
194
156
  //# sourceMappingURL=date.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/date.ts","../../src/util/array.ts"],"sourcesContent":["import { equalSizeGroups } from './array'\n\nexport const monthsList = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'] as const\nexport type Month = typeof monthsList[number]\n\nexport const weekDayList = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'] as const\nexport type WeekDay = typeof weekDayList[number]\n\nexport const formatDate = (date: Date) => {\n const year = date.getFullYear().toString().padStart(4, '0')\n const month = (date.getMonth() + 1).toString().padStart(2, '0')\n const day = (date.getDate()).toString().padStart(2, '0')\n return `${year}-${month}-${day}`\n}\n\nexport const formatDateTime = (date: Date) => {\n const dateString = formatDate(date)\n const hours = date.getHours().toString().padStart(2, '0')\n const minutes = date.getMinutes().toString().padStart(2, '0')\n return `${dateString}T${hours}:${minutes}`\n}\n\nexport const getDaysInMonth = (year: number, month: number): number => {\n const lastDayOfMonth = new Date(year, month + 1, 0)\n return lastDayOfMonth.getDate()\n}\n\nexport type Duration = {\n years?: number,\n months?: number,\n days?: number,\n hours?: number,\n minutes?: number,\n seconds?: number,\n milliseconds?: number,\n}\n\nexport const changeDuration = (date: Date, duration: Duration, isAdding?: boolean): Date => {\n const {\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n } = duration\n\n // Check ranges\n if (years < 0) {\n console.error(`Range error years must be greater than 0: received ${years}`)\n return new Date(date)\n }\n if (months < 0 || months > 11) {\n console.error(`Range error month must be 0 <= month <= 11: received ${months}`)\n return new Date(date)\n }\n if (days < 0) {\n console.error(`Range error days must be greater than 0: received ${days}`)\n return new Date(date)\n }\n if (hours < 0 || hours > 23) {\n console.error(`Range error hours must be 0 <= hours <= 23: received ${hours}`)\n return new Date(date)\n }\n if (minutes < 0 || minutes > 59) {\n console.error(`Range error minutes must be 0 <= minutes <= 59: received ${minutes}`)\n return new Date(date)\n }\n if (seconds < 0 || seconds > 59) {\n console.error(`Range error seconds must be 0 <= seconds <= 59: received ${seconds}`)\n return new Date(date)\n }\n if (milliseconds < 0) {\n console.error(`Range error seconds must be greater than 0: received ${milliseconds}`)\n return new Date(date)\n }\n\n const multiplier = isAdding ? 1 : -1\n\n const newDate = new Date(date)\n\n newDate.setFullYear(newDate.getFullYear() + multiplier * years)\n\n newDate.setMonth(newDate.getMonth() + multiplier * months)\n\n newDate.setDate(newDate.getDate() + multiplier * days)\n\n newDate.setHours(newDate.getHours() + multiplier * hours)\n\n newDate.setMinutes(newDate.getMinutes() + multiplier * minutes)\n\n newDate.setSeconds(newDate.getSeconds() + multiplier * seconds)\n\n newDate.setMilliseconds(newDate.getMilliseconds() + multiplier * milliseconds)\n\n return newDate\n}\n\nexport const addDuration = (date: Date, duration: Duration): Date => {\n return changeDuration(date, duration, true)\n}\n\nexport const subtractDuration = (date: Date, duration: Duration): Date => {\n return changeDuration(date, duration, false)\n}\n\nexport const getBetweenDuration = (startDate: Date, endDate: Date): Duration => {\n const durationInMilliseconds = endDate.getTime() - startDate.getTime()\n\n const millisecondsInSecond = 1000\n const millisecondsInMinute = 60 * millisecondsInSecond\n const millisecondsInHour = 60 * millisecondsInMinute\n const millisecondsInDay = 24 * millisecondsInHour\n const millisecondsInMonth = 30 * millisecondsInDay // Rough estimation, can be adjusted\n\n const years = Math.floor(durationInMilliseconds / (365.25 * millisecondsInDay))\n const months = Math.floor(durationInMilliseconds / millisecondsInMonth)\n const days = Math.floor(durationInMilliseconds / millisecondsInDay)\n const hours = Math.floor((durationInMilliseconds % millisecondsInDay) / millisecondsInHour)\n const seconds = Math.floor((durationInMilliseconds % millisecondsInHour) / millisecondsInSecond)\n const milliseconds = durationInMilliseconds % millisecondsInSecond\n\n return {\n years,\n months,\n days,\n hours,\n seconds,\n milliseconds,\n }\n}\n\n/** Checks if a given date is in the range of two dates\n *\n * An undefined value for startDate or endDate means no bound for the start or end respectively\n */\nexport const isInTimeSpan = (value: Date, startDate?: Date, endDate?: Date): boolean => {\n if(startDate && endDate) {\n console.assert(startDate <= endDate)\n return startDate <= value && value <= endDate\n } else if (startDate) {\n return startDate <= value\n } else if(endDate) {\n return endDate >= value\n } else {\n return true\n }\n}\n\n/** Compare two dates on the year, month, day */\nexport const equalDate = (date1: Date, date2: Date) => {\n return date1.getFullYear() === date2.getFullYear()\n && date1.getMonth() === date2.getMonth()\n && date1.getDate() === date2.getDate()\n}\n\nexport const getWeeksForCalenderMonth = (date: Date, weekStart: WeekDay, weeks: number = 6) => {\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const dayList: Date[] = []\n let currentDate = new Date(year, month, 1) // Start of month\n const weekStartIndex = weekDayList.indexOf(weekStart)\n\n // Move the current day to the week before\n while (currentDate.getDay() !== weekStartIndex) {\n currentDate = subtractDuration(currentDate, { days: 1 })\n }\n\n while (dayList.length < 7 * weeks) {\n const date = new Date(currentDate)\n date.setHours(date.getHours(), date.getMinutes()) // To make sure we are not overwriting the time\n dayList.push(date)\n currentDate = addDuration(currentDate, { days: 1 })\n }\n\n // weeks\n return equalSizeGroups(dayList, 7)\n}\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":["date"]}
1
+ {"version":3,"sources":["../../src/util/array.ts","../../src/util/date.ts"],"sourcesContent":["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","import { equalSizeGroups } from './array'\n\nexport const monthsList = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'] as const\nexport type Month = typeof monthsList[number]\n\nexport const weekDayList = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'] as const\nexport type WeekDay = typeof weekDayList[number]\n\nexport const formatDate = (date: Date) => {\n const year = date.getFullYear().toString().padStart(4, '0')\n const month = (date.getMonth() + 1).toString().padStart(2, '0')\n const day = (date.getDate()).toString().padStart(2, '0')\n return `${year}-${month}-${day}`\n}\n\nexport const formatDateTime = (date: Date) => {\n const dateString = formatDate(date)\n const hours = date.getHours().toString().padStart(2, '0')\n const minutes = date.getMinutes().toString().padStart(2, '0')\n return `${dateString}T${hours}:${minutes}`\n}\n\nexport const getDaysInMonth = (year: number, month: number): number => {\n const lastDayOfMonth = new Date(year, month + 1, 0)\n return lastDayOfMonth.getDate()\n}\n\nexport type Duration = {\n years?: number,\n months?: number,\n days?: number,\n hours?: number,\n minutes?: number,\n seconds?: number,\n milliseconds?: number,\n}\n\nexport const changeDuration = (date: Date, duration: Duration, isAdding?: boolean): Date => {\n const {\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n } = duration\n\n // Check ranges\n if (years < 0) {\n console.error(`Range error years must be greater than 0: received ${years}`)\n return new Date(date)\n }\n if (months < 0 || months > 11) {\n console.error(`Range error month must be 0 <= month <= 11: received ${months}`)\n return new Date(date)\n }\n if (days < 0) {\n console.error(`Range error days must be greater than 0: received ${days}`)\n return new Date(date)\n }\n if (hours < 0 || hours > 23) {\n console.error(`Range error hours must be 0 <= hours <= 23: received ${hours}`)\n return new Date(date)\n }\n if (minutes < 0 || minutes > 59) {\n console.error(`Range error minutes must be 0 <= minutes <= 59: received ${minutes}`)\n return new Date(date)\n }\n if (seconds < 0 || seconds > 59) {\n console.error(`Range error seconds must be 0 <= seconds <= 59: received ${seconds}`)\n return new Date(date)\n }\n if (milliseconds < 0) {\n console.error(`Range error seconds must be greater than 0: received ${milliseconds}`)\n return new Date(date)\n }\n\n const multiplier = isAdding ? 1 : -1\n\n const newDate = new Date(date)\n\n newDate.setFullYear(newDate.getFullYear() + multiplier * years)\n\n newDate.setMonth(newDate.getMonth() + multiplier * months)\n\n newDate.setDate(newDate.getDate() + multiplier * days)\n\n newDate.setHours(newDate.getHours() + multiplier * hours)\n\n newDate.setMinutes(newDate.getMinutes() + multiplier * minutes)\n\n newDate.setSeconds(newDate.getSeconds() + multiplier * seconds)\n\n newDate.setMilliseconds(newDate.getMilliseconds() + multiplier * milliseconds)\n\n return newDate\n}\n\nexport const addDuration = (date: Date, duration: Duration): Date => {\n return changeDuration(date, duration, true)\n}\n\nexport const subtractDuration = (date: Date, duration: Duration): Date => {\n return changeDuration(date, duration, false)\n}\n\nexport const getBetweenDuration = (startDate: Date, endDate: Date): Duration => {\n const durationInMilliseconds = endDate.getTime() - startDate.getTime()\n\n const millisecondsInSecond = 1000\n const millisecondsInMinute = 60 * millisecondsInSecond\n const millisecondsInHour = 60 * millisecondsInMinute\n const millisecondsInDay = 24 * millisecondsInHour\n const millisecondsInMonth = 30 * millisecondsInDay // Rough estimation, can be adjusted\n\n const years = Math.floor(durationInMilliseconds / (365.25 * millisecondsInDay))\n const months = Math.floor(durationInMilliseconds / millisecondsInMonth)\n const days = Math.floor(durationInMilliseconds / millisecondsInDay)\n const hours = Math.floor((durationInMilliseconds % millisecondsInDay) / millisecondsInHour)\n const seconds = Math.floor((durationInMilliseconds % millisecondsInHour) / millisecondsInSecond)\n const milliseconds = durationInMilliseconds % millisecondsInSecond\n\n return {\n years,\n months,\n days,\n hours,\n seconds,\n milliseconds,\n }\n}\n\n/** Checks if a given date is in the range of two dates\n *\n * An undefined value for startDate or endDate means no bound for the start or end respectively\n */\nexport const isInTimeSpan = (value: Date, startDate?: Date, endDate?: Date): boolean => {\n if (startDate && endDate) {\n console.assert(startDate <= endDate)\n return startDate <= value && value <= endDate\n } else if (startDate) {\n return startDate <= value\n } else if (endDate) {\n return endDate >= value\n } else {\n return true\n }\n}\n\n/** Compare two dates on the year, month, day */\nexport const equalDate = (date1: Date, date2: Date) => {\n return date1.getFullYear() === date2.getFullYear()\n && date1.getMonth() === date2.getMonth()\n && date1.getDate() === date2.getDate()\n}\n\nexport const getWeeksForCalenderMonth = (date: Date, weekStart: WeekDay, weeks: number = 6) => {\n const month = date.getMonth()\n const year = date.getFullYear()\n\n const dayList: Date[] = []\n let currentDate = new Date(year, month, 1) // Start of month\n const weekStartIndex = weekDayList.indexOf(weekStart)\n\n // Move the current day to the week before\n while (currentDate.getDay() !== weekStartIndex) {\n currentDate = subtractDuration(currentDate, { days: 1 })\n }\n\n while (dayList.length < 7 * weeks) {\n const date = new Date(currentDate)\n date.setHours(date.getHours(), date.getMinutes()) // To make sure we are not overwriting the time\n dayList.push(date)\n currentDate = addDuration(currentDate, { days: 1 })\n }\n\n // weeks\n return equalSizeGroups(dayList, 7)\n}\n"],"mappings":"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","names":["date"]}