@helpwave/hightide 0.1.26 → 0.1.28

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 (336) hide show
  1. package/dist/coloring/index.d.mts +2 -0
  2. package/dist/coloring/index.d.ts +2 -0
  3. package/dist/coloring/index.js +85 -0
  4. package/dist/coloring/index.js.map +1 -0
  5. package/dist/coloring/index.mjs +48 -0
  6. package/dist/coloring/index.mjs.map +1 -0
  7. package/dist/components/branding/index.d.mts +3 -0
  8. package/dist/components/branding/index.d.ts +3 -0
  9. package/dist/components/branding/index.js +140 -0
  10. package/dist/components/branding/index.js.map +1 -0
  11. package/dist/components/branding/index.mjs +104 -0
  12. package/dist/components/branding/index.mjs.map +1 -0
  13. package/dist/components/date/DatePicker.js +1 -1
  14. package/dist/components/date/DatePicker.js.map +1 -1
  15. package/dist/components/date/DatePicker.mjs +1 -1
  16. package/dist/components/date/DatePicker.mjs.map +1 -1
  17. package/dist/components/date/YearMonthPicker.js +1 -1
  18. package/dist/components/date/YearMonthPicker.js.map +1 -1
  19. package/dist/components/date/YearMonthPicker.mjs +1 -1
  20. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  21. package/dist/components/date/index.d.mts +10 -0
  22. package/dist/components/date/index.d.ts +10 -0
  23. package/dist/components/date/index.js +1168 -0
  24. package/dist/components/date/index.js.map +1 -0
  25. package/dist/components/date/index.mjs +1124 -0
  26. package/dist/components/date/index.mjs.map +1 -0
  27. package/dist/components/dialog/ConfirmDialog.d.mts +1 -1
  28. package/dist/components/dialog/ConfirmDialog.d.ts +1 -1
  29. package/dist/components/dialog/ConfirmDialog.js +2 -2
  30. package/dist/components/dialog/ConfirmDialog.js.map +1 -1
  31. package/dist/components/dialog/ConfirmDialog.mjs +2 -2
  32. package/dist/components/dialog/ConfirmDialog.mjs.map +1 -1
  33. package/dist/components/dialog/Dialog.d.mts +1 -1
  34. package/dist/components/dialog/Dialog.d.ts +1 -1
  35. package/dist/components/dialog/Dialog.js +2 -2
  36. package/dist/components/dialog/Dialog.js.map +1 -1
  37. package/dist/components/dialog/Dialog.mjs +2 -2
  38. package/dist/components/dialog/Dialog.mjs.map +1 -1
  39. package/dist/components/dialog/DiscardChangesDialog.d.mts +1 -1
  40. package/dist/components/dialog/DiscardChangesDialog.d.ts +1 -1
  41. package/dist/components/dialog/DiscardChangesDialog.js +2 -2
  42. package/dist/components/dialog/DiscardChangesDialog.js.map +1 -1
  43. package/dist/components/dialog/DiscardChangesDialog.mjs +2 -2
  44. package/dist/components/dialog/DiscardChangesDialog.mjs.map +1 -1
  45. package/dist/components/dialog/InputDialog.d.mts +1 -1
  46. package/dist/components/dialog/InputDialog.d.ts +1 -1
  47. package/dist/components/dialog/InputDialog.js +2 -2
  48. package/dist/components/dialog/InputDialog.js.map +1 -1
  49. package/dist/components/dialog/InputDialog.mjs +2 -2
  50. package/dist/components/dialog/InputDialog.mjs.map +1 -1
  51. package/dist/components/dialog/LanguageDialog.d.mts +1 -1
  52. package/dist/components/dialog/LanguageDialog.d.ts +1 -1
  53. package/dist/components/dialog/LanguageDialog.js +28 -15
  54. package/dist/components/dialog/LanguageDialog.js.map +1 -1
  55. package/dist/components/dialog/LanguageDialog.mjs +28 -15
  56. package/dist/components/dialog/LanguageDialog.mjs.map +1 -1
  57. package/dist/components/dialog/ThemeDialog.d.mts +1 -1
  58. package/dist/components/dialog/ThemeDialog.d.ts +1 -1
  59. package/dist/components/dialog/ThemeDialog.js +69 -33
  60. package/dist/components/dialog/ThemeDialog.js.map +1 -1
  61. package/dist/components/dialog/ThemeDialog.mjs +60 -24
  62. package/dist/components/dialog/ThemeDialog.mjs.map +1 -1
  63. package/dist/components/dialog/index.d.mts +1 -1
  64. package/dist/components/dialog/index.d.ts +1 -1
  65. package/dist/components/dialog/index.js +61 -25
  66. package/dist/components/dialog/index.js.map +1 -1
  67. package/dist/components/dialog/index.mjs +61 -25
  68. package/dist/components/dialog/index.mjs.map +1 -1
  69. package/dist/components/form/index.d.mts +5 -0
  70. package/dist/components/form/index.d.ts +5 -0
  71. package/dist/components/form/index.js +100 -0
  72. package/dist/components/form/index.js.map +1 -0
  73. package/dist/components/form/index.mjs +64 -0
  74. package/dist/components/form/index.mjs.map +1 -0
  75. package/dist/components/icons-and-geometry/index.d.mts +7 -0
  76. package/dist/components/icons-and-geometry/index.d.ts +7 -0
  77. package/dist/components/icons-and-geometry/index.js +3955 -0
  78. package/dist/components/icons-and-geometry/index.js.map +1 -0
  79. package/dist/components/icons-and-geometry/index.mjs +3939 -0
  80. package/dist/components/icons-and-geometry/index.mjs.map +1 -0
  81. package/dist/components/index.d.mts +83 -0
  82. package/dist/components/index.d.ts +83 -0
  83. package/dist/components/index.js +15471 -0
  84. package/dist/components/index.js.map +1 -0
  85. package/dist/components/index.mjs +15377 -0
  86. package/dist/components/index.mjs.map +1 -0
  87. package/dist/components/layout/Carousel.d.mts +33 -0
  88. package/dist/components/layout/Carousel.d.ts +33 -0
  89. package/dist/components/layout/Carousel.js +684 -0
  90. package/dist/components/layout/Carousel.js.map +1 -0
  91. package/dist/components/layout/Carousel.mjs +659 -0
  92. package/dist/components/layout/Carousel.mjs.map +1 -0
  93. package/dist/components/{layout-and-navigation → layout}/Chip.js +1 -1
  94. package/dist/components/layout/Chip.js.map +1 -0
  95. package/dist/components/{layout-and-navigation → layout}/Chip.mjs +1 -1
  96. package/dist/components/layout/Chip.mjs.map +1 -0
  97. package/dist/components/{layout-and-navigation → layout}/DividerInserter.js +1 -1
  98. package/dist/components/layout/DividerInserter.js.map +1 -0
  99. package/dist/components/{layout-and-navigation → layout}/DividerInserter.mjs +1 -1
  100. package/dist/components/layout/DividerInserter.mjs.map +1 -0
  101. package/dist/components/{layout-and-navigation → layout}/Expandable.js +2 -2
  102. package/dist/components/layout/Expandable.js.map +1 -0
  103. package/dist/components/{layout-and-navigation → layout}/Expandable.mjs +2 -2
  104. package/dist/components/layout/Expandable.mjs.map +1 -0
  105. package/dist/components/{layout-and-navigation → layout}/FAQSection.js +5 -5
  106. package/dist/components/layout/FAQSection.js.map +1 -0
  107. package/dist/components/{layout-and-navigation → layout}/FAQSection.mjs +5 -5
  108. package/dist/components/layout/FAQSection.mjs.map +1 -0
  109. package/dist/components/{layout-and-navigation → layout}/FloatingContainer.js +2 -2
  110. package/dist/components/layout/FloatingContainer.js.map +1 -0
  111. package/dist/components/{layout-and-navigation → layout}/FloatingContainer.mjs +2 -2
  112. package/dist/components/layout/FloatingContainer.mjs.map +1 -0
  113. package/dist/components/{layout-and-navigation → layout}/ListBox.js +2 -2
  114. package/dist/components/layout/ListBox.js.map +1 -0
  115. package/dist/components/{layout-and-navigation → layout}/ListBox.mjs +2 -2
  116. package/dist/components/layout/ListBox.mjs.map +1 -0
  117. package/dist/components/{layout-and-navigation → layout}/MarkdownInterpreter.js +1 -1
  118. package/dist/components/layout/MarkdownInterpreter.js.map +1 -0
  119. package/dist/components/{layout-and-navigation → layout}/MarkdownInterpreter.mjs +1 -1
  120. package/dist/components/layout/MarkdownInterpreter.mjs.map +1 -0
  121. package/dist/components/{layout-and-navigation → layout}/ScrollArea.js +2 -2
  122. package/dist/components/layout/ScrollArea.js.map +1 -0
  123. package/dist/components/{layout-and-navigation → layout}/ScrollArea.mjs +1 -1
  124. package/dist/components/layout/ScrollArea.mjs.map +1 -0
  125. package/dist/components/{layout-and-navigation → layout}/TextImage.js +3 -3
  126. package/dist/components/layout/TextImage.js.map +1 -0
  127. package/dist/components/{layout-and-navigation → layout}/TextImage.mjs +2 -2
  128. package/dist/components/layout/TextImage.mjs.map +1 -0
  129. package/dist/components/{layout-and-navigation → layout}/VerticalDivider.js +1 -1
  130. package/dist/components/layout/VerticalDivider.js.map +1 -0
  131. package/dist/components/{layout-and-navigation → layout}/VerticalDivider.mjs +1 -1
  132. package/dist/components/layout/VerticalDivider.mjs.map +1 -0
  133. package/dist/components/layout/index.d.mts +18 -0
  134. package/dist/components/layout/index.d.ts +18 -0
  135. package/dist/components/layout/index.js +3111 -0
  136. package/dist/components/layout/index.js.map +1 -0
  137. package/dist/components/layout/index.mjs +3064 -0
  138. package/dist/components/layout/index.mjs.map +1 -0
  139. package/dist/components/loading-states/index.d.mts +12 -0
  140. package/dist/components/loading-states/index.d.ts +12 -0
  141. package/dist/components/loading-states/index.js +614 -0
  142. package/dist/components/loading-states/index.js.map +1 -0
  143. package/dist/components/loading-states/index.mjs +573 -0
  144. package/dist/components/loading-states/index.mjs.map +1 -0
  145. package/dist/components/{layout-and-navigation → navigation}/BreadCrumb.js +1 -1
  146. package/dist/components/navigation/BreadCrumb.js.map +1 -0
  147. package/dist/components/{layout-and-navigation → navigation}/BreadCrumb.mjs +1 -1
  148. package/dist/components/navigation/BreadCrumb.mjs.map +1 -0
  149. package/dist/components/navigation/Navigation.d.mts +21 -0
  150. package/dist/components/navigation/Navigation.d.ts +21 -0
  151. package/dist/components/navigation/Navigation.js +4018 -0
  152. package/dist/components/navigation/Navigation.js.map +1 -0
  153. package/dist/components/navigation/Navigation.mjs +4012 -0
  154. package/dist/components/navigation/Navigation.mjs.map +1 -0
  155. package/dist/components/{layout-and-navigation → navigation}/Pagination.js +3 -3
  156. package/dist/components/navigation/Pagination.js.map +1 -0
  157. package/dist/components/{layout-and-navigation → navigation}/Pagination.mjs +3 -3
  158. package/dist/components/navigation/Pagination.mjs.map +1 -0
  159. package/dist/components/{layout-and-navigation → navigation}/StepperBar.js +3 -3
  160. package/dist/components/navigation/StepperBar.js.map +1 -0
  161. package/dist/components/{layout-and-navigation → navigation}/StepperBar.mjs +3 -3
  162. package/dist/components/navigation/StepperBar.mjs.map +1 -0
  163. package/dist/components/navigation/index.d.mts +9 -0
  164. package/dist/components/navigation/index.d.ts +9 -0
  165. package/dist/components/navigation/index.js +4660 -0
  166. package/dist/components/navigation/index.js.map +1 -0
  167. package/dist/components/navigation/index.mjs +4648 -0
  168. package/dist/components/navigation/index.mjs.map +1 -0
  169. package/dist/components/properties/MultiSelectProperty.js +27 -14
  170. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  171. package/dist/components/properties/MultiSelectProperty.mjs +27 -14
  172. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  173. package/dist/components/properties/SelectProperty.js +27 -14
  174. package/dist/components/properties/SelectProperty.js.map +1 -1
  175. package/dist/components/properties/SelectProperty.mjs +27 -14
  176. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  177. package/dist/components/properties/index.d.mts +12 -0
  178. package/dist/components/properties/index.d.ts +12 -0
  179. package/dist/components/properties/index.js +2983 -0
  180. package/dist/components/properties/index.js.map +1 -0
  181. package/dist/components/properties/index.mjs +2951 -0
  182. package/dist/components/properties/index.mjs.map +1 -0
  183. package/dist/components/table/Table.js +1 -1
  184. package/dist/components/table/Table.js.map +1 -1
  185. package/dist/components/table/Table.mjs +1 -1
  186. package/dist/components/table/Table.mjs.map +1 -1
  187. package/dist/components/table/index.d.mts +10 -0
  188. package/dist/components/table/index.d.ts +10 -0
  189. package/dist/components/table/index.js +2329 -0
  190. package/dist/components/table/index.js.map +1 -0
  191. package/dist/components/table/index.mjs +2293 -0
  192. package/dist/components/table/index.mjs.map +1 -0
  193. package/dist/components/user-action/DateAndTimePicker.js +1 -1
  194. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  195. package/dist/components/user-action/DateAndTimePicker.mjs +1 -1
  196. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  197. package/dist/components/user-action/index.d.mts +30 -0
  198. package/dist/components/user-action/index.d.ts +30 -0
  199. package/dist/components/user-action/index.js +4257 -0
  200. package/dist/components/user-action/index.js.map +1 -0
  201. package/dist/components/user-action/index.mjs +4195 -0
  202. package/dist/components/user-action/index.mjs.map +1 -0
  203. package/dist/components/user-action/input/index.d.mts +6 -0
  204. package/dist/components/user-action/input/index.d.ts +6 -0
  205. package/dist/components/user-action/input/index.js +398 -0
  206. package/dist/components/user-action/input/index.js.map +1 -0
  207. package/dist/components/user-action/input/index.mjs +357 -0
  208. package/dist/components/user-action/input/index.mjs.map +1 -0
  209. package/dist/components/user-action/select/Select.d.mts +5 -1
  210. package/dist/components/user-action/select/Select.d.ts +5 -1
  211. package/dist/components/user-action/select/Select.js +27 -14
  212. package/dist/components/user-action/select/Select.js.map +1 -1
  213. package/dist/components/user-action/select/Select.mjs +27 -14
  214. package/dist/components/user-action/select/Select.mjs.map +1 -1
  215. package/dist/components/user-action/select/index.d.mts +4 -0
  216. package/dist/components/user-action/select/index.d.ts +4 -0
  217. package/dist/components/user-action/select/index.js +1369 -0
  218. package/dist/components/user-action/select/index.js.map +1 -0
  219. package/dist/components/user-action/select/index.mjs +1333 -0
  220. package/dist/components/user-action/select/index.mjs.map +1 -0
  221. package/dist/components/utils/index.d.mts +4 -0
  222. package/dist/components/utils/index.d.ts +4 -0
  223. package/dist/components/utils/index.js +302 -0
  224. package/dist/components/utils/index.js.map +1 -0
  225. package/dist/components/utils/index.mjs +275 -0
  226. package/dist/components/utils/index.mjs.map +1 -0
  227. package/dist/hooks/focus/index.d.mts +6 -0
  228. package/dist/hooks/focus/index.d.ts +6 -0
  229. package/dist/hooks/focus/index.js +379 -0
  230. package/dist/hooks/focus/index.js.map +1 -0
  231. package/dist/hooks/focus/index.mjs +339 -0
  232. package/dist/hooks/focus/index.mjs.map +1 -0
  233. package/dist/hooks/index.d.mts +16 -0
  234. package/dist/hooks/index.d.ts +16 -0
  235. package/dist/hooks/index.js +844 -0
  236. package/dist/hooks/index.js.map +1 -0
  237. package/dist/hooks/index.mjs +794 -0
  238. package/dist/hooks/index.mjs.map +1 -0
  239. package/dist/index.d.mts +110 -0
  240. package/dist/index.d.ts +110 -0
  241. package/dist/index.js +16101 -0
  242. package/dist/index.js.map +1 -0
  243. package/dist/index.mjs +15941 -0
  244. package/dist/index.mjs.map +1 -0
  245. package/dist/localization/defaults/index.d.mts +4 -0
  246. package/dist/localization/defaults/index.d.ts +4 -0
  247. package/dist/localization/defaults/index.js +223 -0
  248. package/dist/localization/defaults/index.js.map +1 -0
  249. package/dist/localization/defaults/index.mjs +195 -0
  250. package/dist/localization/defaults/index.mjs.map +1 -0
  251. package/dist/localization/index.d.mts +7 -0
  252. package/dist/localization/index.d.ts +7 -0
  253. package/dist/localization/index.js +415 -0
  254. package/dist/localization/index.js.map +1 -0
  255. package/dist/localization/index.mjs +380 -0
  256. package/dist/localization/index.mjs.map +1 -0
  257. package/dist/style/globals.css +63 -10
  258. package/dist/style/uncompiled/globals.css +5 -4
  259. package/dist/style/uncompiled/utitlity/shadow.css +4 -0
  260. package/dist/theming/index.d.mts +5 -0
  261. package/dist/theming/index.d.ts +5 -0
  262. package/dist/theming/index.js +174 -0
  263. package/dist/theming/index.js.map +1 -0
  264. package/dist/theming/index.mjs +145 -0
  265. package/dist/theming/index.mjs.map +1 -0
  266. package/dist/theming/useTheme.d.mts +3 -1
  267. package/dist/theming/useTheme.d.ts +3 -1
  268. package/dist/theming/useTheme.js +40 -17
  269. package/dist/theming/useTheme.js.map +1 -1
  270. package/dist/theming/useTheme.mjs +38 -15
  271. package/dist/theming/useTheme.mjs.map +1 -1
  272. package/dist/utils/index.d.mts +15 -0
  273. package/dist/utils/index.d.ts +15 -0
  274. package/dist/utils/index.js +553 -0
  275. package/dist/utils/index.js.map +1 -0
  276. package/dist/utils/index.mjs +493 -0
  277. package/dist/utils/index.mjs.map +1 -0
  278. package/package.json +25 -24
  279. package/dist/components/layout-and-navigation/BreadCrumb.js.map +0 -1
  280. package/dist/components/layout-and-navigation/BreadCrumb.mjs.map +0 -1
  281. package/dist/components/layout-and-navigation/Carousel.d.mts +0 -25
  282. package/dist/components/layout-and-navigation/Carousel.d.ts +0 -25
  283. package/dist/components/layout-and-navigation/Carousel.js +0 -643
  284. package/dist/components/layout-and-navigation/Carousel.js.map +0 -1
  285. package/dist/components/layout-and-navigation/Carousel.mjs +0 -609
  286. package/dist/components/layout-and-navigation/Carousel.mjs.map +0 -1
  287. package/dist/components/layout-and-navigation/Chip.js.map +0 -1
  288. package/dist/components/layout-and-navigation/Chip.mjs.map +0 -1
  289. package/dist/components/layout-and-navigation/DividerInserter.js.map +0 -1
  290. package/dist/components/layout-and-navigation/DividerInserter.mjs.map +0 -1
  291. package/dist/components/layout-and-navigation/Expandable.js.map +0 -1
  292. package/dist/components/layout-and-navigation/Expandable.mjs.map +0 -1
  293. package/dist/components/layout-and-navigation/FAQSection.js.map +0 -1
  294. package/dist/components/layout-and-navigation/FAQSection.mjs.map +0 -1
  295. package/dist/components/layout-and-navigation/FloatingContainer.js.map +0 -1
  296. package/dist/components/layout-and-navigation/FloatingContainer.mjs.map +0 -1
  297. package/dist/components/layout-and-navigation/ListBox.js.map +0 -1
  298. package/dist/components/layout-and-navigation/ListBox.mjs.map +0 -1
  299. package/dist/components/layout-and-navigation/MarkdownInterpreter.js.map +0 -1
  300. package/dist/components/layout-and-navigation/MarkdownInterpreter.mjs.map +0 -1
  301. package/dist/components/layout-and-navigation/Pagination.js.map +0 -1
  302. package/dist/components/layout-and-navigation/Pagination.mjs.map +0 -1
  303. package/dist/components/layout-and-navigation/ScrollArea.js.map +0 -1
  304. package/dist/components/layout-and-navigation/ScrollArea.mjs.map +0 -1
  305. package/dist/components/layout-and-navigation/StepperBar.js.map +0 -1
  306. package/dist/components/layout-and-navigation/StepperBar.mjs.map +0 -1
  307. package/dist/components/layout-and-navigation/TextImage.js.map +0 -1
  308. package/dist/components/layout-and-navigation/TextImage.mjs.map +0 -1
  309. package/dist/components/layout-and-navigation/VerticalDivider.js.map +0 -1
  310. package/dist/components/layout-and-navigation/VerticalDivider.mjs.map +0 -1
  311. /package/dist/components/{layout-and-navigation → layout}/Chip.d.mts +0 -0
  312. /package/dist/components/{layout-and-navigation → layout}/Chip.d.ts +0 -0
  313. /package/dist/components/{layout-and-navigation → layout}/DividerInserter.d.mts +0 -0
  314. /package/dist/components/{layout-and-navigation → layout}/DividerInserter.d.ts +0 -0
  315. /package/dist/components/{layout-and-navigation → layout}/Expandable.d.mts +0 -0
  316. /package/dist/components/{layout-and-navigation → layout}/Expandable.d.ts +0 -0
  317. /package/dist/components/{layout-and-navigation → layout}/FAQSection.d.mts +0 -0
  318. /package/dist/components/{layout-and-navigation → layout}/FAQSection.d.ts +0 -0
  319. /package/dist/components/{layout-and-navigation → layout}/FloatingContainer.d.mts +0 -0
  320. /package/dist/components/{layout-and-navigation → layout}/FloatingContainer.d.ts +0 -0
  321. /package/dist/components/{layout-and-navigation → layout}/ListBox.d.mts +0 -0
  322. /package/dist/components/{layout-and-navigation → layout}/ListBox.d.ts +0 -0
  323. /package/dist/components/{layout-and-navigation → layout}/MarkdownInterpreter.d.mts +0 -0
  324. /package/dist/components/{layout-and-navigation → layout}/MarkdownInterpreter.d.ts +0 -0
  325. /package/dist/components/{layout-and-navigation → layout}/ScrollArea.d.mts +0 -0
  326. /package/dist/components/{layout-and-navigation → layout}/ScrollArea.d.ts +0 -0
  327. /package/dist/components/{layout-and-navigation → layout}/TextImage.d.mts +0 -0
  328. /package/dist/components/{layout-and-navigation → layout}/TextImage.d.ts +0 -0
  329. /package/dist/components/{layout-and-navigation → layout}/VerticalDivider.d.mts +0 -0
  330. /package/dist/components/{layout-and-navigation → layout}/VerticalDivider.d.ts +0 -0
  331. /package/dist/components/{layout-and-navigation → navigation}/BreadCrumb.d.mts +0 -0
  332. /package/dist/components/{layout-and-navigation → navigation}/BreadCrumb.d.ts +0 -0
  333. /package/dist/components/{layout-and-navigation → navigation}/Pagination.d.mts +0 -0
  334. /package/dist/components/{layout-and-navigation → navigation}/Pagination.d.ts +0 -0
  335. /package/dist/components/{layout-and-navigation → navigation}/StepperBar.d.mts +0 -0
  336. /package/dist/components/{layout-and-navigation → navigation}/StepperBar.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/theming/useTheme.tsx","../../src/utils/noop.ts","../../src/hooks/useLocalStorage.ts","../../src/utils/storage.ts","../../src/utils/resolveSetState.ts"],"sourcesContent":["import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { useMemo } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport type { Translation, TranslationPlural } from '../localization/useTranslation'\nimport { noop } from '@/src/utils/noop'\nimport { useLocalStorage } from '../hooks/useLocalStorage'\n\nconst themes = ['light', 'dark', 'system'] as const\n\nexport type ThemeType = typeof themes[number]\n\nexport type ThemeTypeTranslation = Record<ThemeType, string> & {\n theme: TranslationPlural,\n}\n\nconst defaultThemeTypeTranslation: Translation<ThemeTypeTranslation> = {\n en: {\n dark: 'Dark',\n light: 'Light',\n system: 'System',\n theme: {\n one: 'Theme',\n other: 'Themes'\n }\n },\n de: {\n dark: 'Dunkel',\n light: 'Hell',\n system: 'System',\n theme: {\n one: 'Farbschema',\n other: 'Farbschemas'\n }\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 }: PropsWithChildren<ThemeProviderProps>) => {\n const [storedTheme, setStoredTheme] = useLocalStorage<ThemeType>('theme', initialTheme ?? 'system')\n const [userTheme, setUserTheme] = useState<ThemeType>()\n\n useEffect(() => {\n if (!!initialTheme && storedTheme !== initialTheme) {\n console.warn('ThemeProvider initial state changed: Prefer using useTheme\\'s setTheme instead')\n setStoredTheme(initialTheme)\n }\n }, [initialTheme]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const usedTheme = useMemo(() => storedTheme !== 'system' ? storedTheme : userTheme, [storedTheme, userTheme])\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', usedTheme)\n }, [usedTheme])\n\n useEffect(() => {\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches\n setUserTheme(prefersDark ? 'dark' : 'light')\n }, [])\n\n return (\n <ThemeContext.Provider value={{ theme: storedTheme, setTheme: setStoredTheme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\n\nexport const useTheme = () => useContext(ThemeContext)\n","export const noop = () => undefined\n","'use client'\n\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useState } from 'react'\nimport { LocalStorageService } from '@/src/utils/storage'\nimport { resolveSetState } from '@/src/utils/resolveSetState'\n\ntype SetValue<T> = Dispatch<SetStateAction<T>>\nexport const useLocalStorage = <T>(key: string, initValue: T): [T, SetValue<T>] => {\n const get = useCallback((): T => {\n if (typeof window === 'undefined') {\n return initValue\n }\n const storageService = new LocalStorageService()\n const value = storageService.get<T>(key)\n return value || initValue\n }, [initValue, key])\n\n const [storedValue, setStoredValue] = useState<T>(get)\n\n const setValue: SetValue<T> = useCallback(action => {\n const newValue = resolveSetState(action, storedValue)\n const storageService = new LocalStorageService()\n storageService.set(key, newValue)\n\n setStoredValue(newValue)\n }, [storedValue, setStoredValue, key])\n\n return [storedValue, setValue]\n}","class StorageService {\n // this seems to be a bug in eslint as 'paramter-properties' is a special syntax of typescript\n\n constructor(private storage: Storage) {\n }\n\n public get<T>(key: string): T | null {\n const value = this.storage.getItem(key)\n if (value === null) {\n return null\n }\n return JSON.parse(value)\n }\n\n public set<T>(key: string, value: T) {\n this.storage.setItem(key, JSON.stringify(value))\n }\n\n public delete(key: string) {\n this.storage.removeItem(key)\n }\n\n public deleteAll() {\n this.storage.clear()\n }\n}\n\nexport class LocalStorageService extends StorageService {\n constructor() {\n super(window.localStorage)\n }\n}\n\nexport class SessionStorageService extends StorageService {\n constructor() {\n super(window.sessionStorage)\n }\n}\n","import type { SetStateAction } from 'react'\n\nexport function resolveSetState<T>(action: SetStateAction<T>, prev: T): T {\n return typeof action === 'function' ? (action as (prev: T) => T)(prev) : action\n}"],"mappings":"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","names":["useState","useState"]}
1
+ {"version":3,"sources":["../../src/theming/useTheme.tsx","../../src/hooks/useLocalStorage.ts","../../src/utils/storage.ts","../../src/utils/resolveSetState.ts"],"sourcesContent":["import type { Dispatch, PropsWithChildren, SetStateAction } from 'react'\nimport { useCallback } from 'react'\nimport { useMemo } from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport type { Translation, TranslationPlural } from '../localization/useTranslation'\nimport { useLocalStorage } from '../hooks/useLocalStorage'\n\nconst themes = ['light', 'dark', 'system'] as const\n\nexport type ThemeType = typeof themes[number]\nexport type ResolvedTheme = Exclude<ThemeType, 'system'>\n\nexport type ThemeTypeTranslation = Record<ThemeType, string> & {\n theme: TranslationPlural,\n}\n\nconst defaultThemeTypeTranslation: Translation<ThemeTypeTranslation> = {\n en: {\n dark: 'Dark',\n light: 'Light',\n system: 'System',\n theme: {\n one: 'Theme',\n other: 'Themes'\n }\n },\n de: {\n dark: 'Dunkel',\n light: 'Hell',\n system: 'System',\n theme: {\n one: 'Farbschema',\n other: 'Farbschemas'\n }\n }\n}\n\nexport const ThemeUtil = {\n themes,\n translation: defaultThemeTypeTranslation,\n}\n\ntype ThemeContextType = {\n theme: ThemeType,\n resolvedTheme: ResolvedTheme,\n setTheme: Dispatch<SetStateAction<ThemeType>>,\n}\n\nexport const ThemeContext = createContext<ThemeContextType | null>(null)\n\ntype ThemeProviderProps = {\n initialTheme?: ThemeType,\n}\n\nexport const ThemeProvider = ({ children, initialTheme }: PropsWithChildren<ThemeProviderProps>) => {\n const [storedTheme, setStoredTheme] = useLocalStorage<ThemeType>('theme', initialTheme ?? 'system')\n const [themePreference, setThemePreference] = useState<ThemeType>('system')\n\n const resolvedTheme = useMemo(() => {\n if(storedTheme && storedTheme !== 'system') {\n return storedTheme\n }\n return themePreference === 'dark' ? 'dark' : 'light'\n }, [storedTheme, themePreference])\n\n useEffect(() => {\n if (!!initialTheme && storedTheme !== initialTheme) {\n console.warn('ThemeProvider initial state changed: Prefer using useTheme\\'s setTheme instead')\n setStoredTheme(initialTheme)\n }\n }, [initialTheme]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n document.documentElement.setAttribute('data-theme', resolvedTheme)\n }, [resolvedTheme])\n\n const getPreference = useCallback(() => {\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches\n const prefersLight = window.matchMedia('(prefers-color-scheme: light)').matches\n setThemePreference(prefersDark ? 'dark' : (prefersLight ? 'light' : 'system'))\n }, [])\n\n useEffect(() => {\n getPreference()\n }, [getPreference])\n\n useEffect(() => {\n const darkQuery = window.matchMedia('(prefers-color-scheme: dark)')\n const lightQuery = window.matchMedia('(prefers-color-scheme: light)')\n const noPrefQuery = window.matchMedia('(prefers-color-scheme: no-preference)')\n darkQuery.addEventListener('change', getPreference)\n lightQuery.addEventListener('change', getPreference)\n noPrefQuery.addEventListener('change', getPreference)\n return () => {\n darkQuery.removeEventListener('change', getPreference)\n lightQuery.removeEventListener('change', getPreference)\n noPrefQuery.removeEventListener('change', getPreference)\n }\n }, [getPreference])\n\n return (\n <ThemeContext.Provider value={{ theme: storedTheme, resolvedTheme, setTheme: setStoredTheme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext)\n if(!context) {\n throw new Error('useTheme must be used within ThemeContext. Try adding a ThemeProvider around your app.')\n }\n return context\n}\n","'use client'\n\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useCallback, useState } from 'react'\nimport { LocalStorageService } from '@/src/utils/storage'\nimport { resolveSetState } from '@/src/utils/resolveSetState'\n\ntype SetValue<T> = Dispatch<SetStateAction<T>>\nexport const useLocalStorage = <T>(key: string, initValue: T): [T, SetValue<T>] => {\n const get = useCallback((): T => {\n if (typeof window === 'undefined') {\n return initValue\n }\n const storageService = new LocalStorageService()\n const value = storageService.get<T>(key)\n return value || initValue\n }, [initValue, key])\n\n const [storedValue, setStoredValue] = useState<T>(get)\n\n const setValue: SetValue<T> = useCallback(action => {\n const newValue = resolveSetState(action, storedValue)\n const storageService = new LocalStorageService()\n storageService.set(key, newValue)\n\n setStoredValue(newValue)\n }, [storedValue, setStoredValue, key])\n\n return [storedValue, setValue]\n}","class StorageService {\n // this seems to be a bug in eslint as 'paramter-properties' is a special syntax of typescript\n\n constructor(private storage: Storage) {\n }\n\n public get<T>(key: string): T | null {\n const value = this.storage.getItem(key)\n if (value === null) {\n return null\n }\n return JSON.parse(value)\n }\n\n public set<T>(key: string, value: T) {\n this.storage.setItem(key, JSON.stringify(value))\n }\n\n public delete(key: string) {\n this.storage.removeItem(key)\n }\n\n public deleteAll() {\n this.storage.clear()\n }\n}\n\nexport class LocalStorageService extends StorageService {\n constructor() {\n super(window.localStorage)\n }\n}\n\nexport class SessionStorageService extends StorageService {\n constructor() {\n super(window.sessionStorage)\n }\n}\n","import type { SetStateAction } from 'react'\n\nexport function resolveSetState<T>(action: SetStateAction<T>, prev: T): T {\n return typeof action === 'function' ? (action as (prev: T) => T)(prev) : action\n}"],"mappings":";AACA,SAAS,eAAAA,oBAAmB;AAC5B,SAAS,eAAe;AACxB,SAAS,eAAe,YAAY,WAAW,YAAAC,iBAAgB;;;ACA/D,SAAS,aAAa,gBAAgB;;;ACHtC,IAAM,iBAAN,MAAqB;AAAA;AAAA,EAGnB,YAAoB,SAAkB;AAAlB;AAAA,EACpB;AAAA,EAEO,IAAO,KAAuB;AACnC,UAAM,QAAQ,KAAK,QAAQ,QAAQ,GAAG;AACtC,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,WAAO,KAAK,MAAM,KAAK;AAAA,EACzB;AAAA,EAEO,IAAO,KAAa,OAAU;AACnC,SAAK,QAAQ,QAAQ,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACjD;AAAA,EAEO,OAAO,KAAa;AACzB,SAAK,QAAQ,WAAW,GAAG;AAAA,EAC7B;AAAA,EAEO,YAAY;AACjB,SAAK,QAAQ,MAAM;AAAA,EACrB;AACF;AAEO,IAAM,sBAAN,cAAkC,eAAe;AAAA,EACtD,cAAc;AACZ,UAAM,OAAO,YAAY;AAAA,EAC3B;AACF;;;AC7BO,SAAS,gBAAmB,QAA2B,MAAY;AACxE,SAAO,OAAO,WAAW,aAAc,OAA0B,IAAI,IAAI;AAC3E;;;AFIO,IAAM,kBAAkB,CAAI,KAAa,cAAmC;AACjF,QAAM,MAAM,YAAY,MAAS;AAC/B,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO;AAAA,IACT;AACA,UAAM,iBAAiB,IAAI,oBAAoB;AAC/C,UAAM,QAAQ,eAAe,IAAO,GAAG;AACvC,WAAO,SAAS;AAAA,EAClB,GAAG,CAAC,WAAW,GAAG,CAAC;AAEnB,QAAM,CAAC,aAAa,cAAc,IAAI,SAAY,GAAG;AAErD,QAAM,WAAwB,YAAY,YAAU;AAClD,UAAM,WAAW,gBAAgB,QAAQ,WAAW;AACpD,UAAM,iBAAiB,IAAI,oBAAoB;AAC/C,mBAAe,IAAI,KAAK,QAAQ;AAEhC,mBAAe,QAAQ;AAAA,EACzB,GAAG,CAAC,aAAa,gBAAgB,GAAG,CAAC;AAErC,SAAO,CAAC,aAAa,QAAQ;AAC/B;;;ADwEI;AA9FJ,IAAM,SAAS,CAAC,SAAS,QAAQ,QAAQ;AASzC,IAAM,8BAAiE;AAAA,EACrE,IAAI;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA,aAAa;AACf;AAQO,IAAM,eAAe,cAAuC,IAAI;AAMhE,IAAM,gBAAgB,CAAC,EAAE,UAAU,aAAa,MAA6C;AAClG,QAAM,CAAC,aAAa,cAAc,IAAI,gBAA2B,SAAS,gBAAgB,QAAQ;AAClG,QAAM,CAAC,iBAAiB,kBAAkB,IAAIC,UAAoB,QAAQ;AAE1E,QAAM,gBAAgB,QAAQ,MAAM;AAClC,QAAG,eAAe,gBAAgB,UAAU;AAC1C,aAAO;AAAA,IACT;AACA,WAAO,oBAAoB,SAAS,SAAS;AAAA,EAC/C,GAAG,CAAC,aAAa,eAAe,CAAC;AAEjC,YAAU,MAAM;AACd,QAAI,CAAC,CAAC,gBAAgB,gBAAgB,cAAc;AAClD,cAAQ,KAAK,+EAAgF;AAC7F,qBAAe,YAAY;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,aAAS,gBAAgB,aAAa,cAAc,aAAa;AAAA,EACnE,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,gBAAgBC,aAAY,MAAM;AACtC,UAAM,cAAc,OAAO,WAAW,8BAA8B,EAAE;AACtE,UAAM,eAAe,OAAO,WAAW,+BAA+B,EAAE;AACxE,uBAAmB,cAAc,SAAU,eAAe,UAAU,QAAS;AAAA,EAC/E,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,kBAAc;AAAA,EAChB,GAAG,CAAC,aAAa,CAAC;AAElB,YAAU,MAAM;AACd,UAAM,YAAY,OAAO,WAAW,8BAA8B;AAClE,UAAM,aAAa,OAAO,WAAW,+BAA+B;AACpE,UAAM,cAAc,OAAO,WAAW,uCAAuC;AAC7E,cAAU,iBAAiB,UAAU,aAAa;AAClD,eAAW,iBAAiB,UAAU,aAAa;AACnD,gBAAY,iBAAiB,UAAU,aAAa;AACpD,WAAO,MAAM;AACX,gBAAU,oBAAoB,UAAU,aAAa;AACrD,iBAAW,oBAAoB,UAAU,aAAa;AACtD,kBAAY,oBAAoB,UAAU,aAAa;AAAA,IACzD;AAAA,EACF,GAAG,CAAC,aAAa,CAAC;AAElB,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,OAAO,aAAa,eAAe,UAAU,eAAe,GACzF,UACH;AAEJ;AAEO,IAAM,WAAW,MAAM;AAC5B,QAAM,UAAU,WAAW,YAAY;AACvC,MAAG,CAAC,SAAS;AACX,UAAM,IAAI,MAAM,wFAAwF;AAAA,EAC1G;AACA,SAAO;AACT;","names":["useCallback","useState","useState","useCallback"]}
@@ -0,0 +1,15 @@
1
+ export { ArrayUtil, RangeOptions, closestMatch, createLoopingList, createLoopingListWithIndex, equalSizeGroups, getNeighbours, range } from './array.mjs';
2
+ export { BagFunction, BagFunctionOrNode, BagFunctionUtil, PropsWithBagFunction, PropsWithBagFunctionOrChildren } from './bagFunctions.mjs';
3
+ export { builder } from './builder.mjs';
4
+ export { Duration, Month, WeekDay, addDuration, changeDuration, equalDate, formatDate, formatDateTime, getBetweenDuration, getDaysInMonth, getWeeksForCalenderMonth, isInTimeSpan, monthsList, subtractDuration, weekDayList } from './date.mjs';
5
+ export { EaseFunction, EaseFunctions } from './easeFunctions.mjs';
6
+ export { validateEmail } from './emailValidation.mjs';
7
+ export { Direction, LoopingArrayCalculator } from './loopingArray.mjs';
8
+ export { match } from './match.mjs';
9
+ export { clamp } from './math.mjs';
10
+ export { noop } from './noop.mjs';
11
+ export { resolveSetState } from './resolveSetState.mjs';
12
+ export { MultiSearchWithMapping, MultiSubjectSearchWithMapping, SimpleSearch, SimpleSearchWithMapping } from './simpleSearch.mjs';
13
+ export { LocalStorageService, SessionStorageService } from './storage.mjs';
14
+ export { writeToClipboard } from './writeToClipboard.mjs';
15
+ import 'react';
@@ -0,0 +1,15 @@
1
+ export { ArrayUtil, RangeOptions, closestMatch, createLoopingList, createLoopingListWithIndex, equalSizeGroups, getNeighbours, range } from './array.js';
2
+ export { BagFunction, BagFunctionOrNode, BagFunctionUtil, PropsWithBagFunction, PropsWithBagFunctionOrChildren } from './bagFunctions.js';
3
+ export { builder } from './builder.js';
4
+ export { Duration, Month, WeekDay, addDuration, changeDuration, equalDate, formatDate, formatDateTime, getBetweenDuration, getDaysInMonth, getWeeksForCalenderMonth, isInTimeSpan, monthsList, subtractDuration, weekDayList } from './date.js';
5
+ export { EaseFunction, EaseFunctions } from './easeFunctions.js';
6
+ export { validateEmail } from './emailValidation.js';
7
+ export { Direction, LoopingArrayCalculator } from './loopingArray.js';
8
+ export { match } from './match.js';
9
+ export { clamp } from './math.js';
10
+ export { noop } from './noop.js';
11
+ export { resolveSetState } from './resolveSetState.js';
12
+ export { MultiSearchWithMapping, MultiSubjectSearchWithMapping, SimpleSearch, SimpleSearchWithMapping } from './simpleSearch.js';
13
+ export { LocalStorageService, SessionStorageService } from './storage.js';
14
+ export { writeToClipboard } from './writeToClipboard.js';
15
+ import 'react';
@@ -0,0 +1,553 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/index.ts
20
+ var utils_exports = {};
21
+ __export(utils_exports, {
22
+ ArrayUtil: () => ArrayUtil,
23
+ BagFunctionUtil: () => BagFunctionUtil,
24
+ EaseFunctions: () => EaseFunctions,
25
+ LocalStorageService: () => LocalStorageService,
26
+ LoopingArrayCalculator: () => LoopingArrayCalculator,
27
+ MultiSearchWithMapping: () => MultiSearchWithMapping,
28
+ MultiSubjectSearchWithMapping: () => MultiSubjectSearchWithMapping,
29
+ SessionStorageService: () => SessionStorageService,
30
+ SimpleSearch: () => SimpleSearch,
31
+ SimpleSearchWithMapping: () => SimpleSearchWithMapping,
32
+ addDuration: () => addDuration,
33
+ builder: () => builder,
34
+ changeDuration: () => changeDuration,
35
+ clamp: () => clamp,
36
+ closestMatch: () => closestMatch,
37
+ createLoopingList: () => createLoopingList,
38
+ createLoopingListWithIndex: () => createLoopingListWithIndex,
39
+ equalDate: () => equalDate,
40
+ equalSizeGroups: () => equalSizeGroups,
41
+ formatDate: () => formatDate,
42
+ formatDateTime: () => formatDateTime,
43
+ getBetweenDuration: () => getBetweenDuration,
44
+ getDaysInMonth: () => getDaysInMonth,
45
+ getNeighbours: () => getNeighbours,
46
+ getWeeksForCalenderMonth: () => getWeeksForCalenderMonth,
47
+ isInTimeSpan: () => isInTimeSpan,
48
+ match: () => match,
49
+ monthsList: () => monthsList,
50
+ noop: () => noop,
51
+ range: () => range,
52
+ resolveSetState: () => resolveSetState,
53
+ subtractDuration: () => subtractDuration,
54
+ validateEmail: () => validateEmail,
55
+ weekDayList: () => weekDayList,
56
+ writeToClipboard: () => writeToClipboard
57
+ });
58
+ module.exports = __toCommonJS(utils_exports);
59
+
60
+ // src/utils/array.ts
61
+ var equalSizeGroups = (array, groupSize) => {
62
+ if (groupSize <= 0) {
63
+ console.warn(`group size should be greater than 0: groupSize = ${groupSize}`);
64
+ return [[...array]];
65
+ }
66
+ const groups = [];
67
+ for (let i = 0; i < array.length; i += groupSize) {
68
+ groups.push(array.slice(i, Math.min(i + groupSize, array.length)));
69
+ }
70
+ return groups;
71
+ };
72
+ var defaultRangeOptions = {
73
+ allowEmptyRange: false,
74
+ stepSize: 1,
75
+ exclusiveStart: false,
76
+ exclusiveEnd: true
77
+ };
78
+ var range = (endOrRange, options) => {
79
+ const { allowEmptyRange, stepSize, exclusiveStart, exclusiveEnd } = { ...defaultRangeOptions, ...options };
80
+ let start = 0;
81
+ let end;
82
+ if (typeof endOrRange === "number") {
83
+ end = endOrRange;
84
+ } else {
85
+ start = endOrRange[0];
86
+ end = endOrRange[1];
87
+ }
88
+ if (!exclusiveEnd) {
89
+ end -= 1;
90
+ }
91
+ if (exclusiveStart) {
92
+ start += 1;
93
+ }
94
+ if (end - 1 < start) {
95
+ if (!allowEmptyRange) {
96
+ console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set options.allowEmptyRange to true`);
97
+ }
98
+ return [];
99
+ }
100
+ return Array.from({ length: end - start }, (_, index) => index * stepSize + start);
101
+ };
102
+ var closestMatch = (list, firstCloser) => {
103
+ return list.reduce((item1, item2) => {
104
+ return firstCloser(item1, item2) ? item1 : item2;
105
+ });
106
+ };
107
+ var getNeighbours = (list, item, neighbourDistance = 2) => {
108
+ const index = list.indexOf(item);
109
+ const totalItems = neighbourDistance * 2 + 1;
110
+ if (list.length < totalItems) {
111
+ console.warn("List is to short");
112
+ return list;
113
+ }
114
+ if (index === -1) {
115
+ console.error("item not found in list");
116
+ return list.splice(0, totalItems);
117
+ }
118
+ let start = index - neighbourDistance;
119
+ if (start < 0) {
120
+ start += list.length;
121
+ }
122
+ const end = (index + neighbourDistance + 1) % list.length;
123
+ const result = [];
124
+ let ignoreOnce = list.length === totalItems;
125
+ for (let i = start; i !== end || ignoreOnce; i = (i + 1) % list.length) {
126
+ result.push(list[i]);
127
+ if (end === i && ignoreOnce) {
128
+ ignoreOnce = false;
129
+ }
130
+ }
131
+ return result;
132
+ };
133
+ var createLoopingListWithIndex = (list, startIndex = 0, length = 0, forwards = true) => {
134
+ if (length < 0) {
135
+ console.warn(`createLoopingList: length must be >= 0, given ${length}`);
136
+ } else if (length === 0) {
137
+ length = list.length;
138
+ }
139
+ const returnList = [];
140
+ if (forwards) {
141
+ for (let i = startIndex; returnList.length < length; i = (i + 1) % list.length) {
142
+ returnList.push([i, list[i]]);
143
+ }
144
+ } else {
145
+ for (let i = startIndex; returnList.length < length; i = i === 0 ? i = list.length - 1 : i - 1) {
146
+ returnList.push([i, list[i]]);
147
+ }
148
+ }
149
+ return returnList;
150
+ };
151
+ var createLoopingList = (list, startIndex = 0, length = 0, forwards = true) => {
152
+ return createLoopingListWithIndex(list, startIndex, length, forwards).map(([_, item]) => item);
153
+ };
154
+ var moveItems = (list, move = 0) => {
155
+ const result = [];
156
+ let start = move;
157
+ if (start < 0) {
158
+ start = list.length - move;
159
+ }
160
+ start = start % list.length;
161
+ for (let i = 0; i < list.length; i++) {
162
+ result[i] = list[(i + start) % list.length];
163
+ }
164
+ return result;
165
+ };
166
+ var ArrayUtil = {
167
+ unique: (list) => {
168
+ const seen = /* @__PURE__ */ new Set();
169
+ return list.filter((item) => {
170
+ if (seen.has(item)) {
171
+ return false;
172
+ }
173
+ seen.add(item);
174
+ return true;
175
+ });
176
+ },
177
+ difference: (list, removeList) => {
178
+ const remove = new Set(removeList);
179
+ return list.filter((item) => !remove.has(item));
180
+ },
181
+ moveItems
182
+ };
183
+
184
+ // src/utils/bagFunctions.ts
185
+ var resolve = (children, bag) => {
186
+ if (typeof children === "function") {
187
+ return children(bag);
188
+ }
189
+ return children ?? void 0;
190
+ };
191
+ var BagFunctionUtil = {
192
+ resolve
193
+ };
194
+
195
+ // src/utils/builder.ts
196
+ var builder = (value, update) => {
197
+ update(value);
198
+ return value;
199
+ };
200
+
201
+ // src/utils/date.ts
202
+ var monthsList = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
203
+ var weekDayList = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
204
+ var formatDate = (date) => {
205
+ const year = date.getFullYear().toString().padStart(4, "0");
206
+ const month = (date.getMonth() + 1).toString().padStart(2, "0");
207
+ const day = date.getDate().toString().padStart(2, "0");
208
+ return `${year}-${month}-${day}`;
209
+ };
210
+ var formatDateTime = (date) => {
211
+ const dateString = formatDate(date);
212
+ const hours = date.getHours().toString().padStart(2, "0");
213
+ const minutes = date.getMinutes().toString().padStart(2, "0");
214
+ return `${dateString}T${hours}:${minutes}`;
215
+ };
216
+ var getDaysInMonth = (year, month) => {
217
+ const lastDayOfMonth = new Date(year, month + 1, 0);
218
+ return lastDayOfMonth.getDate();
219
+ };
220
+ var changeDuration = (date, duration, isAdding) => {
221
+ const {
222
+ years = 0,
223
+ months = 0,
224
+ days = 0,
225
+ hours = 0,
226
+ minutes = 0,
227
+ seconds = 0,
228
+ milliseconds = 0
229
+ } = duration;
230
+ if (years < 0) {
231
+ console.error(`Range error years must be greater than 0: received ${years}`);
232
+ return new Date(date);
233
+ }
234
+ if (months < 0 || months > 11) {
235
+ console.error(`Range error month must be 0 <= month <= 11: received ${months}`);
236
+ return new Date(date);
237
+ }
238
+ if (days < 0) {
239
+ console.error(`Range error days must be greater than 0: received ${days}`);
240
+ return new Date(date);
241
+ }
242
+ if (hours < 0 || hours > 23) {
243
+ console.error(`Range error hours must be 0 <= hours <= 23: received ${hours}`);
244
+ return new Date(date);
245
+ }
246
+ if (minutes < 0 || minutes > 59) {
247
+ console.error(`Range error minutes must be 0 <= minutes <= 59: received ${minutes}`);
248
+ return new Date(date);
249
+ }
250
+ if (seconds < 0 || seconds > 59) {
251
+ console.error(`Range error seconds must be 0 <= seconds <= 59: received ${seconds}`);
252
+ return new Date(date);
253
+ }
254
+ if (milliseconds < 0) {
255
+ console.error(`Range error seconds must be greater than 0: received ${milliseconds}`);
256
+ return new Date(date);
257
+ }
258
+ const multiplier = isAdding ? 1 : -1;
259
+ const newDate = new Date(date);
260
+ newDate.setFullYear(newDate.getFullYear() + multiplier * years);
261
+ newDate.setMonth(newDate.getMonth() + multiplier * months);
262
+ newDate.setDate(newDate.getDate() + multiplier * days);
263
+ newDate.setHours(newDate.getHours() + multiplier * hours);
264
+ newDate.setMinutes(newDate.getMinutes() + multiplier * minutes);
265
+ newDate.setSeconds(newDate.getSeconds() + multiplier * seconds);
266
+ newDate.setMilliseconds(newDate.getMilliseconds() + multiplier * milliseconds);
267
+ return newDate;
268
+ };
269
+ var addDuration = (date, duration) => {
270
+ return changeDuration(date, duration, true);
271
+ };
272
+ var subtractDuration = (date, duration) => {
273
+ return changeDuration(date, duration, false);
274
+ };
275
+ var getBetweenDuration = (startDate, endDate) => {
276
+ const durationInMilliseconds = endDate.getTime() - startDate.getTime();
277
+ const millisecondsInSecond = 1e3;
278
+ const millisecondsInMinute = 60 * millisecondsInSecond;
279
+ const millisecondsInHour = 60 * millisecondsInMinute;
280
+ const millisecondsInDay = 24 * millisecondsInHour;
281
+ const millisecondsInMonth = 30 * millisecondsInDay;
282
+ const years = Math.floor(durationInMilliseconds / (365.25 * millisecondsInDay));
283
+ const months = Math.floor(durationInMilliseconds / millisecondsInMonth);
284
+ const days = Math.floor(durationInMilliseconds / millisecondsInDay);
285
+ const hours = Math.floor(durationInMilliseconds % millisecondsInDay / millisecondsInHour);
286
+ const seconds = Math.floor(durationInMilliseconds % millisecondsInHour / millisecondsInSecond);
287
+ const milliseconds = durationInMilliseconds % millisecondsInSecond;
288
+ return {
289
+ years,
290
+ months,
291
+ days,
292
+ hours,
293
+ seconds,
294
+ milliseconds
295
+ };
296
+ };
297
+ var isInTimeSpan = (value, startDate, endDate) => {
298
+ if (startDate && endDate) {
299
+ console.assert(startDate <= endDate);
300
+ return startDate <= value && value <= endDate;
301
+ } else if (startDate) {
302
+ return startDate <= value;
303
+ } else if (endDate) {
304
+ return endDate >= value;
305
+ } else {
306
+ return true;
307
+ }
308
+ };
309
+ var equalDate = (date1, date2) => {
310
+ return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();
311
+ };
312
+ var getWeeksForCalenderMonth = (date, weekStart, weeks = 6) => {
313
+ const month = date.getMonth();
314
+ const year = date.getFullYear();
315
+ const dayList = [];
316
+ let currentDate = new Date(year, month, 1);
317
+ const weekStartIndex = weekDayList.indexOf(weekStart);
318
+ while (currentDate.getDay() !== weekStartIndex) {
319
+ currentDate = subtractDuration(currentDate, { days: 1 });
320
+ }
321
+ while (dayList.length < 7 * weeks) {
322
+ const date2 = new Date(currentDate);
323
+ date2.setHours(date2.getHours(), date2.getMinutes());
324
+ dayList.push(date2);
325
+ currentDate = addDuration(currentDate, { days: 1 });
326
+ }
327
+ return equalSizeGroups(dayList, 7);
328
+ };
329
+
330
+ // src/utils/math.ts
331
+ var clamp = (value, range2 = [0, 1]) => {
332
+ const [min, max] = range2;
333
+ return Math.min(Math.max(value, min), max);
334
+ };
335
+
336
+ // src/utils/easeFunctions.ts
337
+ var EaseFunctions = class _EaseFunctions {
338
+ static cubicBezierGeneric(x1, y1, x2, y2) {
339
+ const cx = 3 * x1;
340
+ const bx = 3 * (x2 - x1) - cx;
341
+ const ax = 1 - cx - bx;
342
+ const cy = 3 * y1;
343
+ const by = 3 * (y2 - y1) - cy;
344
+ const ay = 1 - cy - by;
345
+ const x = (t) => ((ax * t + bx) * t + cx) * t;
346
+ const y = (t) => ((ay * t + by) * t + cy) * t;
347
+ return {
348
+ x,
349
+ y
350
+ };
351
+ }
352
+ static cubicBezier(x1, y1, x2, y2) {
353
+ const { y } = _EaseFunctions.cubicBezierGeneric(x1, y1, x2, y2);
354
+ return (t) => {
355
+ t = clamp(t);
356
+ return y(t);
357
+ };
358
+ }
359
+ static easeInEaseOut(t) {
360
+ return _EaseFunctions.cubicBezier(0.65, 0, 0.35, 1)(t);
361
+ }
362
+ };
363
+
364
+ // src/utils/emailValidation.ts
365
+ var validateEmail = (email) => {
366
+ return /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(email);
367
+ };
368
+
369
+ // src/utils/loopingArray.ts
370
+ var LoopingArrayCalculator = class _LoopingArrayCalculator {
371
+ constructor(length, isLooping = true, allowedOverScroll = 0.1) {
372
+ if (allowedOverScroll < 0 || length < 1) {
373
+ throw new Error("Invalid parameters: allowedOverScroll >= 0 and length >= 1 must be true");
374
+ }
375
+ this.length = length;
376
+ this.isLooping = isLooping;
377
+ this.allowedOverScroll = allowedOverScroll;
378
+ }
379
+ getCorrectedPosition(position) {
380
+ if (!this.isLooping) {
381
+ return Math.max(-this.allowedOverScroll, Math.min(this.allowedOverScroll + this.length - 1, position));
382
+ }
383
+ if (position >= this.length) {
384
+ return position % this.length;
385
+ }
386
+ if (position < 0) {
387
+ return this.length - Math.abs(position) % this.length;
388
+ }
389
+ return position;
390
+ }
391
+ static withoutOffset(position) {
392
+ return position + _LoopingArrayCalculator.getOffset(position);
393
+ }
394
+ static getOffset(position) {
395
+ return Math.round(position) - position;
396
+ }
397
+ /**
398
+ * @return absolute distance forwards or Infinity when the target cannot be reached (only possible when not isLooping)
399
+ */
400
+ getDistanceDirectional(position, target, direction) {
401
+ if (!this.isLooping && (position < -this.allowedOverScroll || position > this.allowedOverScroll + this.length - 1)) {
402
+ throw new Error("Invalid parameters: position is out of bounds.");
403
+ }
404
+ const isForwardInvalid = direction === 1 && position > target;
405
+ const isBackwardInvalid = direction === -1 && target < position;
406
+ if (!this.isLooping && (isForwardInvalid || isBackwardInvalid)) {
407
+ return Infinity;
408
+ }
409
+ if (direction === -1) {
410
+ return this.getDistanceDirectional(target, position, 1);
411
+ }
412
+ position = this.getCorrectedPosition(position);
413
+ target = this.getCorrectedPosition(target);
414
+ let distance = (target - position) * direction;
415
+ if (distance < 0) {
416
+ distance = this.length - Math.abs(position) % this.length + target;
417
+ }
418
+ return distance;
419
+ }
420
+ getDistanceForward(position, target) {
421
+ return this.getDistanceDirectional(position, target, 1);
422
+ }
423
+ getDistanceBackward(position, target) {
424
+ return this.getDistanceDirectional(position, target, -1);
425
+ }
426
+ getDistance(position, target) {
427
+ const forwardDistance = this.getDistanceForward(position, target);
428
+ const backwardDistance = this.getDistanceBackward(position, target);
429
+ return Math.min(forwardDistance, backwardDistance);
430
+ }
431
+ getBestDirection(position, target) {
432
+ const forwardDistance = this.getDistanceForward(position, target);
433
+ const backwardDistance = this.getDistanceBackward(position, target);
434
+ return forwardDistance < backwardDistance ? 1 : -1;
435
+ }
436
+ };
437
+
438
+ // src/utils/match.ts
439
+ var match = (key, values) => {
440
+ return values[key];
441
+ };
442
+
443
+ // src/utils/noop.ts
444
+ var noop = () => void 0;
445
+
446
+ // src/utils/resolveSetState.ts
447
+ function resolveSetState(action, prev) {
448
+ return typeof action === "function" ? action(prev) : action;
449
+ }
450
+
451
+ // src/utils/simpleSearch.ts
452
+ var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
453
+ return objects.filter((object) => {
454
+ const mappedSearchKeywords = mapping(object)?.map((value) => value.toLowerCase().trim());
455
+ if (!mappedSearchKeywords) {
456
+ return true;
457
+ }
458
+ return search.every((searchValue) => !!mappedSearchKeywords.find((value) => !!value && value.includes(searchValue.toLowerCase().trim())));
459
+ });
460
+ };
461
+ var MultiSearchWithMapping = (search, objects, mapping) => {
462
+ return objects.filter((object) => {
463
+ const mappedSearchKeywords = mapping(object)?.map((value) => value.toLowerCase().trim());
464
+ if (!mappedSearchKeywords) {
465
+ return true;
466
+ }
467
+ return !!mappedSearchKeywords.find((value) => value.includes(search.toLowerCase().trim()));
468
+ });
469
+ };
470
+ var SimpleSearchWithMapping = (search, objects, mapping) => {
471
+ return MultiSearchWithMapping(search, objects, (value) => [mapping(value)]);
472
+ };
473
+ var SimpleSearch = (search, objects) => {
474
+ return SimpleSearchWithMapping(search, objects, (value) => value);
475
+ };
476
+
477
+ // src/utils/storage.ts
478
+ var StorageService = class {
479
+ // this seems to be a bug in eslint as 'paramter-properties' is a special syntax of typescript
480
+ constructor(storage) {
481
+ this.storage = storage;
482
+ }
483
+ get(key) {
484
+ const value = this.storage.getItem(key);
485
+ if (value === null) {
486
+ return null;
487
+ }
488
+ return JSON.parse(value);
489
+ }
490
+ set(key, value) {
491
+ this.storage.setItem(key, JSON.stringify(value));
492
+ }
493
+ delete(key) {
494
+ this.storage.removeItem(key);
495
+ }
496
+ deleteAll() {
497
+ this.storage.clear();
498
+ }
499
+ };
500
+ var LocalStorageService = class extends StorageService {
501
+ constructor() {
502
+ super(window.localStorage);
503
+ }
504
+ };
505
+ var SessionStorageService = class extends StorageService {
506
+ constructor() {
507
+ super(window.sessionStorage);
508
+ }
509
+ };
510
+
511
+ // src/utils/writeToClipboard.ts
512
+ var writeToClipboard = (text) => {
513
+ return navigator.clipboard.writeText(text);
514
+ };
515
+ // Annotate the CommonJS export names for ESM import in node:
516
+ 0 && (module.exports = {
517
+ ArrayUtil,
518
+ BagFunctionUtil,
519
+ EaseFunctions,
520
+ LocalStorageService,
521
+ LoopingArrayCalculator,
522
+ MultiSearchWithMapping,
523
+ MultiSubjectSearchWithMapping,
524
+ SessionStorageService,
525
+ SimpleSearch,
526
+ SimpleSearchWithMapping,
527
+ addDuration,
528
+ builder,
529
+ changeDuration,
530
+ clamp,
531
+ closestMatch,
532
+ createLoopingList,
533
+ createLoopingListWithIndex,
534
+ equalDate,
535
+ equalSizeGroups,
536
+ formatDate,
537
+ formatDateTime,
538
+ getBetweenDuration,
539
+ getDaysInMonth,
540
+ getNeighbours,
541
+ getWeeksForCalenderMonth,
542
+ isInTimeSpan,
543
+ match,
544
+ monthsList,
545
+ noop,
546
+ range,
547
+ resolveSetState,
548
+ subtractDuration,
549
+ validateEmail,
550
+ weekDayList,
551
+ writeToClipboard
552
+ });
553
+ //# sourceMappingURL=index.js.map