@helpwave/hightide 0.1.25 → 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 +64 -13
  11. package/dist/components/date/DatePicker.js.map +1 -1
  12. package/dist/components/date/DatePicker.mjs +65 -14
  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 +58 -7
  27. package/dist/components/date/YearMonthPicker.js.map +1 -1
  28. package/dist/components/date/YearMonthPicker.mjs +59 -8
  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 +12 -10
  101. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  102. package/dist/components/layout-and-navigation/Carousel.mjs +12 -10
  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 +104 -189
  133. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  134. package/dist/components/layout-and-navigation/Pagination.mjs +99 -184
  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 +41 -1
  143. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  144. package/dist/components/layout-and-navigation/StepperBar.mjs +41 -1
  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 +55 -18
  159. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  160. package/dist/components/loading-states/LoadingButton.mjs +55 -18
  161. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  162. package/dist/components/properties/CheckboxProperty.js +890 -135
  163. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  164. package/dist/components/properties/CheckboxProperty.mjs +897 -142
  165. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  166. package/dist/components/properties/DateProperty.js +153 -198
  167. package/dist/components/properties/DateProperty.js.map +1 -1
  168. package/dist/components/properties/DateProperty.mjs +146 -191
  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 +1143 -1160
  173. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  174. package/dist/components/properties/MultiSelectProperty.mjs +1156 -1163
  175. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  176. package/dist/components/properties/NumberProperty.js +155 -201
  177. package/dist/components/properties/NumberProperty.js.map +1 -1
  178. package/dist/components/properties/NumberProperty.mjs +148 -194
  179. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  180. package/dist/components/properties/PropertyBase.js +49 -9
  181. package/dist/components/properties/PropertyBase.js.map +1 -1
  182. package/dist/components/properties/PropertyBase.mjs +49 -9
  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 +1047 -834
  187. package/dist/components/properties/SelectProperty.js.map +1 -1
  188. package/dist/components/properties/SelectProperty.mjs +1063 -840
  189. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  190. package/dist/components/properties/TextProperty.js +97 -100
  191. package/dist/components/properties/TextProperty.js.map +1 -1
  192. package/dist/components/properties/TextProperty.mjs +100 -103
  193. package/dist/components/properties/TextProperty.mjs.map +1 -1
  194. package/dist/components/table/Table.js +1618 -993
  195. package/dist/components/table/Table.js.map +1 -1
  196. package/dist/components/table/Table.mjs +1625 -1000
  197. package/dist/components/table/Table.mjs.map +1 -1
  198. package/dist/components/table/TableFilterButton.js +116 -201
  199. package/dist/components/table/TableFilterButton.js.map +1 -1
  200. package/dist/components/table/TableFilterButton.mjs +105 -190
  201. package/dist/components/table/TableFilterButton.mjs.map +1 -1
  202. package/dist/components/table/TableSortButton.js +4 -3
  203. package/dist/components/table/TableSortButton.js.map +1 -1
  204. package/dist/components/table/TableSortButton.mjs +4 -3
  205. package/dist/components/table/TableSortButton.mjs.map +1 -1
  206. package/dist/components/user-action/Button.d.mts +15 -11
  207. package/dist/components/user-action/Button.d.ts +15 -11
  208. package/dist/components/user-action/Button.js +10 -9
  209. package/dist/components/user-action/Button.js.map +1 -1
  210. package/dist/components/user-action/Button.mjs +10 -9
  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 +793 -103
  215. package/dist/components/user-action/Checkbox.js.map +1 -1
  216. package/dist/components/user-action/Checkbox.mjs +794 -104
  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 +66 -13
  225. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  226. package/dist/components/user-action/DateAndTimePicker.mjs +67 -14
  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 +93 -178
  247. package/dist/components/user-action/SearchBar.js.map +1 -1
  248. package/dist/components/user-action/SearchBar.mjs +86 -171
  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 +779 -374
  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 +3 -3
  374. package/dist/theming/useTheme.js.map +1 -1
  375. package/dist/theming/useTheme.mjs +3 -3
  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 -674
  443. package/dist/components/dialogs/ConfirmDialog.js.map +0 -1
  444. package/dist/components/dialogs/ConfirmDialog.mjs +0 -638
  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 -702
  451. package/dist/components/layout-and-navigation/Overlay.js.map +0 -1
  452. package/dist/components/layout-and-navigation/Overlay.mjs +0 -665
  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 -758
  457. package/dist/components/layout-and-navigation/SearchableList.js.map +0 -1
  458. package/dist/components/layout-and-navigation/SearchableList.mjs +0 -724
  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 -687
  469. package/dist/components/modals/ConfirmModal.js.map +0 -1
  470. package/dist/components/modals/ConfirmModal.mjs +0 -651
  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 -717
  475. package/dist/components/modals/DiscardChangesModal.js.map +0 -1
  476. package/dist/components/modals/DiscardChangesModal.mjs +0 -681
  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 -976
  481. package/dist/components/modals/InputModal.js.map +0 -1
  482. package/dist/components/modals/InputModal.mjs +0 -940
  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 -1468
  487. package/dist/components/modals/LanguageModal.js.map +0 -1
  488. package/dist/components/modals/LanguageModal.mjs +0 -1432
  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 -1497
  493. package/dist/components/modals/ThemeModal.js.map +0 -1
  494. package/dist/components/modals/ThemeModal.mjs +0 -1461
  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 -1468
  504. package/dist/components/user-action/MultiSelect.js.map +0 -1
  505. package/dist/components/user-action/MultiSelect.mjs +0 -1433
  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 -1236
  510. package/dist/components/user-action/Select.js.map +0 -1
  511. package/dist/components/user-action/Select.mjs +0 -1201
  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 -12610
  527. package/dist/index.js.map +0 -1
  528. package/dist/index.mjs +0 -12447
  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,6 +872,7 @@ 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...",
@@ -243,421 +897,149 @@ var formTranslation = {
243
897
  }
244
898
  };
245
899
 
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"
548
- };
549
- var ButtonUtil = {
550
- paddingMapping,
551
- iconPaddingMapping
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
- color = "primary",
556
- size = "medium",
557
- startIcon,
558
- endIcon,
559
- onClick,
560
- className,
561
- ...restProps
562
- }, ref) {
563
- const colorClasses = {
564
- primary: "not-disabled:bg-button-solid-primary-background not-disabled:text-button-solid-primary-text",
565
- secondary: "not-disabled:bg-button-solid-secondary-background not-disabled:text-button-solid-secondary-text",
566
- tertiary: "not-disabled:bg-button-solid-tertiary-background not-disabled:text-button-solid-tertiary-text",
567
- positive: "not-disabled:bg-button-solid-positive-background not-disabled:text-button-solid-positive-text",
568
- warning: "not-disabled:bg-button-solid-warning-background not-disabled:text-button-solid-warning-text",
569
- negative: "not-disabled:bg-button-solid-negative-background not-disabled:text-button-solid-negative-text",
570
- neutral: "not-disabled:bg-button-solid-neutral-background not-disabled:text-button-solid-neutral-text"
571
- }[color];
572
- const iconColorClasses = {
573
- primary: "not-group-disabled:text-button-solid-primary-icon",
574
- secondary: "not-group-disabled:text-button-solid-secondary-icon",
575
- tertiary: "not-group-disabled:text-button-solid-tertiary-icon",
576
- positive: "not-group-disabled:text-button-solid-positive-icon",
577
- warning: "not-group-disabled:text-button-solid-warning-icon",
578
- negative: "not-group-disabled:text-button-solid-negative-icon",
579
- neutral: "not-group-disabled:text-button-solid-neutral-icon"
580
- }[color];
581
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
582
- "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,
583
934
  {
584
- ref,
585
- onClick,
586
- className: (0, import_clsx3.default)(
587
- "group font-semibold",
588
- colorClasses,
589
- "not-disabled:hover:brightness-90",
590
- "disabled:text-disabled-text disabled:bg-disabled-background",
591
- ButtonUtil.paddingMapping[size],
592
- className
593
- ),
594
- ...restProps,
595
- children: [
596
- startIcon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
597
- "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",
598
939
  {
599
- className: (0, import_clsx3.default)(
600
- iconColorClasses,
601
- "group-disabled:text-disabled-icon"
602
- ),
603
- 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
604
942
  }
605
- ),
606
- children,
607
- endIcon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
608
- "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,
609
949
  {
610
- className: (0, import_clsx3.default)(
611
- iconColorClasses,
612
- "group-disabled:text-disabled-icon"
613
- ),
614
- children: endIcon
950
+ value: filterValue ?? "",
951
+ autoFocus: true,
952
+ placeholder: translation("text"),
953
+ onChangeText: setFilterValue,
954
+ className: "h-10"
615
955
  }
616
- )
617
- ]
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
+ ] })
618
1025
  }
619
1026
  );
620
- });
621
- var IconButton = ({
622
- children,
623
- color = "primary",
624
- size = "medium",
625
- className,
626
- ...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
627
1034
  }) => {
628
- const colorClasses = {
629
- primary: "not-disabled:bg-button-solid-primary-background not-disabled:text-button-solid-primary-text",
630
- secondary: "not-disabled:bg-button-solid-secondary-background not-disabled:text-button-solid-secondary-text",
631
- tertiary: "not-disabled:bg-button-solid-tertiary-background not-disabled:text-button-solid-tertiary-text",
632
- positive: "not-disabled:bg-button-solid-positive-background not-disabled:text-button-solid-positive-text",
633
- warning: "not-disabled:bg-button-solid-warning-background not-disabled:text-button-solid-warning-text",
634
- negative: "not-disabled:bg-button-solid-negative-background not-disabled:text-button-solid-negative-text",
635
- neutral: "not-disabled:bg-button-solid-neutral-background not-disabled:text-button-solid-neutral-text",
636
- transparent: "not-disabled:bg-transparent"
637
- }[color];
638
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
639
- "button",
640
- {
641
- className: (0, import_clsx3.default)(
642
- colorClasses,
643
- "not-disabled:hover:brightness-90",
644
- "disabled:text-disabled-text",
645
- {
646
- "disabled:bg-disabled-background": color !== "transparent",
647
- "disabled:opacity-70": color === "transparent",
648
- "not-disabled:hover:bg-button-text-hover-background": color === "transparent"
649
- },
650
- ButtonUtil.iconPaddingMapping[size],
651
- className
652
- ),
653
- ...restProps,
654
- children
655
- }
656
- );
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: "-" });
657
1036
  };
658
1037
 
659
1038
  // src/components/layout-and-navigation/Pagination.tsx
660
- 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");
661
1043
  var Pagination = ({
662
1044
  overwriteTranslation,
663
1045
  pageIndex,
@@ -667,11 +1049,11 @@ var Pagination = ({
667
1049
  style
668
1050
  }) => {
669
1051
  const translation = useTranslation([formTranslation], overwriteTranslation);
670
- const [value, setValue] = (0, import_react8.useState)((pageIndex + 1).toString());
1052
+ const [value, setValue] = (0, import_react12.useState)((pageIndex + 1).toString());
671
1053
  const noPages = pageCount === 0;
672
1054
  const onFirstPage = pageIndex === 0 && !noPages;
673
1055
  const onLastPage = pageIndex === pageCount - 1;
674
- (0, import_react8.useEffect)(() => {
1056
+ (0, import_react12.useEffect)(() => {
675
1057
  if (noPages) {
676
1058
  setValue("0");
677
1059
  } else {
@@ -681,17 +1063,16 @@ var Pagination = ({
681
1063
  const changePage = (page) => {
682
1064
  onPageChanged(page);
683
1065
  };
684
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: (0, import_clsx4.default)("flex-row-1", className), style, children: [
685
- /* @__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, {}) }),
686
- /* @__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, {}) }),
687
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex-row-2 min-w-56 items-center justify-center mx-2 text-center", children: [
688
- /* @__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)(
689
1071
  Input,
690
1072
  {
691
1073
  value,
692
- containerClassName: "flex flex-1 h-10",
693
- className: (0, import_clsx4.default)(
694
- "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"
695
1076
  ),
696
1077
  type: "number",
697
1078
  min: 1,
@@ -699,19 +1080,19 @@ var Pagination = ({
699
1080
  disabled: noPages,
700
1081
  onChangeText: (value2) => {
701
1082
  if (value2) {
702
- setValue(clamp(Number(value2), 1, pageCount).toString());
1083
+ setValue(clamp(Number(value2), [1, pageCount]).toString());
703
1084
  } else {
704
1085
  setValue(value2);
705
1086
  }
706
1087
  },
707
1088
  onEditCompleted: (value2) => {
708
- changePage(clamp(Number(value2) - 1, 0, pageCount - 1));
1089
+ changePage(clamp(Number(value2) - 1, [0, pageCount - 1]));
709
1090
  },
710
1091
  editCompleteOptions: { delay: 800 }
711
1092
  }
712
1093
  ),
713
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "select-none w-10", children: translation("of") }),
714
- /* @__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)(
715
1096
  "span",
716
1097
  {
717
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",
@@ -719,571 +1100,816 @@ var Pagination = ({
719
1100
  }
720
1101
  )
721
1102
  ] }),
722
- /* @__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, {}) }),
723
- /* @__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, {}) })
724
1105
  ] });
725
1106
  };
726
1107
 
727
- // src/components/table/Table.tsx
728
- var import_clsx10 = __toESM(require("clsx"));
729
- var import_react_table = require("@tanstack/react-table");
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"));
730
1112
 
731
- // src/util/array.ts
732
- var defaultRangeOptions = {
733
- allowEmptyRange: false,
734
- stepSize: 1,
735
- exclusiveStart: false,
736
- exclusiveEnd: true
737
- };
738
- var range = (endOrRange, options) => {
739
- const { allowEmptyRange, stepSize, exclusiveStart, exclusiveEnd } = { ...defaultRangeOptions, ...options };
740
- let start = 0;
741
- let end;
742
- if (typeof endOrRange === "number") {
743
- end = endOrRange;
744
- } else {
745
- start = endOrRange[0];
746
- end = endOrRange[1];
747
- }
748
- if (!exclusiveEnd) {
749
- end -= 1;
750
- }
751
- if (exclusiveStart) {
752
- start += 1;
1113
+ // node_modules/@radix-ui/react-checkbox/dist/index.mjs
1114
+ var React11 = __toESM(require("react"), 1);
1115
+
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;
753
1123
  }
754
- if (end - 1 < start) {
755
- if (!allowEmptyRange) {
756
- console.warn(`range: end (${end}) < start (${start}) should be allowed explicitly, set options.allowEmptyRange to true`);
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
+ };
757
1146
  }
758
- return [];
759
- }
760
- return Array.from({ length: end - start }, (_, index) => index * stepSize + start);
761
- };
762
-
763
- // src/components/table/Table.tsx
764
- var import_react_custom_scrollbars_2 = require("react-custom-scrollbars-2");
1147
+ };
1148
+ }
1149
+ function useComposedRefs(...refs) {
1150
+ return React2.useCallback(composeRefs(...refs), refs);
1151
+ }
765
1152
 
766
- // src/components/user-action/Checkbox.tsx
767
- var import_react9 = require("react");
768
- var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
769
- var import_lucide_react2 = require("lucide-react");
770
- var import_clsx5 = __toESM(require("clsx"));
771
- var import_jsx_runtime6 = require("react/jsx-runtime");
772
- var checkboxSizeMapping = {
773
- small: "size-5",
774
- medium: "size-6",
775
- large: "size-8"
776
- };
777
- var checkboxIconSizeMapping = {
778
- small: "size-4",
779
- medium: "size-5",
780
- large: "size-7"
781
- };
782
- var Checkbox = ({
783
- id,
784
- label,
785
- checked,
786
- disabled,
787
- onChange,
788
- onChangeTristate,
789
- size = "medium",
790
- className = "",
791
- containerClassName
792
- }) => {
793
- const usedSizeClass = checkboxSizeMapping[size];
794
- const innerIconSize = checkboxIconSizeMapping[size];
795
- const propagateChange = (checked2) => {
796
- if (onChangeTristate) {
797
- onChangeTristate(checked2);
798
- }
799
- if (onChange) {
800
- onChange(checked2 === "indeterminate" ? false : checked2);
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}\``);
801
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
+ };
802
1189
  };
803
- const changeValue = () => {
804
- if (disabled) {
805
- return;
806
- }
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)(
811
- "div",
812
- {
813
- className: (0, import_clsx5.default)("group flex-row-2 items-center", {
814
- "cursor-pointer": !disabled,
815
- "cursor-not-allowed": disabled
816
- }, containerClassName),
817
- onClick: changeValue,
818
- children: [
819
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
820
- CheckboxPrimitive.Root,
821
- {
822
- onCheckedChange: propagateChange,
823
- checked,
824
- disabled,
825
- id,
826
- className: (0, import_clsx5.default)(usedSizeClass, `items-center border-2 rounded outline-none `, {
827
- "text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
828
- "focus:border-primary group-hover:border-primary ": !disabled,
829
- "bg-input-background": !disabled && !checked,
830
- "bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
831
- }, className),
832
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(CheckboxPrimitive.Indicator, { children: [
833
- checked === true && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Check, { className: innerIconSize }),
834
- checked === "indeterminate" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Minus, { className: innerIconSize })
835
- ] })
836
- }
837
- ),
838
- label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
839
- Label,
840
- {
841
- ...label,
842
- className: (0, import_clsx5.default)(
843
- label.className,
844
- {
845
- "cursor-pointer": !disabled,
846
- "cursor-not-allowed": disabled
847
- }
848
- ),
849
- htmlFor: id
850
- }
851
- )
852
- ]
1210
+ createScope.scopeName = baseScope.scopeName;
1211
+ return createScope;
1212
+ }
1213
+
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);
853
1220
  }
854
- );
855
- };
1221
+ };
1222
+ }
856
1223
 
857
- // src/components/table/TableFilterButton.tsx
858
- var import_lucide_react3 = require("lucide-react");
1224
+ // node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
1225
+ var React5 = __toESM(require("react"), 1);
859
1226
 
860
- // src/components/user-action/Menu.tsx
861
- var import_react12 = require("react");
862
- var import_clsx6 = __toESM(require("clsx"));
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 : () => {
1230
+ };
863
1231
 
864
- // src/hooks/useOutsideClick.ts
865
- var import_react10 = require("react");
866
- var useOutsideClick = (refs, handler) => {
867
- (0, import_react10.useEffect)(() => {
868
- const listener = (event) => {
869
- if (event.target === null) return;
870
- if (refs.some((ref) => !ref.current || ref.current.contains(event.target))) {
871
- return;
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
+ );
872
1258
  }
873
- handler();
874
- };
875
- document.addEventListener("mousedown", listener);
876
- document.addEventListener("touchstart", listener);
877
- return () => {
878
- document.removeEventListener("mousedown", listener);
879
- document.removeEventListener("touchstart", listener);
880
- };
881
- }, [refs, handler]);
882
- };
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");
883
1299
 
884
- // src/hooks/useHoverState.ts
885
- var import_react11 = require("react");
886
- var defaultUseHoverStateProps = {
887
- closingDelay: 200,
888
- isDisabled: false
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;
889
1366
  };
890
- var useHoverState = (props = void 0) => {
891
- const { closingDelay, isDisabled } = { ...defaultUseHoverStateProps, ...props };
892
- const [isHovered, setIsHovered] = (0, import_react11.useState)(false);
893
- const [timer, setTimer] = (0, import_react11.useState)();
894
- const onMouseEnter = () => {
895
- if (isDisabled) {
896
- 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"
897
1385
  }
898
- clearTimeout(timer);
899
- setIsHovered(true);
900
- };
901
- const onMouseLeave = () => {
902
- if (isDisabled) {
903
- 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;
904
1411
  }
905
- setTimer(setTimeout(() => {
906
- setIsHovered(false);
907
- }, closingDelay));
908
- };
909
- (0, import_react11.useEffect)(() => {
910
- 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);
911
1441
  return () => {
912
- clearTimeout(timer);
1442
+ ownerWindow.clearTimeout(timeoutId);
1443
+ node.removeEventListener("animationstart", handleAnimationStart);
1444
+ node.removeEventListener("animationcancel", handleAnimationEnd);
1445
+ node.removeEventListener("animationend", handleAnimationEnd);
913
1446
  };
1447
+ } else {
1448
+ send("ANIMATION_END");
914
1449
  }
915
- });
916
- (0, import_react11.useEffect)(() => {
917
- if (timer) {
918
- clearTimeout(timer);
919
- }
920
- }, [isDisabled]);
1450
+ }, [node, send]);
921
1451
  return {
922
- isHovered,
923
- setIsHovered,
924
- 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
+ }, [])
925
1457
  };
926
- };
927
-
928
- // src/util/PropsWithFunctionChildren.ts
929
- var resolve = (children, bag) => {
930
- if (typeof children === "function") {
931
- 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;
932
1467
  }
933
- return children ?? void 0;
934
- };
935
- var BagFunctionUtil = {
936
- resolve
937
- };
938
-
939
- // src/hooks/usePopoverPosition.ts
940
- var defaultPopoverPositionOptions = {
941
- edgePadding: 16,
942
- outerGap: 4,
943
- horizontalAlignment: "leftInside",
944
- verticalAlignment: "bottomOutside",
945
- disabled: false
946
- };
947
- var usePopoverPosition = (trigger, options) => {
948
- const {
949
- edgePadding,
950
- outerGap,
951
- verticalAlignment,
952
- horizontalAlignment,
953
- disabled
954
- } = { ...defaultPopoverPositionOptions, ...options };
955
- if (disabled || !trigger) {
956
- return {};
1468
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
1469
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1470
+ if (mayWarn) {
1471
+ return element.props.ref;
957
1472
  }
958
- const left = {
959
- leftOutside: trigger.left - outerGap,
960
- leftInside: trigger.left,
961
- rightOutside: trigger.right + outerGap,
962
- rightInside: trigger.right,
963
- center: trigger.left + trigger.width / 2
964
- }[horizontalAlignment];
965
- const top = {
966
- topOutside: trigger.top - outerGap,
967
- topInside: trigger.top,
968
- bottomOutside: trigger.bottom + outerGap,
969
- bottomInside: trigger.bottom,
970
- center: trigger.top + trigger.height / 2
971
- }[verticalAlignment];
972
- const translateX = {
973
- leftOutside: "-100%",
974
- leftInside: void 0,
975
- rightOutside: void 0,
976
- rightInside: "-100%",
977
- center: "-50%"
978
- }[horizontalAlignment];
979
- const translateY = {
980
- topOutside: "-100%",
981
- topInside: void 0,
982
- bottomOutside: void 0,
983
- bottomInside: "-100%",
984
- center: "-50%"
985
- }[verticalAlignment];
986
- return {
987
- left: Math.max(left, edgePadding),
988
- top: Math.max(top, edgePadding),
989
- translate: [translateX ?? "0", translateY ?? "0"].join(" ")
990
- };
991
- };
1473
+ return element.props.ref || element.ref;
1474
+ }
992
1475
 
993
- // src/components/user-action/Menu.tsx
994
- var import_react_dom = require("react-dom");
995
- var import_jsx_runtime7 = require("react/jsx-runtime");
996
- function getScrollableParents(element) {
997
- const scrollables = [];
998
- let parent = element.parentElement;
999
- while (parent) {
1000
- scrollables.push(parent);
1001
- 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
+ }
1002
1549
  }
1003
- return scrollables;
1550
+ return { ...slotProps, ...overrideProps };
1004
1551
  }
1005
- var Menu = ({
1006
- trigger,
1007
- children,
1008
- alignmentHorizontal = "leftInside",
1009
- alignmentVertical = "bottomOutside",
1010
- showOnHover = false,
1011
- disabled = false,
1012
- menuClassName = ""
1013
- }) => {
1014
- const { isHovered: isOpen, setIsHovered: setIsOpen } = useHoverState({ isDisabled: !showOnHover || disabled });
1015
- const triggerRef = (0, import_react12.useRef)(null);
1016
- const menuRef = (0, import_react12.useRef)(null);
1017
- useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
1018
- const [isHidden, setIsHidden] = (0, import_react12.useState)(true);
1019
- const bag = {
1020
- isOpen,
1021
- close: () => setIsOpen(false),
1022
- toggleOpen: () => setIsOpen((prevState) => !prevState),
1023
- disabled
1024
- };
1025
- const menuPosition = usePopoverPosition(
1026
- triggerRef.current?.getBoundingClientRect(),
1027
- { verticalAlignment: alignmentVertical, horizontalAlignment: alignmentHorizontal, disabled }
1028
- );
1029
- (0, import_react12.useEffect)(() => {
1030
- if (!isOpen) return;
1031
- const triggerEl = triggerRef.current;
1032
- if (!triggerEl) return;
1033
- const scrollableParents = getScrollableParents(triggerEl);
1034
- const close = () => setIsOpen(false);
1035
- scrollableParents.forEach((parent) => {
1036
- parent.addEventListener("scroll", close);
1037
- });
1038
- window.addEventListener("resize", close);
1039
- return () => {
1040
- scrollableParents.forEach((parent) => {
1041
- parent.removeEventListener("scroll", close);
1042
- });
1043
- window.removeEventListener("resize", close);
1044
- };
1045
- }, [isOpen, setIsOpen]);
1046
- (0, import_react12.useEffect)(() => {
1047
- if (isOpen) {
1048
- 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;
1049
1594
  }
1050
- }, [isOpen]);
1051
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1052
- trigger(bag, triggerRef),
1053
- (0, import_react_dom.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1054
- "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,
1055
1686
  {
1056
- ref: menuRef,
1057
- onClick: (e) => e.stopPropagation(),
1058
- className: (0, import_clsx6.default)(
1059
- "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg shadow-strong z-[300]",
1060
- {
1061
- "animate-pop-in": isOpen,
1062
- "animate-pop-out": !isOpen,
1063
- "hidden": isHidden
1064
- },
1065
- menuClassName
1066
- ),
1067
- onAnimationEnd: () => {
1068
- if (!isOpen) {
1069
- 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();
1070
1705
  }
1071
- },
1072
- style: {
1073
- ...menuPosition
1074
- },
1075
- children: BagFunctionUtil.resolve(children, bag)
1706
+ })
1076
1707
  }
1077
- ), document.body)
1078
- ] });
1079
- };
1080
-
1081
- // src/components/table/TableFilterButton.tsx
1082
- var import_react13 = require("react");
1083
- var import_jsx_runtime8 = require("react/jsx-runtime");
1084
- var defaultTableFilterTranslation = {
1085
- en: {
1086
- filter: "Filter",
1087
- min: "Min",
1088
- max: "Max",
1089
- startDate: "Start",
1090
- endDate: "End",
1091
- text: "Text..."
1092
- },
1093
- de: {
1094
- filter: "Filter",
1095
- min: "Min",
1096
- max: "Max",
1097
- startDate: "Start",
1098
- endDate: "Ende",
1099
- text: "Text..."
1708
+ );
1100
1709
  }
1101
- };
1102
- var TableFilterButton = ({
1103
- filterType,
1104
- column
1105
- }) => {
1106
- const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
1107
- const columnFilterValue = column.getFilterValue();
1108
- const [filterValue, setFilterValue] = (0, import_react13.useState)(columnFilterValue);
1109
- const hasFilter = !!filterValue;
1110
- (0, import_react13.useEffect)(() => {
1111
- setFilterValue(columnFilterValue);
1112
- }, [columnFilterValue]);
1113
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1114
- Menu,
1115
- {
1116
- trigger: ({ toggleOpen }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { ref, className: "relative", children: [
1117
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconButton, { color: "neutral", size: "tiny", onClick: toggleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react3.FilterIcon, {}) }),
1118
- hasFilter && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1119
- "div",
1120
- {
1121
- className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-primary pointer-events-none",
1122
- "aria-hidden": true
1123
- }
1124
- )
1125
- ] }),
1126
- children: ({ close }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-col-1 p-2 items-start font-normal text-menu-text", children: [
1127
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h4", { className: "textstyle-title-sm", children: translation("filter") }),
1128
- filterType === "text" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1129
- Input,
1130
- {
1131
- value: filterValue ?? "",
1132
- autoFocus: true,
1133
- placeholder: translation("text"),
1134
- onChangeText: setFilterValue,
1135
- className: "h-10"
1136
- }
1137
- ),
1138
- filterType === "range" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-row-2 items-center", children: [
1139
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1140
- Input,
1141
- {
1142
- value: filterValue?.[0] ?? "",
1143
- type: "number",
1144
- placeholder: translation("min"),
1145
- onChangeText: (text) => {
1146
- const num = Number(text);
1147
- setFilterValue((old) => [num, old?.[1]]);
1148
- },
1149
- className: "h-10 input-indicator-hidden w-40"
1150
- }
1151
- ),
1152
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "font-bold", children: "-" }),
1153
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1154
- Input,
1155
- {
1156
- value: filterValue?.[1] ?? "",
1157
- type: "number",
1158
- placeholder: translation("max"),
1159
- onChangeText: (text) => {
1160
- const num = Number(text);
1161
- setFilterValue((old) => [old?.[0], num]);
1162
- },
1163
- className: "h-10 input-indicator-hidden w-40"
1164
- }
1165
- )
1166
- ] }),
1167
- filterType === "dateRange" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
1168
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1169
- 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,
1170
1741
  {
1171
- value: filterValue?.[0] ? filterValue?.[0].toISOString().slice(0, 16) : "",
1172
- type: "datetime-local",
1173
- placeholder: translation("startDate"),
1174
- onChangeText: (text) => {
1175
- const value = new Date(text);
1176
- setFilterValue((old) => [value, old?.[1]]);
1177
- },
1178
- className: "h-10 w-50"
1742
+ ...checkboxProps,
1743
+ ref: forwardedRef,
1744
+ __scopeCheckbox
1179
1745
  }
1180
1746
  ),
1181
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1182
- Input,
1747
+ isFormControl && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1748
+ CheckboxBubbleInput,
1183
1749
  {
1184
- value: filterValue?.[1] ? filterValue?.[1].toISOString().slice(0, 16) : "",
1185
- type: "datetime-local",
1186
- placeholder: translation("endDate"),
1187
- onChangeText: (text) => {
1188
- const value = new Date(text);
1189
- setFilterValue((old) => [old?.[0], value]);
1190
- },
1191
- className: "h-10 w-50"
1750
+ __scopeCheckbox
1192
1751
  }
1193
1752
  )
1194
- ] }),
1195
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-row-2 justify-end w-full", children: [
1196
- hasFilter && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SolidButton, { color: "negative", size: "small", onClick: () => {
1197
- column.setFilterValue(void 0);
1198
- close();
1199
- }, children: translation("remove") }),
1200
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SolidButton, { size: "small", onClick: () => {
1201
- column.setFilterValue(filterValue);
1202
- close();
1203
- }, children: translation("apply") })
1204
1753
  ] })
1205
- ] })
1206
- }
1207
- );
1208
- };
1209
-
1210
- // src/components/table/TableSortButton.tsx
1211
- var import_lucide_react4 = require("lucide-react");
1212
- var import_clsx7 = __toESM(require("clsx"));
1213
- var import_jsx_runtime9 = require("react/jsx-runtime");
1214
- var TableSortButton = ({
1215
- sortDirection,
1216
- invert = false,
1217
- color = "neutral",
1218
- className,
1219
- ...buttonProps
1220
- }) => {
1221
- let icon = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react4.ChevronsUpDown, { className: "w-full h-full" });
1222
- if (sortDirection) {
1223
- let usedSortDirection = sortDirection;
1224
- if (invert) {
1225
- usedSortDirection = usedSortDirection === "desc" ? "asc" : "desc";
1226
- }
1227
- 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
+ );
1228
1756
  }
1229
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1230
- IconButton,
1231
- {
1232
- size: "tiny",
1233
- color,
1234
- className: (0, import_clsx7.default)(className),
1235
- ...buttonProps,
1236
- children: icon
1237
- }
1238
- );
1239
- };
1240
-
1241
- // src/components/table/FillerRowElement.tsx
1242
- var import_clsx8 = require("clsx");
1243
- var import_jsx_runtime10 = require("react/jsx-runtime");
1244
- var FillerRowElement = ({
1245
- className
1246
- }) => {
1247
- 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: "-" });
1248
- };
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
+ }
1249
1860
 
1250
- // src/components/table/Filter.ts
1251
- var dateRange = (row, columnId, filterValue) => {
1252
- const [min, max] = filterValue;
1253
- const value = row.getValue(columnId);
1254
- const date = value instanceof Date ? value : new Date(value);
1255
- if (isNaN(date.getTime())) return false;
1256
- if (min && date < min) return false;
1257
- if (max && date > max) return false;
1258
- return true;
1259
- };
1260
- var TableFilters = {
1261
- 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"
1262
1867
  };
1263
-
1264
- // src/hooks/useResizeCallbackWrapper.ts
1265
- var import_react14 = require("react");
1266
- var useResizeCallbackWrapper = (callback) => {
1267
- (0, import_react14.useEffect)(() => {
1268
- window.addEventListener("resize", callback);
1269
- return () => {
1270
- window.removeEventListener("resize", callback);
1271
- };
1272
- }, [callback]);
1868
+ var checkboxIconSizeMapping = {
1869
+ sm: "size-4 stroke-3",
1870
+ md: "size-5 stroke-3",
1871
+ lg: "size-7 stroke-3"
1273
1872
  };
1274
-
1275
- // src/components/table/TableCell.tsx
1276
- var import_clsx9 = require("clsx");
1277
- var import_jsx_runtime11 = require("react/jsx-runtime");
1278
- var TableCell = ({
1279
- children,
1280
- className
1873
+ var Checkbox2 = ({
1874
+ disabled,
1875
+ checked = false,
1876
+ indeterminate = false,
1877
+ onChange,
1878
+ size = "md",
1879
+ className = "",
1880
+ ...props
1281
1881
  }) => {
1282
- 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
+ );
1283
1909
  };
1284
1910
 
1285
1911
  // src/components/table/Table.tsx
1286
- var import_jsx_runtime12 = require("react/jsx-runtime");
1912
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1287
1913
  var Table = ({
1288
1914
  data,
1289
1915
  fillerRow,
@@ -1296,22 +1922,22 @@ var Table = ({
1296
1922
  columns,
1297
1923
  ...tableOptions
1298
1924
  }) => {
1299
- const ref = (0, import_react15.useRef)(null);
1300
- const tableRef = (0, import_react15.useRef)(null);
1301
- 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) => {
1302
1928
  return {
1303
1929
  ...previousValue,
1304
1930
  [currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
1305
1931
  };
1306
1932
  }, {}));
1307
- const [columnSizingInfo, setColumnSizingInfo] = (0, import_react15.useState)();
1308
- const [pagination, setPagination] = (0, import_react15.useState)({
1933
+ const [columnSizingInfo, setColumnSizingInfo] = (0, import_react14.useState)();
1934
+ const [pagination, setPagination] = (0, import_react14.useState)({
1309
1935
  pageSize: 10,
1310
1936
  pageIndex: 0,
1311
1937
  ...initialState?.pagination
1312
1938
  });
1313
- const [columnFilters, setColumnFilters] = (0, import_react15.useState)(initialState?.columnFilters);
1314
- const computedColumnMinWidths = (0, import_react15.useMemo)(() => {
1939
+ const [columnFilters, setColumnFilters] = (0, import_react14.useState)(initialState?.columnFilters);
1940
+ const computedColumnMinWidths = (0, import_react14.useMemo)(() => {
1315
1941
  return columns.reduce((previousValue, column) => {
1316
1942
  return {
1317
1943
  ...previousValue,
@@ -1320,7 +1946,7 @@ var Table = ({
1320
1946
  };
1321
1947
  }, {});
1322
1948
  }, [columns, defaultColumn]);
1323
- const computedColumnMaxWidths = (0, import_react15.useMemo)(() => {
1949
+ const computedColumnMaxWidths = (0, import_react14.useMemo)(() => {
1324
1950
  return columns.reduce((previousValue, column) => {
1325
1951
  return {
1326
1952
  ...previousValue,
@@ -1328,12 +1954,12 @@ var Table = ({
1328
1954
  };
1329
1955
  }, {});
1330
1956
  }, [columns, defaultColumn]);
1331
- const tableMinWidth = (0, import_react15.useMemo)(() => {
1957
+ const tableMinWidth = (0, import_react14.useMemo)(() => {
1332
1958
  return columns.reduce((sum, column) => {
1333
1959
  return sum + computedColumnMinWidths[column.id];
1334
1960
  }, 0);
1335
1961
  }, [columns, computedColumnMinWidths]);
1336
- const updateColumnSizes = (0, import_react15.useMemo)(() => {
1962
+ const updateColumnSizes = (0, import_react14.useMemo)(() => {
1337
1963
  return (previous) => {
1338
1964
  const updateSizing = {
1339
1965
  ...columnSizing,
@@ -1341,7 +1967,7 @@ var Table = ({
1341
1967
  };
1342
1968
  const containerWidth = ref.current.offsetWidth;
1343
1969
  columns.forEach((column) => {
1344
- 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]);
1345
1971
  });
1346
1972
  const width = columns.reduce((previousValue, currentValue) => previousValue + updateSizing[currentValue.id], 0);
1347
1973
  if (width > containerWidth) {
@@ -1402,7 +2028,7 @@ var Table = ({
1402
2028
  minSize: 60,
1403
2029
  maxSize: 700,
1404
2030
  cell: ({ cell }) => {
1405
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TableCell, { children: cell.getValue() });
2031
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TableCell, { children: cell.getValue() });
1406
2032
  },
1407
2033
  ...defaultColumn
1408
2034
  },
@@ -1450,18 +2076,18 @@ var Table = ({
1450
2076
  columnResizeMode: "onChange",
1451
2077
  ...tableOptions
1452
2078
  });
1453
- const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react15.useState)(false);
1454
- (0, import_react15.useEffect)(() => {
2079
+ const [hasInitializedSizing, setHasInitializedSizing] = (0, import_react14.useState)(false);
2080
+ (0, import_react14.useEffect)(() => {
1455
2081
  if (!hasInitializedSizing && ref.current) {
1456
2082
  setHasInitializedSizing(true);
1457
2083
  table.setColumnSizing(updateColumnSizes(columnSizing));
1458
2084
  }
1459
2085
  }, [columnSizing, hasInitializedSizing]);
1460
- useResizeCallbackWrapper((0, import_react15.useCallback)(() => {
2086
+ useResizeCallbackWrapper((0, import_react14.useCallback)(() => {
1461
2087
  table.setColumnSizing(updateColumnSizes);
1462
2088
  }, [updateColumnSizes]));
1463
2089
  const pageCount = table.getPageCount();
1464
- (0, import_react15.useEffect)(() => {
2090
+ (0, import_react14.useEffect)(() => {
1465
2091
  const totalPages = pageCount;
1466
2092
  if (totalPages === 0) {
1467
2093
  if (pagination.pageIndex !== 0) {
@@ -1477,7 +2103,7 @@ var Table = ({
1477
2103
  }));
1478
2104
  }
1479
2105
  }, [data, pageCount, pagination.pageSize, pagination.pageIndex]);
1480
- const columnSizeVars = (0, import_react15.useMemo)(() => {
2106
+ const columnSizeVars = (0, import_react14.useMemo)(() => {
1481
2107
  const headers = table.getFlatHeaders();
1482
2108
  const colSizes = {};
1483
2109
  for (let i = 0; i < headers.length; i++) {
@@ -1487,24 +2113,24 @@ var Table = ({
1487
2113
  }
1488
2114
  return colSizes;
1489
2115
  }, [table.getState().columnSizingInfo, table.getState().columnSizing]);
1490
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { ref, className: (0, import_clsx10.default)("flex-col-4", className), children: [
1491
- /* @__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)(
1492
2118
  import_react_custom_scrollbars_2.Scrollbars,
1493
2119
  {
1494
2120
  autoHeight: true,
1495
2121
  autoHeightMax: tableRef.current?.offsetHeight ? tableRef.current?.offsetHeight + 2 : void 0,
1496
2122
  autoHide: true,
1497
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2123
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1498
2124
  "table",
1499
2125
  {
1500
2126
  ref: tableRef,
1501
- className: (0, import_clsx10.default)(tableClassName),
2127
+ className: (0, import_clsx9.default)(tableClassName),
1502
2128
  style: {
1503
2129
  ...columnSizeVars,
1504
2130
  width: Math.floor(Math.max(table.getTotalSize() - columns.length, ref.current?.offsetWidth ?? table.getTotalSize()))
1505
2131
  },
1506
2132
  children: [
1507
- 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)(
1508
2134
  "col",
1509
2135
  {
1510
2136
  style: {
@@ -1515,22 +2141,22 @@ var Table = ({
1515
2141
  },
1516
2142
  header.id
1517
2143
  )) }, headerGroup.id)),
1518
- /* @__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) => {
1519
- 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)(
1520
2146
  "th",
1521
2147
  {
1522
2148
  colSpan: header.colSpan,
1523
- 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),
1524
2150
  children: [
1525
- /* @__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: [
1526
- 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)(
1527
2153
  TableSortButton,
1528
2154
  {
1529
2155
  sortDirection: header.column.getIsSorted(),
1530
2156
  onClick: () => header.column.toggleSorting()
1531
2157
  }
1532
2158
  ),
1533
- 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)(
1534
2160
  TableFilterButton,
1535
2161
  {
1536
2162
  column: header.column,
@@ -1542,7 +2168,7 @@ var Table = ({
1542
2168
  header.getContext()
1543
2169
  )
1544
2170
  ] }) }),
1545
- header.column.getCanResize() && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2171
+ header.column.getCanResize() && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1546
2172
  "div",
1547
2173
  {
1548
2174
  onMouseDown: header.getResizeHandler(),
@@ -1561,18 +2187,18 @@ var Table = ({
1561
2187
  header.id
1562
2188
  );
1563
2189
  }) }, headerGroup.id)) }),
1564
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("tbody", { children: [
2190
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("tbody", { children: [
1565
2191
  table.getRowModel().rows.map((row) => {
1566
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tr", { onClick: () => onRowClick(row, table), className: table.options.meta?.bodyRowClassName, children: row.getVisibleCells().map((cell) => {
1567
- 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)(
1568
2194
  cell.column.columnDef.cell,
1569
2195
  cell.getContext()
1570
2196
  ) }, cell.id);
1571
2197
  }) }, row.id);
1572
2198
  }),
1573
2199
  range(table.getState().pagination.pageSize - table.getRowModel().rows.length, { allowEmptyRange: true }).map((row, index) => {
1574
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("tr", { children: columns.map((column) => {
1575
- 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);
1576
2202
  }) }, "filler-row-" + index);
1577
2203
  })
1578
2204
  ] })
@@ -1581,7 +2207,7 @@ var Table = ({
1581
2207
  )
1582
2208
  }
1583
2209
  ),
1584
- /* @__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)(
1585
2211
  Pagination,
1586
2212
  {
1587
2213
  pageIndex: table.getState().pagination.pageIndex,
@@ -1592,11 +2218,11 @@ var Table = ({
1592
2218
  ] });
1593
2219
  };
1594
2220
  var TableUncontrolled = ({ data, ...props }) => {
1595
- const [usedDate, setUsedData] = (0, import_react15.useState)(data);
1596
- (0, import_react15.useEffect)(() => {
2221
+ const [usedDate, setUsedData] = (0, import_react14.useState)(data);
2222
+ (0, import_react14.useEffect)(() => {
1597
2223
  setUsedData(data);
1598
2224
  }, [data]);
1599
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2225
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1600
2226
  Table,
1601
2227
  {
1602
2228
  ...props,
@@ -1615,31 +2241,30 @@ var TableWithSelection = ({
1615
2241
  meta,
1616
2242
  ...props
1617
2243
  }) => {
1618
- const columnsWithSelection = (0, import_react15.useMemo)(() => {
2244
+ const columnsWithSelection = (0, import_react14.useMemo)(() => {
1619
2245
  return [
1620
2246
  {
1621
2247
  id: selectionRowId,
1622
2248
  header: ({ table }) => {
1623
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1624
- Checkbox,
2249
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2250
+ Checkbox2,
1625
2251
  {
1626
- checked: table.getIsSomeRowsSelected() ? "indeterminate" : table.getIsAllRowsSelected(),
1627
- onChangeTristate: (value) => {
2252
+ checked: table.getIsAllRowsSelected(),
2253
+ indeterminate: table.getIsSomeRowsSelected(),
2254
+ onChange: (value) => {
1628
2255
  const newValue = !!value;
1629
2256
  table.toggleAllRowsSelected(newValue);
1630
- },
1631
- containerClassName: "max-w-6"
2257
+ }
1632
2258
  }
1633
2259
  );
1634
2260
  },
1635
2261
  cell: ({ row }) => {
1636
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1637
- Checkbox,
2262
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2263
+ Checkbox2,
1638
2264
  {
1639
2265
  disabled: !row.getCanSelect(),
1640
2266
  checked: row.getIsSelected(),
1641
- onChange: row.getToggleSelectedHandler(),
1642
- containerClassName: "max-w-6"
2267
+ onChange: row.getToggleSelectedHandler()
1643
2268
  }
1644
2269
  );
1645
2270
  },
@@ -1652,15 +2277,15 @@ var TableWithSelection = ({
1652
2277
  ...columns
1653
2278
  ];
1654
2279
  }, [columns, selectionRowId]);
1655
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2280
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1656
2281
  Table,
1657
2282
  {
1658
2283
  columns: columnsWithSelection,
1659
2284
  fillerRow: (columnId, table) => {
1660
2285
  if (columnId === selectionRowId) {
1661
- 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" });
1662
2287
  }
1663
- 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, {});
1664
2289
  },
1665
2290
  state: {
1666
2291
  rowSelection,
@@ -1674,7 +2299,7 @@ var TableWithSelection = ({
1674
2299
  },
1675
2300
  meta: {
1676
2301
  ...meta,
1677
- bodyRowClassName: (0, import_clsx10.default)(
2302
+ bodyRowClassName: (0, import_clsx9.default)(
1678
2303
  { "cursor-pointer": !disableClickRowClickSelection },
1679
2304
  meta?.bodyRowClassName
1680
2305
  )