@helpwave/hightide 0.1.24 → 0.1.26

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 (602) hide show
  1. package/README.md +1 -1
  2. package/dist/components/branding/HelpwaveBadge.d.mts +4 -5
  3. package/dist/components/branding/HelpwaveBadge.d.ts +4 -5
  4. package/dist/components/branding/HelpwaveBadge.js +46 -87
  5. package/dist/components/branding/HelpwaveBadge.js.map +1 -1
  6. package/dist/components/branding/HelpwaveBadge.mjs +46 -89
  7. package/dist/components/branding/HelpwaveBadge.mjs.map +1 -1
  8. package/dist/components/date/DatePicker.d.mts +1 -1
  9. package/dist/components/date/DatePicker.d.ts +1 -1
  10. package/dist/components/date/DatePicker.js +106 -60
  11. package/dist/components/date/DatePicker.js.map +1 -1
  12. package/dist/components/date/DatePicker.mjs +107 -61
  13. package/dist/components/date/DatePicker.mjs.map +1 -1
  14. package/dist/components/date/DayPicker.d.mts +1 -1
  15. package/dist/components/date/DayPicker.d.ts +1 -1
  16. package/dist/components/date/DayPicker.js +3 -3
  17. package/dist/components/date/DayPicker.js.map +1 -1
  18. package/dist/components/date/DayPicker.mjs +3 -3
  19. package/dist/components/date/DayPicker.mjs.map +1 -1
  20. package/dist/components/date/TimeDisplay.js.map +1 -1
  21. package/dist/components/date/TimeDisplay.mjs.map +1 -1
  22. package/dist/components/date/TimePicker.js +2 -2
  23. package/dist/components/date/TimePicker.js.map +1 -1
  24. package/dist/components/date/TimePicker.mjs +2 -2
  25. package/dist/components/date/TimePicker.mjs.map +1 -1
  26. package/dist/components/date/YearMonthPicker.js +84 -36
  27. package/dist/components/date/YearMonthPicker.js.map +1 -1
  28. package/dist/components/date/YearMonthPicker.mjs +85 -37
  29. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  30. package/dist/components/{dialogs → dialog}/ConfirmDialog.d.mts +9 -8
  31. package/dist/components/{dialogs → dialog}/ConfirmDialog.d.ts +9 -8
  32. package/dist/components/dialog/ConfirmDialog.js +938 -0
  33. package/dist/components/dialog/ConfirmDialog.js.map +1 -0
  34. package/dist/components/dialog/ConfirmDialog.mjs +902 -0
  35. package/dist/components/dialog/ConfirmDialog.mjs.map +1 -0
  36. package/dist/components/dialog/Dialog.d.mts +27 -0
  37. package/dist/components/dialog/Dialog.d.ts +27 -0
  38. package/dist/components/dialog/Dialog.js +879 -0
  39. package/dist/components/dialog/Dialog.js.map +1 -0
  40. package/dist/components/dialog/Dialog.mjs +845 -0
  41. package/dist/components/dialog/Dialog.mjs.map +1 -0
  42. package/dist/components/dialog/DiscardChangesDialog.d.mts +24 -0
  43. package/dist/components/dialog/DiscardChangesDialog.d.ts +24 -0
  44. package/dist/components/dialog/DiscardChangesDialog.js +966 -0
  45. package/dist/components/dialog/DiscardChangesDialog.js.map +1 -0
  46. package/dist/components/dialog/DiscardChangesDialog.mjs +930 -0
  47. package/dist/components/dialog/DiscardChangesDialog.mjs.map +1 -0
  48. package/dist/components/dialog/InputDialog.d.mts +22 -0
  49. package/dist/components/dialog/InputDialog.d.ts +22 -0
  50. package/dist/components/dialog/InputDialog.js +1139 -0
  51. package/dist/components/dialog/InputDialog.js.map +1 -0
  52. package/dist/components/dialog/InputDialog.mjs +1103 -0
  53. package/dist/components/dialog/InputDialog.mjs.map +1 -0
  54. package/dist/components/dialog/LanguageDialog.d.mts +25 -0
  55. package/dist/components/dialog/LanguageDialog.d.ts +25 -0
  56. package/dist/components/dialog/LanguageDialog.js +1684 -0
  57. package/dist/components/dialog/LanguageDialog.js.map +1 -0
  58. package/dist/components/dialog/LanguageDialog.mjs +1658 -0
  59. package/dist/components/dialog/LanguageDialog.mjs.map +1 -0
  60. package/dist/components/dialog/ThemeDialog.d.mts +26 -0
  61. package/dist/components/dialog/ThemeDialog.d.ts +26 -0
  62. package/dist/components/dialog/ThemeDialog.js +1715 -0
  63. package/dist/components/dialog/ThemeDialog.js.map +1 -0
  64. package/dist/components/dialog/ThemeDialog.mjs +1689 -0
  65. package/dist/components/dialog/ThemeDialog.mjs.map +1 -0
  66. package/dist/components/dialog/index.d.mts +17 -0
  67. package/dist/components/dialog/index.d.ts +17 -0
  68. package/dist/components/dialog/index.js +2062 -0
  69. package/dist/components/dialog/index.js.map +1 -0
  70. package/dist/components/dialog/index.mjs +2031 -0
  71. package/dist/components/dialog/index.mjs.map +1 -0
  72. package/dist/components/form/FormElementWrapper.d.mts +29 -0
  73. package/dist/components/form/FormElementWrapper.d.ts +29 -0
  74. package/dist/components/form/FormElementWrapper.js +98 -0
  75. package/dist/components/form/FormElementWrapper.js.map +1 -0
  76. package/dist/components/form/FormElementWrapper.mjs +64 -0
  77. package/dist/components/form/FormElementWrapper.mjs.map +1 -0
  78. package/dist/components/icons-and-geometry/Avatar.js +498 -2886
  79. package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
  80. package/dist/components/icons-and-geometry/Avatar.mjs +490 -2878
  81. package/dist/components/icons-and-geometry/Avatar.mjs.map +1 -1
  82. package/dist/components/icons-and-geometry/{Helpwave.d.mts → HelpwaveLogo.d.mts} +3 -3
  83. package/dist/components/icons-and-geometry/{Helpwave.d.ts → HelpwaveLogo.d.ts} +3 -3
  84. package/dist/components/icons-and-geometry/{Helpwave.js → HelpwaveLogo.js} +21 -22
  85. package/dist/components/icons-and-geometry/HelpwaveLogo.js.map +1 -0
  86. package/dist/components/icons-and-geometry/{Helpwave.mjs → HelpwaveLogo.mjs} +17 -18
  87. package/dist/components/icons-and-geometry/HelpwaveLogo.mjs.map +1 -0
  88. package/dist/components/icons-and-geometry/Ring.js +1 -1
  89. package/dist/components/icons-and-geometry/Ring.js.map +1 -1
  90. package/dist/components/icons-and-geometry/Ring.mjs +1 -1
  91. package/dist/components/icons-and-geometry/Ring.mjs.map +1 -1
  92. package/dist/components/icons-and-geometry/Tag.js +8 -20
  93. package/dist/components/icons-and-geometry/Tag.js.map +1 -1
  94. package/dist/components/icons-and-geometry/Tag.mjs +8 -20
  95. package/dist/components/icons-and-geometry/Tag.mjs.map +1 -1
  96. package/dist/components/layout-and-navigation/BreadCrumb.js +667 -22
  97. package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -1
  98. package/dist/components/layout-and-navigation/BreadCrumb.mjs +667 -22
  99. package/dist/components/layout-and-navigation/BreadCrumb.mjs.map +1 -1
  100. package/dist/components/layout-and-navigation/Carousel.js +52 -53
  101. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  102. package/dist/components/layout-and-navigation/Carousel.mjs +52 -53
  103. package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
  104. package/dist/components/layout-and-navigation/Chip.d.mts +8 -5
  105. package/dist/components/layout-and-navigation/Chip.d.ts +8 -5
  106. package/dist/components/layout-and-navigation/Chip.js +17 -4
  107. package/dist/components/layout-and-navigation/Chip.js.map +1 -1
  108. package/dist/components/layout-and-navigation/Chip.mjs +17 -4
  109. package/dist/components/layout-and-navigation/Chip.mjs.map +1 -1
  110. package/dist/components/layout-and-navigation/Expandable.d.mts +13 -10
  111. package/dist/components/layout-and-navigation/Expandable.d.ts +13 -10
  112. package/dist/components/layout-and-navigation/Expandable.js +18 -5
  113. package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
  114. package/dist/components/layout-and-navigation/Expandable.mjs +19 -6
  115. package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
  116. package/dist/components/layout-and-navigation/FAQSection.js +21 -8
  117. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
  118. package/dist/components/layout-and-navigation/FAQSection.mjs +22 -9
  119. package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -1
  120. package/dist/components/layout-and-navigation/FloatingContainer.d.mts +38 -0
  121. package/dist/components/layout-and-navigation/FloatingContainer.d.ts +38 -0
  122. package/dist/components/layout-and-navigation/FloatingContainer.js +219 -0
  123. package/dist/components/layout-and-navigation/FloatingContainer.js.map +1 -0
  124. package/dist/components/layout-and-navigation/FloatingContainer.mjs +195 -0
  125. package/dist/components/layout-and-navigation/FloatingContainer.mjs.map +1 -0
  126. package/dist/components/layout-and-navigation/ListBox.d.mts +44 -0
  127. package/dist/components/layout-and-navigation/ListBox.d.ts +44 -0
  128. package/dist/components/layout-and-navigation/ListBox.js +329 -0
  129. package/dist/components/layout-and-navigation/ListBox.js.map +1 -0
  130. package/dist/components/layout-and-navigation/ListBox.mjs +290 -0
  131. package/dist/components/layout-and-navigation/ListBox.mjs.map +1 -0
  132. package/dist/components/layout-and-navigation/Pagination.js +142 -230
  133. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  134. package/dist/components/layout-and-navigation/Pagination.mjs +137 -225
  135. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  136. package/dist/components/layout-and-navigation/ScrollArea.d.mts +15 -0
  137. package/dist/components/layout-and-navigation/ScrollArea.d.ts +15 -0
  138. package/dist/components/layout-and-navigation/ScrollArea.js +1252 -0
  139. package/dist/components/layout-and-navigation/ScrollArea.js.map +1 -0
  140. package/dist/components/layout-and-navigation/ScrollArea.mjs +1216 -0
  141. package/dist/components/layout-and-navigation/ScrollArea.mjs.map +1 -0
  142. package/dist/components/layout-and-navigation/StepperBar.js +67 -30
  143. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  144. package/dist/components/layout-and-navigation/StepperBar.mjs +67 -30
  145. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  146. package/dist/components/layout-and-navigation/TextImage.js +3 -1
  147. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  148. package/dist/components/layout-and-navigation/TextImage.mjs +3 -1
  149. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  150. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  151. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
  152. package/dist/components/loading-states/LoadingAndErrorComponent.d.mts +1 -1
  153. package/dist/components/loading-states/LoadingAndErrorComponent.d.ts +1 -1
  154. package/dist/components/loading-states/LoadingAnimation.js +18 -17
  155. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  156. package/dist/components/loading-states/LoadingAnimation.mjs +18 -17
  157. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  158. package/dist/components/loading-states/LoadingButton.js +81 -47
  159. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  160. package/dist/components/loading-states/LoadingButton.mjs +81 -47
  161. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  162. package/dist/components/properties/CheckboxProperty.js +929 -153
  163. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  164. package/dist/components/properties/CheckboxProperty.mjs +936 -160
  165. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  166. package/dist/components/properties/DateProperty.js +191 -241
  167. package/dist/components/properties/DateProperty.js.map +1 -1
  168. package/dist/components/properties/DateProperty.mjs +184 -234
  169. package/dist/components/properties/DateProperty.mjs.map +1 -1
  170. package/dist/components/properties/MultiSelectProperty.d.mts +5 -10
  171. package/dist/components/properties/MultiSelectProperty.d.ts +5 -10
  172. package/dist/components/properties/MultiSelectProperty.js +1193 -1189
  173. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  174. package/dist/components/properties/MultiSelectProperty.mjs +1207 -1193
  175. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  176. package/dist/components/properties/NumberProperty.js +193 -244
  177. package/dist/components/properties/NumberProperty.js.map +1 -1
  178. package/dist/components/properties/NumberProperty.mjs +186 -237
  179. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  180. package/dist/components/properties/PropertyBase.js +91 -56
  181. package/dist/components/properties/PropertyBase.js.map +1 -1
  182. package/dist/components/properties/PropertyBase.mjs +91 -56
  183. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  184. package/dist/components/properties/SelectProperty.d.mts +5 -8
  185. package/dist/components/properties/SelectProperty.d.ts +5 -8
  186. package/dist/components/properties/SelectProperty.js +1102 -897
  187. package/dist/components/properties/SelectProperty.js.map +1 -1
  188. package/dist/components/properties/SelectProperty.mjs +1107 -892
  189. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  190. package/dist/components/properties/TextProperty.js +139 -147
  191. package/dist/components/properties/TextProperty.js.map +1 -1
  192. package/dist/components/properties/TextProperty.mjs +142 -150
  193. package/dist/components/properties/TextProperty.mjs.map +1 -1
  194. package/dist/components/table/Table.js +1639 -991
  195. package/dist/components/table/Table.js.map +1 -1
  196. package/dist/components/table/Table.mjs +1645 -997
  197. package/dist/components/table/Table.mjs.map +1 -1
  198. package/dist/components/table/TableFilterButton.js +156 -244
  199. package/dist/components/table/TableFilterButton.js.map +1 -1
  200. package/dist/components/table/TableFilterButton.mjs +145 -233
  201. package/dist/components/table/TableFilterButton.mjs.map +1 -1
  202. package/dist/components/table/TableSortButton.js +44 -46
  203. package/dist/components/table/TableSortButton.js.map +1 -1
  204. package/dist/components/table/TableSortButton.mjs +44 -46
  205. package/dist/components/table/TableSortButton.mjs.map +1 -1
  206. package/dist/components/user-action/Button.d.mts +17 -13
  207. package/dist/components/user-action/Button.d.ts +17 -13
  208. package/dist/components/user-action/Button.js +80 -87
  209. package/dist/components/user-action/Button.js.map +1 -1
  210. package/dist/components/user-action/Button.mjs +80 -87
  211. package/dist/components/user-action/Button.mjs.map +1 -1
  212. package/dist/components/user-action/Checkbox.d.mts +9 -25
  213. package/dist/components/user-action/Checkbox.d.ts +9 -25
  214. package/dist/components/user-action/Checkbox.js +794 -78
  215. package/dist/components/user-action/Checkbox.js.map +1 -1
  216. package/dist/components/user-action/Checkbox.mjs +795 -79
  217. package/dist/components/user-action/Checkbox.mjs.map +1 -1
  218. package/dist/components/user-action/CopyToClipboardWrapper.js +3 -1
  219. package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
  220. package/dist/components/user-action/CopyToClipboardWrapper.mjs +3 -1
  221. package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
  222. package/dist/components/user-action/DateAndTimePicker.d.mts +1 -1
  223. package/dist/components/user-action/DateAndTimePicker.d.ts +1 -1
  224. package/dist/components/user-action/DateAndTimePicker.js +108 -60
  225. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  226. package/dist/components/user-action/DateAndTimePicker.mjs +109 -61
  227. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  228. package/dist/components/user-action/Label.d.mts +6 -8
  229. package/dist/components/user-action/Label.d.ts +6 -8
  230. package/dist/components/user-action/Label.js +4 -6
  231. package/dist/components/user-action/Label.js.map +1 -1
  232. package/dist/components/user-action/Label.mjs +4 -6
  233. package/dist/components/user-action/Label.mjs.map +1 -1
  234. package/dist/components/user-action/Menu.d.mts +2 -2
  235. package/dist/components/user-action/Menu.d.ts +2 -2
  236. package/dist/components/user-action/Menu.js +1 -1
  237. package/dist/components/user-action/Menu.js.map +1 -1
  238. package/dist/components/user-action/Menu.mjs +1 -1
  239. package/dist/components/user-action/Menu.mjs.map +1 -1
  240. package/dist/components/user-action/ScrollPicker.js +8 -6
  241. package/dist/components/user-action/ScrollPicker.js.map +1 -1
  242. package/dist/components/user-action/ScrollPicker.mjs +8 -6
  243. package/dist/components/user-action/ScrollPicker.mjs.map +1 -1
  244. package/dist/components/user-action/SearchBar.d.mts +1 -2
  245. package/dist/components/user-action/SearchBar.d.ts +1 -2
  246. package/dist/components/user-action/SearchBar.js +131 -219
  247. package/dist/components/user-action/SearchBar.js.map +1 -1
  248. package/dist/components/user-action/SearchBar.mjs +124 -212
  249. package/dist/components/user-action/SearchBar.mjs.map +1 -1
  250. package/dist/components/user-action/Textarea.d.mts +22 -11
  251. package/dist/components/user-action/Textarea.d.ts +22 -11
  252. package/dist/components/user-action/Textarea.js +101 -92
  253. package/dist/components/user-action/Textarea.js.map +1 -1
  254. package/dist/components/user-action/Textarea.mjs +100 -92
  255. package/dist/components/user-action/Textarea.mjs.map +1 -1
  256. package/dist/components/user-action/input/Input.d.mts +37 -0
  257. package/dist/components/user-action/input/Input.d.ts +37 -0
  258. package/dist/components/user-action/input/Input.js +244 -0
  259. package/dist/components/user-action/input/Input.js.map +1 -0
  260. package/dist/components/user-action/input/Input.mjs +209 -0
  261. package/dist/components/user-action/input/Input.mjs.map +1 -0
  262. package/dist/components/user-action/input/InsideLabelInput.d.mts +20 -0
  263. package/dist/components/user-action/input/InsideLabelInput.d.ts +20 -0
  264. package/dist/components/user-action/input/InsideLabelInput.js +295 -0
  265. package/dist/components/user-action/input/InsideLabelInput.js.map +1 -0
  266. package/dist/components/user-action/input/InsideLabelInput.mjs +260 -0
  267. package/dist/components/user-action/input/InsideLabelInput.mjs.map +1 -0
  268. package/dist/components/user-action/input/ToggleableInput.d.mts +22 -0
  269. package/dist/components/user-action/input/ToggleableInput.d.ts +22 -0
  270. package/dist/components/user-action/{Input.js → input/ToggleableInput.js} +136 -171
  271. package/dist/components/user-action/input/ToggleableInput.js.map +1 -0
  272. package/dist/components/user-action/input/ToggleableInput.mjs +264 -0
  273. package/dist/components/user-action/input/ToggleableInput.mjs.map +1 -0
  274. package/dist/components/user-action/select/Select.d.mts +98 -0
  275. package/dist/components/user-action/select/Select.d.ts +98 -0
  276. package/dist/components/user-action/select/Select.js +1354 -0
  277. package/dist/components/user-action/select/Select.js.map +1 -0
  278. package/dist/components/user-action/select/Select.mjs +1320 -0
  279. package/dist/components/user-action/select/Select.mjs.map +1 -0
  280. package/dist/components/utils/FocusTrap.d.mts +28 -0
  281. package/dist/components/utils/FocusTrap.d.ts +28 -0
  282. package/dist/components/utils/FocusTrap.js +252 -0
  283. package/dist/components/utils/FocusTrap.js.map +1 -0
  284. package/dist/components/utils/FocusTrap.mjs +229 -0
  285. package/dist/components/utils/FocusTrap.mjs.map +1 -0
  286. package/dist/components/utils/Transition.d.mts +26 -0
  287. package/dist/components/utils/Transition.d.ts +26 -0
  288. package/dist/components/utils/Transition.js +74 -0
  289. package/dist/components/utils/Transition.js.map +1 -0
  290. package/dist/components/utils/Transition.mjs +50 -0
  291. package/dist/components/utils/Transition.mjs.map +1 -0
  292. package/dist/hooks/focus/useFocusGuards.d.mts +3 -0
  293. package/dist/hooks/focus/useFocusGuards.d.ts +3 -0
  294. package/dist/hooks/focus/useFocusGuards.js +74 -0
  295. package/dist/hooks/focus/useFocusGuards.js.map +1 -0
  296. package/dist/hooks/focus/useFocusGuards.mjs +50 -0
  297. package/dist/hooks/focus/useFocusGuards.mjs.map +1 -0
  298. package/dist/hooks/{useFocusManagement.js → focus/useFocusManagement.js} +1 -1
  299. package/dist/hooks/focus/useFocusManagement.js.map +1 -0
  300. package/dist/hooks/{useFocusManagement.mjs → focus/useFocusManagement.mjs} +1 -1
  301. package/dist/hooks/focus/useFocusManagement.mjs.map +1 -0
  302. package/dist/hooks/{useFocusOnceVisible.js → focus/useFocusOnceVisible.js} +1 -1
  303. package/dist/hooks/focus/useFocusOnceVisible.js.map +1 -0
  304. package/dist/hooks/{useFocusOnceVisible.mjs → focus/useFocusOnceVisible.mjs} +1 -1
  305. package/dist/hooks/focus/useFocusOnceVisible.mjs.map +1 -0
  306. package/dist/hooks/focus/useFocusTrap.d.mts +16 -0
  307. package/dist/hooks/focus/useFocusTrap.d.ts +16 -0
  308. package/dist/hooks/focus/useFocusTrap.js +233 -0
  309. package/dist/hooks/focus/useFocusTrap.js.map +1 -0
  310. package/dist/hooks/focus/useFocusTrap.mjs +210 -0
  311. package/dist/hooks/focus/useFocusTrap.mjs.map +1 -0
  312. package/dist/hooks/focus/useIsMounted.d.mts +3 -0
  313. package/dist/hooks/focus/useIsMounted.d.ts +3 -0
  314. package/dist/hooks/focus/useIsMounted.js +43 -0
  315. package/dist/hooks/focus/useIsMounted.js.map +1 -0
  316. package/dist/hooks/focus/useIsMounted.mjs +20 -0
  317. package/dist/hooks/focus/useIsMounted.mjs.map +1 -0
  318. package/dist/hooks/useFloatingElement.d.mts +22 -0
  319. package/dist/hooks/useFloatingElement.d.ts +22 -0
  320. package/dist/hooks/useFloatingElement.js +162 -0
  321. package/dist/hooks/useFloatingElement.js.map +1 -0
  322. package/dist/hooks/useFloatingElement.mjs +139 -0
  323. package/dist/hooks/useFloatingElement.mjs.map +1 -0
  324. package/dist/hooks/useLocalStorage.js +2 -2
  325. package/dist/hooks/useLocalStorage.js.map +1 -1
  326. package/dist/hooks/useLocalStorage.mjs +2 -2
  327. package/dist/hooks/useLocalStorage.mjs.map +1 -1
  328. package/dist/hooks/useLogOnce.d.mts +3 -4
  329. package/dist/hooks/useLogOnce.d.ts +3 -4
  330. package/dist/hooks/useLogOnce.js +5 -5
  331. package/dist/hooks/useLogOnce.js.map +1 -1
  332. package/dist/hooks/useLogOnce.mjs +5 -5
  333. package/dist/hooks/useLogOnce.mjs.map +1 -1
  334. package/dist/hooks/useRerender.d.mts +2 -2
  335. package/dist/hooks/useRerender.d.ts +2 -2
  336. package/dist/hooks/useSearch.d.mts +2 -2
  337. package/dist/hooks/useSearch.d.ts +2 -2
  338. package/dist/hooks/useSearch.js +1 -1
  339. package/dist/hooks/useSearch.js.map +1 -1
  340. package/dist/hooks/useSearch.mjs +1 -1
  341. package/dist/hooks/useSearch.mjs.map +1 -1
  342. package/dist/localization/LanguageProvider.d.mts +2 -2
  343. package/dist/localization/LanguageProvider.d.ts +2 -2
  344. package/dist/localization/LanguageProvider.js +2 -2
  345. package/dist/localization/LanguageProvider.js.map +1 -1
  346. package/dist/localization/LanguageProvider.mjs +2 -2
  347. package/dist/localization/LanguageProvider.mjs.map +1 -1
  348. package/dist/localization/defaults/form.d.mts +1 -0
  349. package/dist/localization/defaults/form.d.ts +1 -0
  350. package/dist/localization/defaults/form.js +2 -0
  351. package/dist/localization/defaults/form.js.map +1 -1
  352. package/dist/localization/defaults/form.mjs +2 -0
  353. package/dist/localization/defaults/form.mjs.map +1 -1
  354. package/dist/localization/useTranslation.js.map +1 -1
  355. package/dist/localization/useTranslation.mjs.map +1 -1
  356. package/dist/storybook/helper.d.mts +17 -0
  357. package/dist/storybook/helper.d.ts +17 -0
  358. package/dist/storybook/helper.js +61 -0
  359. package/dist/storybook/helper.js.map +1 -0
  360. package/dist/storybook/helper.mjs +37 -0
  361. package/dist/storybook/helper.mjs.map +1 -0
  362. package/dist/{css → style}/globals.css +994 -456
  363. package/dist/{css → style}/uncompiled/globals.css +75 -13
  364. package/dist/{css → style}/uncompiled/theme/colors-component.css +18 -4
  365. package/dist/{css → style}/uncompiled/theme/colors-semantic.css +2 -9
  366. package/dist/style/uncompiled/typography.css +171 -0
  367. package/dist/{css → style}/uncompiled/utitlity/animation.css +54 -42
  368. package/dist/{css → style}/uncompiled/utitlity/index.css +2 -1
  369. package/dist/{css → style}/uncompiled/utitlity/shadow.css +5 -1
  370. package/dist/style/uncompiled/utitlity/sizing.css +29 -0
  371. package/dist/theming/useTheme.d.mts +2 -2
  372. package/dist/theming/useTheme.d.ts +2 -2
  373. package/dist/theming/useTheme.js +4 -4
  374. package/dist/theming/useTheme.js.map +1 -1
  375. package/dist/theming/useTheme.mjs +4 -4
  376. package/dist/theming/useTheme.mjs.map +1 -1
  377. package/dist/{util → utils}/array.d.mts +1 -0
  378. package/dist/{util → utils}/array.d.ts +1 -0
  379. package/dist/{util → utils}/array.js +15 -2
  380. package/dist/utils/array.js.map +1 -0
  381. package/dist/{util → utils}/array.mjs +15 -2
  382. package/dist/utils/array.mjs.map +1 -0
  383. package/dist/utils/bagFunctions.d.mts +15 -0
  384. package/dist/utils/bagFunctions.d.ts +15 -0
  385. package/dist/{util/PropsWithFunctionChildren.js → utils/bagFunctions.js} +5 -5
  386. package/dist/utils/bagFunctions.js.map +1 -0
  387. package/dist/{util/PropsWithFunctionChildren.mjs → utils/bagFunctions.mjs} +2 -2
  388. package/dist/utils/bagFunctions.mjs.map +1 -0
  389. package/dist/{util → utils}/builder.js +1 -1
  390. package/dist/utils/builder.js.map +1 -0
  391. package/dist/{util → utils}/builder.mjs +1 -1
  392. package/dist/utils/builder.mjs.map +1 -0
  393. package/dist/{util → utils}/date.js +3 -3
  394. package/dist/utils/date.js.map +1 -0
  395. package/dist/{util → utils}/date.mjs +2 -2
  396. package/dist/utils/date.mjs.map +1 -0
  397. package/dist/{util → utils}/easeFunctions.js +5 -4
  398. package/dist/utils/easeFunctions.js.map +1 -0
  399. package/dist/{util → utils}/easeFunctions.mjs +4 -3
  400. package/dist/utils/easeFunctions.mjs.map +1 -0
  401. package/dist/{util → utils}/emailValidation.js +1 -1
  402. package/dist/utils/emailValidation.js.map +1 -0
  403. package/dist/{util → utils}/emailValidation.mjs +1 -1
  404. package/dist/utils/emailValidation.mjs.map +1 -0
  405. package/dist/{util → utils}/loopingArray.js +1 -1
  406. package/dist/utils/loopingArray.js.map +1 -0
  407. package/dist/{util → utils}/loopingArray.mjs +1 -1
  408. package/dist/utils/loopingArray.mjs.map +1 -0
  409. package/dist/utils/match.d.mts +3 -0
  410. package/dist/utils/match.d.ts +3 -0
  411. package/dist/utils/match.js +32 -0
  412. package/dist/utils/match.js.map +1 -0
  413. package/dist/utils/match.mjs +8 -0
  414. package/dist/utils/match.mjs.map +1 -0
  415. package/dist/utils/math.d.mts +3 -0
  416. package/dist/utils/math.d.ts +3 -0
  417. package/dist/{util → utils}/math.js +3 -2
  418. package/dist/utils/math.js.map +1 -0
  419. package/dist/utils/math.mjs +9 -0
  420. package/dist/utils/math.mjs.map +1 -0
  421. package/dist/{util → utils}/noop.js +1 -1
  422. package/dist/utils/noop.js.map +1 -0
  423. package/dist/utils/noop.mjs +6 -0
  424. package/dist/utils/noop.mjs.map +1 -0
  425. package/dist/{util → utils}/resolveSetState.js +1 -1
  426. package/dist/utils/resolveSetState.js.map +1 -0
  427. package/dist/{util → utils}/resolveSetState.mjs +1 -1
  428. package/dist/utils/resolveSetState.mjs.map +1 -0
  429. package/dist/{util → utils}/simpleSearch.js +1 -1
  430. package/dist/utils/simpleSearch.js.map +1 -0
  431. package/dist/{util → utils}/simpleSearch.mjs +1 -1
  432. package/dist/utils/simpleSearch.mjs.map +1 -0
  433. package/dist/{util → utils}/storage.js +1 -1
  434. package/dist/utils/storage.js.map +1 -0
  435. package/dist/{util → utils}/storage.mjs +1 -1
  436. package/dist/utils/storage.mjs.map +1 -0
  437. package/dist/{util → utils}/writeToClipboard.js +2 -1
  438. package/dist/utils/writeToClipboard.js.map +1 -0
  439. package/dist/{util → utils}/writeToClipboard.mjs +3 -1
  440. package/dist/utils/writeToClipboard.mjs.map +1 -0
  441. package/package.json +8 -8
  442. package/dist/components/dialogs/ConfirmDialog.js +0 -677
  443. package/dist/components/dialogs/ConfirmDialog.js.map +0 -1
  444. package/dist/components/dialogs/ConfirmDialog.mjs +0 -641
  445. package/dist/components/dialogs/ConfirmDialog.mjs.map +0 -1
  446. package/dist/components/icons-and-geometry/Helpwave.js.map +0 -1
  447. package/dist/components/icons-and-geometry/Helpwave.mjs.map +0 -1
  448. package/dist/components/layout-and-navigation/Overlay.d.mts +0 -67
  449. package/dist/components/layout-and-navigation/Overlay.d.ts +0 -67
  450. package/dist/components/layout-and-navigation/Overlay.js +0 -705
  451. package/dist/components/layout-and-navigation/Overlay.js.map +0 -1
  452. package/dist/components/layout-and-navigation/Overlay.mjs +0 -668
  453. package/dist/components/layout-and-navigation/Overlay.mjs.map +0 -1
  454. package/dist/components/layout-and-navigation/SearchableList.d.mts +0 -24
  455. package/dist/components/layout-and-navigation/SearchableList.d.ts +0 -24
  456. package/dist/components/layout-and-navigation/SearchableList.js +0 -761
  457. package/dist/components/layout-and-navigation/SearchableList.js.map +0 -1
  458. package/dist/components/layout-and-navigation/SearchableList.mjs +0 -727
  459. package/dist/components/layout-and-navigation/SearchableList.mjs.map +0 -1
  460. package/dist/components/layout-and-navigation/Tile.d.mts +0 -27
  461. package/dist/components/layout-and-navigation/Tile.d.ts +0 -27
  462. package/dist/components/layout-and-navigation/Tile.js +0 -96
  463. package/dist/components/layout-and-navigation/Tile.js.map +0 -1
  464. package/dist/components/layout-and-navigation/Tile.mjs +0 -61
  465. package/dist/components/layout-and-navigation/Tile.mjs.map +0 -1
  466. package/dist/components/modals/ConfirmModal.d.mts +0 -33
  467. package/dist/components/modals/ConfirmModal.d.ts +0 -33
  468. package/dist/components/modals/ConfirmModal.js +0 -690
  469. package/dist/components/modals/ConfirmModal.js.map +0 -1
  470. package/dist/components/modals/ConfirmModal.mjs +0 -654
  471. package/dist/components/modals/ConfirmModal.mjs.map +0 -1
  472. package/dist/components/modals/DiscardChangesModal.d.mts +0 -20
  473. package/dist/components/modals/DiscardChangesModal.d.ts +0 -20
  474. package/dist/components/modals/DiscardChangesModal.js +0 -720
  475. package/dist/components/modals/DiscardChangesModal.js.map +0 -1
  476. package/dist/components/modals/DiscardChangesModal.mjs +0 -684
  477. package/dist/components/modals/DiscardChangesModal.mjs.map +0 -1
  478. package/dist/components/modals/InputModal.d.mts +0 -21
  479. package/dist/components/modals/InputModal.d.ts +0 -21
  480. package/dist/components/modals/InputModal.js +0 -979
  481. package/dist/components/modals/InputModal.js.map +0 -1
  482. package/dist/components/modals/InputModal.mjs +0 -943
  483. package/dist/components/modals/InputModal.mjs.map +0 -1
  484. package/dist/components/modals/LanguageModal.d.mts +0 -21
  485. package/dist/components/modals/LanguageModal.d.ts +0 -21
  486. package/dist/components/modals/LanguageModal.js +0 -1474
  487. package/dist/components/modals/LanguageModal.js.map +0 -1
  488. package/dist/components/modals/LanguageModal.mjs +0 -1438
  489. package/dist/components/modals/LanguageModal.mjs.map +0 -1
  490. package/dist/components/modals/ThemeModal.d.mts +0 -21
  491. package/dist/components/modals/ThemeModal.d.ts +0 -21
  492. package/dist/components/modals/ThemeModal.js +0 -1503
  493. package/dist/components/modals/ThemeModal.js.map +0 -1
  494. package/dist/components/modals/ThemeModal.mjs +0 -1467
  495. package/dist/components/modals/ThemeModal.mjs.map +0 -1
  496. package/dist/components/user-action/Input.d.mts +0 -77
  497. package/dist/components/user-action/Input.d.ts +0 -77
  498. package/dist/components/user-action/Input.js.map +0 -1
  499. package/dist/components/user-action/Input.mjs +0 -298
  500. package/dist/components/user-action/Input.mjs.map +0 -1
  501. package/dist/components/user-action/MultiSelect.d.mts +0 -42
  502. package/dist/components/user-action/MultiSelect.d.ts +0 -42
  503. package/dist/components/user-action/MultiSelect.js +0 -1445
  504. package/dist/components/user-action/MultiSelect.js.map +0 -1
  505. package/dist/components/user-action/MultiSelect.mjs +0 -1410
  506. package/dist/components/user-action/MultiSelect.mjs.map +0 -1
  507. package/dist/components/user-action/Select.d.mts +0 -41
  508. package/dist/components/user-action/Select.d.ts +0 -41
  509. package/dist/components/user-action/Select.js +0 -1242
  510. package/dist/components/user-action/Select.js.map +0 -1
  511. package/dist/components/user-action/Select.mjs +0 -1207
  512. package/dist/components/user-action/Select.mjs.map +0 -1
  513. package/dist/components/user-action/ToggleableInput.d.mts +0 -37
  514. package/dist/components/user-action/ToggleableInput.d.ts +0 -37
  515. package/dist/components/user-action/ToggleableInput.js +0 -192
  516. package/dist/components/user-action/ToggleableInput.js.map +0 -1
  517. package/dist/components/user-action/ToggleableInput.mjs +0 -157
  518. package/dist/components/user-action/ToggleableInput.mjs.map +0 -1
  519. package/dist/css/uncompiled/textstyles.css +0 -69
  520. package/dist/hooks/useFocusManagement.js.map +0 -1
  521. package/dist/hooks/useFocusManagement.mjs.map +0 -1
  522. package/dist/hooks/useFocusOnceVisible.js.map +0 -1
  523. package/dist/hooks/useFocusOnceVisible.mjs.map +0 -1
  524. package/dist/index.d.mts +0 -103
  525. package/dist/index.d.ts +0 -103
  526. package/dist/index.js +0 -12595
  527. package/dist/index.js.map +0 -1
  528. package/dist/index.mjs +0 -12432
  529. package/dist/index.mjs.map +0 -1
  530. package/dist/util/PropsWithFunctionChildren.d.mts +0 -14
  531. package/dist/util/PropsWithFunctionChildren.d.ts +0 -14
  532. package/dist/util/PropsWithFunctionChildren.js.map +0 -1
  533. package/dist/util/PropsWithFunctionChildren.mjs.map +0 -1
  534. package/dist/util/array.js.map +0 -1
  535. package/dist/util/array.mjs.map +0 -1
  536. package/dist/util/builder.js.map +0 -1
  537. package/dist/util/builder.mjs.map +0 -1
  538. package/dist/util/date.js.map +0 -1
  539. package/dist/util/date.mjs.map +0 -1
  540. package/dist/util/easeFunctions.js.map +0 -1
  541. package/dist/util/easeFunctions.mjs.map +0 -1
  542. package/dist/util/emailValidation.js.map +0 -1
  543. package/dist/util/emailValidation.mjs.map +0 -1
  544. package/dist/util/loopingArray.js.map +0 -1
  545. package/dist/util/loopingArray.mjs.map +0 -1
  546. package/dist/util/math.d.mts +0 -3
  547. package/dist/util/math.d.ts +0 -3
  548. package/dist/util/math.js.map +0 -1
  549. package/dist/util/math.mjs +0 -8
  550. package/dist/util/math.mjs.map +0 -1
  551. package/dist/util/news.d.mts +0 -101
  552. package/dist/util/news.d.ts +0 -101
  553. package/dist/util/news.js +0 -76
  554. package/dist/util/news.js.map +0 -1
  555. package/dist/util/news.mjs +0 -49
  556. package/dist/util/news.mjs.map +0 -1
  557. package/dist/util/noop.js.map +0 -1
  558. package/dist/util/noop.mjs +0 -6
  559. package/dist/util/noop.mjs.map +0 -1
  560. package/dist/util/resolveSetState.js.map +0 -1
  561. package/dist/util/resolveSetState.mjs.map +0 -1
  562. package/dist/util/simpleSearch.js.map +0 -1
  563. package/dist/util/simpleSearch.mjs.map +0 -1
  564. package/dist/util/storage.js.map +0 -1
  565. package/dist/util/storage.mjs.map +0 -1
  566. package/dist/util/types.d.mts +0 -3
  567. package/dist/util/types.d.ts +0 -3
  568. package/dist/util/types.js +0 -18
  569. package/dist/util/types.js.map +0 -1
  570. package/dist/util/types.mjs +0 -1
  571. package/dist/util/types.mjs.map +0 -1
  572. package/dist/util/writeToClipboard.js.map +0 -1
  573. package/dist/util/writeToClipboard.mjs.map +0 -1
  574. /package/dist/hooks/{useFocusManagement.d.mts → focus/useFocusManagement.d.mts} +0 -0
  575. /package/dist/hooks/{useFocusManagement.d.ts → focus/useFocusManagement.d.ts} +0 -0
  576. /package/dist/hooks/{useFocusOnceVisible.d.mts → focus/useFocusOnceVisible.d.mts} +0 -0
  577. /package/dist/hooks/{useFocusOnceVisible.d.ts → focus/useFocusOnceVisible.d.ts} +0 -0
  578. /package/dist/{css → style}/uncompiled/theme/colors-basic.css +0 -0
  579. /package/dist/{css → style}/uncompiled/theme/index.css +0 -0
  580. /package/dist/{css → style}/uncompiled/theme/variants.css +0 -0
  581. /package/dist/{css → style}/uncompiled/utitlity/borderradius.css +0 -0
  582. /package/dist/{css → style}/uncompiled/utitlity/general.css +0 -0
  583. /package/dist/{util → utils}/builder.d.mts +0 -0
  584. /package/dist/{util → utils}/builder.d.ts +0 -0
  585. /package/dist/{util → utils}/date.d.mts +0 -0
  586. /package/dist/{util → utils}/date.d.ts +0 -0
  587. /package/dist/{util → utils}/easeFunctions.d.mts +0 -0
  588. /package/dist/{util → utils}/easeFunctions.d.ts +0 -0
  589. /package/dist/{util → utils}/emailValidation.d.mts +0 -0
  590. /package/dist/{util → utils}/emailValidation.d.ts +0 -0
  591. /package/dist/{util → utils}/loopingArray.d.mts +0 -0
  592. /package/dist/{util → utils}/loopingArray.d.ts +0 -0
  593. /package/dist/{util → utils}/noop.d.mts +0 -0
  594. /package/dist/{util → utils}/noop.d.ts +0 -0
  595. /package/dist/{util → utils}/resolveSetState.d.mts +0 -0
  596. /package/dist/{util → utils}/resolveSetState.d.ts +0 -0
  597. /package/dist/{util → utils}/simpleSearch.d.mts +0 -0
  598. /package/dist/{util → utils}/simpleSearch.d.ts +0 -0
  599. /package/dist/{util → utils}/storage.d.mts +0 -0
  600. /package/dist/{util → utils}/storage.d.ts +0 -0
  601. /package/dist/{util → utils}/writeToClipboard.d.mts +0 -0
  602. /package/dist/{util → utils}/writeToClipboard.d.ts +0 -0
@@ -34,17 +34,669 @@ __export(Table_exports, {
34
34
  TableWithSelection: () => TableWithSelection
35
35
  });
36
36
  module.exports = __toCommonJS(Table_exports);
37
- var import_react15 = require("react");
37
+ var import_react14 = require("react");
38
+ var import_clsx9 = __toESM(require("clsx"));
39
+ var import_react_table = require("@tanstack/react-table");
38
40
 
39
- // src/components/layout-and-navigation/Pagination.tsx
41
+ // src/utils/array.ts
42
+ var defaultRangeOptions = {
43
+ allowEmptyRange: false,
44
+ stepSize: 1,
45
+ exclusiveStart: false,
46
+ exclusiveEnd: true
47
+ };
48
+ var range = (endOrRange, options) => {
49
+ const { allowEmptyRange, stepSize, exclusiveStart, exclusiveEnd } = { ...defaultRangeOptions, ...options };
50
+ let start = 0;
51
+ let end;
52
+ if (typeof endOrRange === "number") {
53
+ end = endOrRange;
54
+ } else {
55
+ start = endOrRange[0];
56
+ end = endOrRange[1];
57
+ }
58
+ if (!exclusiveEnd) {
59
+ end -= 1;
60
+ }
61
+ if (exclusiveStart) {
62
+ start += 1;
63
+ }
64
+ if (end - 1 < start) {
65
+ if (!allowEmptyRange) {
66
+ console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set options.allowEmptyRange to true`);
67
+ }
68
+ return [];
69
+ }
70
+ return Array.from({ length: end - start }, (_, index) => index * stepSize + start);
71
+ };
72
+
73
+ // src/components/table/Table.tsx
74
+ var import_react_custom_scrollbars_2 = require("react-custom-scrollbars-2");
75
+
76
+ // src/utils/math.ts
77
+ var clamp = (value, range2 = [0, 1]) => {
78
+ const [min, max] = range2;
79
+ return Math.min(Math.max(value, min), max);
80
+ };
81
+
82
+ // src/utils/noop.ts
83
+ var noop = () => void 0;
84
+
85
+ // src/components/table/TableCell.tsx
86
+ var import_clsx = require("clsx");
87
+ var import_jsx_runtime = require("react/jsx-runtime");
88
+ var TableCell = ({
89
+ children,
90
+ className
91
+ }) => {
92
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: (0, import_clsx.clsx)("block max-w-full overflow-ellipsis truncate", className), children });
93
+ };
94
+
95
+ // src/components/table/Filter.ts
96
+ var dateRange = (row, columnId, filterValue) => {
97
+ const [min, max] = filterValue;
98
+ const value = row.getValue(columnId);
99
+ const date = value instanceof Date ? value : new Date(value);
100
+ if (isNaN(date.getTime())) return false;
101
+ if (min && date < min) return false;
102
+ if (max && date > max) return false;
103
+ return true;
104
+ };
105
+ var TableFilters = {
106
+ dateRange
107
+ };
108
+
109
+ // src/hooks/useResizeCallbackWrapper.ts
110
+ var import_react = require("react");
111
+ var useResizeCallbackWrapper = (callback) => {
112
+ (0, import_react.useEffect)(() => {
113
+ window.addEventListener("resize", callback);
114
+ return () => {
115
+ window.removeEventListener("resize", callback);
116
+ };
117
+ }, [callback]);
118
+ };
119
+
120
+ // src/components/table/TableSortButton.tsx
40
121
  var import_lucide_react = require("lucide-react");
122
+
123
+ // src/components/user-action/Button.tsx
124
+ var import_react2 = require("react");
125
+ var import_clsx2 = __toESM(require("clsx"));
126
+ var import_jsx_runtime2 = require("react/jsx-runtime");
127
+ var ButtonColorUtil = {
128
+ solid: ["primary", "secondary", "tertiary", "positive", "warning", "negative", "neutral"],
129
+ text: ["primary", "negative", "neutral"],
130
+ outline: ["primary"]
131
+ };
132
+ var IconButtonUtil = {
133
+ icon: [...ButtonColorUtil.solid, "transparent"]
134
+ };
135
+ var paddingMapping = {
136
+ small: "btn-sm",
137
+ medium: "btn-md",
138
+ large: "btn-lg"
139
+ };
140
+ var iconPaddingMapping = {
141
+ tiny: "icon-btn-xs",
142
+ small: "icon-btn-sm",
143
+ medium: "icon-btn-md",
144
+ large: "icon-btn-lg"
145
+ };
146
+ var ButtonUtil = {
147
+ paddingMapping,
148
+ iconPaddingMapping
149
+ };
150
+ var SolidButton = (0, import_react2.forwardRef)(function SolidButton2({
151
+ children,
152
+ color = "primary",
153
+ size = "medium",
154
+ startIcon,
155
+ endIcon,
156
+ onClick,
157
+ className,
158
+ ...restProps
159
+ }, ref) {
160
+ const colorClasses = {
161
+ primary: "not-disabled:bg-button-solid-primary-background not-disabled:text-button-solid-primary-text",
162
+ secondary: "not-disabled:bg-button-solid-secondary-background not-disabled:text-button-solid-secondary-text",
163
+ tertiary: "not-disabled:bg-button-solid-tertiary-background not-disabled:text-button-solid-tertiary-text",
164
+ positive: "not-disabled:bg-button-solid-positive-background not-disabled:text-button-solid-positive-text",
165
+ warning: "not-disabled:bg-button-solid-warning-background not-disabled:text-button-solid-warning-text",
166
+ negative: "not-disabled:bg-button-solid-negative-background not-disabled:text-button-solid-negative-text",
167
+ neutral: "not-disabled:bg-button-solid-neutral-background not-disabled:text-button-solid-neutral-text"
168
+ }[color];
169
+ const iconColorClasses = {
170
+ primary: "not-group-disabled:text-button-solid-primary-icon",
171
+ secondary: "not-group-disabled:text-button-solid-secondary-icon",
172
+ tertiary: "not-group-disabled:text-button-solid-tertiary-icon",
173
+ positive: "not-group-disabled:text-button-solid-positive-icon",
174
+ warning: "not-group-disabled:text-button-solid-warning-icon",
175
+ negative: "not-group-disabled:text-button-solid-negative-icon",
176
+ neutral: "not-group-disabled:text-button-solid-neutral-icon"
177
+ }[color];
178
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
179
+ "button",
180
+ {
181
+ ref,
182
+ onClick,
183
+ className: (0, import_clsx2.default)(
184
+ "group font-semibold",
185
+ colorClasses,
186
+ "not-disabled:hover:brightness-90",
187
+ "disabled:text-disabled-text disabled:bg-disabled-background",
188
+ ButtonUtil.paddingMapping[size],
189
+ className
190
+ ),
191
+ ...restProps,
192
+ children: [
193
+ startIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
194
+ "span",
195
+ {
196
+ className: (0, import_clsx2.default)(
197
+ iconColorClasses,
198
+ "group-disabled:text-disabled-icon"
199
+ ),
200
+ children: startIcon
201
+ }
202
+ ),
203
+ children,
204
+ endIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
205
+ "span",
206
+ {
207
+ className: (0, import_clsx2.default)(
208
+ iconColorClasses,
209
+ "group-disabled:text-disabled-icon"
210
+ ),
211
+ children: endIcon
212
+ }
213
+ )
214
+ ]
215
+ }
216
+ );
217
+ });
218
+ var IconButton = (0, import_react2.forwardRef)(function IconButton2({
219
+ children,
220
+ color = "primary",
221
+ size = "medium",
222
+ className,
223
+ ...restProps
224
+ }, ref) {
225
+ const colorClasses = {
226
+ primary: "not-disabled:bg-button-solid-primary-background not-disabled:text-button-solid-primary-text",
227
+ secondary: "not-disabled:bg-button-solid-secondary-background not-disabled:text-button-solid-secondary-text",
228
+ tertiary: "not-disabled:bg-button-solid-tertiary-background not-disabled:text-button-solid-tertiary-text",
229
+ positive: "not-disabled:bg-button-solid-positive-background not-disabled:text-button-solid-positive-text",
230
+ warning: "not-disabled:bg-button-solid-warning-background not-disabled:text-button-solid-warning-text",
231
+ negative: "not-disabled:bg-button-solid-negative-background not-disabled:text-button-solid-negative-text",
232
+ neutral: "not-disabled:bg-button-solid-neutral-background not-disabled:text-button-solid-neutral-text",
233
+ transparent: "not-disabled:bg-transparent"
234
+ }[color];
235
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
236
+ "button",
237
+ {
238
+ ref,
239
+ className: (0, import_clsx2.default)(
240
+ colorClasses,
241
+ "not-disabled:hover:brightness-90",
242
+ "disabled:text-disabled-text",
243
+ {
244
+ "disabled:bg-disabled-background": color !== "transparent",
245
+ "disabled:opacity-70": color === "transparent",
246
+ "not-disabled:hover:bg-button-text-hover-background": color === "transparent"
247
+ },
248
+ ButtonUtil.iconPaddingMapping[size],
249
+ className
250
+ ),
251
+ ...restProps,
252
+ children
253
+ }
254
+ );
255
+ });
256
+
257
+ // src/components/table/TableSortButton.tsx
258
+ var import_clsx3 = __toESM(require("clsx"));
259
+ var import_jsx_runtime3 = require("react/jsx-runtime");
260
+ var TableSortButton = ({
261
+ sortDirection,
262
+ invert = false,
263
+ color = "neutral",
264
+ className,
265
+ ...buttonProps
266
+ }) => {
267
+ let icon = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronsUpDown, { className: "w-full h-full" });
268
+ if (sortDirection) {
269
+ let usedSortDirection = sortDirection;
270
+ if (invert) {
271
+ usedSortDirection = usedSortDirection === "desc" ? "asc" : "desc";
272
+ }
273
+ icon = usedSortDirection === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronUp, { className: "w-full h-full" }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.ChevronDown, { className: "w-full h-full" });
274
+ }
275
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
276
+ IconButton,
277
+ {
278
+ size: "tiny",
279
+ color,
280
+ className: (0, import_clsx3.default)(className),
281
+ ...buttonProps,
282
+ children: icon
283
+ }
284
+ );
285
+ };
286
+
287
+ // src/components/user-action/input/Input.tsx
288
+ var import_react5 = require("react");
41
289
  var import_clsx4 = __toESM(require("clsx"));
42
290
 
291
+ // src/hooks/useDelay.ts
292
+ var import_react3 = require("react");
293
+ var defaultOptions = {
294
+ delay: 3e3,
295
+ disabled: false
296
+ };
297
+ function useDelay(options) {
298
+ const [timer, setTimer] = (0, import_react3.useState)(void 0);
299
+ const { delay, disabled } = {
300
+ ...defaultOptions,
301
+ ...options
302
+ };
303
+ const clearTimer = () => {
304
+ clearTimeout(timer);
305
+ setTimer(void 0);
306
+ };
307
+ const restartTimer = (onDelayFinish) => {
308
+ if (disabled) {
309
+ return;
310
+ }
311
+ clearTimeout(timer);
312
+ setTimer(setTimeout(() => {
313
+ onDelayFinish();
314
+ setTimer(void 0);
315
+ }, delay));
316
+ };
317
+ (0, import_react3.useEffect)(() => {
318
+ return () => {
319
+ clearTimeout(timer);
320
+ };
321
+ }, [timer]);
322
+ (0, import_react3.useEffect)(() => {
323
+ if (disabled) {
324
+ clearTimeout(timer);
325
+ setTimer(void 0);
326
+ }
327
+ }, [disabled, timer]);
328
+ return { restartTimer, clearTimer, hasActiveTimer: !!timer };
329
+ }
330
+
331
+ // src/hooks/focus/useFocusManagement.ts
332
+ var import_react4 = require("react");
333
+ function useFocusManagement() {
334
+ const getFocusableElements = (0, import_react4.useCallback)(() => {
335
+ return Array.from(
336
+ document.querySelectorAll(
337
+ 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
338
+ )
339
+ ).filter(
340
+ (el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
341
+ );
342
+ }, []);
343
+ const getNextFocusElement = (0, import_react4.useCallback)(() => {
344
+ const elements = getFocusableElements();
345
+ if (elements.length === 0) {
346
+ return void 0;
347
+ }
348
+ let nextElement = elements[0];
349
+ if (document.activeElement instanceof HTMLElement) {
350
+ const currentIndex = elements.indexOf(document.activeElement);
351
+ nextElement = elements[(currentIndex + 1) % elements.length];
352
+ }
353
+ return nextElement;
354
+ }, [getFocusableElements]);
355
+ const focusNext = (0, import_react4.useCallback)(() => {
356
+ const nextElement = getNextFocusElement();
357
+ nextElement?.focus();
358
+ }, [getNextFocusElement]);
359
+ const getPreviousFocusElement = (0, import_react4.useCallback)(() => {
360
+ const elements = getFocusableElements();
361
+ if (elements.length === 0) {
362
+ return void 0;
363
+ }
364
+ let previousElement = elements[0];
365
+ if (document.activeElement instanceof HTMLElement) {
366
+ const currentIndex = elements.indexOf(document.activeElement);
367
+ if (currentIndex === 0) {
368
+ previousElement = elements[elements.length - 1];
369
+ } else {
370
+ previousElement = elements[currentIndex - 1];
371
+ }
372
+ }
373
+ return previousElement;
374
+ }, [getFocusableElements]);
375
+ const focusPrevious = (0, import_react4.useCallback)(() => {
376
+ const previousElement = getPreviousFocusElement();
377
+ if (previousElement) previousElement.focus();
378
+ }, [getPreviousFocusElement]);
379
+ return {
380
+ getFocusableElements,
381
+ getNextFocusElement,
382
+ getPreviousFocusElement,
383
+ focusNext,
384
+ focusPrevious
385
+ };
386
+ }
387
+
388
+ // src/components/user-action/input/Input.tsx
389
+ var import_jsx_runtime4 = require("react/jsx-runtime");
390
+ var defaultEditCompleteOptions = {
391
+ allowEnterComplete: false,
392
+ onBlur: true,
393
+ afterDelay: true,
394
+ delay: 2500
395
+ };
396
+ var Input = (0, import_react5.forwardRef)(function Input2({
397
+ value,
398
+ onChange,
399
+ onChangeText,
400
+ onEditCompleted,
401
+ editCompleteOptions,
402
+ disabled = false,
403
+ invalid = false,
404
+ defaultStyle = true,
405
+ className,
406
+ ...props
407
+ }, forwardedRef) {
408
+ const {
409
+ onBlur: allowEditCompleteOnBlur,
410
+ afterDelay,
411
+ delay,
412
+ allowEnterComplete
413
+ } = { ...defaultEditCompleteOptions, ...editCompleteOptions };
414
+ const {
415
+ restartTimer,
416
+ clearTimer
417
+ } = useDelay({ delay, disabled: !afterDelay });
418
+ const innerRef = (0, import_react5.useRef)(null);
419
+ (0, import_react5.useImperativeHandle)(forwardedRef, () => innerRef.current);
420
+ const { focusNext } = useFocusManagement();
421
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
422
+ "input",
423
+ {
424
+ ...props,
425
+ ref: innerRef,
426
+ value,
427
+ disabled,
428
+ className: defaultStyle ? (0, import_clsx4.default)(
429
+ "px-2.5 py-1.75 rounded-md border-1 text-sm",
430
+ {
431
+ "bg-input-background text-input-text hover:border-primary focus:border-primary": !disabled && !invalid,
432
+ "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover focus-visible:ring-negative-border": !disabled && invalid,
433
+ "bg-disabled-background text-disabled-text border-disabled-border": disabled
434
+ },
435
+ className
436
+ ) : className,
437
+ onKeyDown: (event) => {
438
+ props.onKeyDown?.(event);
439
+ if (!allowEnterComplete) {
440
+ return;
441
+ }
442
+ if (event.key === "Enter" && !event.shiftKey) {
443
+ event.preventDefault();
444
+ innerRef.current?.blur();
445
+ onEditCompleted?.(event.target.value);
446
+ focusNext();
447
+ }
448
+ },
449
+ onBlur: (event) => {
450
+ props.onBlur?.(event);
451
+ if (allowEditCompleteOnBlur) {
452
+ onEditCompleted?.(event.target.value);
453
+ clearTimer();
454
+ }
455
+ },
456
+ onChange: (event) => {
457
+ onChange?.(event);
458
+ const value2 = event.target.value;
459
+ restartTimer(() => {
460
+ innerRef.current?.blur();
461
+ onEditCompleted?.(value2);
462
+ });
463
+ onChangeText?.(value2);
464
+ },
465
+ "aria-invalid": props["aria-invalid"] ?? invalid,
466
+ "aria-disabled": props["aria-disabled"] ?? disabled
467
+ }
468
+ );
469
+ });
470
+
471
+ // src/components/table/TableFilterButton.tsx
472
+ var import_lucide_react2 = require("lucide-react");
473
+
474
+ // src/components/user-action/Menu.tsx
475
+ var import_react8 = require("react");
476
+ var import_clsx5 = __toESM(require("clsx"));
477
+
478
+ // src/hooks/useOutsideClick.ts
479
+ var import_react6 = require("react");
480
+ var useOutsideClick = (refs, handler) => {
481
+ (0, import_react6.useEffect)(() => {
482
+ const listener = (event) => {
483
+ if (event.target === null) return;
484
+ if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
485
+ return;
486
+ }
487
+ handler();
488
+ };
489
+ document.addEventListener("mousedown", listener);
490
+ document.addEventListener("touchstart", listener);
491
+ return () => {
492
+ document.removeEventListener("mousedown", listener);
493
+ document.removeEventListener("touchstart", listener);
494
+ };
495
+ }, [refs, handler]);
496
+ };
497
+
498
+ // src/hooks/useHoverState.ts
499
+ var import_react7 = require("react");
500
+ var defaultUseHoverStateProps = {
501
+ closingDelay: 200,
502
+ isDisabled: false
503
+ };
504
+ var useHoverState = (props = void 0) => {
505
+ const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
506
+ const [isHovered, setIsHovered] = (0, import_react7.useState)(false);
507
+ const [timer, setTimer] = (0, import_react7.useState)();
508
+ const onMouseEnter = () => {
509
+ if (isDisabled) {
510
+ return;
511
+ }
512
+ clearTimeout(timer);
513
+ setIsHovered(true);
514
+ };
515
+ const onMouseLeave = () => {
516
+ if (isDisabled) {
517
+ return;
518
+ }
519
+ setTimer(setTimeout(() => {
520
+ setIsHovered(false);
521
+ }, closingDelay));
522
+ };
523
+ (0, import_react7.useEffect)(() => {
524
+ if (timer) {
525
+ return () => {
526
+ clearTimeout(timer);
527
+ };
528
+ }
529
+ });
530
+ (0, import_react7.useEffect)(() => {
531
+ if (timer) {
532
+ clearTimeout(timer);
533
+ }
534
+ }, [isDisabled]);
535
+ return {
536
+ isHovered,
537
+ setIsHovered,
538
+ handlers: { onMouseEnter, onMouseLeave }
539
+ };
540
+ };
541
+
542
+ // src/utils/bagFunctions.ts
543
+ var resolve = (children, bag) => {
544
+ if (typeof children === "function") {
545
+ return children(bag);
546
+ }
547
+ return children ?? void 0;
548
+ };
549
+ var BagFunctionUtil = {
550
+ resolve
551
+ };
552
+
553
+ // src/hooks/usePopoverPosition.ts
554
+ var defaultPopoverPositionOptions = {
555
+ edgePadding: 16,
556
+ outerGap: 4,
557
+ horizontalAlignment: "leftInside",
558
+ verticalAlignment: "bottomOutside",
559
+ disabled: false
560
+ };
561
+ var usePopoverPosition = (trigger, options) => {
562
+ const {
563
+ edgePadding,
564
+ outerGap,
565
+ verticalAlignment,
566
+ horizontalAlignment,
567
+ disabled
568
+ } = { ...defaultPopoverPositionOptions, ...options };
569
+ if (disabled || !trigger) {
570
+ return {};
571
+ }
572
+ const left = {
573
+ leftOutside: trigger.left - outerGap,
574
+ leftInside: trigger.left,
575
+ rightOutside: trigger.right + outerGap,
576
+ rightInside: trigger.right,
577
+ center: trigger.left + trigger.width / 2
578
+ }[horizontalAlignment];
579
+ const top = {
580
+ topOutside: trigger.top - outerGap,
581
+ topInside: trigger.top,
582
+ bottomOutside: trigger.bottom + outerGap,
583
+ bottomInside: trigger.bottom,
584
+ center: trigger.top + trigger.height / 2
585
+ }[verticalAlignment];
586
+ const translateX = {
587
+ leftOutside: "-100%",
588
+ leftInside: void 0,
589
+ rightOutside: void 0,
590
+ rightInside: "-100%",
591
+ center: "-50%"
592
+ }[horizontalAlignment];
593
+ const translateY = {
594
+ topOutside: "-100%",
595
+ topInside: void 0,
596
+ bottomOutside: void 0,
597
+ bottomInside: "-100%",
598
+ center: "-50%"
599
+ }[verticalAlignment];
600
+ return {
601
+ left: Math.max(left, edgePadding),
602
+ top: Math.max(top, edgePadding),
603
+ translate: [translateX ?? "0", translateY ?? "0"].join(" ")
604
+ };
605
+ };
606
+
607
+ // src/components/user-action/Menu.tsx
608
+ var import_react_dom = require("react-dom");
609
+ var import_jsx_runtime5 = require("react/jsx-runtime");
610
+ function getScrollableParents(element) {
611
+ const scrollables = [];
612
+ let parent = element.parentElement;
613
+ while (parent) {
614
+ scrollables.push(parent);
615
+ parent = parent.parentElement;
616
+ }
617
+ return scrollables;
618
+ }
619
+ var Menu = ({
620
+ trigger,
621
+ children,
622
+ alignmentHorizontal = "leftInside",
623
+ alignmentVertical = "bottomOutside",
624
+ showOnHover = false,
625
+ disabled = false,
626
+ menuClassName = ""
627
+ }) => {
628
+ const { isHovered: isOpen, setIsHovered: setIsOpen } = useHoverState({ isDisabled: !showOnHover || disabled });
629
+ const triggerRef = (0, import_react8.useRef)(null);
630
+ const menuRef = (0, import_react8.useRef)(null);
631
+ useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
632
+ const [isHidden, setIsHidden] = (0, import_react8.useState)(true);
633
+ const bag = {
634
+ isOpen,
635
+ close: () => setIsOpen(false),
636
+ toggleOpen: () => setIsOpen((prevState) => !prevState),
637
+ disabled
638
+ };
639
+ const menuPosition = usePopoverPosition(
640
+ triggerRef.current?.getBoundingClientRect(),
641
+ { verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
642
+ );
643
+ (0, import_react8.useEffect)(() => {
644
+ if (!isOpen) return;
645
+ const triggerEl = triggerRef.current;
646
+ if (!triggerEl) return;
647
+ const scrollableParents = getScrollableParents(triggerEl);
648
+ const close = () => setIsOpen(false);
649
+ scrollableParents.forEach((parent) => {
650
+ parent.addEventListener("scroll", close);
651
+ });
652
+ window.addEventListener("resize", close);
653
+ return () => {
654
+ scrollableParents.forEach((parent) => {
655
+ parent.removeEventListener("scroll", close);
656
+ });
657
+ window.removeEventListener("resize", close);
658
+ };
659
+ }, [isOpen, setIsOpen]);
660
+ (0, import_react8.useEffect)(() => {
661
+ if (isOpen) {
662
+ setIsHidden(false);
663
+ }
664
+ }, [isOpen]);
665
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
666
+ trigger(bag, triggerRef),
667
+ (0, import_react_dom.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
668
+ "div",
669
+ {
670
+ ref: menuRef,
671
+ onClick: (e) => e.stopPropagation(),
672
+ className: (0, import_clsx5.default)(
673
+ "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg shadow-strong z-[300]",
674
+ {
675
+ "animate-pop-in": isOpen,
676
+ "animate-pop-out": !isOpen,
677
+ "hidden": isHidden
678
+ },
679
+ menuClassName
680
+ ),
681
+ onAnimationEnd: () => {
682
+ if (!isOpen) {
683
+ setIsHidden(true);
684
+ }
685
+ },
686
+ style: {
687
+ ...menuPosition
688
+ },
689
+ children: BagFunctionUtil.resolve(children, bag)
690
+ }
691
+ ), document.body)
692
+ ] });
693
+ };
694
+
43
695
  // src/localization/LanguageProvider.tsx
44
- var import_react2 = require("react");
696
+ var import_react10 = require("react");
45
697
 
46
698
  // src/hooks/useLocalStorage.ts
47
- var import_react = require("react");
699
+ var import_react9 = require("react");
48
700
 
49
701
  // src/localization/util.ts
50
702
  var languages = ["en", "de"];
@@ -60,12 +712,12 @@ var LanguageUtil = {
60
712
  };
61
713
 
62
714
  // src/localization/LanguageProvider.tsx
63
- var import_jsx_runtime = require("react/jsx-runtime");
64
- var LanguageContext = (0, import_react2.createContext)({
715
+ var import_jsx_runtime6 = require("react/jsx-runtime");
716
+ var LanguageContext = (0, import_react10.createContext)({
65
717
  language: LanguageUtil.DEFAULT_LANGUAGE,
66
718
  setLanguage: (v) => v
67
719
  });
68
- var useLanguage = () => (0, import_react2.useContext)(LanguageContext);
720
+ var useLanguage = () => (0, import_react10.useContext)(LanguageContext);
69
721
 
70
722
  // src/localization/useTranslation.ts
71
723
  var TranslationPluralCount = {
@@ -163,6 +815,7 @@ var formTranslation = {
163
815
  next: "Next",
164
816
  no: "No",
165
817
  none: "None",
818
+ nothingFound: "Nothing found",
166
819
  of: "of",
167
820
  optional: "Optional",
168
821
  pleaseWait: "Please wait...",
@@ -219,448 +872,174 @@ var formTranslation = {
219
872
  next: "Weiter",
220
873
  no: "Nein",
221
874
  none: "Nichts",
875
+ nothingFound: "Nichts gefunden",
222
876
  of: "von",
223
877
  optional: "Optional",
224
878
  pleaseWait: "Bitte warten...",
225
879
  previous: "Vorherige",
226
- remove: "Entfernen",
227
- required: "Erforderlich",
228
- reset: "Zur\xFCcksetzen",
229
- save: "Speichern",
230
- saved: "Gespeichert",
231
- search: "Suche",
232
- select: "Select",
233
- selectOption: "Option ausw\xE4hlen",
234
- show: "Anzeigen",
235
- showMore: "Mehr anzeigen",
236
- showLess: "Weniger anzeigen",
237
- submit: "Abschicken",
238
- success: "Erfolg",
239
- update: "Update",
240
- unsavedChanges: "Ungespeicherte \xC4nderungen",
241
- unsavedChangesSaveQuestion: "M\xF6chtest du die \xC4nderungen speichern?",
242
- yes: "Ja"
243
- }
244
- };
245
-
246
- // src/components/user-action/Input.tsx
247
- var import_react6 = require("react");
248
- var import_clsx2 = __toESM(require("clsx"));
249
-
250
- // src/hooks/useDelay.ts
251
- var import_react3 = require("react");
252
- var defaultOptions = {
253
- delay: 3e3,
254
- disabled: false
255
- };
256
- function useDelay(options) {
257
- const [timer, setTimer] = (0, import_react3.useState)(void 0);
258
- const { delay, disabled } = {
259
- ...defaultOptions,
260
- ...options
261
- };
262
- const clearTimer = () => {
263
- clearTimeout(timer);
264
- setTimer(void 0);
265
- };
266
- const restartTimer = (onDelayFinish) => {
267
- if (disabled) {
268
- return;
269
- }
270
- clearTimeout(timer);
271
- setTimer(setTimeout(() => {
272
- onDelayFinish();
273
- setTimer(void 0);
274
- }, delay));
275
- };
276
- (0, import_react3.useEffect)(() => {
277
- return () => {
278
- clearTimeout(timer);
279
- };
280
- }, [timer]);
281
- (0, import_react3.useEffect)(() => {
282
- if (disabled) {
283
- clearTimeout(timer);
284
- setTimer(void 0);
285
- }
286
- }, [disabled, timer]);
287
- return { restartTimer, clearTimer, hasActiveTimer: !!timer };
288
- }
289
-
290
- // src/util/noop.ts
291
- var noop = () => void 0;
292
-
293
- // src/components/user-action/Label.tsx
294
- var import_clsx = __toESM(require("clsx"));
295
- var import_jsx_runtime2 = require("react/jsx-runtime");
296
- var styleMapping = {
297
- labelSmall: "textstyle-label-sm",
298
- labelMedium: "textstyle-label-md",
299
- labelBig: "textstyle-label-lg"
300
- };
301
- var Label = ({
302
- children,
303
- name,
304
- labelType = "labelSmall",
305
- className,
306
- ...props
307
- }) => {
308
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { ...props, className: (0, import_clsx.default)(styleMapping[labelType], className), children: children ? children : name });
309
- };
310
-
311
- // src/hooks/useFocusManagement.ts
312
- var import_react4 = require("react");
313
- function useFocusManagement() {
314
- const getFocusableElements = (0, import_react4.useCallback)(() => {
315
- return Array.from(
316
- document.querySelectorAll(
317
- 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
318
- )
319
- ).filter(
320
- (el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
321
- );
322
- }, []);
323
- const getNextFocusElement = (0, import_react4.useCallback)(() => {
324
- const elements = getFocusableElements();
325
- if (elements.length === 0) {
326
- return void 0;
327
- }
328
- let nextElement = elements[0];
329
- if (document.activeElement instanceof HTMLElement) {
330
- const currentIndex = elements.indexOf(document.activeElement);
331
- nextElement = elements[(currentIndex + 1) % elements.length];
332
- }
333
- return nextElement;
334
- }, [getFocusableElements]);
335
- const focusNext = (0, import_react4.useCallback)(() => {
336
- const nextElement = getNextFocusElement();
337
- nextElement?.focus();
338
- }, [getNextFocusElement]);
339
- const getPreviousFocusElement = (0, import_react4.useCallback)(() => {
340
- const elements = getFocusableElements();
341
- if (elements.length === 0) {
342
- return void 0;
343
- }
344
- let previousElement = elements[0];
345
- if (document.activeElement instanceof HTMLElement) {
346
- const currentIndex = elements.indexOf(document.activeElement);
347
- if (currentIndex === 0) {
348
- previousElement = elements[elements.length - 1];
349
- } else {
350
- previousElement = elements[currentIndex - 1];
351
- }
352
- }
353
- return previousElement;
354
- }, [getFocusableElements]);
355
- const focusPrevious = (0, import_react4.useCallback)(() => {
356
- const previousElement = getPreviousFocusElement();
357
- if (previousElement) previousElement.focus();
358
- }, [getPreviousFocusElement]);
359
- return {
360
- getFocusableElements,
361
- getNextFocusElement,
362
- getPreviousFocusElement,
363
- focusNext,
364
- focusPrevious
365
- };
366
- }
367
-
368
- // src/hooks/useFocusOnceVisible.ts
369
- var import_react5 = __toESM(require("react"));
370
- var useFocusOnceVisible = (ref, disable = false) => {
371
- const [hasUsedFocus, setHasUsedFocus] = import_react5.default.useState(false);
372
- (0, import_react5.useEffect)(() => {
373
- if (disable || hasUsedFocus) {
374
- return;
375
- }
376
- const observer = new IntersectionObserver(([entry]) => {
377
- if (entry.isIntersecting && !hasUsedFocus) {
378
- ref.current?.focus();
379
- setHasUsedFocus(hasUsedFocus);
380
- }
381
- }, {
382
- threshold: 0.1
383
- });
384
- if (ref.current) {
385
- observer.observe(ref.current);
386
- }
387
- return () => observer.disconnect();
388
- }, [disable, hasUsedFocus, ref]);
389
- };
390
-
391
- // src/components/user-action/Input.tsx
392
- var import_jsx_runtime3 = require("react/jsx-runtime");
393
- var getInputClassName = ({ disabled = false, hasError = false }) => {
394
- return (0, import_clsx2.default)(
395
- "px-2 py-1.5 rounded-md border-2",
396
- {
397
- "bg-input-background text-input-text hover:border-primary focus:border-primary": !disabled && !hasError,
398
- "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover": !disabled && hasError,
399
- "bg-disabled-background text-disabled-text border-disabled-border": disabled
400
- }
401
- );
402
- };
403
- var defaultEditCompleteOptions = {
404
- onBlur: true,
405
- afterDelay: true,
406
- delay: 2500
407
- };
408
- var Input = (0, import_react6.forwardRef)(function Input2({
409
- id,
410
- type = "text",
411
- value,
412
- label,
413
- onChange = noop,
414
- onChangeText = noop,
415
- onEditCompleted,
416
- className = "",
417
- allowEnterComplete = true,
418
- expanded = true,
419
- autoFocus = false,
420
- onBlur,
421
- editCompleteOptions,
422
- containerClassName,
423
- disabled,
424
- ...restProps
425
- }, forwardedRef) {
426
- const { onBlur: allowEditCompleteOnBlur, afterDelay, delay } = { ...defaultEditCompleteOptions, ...editCompleteOptions };
427
- const {
428
- restartTimer,
429
- clearTimer
430
- } = useDelay({ delay, disabled: !afterDelay });
431
- const innerRef = (0, import_react6.useRef)(null);
432
- const { focusNext } = useFocusManagement();
433
- useFocusOnceVisible(innerRef, !autoFocus);
434
- (0, import_react6.useImperativeHandle)(forwardedRef, () => innerRef.current);
435
- const handleKeyDown = (e) => {
436
- if (e.key === "Enter" && !e.shiftKey) {
437
- e.preventDefault();
438
- innerRef.current?.blur();
439
- focusNext();
440
- }
441
- };
442
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx2.default)({ "w-full": expanded }, containerClassName), children: [
443
- label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Label, { ...label, htmlFor: id, className: (0, import_clsx2.default)("mb-1", label.className) }),
444
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
445
- "input",
446
- {
447
- ...restProps,
448
- ref: innerRef,
449
- value,
450
- id,
451
- type,
452
- disabled,
453
- className: (0, import_clsx2.default)(getInputClassName({ disabled }), className),
454
- onKeyDown: allowEnterComplete ? handleKeyDown : void 0,
455
- onBlur: (event) => {
456
- onBlur?.(event);
457
- if (onEditCompleted && allowEditCompleteOnBlur) {
458
- onEditCompleted(event.target.value);
459
- clearTimer();
460
- }
461
- },
462
- onChange: (e) => {
463
- const value2 = e.target.value;
464
- if (onEditCompleted) {
465
- restartTimer(() => {
466
- if (innerRef.current) {
467
- innerRef.current.blur();
468
- if (!allowEditCompleteOnBlur) {
469
- onEditCompleted(value2);
470
- }
471
- } else {
472
- onEditCompleted(value2);
473
- }
474
- });
475
- }
476
- onChange(e);
477
- onChangeText(value2);
478
- }
479
- }
480
- )
481
- ] });
482
- });
483
- var FormInput = (0, import_react6.forwardRef)(function FormInput2({
484
- id,
485
- labelText,
486
- errorText,
487
- className,
488
- labelClassName,
489
- errorClassName,
490
- containerClassName,
491
- required,
492
- disabled,
493
- ...restProps
494
- }, ref) {
495
- const input = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
496
- "input",
497
- {
498
- ...restProps,
499
- ref,
500
- id,
501
- disabled,
502
- className: (0, import_clsx2.default)(
503
- getInputClassName({ disabled, hasError: !!errorText }),
504
- className
505
- )
506
- }
507
- );
508
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: (0, import_clsx2.default)("flex flex-col gap-y-1", containerClassName), children: [
509
- labelText && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("label", { htmlFor: id, className: (0, import_clsx2.default)("textstyle-label-md", labelClassName), children: [
510
- labelText,
511
- required && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "text-primary font-bold", children: "*" })
512
- ] }),
513
- input,
514
- errorText && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { htmlFor: id, className: (0, import_clsx2.default)("text-negative", errorClassName), children: errorText })
515
- ] });
516
- });
517
-
518
- // src/util/math.ts
519
- var clamp = (value, min = 0, max = 1) => {
520
- return Math.min(Math.max(value, min), max);
521
- };
522
-
523
- // src/components/layout-and-navigation/Pagination.tsx
524
- var import_react8 = require("react");
525
-
526
- // src/components/user-action/Button.tsx
527
- var import_react7 = require("react");
528
- var import_clsx3 = __toESM(require("clsx"));
529
- var import_jsx_runtime4 = require("react/jsx-runtime");
530
- var ButtonColorUtil = {
531
- solid: ["primary", "secondary", "tertiary", "positive", "warning", "negative", "neutral"],
532
- text: ["primary", "negative", "neutral"],
533
- outline: ["primary"]
534
- };
535
- var IconButtonUtil = {
536
- icon: [...ButtonColorUtil.solid, "transparent"]
537
- };
538
- var paddingMapping = {
539
- small: "btn-sm",
540
- medium: "btn-md",
541
- large: "btn-lg"
542
- };
543
- var iconPaddingMapping = {
544
- tiny: "icon-btn-xs",
545
- small: "icon-btn-sm",
546
- medium: "icon-btn-md",
547
- large: "icon-btn-lg"
880
+ remove: "Entfernen",
881
+ required: "Erforderlich",
882
+ reset: "Zur\xFCcksetzen",
883
+ save: "Speichern",
884
+ saved: "Gespeichert",
885
+ search: "Suche",
886
+ select: "Select",
887
+ selectOption: "Option ausw\xE4hlen",
888
+ show: "Anzeigen",
889
+ showMore: "Mehr anzeigen",
890
+ showLess: "Weniger anzeigen",
891
+ submit: "Abschicken",
892
+ success: "Erfolg",
893
+ update: "Update",
894
+ unsavedChanges: "Ungespeicherte \xC4nderungen",
895
+ unsavedChangesSaveQuestion: "M\xF6chtest du die \xC4nderungen speichern?",
896
+ yes: "Ja"
897
+ }
548
898
  };
549
- var ButtonUtil = {
550
- paddingMapping,
551
- iconPaddingMapping
899
+
900
+ // src/components/table/TableFilterButton.tsx
901
+ var import_react11 = require("react");
902
+ var import_jsx_runtime7 = require("react/jsx-runtime");
903
+ var defaultTableFilterTranslation = {
904
+ en: {
905
+ filter: "Filter",
906
+ min: "Min",
907
+ max: "Max",
908
+ startDate: "Start",
909
+ endDate: "End",
910
+ text: "Text..."
911
+ },
912
+ de: {
913
+ filter: "Filter",
914
+ min: "Min",
915
+ max: "Max",
916
+ startDate: "Start",
917
+ endDate: "Ende",
918
+ text: "Text..."
919
+ }
552
920
  };
553
- var SolidButton = (0, import_react7.forwardRef)(function SolidButton2({
554
- children,
555
- disabled = false,
556
- color = "primary",
557
- size = "medium",
558
- startIcon,
559
- endIcon,
560
- onClick,
561
- className,
562
- ...restProps
563
- }, ref) {
564
- const colorClasses = {
565
- primary: "bg-button-solid-primary-background text-button-solid-primary-text",
566
- secondary: "bg-button-solid-secondary-background text-button-solid-secondary-text",
567
- tertiary: "bg-button-solid-tertiary-background text-button-solid-tertiary-text",
568
- positive: "bg-button-solid-positive-background text-button-solid-positive-text",
569
- warning: "bg-button-solid-warning-background text-button-solid-warning-text",
570
- negative: "bg-button-solid-negative-background text-button-solid-negative-text",
571
- neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text"
572
- }[color];
573
- const iconColorClasses = {
574
- primary: "text-button-solid-primary-icon",
575
- secondary: "text-button-solid-secondary-icon",
576
- tertiary: "text-button-solid-tertiary-icon",
577
- positive: "text-button-solid-positive-icon",
578
- warning: "text-button-solid-warning-icon",
579
- negative: "text-button-solid-negative-icon",
580
- neutral: "text-button-solid-neutral-icon"
581
- }[color];
582
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
583
- "button",
921
+ var TableFilterButton = ({
922
+ filterType,
923
+ column
924
+ }) => {
925
+ const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
926
+ const columnFilterValue = column.getFilterValue();
927
+ const [filterValue, setFilterValue] = (0, import_react11.useState)(columnFilterValue);
928
+ const hasFilter = !!filterValue;
929
+ (0, import_react11.useEffect)(() => {
930
+ setFilterValue(columnFilterValue);
931
+ }, [columnFilterValue]);
932
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
933
+ Menu,
584
934
  {
585
- ref,
586
- onClick,
587
- disabled,
588
- className: (0, import_clsx3.default)(
589
- "font-semibold",
590
- {
591
- "text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
592
- [(0, import_clsx3.default)(colorClasses, "hover:brightness-90")]: !disabled
593
- },
594
- ButtonUtil.paddingMapping[size],
595
- className
596
- ),
597
- ...restProps,
598
- children: [
599
- startIcon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
600
- "span",
935
+ trigger: ({ toggleOpen }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { ref, className: "relative", children: [
936
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(IconButton, { color: "neutral", size: "tiny", onClick: toggleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react2.FilterIcon, {}) }),
937
+ hasFilter && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
938
+ "div",
601
939
  {
602
- className: (0, import_clsx3.default)({
603
- [iconColorClasses]: !disabled,
604
- [`text-disabled-icon`]: disabled
605
- }),
606
- children: startIcon
940
+ className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-primary pointer-events-none",
941
+ "aria-hidden": true
607
942
  }
608
- ),
609
- children,
610
- endIcon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
611
- "span",
943
+ )
944
+ ] }),
945
+ children: ({ close }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex-col-1 p-2 items-start font-normal text-menu-text", children: [
946
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("h4", { className: "typography-label-md-semibold", children: translation("filter") }),
947
+ filterType === "text" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
948
+ Input,
612
949
  {
613
- className: (0, import_clsx3.default)({
614
- [iconColorClasses]: !disabled,
615
- [`text-disabled-icon`]: disabled
616
- }),
617
- children: endIcon
950
+ value: filterValue ?? "",
951
+ autoFocus: true,
952
+ placeholder: translation("text"),
953
+ onChangeText: setFilterValue,
954
+ className: "h-10"
618
955
  }
619
- )
620
- ]
956
+ ),
957
+ filterType === "range" && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex-row-2 items-center", children: [
958
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
959
+ Input,
960
+ {
961
+ value: filterValue?.[0] ?? "",
962
+ type: "number",
963
+ placeholder: translation("min"),
964
+ onChangeText: (text) => {
965
+ const num = Number(text);
966
+ setFilterValue((old) => [num, old?.[1]]);
967
+ },
968
+ className: "h-10 input-indicator-hidden w-40"
969
+ }
970
+ ),
971
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "font-bold", children: "-" }),
972
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
973
+ Input,
974
+ {
975
+ value: filterValue?.[1] ?? "",
976
+ type: "number",
977
+ placeholder: translation("max"),
978
+ onChangeText: (text) => {
979
+ const num = Number(text);
980
+ setFilterValue((old) => [old?.[0], num]);
981
+ },
982
+ className: "h-10 input-indicator-hidden w-40"
983
+ }
984
+ )
985
+ ] }),
986
+ filterType === "dateRange" && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
987
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
988
+ Input,
989
+ {
990
+ value: filterValue?.[0] ? filterValue?.[0].toISOString().slice(0, 16) : "",
991
+ type: "datetime-local",
992
+ placeholder: translation("startDate"),
993
+ onChangeText: (text) => {
994
+ const value = new Date(text);
995
+ setFilterValue((old) => [value, old?.[1]]);
996
+ },
997
+ className: "h-10 w-50"
998
+ }
999
+ ),
1000
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1001
+ Input,
1002
+ {
1003
+ value: filterValue?.[1] ? filterValue?.[1].toISOString().slice(0, 16) : "",
1004
+ type: "datetime-local",
1005
+ placeholder: translation("endDate"),
1006
+ onChangeText: (text) => {
1007
+ const value = new Date(text);
1008
+ setFilterValue((old) => [old?.[0], value]);
1009
+ },
1010
+ className: "h-10 w-50"
1011
+ }
1012
+ )
1013
+ ] }),
1014
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex-row-2 justify-end w-full", children: [
1015
+ hasFilter && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SolidButton, { color: "negative", size: "small", onClick: () => {
1016
+ column.setFilterValue(void 0);
1017
+ close();
1018
+ }, children: translation("remove") }),
1019
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SolidButton, { size: "small", onClick: () => {
1020
+ column.setFilterValue(filterValue);
1021
+ close();
1022
+ }, children: translation("apply") })
1023
+ ] })
1024
+ ] })
621
1025
  }
622
1026
  );
623
- });
624
- var IconButton = ({
625
- children,
626
- disabled = false,
627
- color = "primary",
628
- size = "medium",
629
- className,
630
- ...restProps
1027
+ };
1028
+
1029
+ // src/components/table/FillerRowElement.tsx
1030
+ var import_clsx6 = require("clsx");
1031
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1032
+ var FillerRowElement = ({
1033
+ className
631
1034
  }) => {
632
- const colorClasses = {
633
- primary: "bg-button-solid-primary-background text-button-solid-primary-text",
634
- secondary: "bg-button-solid-secondary-background text-button-solid-secondary-text",
635
- tertiary: "bg-button-solid-tertiary-background text-button-solid-tertiary-text",
636
- positive: "bg-button-solid-positive-background text-button-solid-positive-text",
637
- warning: "bg-button-solid-warning-background text-button-solid-warning-text",
638
- negative: "bg-button-solid-negative-background text-button-solid-negative-text",
639
- neutral: "bg-button-solid-neutral-background text-button-solid-neutral-text",
640
- transparent: "bg-transparent"
641
- }[color];
642
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
643
- "button",
644
- {
645
- disabled,
646
- className: (0, import_clsx3.default)(
647
- {
648
- "text-disabled-text bg-disabled-background cursor-not-allowed": disabled && color !== "transparent",
649
- "text-disabled-text cursor-not-allowed opacity-70": disabled && color === "transparent",
650
- "hover:bg-button-text-hover-background": !disabled && color === "transparent",
651
- [(0, import_clsx3.default)(colorClasses, "hover:brightness-90")]: !disabled
652
- },
653
- ButtonUtil.iconPaddingMapping[size],
654
- className
655
- ),
656
- ...restProps,
657
- children
658
- }
659
- );
1035
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: (0, import_clsx6.clsx)("flex flex-row items-center w-1/2 h-4 text-disabled-text font-bold", className), children: "-" });
660
1036
  };
661
1037
 
662
1038
  // src/components/layout-and-navigation/Pagination.tsx
663
- var import_jsx_runtime5 = require("react/jsx-runtime");
1039
+ var import_lucide_react3 = require("lucide-react");
1040
+ var import_clsx7 = __toESM(require("clsx"));
1041
+ var import_react12 = require("react");
1042
+ var import_jsx_runtime9 = require("react/jsx-runtime");
664
1043
  var Pagination = ({
665
1044
  overwriteTranslation,
666
1045
  pageIndex,
@@ -670,11 +1049,11 @@ var Pagination = ({
670
1049
  style
671
1050
  }) => {
672
1051
  const translation = useTranslation([formTranslation], overwriteTranslation);
673
- const [value, setValue] = (0, import_react8.useState)((pageIndex + 1).toString());
1052
+ const [value, setValue] = (0, import_react12.useState)((pageIndex + 1).toString());
674
1053
  const noPages = pageCount === 0;
675
1054
  const onFirstPage = pageIndex === 0 && !noPages;
676
1055
  const onLastPage = pageIndex === pageCount - 1;
677
- (0, import_react8.useEffect)(() => {
1056
+ (0, import_react12.useEffect)(() => {
678
1057
  if (noPages) {
679
1058
  setValue("0");
680
1059
  } else {
@@ -684,17 +1063,16 @@ var Pagination = ({
684
1063
  const changePage = (page) => {
685
1064
  onPageChanged(page);
686
1065
  };
687
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: (0, import_clsx4.default)("flex-row-1", className), style, children: [
688
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(IconButton, { color: "transparent", onClick: () => changePage(0), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.ChevronFirst, {}) }),
689
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex - 1), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.ChevronLeft, {}) }),
690
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex-row-2 min-w-56 items-center justify-center mx-2 text-center", children: [
691
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1066
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: (0, import_clsx7.default)("flex-row-1", className), style, children: [
1067
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconButton, { color: "transparent", onClick: () => changePage(0), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronFirst, {}) }),
1068
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex - 1), disabled: onFirstPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronLeft, {}) }),
1069
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex-row-2 min-w-56 items-center justify-center mx-2 text-center", children: [
1070
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
692
1071
  Input,
693
1072
  {
694
1073
  value,
695
- containerClassName: "flex flex-1 h-10",
696
- className: (0, import_clsx4.default)(
697
- "w-full text-center font-bold input-indicator-hidden"
1074
+ className: (0, import_clsx7.default)(
1075
+ "w-full text-center font-bold input-indicator-hidden h-10"
698
1076
  ),
699
1077
  type: "number",
700
1078
  min: 1,
@@ -702,19 +1080,19 @@ var Pagination = ({
702
1080
  disabled: noPages,
703
1081
  onChangeText: (value2) => {
704
1082
  if (value2) {
705
- setValue(clamp(Number(value2), 1, pageCount).toString());
1083
+ setValue(clamp(Number(value2), [1, pageCount]).toString());
706
1084
  } else {
707
1085
  setValue(value2);
708
1086
  }
709
1087
  },
710
1088
  onEditCompleted: (value2) => {
711
- changePage(clamp(Number(value2) - 1, 0, pageCount - 1));
1089
+ changePage(clamp(Number(value2) - 1, [0, pageCount - 1]));
712
1090
  },
713
1091
  editCompleteOptions: { delay: 800 }
714
1092
  }
715
1093
  ),
716
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "select-none w-10", children: translation("of") }),
717
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1094
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "select-none w-10", children: translation("of") }),
1095
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
718
1096
  "span",
719
1097
  {
720
1098
  className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-input-background text-input-text rounded-md font-bold",
@@ -722,545 +1100,816 @@ var Pagination = ({
722
1100
  }
723
1101
  )
724
1102
  ] }),
725
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.ChevronRight, {}) }),
726
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageCount - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.ChevronLast, {}) })
1103
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageIndex + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronRight, {}) }),
1104
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconButton, { color: "transparent", onClick: () => changePage(pageCount - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronLast, {}) })
727
1105
  ] });
728
1106
  };
729
1107
 
730
- // src/components/table/Table.tsx
731
- var import_clsx10 = __toESM(require("clsx"));
732
- var import_react_table = require("@tanstack/react-table");
733
-
734
- // src/util/array.ts
735
- var defaultRangeOptions = {
736
- allowEmptyRange: false,
737
- stepSize: 1,
738
- exclusiveStart: false,
739
- exclusiveEnd: true
740
- };
741
- var range = (endOrRange, options) => {
742
- const { allowEmptyRange, stepSize, exclusiveStart, exclusiveEnd } = { ...defaultRangeOptions, ...options };
743
- let start = 0;
744
- let end;
745
- if (typeof endOrRange === "number") {
746
- end = endOrRange;
747
- } else {
748
- start = endOrRange[0];
749
- end = endOrRange[1];
750
- }
751
- if (!exclusiveEnd) {
752
- end -= 1;
753
- }
754
- if (exclusiveStart) {
755
- start += 1;
756
- }
757
- if (end - 1 < start) {
758
- if (!allowEmptyRange) {
759
- console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set options.allowEmptyRange to true`);
760
- }
761
- return [];
762
- }
763
- return Array.from({ length: end - start }, (_, index) => index * stepSize + start);
764
- };
1108
+ // src/components/user-action/Checkbox.tsx
1109
+ var import_react13 = require("react");
1110
+ var import_lucide_react4 = require("lucide-react");
1111
+ var import_clsx8 = __toESM(require("clsx"));
765
1112
 
766
- // src/components/table/Table.tsx
767
- var import_react_custom_scrollbars_2 = require("react-custom-scrollbars-2");
1113
+ // node_modules/@radix-ui/react-checkbox/dist/index.mjs
1114
+ var React11 = __toESM(require("react"), 1);
768
1115
 
769
- // src/components/user-action/Checkbox.tsx
770
- var import_react9 = require("react");
771
- var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
772
- var import_lucide_react2 = require("lucide-react");
773
- var import_clsx5 = __toESM(require("clsx"));
774
- var import_jsx_runtime6 = require("react/jsx-runtime");
775
- var checkboxSizeMapping = {
776
- small: "size-5",
777
- medium: "size-6",
778
- large: "size-8"
779
- };
780
- var checkboxIconSizeMapping = {
781
- small: "size-4",
782
- medium: "size-5",
783
- large: "size-7"
784
- };
785
- var Checkbox = ({
786
- id,
787
- label,
788
- checked,
789
- disabled,
790
- onChange,
791
- onChangeTristate,
792
- size = "medium",
793
- className = "",
794
- containerClassName
795
- }) => {
796
- const usedSizeClass = checkboxSizeMapping[size];
797
- const innerIconSize = checkboxIconSizeMapping[size];
798
- const propagateChange = (checked2) => {
799
- if (onChangeTristate) {
800
- onChangeTristate(checked2);
1116
+ // node_modules/@radix-ui/react-compose-refs/dist/index.mjs
1117
+ var React2 = __toESM(require("react"), 1);
1118
+ function setRef(ref, value) {
1119
+ if (typeof ref === "function") {
1120
+ return ref(value);
1121
+ } else if (ref !== null && ref !== void 0) {
1122
+ ref.current = value;
1123
+ }
1124
+ }
1125
+ function composeRefs(...refs) {
1126
+ return (node) => {
1127
+ let hasCleanup = false;
1128
+ const cleanups = refs.map((ref) => {
1129
+ const cleanup = setRef(ref, node);
1130
+ if (!hasCleanup && typeof cleanup == "function") {
1131
+ hasCleanup = true;
1132
+ }
1133
+ return cleanup;
1134
+ });
1135
+ if (hasCleanup) {
1136
+ return () => {
1137
+ for (let i = 0; i < cleanups.length; i++) {
1138
+ const cleanup = cleanups[i];
1139
+ if (typeof cleanup == "function") {
1140
+ cleanup();
1141
+ } else {
1142
+ setRef(refs[i], null);
1143
+ }
1144
+ }
1145
+ };
801
1146
  }
802
- if (onChange) {
803
- onChange(checked2 === "indeterminate" ? false : checked2);
1147
+ };
1148
+ }
1149
+ function useComposedRefs(...refs) {
1150
+ return React2.useCallback(composeRefs(...refs), refs);
1151
+ }
1152
+
1153
+ // node_modules/@radix-ui/react-context/dist/index.mjs
1154
+ var React3 = __toESM(require("react"), 1);
1155
+ var import_jsx_runtime10 = require("react/jsx-runtime");
1156
+ function createContextScope(scopeName, createContextScopeDeps = []) {
1157
+ let defaultContexts = [];
1158
+ function createContext3(rootComponentName, defaultContext) {
1159
+ const BaseContext = React3.createContext(defaultContext);
1160
+ const index = defaultContexts.length;
1161
+ defaultContexts = [...defaultContexts, defaultContext];
1162
+ const Provider = (props) => {
1163
+ const { scope, children, ...context } = props;
1164
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
1165
+ const value = React3.useMemo(() => context, Object.values(context));
1166
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Context.Provider, { value, children });
1167
+ };
1168
+ Provider.displayName = rootComponentName + "Provider";
1169
+ function useContext22(consumerName, scope) {
1170
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
1171
+ const context = React3.useContext(Context);
1172
+ if (context) return context;
1173
+ if (defaultContext !== void 0) return defaultContext;
1174
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
804
1175
  }
1176
+ return [Provider, useContext22];
1177
+ }
1178
+ const createScope = () => {
1179
+ const scopeContexts = defaultContexts.map((defaultContext) => {
1180
+ return React3.createContext(defaultContext);
1181
+ });
1182
+ return function useScope(scope) {
1183
+ const contexts = scope?.[scopeName] || scopeContexts;
1184
+ return React3.useMemo(
1185
+ () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
1186
+ [scope, contexts]
1187
+ );
1188
+ };
805
1189
  };
806
- const changeValue = () => {
807
- const newValue = checked === "indeterminate" ? false : !checked;
808
- propagateChange(newValue);
1190
+ createScope.scopeName = scopeName;
1191
+ return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
1192
+ }
1193
+ function composeContextScopes(...scopes) {
1194
+ const baseScope = scopes[0];
1195
+ if (scopes.length === 1) return baseScope;
1196
+ const createScope = () => {
1197
+ const scopeHooks = scopes.map((createScope2) => ({
1198
+ useScope: createScope2(),
1199
+ scopeName: createScope2.scopeName
1200
+ }));
1201
+ return function useComposedScopes(overrideScopes) {
1202
+ const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
1203
+ const scopeProps = useScope(overrideScopes);
1204
+ const currentScope = scopeProps[`__scope${scopeName}`];
1205
+ return { ...nextScopes2, ...currentScope };
1206
+ }, {});
1207
+ return React3.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
1208
+ };
809
1209
  };
810
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: (0, import_clsx5.default)("group flex-row-2 items-center cursor-pointer", containerClassName), onClick: changeValue, children: [
811
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
812
- CheckboxPrimitive.Root,
813
- {
814
- onCheckedChange: propagateChange,
815
- checked,
816
- disabled,
817
- id,
818
- className: (0, import_clsx5.default)(usedSizeClass, `items-center border-2 rounded outline-none `, {
819
- "text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
820
- "focus:border-primary group-hover:border-primary ": !disabled,
821
- "bg-input-background": !disabled && !checked,
822
- "bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
823
- }, className),
824
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(CheckboxPrimitive.Indicator, { children: [
825
- checked === true && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Check, { className: innerIconSize }),
826
- checked === "indeterminate" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Minus, { className: innerIconSize })
827
- ] })
828
- }
829
- ),
830
- label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Label, { ...label, className: (0, import_clsx5.default)(label.className), htmlFor: id })
831
- ] });
832
- };
1210
+ createScope.scopeName = baseScope.scopeName;
1211
+ return createScope;
1212
+ }
833
1213
 
834
- // src/components/table/TableFilterButton.tsx
835
- var import_lucide_react3 = require("lucide-react");
1214
+ // node_modules/@radix-ui/primitive/dist/index.mjs
1215
+ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
1216
+ return function handleEvent(event) {
1217
+ originalEventHandler?.(event);
1218
+ if (checkForDefaultPrevented === false || !event.defaultPrevented) {
1219
+ return ourEventHandler?.(event);
1220
+ }
1221
+ };
1222
+ }
836
1223
 
837
- // src/components/user-action/Menu.tsx
838
- var import_react12 = require("react");
839
- var import_clsx6 = __toESM(require("clsx"));
1224
+ // node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
1225
+ var React5 = __toESM(require("react"), 1);
840
1226
 
841
- // src/hooks/useOutsideClick.ts
842
- var import_react10 = require("react");
843
- var useOutsideClick = (refs, handler) => {
844
- (0, import_react10.useEffect)(() => {
845
- const listener = (event) => {
846
- if (event.target === null) return;
847
- if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
848
- return;
849
- }
850
- handler();
851
- };
852
- document.addEventListener("mousedown", listener);
853
- document.addEventListener("touchstart", listener);
854
- return () => {
855
- document.removeEventListener("mousedown", listener);
856
- document.removeEventListener("touchstart", listener);
857
- };
858
- }, [refs, handler]);
1227
+ // node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
1228
+ var React4 = __toESM(require("react"), 1);
1229
+ var useLayoutEffect2 = globalThis?.document ? React4.useLayoutEffect : () => {
859
1230
  };
860
1231
 
861
- // src/hooks/useHoverState.ts
862
- var import_react11 = require("react");
863
- var defaultUseHoverStateProps = {
864
- closingDelay: 200,
865
- isDisabled: false
1232
+ // node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
1233
+ var React22 = __toESM(require("react"), 1);
1234
+ var useInsertionEffect = React5[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
1235
+ function useControllableState({
1236
+ prop,
1237
+ defaultProp,
1238
+ onChange = () => {
1239
+ },
1240
+ caller
1241
+ }) {
1242
+ const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
1243
+ defaultProp,
1244
+ onChange
1245
+ });
1246
+ const isControlled = prop !== void 0;
1247
+ const value = isControlled ? prop : uncontrolledProp;
1248
+ if (true) {
1249
+ const isControlledRef = React5.useRef(prop !== void 0);
1250
+ React5.useEffect(() => {
1251
+ const wasControlled = isControlledRef.current;
1252
+ if (wasControlled !== isControlled) {
1253
+ const from = wasControlled ? "controlled" : "uncontrolled";
1254
+ const to = isControlled ? "controlled" : "uncontrolled";
1255
+ console.warn(
1256
+ `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
1257
+ );
1258
+ }
1259
+ isControlledRef.current = isControlled;
1260
+ }, [isControlled, caller]);
1261
+ }
1262
+ const setValue = React5.useCallback(
1263
+ (nextValue) => {
1264
+ if (isControlled) {
1265
+ const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
1266
+ if (value2 !== prop) {
1267
+ onChangeRef.current?.(value2);
1268
+ }
1269
+ } else {
1270
+ setUncontrolledProp(nextValue);
1271
+ }
1272
+ },
1273
+ [isControlled, prop, setUncontrolledProp, onChangeRef]
1274
+ );
1275
+ return [value, setValue];
1276
+ }
1277
+ function useUncontrolledState({
1278
+ defaultProp,
1279
+ onChange
1280
+ }) {
1281
+ const [value, setValue] = React5.useState(defaultProp);
1282
+ const prevValueRef = React5.useRef(value);
1283
+ const onChangeRef = React5.useRef(onChange);
1284
+ useInsertionEffect(() => {
1285
+ onChangeRef.current = onChange;
1286
+ }, [onChange]);
1287
+ React5.useEffect(() => {
1288
+ if (prevValueRef.current !== value) {
1289
+ onChangeRef.current?.(value);
1290
+ prevValueRef.current = value;
1291
+ }
1292
+ }, [value, prevValueRef]);
1293
+ return [value, setValue, onChangeRef];
1294
+ }
1295
+ function isFunction(value) {
1296
+ return typeof value === "function";
1297
+ }
1298
+ var SYNC_STATE = Symbol("RADIX:SYNC_STATE");
1299
+
1300
+ // node_modules/@radix-ui/react-use-previous/dist/index.mjs
1301
+ var React6 = __toESM(require("react"), 1);
1302
+ function usePrevious(value) {
1303
+ const ref = React6.useRef({ value, previous: value });
1304
+ return React6.useMemo(() => {
1305
+ if (ref.current.value !== value) {
1306
+ ref.current.previous = ref.current.value;
1307
+ ref.current.value = value;
1308
+ }
1309
+ return ref.current.previous;
1310
+ }, [value]);
1311
+ }
1312
+
1313
+ // node_modules/@radix-ui/react-use-size/dist/index.mjs
1314
+ var React7 = __toESM(require("react"), 1);
1315
+ function useSize(element) {
1316
+ const [size, setSize] = React7.useState(void 0);
1317
+ useLayoutEffect2(() => {
1318
+ if (element) {
1319
+ setSize({ width: element.offsetWidth, height: element.offsetHeight });
1320
+ const resizeObserver = new ResizeObserver((entries) => {
1321
+ if (!Array.isArray(entries)) {
1322
+ return;
1323
+ }
1324
+ if (!entries.length) {
1325
+ return;
1326
+ }
1327
+ const entry = entries[0];
1328
+ let width;
1329
+ let height;
1330
+ if ("borderBoxSize" in entry) {
1331
+ const borderSizeEntry = entry["borderBoxSize"];
1332
+ const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
1333
+ width = borderSize["inlineSize"];
1334
+ height = borderSize["blockSize"];
1335
+ } else {
1336
+ width = element.offsetWidth;
1337
+ height = element.offsetHeight;
1338
+ }
1339
+ setSize({ width, height });
1340
+ });
1341
+ resizeObserver.observe(element, { box: "border-box" });
1342
+ return () => resizeObserver.unobserve(element);
1343
+ } else {
1344
+ setSize(void 0);
1345
+ }
1346
+ }, [element]);
1347
+ return size;
1348
+ }
1349
+
1350
+ // node_modules/@radix-ui/react-presence/dist/index.mjs
1351
+ var React23 = __toESM(require("react"), 1);
1352
+ var React8 = __toESM(require("react"), 1);
1353
+ function useStateMachine(initialState, machine) {
1354
+ return React8.useReducer((state, event) => {
1355
+ const nextState = machine[state][event];
1356
+ return nextState ?? state;
1357
+ }, initialState);
1358
+ }
1359
+ var Presence = (props) => {
1360
+ const { present, children } = props;
1361
+ const presence = usePresence(present);
1362
+ const child = typeof children === "function" ? children({ present: presence.isPresent }) : React23.Children.only(children);
1363
+ const ref = useComposedRefs(presence.ref, getElementRef(child));
1364
+ const forceMount = typeof children === "function";
1365
+ return forceMount || presence.isPresent ? React23.cloneElement(child, { ref }) : null;
866
1366
  };
867
- var useHoverState = (props = void 0) => {
868
- const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
869
- const [isHovered, setIsHovered] = (0, import_react11.useState)(false);
870
- const [timer, setTimer] = (0, import_react11.useState)();
871
- const onMouseEnter = () => {
872
- if (isDisabled) {
873
- return;
1367
+ Presence.displayName = "Presence";
1368
+ function usePresence(present) {
1369
+ const [node, setNode] = React23.useState();
1370
+ const stylesRef = React23.useRef(null);
1371
+ const prevPresentRef = React23.useRef(present);
1372
+ const prevAnimationNameRef = React23.useRef("none");
1373
+ const initialState = present ? "mounted" : "unmounted";
1374
+ const [state, send] = useStateMachine(initialState, {
1375
+ mounted: {
1376
+ UNMOUNT: "unmounted",
1377
+ ANIMATION_OUT: "unmountSuspended"
1378
+ },
1379
+ unmountSuspended: {
1380
+ MOUNT: "mounted",
1381
+ ANIMATION_END: "unmounted"
1382
+ },
1383
+ unmounted: {
1384
+ MOUNT: "mounted"
874
1385
  }
875
- clearTimeout(timer);
876
- setIsHovered(true);
877
- };
878
- const onMouseLeave = () => {
879
- if (isDisabled) {
880
- return;
1386
+ });
1387
+ React23.useEffect(() => {
1388
+ const currentAnimationName = getAnimationName(stylesRef.current);
1389
+ prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
1390
+ }, [state]);
1391
+ useLayoutEffect2(() => {
1392
+ const styles = stylesRef.current;
1393
+ const wasPresent = prevPresentRef.current;
1394
+ const hasPresentChanged = wasPresent !== present;
1395
+ if (hasPresentChanged) {
1396
+ const prevAnimationName = prevAnimationNameRef.current;
1397
+ const currentAnimationName = getAnimationName(styles);
1398
+ if (present) {
1399
+ send("MOUNT");
1400
+ } else if (currentAnimationName === "none" || styles?.display === "none") {
1401
+ send("UNMOUNT");
1402
+ } else {
1403
+ const isAnimating = prevAnimationName !== currentAnimationName;
1404
+ if (wasPresent && isAnimating) {
1405
+ send("ANIMATION_OUT");
1406
+ } else {
1407
+ send("UNMOUNT");
1408
+ }
1409
+ }
1410
+ prevPresentRef.current = present;
881
1411
  }
882
- setTimer(setTimeout(() => {
883
- setIsHovered(false);
884
- }, closingDelay));
885
- };
886
- (0, import_react11.useEffect)(() => {
887
- if (timer) {
1412
+ }, [present, send]);
1413
+ useLayoutEffect2(() => {
1414
+ if (node) {
1415
+ let timeoutId;
1416
+ const ownerWindow = node.ownerDocument.defaultView ?? window;
1417
+ const handleAnimationEnd = (event) => {
1418
+ const currentAnimationName = getAnimationName(stylesRef.current);
1419
+ const isCurrentAnimation = currentAnimationName.includes(event.animationName);
1420
+ if (event.target === node && isCurrentAnimation) {
1421
+ send("ANIMATION_END");
1422
+ if (!prevPresentRef.current) {
1423
+ const currentFillMode = node.style.animationFillMode;
1424
+ node.style.animationFillMode = "forwards";
1425
+ timeoutId = ownerWindow.setTimeout(() => {
1426
+ if (node.style.animationFillMode === "forwards") {
1427
+ node.style.animationFillMode = currentFillMode;
1428
+ }
1429
+ });
1430
+ }
1431
+ }
1432
+ };
1433
+ const handleAnimationStart = (event) => {
1434
+ if (event.target === node) {
1435
+ prevAnimationNameRef.current = getAnimationName(stylesRef.current);
1436
+ }
1437
+ };
1438
+ node.addEventListener("animationstart", handleAnimationStart);
1439
+ node.addEventListener("animationcancel", handleAnimationEnd);
1440
+ node.addEventListener("animationend", handleAnimationEnd);
888
1441
  return () => {
889
- clearTimeout(timer);
1442
+ ownerWindow.clearTimeout(timeoutId);
1443
+ node.removeEventListener("animationstart", handleAnimationStart);
1444
+ node.removeEventListener("animationcancel", handleAnimationEnd);
1445
+ node.removeEventListener("animationend", handleAnimationEnd);
890
1446
  };
1447
+ } else {
1448
+ send("ANIMATION_END");
891
1449
  }
892
- });
893
- (0, import_react11.useEffect)(() => {
894
- if (timer) {
895
- clearTimeout(timer);
896
- }
897
- }, [isDisabled]);
1450
+ }, [node, send]);
898
1451
  return {
899
- isHovered,
900
- setIsHovered,
901
- handlers: { onMouseEnter, onMouseLeave }
1452
+ isPresent: ["mounted", "unmountSuspended"].includes(state),
1453
+ ref: React23.useCallback((node2) => {
1454
+ stylesRef.current = node2 ? getComputedStyle(node2) : null;
1455
+ setNode(node2);
1456
+ }, [])
902
1457
  };
903
- };
904
-
905
- // src/util/PropsWithFunctionChildren.ts
906
- var resolve = (children, bag) => {
907
- if (typeof children === "function") {
908
- return children(bag);
1458
+ }
1459
+ function getAnimationName(styles) {
1460
+ return styles?.animationName || "none";
1461
+ }
1462
+ function getElementRef(element) {
1463
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
1464
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1465
+ if (mayWarn) {
1466
+ return element.ref;
909
1467
  }
910
- return children ?? void 0;
911
- };
912
- var BagFunctionUtil = {
913
- resolve
914
- };
915
-
916
- // src/hooks/usePopoverPosition.ts
917
- var defaultPopoverPositionOptions = {
918
- edgePadding: 16,
919
- outerGap: 4,
920
- horizontalAlignment: "leftInside",
921
- verticalAlignment: "bottomOutside",
922
- disabled: false
923
- };
924
- var usePopoverPosition = (trigger, options) => {
925
- const {
926
- edgePadding,
927
- outerGap,
928
- verticalAlignment,
929
- horizontalAlignment,
930
- disabled
931
- } = { ...defaultPopoverPositionOptions, ...options };
932
- if (disabled || !trigger) {
933
- return {};
1468
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
1469
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1470
+ if (mayWarn) {
1471
+ return element.props.ref;
934
1472
  }
935
- const left = {
936
- leftOutside: trigger.left - outerGap,
937
- leftInside: trigger.left,
938
- rightOutside: trigger.right + outerGap,
939
- rightInside: trigger.right,
940
- center: trigger.left + trigger.width / 2
941
- }[horizontalAlignment];
942
- const top = {
943
- topOutside: trigger.top - outerGap,
944
- topInside: trigger.top,
945
- bottomOutside: trigger.bottom + outerGap,
946
- bottomInside: trigger.bottom,
947
- center: trigger.top + trigger.height / 2
948
- }[verticalAlignment];
949
- const translateX = {
950
- leftOutside: "-100%",
951
- leftInside: void 0,
952
- rightOutside: void 0,
953
- rightInside: "-100%",
954
- center: "-50%"
955
- }[horizontalAlignment];
956
- const translateY = {
957
- topOutside: "-100%",
958
- topInside: void 0,
959
- bottomOutside: void 0,
960
- bottomInside: "-100%",
961
- center: "-50%"
962
- }[verticalAlignment];
963
- return {
964
- left: Math.max(left, edgePadding),
965
- top: Math.max(top, edgePadding),
966
- translate: [translateX ?? "0", translateY ?? "0"].join(" ")
967
- };
968
- };
1473
+ return element.props.ref || element.ref;
1474
+ }
969
1475
 
970
- // src/components/user-action/Menu.tsx
971
- var import_react_dom = require("react-dom");
972
- var import_jsx_runtime7 = require("react/jsx-runtime");
973
- function getScrollableParents(element) {
974
- const scrollables = [];
975
- let parent = element.parentElement;
976
- while (parent) {
977
- scrollables.push(parent);
978
- parent = parent.parentElement;
1476
+ // node_modules/@radix-ui/react-primitive/dist/index.mjs
1477
+ var React10 = __toESM(require("react"), 1);
1478
+ var ReactDOM = __toESM(require("react-dom"), 1);
1479
+
1480
+ // node_modules/@radix-ui/react-slot/dist/index.mjs
1481
+ var React9 = __toESM(require("react"), 1);
1482
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1483
+ // @__NO_SIDE_EFFECTS__
1484
+ function createSlot(ownerName) {
1485
+ const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
1486
+ const Slot2 = React9.forwardRef((props, forwardedRef) => {
1487
+ const { children, ...slotProps } = props;
1488
+ const childrenArray = React9.Children.toArray(children);
1489
+ const slottable = childrenArray.find(isSlottable);
1490
+ if (slottable) {
1491
+ const newElement = slottable.props.children;
1492
+ const newChildren = childrenArray.map((child) => {
1493
+ if (child === slottable) {
1494
+ if (React9.Children.count(newElement) > 1) return React9.Children.only(null);
1495
+ return React9.isValidElement(newElement) ? newElement.props.children : null;
1496
+ } else {
1497
+ return child;
1498
+ }
1499
+ });
1500
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React9.isValidElement(newElement) ? React9.cloneElement(newElement, void 0, newChildren) : null });
1501
+ }
1502
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
1503
+ });
1504
+ Slot2.displayName = `${ownerName}.Slot`;
1505
+ return Slot2;
1506
+ }
1507
+ // @__NO_SIDE_EFFECTS__
1508
+ function createSlotClone(ownerName) {
1509
+ const SlotClone = React9.forwardRef((props, forwardedRef) => {
1510
+ const { children, ...slotProps } = props;
1511
+ if (React9.isValidElement(children)) {
1512
+ const childrenRef = getElementRef2(children);
1513
+ const props2 = mergeProps(slotProps, children.props);
1514
+ if (children.type !== React9.Fragment) {
1515
+ props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
1516
+ }
1517
+ return React9.cloneElement(children, props2);
1518
+ }
1519
+ return React9.Children.count(children) > 1 ? React9.Children.only(null) : null;
1520
+ });
1521
+ SlotClone.displayName = `${ownerName}.SlotClone`;
1522
+ return SlotClone;
1523
+ }
1524
+ var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
1525
+ function isSlottable(child) {
1526
+ return React9.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
1527
+ }
1528
+ function mergeProps(slotProps, childProps) {
1529
+ const overrideProps = { ...childProps };
1530
+ for (const propName in childProps) {
1531
+ const slotPropValue = slotProps[propName];
1532
+ const childPropValue = childProps[propName];
1533
+ const isHandler = /^on[A-Z]/.test(propName);
1534
+ if (isHandler) {
1535
+ if (slotPropValue && childPropValue) {
1536
+ overrideProps[propName] = (...args) => {
1537
+ const result = childPropValue(...args);
1538
+ slotPropValue(...args);
1539
+ return result;
1540
+ };
1541
+ } else if (slotPropValue) {
1542
+ overrideProps[propName] = slotPropValue;
1543
+ }
1544
+ } else if (propName === "style") {
1545
+ overrideProps[propName] = { ...slotPropValue, ...childPropValue };
1546
+ } else if (propName === "className") {
1547
+ overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
1548
+ }
979
1549
  }
980
- return scrollables;
1550
+ return { ...slotProps, ...overrideProps };
981
1551
  }
982
- var Menu = ({
983
- trigger,
984
- children,
985
- alignmentHorizontal = "leftInside",
986
- alignmentVertical = "bottomOutside",
987
- showOnHover = false,
988
- disabled = false,
989
- menuClassName = ""
990
- }) => {
991
- const { isHovered: isOpen, setIsHovered: setIsOpen } = useHoverState({ isDisabled: !showOnHover || disabled });
992
- const triggerRef = (0, import_react12.useRef)(null);
993
- const menuRef = (0, import_react12.useRef)(null);
994
- useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
995
- const [isHidden, setIsHidden] = (0, import_react12.useState)(true);
996
- const bag = {
997
- isOpen,
998
- close: () => setIsOpen(false),
999
- toggleOpen: () => setIsOpen((prevState) => !prevState),
1000
- disabled
1001
- };
1002
- const menuPosition = usePopoverPosition(
1003
- triggerRef.current?.getBoundingClientRect(),
1004
- { verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
1005
- );
1006
- (0, import_react12.useEffect)(() => {
1007
- if (!isOpen) return;
1008
- const triggerEl = triggerRef.current;
1009
- if (!triggerEl) return;
1010
- const scrollableParents = getScrollableParents(triggerEl);
1011
- const close = () => setIsOpen(false);
1012
- scrollableParents.forEach((parent) => {
1013
- parent.addEventListener("scroll", close);
1014
- });
1015
- window.addEventListener("resize", close);
1016
- return () => {
1017
- scrollableParents.forEach((parent) => {
1018
- parent.removeEventListener("scroll", close);
1019
- });
1020
- window.removeEventListener("resize", close);
1021
- };
1022
- }, [isOpen, setIsOpen]);
1023
- (0, import_react12.useEffect)(() => {
1024
- if (isOpen) {
1025
- setIsHidden(false);
1552
+ function getElementRef2(element) {
1553
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
1554
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1555
+ if (mayWarn) {
1556
+ return element.ref;
1557
+ }
1558
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
1559
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1560
+ if (mayWarn) {
1561
+ return element.props.ref;
1562
+ }
1563
+ return element.props.ref || element.ref;
1564
+ }
1565
+
1566
+ // node_modules/@radix-ui/react-primitive/dist/index.mjs
1567
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1568
+ var NODES = [
1569
+ "a",
1570
+ "button",
1571
+ "div",
1572
+ "form",
1573
+ "h2",
1574
+ "h3",
1575
+ "img",
1576
+ "input",
1577
+ "label",
1578
+ "li",
1579
+ "nav",
1580
+ "ol",
1581
+ "p",
1582
+ "select",
1583
+ "span",
1584
+ "svg",
1585
+ "ul"
1586
+ ];
1587
+ var Primitive = NODES.reduce((primitive, node) => {
1588
+ const Slot = createSlot(`Primitive.${node}`);
1589
+ const Node = React10.forwardRef((props, forwardedRef) => {
1590
+ const { asChild, ...primitiveProps } = props;
1591
+ const Comp = asChild ? Slot : node;
1592
+ if (typeof window !== "undefined") {
1593
+ window[Symbol.for("radix-ui")] = true;
1026
1594
  }
1027
- }, [isOpen]);
1028
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1029
- trigger(bag, triggerRef),
1030
- (0, import_react_dom.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1031
- "div",
1595
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
1596
+ });
1597
+ Node.displayName = `Primitive.${node}`;
1598
+ return { ...primitive, [node]: Node };
1599
+ }, {});
1600
+
1601
+ // node_modules/@radix-ui/react-checkbox/dist/index.mjs
1602
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1603
+ var CHECKBOX_NAME = "Checkbox";
1604
+ var [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);
1605
+ var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
1606
+ function CheckboxProvider(props) {
1607
+ const {
1608
+ __scopeCheckbox,
1609
+ checked: checkedProp,
1610
+ children,
1611
+ defaultChecked,
1612
+ disabled,
1613
+ form,
1614
+ name,
1615
+ onCheckedChange,
1616
+ required,
1617
+ value = "on",
1618
+ // @ts-expect-error
1619
+ internal_do_not_use_render
1620
+ } = props;
1621
+ const [checked, setChecked] = useControllableState({
1622
+ prop: checkedProp,
1623
+ defaultProp: defaultChecked ?? false,
1624
+ onChange: onCheckedChange,
1625
+ caller: CHECKBOX_NAME
1626
+ });
1627
+ const [control, setControl] = React11.useState(null);
1628
+ const [bubbleInput, setBubbleInput] = React11.useState(null);
1629
+ const hasConsumerStoppedPropagationRef = React11.useRef(false);
1630
+ const isFormControl = control ? !!form || !!control.closest("form") : (
1631
+ // We set this to true by default so that events bubble to forms without JS (SSR)
1632
+ true
1633
+ );
1634
+ const context = {
1635
+ checked,
1636
+ disabled,
1637
+ setChecked,
1638
+ control,
1639
+ setControl,
1640
+ name,
1641
+ form,
1642
+ value,
1643
+ hasConsumerStoppedPropagationRef,
1644
+ required,
1645
+ defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
1646
+ isFormControl,
1647
+ bubbleInput,
1648
+ setBubbleInput
1649
+ };
1650
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1651
+ CheckboxProviderImpl,
1652
+ {
1653
+ scope: __scopeCheckbox,
1654
+ ...context,
1655
+ children: isFunction2(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
1656
+ }
1657
+ );
1658
+ }
1659
+ var TRIGGER_NAME = "CheckboxTrigger";
1660
+ var CheckboxTrigger = React11.forwardRef(
1661
+ ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {
1662
+ const {
1663
+ control,
1664
+ value,
1665
+ disabled,
1666
+ checked,
1667
+ required,
1668
+ setControl,
1669
+ setChecked,
1670
+ hasConsumerStoppedPropagationRef,
1671
+ isFormControl,
1672
+ bubbleInput
1673
+ } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);
1674
+ const composedRefs = useComposedRefs(forwardedRef, setControl);
1675
+ const initialCheckedStateRef = React11.useRef(checked);
1676
+ React11.useEffect(() => {
1677
+ const form = control?.form;
1678
+ if (form) {
1679
+ const reset = () => setChecked(initialCheckedStateRef.current);
1680
+ form.addEventListener("reset", reset);
1681
+ return () => form.removeEventListener("reset", reset);
1682
+ }
1683
+ }, [control, setChecked]);
1684
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1685
+ Primitive.button,
1032
1686
  {
1033
- ref: menuRef,
1034
- onClick: (e) => e.stopPropagation(),
1035
- className: (0, import_clsx6.default)(
1036
- "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg shadow-strong z-[300]",
1037
- {
1038
- "animate-pop-in": isOpen,
1039
- "animate-pop-out": !isOpen,
1040
- "hidden": isHidden
1041
- },
1042
- menuClassName
1043
- ),
1044
- onAnimationEnd: () => {
1045
- if (!isOpen) {
1046
- setIsHidden(true);
1687
+ type: "button",
1688
+ role: "checkbox",
1689
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
1690
+ "aria-required": required,
1691
+ "data-state": getState(checked),
1692
+ "data-disabled": disabled ? "" : void 0,
1693
+ disabled,
1694
+ value,
1695
+ ...checkboxProps,
1696
+ ref: composedRefs,
1697
+ onKeyDown: composeEventHandlers(onKeyDown, (event) => {
1698
+ if (event.key === "Enter") event.preventDefault();
1699
+ }),
1700
+ onClick: composeEventHandlers(onClick, (event) => {
1701
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
1702
+ if (bubbleInput && isFormControl) {
1703
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
1704
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
1047
1705
  }
1048
- },
1049
- style: {
1050
- ...menuPosition
1051
- },
1052
- children: BagFunctionUtil.resolve(children, bag)
1706
+ })
1053
1707
  }
1054
- ), document.body)
1055
- ] });
1056
- };
1057
-
1058
- // src/components/table/TableFilterButton.tsx
1059
- var import_react13 = require("react");
1060
- var import_jsx_runtime8 = require("react/jsx-runtime");
1061
- var defaultTableFilterTranslation = {
1062
- en: {
1063
- filter: "Filter",
1064
- min: "Min",
1065
- max: "Max",
1066
- startDate: "Start",
1067
- endDate: "End",
1068
- text: "Text..."
1069
- },
1070
- de: {
1071
- filter: "Filter",
1072
- min: "Min",
1073
- max: "Max",
1074
- startDate: "Start",
1075
- endDate: "Ende",
1076
- text: "Text..."
1708
+ );
1077
1709
  }
1078
- };
1079
- var TableFilterButton = ({
1080
- filterType,
1081
- column
1082
- }) => {
1083
- const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
1084
- const columnFilterValue = column.getFilterValue();
1085
- const [filterValue, setFilterValue] = (0, import_react13.useState)(columnFilterValue);
1086
- const hasFilter = !!filterValue;
1087
- (0, import_react13.useEffect)(() => {
1088
- setFilterValue(columnFilterValue);
1089
- }, [columnFilterValue]);
1090
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1091
- Menu,
1092
- {
1093
- trigger: ({ toggleOpen }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { ref, className: "relative", children: [
1094
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconButton, { color: "neutral", size: "tiny", onClick: toggleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react3.FilterIcon, {}) }),
1095
- hasFilter && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1096
- "div",
1097
- {
1098
- className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-primary pointer-events-none",
1099
- "aria-hidden": true
1100
- }
1101
- )
1102
- ] }),
1103
- children: ({ close }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-col-1 p-2 items-start font-normal text-menu-text", children: [
1104
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h4", { className: "textstyle-title-sm", children: translation("filter") }),
1105
- filterType === "text" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1106
- Input,
1107
- {
1108
- value: filterValue ?? "",
1109
- autoFocus: true,
1110
- placeholder: translation("text"),
1111
- onChangeText: setFilterValue,
1112
- className: "h-10"
1113
- }
1114
- ),
1115
- filterType === "range" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-row-2 items-center", children: [
1116
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1117
- Input,
1118
- {
1119
- value: filterValue?.[0] ?? "",
1120
- type: "number",
1121
- placeholder: translation("min"),
1122
- onChangeText: (text) => {
1123
- const num = Number(text);
1124
- setFilterValue((old) => [num, old?.[1]]);
1125
- },
1126
- className: "h-10 input-indicator-hidden w-40"
1127
- }
1128
- ),
1129
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "font-bold", children: "-" }),
1130
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1131
- Input,
1132
- {
1133
- value: filterValue?.[1] ?? "",
1134
- type: "number",
1135
- placeholder: translation("max"),
1136
- onChangeText: (text) => {
1137
- const num = Number(text);
1138
- setFilterValue((old) => [old?.[0], num]);
1139
- },
1140
- className: "h-10 input-indicator-hidden w-40"
1141
- }
1142
- )
1143
- ] }),
1144
- filterType === "dateRange" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
1145
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1146
- Input,
1710
+ );
1711
+ CheckboxTrigger.displayName = TRIGGER_NAME;
1712
+ var Checkbox = React11.forwardRef(
1713
+ (props, forwardedRef) => {
1714
+ const {
1715
+ __scopeCheckbox,
1716
+ name,
1717
+ checked,
1718
+ defaultChecked,
1719
+ required,
1720
+ disabled,
1721
+ value,
1722
+ onCheckedChange,
1723
+ form,
1724
+ ...checkboxProps
1725
+ } = props;
1726
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1727
+ CheckboxProvider,
1728
+ {
1729
+ __scopeCheckbox,
1730
+ checked,
1731
+ defaultChecked,
1732
+ disabled,
1733
+ required,
1734
+ onCheckedChange,
1735
+ name,
1736
+ form,
1737
+ value,
1738
+ internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1739
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1740
+ CheckboxTrigger,
1147
1741
  {
1148
- value: filterValue?.[0] ? filterValue?.[0].toISOString().slice(0, 16) : "",
1149
- type: "datetime-local",
1150
- placeholder: translation("startDate"),
1151
- onChangeText: (text) => {
1152
- const value = new Date(text);
1153
- setFilterValue((old) => [value, old?.[1]]);
1154
- },
1155
- className: "h-10 w-50"
1742
+ ...checkboxProps,
1743
+ ref: forwardedRef,
1744
+ __scopeCheckbox
1156
1745
  }
1157
1746
  ),
1158
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1159
- Input,
1747
+ isFormControl && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1748
+ CheckboxBubbleInput,
1160
1749
  {
1161
- value: filterValue?.[1] ? filterValue?.[1].toISOString().slice(0, 16) : "",
1162
- type: "datetime-local",
1163
- placeholder: translation("endDate"),
1164
- onChangeText: (text) => {
1165
- const value = new Date(text);
1166
- setFilterValue((old) => [old?.[0], value]);
1167
- },
1168
- className: "h-10 w-50"
1750
+ __scopeCheckbox
1169
1751
  }
1170
1752
  )
1171
- ] }),
1172
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-row-2 justify-end w-full", children: [
1173
- hasFilter && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SolidButton, { color: "negative", size: "small", onClick: () => {
1174
- column.setFilterValue(void 0);
1175
- close();
1176
- }, children: translation("remove") }),
1177
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SolidButton, { size: "small", onClick: () => {
1178
- column.setFilterValue(filterValue);
1179
- close();
1180
- }, children: translation("apply") })
1181
1753
  ] })
1182
- ] })
1183
- }
1184
- );
1185
- };
1186
-
1187
- // src/components/table/TableSortButton.tsx
1188
- var import_lucide_react4 = require("lucide-react");
1189
- var import_clsx7 = __toESM(require("clsx"));
1190
- var import_jsx_runtime9 = require("react/jsx-runtime");
1191
- var TableSortButton = ({
1192
- sortDirection,
1193
- invert = false,
1194
- color = "neutral",
1195
- className,
1196
- ...buttonProps
1197
- }) => {
1198
- let icon = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react4.ChevronsUpDown, { className: "w-full h-full" });
1199
- if (sortDirection) {
1200
- let usedSortDirection = sortDirection;
1201
- if (invert) {
1202
- usedSortDirection = usedSortDirection === "desc" ? "asc" : "desc";
1203
- }
1204
- icon = usedSortDirection === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react4.ChevronUp, { className: "w-full h-full" }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react4.ChevronDown, { className: "w-full h-full" });
1754
+ }
1755
+ );
1205
1756
  }
1206
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1207
- IconButton,
1208
- {
1209
- size: "tiny",
1210
- color,
1211
- className: (0, import_clsx7.default)(className),
1212
- ...buttonProps,
1213
- children: icon
1214
- }
1215
- );
1216
- };
1217
-
1218
- // src/components/table/FillerRowElement.tsx
1219
- var import_clsx8 = require("clsx");
1220
- var import_jsx_runtime10 = require("react/jsx-runtime");
1221
- var FillerRowElement = ({
1222
- className
1223
- }) => {
1224
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: (0, import_clsx8.clsx)("flex flex-row items-center w-1/2 h-4 text-disabled-text font-bold", className), children: "-" });
1225
- };
1757
+ );
1758
+ Checkbox.displayName = CHECKBOX_NAME;
1759
+ var INDICATOR_NAME = "CheckboxIndicator";
1760
+ var CheckboxIndicator = React11.forwardRef(
1761
+ (props, forwardedRef) => {
1762
+ const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
1763
+ const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);
1764
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1765
+ Presence,
1766
+ {
1767
+ present: forceMount || isIndeterminate(context.checked) || context.checked === true,
1768
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1769
+ Primitive.span,
1770
+ {
1771
+ "data-state": getState(context.checked),
1772
+ "data-disabled": context.disabled ? "" : void 0,
1773
+ ...indicatorProps,
1774
+ ref: forwardedRef,
1775
+ style: { pointerEvents: "none", ...props.style }
1776
+ }
1777
+ )
1778
+ }
1779
+ );
1780
+ }
1781
+ );
1782
+ CheckboxIndicator.displayName = INDICATOR_NAME;
1783
+ var BUBBLE_INPUT_NAME = "CheckboxBubbleInput";
1784
+ var CheckboxBubbleInput = React11.forwardRef(
1785
+ ({ __scopeCheckbox, ...props }, forwardedRef) => {
1786
+ const {
1787
+ control,
1788
+ hasConsumerStoppedPropagationRef,
1789
+ checked,
1790
+ defaultChecked,
1791
+ required,
1792
+ disabled,
1793
+ name,
1794
+ value,
1795
+ form,
1796
+ bubbleInput,
1797
+ setBubbleInput
1798
+ } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);
1799
+ const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
1800
+ const prevChecked = usePrevious(checked);
1801
+ const controlSize = useSize(control);
1802
+ React11.useEffect(() => {
1803
+ const input = bubbleInput;
1804
+ if (!input) return;
1805
+ const inputProto = window.HTMLInputElement.prototype;
1806
+ const descriptor = Object.getOwnPropertyDescriptor(
1807
+ inputProto,
1808
+ "checked"
1809
+ );
1810
+ const setChecked = descriptor.set;
1811
+ const bubbles = !hasConsumerStoppedPropagationRef.current;
1812
+ if (prevChecked !== checked && setChecked) {
1813
+ const event = new Event("click", { bubbles });
1814
+ input.indeterminate = isIndeterminate(checked);
1815
+ setChecked.call(input, isIndeterminate(checked) ? false : checked);
1816
+ input.dispatchEvent(event);
1817
+ }
1818
+ }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);
1819
+ const defaultCheckedRef = React11.useRef(isIndeterminate(checked) ? false : checked);
1820
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1821
+ Primitive.input,
1822
+ {
1823
+ type: "checkbox",
1824
+ "aria-hidden": true,
1825
+ defaultChecked: defaultChecked ?? defaultCheckedRef.current,
1826
+ required,
1827
+ disabled,
1828
+ name,
1829
+ value,
1830
+ form,
1831
+ ...props,
1832
+ tabIndex: -1,
1833
+ ref: composedRefs,
1834
+ style: {
1835
+ ...props.style,
1836
+ ...controlSize,
1837
+ position: "absolute",
1838
+ pointerEvents: "none",
1839
+ opacity: 0,
1840
+ margin: 0,
1841
+ // We transform because the input is absolutely positioned but we have
1842
+ // rendered it **after** the button. This pulls it back to sit on top
1843
+ // of the button.
1844
+ transform: "translateX(-100%)"
1845
+ }
1846
+ }
1847
+ );
1848
+ }
1849
+ );
1850
+ CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
1851
+ function isFunction2(value) {
1852
+ return typeof value === "function";
1853
+ }
1854
+ function isIndeterminate(checked) {
1855
+ return checked === "indeterminate";
1856
+ }
1857
+ function getState(checked) {
1858
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
1859
+ }
1226
1860
 
1227
- // src/components/table/Filter.ts
1228
- var dateRange = (row, columnId, filterValue) => {
1229
- const [min, max] = filterValue;
1230
- const value = row.getValue(columnId);
1231
- const date = value instanceof Date ? value : new Date(value);
1232
- if (isNaN(date.getTime())) return false;
1233
- if (min && date < min) return false;
1234
- if (max && date > max) return false;
1235
- return true;
1236
- };
1237
- var TableFilters = {
1238
- dateRange
1861
+ // src/components/user-action/Checkbox.tsx
1862
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1863
+ var checkboxSizeMapping = {
1864
+ sm: "size-5 border-1",
1865
+ md: "size-6 border-1",
1866
+ lg: "size-8 border-2"
1239
1867
  };
1240
-
1241
- // src/hooks/useResizeCallbackWrapper.ts
1242
- var import_react14 = require("react");
1243
- var useResizeCallbackWrapper = (callback) => {
1244
- (0, import_react14.useEffect)(() => {
1245
- window.addEventListener("resize", callback);
1246
- return () => {
1247
- window.removeEventListener("resize", callback);
1248
- };
1249
- }, [callback]);
1868
+ var checkboxIconSizeMapping = {
1869
+ sm: "size-4 stroke-3",
1870
+ md: "size-5 stroke-3",
1871
+ lg: "size-7 stroke-3"
1250
1872
  };
1251
-
1252
- // src/components/table/TableCell.tsx
1253
- var import_clsx9 = require("clsx");
1254
- var import_jsx_runtime11 = require("react/jsx-runtime");
1255
- var TableCell = ({
1256
- children,
1257
- className
1873
+ var Checkbox2 = ({
1874
+ disabled,
1875
+ checked = false,
1876
+ indeterminate = false,
1877
+ onChange,
1878
+ size = "md",
1879
+ className = "",
1880
+ ...props
1258
1881
  }) => {
1259
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: (0, import_clsx9.clsx)("block max-w-full overflow-ellipsis truncate", className), children });
1882
+ const usedSizeClass = checkboxSizeMapping[size];
1883
+ const innerIconSize = checkboxIconSizeMapping[size];
1884
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1885
+ Checkbox,
1886
+ {
1887
+ ...props,
1888
+ disabled,
1889
+ checked: indeterminate ? "indeterminate" : checked,
1890
+ onCheckedChange: onChange,
1891
+ className: (0, import_clsx8.default)(
1892
+ usedSizeClass,
1893
+ `flex-col-0 items-center justify-center rounded outline-none`,
1894
+ {
1895
+ "text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
1896
+ "hover:border-primary": !disabled,
1897
+ "bg-input-background": !disabled && !checked,
1898
+ "bg-primary/30 border-primary text-primary": !disabled && (checked || indeterminate)
1899
+ },
1900
+ className
1901
+ ),
1902
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(CheckboxIndicator, { children: [
1903
+ !checked && !indeterminate && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: (0, import_clsx8.default)("bg-input-background", innerIconSize) }),
1904
+ checked && !indeterminate && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react4.Check, { className: innerIconSize }),
1905
+ indeterminate && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react4.Minus, { className: innerIconSize })
1906
+ ] })
1907
+ }
1908
+ );
1260
1909
  };
1261
1910
 
1262
1911
  // src/components/table/Table.tsx
1263
- var import_jsx_runtime12 = require("react/jsx-runtime");
1912
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1264
1913
  var Table = ({
1265
1914
  data,
1266
1915
  fillerRow,
@@ -1273,22 +1922,22 @@ var Table = ({
1273
1922
  columns,
1274
1923
  ...tableOptions
1275
1924
  }) => {
1276
- const ref = (0, import_react15.useRef)(null);
1277
- const tableRef = (0, import_react15.useRef)(null);
1278
- const [columnSizing, setColumnSizing] = (0, import_react15.useState)(columns.reduce((previousValue, currentValue) => {
1925
+ const ref = (0, import_react14.useRef)(null);
1926
+ const tableRef = (0, import_react14.useRef)(null);
1927
+ const [columnSizing, setColumnSizing] = (0, import_react14.useState)(columns.reduce((previousValue, currentValue) => {
1279
1928
  return {
1280
1929
  ...previousValue,
1281
1930
  [currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
1282
1931
  };
1283
1932
  }, {}));
1284
- const [columnSizingInfo, setColumnSizingInfo] = (0, import_react15.useState)();
1285
- const [pagination, setPagination] = (0, import_react15.useState)({
1933
+ const [columnSizingInfo, setColumnSizingInfo] = (0, import_react14.useState)();
1934
+ const [pagination, setPagination] = (0, import_react14.useState)({
1286
1935
  pageSize: 10,
1287
1936
  pageIndex: 0,
1288
1937
  ...initialState?.pagination
1289
1938
  });
1290
- const [columnFilters, setColumnFilters] = (0, import_react15.useState)(initialState?.columnFilters);
1291
- const computedColumnMinWidths = (0, import_react15.useMemo)(() => {
1939
+ const [columnFilters, setColumnFilters] = (0, import_react14.useState)(initialState?.columnFilters);
1940
+ const computedColumnMinWidths = (0, import_react14.useMemo)(() => {
1292
1941
  return columns.reduce((previousValue, column) => {
1293
1942
  return {
1294
1943
  ...previousValue,
@@ -1297,7 +1946,7 @@ var Table = ({
1297
1946
  };
1298
1947
  }, {});
1299
1948
  }, [columns, defaultColumn]);
1300
- const computedColumnMaxWidths = (0, import_react15.useMemo)(() => {
1949
+ const computedColumnMaxWidths = (0, import_react14.useMemo)(() => {
1301
1950
  return columns.reduce((previousValue, column) => {
1302
1951
  return {
1303
1952
  ...previousValue,
@@ -1305,12 +1954,12 @@ var Table = ({
1305
1954
  };
1306
1955
  }, {});
1307
1956
  }, [columns, defaultColumn]);
1308
- const tableMinWidth = (0, import_react15.useMemo)(() => {
1957
+ const tableMinWidth = (0, import_react14.useMemo)(() => {
1309
1958
  return columns.reduce((sum, column) => {
1310
1959
  return sum + computedColumnMinWidths[column.id];
1311
1960
  }, 0);
1312
1961
  }, [columns, computedColumnMinWidths]);
1313
- const updateColumnSizes = (0, import_react15.useMemo)(() => {
1962
+ const updateColumnSizes = (0, import_react14.useMemo)(() => {
1314
1963
  return (previous) => {
1315
1964
  const updateSizing = {
1316
1965
  ...columnSizing,
@@ -1318,7 +1967,7 @@ var Table = ({
1318
1967
  };
1319
1968
  const containerWidth = ref.current.offsetWidth;
1320
1969
  columns.forEach((column) => {
1321
- updateSizing[column.id] = clamp(updateSizing[column.id], computedColumnMinWidths[column.id], computedColumnMaxWidths[column.id] ?? containerWidth);
1970
+ updateSizing[column.id] = clamp(updateSizing[column.id], [computedColumnMinWidths[column.id], computedColumnMaxWidths[column.id] ?? containerWidth]);
1322
1971
  });
1323
1972
  const width = columns.reduce((previousValue, currentValue) => previousValue + updateSizing[currentValue.id], 0);
1324
1973
  if (width > containerWidth) {
@@ -1379,7 +2028,7 @@ var Table = ({
1379
2028
  minSize: 60,
1380
2029
  maxSize: 700,
1381
2030
  cell: ({ cell }) => {
1382
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TableCell, { children: cell.getValue() });
2031
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TableCell, { children: cell.getValue() });
1383
2032
  },
1384
2033
  ...defaultColumn
1385
2034
  },
@@ -1427,18 +2076,18 @@ var Table = ({
1427
2076
  columnResizeMode: "onChange",
1428
2077
  ...tableOptions
1429
2078
  });
1430
- const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react15.useState)(false);
1431
- (0, import_react15.useEffect)(() => {
2079
+ const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react14.useState)(false);
2080
+ (0, import_react14.useEffect)(() => {
1432
2081
  if (!hasInitializedSizing && ref.current) {
1433
2082
  setHasInitializedSizing(true);
1434
2083
  table.setColumnSizing(updateColumnSizes(columnSizing));
1435
2084
  }
1436
2085
  }, [columnSizing, hasInitializedSizing]);
1437
- useResizeCallbackWrapper((0, import_react15.useCallback)(() => {
2086
+ useResizeCallbackWrapper((0, import_react14.useCallback)(() => {
1438
2087
  table.setColumnSizing(updateColumnSizes);
1439
2088
  }, [updateColumnSizes]));
1440
2089
  const pageCount = table.getPageCount();
1441
- (0, import_react15.useEffect)(() => {
2090
+ (0, import_react14.useEffect)(() => {
1442
2091
  const totalPages = pageCount;
1443
2092
  if (totalPages === 0) {
1444
2093
  if (pagination.pageIndex !== 0) {
@@ -1454,7 +2103,7 @@ var Table = ({
1454
2103
  }));
1455
2104
  }
1456
2105
  }, [data, pageCount, pagination.pageSize, pagination.pageIndex]);
1457
- const columnSizeVars = (0, import_react15.useMemo)(() => {
2106
+ const columnSizeVars = (0, import_react14.useMemo)(() => {
1458
2107
  const headers = table.getFlatHeaders();
1459
2108
  const colSizes = {};
1460
2109
  for (let i = 0; i < headers.length; i++) {
@@ -1464,24 +2113,24 @@ var Table = ({
1464
2113
  }
1465
2114
  return colSizes;
1466
2115
  }, [table.getState().columnSizingInfo, table.getState().columnSizing]);
1467
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { ref, className: (0, import_clsx10.default)("flex-col-4", className), children: [
1468
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2116
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { ref, className: (0, import_clsx9.default)("flex-col-4", className), children: [
2117
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1469
2118
  import_react_custom_scrollbars_2.Scrollbars,
1470
2119
  {
1471
2120
  autoHeight: true,
1472
2121
  autoHeightMax: tableRef.current?.offsetHeight ? tableRef.current?.offsetHeight + 2 : void 0,
1473
2122
  autoHide: true,
1474
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2123
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1475
2124
  "table",
1476
2125
  {
1477
2126
  ref: tableRef,
1478
- className: (0, import_clsx10.default)(tableClassName),
2127
+ className: (0, import_clsx9.default)(tableClassName),
1479
2128
  style: {
1480
2129
  ...columnSizeVars,
1481
2130
  width: Math.floor(Math.max(table.getTotalSize() - columns.length, ref.current?.offsetWidth ?? table.getTotalSize()))
1482
2131
  },
1483
2132
  children: [
1484
- table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("colgroup", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2133
+ table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("colgroup", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1485
2134
  "col",
1486
2135
  {
1487
2136
  style: {
@@ -1492,22 +2141,22 @@ var Table = ({
1492
2141
  },
1493
2142
  header.id
1494
2143
  )) }, headerGroup.id)),
1495
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("thead", { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tr", { className: table.options.meta?.headerRowClassName, children: headerGroup.headers.map((header) => {
1496
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2144
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("thead", { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tr", { className: table.options.meta?.headerRowClassName, children: headerGroup.headers.map((header) => {
2145
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1497
2146
  "th",
1498
2147
  {
1499
2148
  colSpan: header.colSpan,
1500
- className: (0, import_clsx10.default)("relative group", header.column.columnDef.meta?.className),
2149
+ className: (0, import_clsx9.default)("relative group", header.column.columnDef.meta?.className),
1501
2150
  children: [
1502
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex-row-2 w-full", children: header.isPlaceholder ? null : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex-row-1 items-center", children: [
1503
- header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2151
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex-row-2 w-full", children: header.isPlaceholder ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex-row-1 items-center", children: [
2152
+ header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1504
2153
  TableSortButton,
1505
2154
  {
1506
2155
  sortDirection: header.column.getIsSorted(),
1507
2156
  onClick: () => header.column.toggleSorting()
1508
2157
  }
1509
2158
  ),
1510
- header.column.getCanFilter() && header.column.columnDef.meta?.filterType ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2159
+ header.column.getCanFilter() && header.column.columnDef.meta?.filterType ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1511
2160
  TableFilterButton,
1512
2161
  {
1513
2162
  column: header.column,
@@ -1519,7 +2168,7 @@ var Table = ({
1519
2168
  header.getContext()
1520
2169
  )
1521
2170
  ] }) }),
1522
- header.column.getCanResize() && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2171
+ header.column.getCanResize() && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1523
2172
  "div",
1524
2173
  {
1525
2174
  onMouseDown: header.getResizeHandler(),
@@ -1538,18 +2187,18 @@ var Table = ({
1538
2187
  header.id
1539
2188
  );
1540
2189
  }) }, headerGroup.id)) }),
1541
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("tbody", { children: [
2190
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("tbody", { children: [
1542
2191
  table.getRowModel().rows.map((row) => {
1543
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tr", { onClick: () => onRowClick(row, table), className: table.options.meta?.bodyRowClassName, children: row.getVisibleCells().map((cell) => {
1544
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("td", { children: (0, import_react_table.flexRender)(
2192
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tr", { onClick: () => onRowClick(row, table), className: table.options.meta?.bodyRowClassName, children: row.getVisibleCells().map((cell) => {
2193
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { children: (0, import_react_table.flexRender)(
1545
2194
  cell.column.columnDef.cell,
1546
2195
  cell.getContext()
1547
2196
  ) }, cell.id);
1548
2197
  }) }, row.id);
1549
2198
  }),
1550
2199
  range(table.getState().pagination.pageSize - table.getRowModel().rows.length, { allowEmptyRange: true }).map((row, index) => {
1551
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tr", { children: columns.map((column) => {
1552
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("td", { children: fillerRow ? fillerRow(column.id, table) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FillerRowElement, {}) }, column.id);
2200
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tr", { children: columns.map((column) => {
2201
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { children: fillerRow ? fillerRow(column.id, table) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FillerRowElement, {}) }, column.id);
1553
2202
  }) }, "filler-row-" + index);
1554
2203
  })
1555
2204
  ] })
@@ -1558,7 +2207,7 @@ var Table = ({
1558
2207
  )
1559
2208
  }
1560
2209
  ),
1561
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex-row-2 justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2210
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex-row-2 justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1562
2211
  Pagination,
1563
2212
  {
1564
2213
  pageIndex: table.getState().pagination.pageIndex,
@@ -1569,11 +2218,11 @@ var Table = ({
1569
2218
  ] });
1570
2219
  };
1571
2220
  var TableUncontrolled = ({ data, ...props }) => {
1572
- const [usedDate, setUsedData] = (0, import_react15.useState)(data);
1573
- (0, import_react15.useEffect)(() => {
2221
+ const [usedDate, setUsedData] = (0, import_react14.useState)(data);
2222
+ (0, import_react14.useEffect)(() => {
1574
2223
  setUsedData(data);
1575
2224
  }, [data]);
1576
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2225
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1577
2226
  Table,
1578
2227
  {
1579
2228
  ...props,
@@ -1592,31 +2241,30 @@ var TableWithSelection = ({
1592
2241
  meta,
1593
2242
  ...props
1594
2243
  }) => {
1595
- const columnsWithSelection = (0, import_react15.useMemo)(() => {
2244
+ const columnsWithSelection = (0, import_react14.useMemo)(() => {
1596
2245
  return [
1597
2246
  {
1598
2247
  id: selectionRowId,
1599
2248
  header: ({ table }) => {
1600
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1601
- Checkbox,
2249
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2250
+ Checkbox2,
1602
2251
  {
1603
- checked: table.getIsSomeRowsSelected() ? "indeterminate" : table.getIsAllRowsSelected(),
1604
- onChangeTristate: (value) => {
2252
+ checked: table.getIsAllRowsSelected(),
2253
+ indeterminate: table.getIsSomeRowsSelected(),
2254
+ onChange: (value) => {
1605
2255
  const newValue = !!value;
1606
2256
  table.toggleAllRowsSelected(newValue);
1607
- },
1608
- containerClassName: "max-w-6"
2257
+ }
1609
2258
  }
1610
2259
  );
1611
2260
  },
1612
2261
  cell: ({ row }) => {
1613
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1614
- Checkbox,
2262
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2263
+ Checkbox2,
1615
2264
  {
1616
2265
  disabled: !row.getCanSelect(),
1617
2266
  checked: row.getIsSelected(),
1618
- onChange: row.getToggleSelectedHandler(),
1619
- containerClassName: "max-w-6"
2267
+ onChange: row.getToggleSelectedHandler()
1620
2268
  }
1621
2269
  );
1622
2270
  },
@@ -1629,15 +2277,15 @@ var TableWithSelection = ({
1629
2277
  ...columns
1630
2278
  ];
1631
2279
  }, [columns, selectionRowId]);
1632
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2280
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1633
2281
  Table,
1634
2282
  {
1635
2283
  columns: columnsWithSelection,
1636
2284
  fillerRow: (columnId, table) => {
1637
2285
  if (columnId === selectionRowId) {
1638
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Checkbox, { checked: false, disabled: true, containerClassName: "max-w-6" });
2286
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Checkbox2, { checked: false, disabled: true, className: "max-w-6" });
1639
2287
  }
1640
- return fillerRow ? fillerRow(columnId, table) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FillerRowElement, {});
2288
+ return fillerRow ? fillerRow(columnId, table) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FillerRowElement, {});
1641
2289
  },
1642
2290
  state: {
1643
2291
  rowSelection,
@@ -1651,7 +2299,7 @@ var TableWithSelection = ({
1651
2299
  },
1652
2300
  meta: {
1653
2301
  ...meta,
1654
- bodyRowClassName: (0, import_clsx10.default)(
2302
+ bodyRowClassName: (0, import_clsx9.default)(
1655
2303
  { "cursor-pointer": !disableClickRowClickSelection },
1656
2304
  meta?.bodyRowClassName
1657
2305
  )