@helpwave/hightide 0.0.13 → 0.0.16

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 (539) hide show
  1. package/dist/coloring/shading.d.mts +5 -0
  2. package/dist/coloring/shading.d.ts +5 -2
  3. package/dist/coloring/shading.js +80 -38
  4. package/dist/coloring/shading.js.map +1 -0
  5. package/dist/coloring/shading.mjs +47 -0
  6. package/dist/coloring/shading.mjs.map +1 -0
  7. package/dist/coloring/types.d.mts +13 -0
  8. package/dist/coloring/types.d.ts +8 -6
  9. package/dist/coloring/types.js +31 -1
  10. package/dist/coloring/types.js.map +1 -0
  11. package/dist/coloring/types.mjs +6 -0
  12. package/dist/coloring/types.mjs.map +1 -0
  13. package/dist/components/Avatar.d.mts +17 -0
  14. package/dist/components/Avatar.d.ts +9 -6
  15. package/dist/components/Avatar.js +79 -29
  16. package/dist/components/Avatar.js.map +1 -0
  17. package/dist/components/Avatar.mjs +48 -0
  18. package/dist/components/Avatar.mjs.map +1 -0
  19. package/dist/components/AvatarGroup.d.mts +14 -0
  20. package/dist/components/AvatarGroup.d.ts +7 -3
  21. package/dist/components/AvatarGroup.js +117 -12
  22. package/dist/components/AvatarGroup.js.map +1 -0
  23. package/dist/components/AvatarGroup.mjs +81 -0
  24. package/dist/components/AvatarGroup.mjs.map +1 -0
  25. package/dist/components/BreadCrumb.d.mts +19 -0
  26. package/dist/components/BreadCrumb.d.ts +6 -3
  27. package/dist/components/BreadCrumb.js +49 -11
  28. package/dist/components/BreadCrumb.js.map +1 -0
  29. package/dist/components/BreadCrumb.mjs +15 -0
  30. package/dist/components/BreadCrumb.mjs.map +1 -0
  31. package/dist/components/Button.d.mts +44 -0
  32. package/dist/components/Button.d.ts +16 -13
  33. package/dist/components/Button.js +232 -80
  34. package/dist/components/Button.js.map +1 -0
  35. package/dist/components/Button.mjs +198 -0
  36. package/dist/components/Button.mjs.map +1 -0
  37. package/dist/components/ChipList.d.mts +24 -0
  38. package/dist/components/ChipList.d.ts +10 -7
  39. package/dist/components/ChipList.js +103 -36
  40. package/dist/components/ChipList.js.map +1 -0
  41. package/dist/components/ChipList.mjs +69 -0
  42. package/dist/components/ChipList.mjs.map +1 -0
  43. package/dist/components/Circle.d.mts +10 -0
  44. package/dist/components/Circle.d.ts +7 -3
  45. package/dist/components/Circle.js +61 -9
  46. package/dist/components/Circle.js.map +1 -0
  47. package/dist/components/Circle.mjs +27 -0
  48. package/dist/components/Circle.mjs.map +1 -0
  49. package/dist/components/ErrorComponent.d.mts +18 -0
  50. package/dist/components/ErrorComponent.d.ts +9 -4
  51. package/dist/components/ErrorComponent.js +86 -17
  52. package/dist/components/ErrorComponent.js.map +1 -0
  53. package/dist/components/ErrorComponent.mjs +53 -0
  54. package/dist/components/ErrorComponent.mjs.map +1 -0
  55. package/dist/components/Expandable.d.mts +33 -0
  56. package/dist/components/Expandable.d.ts +8 -5
  57. package/dist/components/Expandable.js +79 -15
  58. package/dist/components/Expandable.js.map +1 -0
  59. package/dist/components/Expandable.mjs +45 -0
  60. package/dist/components/Expandable.mjs.map +1 -0
  61. package/dist/components/HelpwaveBadge.d.mts +14 -0
  62. package/dist/components/HelpwaveBadge.d.ts +6 -3
  63. package/dist/components/HelpwaveBadge.js +125 -13
  64. package/dist/components/HelpwaveBadge.js.map +1 -0
  65. package/dist/components/HelpwaveBadge.mjs +91 -0
  66. package/dist/components/HelpwaveBadge.mjs.map +1 -0
  67. package/dist/components/HideableContentSection.d.mts +14 -0
  68. package/dist/components/HideableContentSection.d.ts +7 -3
  69. package/dist/components/HideableContentSection.js +69 -14
  70. package/dist/components/HideableContentSection.js.map +1 -0
  71. package/dist/components/HideableContentSection.mjs +35 -0
  72. package/dist/components/HideableContentSection.mjs.map +1 -0
  73. package/dist/components/InputGroup.d.mts +17 -0
  74. package/dist/components/InputGroup.d.ts +7 -3
  75. package/dist/components/InputGroup.js +96 -32
  76. package/dist/components/InputGroup.js.map +1 -0
  77. package/dist/components/InputGroup.mjs +62 -0
  78. package/dist/components/InputGroup.mjs.map +1 -0
  79. package/dist/components/LoadingAndErrorComponent.d.mts +24 -0
  80. package/dist/components/LoadingAndErrorComponent.d.ts +12 -5
  81. package/dist/components/LoadingAndErrorComponent.js +178 -23
  82. package/dist/components/LoadingAndErrorComponent.js.map +1 -0
  83. package/dist/components/LoadingAndErrorComponent.mjs +145 -0
  84. package/dist/components/LoadingAndErrorComponent.mjs.map +1 -0
  85. package/dist/components/LoadingAnimation.d.mts +18 -0
  86. package/dist/components/LoadingAnimation.d.ts +9 -4
  87. package/dist/components/LoadingAnimation.js +124 -16
  88. package/dist/components/LoadingAnimation.js.map +1 -0
  89. package/dist/components/LoadingAnimation.mjs +90 -0
  90. package/dist/components/LoadingAnimation.mjs.map +1 -0
  91. package/dist/components/LoadingButton.d.mts +10 -0
  92. package/dist/components/LoadingButton.d.ts +7 -3
  93. package/dist/components/LoadingButton.js +169 -9
  94. package/dist/components/LoadingButton.js.map +1 -0
  95. package/dist/components/LoadingButton.mjs +135 -0
  96. package/dist/components/LoadingButton.mjs.map +1 -0
  97. package/dist/components/MarkdownInterpreter.d.mts +28 -0
  98. package/dist/components/MarkdownInterpreter.d.ts +8 -5
  99. package/dist/components/MarkdownInterpreter.js +246 -175
  100. package/dist/components/MarkdownInterpreter.js.map +1 -0
  101. package/dist/components/MarkdownInterpreter.mjs +235 -0
  102. package/dist/components/MarkdownInterpreter.mjs.map +1 -0
  103. package/dist/components/Pagination.d.mts +19 -0
  104. package/dist/components/Pagination.d.ts +9 -4
  105. package/dist/components/Pagination.js +100 -23
  106. package/dist/components/Pagination.js.map +1 -0
  107. package/dist/components/Pagination.mjs +67 -0
  108. package/dist/components/Pagination.mjs.map +1 -0
  109. package/dist/components/Profile.d.mts +31 -0
  110. package/dist/components/Profile.d.ts +8 -5
  111. package/dist/components/Profile.js +194 -42
  112. package/dist/components/Profile.js.map +1 -0
  113. package/dist/components/Profile.mjs +162 -0
  114. package/dist/components/Profile.mjs.map +1 -0
  115. package/dist/components/ProgressIndicator.d.mts +24 -0
  116. package/dist/components/ProgressIndicator.d.ts +6 -3
  117. package/dist/components/ProgressIndicator.js +82 -22
  118. package/dist/components/ProgressIndicator.js.map +1 -0
  119. package/dist/components/ProgressIndicator.mjs +59 -0
  120. package/dist/components/ProgressIndicator.mjs.map +1 -0
  121. package/dist/components/Ring.d.mts +35 -0
  122. package/dist/components/Ring.d.ts +13 -9
  123. package/dist/components/Ring.js +331 -107
  124. package/dist/components/Ring.js.map +1 -0
  125. package/dist/components/Ring.mjs +299 -0
  126. package/dist/components/Ring.mjs.map +1 -0
  127. package/dist/components/SearchableList.d.mts +22 -0
  128. package/dist/components/SearchableList.d.ts +9 -5
  129. package/dist/components/SearchableList.js +268 -24
  130. package/dist/components/SearchableList.js.map +1 -0
  131. package/dist/components/SearchableList.mjs +241 -0
  132. package/dist/components/SearchableList.mjs.map +1 -0
  133. package/dist/components/SortButton.d.mts +15 -0
  134. package/dist/components/SortButton.d.ts +9 -4
  135. package/dist/components/SortButton.js +131 -8
  136. package/dist/components/SortButton.js.map +1 -0
  137. package/dist/components/SortButton.mjs +97 -0
  138. package/dist/components/SortButton.mjs.map +1 -0
  139. package/dist/components/StepperBar.d.mts +28 -0
  140. package/dist/components/StepperBar.d.ts +10 -5
  141. package/dist/components/StepperBar.js +248 -44
  142. package/dist/components/StepperBar.js.map +1 -0
  143. package/dist/components/StepperBar.mjs +216 -0
  144. package/dist/components/StepperBar.mjs.map +1 -0
  145. package/dist/components/Table.d.mts +90 -0
  146. package/dist/components/Table.d.ts +20 -17
  147. package/dist/components/Table.js +396 -170
  148. package/dist/components/Table.js.map +1 -0
  149. package/dist/components/Table.mjs +370 -0
  150. package/dist/components/Table.mjs.map +1 -0
  151. package/dist/components/TechRadar.d.mts +39 -0
  152. package/dist/components/TechRadar.d.ts +5 -2
  153. package/dist/components/TechRadar.js +241 -189
  154. package/dist/components/TechRadar.js.map +1 -0
  155. package/dist/components/TechRadar.mjs +208 -0
  156. package/dist/components/TechRadar.mjs.map +1 -0
  157. package/dist/components/TextImage.d.mts +25 -0
  158. package/dist/components/TextImage.d.ts +9 -4
  159. package/dist/components/TextImage.js +121 -29
  160. package/dist/components/TextImage.js.map +1 -0
  161. package/dist/components/TextImage.mjs +86 -0
  162. package/dist/components/TextImage.mjs.map +1 -0
  163. package/dist/components/TimeDisplay.d.mts +35 -0
  164. package/dist/components/TimeDisplay.d.ts +8 -3
  165. package/dist/components/TimeDisplay.js +134 -81
  166. package/dist/components/TimeDisplay.js.map +1 -0
  167. package/dist/components/TimeDisplay.mjs +109 -0
  168. package/dist/components/TimeDisplay.mjs.map +1 -0
  169. package/dist/components/Tooltip.d.mts +37 -0
  170. package/dist/components/Tooltip.d.ts +7 -4
  171. package/dist/components/Tooltip.js +135 -37
  172. package/dist/components/Tooltip.js.map +1 -0
  173. package/dist/components/Tooltip.mjs +109 -0
  174. package/dist/components/Tooltip.mjs.map +1 -0
  175. package/dist/components/VerticalDivider.d.mts +15 -0
  176. package/dist/components/VerticalDivider.d.ts +6 -2
  177. package/dist/components/VerticalDivider.js +80 -6
  178. package/dist/components/VerticalDivider.js.map +1 -0
  179. package/dist/components/VerticalDivider.mjs +56 -0
  180. package/dist/components/VerticalDivider.mjs.map +1 -0
  181. package/dist/components/date/DatePicker.d.mts +32 -0
  182. package/dist/components/date/DatePicker.d.ts +13 -7
  183. package/dist/components/date/DatePicker.js +624 -55
  184. package/dist/components/date/DatePicker.js.map +1 -0
  185. package/dist/components/date/DatePicker.mjs +591 -0
  186. package/dist/components/date/DatePicker.mjs.map +1 -0
  187. package/dist/components/date/DayPicker.d.mts +20 -0
  188. package/dist/components/date/DayPicker.d.ts +8 -4
  189. package/dist/components/date/DayPicker.js +232 -36
  190. package/dist/components/date/DayPicker.js.map +1 -0
  191. package/dist/components/date/DayPicker.mjs +195 -0
  192. package/dist/components/date/DayPicker.mjs.map +1 -0
  193. package/dist/components/date/TimePicker.d.mts +15 -0
  194. package/dist/components/date/TimePicker.d.ts +7 -4
  195. package/dist/components/date/TimePicker.js +196 -75
  196. package/dist/components/date/TimePicker.js.map +1 -0
  197. package/dist/components/date/TimePicker.mjs +164 -0
  198. package/dist/components/date/TimePicker.mjs.map +1 -0
  199. package/dist/components/date/YearMonthPicker.d.mts +15 -0
  200. package/dist/components/date/YearMonthPicker.d.ts +7 -3
  201. package/dist/components/date/YearMonthPicker.js +281 -57
  202. package/dist/components/date/YearMonthPicker.js.map +1 -0
  203. package/dist/components/date/YearMonthPicker.mjs +247 -0
  204. package/dist/components/date/YearMonthPicker.mjs.map +1 -0
  205. package/dist/components/icons/Helpwave.d.mts +14 -0
  206. package/dist/components/icons/Helpwave.d.ts +7 -3
  207. package/dist/components/icons/Helpwave.js +66 -18
  208. package/dist/components/icons/Helpwave.js.map +1 -0
  209. package/dist/components/icons/Helpwave.mjs +43 -0
  210. package/dist/components/icons/Helpwave.mjs.map +1 -0
  211. package/dist/components/icons/Tag.d.mts +14 -0
  212. package/dist/components/icons/Tag.d.ts +7 -3
  213. package/dist/components/icons/Tag.js +59 -11
  214. package/dist/components/icons/Tag.js.map +1 -0
  215. package/dist/components/icons/Tag.mjs +25 -0
  216. package/dist/components/icons/Tag.mjs.map +1 -0
  217. package/dist/components/layout/Carousel.d.mts +25 -0
  218. package/dist/components/layout/Carousel.d.ts +6 -3
  219. package/dist/components/layout/Carousel.js +477 -226
  220. package/dist/components/layout/Carousel.js.map +1 -0
  221. package/dist/components/layout/Carousel.mjs +449 -0
  222. package/dist/components/layout/Carousel.mjs.map +1 -0
  223. package/dist/components/layout/DividerInserter.d.mts +15 -0
  224. package/dist/components/layout/DividerInserter.d.ts +7 -3
  225. package/dist/components/layout/DividerInserter.js +58 -18
  226. package/dist/components/layout/DividerInserter.js.map +1 -0
  227. package/dist/components/layout/DividerInserter.mjs +25 -0
  228. package/dist/components/layout/DividerInserter.mjs.map +1 -0
  229. package/dist/components/layout/FAQSection.d.mts +26 -0
  230. package/dist/components/layout/FAQSection.d.ts +9 -6
  231. package/dist/components/layout/FAQSection.js +336 -13
  232. package/dist/components/layout/FAQSection.js.map +1 -0
  233. package/dist/components/layout/FAQSection.mjs +302 -0
  234. package/dist/components/layout/FAQSection.mjs.map +1 -0
  235. package/dist/components/layout/Tile.d.mts +37 -0
  236. package/dist/components/layout/Tile.d.ts +9 -6
  237. package/dist/components/layout/Tile.js +76 -16
  238. package/dist/components/layout/Tile.js.map +1 -0
  239. package/dist/components/layout/Tile.mjs +42 -0
  240. package/dist/components/layout/Tile.mjs.map +1 -0
  241. package/dist/components/modals/ConfirmDialog.d.mts +38 -0
  242. package/dist/components/modals/ConfirmDialog.d.ts +13 -9
  243. package/dist/components/modals/ConfirmDialog.js +422 -28
  244. package/dist/components/modals/ConfirmDialog.js.map +1 -0
  245. package/dist/components/modals/ConfirmDialog.mjs +388 -0
  246. package/dist/components/modals/ConfirmDialog.mjs.map +1 -0
  247. package/dist/components/modals/DiscardChangesDialog.d.mts +23 -0
  248. package/dist/components/modals/DiscardChangesDialog.d.ts +9 -5
  249. package/dist/components/modals/DiscardChangesDialog.js +406 -23
  250. package/dist/components/modals/DiscardChangesDialog.js.map +1 -0
  251. package/dist/components/modals/DiscardChangesDialog.mjs +370 -0
  252. package/dist/components/modals/DiscardChangesDialog.mjs.map +1 -0
  253. package/dist/components/modals/InputModal.d.mts +19 -0
  254. package/dist/components/modals/InputModal.d.ts +14 -4
  255. package/dist/components/modals/InputModal.js +598 -8
  256. package/dist/components/modals/InputModal.js.map +1 -0
  257. package/dist/components/modals/InputModal.mjs +567 -0
  258. package/dist/components/modals/InputModal.mjs.map +1 -0
  259. package/dist/components/modals/LanguageModal.d.mts +21 -0
  260. package/dist/components/modals/LanguageModal.d.ts +9 -5
  261. package/dist/components/modals/LanguageModal.js +524 -33
  262. package/dist/components/modals/LanguageModal.js.map +1 -0
  263. package/dist/components/modals/LanguageModal.mjs +489 -0
  264. package/dist/components/modals/LanguageModal.mjs.map +1 -0
  265. package/dist/components/modals/Modal.d.mts +43 -0
  266. package/dist/components/modals/Modal.d.ts +13 -8
  267. package/dist/components/modals/Modal.js +280 -51
  268. package/dist/components/modals/Modal.js.map +1 -0
  269. package/dist/components/modals/Modal.mjs +249 -0
  270. package/dist/components/modals/Modal.mjs.map +1 -0
  271. package/dist/components/modals/ModalRegister.d.mts +16 -0
  272. package/dist/components/modals/ModalRegister.d.ts +9 -4
  273. package/dist/components/modals/ModalRegister.js +61 -26
  274. package/dist/components/modals/ModalRegister.js.map +1 -0
  275. package/dist/components/modals/ModalRegister.mjs +37 -0
  276. package/dist/components/modals/ModalRegister.mjs.map +1 -0
  277. package/dist/components/properties/CheckboxProperty.d.mts +20 -0
  278. package/dist/components/properties/CheckboxProperty.d.ts +10 -5
  279. package/dist/components/properties/CheckboxProperty.js +323 -24
  280. package/dist/components/properties/CheckboxProperty.js.map +1 -0
  281. package/dist/components/properties/CheckboxProperty.mjs +291 -0
  282. package/dist/components/properties/CheckboxProperty.mjs.map +1 -0
  283. package/dist/components/properties/DateProperty.d.mts +18 -0
  284. package/dist/components/properties/DateProperty.d.ts +10 -3
  285. package/dist/components/properties/DateProperty.js +422 -21
  286. package/dist/components/properties/DateProperty.js.map +1 -0
  287. package/dist/components/properties/DateProperty.mjs +393 -0
  288. package/dist/components/properties/DateProperty.mjs.map +1 -0
  289. package/dist/components/properties/MultiSelectProperty.d.mts +18 -0
  290. package/dist/components/properties/MultiSelectProperty.d.ts +12 -6
  291. package/dist/components/properties/MultiSelectProperty.js +815 -31
  292. package/dist/components/properties/MultiSelectProperty.js.map +1 -0
  293. package/dist/components/properties/MultiSelectProperty.mjs +787 -0
  294. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -0
  295. package/dist/components/properties/NumberProperty.d.mts +21 -0
  296. package/dist/components/properties/NumberProperty.d.ts +10 -5
  297. package/dist/components/properties/NumberProperty.js +429 -39
  298. package/dist/components/properties/NumberProperty.js.map +1 -0
  299. package/dist/components/properties/NumberProperty.mjs +402 -0
  300. package/dist/components/properties/NumberProperty.mjs.map +1 -0
  301. package/dist/components/properties/PropertyBase.d.mts +27 -0
  302. package/dist/components/properties/PropertyBase.d.ts +9 -5
  303. package/dist/components/properties/PropertyBase.js +194 -24
  304. package/dist/components/properties/PropertyBase.js.map +1 -0
  305. package/dist/components/properties/PropertyBase.mjs +162 -0
  306. package/dist/components/properties/PropertyBase.mjs.map +1 -0
  307. package/dist/components/properties/SelectProperty.d.mts +19 -0
  308. package/dist/components/properties/SelectProperty.d.ts +13 -6
  309. package/dist/components/properties/SelectProperty.js +547 -19
  310. package/dist/components/properties/SelectProperty.js.map +1 -0
  311. package/dist/components/properties/SelectProperty.mjs +520 -0
  312. package/dist/components/properties/SelectProperty.mjs.map +1 -0
  313. package/dist/components/properties/TextProperty.d.mts +20 -0
  314. package/dist/components/properties/TextProperty.d.ts +10 -5
  315. package/dist/components/properties/TextProperty.js +378 -34
  316. package/dist/components/properties/TextProperty.js.map +1 -0
  317. package/dist/components/properties/TextProperty.mjs +346 -0
  318. package/dist/components/properties/TextProperty.mjs.map +1 -0
  319. package/dist/components/user-input/Checkbox.d.mts +41 -0
  320. package/dist/components/user-input/Checkbox.d.ts +9 -5
  321. package/dist/components/user-input/Checkbox.js +148 -63
  322. package/dist/components/user-input/Checkbox.js.map +1 -0
  323. package/dist/components/user-input/Checkbox.mjs +112 -0
  324. package/dist/components/user-input/Checkbox.mjs.map +1 -0
  325. package/dist/components/user-input/DateAndTimePicker.d.mts +47 -0
  326. package/dist/components/user-input/DateAndTimePicker.d.ts +15 -7
  327. package/dist/components/user-input/DateAndTimePicker.js +831 -60
  328. package/dist/components/user-input/DateAndTimePicker.js.map +1 -0
  329. package/dist/components/user-input/DateAndTimePicker.mjs +801 -0
  330. package/dist/components/user-input/DateAndTimePicker.mjs.map +1 -0
  331. package/dist/components/user-input/Input.d.mts +64 -0
  332. package/dist/components/user-input/Input.d.ts +12 -9
  333. package/dist/components/user-input/Input.js +219 -57
  334. package/dist/components/user-input/Input.js.map +1 -0
  335. package/dist/components/user-input/Input.mjs +191 -0
  336. package/dist/components/user-input/Input.mjs.map +1 -0
  337. package/dist/components/user-input/Label.d.mts +16 -0
  338. package/dist/components/user-input/Label.d.ts +8 -4
  339. package/dist/components/user-input/Label.js +43 -11
  340. package/dist/components/user-input/Label.js.map +1 -0
  341. package/dist/components/user-input/Label.mjs +19 -0
  342. package/dist/components/user-input/Label.mjs.map +1 -0
  343. package/dist/components/user-input/Menu.d.mts +24 -0
  344. package/dist/components/user-input/Menu.d.ts +8 -5
  345. package/dist/components/user-input/Menu.js +162 -25
  346. package/dist/components/user-input/Menu.js.map +1 -0
  347. package/dist/components/user-input/Menu.mjs +127 -0
  348. package/dist/components/user-input/Menu.mjs.map +1 -0
  349. package/dist/components/user-input/MultiSelect.d.mts +43 -0
  350. package/dist/components/user-input/MultiSelect.d.ts +12 -8
  351. package/dist/components/user-input/MultiSelect.js +545 -56
  352. package/dist/components/user-input/MultiSelect.js.map +1 -0
  353. package/dist/components/user-input/MultiSelect.mjs +516 -0
  354. package/dist/components/user-input/MultiSelect.mjs.map +1 -0
  355. package/dist/components/user-input/ScrollPicker.d.mts +15 -0
  356. package/dist/components/user-input/ScrollPicker.d.ts +6 -2
  357. package/dist/components/user-input/ScrollPicker.js +276 -145
  358. package/dist/components/user-input/ScrollPicker.js.map +1 -0
  359. package/dist/components/user-input/ScrollPicker.mjs +247 -0
  360. package/dist/components/user-input/ScrollPicker.mjs.map +1 -0
  361. package/dist/components/user-input/SearchableSelect.d.mts +14 -0
  362. package/dist/components/user-input/SearchableSelect.d.ts +9 -3
  363. package/dist/components/user-input/SearchableSelect.js +334 -13
  364. package/dist/components/user-input/SearchableSelect.js.map +1 -0
  365. package/dist/components/user-input/SearchableSelect.mjs +305 -0
  366. package/dist/components/user-input/SearchableSelect.mjs.map +1 -0
  367. package/dist/components/user-input/Select.d.mts +36 -0
  368. package/dist/components/user-input/Select.d.ts +9 -5
  369. package/dist/components/user-input/Select.js +152 -47
  370. package/dist/components/user-input/Select.js.map +1 -0
  371. package/dist/components/user-input/Select.mjs +118 -0
  372. package/dist/components/user-input/Select.mjs.map +1 -0
  373. package/dist/components/user-input/Textarea.d.mts +24 -0
  374. package/dist/components/user-input/Textarea.d.ts +8 -4
  375. package/dist/components/user-input/Textarea.js +153 -31
  376. package/dist/components/user-input/Textarea.js.map +1 -0
  377. package/dist/components/user-input/Textarea.mjs +120 -0
  378. package/dist/components/user-input/Textarea.mjs.map +1 -0
  379. package/dist/components/user-input/ToggleableInput.d.mts +35 -0
  380. package/dist/components/user-input/ToggleableInput.d.ts +6 -3
  381. package/dist/components/user-input/ToggleableInput.js +161 -38
  382. package/dist/components/user-input/ToggleableInput.js.map +1 -0
  383. package/dist/components/user-input/ToggleableInput.mjs +128 -0
  384. package/dist/components/user-input/ToggleableInput.mjs.map +1 -0
  385. package/dist/hooks/useHoverState.d.mts +42 -0
  386. package/dist/hooks/useHoverState.d.ts +5 -3
  387. package/dist/hooks/useHoverState.js +69 -43
  388. package/dist/hooks/useHoverState.js.map +1 -0
  389. package/dist/hooks/useHoverState.mjs +47 -0
  390. package/dist/hooks/useHoverState.mjs.map +1 -0
  391. package/dist/hooks/useLanguage.d.mts +21 -0
  392. package/dist/hooks/useLanguage.d.ts +15 -11
  393. package/dist/hooks/useLanguage.js +145 -50
  394. package/dist/hooks/useLanguage.js.map +1 -0
  395. package/dist/hooks/useLanguage.mjs +115 -0
  396. package/dist/hooks/useLanguage.mjs.map +1 -0
  397. package/dist/hooks/useLocalStorage.d.mts +6 -0
  398. package/dist/hooks/useLocalStorage.d.ts +4 -2
  399. package/dist/hooks/useLocalStorage.js +79 -23
  400. package/dist/hooks/useLocalStorage.js.map +1 -0
  401. package/dist/hooks/useLocalStorage.mjs +59 -0
  402. package/dist/hooks/useLocalStorage.mjs.map +1 -0
  403. package/dist/hooks/useOutsideClick.d.mts +5 -0
  404. package/dist/hooks/useOutsideClick.d.ts +5 -2
  405. package/dist/hooks/useOutsideClick.js +47 -21
  406. package/dist/hooks/useOutsideClick.js.map +1 -0
  407. package/dist/hooks/useOutsideClick.mjs +23 -0
  408. package/dist/hooks/useOutsideClick.mjs.map +1 -0
  409. package/dist/hooks/useSaveDelay.d.mts +6 -0
  410. package/dist/hooks/useSaveDelay.d.ts +2 -1
  411. package/dist/hooks/useSaveDelay.js +62 -38
  412. package/dist/hooks/useSaveDelay.js.map +1 -0
  413. package/dist/hooks/useSaveDelay.mjs +44 -0
  414. package/dist/hooks/useSaveDelay.mjs.map +1 -0
  415. package/dist/hooks/useTheme.d.mts +21 -0
  416. package/dist/hooks/useTheme.d.ts +14 -9
  417. package/dist/hooks/useTheme.js +65 -29
  418. package/dist/hooks/useTheme.js.map +1 -0
  419. package/dist/hooks/useTheme.mjs +40 -0
  420. package/dist/hooks/useTheme.mjs.map +1 -0
  421. package/dist/hooks/useTranslation.d.mts +28 -0
  422. package/dist/hooks/useTranslation.d.ts +9 -5
  423. package/dist/hooks/useTranslation.js +53 -10
  424. package/dist/hooks/useTranslation.js.map +1 -0
  425. package/dist/hooks/useTranslation.mjs +27 -0
  426. package/dist/hooks/useTranslation.mjs.map +1 -0
  427. package/dist/index.d.mts +86 -0
  428. package/dist/index.d.ts +86 -0
  429. package/dist/index.js +5716 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.mjs +5542 -0
  432. package/dist/index.mjs.map +1 -0
  433. package/dist/util/array.d.mts +25 -0
  434. package/dist/util/array.d.ts +9 -7
  435. package/dist/util/array.js +119 -92
  436. package/dist/util/array.js.map +1 -0
  437. package/dist/util/array.mjs +99 -0
  438. package/dist/util/array.mjs.map +1 -0
  439. package/dist/util/builder.d.mts +8 -0
  440. package/dist/util/builder.d.ts +3 -1
  441. package/dist/util/builder.js +33 -8
  442. package/dist/util/builder.js.map +1 -0
  443. package/dist/util/builder.mjs +9 -0
  444. package/dist/util/builder.mjs.map +1 -0
  445. package/dist/util/date.d.mts +30 -0
  446. package/dist/util/date.d.ts +17 -15
  447. package/dist/util/date.js +184 -123
  448. package/dist/util/date.js.map +1 -0
  449. package/dist/util/date.mjs +156 -0
  450. package/dist/util/date.mjs.map +1 -0
  451. package/dist/util/easeFunctions.d.mts +11 -0
  452. package/dist/util/easeFunctions.d.ts +4 -2
  453. package/dist/util/easeFunctions.js +63 -30
  454. package/dist/util/easeFunctions.js.map +1 -0
  455. package/dist/util/easeFunctions.mjs +36 -0
  456. package/dist/util/easeFunctions.mjs.map +1 -0
  457. package/dist/util/emailValidation.d.mts +3 -0
  458. package/dist/util/emailValidation.d.ts +3 -1
  459. package/dist/util/emailValidation.js +32 -2
  460. package/dist/util/emailValidation.js.map +1 -0
  461. package/dist/util/emailValidation.mjs +8 -0
  462. package/dist/util/emailValidation.mjs.map +1 -0
  463. package/dist/util/loopingArray.d.mts +25 -0
  464. package/dist/util/loopingArray.d.ts +4 -2
  465. package/dist/util/loopingArray.js +89 -59
  466. package/dist/util/loopingArray.js.map +1 -0
  467. package/dist/util/loopingArray.mjs +72 -0
  468. package/dist/util/loopingArray.mjs.map +1 -0
  469. package/dist/util/math.d.mts +3 -0
  470. package/dist/util/math.d.ts +3 -1
  471. package/dist/util/math.js +32 -2
  472. package/dist/util/math.js.map +1 -0
  473. package/dist/util/math.mjs +8 -0
  474. package/dist/util/math.mjs.map +1 -0
  475. package/dist/util/news.d.mts +103 -0
  476. package/dist/util/news.d.ts +12 -7
  477. package/dist/util/news.js +73 -24
  478. package/dist/util/news.js.map +1 -0
  479. package/dist/util/news.mjs +48 -0
  480. package/dist/util/news.mjs.map +1 -0
  481. package/dist/util/noop.d.mts +3 -0
  482. package/dist/util/noop.d.ts +3 -1
  483. package/dist/util/noop.js +31 -1
  484. package/dist/util/noop.js.map +1 -0
  485. package/dist/util/noop.mjs +6 -0
  486. package/dist/util/noop.mjs.map +1 -0
  487. package/dist/util/simpleSearch.d.mts +50 -0
  488. package/dist/util/simpleSearch.d.ts +6 -4
  489. package/dist/util/simpleSearch.js +50 -58
  490. package/dist/util/simpleSearch.js.map +1 -0
  491. package/dist/util/simpleSearch.mjs +26 -0
  492. package/dist/util/simpleSearch.mjs.map +1 -0
  493. package/dist/util/storage.d.mts +16 -0
  494. package/dist/util/storage.d.ts +4 -3
  495. package/dist/util/storage.js +63 -31
  496. package/dist/util/storage.js.map +1 -0
  497. package/dist/util/storage.mjs +38 -0
  498. package/dist/util/storage.mjs.map +1 -0
  499. package/dist/util/types.d.mts +3 -0
  500. package/dist/util/types.d.ts +3 -1
  501. package/dist/util/types.js +19 -1
  502. package/dist/util/types.js.map +1 -0
  503. package/dist/util/types.mjs +1 -0
  504. package/dist/util/types.mjs.map +1 -0
  505. package/package.json +20 -9
  506. package/dist/components/Span.d.ts +0 -0
  507. package/dist/components/Span.js +0 -1
  508. package/dist/components/examples/InputGroupExample.d.ts +0 -6
  509. package/dist/components/examples/InputGroupExample.js +0 -21
  510. package/dist/components/examples/MultiSelectExample.d.ts +0 -7
  511. package/dist/components/examples/MultiSelectExample.js +0 -27
  512. package/dist/components/examples/SearchableSelectExample.d.ts +0 -6
  513. package/dist/components/examples/SearchableSelectExample.js +0 -17
  514. package/dist/components/examples/SelectExample.d.ts +0 -4
  515. package/dist/components/examples/SelectExample.js +0 -15
  516. package/dist/components/examples/StackingModals.d.ts +0 -4
  517. package/dist/components/examples/StackingModals.js +0 -15
  518. package/dist/components/examples/TableExample.d.ts +0 -9
  519. package/dist/components/examples/TableExample.js +0 -92
  520. package/dist/components/examples/TextareaExample.d.ts +0 -6
  521. package/dist/components/examples/TextareaExample.js +0 -10
  522. package/dist/components/examples/TileExample.d.ts +0 -9
  523. package/dist/components/examples/TileExample.js +0 -9
  524. package/dist/components/examples/Title.d.ts +0 -0
  525. package/dist/components/examples/Title.js +0 -1
  526. package/dist/components/examples/date/DateTimePickerExample.d.ts +0 -10
  527. package/dist/components/examples/date/DateTimePickerExample.js +0 -21
  528. package/dist/components/examples/properties/CheckboxPropertyExample.d.ts +0 -8
  529. package/dist/components/examples/properties/CheckboxPropertyExample.js +0 -13
  530. package/dist/components/examples/properties/DatePropertyExample.d.ts +0 -8
  531. package/dist/components/examples/properties/DatePropertyExample.js +0 -23
  532. package/dist/components/examples/properties/MultiSelectPropertyExample.d.ts +0 -8
  533. package/dist/components/examples/properties/MultiSelectPropertyExample.js +0 -16
  534. package/dist/components/examples/properties/NumberPropertyExample.d.ts +0 -6
  535. package/dist/components/examples/properties/NumberPropertyExample.js +0 -13
  536. package/dist/components/examples/properties/SelectPropertyExample.d.ts +0 -6
  537. package/dist/components/examples/properties/SelectPropertyExample.js +0 -18
  538. package/dist/components/examples/properties/TextPropertyExample.d.ts +0 -8
  539. package/dist/components/examples/properties/TextPropertyExample.js +0 -13
@@ -0,0 +1,299 @@
1
+ // src/components/Ring.tsx
2
+ import { useCallback, useEffect, useState } from "react";
3
+
4
+ // src/util/noop.ts
5
+ var noop = () => void 0;
6
+
7
+ // src/components/Circle.tsx
8
+ import clsx from "clsx";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var Circle = ({
11
+ radius = 20,
12
+ className = "bg-primary",
13
+ style,
14
+ ...restProps
15
+ }) => {
16
+ const size = radius * 2;
17
+ return /* @__PURE__ */ jsx(
18
+ "div",
19
+ {
20
+ className: clsx(`rounded-full`, className),
21
+ style: {
22
+ width: `${size}px`,
23
+ height: `${size}px`,
24
+ ...style
25
+ },
26
+ ...restProps
27
+ }
28
+ );
29
+ };
30
+
31
+ // src/components/Ring.tsx
32
+ import clsx2 from "clsx";
33
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
34
+ var Ring = ({
35
+ innerSize = 20,
36
+ width = 7,
37
+ className = "outline-primary"
38
+ }) => {
39
+ return /* @__PURE__ */ jsx2(
40
+ "div",
41
+ {
42
+ className: clsx2(`bg-transparent rounded-full outline`, className),
43
+ style: {
44
+ width: `${innerSize}px`,
45
+ height: `${innerSize}px`,
46
+ outlineWidth: `${width}px`
47
+ }
48
+ }
49
+ );
50
+ };
51
+ var AnimatedRing = ({
52
+ innerSize,
53
+ width,
54
+ className,
55
+ fillAnimationDuration = 3,
56
+ repeating = false,
57
+ onAnimationFinished = noop,
58
+ style
59
+ }) => {
60
+ const [currentWidth, setCurrentWidth] = useState(0);
61
+ const milliseconds = 1e3 * fillAnimationDuration;
62
+ const animate = useCallback((timestamp, startTime) => {
63
+ const progress = Math.min((timestamp - startTime) / milliseconds, 1);
64
+ const newWidth = Math.min(width * progress, width);
65
+ setCurrentWidth(newWidth);
66
+ if (progress < 1) {
67
+ requestAnimationFrame((newTimestamp) => animate(newTimestamp, startTime));
68
+ } else {
69
+ onAnimationFinished();
70
+ if (repeating) {
71
+ setCurrentWidth(0);
72
+ requestAnimationFrame((newTimestamp) => animate(newTimestamp, newTimestamp));
73
+ }
74
+ }
75
+ }, [milliseconds, onAnimationFinished, repeating, width]);
76
+ useEffect(() => {
77
+ if (currentWidth < width) {
78
+ requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
79
+ }
80
+ }, []);
81
+ return /* @__PURE__ */ jsx2(
82
+ "div",
83
+ {
84
+ className: "row items-center justify-center",
85
+ style: {
86
+ width: `${innerSize + 2 * width}px`,
87
+ height: `${innerSize + 2 * width}px`,
88
+ ...style
89
+ },
90
+ children: /* @__PURE__ */ jsx2(
91
+ Ring,
92
+ {
93
+ innerSize,
94
+ width: currentWidth,
95
+ className
96
+ }
97
+ )
98
+ }
99
+ );
100
+ };
101
+ var RingWave = ({
102
+ startInnerSize = 20,
103
+ endInnerSize = 30,
104
+ width,
105
+ className,
106
+ fillAnimationDuration = 3,
107
+ repeating = false,
108
+ onAnimationFinished = noop,
109
+ style
110
+ }) => {
111
+ const [currentInnerSize, setCurrentInnerSize] = useState(startInnerSize);
112
+ const distance = endInnerSize - startInnerSize;
113
+ const milliseconds = 1e3 * fillAnimationDuration;
114
+ const animate = useCallback((timestamp, startTime) => {
115
+ const progress = Math.min((timestamp - startTime) / milliseconds, 1);
116
+ const newInnerSize = Math.min(
117
+ startInnerSize + distance * progress,
118
+ endInnerSize
119
+ );
120
+ setCurrentInnerSize(newInnerSize);
121
+ if (progress < 1) {
122
+ requestAnimationFrame((newTimestamp) => animate(newTimestamp, startTime));
123
+ } else {
124
+ onAnimationFinished();
125
+ if (repeating) {
126
+ setCurrentInnerSize(startInnerSize);
127
+ requestAnimationFrame((newTimestamp) => animate(newTimestamp, newTimestamp));
128
+ }
129
+ }
130
+ }, [distance, endInnerSize, milliseconds, onAnimationFinished, repeating, startInnerSize]);
131
+ useEffect(() => {
132
+ if (currentInnerSize < endInnerSize) {
133
+ requestAnimationFrame((timestamp) => animate(timestamp, timestamp));
134
+ }
135
+ }, []);
136
+ return /* @__PURE__ */ jsx2(
137
+ "div",
138
+ {
139
+ className: "row items-center justify-center",
140
+ style: {
141
+ width: `${endInnerSize + 2 * width}px`,
142
+ height: `${endInnerSize + 2 * width}px`,
143
+ ...style
144
+ },
145
+ children: /* @__PURE__ */ jsx2(
146
+ Ring,
147
+ {
148
+ innerSize: currentInnerSize,
149
+ width,
150
+ className
151
+ }
152
+ )
153
+ }
154
+ );
155
+ };
156
+ var RadialRings = ({
157
+ circle1ClassName = "bg-primary/90 outline-primary/90",
158
+ circle2ClassName = "bg-primary/60 outline-primary/60",
159
+ circle3ClassName = "bg-primary/40 outline-primary/40",
160
+ waveWidth = 10,
161
+ waveBaseColor = "outline-white/20",
162
+ sizeCircle1 = 100,
163
+ sizeCircle2 = 200,
164
+ sizeCircle3 = 300
165
+ }) => {
166
+ const [currentRing, setCurrentRing] = useState(0);
167
+ const size = sizeCircle3;
168
+ return /* @__PURE__ */ jsxs(
169
+ "div",
170
+ {
171
+ className: "relative",
172
+ style: {
173
+ width: `${sizeCircle3}px`,
174
+ height: `${sizeCircle3}px`
175
+ },
176
+ children: [
177
+ /* @__PURE__ */ jsx2(
178
+ Circle,
179
+ {
180
+ radius: sizeCircle1 / 2,
181
+ className: clsx2(circle1ClassName, `absolute z-[10] -translate-y-1/2 -translate-x-1/2`),
182
+ style: {
183
+ left: `${size / 2}px`,
184
+ top: `${size / 2}px`
185
+ }
186
+ }
187
+ ),
188
+ currentRing === 0 ? /* @__PURE__ */ jsx2(
189
+ AnimatedRing,
190
+ {
191
+ innerSize: sizeCircle1,
192
+ width: (sizeCircle2 - sizeCircle1) / 2,
193
+ onAnimationFinished: () => currentRing === 0 ? setCurrentRing(1) : null,
194
+ repeating: true,
195
+ className: clsx2(
196
+ circle2ClassName,
197
+ { "opacity-5": currentRing !== 0 }
198
+ ),
199
+ style: {
200
+ left: `${size / 2}px`,
201
+ top: `${size / 2}px`,
202
+ position: "absolute",
203
+ translate: `-50% -50%`,
204
+ zIndex: 9
205
+ }
206
+ }
207
+ ) : null,
208
+ currentRing === 2 ? /* @__PURE__ */ jsx2(
209
+ RingWave,
210
+ {
211
+ startInnerSize: sizeCircle1 - waveWidth,
212
+ endInnerSize: sizeCircle2,
213
+ width: waveWidth,
214
+ repeating: true,
215
+ className: clsx2(waveBaseColor, `opacity-5`),
216
+ style: {
217
+ left: `${size / 2}px`,
218
+ top: `${size / 2}px`,
219
+ position: "absolute",
220
+ translate: `-50% -50%`,
221
+ zIndex: 9
222
+ }
223
+ }
224
+ ) : null,
225
+ /* @__PURE__ */ jsx2(
226
+ Circle,
227
+ {
228
+ radius: sizeCircle2 / 2,
229
+ className: clsx2(
230
+ circle2ClassName,
231
+ { "opacity-20": currentRing < 1 },
232
+ `absolute z-[8] -translate-y-1/2 -translate-x-1/2`
233
+ ),
234
+ style: {
235
+ left: `${size / 2}px`,
236
+ top: `${size / 2}px`
237
+ }
238
+ }
239
+ ),
240
+ currentRing === 1 ? /* @__PURE__ */ jsx2(
241
+ AnimatedRing,
242
+ {
243
+ innerSize: sizeCircle2 - 1,
244
+ width: (sizeCircle3 - sizeCircle2) / 2,
245
+ onAnimationFinished: () => currentRing === 1 ? setCurrentRing(2) : null,
246
+ repeating: true,
247
+ className: clsx2(circle3ClassName),
248
+ style: {
249
+ left: `${size / 2}px`,
250
+ top: `${size / 2}px`,
251
+ position: "absolute",
252
+ translate: `-50% -50%`,
253
+ zIndex: 7
254
+ }
255
+ }
256
+ ) : null,
257
+ currentRing === 2 ? /* @__PURE__ */ jsx2(
258
+ RingWave,
259
+ {
260
+ startInnerSize: sizeCircle2,
261
+ endInnerSize: sizeCircle3 - waveWidth,
262
+ width: waveWidth,
263
+ repeating: true,
264
+ className: clsx2(waveBaseColor, `opacity-5`),
265
+ style: {
266
+ left: `${size / 2}px`,
267
+ top: `${size / 2}px`,
268
+ position: "absolute",
269
+ translate: `-50% -50%`,
270
+ zIndex: 7
271
+ }
272
+ }
273
+ ) : null,
274
+ /* @__PURE__ */ jsx2(
275
+ Circle,
276
+ {
277
+ radius: sizeCircle3 / 2,
278
+ className: clsx2(
279
+ circle3ClassName,
280
+ { "opacity-20": currentRing < 2 },
281
+ `absolute z-[6] -translate-y-1/2 -translate-x-1/2`
282
+ ),
283
+ style: {
284
+ left: `${size / 2}px`,
285
+ top: `${size / 2}px`
286
+ }
287
+ }
288
+ )
289
+ ]
290
+ }
291
+ );
292
+ };
293
+ export {
294
+ AnimatedRing,
295
+ RadialRings,
296
+ Ring,
297
+ RingWave
298
+ };
299
+ //# sourceMappingURL=Ring.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Ring.tsx","../../src/util/noop.ts","../../src/components/Circle.tsx"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { noop } from '../util/noop'\nimport { Circle } from './Circle'\nimport clsx from 'clsx'\n\nexport type RingProps = {\n innerSize: number, // the size of the entire circle including the circleWidth\n width: number,\n className?: string,\n};\n\nexport const Ring = ({\n innerSize = 20,\n width = 7,\n className = 'outline-primary',\n }: RingProps) => {\n return (\n <div\n className={clsx(`bg-transparent rounded-full outline`, className)}\n style={{\n width: `${innerSize}px`,\n height: `${innerSize}px`,\n outlineWidth: `${width}px`,\n }}\n />\n )\n}\n\nexport type AnimatedRingProps = RingProps & {\n fillAnimationDuration?: number, // in seconds, 0 means no animation\n repeating?: boolean,\n onAnimationFinished?: () => void,\n style?: CSSProperties,\n};\n\nexport const AnimatedRing = ({\n innerSize,\n width,\n className,\n fillAnimationDuration = 3,\n repeating = false,\n onAnimationFinished = noop,\n style,\n }: AnimatedRingProps) => {\n const [currentWidth, setCurrentWidth] = useState(0)\n const milliseconds = 1000 * fillAnimationDuration\n\n const animate = useCallback((timestamp: number, startTime: number) => {\n const progress = Math.min((timestamp - startTime) / milliseconds, 1)\n const newWidth = Math.min(width * progress, width)\n\n setCurrentWidth(newWidth)\n\n if (progress < 1) {\n requestAnimationFrame((newTimestamp) => animate(newTimestamp, startTime))\n } else {\n onAnimationFinished()\n if (repeating) {\n setCurrentWidth(0)\n requestAnimationFrame((newTimestamp) => animate(newTimestamp, newTimestamp))\n }\n }\n }, [milliseconds, onAnimationFinished, repeating, width])\n\n useEffect(() => {\n if (currentWidth < width) {\n requestAnimationFrame((timestamp) => animate(timestamp, timestamp))\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div\n className=\"row items-center justify-center\"\n style={{\n width: `${innerSize + 2 * width}px`,\n height: `${innerSize + 2 * width}px`,\n ...style,\n }}\n >\n <Ring\n innerSize={innerSize}\n width={currentWidth}\n className={className}\n />\n </div>\n )\n}\n\nexport type RingWaveProps = Omit<AnimatedRingProps, 'innerSize'> & {\n startInnerSize: number,\n endInnerSize: number,\n style?: CSSProperties,\n};\n\nexport const RingWave = ({\n startInnerSize = 20,\n endInnerSize = 30,\n width,\n className,\n fillAnimationDuration = 3,\n repeating = false,\n onAnimationFinished = noop,\n style\n }: RingWaveProps) => {\n const [currentInnerSize, setCurrentInnerSize] = useState(startInnerSize)\n const distance = endInnerSize - startInnerSize\n const milliseconds = 1000 * fillAnimationDuration\n\n const animate = useCallback((timestamp: number, startTime: number) => {\n const progress = Math.min((timestamp - startTime) / milliseconds, 1)\n const newInnerSize = Math.min(\n startInnerSize + distance * progress,\n endInnerSize\n )\n\n setCurrentInnerSize(newInnerSize)\n\n if (progress < 1) {\n requestAnimationFrame((newTimestamp) => animate(newTimestamp, startTime))\n } else {\n onAnimationFinished()\n if (repeating) {\n setCurrentInnerSize(startInnerSize)\n requestAnimationFrame((newTimestamp) => animate(newTimestamp, newTimestamp))\n }\n }\n }, [distance, endInnerSize, milliseconds, onAnimationFinished, repeating, startInnerSize])\n\n useEffect(() => {\n if (currentInnerSize < endInnerSize) {\n requestAnimationFrame((timestamp) => animate(timestamp, timestamp))\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div\n className=\"row items-center justify-center\"\n style={{\n width: `${endInnerSize + 2 * width}px`,\n height: `${endInnerSize + 2 * width}px`,\n ...style\n }}\n >\n <Ring\n innerSize={currentInnerSize}\n width={width}\n className={className}\n />\n </div>\n )\n}\n\nexport type RadialRingsProps = {\n circle1ClassName?: string,\n circle2ClassName?: string,\n circle3ClassName?: string,\n waveWidth?: number,\n waveBaseColor?: string,\n sizeCircle1?: number,\n sizeCircle2?: number,\n sizeCircle3?: number,\n};\n\n// TODO use fixed colors here to avoid artifacts\nexport const RadialRings = ({\n circle1ClassName = 'bg-primary/90 outline-primary/90',\n circle2ClassName = 'bg-primary/60 outline-primary/60',\n circle3ClassName = 'bg-primary/40 outline-primary/40',\n waveWidth = 10,\n waveBaseColor = 'outline-white/20',\n sizeCircle1 = 100,\n sizeCircle2 = 200,\n sizeCircle3 = 300\n }: RadialRingsProps) => {\n const [currentRing, setCurrentRing] = useState(0)\n const size = sizeCircle3\n\n return (\n <div\n className=\"relative\"\n style={{\n width: `${sizeCircle3}px`,\n height: `${sizeCircle3}px`,\n }}\n >\n <Circle\n radius={sizeCircle1 / 2}\n className={clsx(circle1ClassName, `absolute z-[10] -translate-y-1/2 -translate-x-1/2`)}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`\n }}\n />\n {currentRing === 0 ? (\n <AnimatedRing\n innerSize={sizeCircle1}\n width={(sizeCircle2 - sizeCircle1) / 2}\n onAnimationFinished={() =>\n currentRing === 0 ? setCurrentRing(1) : null\n }\n repeating={true}\n className={clsx(circle2ClassName,\n { 'opacity-5': currentRing !== 0 })}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`,\n position: 'absolute',\n translate: `-50% -50%`,\n zIndex: 9\n }}\n />\n ) : null}\n {currentRing === 2 ? (\n <RingWave\n startInnerSize={sizeCircle1 - waveWidth}\n endInnerSize={sizeCircle2}\n width={waveWidth}\n repeating={true}\n className={clsx(waveBaseColor, `opacity-5`)}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`,\n position: 'absolute',\n translate: `-50% -50%`,\n zIndex: 9,\n }}\n />\n ) : null}\n <Circle\n radius={sizeCircle2 / 2}\n className={clsx(circle2ClassName,\n { 'opacity-20': currentRing < 1 },\n `absolute z-[8] -translate-y-1/2 -translate-x-1/2`)}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`\n }}\n />\n {currentRing === 1 ? (\n <AnimatedRing\n innerSize={sizeCircle2 - 1} // potentially harmful\n width={(sizeCircle3 - sizeCircle2) / 2}\n onAnimationFinished={() =>\n currentRing === 1 ? setCurrentRing(2) : null\n }\n repeating={true}\n className={clsx(circle3ClassName)}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`,\n position: 'absolute',\n translate: `-50% -50%`,\n zIndex: 7,\n }}\n />\n ) : null}\n {currentRing === 2 ? (\n <RingWave\n startInnerSize={sizeCircle2}\n endInnerSize={sizeCircle3 - waveWidth}\n width={waveWidth}\n repeating={true}\n className={clsx(waveBaseColor, `opacity-5`)}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`,\n position: 'absolute',\n translate: `-50% -50%`,\n zIndex: 7,\n }}\n />\n ) : null}\n <Circle\n radius={sizeCircle3 / 2}\n className={clsx(circle3ClassName,\n { 'opacity-20': currentRing < 2 },\n `absolute z-[6] -translate-y-1/2 -translate-x-1/2`)}\n style={{\n left: `${size / 2}px`,\n top: `${size / 2}px`\n }}\n />\n </div>\n )\n}\n","export const noop = () => undefined\n","import type { HTMLAttributes } from 'react'\nimport clsx from 'clsx'\n\nexport type CircleProps = Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'color'> & {\n radius: number,\n className?: string,\n}\n\nexport const Circle = ({\n radius = 20,\n className = 'bg-primary',\n style,\n ...restProps\n}: CircleProps) => {\n const size = radius * 2\n return (\n <div\n className={clsx(`rounded-full`, className)}\n style={{\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }}\n {...restProps}\n />\n )\n}\n"],"mappings":"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","names":["clsx","jsx"]}
@@ -0,0 +1,22 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { PropsForTranslation } from '../hooks/useTranslation.mjs';
4
+ import '../hooks/useLanguage.mjs';
5
+
6
+ type SearchableListTranslation = {
7
+ search: string;
8
+ nothingFound: string;
9
+ };
10
+ type SearchableListProps<T> = {
11
+ list: T[];
12
+ initialSearch?: string;
13
+ searchMapping: (value: T) => string[];
14
+ itemMapper: (value: T) => ReactNode;
15
+ className?: string;
16
+ };
17
+ /**
18
+ * A component for searching a list
19
+ */
20
+ declare const SearchableList: <T>({ overwriteTranslation, list, initialSearch, searchMapping, itemMapper, className }: PropsForTranslation<SearchableListTranslation, SearchableListProps<T>>) => react_jsx_runtime.JSX.Element;
21
+
22
+ export { SearchableList, type SearchableListProps };
@@ -1,10 +1,13 @@
1
- import type { ReactNode } from 'react';
2
- import type { PropsForTranslation } from '../hooks/useTranslation';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { PropsForTranslation } from '../hooks/useTranslation.js';
4
+ import '../hooks/useLanguage.js';
5
+
3
6
  type SearchableListTranslation = {
4
7
  search: string;
5
8
  nothingFound: string;
6
9
  };
7
- export type SearchableListProps<T> = {
10
+ type SearchableListProps<T> = {
8
11
  list: T[];
9
12
  initialSearch?: string;
10
13
  searchMapping: (value: T) => string[];
@@ -14,5 +17,6 @@ export type SearchableListProps<T> = {
14
17
  /**
15
18
  * A component for searching a list
16
19
  */
17
- export declare const SearchableList: <T>({ overwriteTranslation, list, initialSearch, searchMapping, itemMapper, className }: PropsForTranslation<SearchableListTranslation, SearchableListProps<T>>) => import("react/jsx-runtime").JSX.Element;
18
- export {};
20
+ declare const SearchableList: <T>({ overwriteTranslation, list, initialSearch, searchMapping, itemMapper, className }: PropsForTranslation<SearchableListTranslation, SearchableListProps<T>>) => react_jsx_runtime.JSX.Element;
21
+
22
+ export { SearchableList, type SearchableListProps };
@@ -1,27 +1,271 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useState } from 'react';
3
- import { Search } from 'lucide-react';
4
- import clsx from 'clsx';
5
- import { useTranslation } from '../hooks/useTranslation';
6
- import { MultiSearchWithMapping } from '../util/simpleSearch';
7
- import { Input } from './user-input/Input';
8
- const defaultSearchableListTranslation = {
9
- en: {
10
- search: 'Search',
11
- nothingFound: 'Nothing found'
12
- },
13
- de: {
14
- search: 'Suche',
15
- nothingFound: 'Nichts gefunden'
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/SearchableList.tsx
31
+ var SearchableList_exports = {};
32
+ __export(SearchableList_exports, {
33
+ SearchableList: () => SearchableList
34
+ });
35
+ module.exports = __toCommonJS(SearchableList_exports);
36
+ var import_react5 = require("react");
37
+ var import_lucide_react = require("lucide-react");
38
+ var import_clsx2 = __toESM(require("clsx"));
39
+
40
+ // src/hooks/useLanguage.tsx
41
+ var import_react2 = require("react");
42
+
43
+ // src/hooks/useLocalStorage.tsx
44
+ var import_react = require("react");
45
+
46
+ // src/hooks/useLanguage.tsx
47
+ var import_jsx_runtime = require("react/jsx-runtime");
48
+ var DEFAULT_LANGUAGE = "en";
49
+ var LanguageContext = (0, import_react2.createContext)({ language: DEFAULT_LANGUAGE, setLanguage: (v) => v });
50
+ var useLanguage = () => (0, import_react2.useContext)(LanguageContext);
51
+
52
+ // src/hooks/useTranslation.ts
53
+ var useTranslation = (defaults, translationOverwrite = {}) => {
54
+ const { language: languageProp, translation: overwrite } = translationOverwrite;
55
+ const { language: inferredLanguage } = useLanguage();
56
+ const usedLanguage = languageProp ?? inferredLanguage;
57
+ let defaultValues = defaults[usedLanguage];
58
+ if (overwrite && overwrite[usedLanguage]) {
59
+ defaultValues = { ...defaultValues, ...overwrite[usedLanguage] };
60
+ }
61
+ return defaultValues;
62
+ };
63
+
64
+ // src/util/simpleSearch.ts
65
+ var MultiSearchWithMapping = (search, objects, mapping) => {
66
+ return objects.filter((object) => {
67
+ const mappedSearchKeywords = mapping(object).map((value) => value.toLowerCase().trim());
68
+ return !!mappedSearchKeywords.find((value) => value.includes(search.toLowerCase().trim()));
69
+ });
70
+ };
71
+
72
+ // src/components/user-input/Input.tsx
73
+ var import_react4 = require("react");
74
+ var import_clsx = __toESM(require("clsx"));
75
+
76
+ // src/hooks/useSaveDelay.ts
77
+ var import_react3 = require("react");
78
+ function useSaveDelay(setNotificationStatus, delay) {
79
+ const [updateTimer, setUpdateTimer] = (0, import_react3.useState)(void 0);
80
+ const [notificationTimer, setNotificationTimer] = (0, import_react3.useState)(void 0);
81
+ const restartTimer = (onSave) => {
82
+ clearTimeout(updateTimer);
83
+ setUpdateTimer(setTimeout(() => {
84
+ onSave();
85
+ setNotificationStatus(true);
86
+ clearTimeout(notificationTimer);
87
+ setNotificationTimer(setTimeout(() => {
88
+ setNotificationStatus(false);
89
+ clearTimeout(notificationTimer);
90
+ }, delay));
91
+ clearTimeout(updateTimer);
92
+ }, delay));
93
+ };
94
+ const clearUpdateTimer = (hasSaved = true) => {
95
+ clearTimeout(updateTimer);
96
+ if (hasSaved) {
97
+ setNotificationStatus(true);
98
+ clearTimeout(notificationTimer);
99
+ setNotificationTimer(setTimeout(() => {
100
+ setNotificationStatus(false);
101
+ clearTimeout(notificationTimer);
102
+ }, delay));
103
+ } else {
104
+ setNotificationStatus(false);
105
+ }
106
+ };
107
+ (0, import_react3.useEffect)(() => {
108
+ return () => {
109
+ clearTimeout(updateTimer);
110
+ clearTimeout(notificationTimer);
111
+ };
112
+ }, []);
113
+ return { restartTimer, clearUpdateTimer };
114
+ }
115
+ var useSaveDelay_default = useSaveDelay;
116
+
117
+ // src/util/noop.ts
118
+ var noop = () => void 0;
119
+
120
+ // src/components/user-input/Label.tsx
121
+ var import_jsx_runtime2 = require("react/jsx-runtime");
122
+ var styleMapping = {
123
+ labelSmall: "textstyle-label-sm",
124
+ labelMedium: "textstyle-label-md",
125
+ labelBig: "textstyle-label-lg"
126
+ };
127
+ var Label = ({
128
+ children,
129
+ name,
130
+ labelType = "labelSmall",
131
+ ...props
132
+ }) => {
133
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { ...props, children: children ? children : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: styleMapping[labelType], children: name }) });
134
+ };
135
+
136
+ // src/components/user-input/Input.tsx
137
+ var import_jsx_runtime3 = require("react/jsx-runtime");
138
+ var ControlledInput = ({
139
+ id,
140
+ type = "text",
141
+ value,
142
+ label,
143
+ onChange = noop,
144
+ onChangeEvent = noop,
145
+ className = "",
146
+ onEditCompleted,
147
+ expanded = true,
148
+ onBlur,
149
+ containerClassName,
150
+ ...restProps
151
+ }) => {
152
+ const {
153
+ restartTimer,
154
+ clearUpdateTimer
155
+ } = useSaveDelay_default(() => void 0, 3e3);
156
+ const ref = (0, import_react4.useRef)(null);
157
+ (0, import_react4.useEffect)(() => {
158
+ if (restProps.autoFocus) {
159
+ ref.current?.focus();
160
+ }
161
+ }, [restProps.autoFocus]);
162
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx.default)({ "w-full": expanded }, containerClassName), children: [
163
+ label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Label, { ...label, htmlFor: id, className: (0, import_clsx.default)("mb-1", label.className) }),
164
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
165
+ "input",
166
+ {
167
+ ref,
168
+ value,
169
+ id,
170
+ type,
171
+ className: (0, import_clsx.default)("block bg-surface text-on-surface px-3 py-2 rounded-md w-full border-2 border-gray-200 hover:border-primary focus:outline-none focus:border-primary focus:ring-primary", className),
172
+ onBlur: (event) => {
173
+ if (onBlur) {
174
+ onBlur(event);
175
+ }
176
+ if (onEditCompleted) {
177
+ onEditCompleted(event.target.value, event);
178
+ clearUpdateTimer();
179
+ }
180
+ },
181
+ onChange: (e) => {
182
+ const value2 = e.target.value;
183
+ if (onEditCompleted) {
184
+ restartTimer(() => {
185
+ onEditCompleted(value2, e);
186
+ clearUpdateTimer();
187
+ });
188
+ }
189
+ onChange(value2, e);
190
+ onChangeEvent(e);
191
+ },
192
+ ...restProps
193
+ }
194
+ )
195
+ ] });
196
+ };
197
+ var FormInput = (0, import_react4.forwardRef)(function FormInput2({
198
+ id,
199
+ labelText,
200
+ errorText,
201
+ className,
202
+ labelClassName,
203
+ errorClassName,
204
+ containerClassName,
205
+ required,
206
+ ...restProps
207
+ }, ref) {
208
+ const input = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
209
+ "input",
210
+ {
211
+ ref,
212
+ id,
213
+ ...restProps,
214
+ className: (0, import_clsx.default)(
215
+ "block bg-surface text-on-surface px-3 py-2 rounded-md w-full border-2 border-gray-200 hover:border-primary focus:outline-none focus:border-primary focus:ring-primary",
216
+ {
217
+ "focus:border-primary focus:ring-primary": !errorText,
218
+ "focus:border-negative focus:ring-negative text-negative": !!errorText
219
+ },
220
+ className
221
+ )
16
222
  }
223
+ );
224
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx.default)("flex flex-col gap-y-1", containerClassName), children: [
225
+ labelText && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("label", { htmlFor: id, className: (0, import_clsx.default)("textstyle-label-md", labelClassName), children: [
226
+ labelText,
227
+ required && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "text-primary font-bold", children: "*" })
228
+ ] }),
229
+ input,
230
+ errorText && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { htmlFor: id, className: (0, import_clsx.default)("text-negative", errorClassName), children: errorText })
231
+ ] });
232
+ });
233
+
234
+ // src/components/SearchableList.tsx
235
+ var import_jsx_runtime4 = require("react/jsx-runtime");
236
+ var defaultSearchableListTranslation = {
237
+ en: {
238
+ search: "Search",
239
+ nothingFound: "Nothing found"
240
+ },
241
+ de: {
242
+ search: "Suche",
243
+ nothingFound: "Nichts gefunden"
244
+ }
17
245
  };
18
- /**
19
- * A component for searching a list
20
- */
21
- export const SearchableList = ({ overwriteTranslation, list, initialSearch = '', searchMapping, itemMapper, className }) => {
22
- const translation = useTranslation(defaultSearchableListTranslation, overwriteTranslation);
23
- const [search, setSearch] = useState(initialSearch);
24
- useEffect(() => setSearch(initialSearch), [initialSearch]);
25
- const filteredEntries = useMemo(() => MultiSearchWithMapping(search, list, searchMapping), [search, list, searchMapping]);
26
- return (_jsxs("div", { className: clsx('col gap-y-2', className), children: [_jsxs("div", { className: "row justify-between gap-x-2 items-center", children: [_jsx("div", { className: "flex-1", children: _jsx(Input, { value: search, onChange: setSearch, placeholder: translation.search }) }), _jsx(Search, { size: 20 })] }), filteredEntries.length > 0 && (_jsx("div", { className: "col gap-y-1", children: filteredEntries.map(itemMapper) })), !filteredEntries.length && _jsx("div", { className: "row justify-center", children: translation.nothingFound })] }));
246
+ var SearchableList = ({
247
+ overwriteTranslation,
248
+ list,
249
+ initialSearch = "",
250
+ searchMapping,
251
+ itemMapper,
252
+ className
253
+ }) => {
254
+ const translation = useTranslation(defaultSearchableListTranslation, overwriteTranslation);
255
+ const [search, setSearch] = (0, import_react5.useState)(initialSearch);
256
+ (0, import_react5.useEffect)(() => setSearch(initialSearch), [initialSearch]);
257
+ const filteredEntries = (0, import_react5.useMemo)(() => MultiSearchWithMapping(search, list, searchMapping), [search, list, searchMapping]);
258
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_clsx2.default)("col gap-y-2", className), children: [
259
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "row justify-between gap-x-2 items-center", children: [
260
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ControlledInput, { value: search, onChange: setSearch, placeholder: translation.search }) }),
261
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.Search, { size: 20 })
262
+ ] }),
263
+ filteredEntries.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col gap-y-1", children: filteredEntries.map(itemMapper) }),
264
+ !filteredEntries.length && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "row justify-center", children: translation.nothingFound })
265
+ ] });
27
266
  };
267
+ // Annotate the CommonJS export names for ESM import in node:
268
+ 0 && (module.exports = {
269
+ SearchableList
270
+ });
271
+ //# sourceMappingURL=SearchableList.js.map