@helpwave/hightide 0.0.19 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/README.md +21 -2
  2. package/dist/coloring/shading.cjs +562 -0
  3. package/dist/coloring/shading.cjs.map +1 -0
  4. package/dist/coloring/{shading.d.mts → shading.d.cts} +1 -1
  5. package/dist/coloring/shading.js +482 -37
  6. package/dist/coloring/shading.js.map +1 -1
  7. package/dist/coloring/types.cjs +31 -0
  8. package/dist/coloring/{types.mjs.map → types.cjs.map} +1 -1
  9. package/dist/coloring/types.js +2 -27
  10. package/dist/coloring/types.js.map +1 -1
  11. package/dist/components/{HelpwaveBadge.js → branding/HelpwaveBadge.cjs} +65 -33
  12. package/dist/components/branding/HelpwaveBadge.cjs.map +1 -0
  13. package/dist/components/branding/HelpwaveBadge.js +123 -0
  14. package/dist/components/branding/HelpwaveBadge.js.map +1 -0
  15. package/dist/components/date/{DatePicker.mjs → DatePicker.cjs} +158 -94
  16. package/dist/components/date/DatePicker.cjs.map +1 -0
  17. package/dist/components/date/{DatePicker.d.mts → DatePicker.d.cts} +7 -8
  18. package/dist/components/date/DatePicker.d.ts +4 -5
  19. package/dist/components/date/DatePicker.js +121 -129
  20. package/dist/components/date/DatePicker.js.map +1 -1
  21. package/dist/components/date/{DayPicker.mjs → DayPicker.cjs} +77 -24
  22. package/dist/components/date/DayPicker.cjs.map +1 -0
  23. package/dist/components/date/{DayPicker.d.mts → DayPicker.d.cts} +3 -3
  24. package/dist/components/date/DayPicker.d.ts +2 -2
  25. package/dist/components/date/DayPicker.js +38 -61
  26. package/dist/components/date/DayPicker.js.map +1 -1
  27. package/dist/components/{TimeDisplay.js → date/TimeDisplay.cjs} +24 -9
  28. package/dist/components/date/TimeDisplay.cjs.map +1 -0
  29. package/dist/components/{TimeDisplay.d.mts → date/TimeDisplay.d.cts} +2 -3
  30. package/dist/components/{TimeDisplay.d.ts → date/TimeDisplay.d.ts} +2 -3
  31. package/dist/components/{TimeDisplay.mjs → date/TimeDisplay.js} +23 -8
  32. package/dist/components/date/TimeDisplay.js.map +1 -0
  33. package/dist/components/date/{TimePicker.mjs → TimePicker.cjs} +62 -26
  34. package/dist/components/date/TimePicker.cjs.map +1 -0
  35. package/dist/components/date/{TimePicker.d.mts → TimePicker.d.cts} +2 -2
  36. package/dist/components/date/TimePicker.d.ts +2 -2
  37. package/dist/components/date/TimePicker.js +25 -61
  38. package/dist/components/date/TimePicker.js.map +1 -1
  39. package/dist/components/date/{YearMonthPicker.mjs → YearMonthPicker.cjs} +93 -42
  40. package/dist/components/date/YearMonthPicker.cjs.map +1 -0
  41. package/dist/components/date/{YearMonthPicker.d.mts → YearMonthPicker.d.cts} +2 -2
  42. package/dist/components/date/YearMonthPicker.d.ts +2 -2
  43. package/dist/components/date/YearMonthPicker.js +56 -77
  44. package/dist/components/date/YearMonthPicker.js.map +1 -1
  45. package/dist/components/dialogs/ConfirmDialog.cjs +509 -0
  46. package/dist/components/dialogs/ConfirmDialog.cjs.map +1 -0
  47. package/dist/components/dialogs/ConfirmDialog.d.cts +37 -0
  48. package/dist/components/dialogs/ConfirmDialog.d.ts +37 -0
  49. package/dist/components/dialogs/ConfirmDialog.js +472 -0
  50. package/dist/components/dialogs/ConfirmDialog.js.map +1 -0
  51. package/dist/components/{AvatarGroup.js → icons-and-geometry/Avatar.cjs} +23 -19
  52. package/dist/components/icons-and-geometry/Avatar.cjs.map +1 -0
  53. package/dist/components/icons-and-geometry/Avatar.d.cts +30 -0
  54. package/dist/components/icons-and-geometry/Avatar.d.ts +30 -0
  55. package/dist/components/{AvatarGroup.mjs → icons-and-geometry/Avatar.js} +13 -10
  56. package/dist/components/icons-and-geometry/Avatar.js.map +1 -0
  57. package/dist/components/{Circle.js → icons-and-geometry/Circle.cjs} +3 -3
  58. package/dist/components/icons-and-geometry/Circle.cjs.map +1 -0
  59. package/dist/components/{Circle.mjs → icons-and-geometry/Circle.js} +2 -2
  60. package/dist/components/icons-and-geometry/Circle.js.map +1 -0
  61. package/dist/components/{icons/Helpwave.js → icons-and-geometry/Helpwave.cjs} +38 -6
  62. package/dist/components/icons-and-geometry/Helpwave.cjs.map +1 -0
  63. package/dist/components/icons-and-geometry/Helpwave.js +75 -0
  64. package/dist/components/icons-and-geometry/Helpwave.js.map +1 -0
  65. package/dist/components/{Ring.js → icons-and-geometry/Ring.cjs} +6 -6
  66. package/dist/components/icons-and-geometry/Ring.cjs.map +1 -0
  67. package/dist/components/{Ring.mjs → icons-and-geometry/Ring.js} +4 -4
  68. package/dist/components/icons-and-geometry/Ring.js.map +1 -0
  69. package/dist/components/{icons/Tag.js → icons-and-geometry/Tag.cjs} +3 -3
  70. package/dist/components/icons-and-geometry/Tag.cjs.map +1 -0
  71. package/dist/components/{icons/Tag.mjs → icons-and-geometry/Tag.js} +2 -2
  72. package/dist/components/icons-and-geometry/Tag.js.map +1 -0
  73. package/dist/components/{BreadCrumb.js → layout-and-navigation/BreadCrumb.cjs} +12 -5
  74. package/dist/components/layout-and-navigation/BreadCrumb.cjs.map +1 -0
  75. package/dist/components/{BreadCrumb.mjs → layout-and-navigation/BreadCrumb.js} +10 -3
  76. package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -0
  77. package/dist/components/{layout/Carousel.js → layout-and-navigation/Carousel.cjs} +4 -4
  78. package/dist/components/layout-and-navigation/Carousel.cjs.map +1 -0
  79. package/dist/components/{layout/Carousel.mjs → layout-and-navigation/Carousel.js} +4 -4
  80. package/dist/components/layout-and-navigation/Carousel.js.map +1 -0
  81. package/dist/components/{ChipList.js → layout-and-navigation/Chip.cjs} +6 -6
  82. package/dist/components/layout-and-navigation/Chip.cjs.map +1 -0
  83. package/dist/components/{ChipList.mjs → layout-and-navigation/Chip.js} +2 -2
  84. package/dist/components/layout-and-navigation/Chip.js.map +1 -0
  85. package/dist/components/{layout/DividerInserter.js → layout-and-navigation/DividerInserter.cjs} +3 -3
  86. package/dist/components/layout-and-navigation/DividerInserter.cjs.map +1 -0
  87. package/dist/components/{layout/DividerInserter.mjs → layout-and-navigation/DividerInserter.js} +2 -2
  88. package/dist/components/layout-and-navigation/DividerInserter.js.map +1 -0
  89. package/dist/components/{Expandable.js → layout-and-navigation/Expandable.cjs} +3 -3
  90. package/dist/components/layout-and-navigation/Expandable.cjs.map +1 -0
  91. package/dist/components/{Expandable.mjs → layout-and-navigation/Expandable.js} +2 -2
  92. package/dist/components/layout-and-navigation/Expandable.js.map +1 -0
  93. package/dist/components/{layout/FAQSection.js → layout-and-navigation/FAQSection.cjs} +7 -7
  94. package/dist/components/layout-and-navigation/FAQSection.cjs.map +1 -0
  95. package/dist/components/{layout/FAQSection.d.mts → layout-and-navigation/FAQSection.d.cts} +1 -1
  96. package/dist/components/{layout → layout-and-navigation}/FAQSection.d.ts +1 -1
  97. package/dist/components/{layout/FAQSection.mjs → layout-and-navigation/FAQSection.js} +5 -5
  98. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -0
  99. package/dist/components/{MarkdownInterpreter.js → layout-and-navigation/MarkdownInterpreter.cjs} +2 -2
  100. package/dist/components/layout-and-navigation/MarkdownInterpreter.cjs.map +1 -0
  101. package/dist/components/{MarkdownInterpreter.mjs → layout-and-navigation/MarkdownInterpreter.js} +2 -2
  102. package/dist/components/layout-and-navigation/MarkdownInterpreter.js.map +1 -0
  103. package/dist/components/layout-and-navigation/Overlay.cjs +460 -0
  104. package/dist/components/layout-and-navigation/Overlay.cjs.map +1 -0
  105. package/dist/components/layout-and-navigation/Overlay.d.cts +68 -0
  106. package/dist/components/layout-and-navigation/Overlay.d.ts +68 -0
  107. package/dist/components/layout-and-navigation/Overlay.js +422 -0
  108. package/dist/components/layout-and-navigation/Overlay.js.map +1 -0
  109. package/dist/components/{Pagination.js → layout-and-navigation/Pagination.cjs} +25 -10
  110. package/dist/components/layout-and-navigation/Pagination.cjs.map +1 -0
  111. package/dist/components/{Pagination.d.mts → layout-and-navigation/Pagination.d.cts} +2 -3
  112. package/dist/components/{Pagination.d.ts → layout-and-navigation/Pagination.d.ts} +2 -3
  113. package/dist/components/{Pagination.mjs → layout-and-navigation/Pagination.js} +25 -10
  114. package/dist/components/layout-and-navigation/Pagination.js.map +1 -0
  115. package/dist/components/{SearchableList.js → layout-and-navigation/SearchableList.cjs} +51 -34
  116. package/dist/components/layout-and-navigation/SearchableList.cjs.map +1 -0
  117. package/dist/components/{SearchableList.d.mts → layout-and-navigation/SearchableList.d.cts} +2 -2
  118. package/dist/components/{SearchableList.d.ts → layout-and-navigation/SearchableList.d.ts} +2 -2
  119. package/dist/components/{SearchableList.mjs → layout-and-navigation/SearchableList.js} +52 -40
  120. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -0
  121. package/dist/components/{StepperBar.js → layout-and-navigation/StepperBar.cjs} +42 -16
  122. package/dist/components/layout-and-navigation/StepperBar.cjs.map +1 -0
  123. package/dist/components/{StepperBar.d.mts → layout-and-navigation/StepperBar.d.cts} +2 -3
  124. package/dist/components/{StepperBar.d.ts → layout-and-navigation/StepperBar.d.ts} +2 -3
  125. package/dist/components/{StepperBar.mjs → layout-and-navigation/StepperBar.js} +40 -14
  126. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -0
  127. package/dist/components/{Table.js → layout-and-navigation/Table.cjs} +176 -40
  128. package/dist/components/layout-and-navigation/Table.cjs.map +1 -0
  129. package/dist/components/{Table.d.mts → layout-and-navigation/Table.d.cts} +10 -1
  130. package/dist/components/{Table.d.ts → layout-and-navigation/Table.d.ts} +10 -1
  131. package/dist/components/{Table.mjs → layout-and-navigation/Table.js} +175 -40
  132. package/dist/components/layout-and-navigation/Table.js.map +1 -0
  133. package/dist/components/{TextImage.js → layout-and-navigation/TextImage.cjs} +25 -10
  134. package/dist/components/layout-and-navigation/TextImage.cjs.map +1 -0
  135. package/dist/components/{TextImage.d.mts → layout-and-navigation/TextImage.d.cts} +2 -3
  136. package/dist/components/{TextImage.d.ts → layout-and-navigation/TextImage.d.ts} +2 -3
  137. package/dist/components/{TextImage.mjs → layout-and-navigation/TextImage.js} +23 -8
  138. package/dist/components/layout-and-navigation/TextImage.js.map +1 -0
  139. package/dist/components/{layout/Tile.js → layout-and-navigation/Tile.cjs} +4 -4
  140. package/dist/components/layout-and-navigation/Tile.cjs.map +1 -0
  141. package/dist/components/{layout/Tile.mjs → layout-and-navigation/Tile.js} +2 -2
  142. package/dist/components/layout-and-navigation/Tile.js.map +1 -0
  143. package/dist/components/{VerticalDivider.js → layout-and-navigation/VerticalDivider.cjs} +2 -2
  144. package/dist/components/layout-and-navigation/VerticalDivider.cjs.map +1 -0
  145. package/dist/components/{VerticalDivider.mjs → layout-and-navigation/VerticalDivider.js} +2 -2
  146. package/dist/components/layout-and-navigation/VerticalDivider.js.map +1 -0
  147. package/dist/components/{ErrorComponent.js → loading-states/ErrorComponent.cjs} +25 -10
  148. package/dist/components/loading-states/ErrorComponent.cjs.map +1 -0
  149. package/dist/components/{ErrorComponent.d.mts → loading-states/ErrorComponent.d.cts} +2 -3
  150. package/dist/components/{ErrorComponent.d.ts → loading-states/ErrorComponent.d.ts} +2 -3
  151. package/dist/components/{ErrorComponent.mjs → loading-states/ErrorComponent.js} +24 -9
  152. package/dist/components/loading-states/ErrorComponent.js.map +1 -0
  153. package/dist/components/{LoadingAndErrorComponent.js → loading-states/LoadingAndErrorComponent.cjs} +67 -18
  154. package/dist/components/loading-states/LoadingAndErrorComponent.cjs.map +1 -0
  155. package/dist/components/{LoadingAndErrorComponent.d.mts → loading-states/LoadingAndErrorComponent.d.cts} +6 -6
  156. package/dist/components/{LoadingAndErrorComponent.d.ts → loading-states/LoadingAndErrorComponent.d.ts} +4 -4
  157. package/dist/components/{LoadingAndErrorComponent.mjs → loading-states/LoadingAndErrorComponent.js} +66 -17
  158. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -0
  159. package/dist/components/{LoadingAnimation.js → loading-states/LoadingAnimation.cjs} +64 -15
  160. package/dist/components/loading-states/LoadingAnimation.cjs.map +1 -0
  161. package/dist/components/{LoadingAnimation.d.mts → loading-states/LoadingAnimation.d.cts} +2 -3
  162. package/dist/components/{LoadingAnimation.d.ts → loading-states/LoadingAnimation.d.ts} +2 -3
  163. package/dist/components/{LoadingAnimation.mjs → loading-states/LoadingAnimation.js} +63 -14
  164. package/dist/components/loading-states/LoadingAnimation.js.map +1 -0
  165. package/dist/components/{LoadingButton.js → loading-states/LoadingButton.cjs} +101 -58
  166. package/dist/components/loading-states/LoadingButton.cjs.map +1 -0
  167. package/dist/components/{LoadingButton.d.mts → loading-states/LoadingButton.d.cts} +1 -1
  168. package/dist/components/{LoadingButton.d.ts → loading-states/LoadingButton.d.ts} +1 -1
  169. package/dist/components/{LoadingButton.mjs → loading-states/LoadingButton.js} +100 -57
  170. package/dist/components/loading-states/LoadingButton.js.map +1 -0
  171. package/dist/components/{ProgressIndicator.js → loading-states/ProgressIndicator.cjs} +2 -2
  172. package/dist/components/loading-states/ProgressIndicator.cjs.map +1 -0
  173. package/dist/components/{ProgressIndicator.mjs → loading-states/ProgressIndicator.js} +2 -2
  174. package/dist/components/loading-states/ProgressIndicator.js.map +1 -0
  175. package/dist/components/modals/{ConfirmDialog.js → ConfirmModal.cjs} +214 -117
  176. package/dist/components/modals/ConfirmModal.cjs.map +1 -0
  177. package/dist/components/modals/ConfirmModal.d.cts +36 -0
  178. package/dist/components/modals/ConfirmModal.d.ts +36 -0
  179. package/dist/components/modals/{ConfirmDialog.mjs → ConfirmModal.js} +203 -106
  180. package/dist/components/modals/ConfirmModal.js.map +1 -0
  181. package/dist/components/modals/DiscardChangesModal.cjs +570 -0
  182. package/dist/components/modals/DiscardChangesModal.cjs.map +1 -0
  183. package/dist/components/modals/DiscardChangesModal.d.cts +25 -0
  184. package/dist/components/modals/DiscardChangesModal.d.ts +25 -0
  185. package/dist/components/modals/DiscardChangesModal.js +533 -0
  186. package/dist/components/modals/DiscardChangesModal.js.map +1 -0
  187. package/dist/components/modals/InputModal.cjs +689 -0
  188. package/dist/components/modals/InputModal.cjs.map +1 -0
  189. package/dist/components/modals/{InputModal.d.mts → InputModal.d.cts} +7 -7
  190. package/dist/components/modals/InputModal.d.ts +7 -7
  191. package/dist/components/modals/InputModal.js +273 -221
  192. package/dist/components/modals/InputModal.js.map +1 -1
  193. package/dist/components/modals/LanguageModal.cjs +667 -0
  194. package/dist/components/modals/LanguageModal.cjs.map +1 -0
  195. package/dist/components/modals/LanguageModal.d.cts +20 -0
  196. package/dist/components/modals/LanguageModal.d.ts +7 -8
  197. package/dist/components/modals/LanguageModal.js +308 -206
  198. package/dist/components/modals/LanguageModal.js.map +1 -1
  199. package/dist/components/modals/ThemeModal.cjs +694 -0
  200. package/dist/components/modals/ThemeModal.cjs.map +1 -0
  201. package/dist/components/modals/ThemeModal.d.cts +21 -0
  202. package/dist/components/modals/ThemeModal.d.ts +21 -0
  203. package/dist/components/modals/ThemeModal.js +657 -0
  204. package/dist/components/modals/ThemeModal.js.map +1 -0
  205. package/dist/components/properties/CheckboxProperty.cjs +362 -0
  206. package/dist/components/properties/CheckboxProperty.cjs.map +1 -0
  207. package/dist/components/properties/{CheckboxProperty.d.mts → CheckboxProperty.d.cts} +3 -3
  208. package/dist/components/properties/CheckboxProperty.d.ts +2 -2
  209. package/dist/components/properties/CheckboxProperty.js +94 -93
  210. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  211. package/dist/components/properties/DateProperty.cjs +451 -0
  212. package/dist/components/properties/DateProperty.cjs.map +1 -0
  213. package/dist/components/properties/{DateProperty.d.mts → DateProperty.d.cts} +3 -3
  214. package/dist/components/properties/DateProperty.d.ts +2 -2
  215. package/dist/components/properties/DateProperty.js +110 -116
  216. package/dist/components/properties/DateProperty.js.map +1 -1
  217. package/dist/components/properties/{MultiSelectProperty.mjs → MultiSelectProperty.cjs} +216 -155
  218. package/dist/components/properties/MultiSelectProperty.cjs.map +1 -0
  219. package/dist/components/properties/{MultiSelectProperty.d.mts → MultiSelectProperty.d.cts} +5 -5
  220. package/dist/components/properties/MultiSelectProperty.d.ts +4 -4
  221. package/dist/components/properties/MultiSelectProperty.js +180 -184
  222. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  223. package/dist/components/properties/NumberProperty.cjs +459 -0
  224. package/dist/components/properties/NumberProperty.cjs.map +1 -0
  225. package/dist/components/properties/{NumberProperty.d.mts → NumberProperty.d.cts} +3 -3
  226. package/dist/components/properties/NumberProperty.d.ts +2 -2
  227. package/dist/components/properties/NumberProperty.js +109 -116
  228. package/dist/components/properties/NumberProperty.js.map +1 -1
  229. package/dist/components/properties/PropertyBase.cjs +223 -0
  230. package/dist/components/properties/PropertyBase.cjs.map +1 -0
  231. package/dist/components/properties/{PropertyBase.d.mts → PropertyBase.d.cts} +2 -2
  232. package/dist/components/properties/PropertyBase.d.ts +2 -2
  233. package/dist/components/properties/PropertyBase.js +60 -69
  234. package/dist/components/properties/PropertyBase.js.map +1 -1
  235. package/dist/components/properties/{SelectProperty.mjs → SelectProperty.cjs} +251 -199
  236. package/dist/components/properties/SelectProperty.cjs.map +1 -0
  237. package/dist/components/properties/{SelectProperty.d.mts → SelectProperty.d.cts} +5 -6
  238. package/dist/components/properties/SelectProperty.d.ts +4 -5
  239. package/dist/components/properties/SelectProperty.js +215 -228
  240. package/dist/components/properties/SelectProperty.js.map +1 -1
  241. package/dist/components/properties/TextProperty.cjs +428 -0
  242. package/dist/components/properties/TextProperty.cjs.map +1 -0
  243. package/dist/components/properties/{TextProperty.d.mts → TextProperty.d.cts} +3 -3
  244. package/dist/components/properties/TextProperty.d.ts +2 -2
  245. package/dist/components/properties/TextProperty.js +134 -121
  246. package/dist/components/properties/TextProperty.js.map +1 -1
  247. package/dist/components/{Button.js → user-action/Button.cjs} +70 -12
  248. package/dist/components/user-action/Button.cjs.map +1 -0
  249. package/dist/components/{Button.d.mts → user-action/Button.d.cts} +32 -5
  250. package/dist/components/{Button.d.ts → user-action/Button.d.ts} +32 -5
  251. package/dist/components/{Button.mjs → user-action/Button.js} +66 -10
  252. package/dist/components/user-action/Button.js.map +1 -0
  253. package/dist/components/{user-input/Checkbox.js → user-action/Checkbox.cjs} +26 -16
  254. package/dist/components/user-action/Checkbox.cjs.map +1 -0
  255. package/dist/components/{user-input/Checkbox.d.mts → user-action/Checkbox.d.cts} +5 -5
  256. package/dist/components/{user-input → user-action}/Checkbox.d.ts +4 -4
  257. package/dist/components/{user-input/Checkbox.mjs → user-action/Checkbox.js} +24 -14
  258. package/dist/components/user-action/Checkbox.js.map +1 -0
  259. package/dist/components/{user-input/DateAndTimePicker.js → user-action/DateAndTimePicker.cjs} +51 -23
  260. package/dist/components/user-action/DateAndTimePicker.cjs.map +1 -0
  261. package/dist/components/{user-input/DateAndTimePicker.d.mts → user-action/DateAndTimePicker.d.cts} +7 -8
  262. package/dist/components/{user-input → user-action}/DateAndTimePicker.d.ts +2 -3
  263. package/dist/components/{user-input/DateAndTimePicker.mjs → user-action/DateAndTimePicker.js} +44 -16
  264. package/dist/components/user-action/DateAndTimePicker.js.map +1 -0
  265. package/dist/components/{user-input/Input.js → user-action/Input.cjs} +35 -34
  266. package/dist/components/user-action/Input.cjs.map +1 -0
  267. package/dist/components/{user-input/Input.d.mts → user-action/Input.d.cts} +9 -16
  268. package/dist/components/{user-input → user-action}/Input.d.ts +8 -15
  269. package/dist/components/{user-input/Input.mjs → user-action/Input.js} +35 -39
  270. package/dist/components/user-action/Input.js.map +1 -0
  271. package/dist/components/{user-input/Label.js → user-action/Label.cjs} +15 -3
  272. package/dist/components/user-action/Label.cjs.map +1 -0
  273. package/dist/components/{user-input/Label.d.mts → user-action/Label.d.cts} +1 -1
  274. package/dist/components/{user-input → user-action}/Label.d.ts +1 -1
  275. package/dist/components/{user-input/Label.mjs → user-action/Label.js} +5 -3
  276. package/dist/components/user-action/Label.js.map +1 -0
  277. package/dist/components/{user-input/Menu.js → user-action/Menu.cjs} +4 -4
  278. package/dist/components/user-action/Menu.cjs.map +1 -0
  279. package/dist/components/{user-input/Menu.mjs → user-action/Menu.js} +3 -3
  280. package/dist/components/user-action/Menu.js.map +1 -0
  281. package/dist/components/{user-input/MultiSelect.js → user-action/MultiSelect.cjs} +76 -51
  282. package/dist/components/user-action/MultiSelect.cjs.map +1 -0
  283. package/dist/components/{user-input/MultiSelect.d.mts → user-action/MultiSelect.d.cts} +3 -3
  284. package/dist/components/{user-input → user-action}/MultiSelect.d.ts +2 -2
  285. package/dist/components/{user-input/MultiSelect.mjs → user-action/MultiSelect.js} +75 -55
  286. package/dist/components/user-action/MultiSelect.js.map +1 -0
  287. package/dist/components/{user-input/ScrollPicker.js → user-action/ScrollPicker.cjs} +4 -4
  288. package/dist/components/user-action/ScrollPicker.cjs.map +1 -0
  289. package/dist/components/{user-input/ScrollPicker.mjs → user-action/ScrollPicker.js} +3 -3
  290. package/dist/components/user-action/ScrollPicker.js.map +1 -0
  291. package/dist/components/{user-input/SearchableSelect.js → user-action/Select.cjs} +181 -152
  292. package/dist/components/user-action/Select.cjs.map +1 -0
  293. package/dist/components/user-action/Select.d.cts +49 -0
  294. package/dist/components/user-action/Select.d.ts +49 -0
  295. package/dist/components/{user-input/SearchableSelect.mjs → user-action/Select.js} +167 -145
  296. package/dist/components/user-action/Select.js.map +1 -0
  297. package/dist/components/{user-input/Textarea.js → user-action/Textarea.cjs} +80 -35
  298. package/dist/components/user-action/Textarea.cjs.map +1 -0
  299. package/dist/components/user-action/Textarea.d.cts +28 -0
  300. package/dist/components/{user-input → user-action}/Textarea.d.ts +9 -5
  301. package/dist/components/user-action/Textarea.js +163 -0
  302. package/dist/components/user-action/Textarea.js.map +1 -0
  303. package/dist/components/{user-input/ToggleableInput.js → user-action/ToggleableInput.cjs} +9 -15
  304. package/dist/components/user-action/ToggleableInput.cjs.map +1 -0
  305. package/dist/components/{user-input/ToggleableInput.mjs → user-action/ToggleableInput.js} +8 -14
  306. package/dist/components/user-action/ToggleableInput.js.map +1 -0
  307. package/dist/components/{Tooltip.js → user-action/Tooltip.cjs} +13 -9
  308. package/dist/components/user-action/Tooltip.cjs.map +1 -0
  309. package/dist/components/{Tooltip.d.mts → user-action/Tooltip.d.cts} +1 -1
  310. package/dist/components/{Tooltip.d.ts → user-action/Tooltip.d.ts} +1 -1
  311. package/dist/components/{Tooltip.mjs → user-action/Tooltip.js} +12 -8
  312. package/dist/components/user-action/Tooltip.js.map +1 -0
  313. package/dist/css/globals.css +185 -129
  314. package/dist/css/uncompiled/globals.css +71 -32
  315. package/dist/hooks/useHoverState.cjs +72 -0
  316. package/dist/hooks/{useHoverState.mjs.map → useHoverState.cjs.map} +1 -1
  317. package/dist/hooks/useHoverState.js +7 -32
  318. package/dist/hooks/useHoverState.js.map +1 -1
  319. package/dist/hooks/useLocalStorage.cjs +83 -0
  320. package/dist/hooks/useLocalStorage.cjs.map +1 -0
  321. package/dist/hooks/useLocalStorage.js +9 -34
  322. package/dist/hooks/useLocalStorage.js.map +1 -1
  323. package/dist/hooks/useOutsideClick.cjs +48 -0
  324. package/dist/hooks/{useOutsideClick.mjs.map → useOutsideClick.cjs.map} +1 -1
  325. package/dist/hooks/useOutsideClick.js +4 -29
  326. package/dist/hooks/useOutsideClick.js.map +1 -1
  327. package/dist/hooks/useSaveDelay.cjs +68 -0
  328. package/dist/hooks/{useSaveDelay.mjs.map → useSaveDelay.cjs.map} +1 -1
  329. package/dist/hooks/useSaveDelay.js +6 -31
  330. package/dist/hooks/useSaveDelay.js.map +1 -1
  331. package/dist/{index.mjs → index.cjs} +4042 -3867
  332. package/dist/index.cjs.map +1 -0
  333. package/dist/index.d.cts +83 -0
  334. package/dist/index.d.ts +51 -56
  335. package/dist/index.js +3858 -4041
  336. package/dist/index.js.map +1 -1
  337. package/dist/{hooks/useLanguage.js → localization/LanguageProvider.cjs} +30 -26
  338. package/dist/localization/LanguageProvider.cjs.map +1 -0
  339. package/dist/localization/LanguageProvider.d.cts +18 -0
  340. package/dist/localization/LanguageProvider.d.ts +18 -0
  341. package/dist/{hooks/useLanguage.mjs → localization/LanguageProvider.js} +26 -19
  342. package/dist/localization/LanguageProvider.js.map +1 -0
  343. package/dist/{hooks/useTranslation.js → localization/useTranslation.cjs} +23 -8
  344. package/dist/localization/useTranslation.cjs.map +1 -0
  345. package/dist/{hooks/useTranslation.d.mts → localization/useTranslation.d.cts} +5 -7
  346. package/dist/{hooks → localization}/useTranslation.d.ts +5 -7
  347. package/dist/{hooks/useTranslation.mjs → localization/useTranslation.js} +22 -7
  348. package/dist/localization/useTranslation.js.map +1 -0
  349. package/dist/localization/util.cjs +41 -0
  350. package/dist/localization/util.cjs.map +1 -0
  351. package/dist/localization/util.d.cts +18 -0
  352. package/dist/localization/util.d.ts +18 -0
  353. package/dist/localization/util.js +16 -0
  354. package/dist/localization/util.js.map +1 -0
  355. package/dist/{hooks/useTheme.js → theming/useTheme.cjs} +19 -11
  356. package/dist/theming/useTheme.cjs.map +1 -0
  357. package/dist/{hooks/useTheme.d.mts → theming/useTheme.d.cts} +9 -5
  358. package/dist/{hooks → theming}/useTheme.d.ts +9 -5
  359. package/dist/{hooks/useTheme.mjs → theming/useTheme.js} +15 -7
  360. package/dist/theming/useTheme.js.map +1 -0
  361. package/dist/util/{array.mjs → array.cjs} +34 -3
  362. package/dist/util/array.cjs.map +1 -0
  363. package/dist/util/array.js +2 -33
  364. package/dist/util/array.js.map +1 -1
  365. package/dist/util/builder.cjs +34 -0
  366. package/dist/util/{builder.mjs.map → builder.cjs.map} +1 -1
  367. package/dist/util/builder.js +2 -27
  368. package/dist/util/builder.js.map +1 -1
  369. package/dist/util/{date.mjs → date.cjs} +41 -3
  370. package/dist/util/date.cjs.map +1 -0
  371. package/dist/util/date.js +2 -40
  372. package/dist/util/date.js.map +1 -1
  373. package/dist/util/easeFunctions.cjs +63 -0
  374. package/dist/util/easeFunctions.cjs.map +1 -0
  375. package/dist/util/easeFunctions.js +2 -29
  376. package/dist/util/easeFunctions.js.map +1 -1
  377. package/dist/util/emailValidation.cjs +33 -0
  378. package/dist/util/{emailValidation.mjs.map → emailValidation.cjs.map} +1 -1
  379. package/dist/util/emailValidation.js +2 -27
  380. package/dist/util/emailValidation.js.map +1 -1
  381. package/dist/util/{loopingArray.mjs → loopingArray.cjs} +28 -3
  382. package/dist/util/{loopingArray.mjs.map → loopingArray.cjs.map} +1 -1
  383. package/dist/util/loopingArray.js +2 -27
  384. package/dist/util/loopingArray.js.map +1 -1
  385. package/dist/util/math.cjs +33 -0
  386. package/dist/util/{math.mjs.map → math.cjs.map} +1 -1
  387. package/dist/util/math.js +2 -27
  388. package/dist/util/math.js.map +1 -1
  389. package/dist/util/news.cjs +77 -0
  390. package/dist/util/news.cjs.map +1 -0
  391. package/dist/util/{news.d.mts → news.d.cts} +11 -13
  392. package/dist/util/news.d.ts +11 -13
  393. package/dist/util/news.js +22 -49
  394. package/dist/util/news.js.map +1 -1
  395. package/dist/util/noop.cjs +31 -0
  396. package/dist/util/noop.cjs.map +1 -0
  397. package/dist/util/noop.js +2 -27
  398. package/dist/util/noop.js.map +1 -1
  399. package/dist/util/simpleSearch.cjs +54 -0
  400. package/dist/util/simpleSearch.cjs.map +1 -0
  401. package/dist/util/simpleSearch.js +2 -30
  402. package/dist/util/simpleSearch.js.map +1 -1
  403. package/dist/util/storage.cjs +64 -0
  404. package/dist/util/storage.cjs.map +1 -0
  405. package/dist/util/storage.js +2 -28
  406. package/dist/util/storage.js.map +1 -1
  407. package/dist/util/types.cjs +19 -0
  408. package/dist/util/types.cjs.map +1 -0
  409. package/dist/util/types.js +0 -18
  410. package/dist/util/types.js.map +1 -1
  411. package/package.json +9 -12
  412. package/dist/coloring/shading.mjs +0 -47
  413. package/dist/coloring/shading.mjs.map +0 -1
  414. package/dist/coloring/types.mjs +0 -6
  415. package/dist/components/Avatar.d.mts +0 -17
  416. package/dist/components/Avatar.d.ts +0 -17
  417. package/dist/components/Avatar.js +0 -85
  418. package/dist/components/Avatar.js.map +0 -1
  419. package/dist/components/Avatar.mjs +0 -48
  420. package/dist/components/Avatar.mjs.map +0 -1
  421. package/dist/components/AvatarGroup.d.mts +0 -14
  422. package/dist/components/AvatarGroup.d.ts +0 -14
  423. package/dist/components/AvatarGroup.js.map +0 -1
  424. package/dist/components/AvatarGroup.mjs.map +0 -1
  425. package/dist/components/BreadCrumb.js.map +0 -1
  426. package/dist/components/BreadCrumb.mjs.map +0 -1
  427. package/dist/components/Button.js.map +0 -1
  428. package/dist/components/Button.mjs.map +0 -1
  429. package/dist/components/ChipList.js.map +0 -1
  430. package/dist/components/ChipList.mjs.map +0 -1
  431. package/dist/components/Circle.js.map +0 -1
  432. package/dist/components/Circle.mjs.map +0 -1
  433. package/dist/components/ErrorComponent.js.map +0 -1
  434. package/dist/components/ErrorComponent.mjs.map +0 -1
  435. package/dist/components/Expandable.js.map +0 -1
  436. package/dist/components/Expandable.mjs.map +0 -1
  437. package/dist/components/HelpwaveBadge.js.map +0 -1
  438. package/dist/components/HelpwaveBadge.mjs +0 -91
  439. package/dist/components/HelpwaveBadge.mjs.map +0 -1
  440. package/dist/components/HideableContentSection.d.mts +0 -14
  441. package/dist/components/HideableContentSection.d.ts +0 -14
  442. package/dist/components/HideableContentSection.js +0 -70
  443. package/dist/components/HideableContentSection.js.map +0 -1
  444. package/dist/components/HideableContentSection.mjs +0 -35
  445. package/dist/components/HideableContentSection.mjs.map +0 -1
  446. package/dist/components/InputGroup.d.mts +0 -17
  447. package/dist/components/InputGroup.d.ts +0 -17
  448. package/dist/components/InputGroup.js +0 -97
  449. package/dist/components/InputGroup.js.map +0 -1
  450. package/dist/components/InputGroup.mjs +0 -62
  451. package/dist/components/InputGroup.mjs.map +0 -1
  452. package/dist/components/LoadingAndErrorComponent.js.map +0 -1
  453. package/dist/components/LoadingAndErrorComponent.mjs.map +0 -1
  454. package/dist/components/LoadingAnimation.js.map +0 -1
  455. package/dist/components/LoadingAnimation.mjs.map +0 -1
  456. package/dist/components/LoadingButton.js.map +0 -1
  457. package/dist/components/LoadingButton.mjs.map +0 -1
  458. package/dist/components/MarkdownInterpreter.js.map +0 -1
  459. package/dist/components/MarkdownInterpreter.mjs.map +0 -1
  460. package/dist/components/Pagination.js.map +0 -1
  461. package/dist/components/Pagination.mjs.map +0 -1
  462. package/dist/components/Profile.d.mts +0 -31
  463. package/dist/components/Profile.d.ts +0 -31
  464. package/dist/components/Profile.js +0 -197
  465. package/dist/components/Profile.js.map +0 -1
  466. package/dist/components/Profile.mjs +0 -162
  467. package/dist/components/Profile.mjs.map +0 -1
  468. package/dist/components/ProgressIndicator.js.map +0 -1
  469. package/dist/components/ProgressIndicator.mjs.map +0 -1
  470. package/dist/components/Ring.js.map +0 -1
  471. package/dist/components/Ring.mjs.map +0 -1
  472. package/dist/components/SearchableList.js.map +0 -1
  473. package/dist/components/SearchableList.mjs.map +0 -1
  474. package/dist/components/SortButton.d.mts +0 -15
  475. package/dist/components/SortButton.d.ts +0 -15
  476. package/dist/components/SortButton.js +0 -132
  477. package/dist/components/SortButton.js.map +0 -1
  478. package/dist/components/SortButton.mjs +0 -97
  479. package/dist/components/SortButton.mjs.map +0 -1
  480. package/dist/components/StepperBar.js.map +0 -1
  481. package/dist/components/StepperBar.mjs.map +0 -1
  482. package/dist/components/Table.js.map +0 -1
  483. package/dist/components/Table.mjs.map +0 -1
  484. package/dist/components/TechRadar.d.mts +0 -39
  485. package/dist/components/TechRadar.d.ts +0 -39
  486. package/dist/components/TechRadar.js +0 -243
  487. package/dist/components/TechRadar.js.map +0 -1
  488. package/dist/components/TechRadar.mjs +0 -208
  489. package/dist/components/TechRadar.mjs.map +0 -1
  490. package/dist/components/TextImage.js.map +0 -1
  491. package/dist/components/TextImage.mjs.map +0 -1
  492. package/dist/components/TimeDisplay.js.map +0 -1
  493. package/dist/components/TimeDisplay.mjs.map +0 -1
  494. package/dist/components/Tooltip.js.map +0 -1
  495. package/dist/components/Tooltip.mjs.map +0 -1
  496. package/dist/components/VerticalDivider.js.map +0 -1
  497. package/dist/components/VerticalDivider.mjs.map +0 -1
  498. package/dist/components/date/DatePicker.mjs.map +0 -1
  499. package/dist/components/date/DayPicker.mjs.map +0 -1
  500. package/dist/components/date/TimePicker.mjs.map +0 -1
  501. package/dist/components/date/YearMonthPicker.mjs.map +0 -1
  502. package/dist/components/icons/Helpwave.js.map +0 -1
  503. package/dist/components/icons/Helpwave.mjs +0 -43
  504. package/dist/components/icons/Helpwave.mjs.map +0 -1
  505. package/dist/components/icons/Tag.js.map +0 -1
  506. package/dist/components/icons/Tag.mjs.map +0 -1
  507. package/dist/components/layout/Carousel.js.map +0 -1
  508. package/dist/components/layout/Carousel.mjs.map +0 -1
  509. package/dist/components/layout/DividerInserter.js.map +0 -1
  510. package/dist/components/layout/DividerInserter.mjs.map +0 -1
  511. package/dist/components/layout/FAQSection.js.map +0 -1
  512. package/dist/components/layout/FAQSection.mjs.map +0 -1
  513. package/dist/components/layout/Tile.js.map +0 -1
  514. package/dist/components/layout/Tile.mjs.map +0 -1
  515. package/dist/components/modals/ConfirmDialog.d.mts +0 -38
  516. package/dist/components/modals/ConfirmDialog.d.ts +0 -38
  517. package/dist/components/modals/ConfirmDialog.js.map +0 -1
  518. package/dist/components/modals/ConfirmDialog.mjs.map +0 -1
  519. package/dist/components/modals/DiscardChangesDialog.d.mts +0 -23
  520. package/dist/components/modals/DiscardChangesDialog.d.ts +0 -23
  521. package/dist/components/modals/DiscardChangesDialog.js +0 -409
  522. package/dist/components/modals/DiscardChangesDialog.js.map +0 -1
  523. package/dist/components/modals/DiscardChangesDialog.mjs +0 -372
  524. package/dist/components/modals/DiscardChangesDialog.mjs.map +0 -1
  525. package/dist/components/modals/InputModal.mjs +0 -568
  526. package/dist/components/modals/InputModal.mjs.map +0 -1
  527. package/dist/components/modals/LanguageModal.d.mts +0 -21
  528. package/dist/components/modals/LanguageModal.mjs +0 -491
  529. package/dist/components/modals/LanguageModal.mjs.map +0 -1
  530. package/dist/components/modals/Modal.d.mts +0 -43
  531. package/dist/components/modals/Modal.d.ts +0 -43
  532. package/dist/components/modals/Modal.js +0 -288
  533. package/dist/components/modals/Modal.js.map +0 -1
  534. package/dist/components/modals/Modal.mjs +0 -251
  535. package/dist/components/modals/Modal.mjs.map +0 -1
  536. package/dist/components/modals/ModalRegister.d.mts +0 -16
  537. package/dist/components/modals/ModalRegister.d.ts +0 -16
  538. package/dist/components/modals/ModalRegister.js +0 -63
  539. package/dist/components/modals/ModalRegister.js.map +0 -1
  540. package/dist/components/modals/ModalRegister.mjs +0 -37
  541. package/dist/components/modals/ModalRegister.mjs.map +0 -1
  542. package/dist/components/properties/CheckboxProperty.mjs +0 -291
  543. package/dist/components/properties/CheckboxProperty.mjs.map +0 -1
  544. package/dist/components/properties/DateProperty.mjs +0 -392
  545. package/dist/components/properties/DateProperty.mjs.map +0 -1
  546. package/dist/components/properties/MultiSelectProperty.mjs.map +0 -1
  547. package/dist/components/properties/NumberProperty.mjs +0 -401
  548. package/dist/components/properties/NumberProperty.mjs.map +0 -1
  549. package/dist/components/properties/PropertyBase.mjs +0 -162
  550. package/dist/components/properties/PropertyBase.mjs.map +0 -1
  551. package/dist/components/properties/SelectProperty.mjs.map +0 -1
  552. package/dist/components/properties/TextProperty.mjs +0 -345
  553. package/dist/components/properties/TextProperty.mjs.map +0 -1
  554. package/dist/components/user-input/Checkbox.js.map +0 -1
  555. package/dist/components/user-input/Checkbox.mjs.map +0 -1
  556. package/dist/components/user-input/DateAndTimePicker.js.map +0 -1
  557. package/dist/components/user-input/DateAndTimePicker.mjs.map +0 -1
  558. package/dist/components/user-input/Input.js.map +0 -1
  559. package/dist/components/user-input/Input.mjs.map +0 -1
  560. package/dist/components/user-input/Label.js.map +0 -1
  561. package/dist/components/user-input/Label.mjs.map +0 -1
  562. package/dist/components/user-input/Menu.js.map +0 -1
  563. package/dist/components/user-input/Menu.mjs.map +0 -1
  564. package/dist/components/user-input/MultiSelect.js.map +0 -1
  565. package/dist/components/user-input/MultiSelect.mjs.map +0 -1
  566. package/dist/components/user-input/ScrollPicker.js.map +0 -1
  567. package/dist/components/user-input/ScrollPicker.mjs.map +0 -1
  568. package/dist/components/user-input/SearchableSelect.d.mts +0 -14
  569. package/dist/components/user-input/SearchableSelect.d.ts +0 -14
  570. package/dist/components/user-input/SearchableSelect.js.map +0 -1
  571. package/dist/components/user-input/SearchableSelect.mjs.map +0 -1
  572. package/dist/components/user-input/Select.d.mts +0 -36
  573. package/dist/components/user-input/Select.d.ts +0 -36
  574. package/dist/components/user-input/Select.js +0 -153
  575. package/dist/components/user-input/Select.js.map +0 -1
  576. package/dist/components/user-input/Select.mjs +0 -118
  577. package/dist/components/user-input/Select.mjs.map +0 -1
  578. package/dist/components/user-input/Textarea.d.mts +0 -24
  579. package/dist/components/user-input/Textarea.js.map +0 -1
  580. package/dist/components/user-input/Textarea.mjs +0 -119
  581. package/dist/components/user-input/Textarea.mjs.map +0 -1
  582. package/dist/components/user-input/ToggleableInput.js.map +0 -1
  583. package/dist/components/user-input/ToggleableInput.mjs.map +0 -1
  584. package/dist/hooks/useHoverState.mjs +0 -47
  585. package/dist/hooks/useLanguage.d.mts +0 -21
  586. package/dist/hooks/useLanguage.d.ts +0 -21
  587. package/dist/hooks/useLanguage.js.map +0 -1
  588. package/dist/hooks/useLanguage.mjs.map +0 -1
  589. package/dist/hooks/useLocalStorage.mjs +0 -58
  590. package/dist/hooks/useLocalStorage.mjs.map +0 -1
  591. package/dist/hooks/useOutsideClick.mjs +0 -23
  592. package/dist/hooks/useSaveDelay.mjs +0 -43
  593. package/dist/hooks/useTheme.js.map +0 -1
  594. package/dist/hooks/useTheme.mjs.map +0 -1
  595. package/dist/hooks/useTranslation.js.map +0 -1
  596. package/dist/hooks/useTranslation.mjs.map +0 -1
  597. package/dist/index.d.mts +0 -88
  598. package/dist/index.mjs.map +0 -1
  599. package/dist/util/array.mjs.map +0 -1
  600. package/dist/util/builder.mjs +0 -9
  601. package/dist/util/date.mjs.map +0 -1
  602. package/dist/util/easeFunctions.mjs +0 -36
  603. package/dist/util/easeFunctions.mjs.map +0 -1
  604. package/dist/util/emailValidation.mjs +0 -8
  605. package/dist/util/math.mjs +0 -8
  606. package/dist/util/news.mjs +0 -48
  607. package/dist/util/news.mjs.map +0 -1
  608. package/dist/util/noop.mjs +0 -6
  609. package/dist/util/noop.mjs.map +0 -1
  610. package/dist/util/simpleSearch.mjs +0 -26
  611. package/dist/util/simpleSearch.mjs.map +0 -1
  612. package/dist/util/storage.mjs +0 -38
  613. package/dist/util/storage.mjs.map +0 -1
  614. package/dist/util/types.mjs +0 -1
  615. package/dist/util/types.mjs.map +0 -1
  616. /package/dist/coloring/{types.d.mts → types.d.cts} +0 -0
  617. /package/dist/components/{HelpwaveBadge.d.mts → branding/HelpwaveBadge.d.cts} +0 -0
  618. /package/dist/components/{HelpwaveBadge.d.ts → branding/HelpwaveBadge.d.ts} +0 -0
  619. /package/dist/components/{Circle.d.mts → icons-and-geometry/Circle.d.cts} +0 -0
  620. /package/dist/components/{Circle.d.ts → icons-and-geometry/Circle.d.ts} +0 -0
  621. /package/dist/components/{icons/Helpwave.d.mts → icons-and-geometry/Helpwave.d.cts} +0 -0
  622. /package/dist/components/{icons → icons-and-geometry}/Helpwave.d.ts +0 -0
  623. /package/dist/components/{Ring.d.mts → icons-and-geometry/Ring.d.cts} +0 -0
  624. /package/dist/components/{Ring.d.ts → icons-and-geometry/Ring.d.ts} +0 -0
  625. /package/dist/components/{icons/Tag.d.mts → icons-and-geometry/Tag.d.cts} +0 -0
  626. /package/dist/components/{icons → icons-and-geometry}/Tag.d.ts +0 -0
  627. /package/dist/components/{BreadCrumb.d.mts → layout-and-navigation/BreadCrumb.d.cts} +0 -0
  628. /package/dist/components/{BreadCrumb.d.ts → layout-and-navigation/BreadCrumb.d.ts} +0 -0
  629. /package/dist/components/{layout/Carousel.d.mts → layout-and-navigation/Carousel.d.cts} +0 -0
  630. /package/dist/components/{layout → layout-and-navigation}/Carousel.d.ts +0 -0
  631. /package/dist/components/{ChipList.d.mts → layout-and-navigation/Chip.d.cts} +0 -0
  632. /package/dist/components/{ChipList.d.ts → layout-and-navigation/Chip.d.ts} +0 -0
  633. /package/dist/components/{layout/DividerInserter.d.mts → layout-and-navigation/DividerInserter.d.cts} +0 -0
  634. /package/dist/components/{layout → layout-and-navigation}/DividerInserter.d.ts +0 -0
  635. /package/dist/components/{Expandable.d.mts → layout-and-navigation/Expandable.d.cts} +0 -0
  636. /package/dist/components/{Expandable.d.ts → layout-and-navigation/Expandable.d.ts} +0 -0
  637. /package/dist/components/{MarkdownInterpreter.d.mts → layout-and-navigation/MarkdownInterpreter.d.cts} +0 -0
  638. /package/dist/components/{MarkdownInterpreter.d.ts → layout-and-navigation/MarkdownInterpreter.d.ts} +0 -0
  639. /package/dist/components/{layout/Tile.d.mts → layout-and-navigation/Tile.d.cts} +0 -0
  640. /package/dist/components/{layout → layout-and-navigation}/Tile.d.ts +0 -0
  641. /package/dist/components/{VerticalDivider.d.mts → layout-and-navigation/VerticalDivider.d.cts} +0 -0
  642. /package/dist/components/{VerticalDivider.d.ts → layout-and-navigation/VerticalDivider.d.ts} +0 -0
  643. /package/dist/components/{ProgressIndicator.d.mts → loading-states/ProgressIndicator.d.cts} +0 -0
  644. /package/dist/components/{ProgressIndicator.d.ts → loading-states/ProgressIndicator.d.ts} +0 -0
  645. /package/dist/components/{user-input/Menu.d.mts → user-action/Menu.d.cts} +0 -0
  646. /package/dist/components/{user-input → user-action}/Menu.d.ts +0 -0
  647. /package/dist/components/{user-input/ScrollPicker.d.mts → user-action/ScrollPicker.d.cts} +0 -0
  648. /package/dist/components/{user-input → user-action}/ScrollPicker.d.ts +0 -0
  649. /package/dist/components/{user-input/ToggleableInput.d.mts → user-action/ToggleableInput.d.cts} +0 -0
  650. /package/dist/components/{user-input → user-action}/ToggleableInput.d.ts +0 -0
  651. /package/dist/hooks/{useHoverState.d.mts → useHoverState.d.cts} +0 -0
  652. /package/dist/hooks/{useLocalStorage.d.mts → useLocalStorage.d.cts} +0 -0
  653. /package/dist/hooks/{useOutsideClick.d.mts → useOutsideClick.d.cts} +0 -0
  654. /package/dist/hooks/{useSaveDelay.d.mts → useSaveDelay.d.cts} +0 -0
  655. /package/dist/util/{array.d.mts → array.d.cts} +0 -0
  656. /package/dist/util/{builder.d.mts → builder.d.cts} +0 -0
  657. /package/dist/util/{date.d.mts → date.d.cts} +0 -0
  658. /package/dist/util/{easeFunctions.d.mts → easeFunctions.d.cts} +0 -0
  659. /package/dist/util/{emailValidation.d.mts → emailValidation.d.cts} +0 -0
  660. /package/dist/util/{loopingArray.d.mts → loopingArray.d.cts} +0 -0
  661. /package/dist/util/{math.d.mts → math.d.cts} +0 -0
  662. /package/dist/util/{noop.d.mts → noop.d.cts} +0 -0
  663. /package/dist/util/{simpleSearch.d.mts → simpleSearch.d.cts} +0 -0
  664. /package/dist/util/{storage.d.mts → storage.d.cts} +0 -0
  665. /package/dist/util/{types.d.mts → types.d.cts} +0 -0
@@ -1,8 +1,8 @@
1
- // src/components/layout/FAQSection.tsx
1
+ // src/components/layout-and-navigation/FAQSection.tsx
2
2
  import clsx2 from "clsx";
3
3
  import { ChevronDown as ChevronDown2, ChevronUp as ChevronUp2 } from "lucide-react";
4
4
 
5
- // src/components/Expandable.tsx
5
+ // src/components/layout-and-navigation/Expandable.tsx
6
6
  import { forwardRef, useState } from "react";
7
7
  import { ChevronDown, ChevronUp } from "lucide-react";
8
8
  import clsx from "clsx";
@@ -44,7 +44,7 @@ var Expandable = forwardRef(({
44
44
  });
45
45
  Expandable.displayName = "Expandable";
46
46
 
47
- // src/components/MarkdownInterpreter.tsx
47
+ // src/components/layout-and-navigation/MarkdownInterpreter.tsx
48
48
  import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
49
49
  var astNodeInserterType = ["helpwave", "newline"];
50
50
  var ASTNodeInterpreter = ({
@@ -275,7 +275,7 @@ var MarkdownInterpreter = ({ text, className }) => {
275
275
  return /* @__PURE__ */ jsx2(ASTNodeInterpreter, { node: optimizedTree, isRoot: true, className });
276
276
  };
277
277
 
278
- // src/components/layout/FAQSection.tsx
278
+ // src/components/layout-and-navigation/FAQSection.tsx
279
279
  import { jsx as jsx3 } from "react/jsx-runtime";
280
280
  var FAQSection = ({
281
281
  entries,
@@ -299,4 +299,4 @@ var FAQSection = ({
299
299
  export {
300
300
  FAQSection
301
301
  };
302
- //# sourceMappingURL=FAQSection.mjs.map
302
+ //# sourceMappingURL=FAQSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout-and-navigation/FAQSection.tsx","../../../src/components/layout-and-navigation/Expandable.tsx","../../../src/components/layout-and-navigation/MarkdownInterpreter.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport clsx from 'clsx'\nimport { ChevronDown, ChevronUp } from 'lucide-react'\nimport type { ExpandableProps } from './Expandable'\nimport { Expandable } from './Expandable'\nimport { MarkdownInterpreter } from './MarkdownInterpreter'\n\ntype ContentType = {\n type: 'markdown',\n value: string,\n} | {\n type: 'custom',\n value: ReactNode,\n}\n\nexport type FAQItem = Pick<ExpandableProps, 'initialExpansion' | 'className'> & {\n id: string,\n title: string,\n content: ContentType,\n}\n\nexport type FAQSectionProps = {\n entries: FAQItem[],\n expandableClassName?: string,\n}\n\n/**\n * Description\n */\nexport const FAQSection = ({\n entries,\n expandableClassName\n }: FAQSectionProps) => {\n const chevronSize = 28\n return (\n <div className=\"col gap-y-4\">\n {entries.map(({ id, title, content, ...restProps }) => (\n <Expandable\n key={id}\n {...restProps}\n label={(<h3 id={id} className=\"textstyle-title-md\">{title}</h3>)}\n clickOnlyOnHeader={false}\n icon={(expanded) => expanded ?\n (<ChevronUp size={chevronSize} className=\"text-primary\" style={{ minWidth: `${chevronSize}px` }}/>) :\n (<ChevronDown size={chevronSize} className=\"text-primary\"/>)\n }\n className={clsx('rounded-xl', expandableClassName)}\n headerClassName=\"px-6 py-4\"\n >\n <div className=\"mt-2 px-6 pb-4\">\n {content.type === 'markdown' ? (<MarkdownInterpreter text={content.value}/>) : content.value}\n </div>\n </Expandable>\n ))}\n </div>\n )\n}\n","import type { PropsWithChildren, ReactNode } from 'react'\nimport { forwardRef, useState } from 'react'\nimport { ChevronDown, ChevronUp } from 'lucide-react'\nimport clsx from 'clsx'\n\ntype IconBuilder = (expanded: boolean) => ReactNode\n\nexport type ExpandableProps = PropsWithChildren<{\n label: ReactNode,\n icon?: IconBuilder,\n initialExpansion?: boolean,\n /**\n * Whether the expansion should only happen when the header is clicked or on the entire component\n */\n clickOnlyOnHeader?: boolean,\n className?: string,\n headerClassName?: string,\n}>\n\nconst DefaultIcon: IconBuilder = (expanded) => expanded ?\n (<ChevronUp size={16} className=\"min-w-[16px]\"/>)\n : (<ChevronDown size={16} className=\"min-w-[16px]\"/>)\n\n/**\n * A Component for showing and hiding content\n */\nexport const Expandable = forwardRef<HTMLDivElement, ExpandableProps>(({\n children,\n label,\n icon,\n initialExpansion = false,\n clickOnlyOnHeader = true,\n className = '',\n headerClassName = ''\n }, ref) => {\n const [isExpanded, setIsExpanded] = useState(initialExpansion)\n icon ??= DefaultIcon\n\n return (\n <div\n ref={ref}\n className={clsx('col bg-surface text-on-surface group rounded-lg shadow-sm', { 'cursor-pointer': !clickOnlyOnHeader }, className)}\n onClick={() => !clickOnlyOnHeader && setIsExpanded(!isExpanded)}\n >\n <button\n className={clsx('btn-md rounded-lg justify-between items-center bg-surface text-on-surface', { 'group-hover:brightness-95': !isExpanded }, headerClassName)}\n onClick={() => clickOnlyOnHeader && setIsExpanded(!isExpanded)}\n >\n {label}\n {icon(isExpanded)}\n </button>\n {isExpanded && (\n <div className=\"col\">\n {children}\n </div>\n )}\n </div>\n )\n})\n\nExpandable.displayName = 'Expandable'\n","type ASTNodeModifierType =\n 'none'\n | 'italic'\n | 'bold'\n | 'underline'\n | 'font-space'\n | 'primary'\n | 'secondary'\n | 'warn'\n | 'positive'\n | 'negative'\n\nconst astNodeInserterType = ['helpwave', 'newline'] as const\ntype ASTNodeInserterType = typeof astNodeInserterType[number]\ntype ASTNodeDefaultType = 'text'\n\ntype ASTNode = {\n type: ASTNodeModifierType,\n children: ASTNode[],\n} | {\n type: ASTNodeInserterType,\n} | {\n type: ASTNodeDefaultType,\n text: string,\n}\n\nexport type ASTNodeInterpreterProps = {\n node: ASTNode,\n isRoot?: boolean,\n className?: string,\n}\nexport const ASTNodeInterpreter = ({\n node,\n isRoot = false,\n className = '',\n }: ASTNodeInterpreterProps) => {\n switch (node.type) {\n case 'newline':\n return <br/>\n case 'text':\n return isRoot ? <span className={className}>{node.text}</span> : node.text\n case 'helpwave':\n return (<span className=\"font-bold font-space no-underline\">helpwave</span>)\n case 'none':\n return isRoot ? (\n <span className={className}>{node.children.map((value, index) => (\n <ASTNodeInterpreter key={index}\n node={value}/>\n ))}</span>\n ) :\n <>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</>\n case 'bold':\n return <b>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</b>\n case 'italic':\n return <i>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</i>\n case 'underline':\n return (<u>{node.children.map((value, index) => (<ASTNodeInterpreter key={index} node={value}/>))}</u>)\n case 'font-space':\n return (\n <span className=\"font-space\">{node.children.map((value, index) => (\n <ASTNodeInterpreter key={index}\n node={value}/>\n ))}</span>\n )\n case 'primary':\n return (\n <span className=\"text-primary\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'secondary':\n return (\n <span className=\"text-secondary\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'warn':\n return (\n <span className=\"text-warning\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'positive':\n return (\n <span className=\"text-positive\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'negative':\n return (\n <span className=\"text-negative\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n default:\n return null\n }\n}\n\nconst modifierIdentifierMapping = [\n { id: 'i', name: 'italic' },\n { id: 'b', name: 'bold' },\n { id: 'u', name: 'underline' },\n { id: 'space', name: 'font-space' },\n { id: 'primary', name: 'primary' },\n { id: 'secondary', name: 'secondary' },\n { id: 'warn', name: 'warn' },\n { id: 'positive', name: 'positive' },\n { id: 'negative', name: 'negative' },\n] as const\n\nconst inserterIdentifierMapping = [\n { id: 'helpwave', name: 'helpwave' },\n { id: 'newline', name: 'newline' }\n] as const\nconst parseMarkdown = (\n text: string,\n commandStart: string = '\\\\',\n open: string = '{',\n close: string = '}'\n): ASTNode => {\n let start = text.indexOf(commandStart)\n const children: ASTNode[] = []\n\n // parse the text step by step\n while (text !== '') {\n if (start === -1) {\n children.push({\n type: 'text',\n text\n })\n break\n }\n children.push(parseMarkdown(text.substring(0, start)))\n text = text.substring(start)\n if (text.length <= 1) {\n children.push({\n type: 'text',\n text\n })\n text = ''\n continue\n }\n const simpleReplace = [commandStart, open, close]\n if (simpleReplace.some(value => text[1] === value)) {\n children.push({\n type: 'text',\n text: simpleReplace.find(value => text[1] === value)!\n })\n text = text.substring(2)\n start = text.indexOf(commandStart)\n continue\n }\n const inserter = inserterIdentifierMapping.find(value => text.substring(1).startsWith(value.id))\n if (inserter) {\n children.push({\n type: inserter.name,\n })\n text = text.substring(inserter.id.length + 1)\n start = text.indexOf(commandStart)\n continue\n }\n const modifier = modifierIdentifierMapping.find(value => text.substring(1).startsWith(value.id))\n if (modifier) {\n // check brackets\n if (text[modifier.id.length + 1] !== open) {\n children.push({\n type: 'text',\n text: text.substring(0, modifier.id.length + 1)\n })\n text = text.substring(modifier.id.length + 2)\n start = text.indexOf(commandStart)\n continue\n }\n let closing = -1\n let index = modifier.id.length + 2\n let counter = 1\n let escaping = false\n while (index < text.length) {\n if (text[index] === open && !escaping) {\n counter++\n }\n if (text[index] === close && !escaping) {\n counter--\n if (counter === 0) {\n closing = index\n break\n }\n }\n escaping = text[index] === commandStart\n index++\n }\n\n if (closing !== -1) {\n children.push({\n type: modifier.name,\n children: [parseMarkdown(text.substring(modifier.id.length + 2, closing))]\n })\n text = text.substring(closing + 1)\n start = text.indexOf(commandStart)\n continue\n }\n }\n // nothing could be applied to command start\n children.push({\n type: 'text',\n text: text[0]!\n })\n text = text.substring(1)\n start = text.indexOf(commandStart)\n }\n\n return {\n type: 'none',\n children\n }\n}\n\nconst optimizeTree = (node: ASTNode) => {\n if (node.type === 'text') {\n return !node.text ? undefined : node\n }\n if (astNodeInserterType.some(value => value === node.type)) {\n return node\n }\n\n const currentNode = node as\n { type: ASTNodeModifierType, children: ASTNode[] }\n\n if (currentNode.children.length === 0) {\n return undefined\n }\n\n let children: ASTNode[] = []\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = optimizeTree(currentNode.children[i]!)\n if (!child) {\n continue\n }\n if (child.type === 'none') {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n currentNode.children = children\n children = []\n\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = currentNode.children[i]!\n if (child) {\n if (child.type === 'text' && children[children.length - 1]?.type === 'text') {\n (children[children.length - 1]! as { type: ASTNodeDefaultType, text: string }).text += child.text\n } else {\n children.push(child)\n }\n }\n }\n currentNode.children = children\n return currentNode\n}\n\nexport type MarkdownInterpreterProps = {\n text: string,\n className?: string,\n}\n\nexport const MarkdownInterpreter = ({ text, className }: MarkdownInterpreterProps) => {\n const tree = parseMarkdown(text)\n const optimizedTree = optimizeTree(tree)!\n return <ASTNodeInterpreter node={optimizedTree} isRoot={true} className={className}/>\n}\n"],"mappings":"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","names":["clsx","ChevronDown","ChevronUp","jsx","jsx","ChevronUp","ChevronDown","clsx"]}
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/components/MarkdownInterpreter.tsx
20
+ // src/components/layout-and-navigation/MarkdownInterpreter.tsx
21
21
  var MarkdownInterpreter_exports = {};
22
22
  __export(MarkdownInterpreter_exports, {
23
23
  ASTNodeInterpreter: () => ASTNodeInterpreter,
@@ -258,4 +258,4 @@ var MarkdownInterpreter = ({ text, className }) => {
258
258
  ASTNodeInterpreter,
259
259
  MarkdownInterpreter
260
260
  });
261
- //# sourceMappingURL=MarkdownInterpreter.js.map
261
+ //# sourceMappingURL=MarkdownInterpreter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout-and-navigation/MarkdownInterpreter.tsx"],"sourcesContent":["type ASTNodeModifierType =\n 'none'\n | 'italic'\n | 'bold'\n | 'underline'\n | 'font-space'\n | 'primary'\n | 'secondary'\n | 'warn'\n | 'positive'\n | 'negative'\n\nconst astNodeInserterType = ['helpwave', 'newline'] as const\ntype ASTNodeInserterType = typeof astNodeInserterType[number]\ntype ASTNodeDefaultType = 'text'\n\ntype ASTNode = {\n type: ASTNodeModifierType,\n children: ASTNode[],\n} | {\n type: ASTNodeInserterType,\n} | {\n type: ASTNodeDefaultType,\n text: string,\n}\n\nexport type ASTNodeInterpreterProps = {\n node: ASTNode,\n isRoot?: boolean,\n className?: string,\n}\nexport const ASTNodeInterpreter = ({\n node,\n isRoot = false,\n className = '',\n }: ASTNodeInterpreterProps) => {\n switch (node.type) {\n case 'newline':\n return <br/>\n case 'text':\n return isRoot ? <span className={className}>{node.text}</span> : node.text\n case 'helpwave':\n return (<span className=\"font-bold font-space no-underline\">helpwave</span>)\n case 'none':\n return isRoot ? (\n <span className={className}>{node.children.map((value, index) => (\n <ASTNodeInterpreter key={index}\n node={value}/>\n ))}</span>\n ) :\n <>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</>\n case 'bold':\n return <b>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</b>\n case 'italic':\n return <i>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</i>\n case 'underline':\n return (<u>{node.children.map((value, index) => (<ASTNodeInterpreter key={index} node={value}/>))}</u>)\n case 'font-space':\n return (\n <span className=\"font-space\">{node.children.map((value, index) => (\n <ASTNodeInterpreter key={index}\n node={value}/>\n ))}</span>\n )\n case 'primary':\n return (\n <span className=\"text-primary\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'secondary':\n return (\n <span className=\"text-secondary\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'warn':\n return (\n <span className=\"text-warning\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'positive':\n return (\n <span className=\"text-positive\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'negative':\n return (\n <span className=\"text-negative\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n default:\n return null\n }\n}\n\nconst modifierIdentifierMapping = [\n { id: 'i', name: 'italic' },\n { id: 'b', name: 'bold' },\n { id: 'u', name: 'underline' },\n { id: 'space', name: 'font-space' },\n { id: 'primary', name: 'primary' },\n { id: 'secondary', name: 'secondary' },\n { id: 'warn', name: 'warn' },\n { id: 'positive', name: 'positive' },\n { id: 'negative', name: 'negative' },\n] as const\n\nconst inserterIdentifierMapping = [\n { id: 'helpwave', name: 'helpwave' },\n { id: 'newline', name: 'newline' }\n] as const\nconst parseMarkdown = (\n text: string,\n commandStart: string = '\\\\',\n open: string = '{',\n close: string = '}'\n): ASTNode => {\n let start = text.indexOf(commandStart)\n const children: ASTNode[] = []\n\n // parse the text step by step\n while (text !== '') {\n if (start === -1) {\n children.push({\n type: 'text',\n text\n })\n break\n }\n children.push(parseMarkdown(text.substring(0, start)))\n text = text.substring(start)\n if (text.length <= 1) {\n children.push({\n type: 'text',\n text\n })\n text = ''\n continue\n }\n const simpleReplace = [commandStart, open, close]\n if (simpleReplace.some(value => text[1] === value)) {\n children.push({\n type: 'text',\n text: simpleReplace.find(value => text[1] === value)!\n })\n text = text.substring(2)\n start = text.indexOf(commandStart)\n continue\n }\n const inserter = inserterIdentifierMapping.find(value => text.substring(1).startsWith(value.id))\n if (inserter) {\n children.push({\n type: inserter.name,\n })\n text = text.substring(inserter.id.length + 1)\n start = text.indexOf(commandStart)\n continue\n }\n const modifier = modifierIdentifierMapping.find(value => text.substring(1).startsWith(value.id))\n if (modifier) {\n // check brackets\n if (text[modifier.id.length + 1] !== open) {\n children.push({\n type: 'text',\n text: text.substring(0, modifier.id.length + 1)\n })\n text = text.substring(modifier.id.length + 2)\n start = text.indexOf(commandStart)\n continue\n }\n let closing = -1\n let index = modifier.id.length + 2\n let counter = 1\n let escaping = false\n while (index < text.length) {\n if (text[index] === open && !escaping) {\n counter++\n }\n if (text[index] === close && !escaping) {\n counter--\n if (counter === 0) {\n closing = index\n break\n }\n }\n escaping = text[index] === commandStart\n index++\n }\n\n if (closing !== -1) {\n children.push({\n type: modifier.name,\n children: [parseMarkdown(text.substring(modifier.id.length + 2, closing))]\n })\n text = text.substring(closing + 1)\n start = text.indexOf(commandStart)\n continue\n }\n }\n // nothing could be applied to command start\n children.push({\n type: 'text',\n text: text[0]!\n })\n text = text.substring(1)\n start = text.indexOf(commandStart)\n }\n\n return {\n type: 'none',\n children\n }\n}\n\nconst optimizeTree = (node: ASTNode) => {\n if (node.type === 'text') {\n return !node.text ? undefined : node\n }\n if (astNodeInserterType.some(value => value === node.type)) {\n return node\n }\n\n const currentNode = node as\n { type: ASTNodeModifierType, children: ASTNode[] }\n\n if (currentNode.children.length === 0) {\n return undefined\n }\n\n let children: ASTNode[] = []\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = optimizeTree(currentNode.children[i]!)\n if (!child) {\n continue\n }\n if (child.type === 'none') {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n currentNode.children = children\n children = []\n\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = currentNode.children[i]!\n if (child) {\n if (child.type === 'text' && children[children.length - 1]?.type === 'text') {\n (children[children.length - 1]! as { type: ASTNodeDefaultType, text: string }).text += child.text\n } else {\n children.push(child)\n }\n }\n }\n currentNode.children = children\n return currentNode\n}\n\nexport type MarkdownInterpreterProps = {\n text: string,\n className?: string,\n}\n\nexport const MarkdownInterpreter = ({ text, className }: MarkdownInterpreterProps) => {\n const tree = parseMarkdown(text)\n const optimizedTree = optimizeTree(tree)!\n return <ASTNodeInterpreter node={optimizedTree} isRoot={true} className={className}/>\n}\n"],"mappings":"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","names":[]}
@@ -1,4 +1,4 @@
1
- // src/components/MarkdownInterpreter.tsx
1
+ // src/components/layout-and-navigation/MarkdownInterpreter.tsx
2
2
  import { Fragment, jsx } from "react/jsx-runtime";
3
3
  var astNodeInserterType = ["helpwave", "newline"];
4
4
  var ASTNodeInterpreter = ({
@@ -232,4 +232,4 @@ export {
232
232
  ASTNodeInterpreter,
233
233
  MarkdownInterpreter
234
234
  };
235
- //# sourceMappingURL=MarkdownInterpreter.mjs.map
235
+ //# sourceMappingURL=MarkdownInterpreter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout-and-navigation/MarkdownInterpreter.tsx"],"sourcesContent":["type ASTNodeModifierType =\n 'none'\n | 'italic'\n | 'bold'\n | 'underline'\n | 'font-space'\n | 'primary'\n | 'secondary'\n | 'warn'\n | 'positive'\n | 'negative'\n\nconst astNodeInserterType = ['helpwave', 'newline'] as const\ntype ASTNodeInserterType = typeof astNodeInserterType[number]\ntype ASTNodeDefaultType = 'text'\n\ntype ASTNode = {\n type: ASTNodeModifierType,\n children: ASTNode[],\n} | {\n type: ASTNodeInserterType,\n} | {\n type: ASTNodeDefaultType,\n text: string,\n}\n\nexport type ASTNodeInterpreterProps = {\n node: ASTNode,\n isRoot?: boolean,\n className?: string,\n}\nexport const ASTNodeInterpreter = ({\n node,\n isRoot = false,\n className = '',\n }: ASTNodeInterpreterProps) => {\n switch (node.type) {\n case 'newline':\n return <br/>\n case 'text':\n return isRoot ? <span className={className}>{node.text}</span> : node.text\n case 'helpwave':\n return (<span className=\"font-bold font-space no-underline\">helpwave</span>)\n case 'none':\n return isRoot ? (\n <span className={className}>{node.children.map((value, index) => (\n <ASTNodeInterpreter key={index}\n node={value}/>\n ))}</span>\n ) :\n <>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</>\n case 'bold':\n return <b>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</b>\n case 'italic':\n return <i>{node.children.map((value, index) => <ASTNodeInterpreter key={index} node={value}/>)}</i>\n case 'underline':\n return (<u>{node.children.map((value, index) => (<ASTNodeInterpreter key={index} node={value}/>))}</u>)\n case 'font-space':\n return (\n <span className=\"font-space\">{node.children.map((value, index) => (\n <ASTNodeInterpreter key={index}\n node={value}/>\n ))}</span>\n )\n case 'primary':\n return (\n <span className=\"text-primary\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'secondary':\n return (\n <span className=\"text-secondary\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'warn':\n return (\n <span className=\"text-warning\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'positive':\n return (\n <span className=\"text-positive\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n case 'negative':\n return (\n <span className=\"text-negative\">{node.children.map((value, index) => (\n <ASTNodeInterpreter\n key={index} node={value}/>\n ))}</span>\n )\n default:\n return null\n }\n}\n\nconst modifierIdentifierMapping = [\n { id: 'i', name: 'italic' },\n { id: 'b', name: 'bold' },\n { id: 'u', name: 'underline' },\n { id: 'space', name: 'font-space' },\n { id: 'primary', name: 'primary' },\n { id: 'secondary', name: 'secondary' },\n { id: 'warn', name: 'warn' },\n { id: 'positive', name: 'positive' },\n { id: 'negative', name: 'negative' },\n] as const\n\nconst inserterIdentifierMapping = [\n { id: 'helpwave', name: 'helpwave' },\n { id: 'newline', name: 'newline' }\n] as const\nconst parseMarkdown = (\n text: string,\n commandStart: string = '\\\\',\n open: string = '{',\n close: string = '}'\n): ASTNode => {\n let start = text.indexOf(commandStart)\n const children: ASTNode[] = []\n\n // parse the text step by step\n while (text !== '') {\n if (start === -1) {\n children.push({\n type: 'text',\n text\n })\n break\n }\n children.push(parseMarkdown(text.substring(0, start)))\n text = text.substring(start)\n if (text.length <= 1) {\n children.push({\n type: 'text',\n text\n })\n text = ''\n continue\n }\n const simpleReplace = [commandStart, open, close]\n if (simpleReplace.some(value => text[1] === value)) {\n children.push({\n type: 'text',\n text: simpleReplace.find(value => text[1] === value)!\n })\n text = text.substring(2)\n start = text.indexOf(commandStart)\n continue\n }\n const inserter = inserterIdentifierMapping.find(value => text.substring(1).startsWith(value.id))\n if (inserter) {\n children.push({\n type: inserter.name,\n })\n text = text.substring(inserter.id.length + 1)\n start = text.indexOf(commandStart)\n continue\n }\n const modifier = modifierIdentifierMapping.find(value => text.substring(1).startsWith(value.id))\n if (modifier) {\n // check brackets\n if (text[modifier.id.length + 1] !== open) {\n children.push({\n type: 'text',\n text: text.substring(0, modifier.id.length + 1)\n })\n text = text.substring(modifier.id.length + 2)\n start = text.indexOf(commandStart)\n continue\n }\n let closing = -1\n let index = modifier.id.length + 2\n let counter = 1\n let escaping = false\n while (index < text.length) {\n if (text[index] === open && !escaping) {\n counter++\n }\n if (text[index] === close && !escaping) {\n counter--\n if (counter === 0) {\n closing = index\n break\n }\n }\n escaping = text[index] === commandStart\n index++\n }\n\n if (closing !== -1) {\n children.push({\n type: modifier.name,\n children: [parseMarkdown(text.substring(modifier.id.length + 2, closing))]\n })\n text = text.substring(closing + 1)\n start = text.indexOf(commandStart)\n continue\n }\n }\n // nothing could be applied to command start\n children.push({\n type: 'text',\n text: text[0]!\n })\n text = text.substring(1)\n start = text.indexOf(commandStart)\n }\n\n return {\n type: 'none',\n children\n }\n}\n\nconst optimizeTree = (node: ASTNode) => {\n if (node.type === 'text') {\n return !node.text ? undefined : node\n }\n if (astNodeInserterType.some(value => value === node.type)) {\n return node\n }\n\n const currentNode = node as\n { type: ASTNodeModifierType, children: ASTNode[] }\n\n if (currentNode.children.length === 0) {\n return undefined\n }\n\n let children: ASTNode[] = []\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = optimizeTree(currentNode.children[i]!)\n if (!child) {\n continue\n }\n if (child.type === 'none') {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n currentNode.children = children\n children = []\n\n for (let i = 0; i < currentNode.children.length; i++) {\n const child = currentNode.children[i]!\n if (child) {\n if (child.type === 'text' && children[children.length - 1]?.type === 'text') {\n (children[children.length - 1]! as { type: ASTNodeDefaultType, text: string }).text += child.text\n } else {\n children.push(child)\n }\n }\n }\n currentNode.children = children\n return currentNode\n}\n\nexport type MarkdownInterpreterProps = {\n text: string,\n className?: string,\n}\n\nexport const MarkdownInterpreter = ({ text, className }: MarkdownInterpreterProps) => {\n const tree = parseMarkdown(text)\n const optimizedTree = optimizeTree(tree)!\n return <ASTNodeInterpreter node={optimizedTree} isRoot={true} className={className}/>\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,460 @@
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/layout-and-navigation/Overlay.tsx
31
+ var Overlay_exports = {};
32
+ __export(Overlay_exports, {
33
+ Dialog: () => Dialog,
34
+ Modal: () => Modal,
35
+ Overlay: () => Overlay,
36
+ OverlayHeader: () => OverlayHeader
37
+ });
38
+ module.exports = __toCommonJS(Overlay_exports);
39
+ var import_react4 = require("react");
40
+ var import_react_dom = __toESM(require("react-dom"), 1);
41
+ var import_clsx3 = __toESM(require("clsx"), 1);
42
+
43
+ // src/hooks/useHoverState.ts
44
+ var import_react = require("react");
45
+ var defaultUseHoverStateProps = {
46
+ closingDelay: 200,
47
+ isDisabled: false
48
+ };
49
+ var useHoverState = (props = void 0) => {
50
+ const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
51
+ const [isHovered, setIsHovered] = (0, import_react.useState)(false);
52
+ const [timer, setTimer] = (0, import_react.useState)();
53
+ const onMouseEnter = () => {
54
+ if (isDisabled) {
55
+ return;
56
+ }
57
+ clearTimeout(timer);
58
+ setIsHovered(true);
59
+ };
60
+ const onMouseLeave = () => {
61
+ if (isDisabled) {
62
+ return;
63
+ }
64
+ setTimer(setTimeout(() => {
65
+ setIsHovered(false);
66
+ }, closingDelay));
67
+ };
68
+ (0, import_react.useEffect)(() => {
69
+ if (timer) {
70
+ return () => {
71
+ clearTimeout(timer);
72
+ };
73
+ }
74
+ });
75
+ (0, import_react.useEffect)(() => {
76
+ if (timer) {
77
+ clearTimeout(timer);
78
+ }
79
+ }, [isDisabled]);
80
+ return {
81
+ isHovered,
82
+ setIsHovered,
83
+ handlers: { onMouseEnter, onMouseLeave }
84
+ };
85
+ };
86
+
87
+ // src/components/user-action/Tooltip.tsx
88
+ var import_clsx = require("clsx");
89
+ var import_jsx_runtime = require("react/jsx-runtime");
90
+ var Tooltip = ({
91
+ tooltip,
92
+ children,
93
+ animationDelay = 650,
94
+ tooltipClassName = "",
95
+ containerClassName = "",
96
+ position = "bottom",
97
+ zIndex = 10
98
+ }) => {
99
+ const { isHovered, handlers } = useHoverState();
100
+ const positionClasses = {
101
+ top: `bottom-full left-1/2 -translate-x-1/2 mb-[6px]`,
102
+ bottom: `top-full left-1/2 -translate-x-1/2 mt-[6px]`,
103
+ left: `right-full top-1/2 -translate-y-1/2 mr-[6px]`,
104
+ right: `left-full top-1/2 -translate-y-1/2 ml-[6px]`
105
+ };
106
+ const triangleSize = 6;
107
+ const triangleClasses = {
108
+ top: `top-full left-1/2 -translate-x-1/2 border-t-tooltip-background border-l-transparent border-r-transparent`,
109
+ bottom: `bottom-full left-1/2 -translate-x-1/2 border-b-tooltip-background border-l-transparent border-r-transparent`,
110
+ left: `left-full top-1/2 -translate-y-1/2 border-l-tooltip-background border-t-transparent border-b-transparent`,
111
+ right: `right-full top-1/2 -translate-y-1/2 border-r-tooltip-background border-t-transparent border-b-transparent`
112
+ };
113
+ const triangleStyle = {
114
+ top: { borderWidth: `${triangleSize}px ${triangleSize}px 0 ${triangleSize}px` },
115
+ bottom: { borderWidth: `0 ${triangleSize}px ${triangleSize}px ${triangleSize}px` },
116
+ left: { borderWidth: `${triangleSize}px 0 ${triangleSize}px ${triangleSize}px` },
117
+ right: { borderWidth: `${triangleSize}px ${triangleSize}px ${triangleSize}px 0` }
118
+ };
119
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
120
+ "div",
121
+ {
122
+ className: (0, import_clsx.clsx)("relative inline-block", containerClassName),
123
+ ...handlers,
124
+ children: [
125
+ children,
126
+ isHovered && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
127
+ "div",
128
+ {
129
+ className: (0, import_clsx.clsx)(
130
+ `opacity-0 absolute text-xs font-semibold text-tooltip-text px-2 py-1 rounded whitespace-nowrap
131
+ animate-tooltip-fade-in shadow-lg bg-tooltip-background`,
132
+ positionClasses[position],
133
+ tooltipClassName
134
+ ),
135
+ style: { zIndex, animationDelay: animationDelay + "ms" },
136
+ children: [
137
+ tooltip,
138
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
139
+ "div",
140
+ {
141
+ className: (0, import_clsx.clsx)(`absolute w-0 h-0`, triangleClasses[position]),
142
+ style: { ...triangleStyle[position], zIndex }
143
+ }
144
+ )
145
+ ]
146
+ }
147
+ )
148
+ ]
149
+ }
150
+ );
151
+ };
152
+
153
+ // src/components/layout-and-navigation/Overlay.tsx
154
+ var import_lucide_react = require("lucide-react");
155
+
156
+ // src/components/user-action/Button.tsx
157
+ var import_clsx2 = __toESM(require("clsx"), 1);
158
+ var import_jsx_runtime2 = require("react/jsx-runtime");
159
+ var paddingMapping = {
160
+ small: "btn-sm",
161
+ medium: "btn-md",
162
+ large: "btn-lg"
163
+ };
164
+ var iconPaddingMapping = {
165
+ small: "icon-btn-sm",
166
+ medium: "icon-btn-md",
167
+ large: "icon-btn-lg"
168
+ };
169
+ var ButtonUtil = {
170
+ paddingMapping,
171
+ iconPaddingMapping
172
+ };
173
+ var IconButton = ({
174
+ children,
175
+ disabled = false,
176
+ color = "primary",
177
+ size = "medium",
178
+ onClick,
179
+ className,
180
+ ...restProps
181
+ }) => {
182
+ const colorClasses = {
183
+ primary: "bg-button-solid-primary-background text-button-solid-primary-text",
184
+ secondary: "bg-button-solid-secondary-background text-button-solid-secondary-text",
185
+ tertiary: "bg-button-solid-tertiary-background text-button-solid-tertiary-text",
186
+ positive: "bg-button-solid-positive-background text-button-solid-positive-text",
187
+ warning: "bg-button-solid-warning-background text-button-solid-warning-text",
188
+ negative: "bg-button-solid-negative-background text-button-solid-negative-text",
189
+ neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text"
190
+ }[color];
191
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
192
+ "button",
193
+ {
194
+ onClick: disabled ? void 0 : onClick,
195
+ disabled: disabled || onClick === void 0,
196
+ className: (0, import_clsx2.default)(
197
+ className,
198
+ {
199
+ "text-disabled-text bg-disabled-background": disabled,
200
+ [(0, import_clsx2.default)(colorClasses, "hover:brightness-90")]: !disabled
201
+ },
202
+ ButtonUtil.iconPaddingMapping[size]
203
+ ),
204
+ ...restProps,
205
+ children
206
+ }
207
+ );
208
+ };
209
+
210
+ // src/localization/LanguageProvider.tsx
211
+ var import_react3 = require("react");
212
+
213
+ // src/hooks/useLocalStorage.ts
214
+ var import_react2 = require("react");
215
+
216
+ // src/localization/util.ts
217
+ var languages = ["en", "de"];
218
+ var languagesLocalNames = {
219
+ en: "English",
220
+ de: "Deutsch"
221
+ };
222
+ var DEFAULT_LANGUAGE = "en";
223
+ var LanguageUtil = {
224
+ languages,
225
+ DEFAULT_LANGUAGE,
226
+ languagesLocalNames
227
+ };
228
+
229
+ // src/localization/LanguageProvider.tsx
230
+ var import_jsx_runtime3 = require("react/jsx-runtime");
231
+ var LanguageContext = (0, import_react3.createContext)({
232
+ language: LanguageUtil.DEFAULT_LANGUAGE,
233
+ setLanguage: (v) => v
234
+ });
235
+ var useLanguage = () => (0, import_react3.useContext)(LanguageContext);
236
+
237
+ // src/localization/useTranslation.ts
238
+ var useTranslation = (defaults, translationOverwrite = {}) => {
239
+ const { language: languageProp, translation: overwrite } = translationOverwrite;
240
+ const { language: inferredLanguage } = useLanguage();
241
+ const usedLanguage = languageProp ?? inferredLanguage;
242
+ let defaultValues = defaults[usedLanguage];
243
+ if (overwrite && overwrite[usedLanguage]) {
244
+ defaultValues = { ...defaultValues, ...overwrite[usedLanguage] };
245
+ }
246
+ return defaultValues;
247
+ };
248
+
249
+ // src/components/layout-and-navigation/Overlay.tsx
250
+ var import_jsx_runtime4 = require("react/jsx-runtime");
251
+ var Overlay = ({
252
+ children,
253
+ isOpen,
254
+ onBackgroundClick,
255
+ backgroundClassName
256
+ }) => {
257
+ const [root, setRoot] = (0, import_react4.useState)();
258
+ (0, import_react4.useEffect)(() => {
259
+ setRoot(document.body);
260
+ }, []);
261
+ if (!root || !isOpen) return null;
262
+ return import_react_dom.default.createPortal(
263
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: (0, import_clsx3.default)("fixed inset-0 z-[9999]"), children: [
264
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
265
+ "div",
266
+ {
267
+ className: (0, import_clsx3.default)("fixed inset-0 h-screen w-screen bg-black/30", backgroundClassName),
268
+ onClick: onBackgroundClick
269
+ }
270
+ ),
271
+ children
272
+ ] }),
273
+ root
274
+ );
275
+ };
276
+ var overlayStack = [];
277
+ var defaultModalHeaderTranslation = {
278
+ en: {
279
+ close: "Close"
280
+ },
281
+ de: {
282
+ close: "Schlie\xDFen"
283
+ }
284
+ };
285
+ var OverlayHeader = ({
286
+ overwriteTranslation,
287
+ onClose,
288
+ title,
289
+ titleText = "",
290
+ description,
291
+ descriptionText = ""
292
+ }) => {
293
+ const translation = useTranslation(defaultModalHeaderTranslation, overwriteTranslation);
294
+ const hasTitleRow = !!title || !!titleText || !!onClose;
295
+ const titleRow = /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "row justify-between items-start gap-x-8", children: [
296
+ title ?? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
297
+ "h2",
298
+ {
299
+ className: (0, import_clsx3.default)("textstyle-title-lg", {
300
+ "mb-1": description || descriptionText
301
+ }),
302
+ children: titleText
303
+ }
304
+ ),
305
+ !!onClose && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Tooltip, { tooltip: translation.close, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(IconButton, { color: "neutral", size: "small", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.X, { className: "w-full h-full" }) }) })
306
+ ] });
307
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "col", children: [
308
+ hasTitleRow && titleRow,
309
+ description ?? (descriptionText && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "textstyle-description", children: descriptionText }))
310
+ ] });
311
+ };
312
+ var Modal = ({
313
+ children,
314
+ isOpen,
315
+ onClose,
316
+ className,
317
+ backgroundClassName,
318
+ headerProps
319
+ }) => {
320
+ const ref = (0, import_react4.useRef)(null);
321
+ (0, import_react4.useEffect)(() => {
322
+ if (!isOpen) return;
323
+ const modal = ref.current;
324
+ if (!modal) {
325
+ console.error("modal open, but no ref found");
326
+ return;
327
+ }
328
+ overlayStack.push(modal);
329
+ const focusable = modal?.querySelectorAll(
330
+ 'a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])'
331
+ );
332
+ const first = focusable[0];
333
+ const last = focusable[focusable.length - 1];
334
+ const handleKeyDown = (e) => {
335
+ const isTopmost = overlayStack[overlayStack.length - 1] === modal;
336
+ if (!isTopmost) return;
337
+ if (e.key === "Escape") {
338
+ e.stopPropagation();
339
+ onClose();
340
+ } else if (e.key === "Tab") {
341
+ if (focusable.length === 0) return;
342
+ if (e.shiftKey && document.activeElement === first) {
343
+ e.preventDefault();
344
+ last.focus();
345
+ } else if (!e.shiftKey && document.activeElement === last) {
346
+ e.preventDefault();
347
+ first.focus();
348
+ }
349
+ }
350
+ };
351
+ modal.focus();
352
+ document.addEventListener("keydown", handleKeyDown);
353
+ return () => {
354
+ document.removeEventListener("keydown", handleKeyDown);
355
+ overlayStack = overlayStack.filter((m) => m !== modal);
356
+ };
357
+ }, [isOpen, onClose]);
358
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
359
+ Overlay,
360
+ {
361
+ isOpen,
362
+ onBackgroundClick: onClose,
363
+ backgroundClassName,
364
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
365
+ "div",
366
+ {
367
+ ref,
368
+ tabIndex: -1,
369
+ className: (0, import_clsx3.default)(
370
+ "fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 col p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl",
371
+ className
372
+ ),
373
+ role: "dialog",
374
+ "aria-modal": true,
375
+ children: [
376
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(OverlayHeader, { ...headerProps, onClose }),
377
+ children
378
+ ]
379
+ }
380
+ )
381
+ }
382
+ );
383
+ };
384
+ var Dialog = ({
385
+ children,
386
+ isOpen,
387
+ className,
388
+ backgroundClassName,
389
+ headerProps
390
+ }) => {
391
+ const ref = (0, import_react4.useRef)(null);
392
+ (0, import_react4.useEffect)(() => {
393
+ if (!isOpen) return;
394
+ const dialog = ref.current;
395
+ if (!dialog) {
396
+ console.error("dialog open, but no ref found");
397
+ return;
398
+ }
399
+ overlayStack.push(dialog);
400
+ const focusable = dialog?.querySelectorAll(
401
+ 'a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])'
402
+ );
403
+ const first = focusable[0];
404
+ const last = focusable[focusable.length - 1];
405
+ const handleKeyDown = (e) => {
406
+ const isTopmost = overlayStack[overlayStack.length - 1] === dialog;
407
+ if (!isTopmost) return;
408
+ if (e.key === "Escape") {
409
+ e.stopPropagation();
410
+ } else if (e.key === "Tab") {
411
+ if (focusable.length === 0) return;
412
+ if (e.shiftKey && document.activeElement === first) {
413
+ e.preventDefault();
414
+ last.focus();
415
+ } else if (!e.shiftKey && document.activeElement === last) {
416
+ e.preventDefault();
417
+ first.focus();
418
+ }
419
+ }
420
+ };
421
+ dialog.focus();
422
+ document.addEventListener("keydown", handleKeyDown);
423
+ return () => {
424
+ document.removeEventListener("keydown", handleKeyDown);
425
+ overlayStack = overlayStack.filter((m) => m !== dialog);
426
+ };
427
+ }, [isOpen]);
428
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
429
+ Overlay,
430
+ {
431
+ isOpen,
432
+ backgroundClassName,
433
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
434
+ "div",
435
+ {
436
+ ref,
437
+ tabIndex: -1,
438
+ className: (0, import_clsx3.default)(
439
+ "fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 col p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl",
440
+ className
441
+ ),
442
+ role: "dialog",
443
+ "aria-modal": true,
444
+ children: [
445
+ !!headerProps && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(OverlayHeader, { ...headerProps }),
446
+ children
447
+ ]
448
+ }
449
+ )
450
+ }
451
+ );
452
+ };
453
+ // Annotate the CommonJS export names for ESM import in node:
454
+ 0 && (module.exports = {
455
+ Dialog,
456
+ Modal,
457
+ Overlay,
458
+ OverlayHeader
459
+ });
460
+ //# sourceMappingURL=Overlay.cjs.map