@helpwave/hightide 0.1.11 → 0.1.13

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 (277) hide show
  1. package/dist/components/date/DatePicker.js +37 -7
  2. package/dist/components/date/DatePicker.js.map +1 -1
  3. package/dist/components/date/DatePicker.mjs +37 -7
  4. package/dist/components/date/DatePicker.mjs.map +1 -1
  5. package/dist/components/date/DayPicker.js.map +1 -1
  6. package/dist/components/date/DayPicker.mjs.map +1 -1
  7. package/dist/components/date/TimePicker.js +27 -6
  8. package/dist/components/date/TimePicker.js.map +1 -1
  9. package/dist/components/date/TimePicker.mjs +27 -6
  10. package/dist/components/date/TimePicker.mjs.map +1 -1
  11. package/dist/components/date/YearMonthPicker.js +36 -6
  12. package/dist/components/date/YearMonthPicker.js.map +1 -1
  13. package/dist/components/date/YearMonthPicker.mjs +36 -6
  14. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  15. package/dist/components/dialogs/ConfirmDialog.js +16 -2
  16. package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
  17. package/dist/components/dialogs/ConfirmDialog.mjs +16 -2
  18. package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -1
  19. package/dist/components/layout-and-navigation/Carousel.js +42 -9
  20. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  21. package/dist/components/layout-and-navigation/Carousel.mjs +42 -9
  22. package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
  23. package/dist/components/layout-and-navigation/Expandable.js +1 -1
  24. package/dist/components/layout-and-navigation/Expandable.js.map +1 -1
  25. package/dist/components/layout-and-navigation/Expandable.mjs +1 -1
  26. package/dist/components/layout-and-navigation/Expandable.mjs.map +1 -1
  27. package/dist/components/layout-and-navigation/FAQSection.js +1 -1
  28. package/dist/components/layout-and-navigation/FAQSection.js.map +1 -1
  29. package/dist/components/layout-and-navigation/FAQSection.mjs +1 -1
  30. package/dist/components/layout-and-navigation/FAQSection.mjs.map +1 -1
  31. package/dist/components/layout-and-navigation/Overlay.js +16 -2
  32. package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
  33. package/dist/components/layout-and-navigation/Overlay.mjs +16 -2
  34. package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
  35. package/dist/components/layout-and-navigation/Pagination.d.mts +6 -3
  36. package/dist/components/layout-and-navigation/Pagination.d.ts +6 -3
  37. package/dist/components/layout-and-navigation/Pagination.js +404 -19
  38. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  39. package/dist/components/layout-and-navigation/Pagination.mjs +404 -19
  40. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  41. package/dist/components/layout-and-navigation/SearchableList.js +187 -67
  42. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
  43. package/dist/components/layout-and-navigation/SearchableList.mjs +183 -63
  44. package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
  45. package/dist/components/layout-and-navigation/StepperBar.js +37 -5
  46. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  47. package/dist/components/layout-and-navigation/StepperBar.mjs +37 -5
  48. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  49. package/dist/components/layout-and-navigation/TextImage.js +2 -0
  50. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  51. package/dist/components/layout-and-navigation/TextImage.mjs +2 -0
  52. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  53. package/dist/components/loading-states/LoadingAndErrorComponent.js +2 -0
  54. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
  55. package/dist/components/loading-states/LoadingAndErrorComponent.mjs +2 -0
  56. package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -1
  57. package/dist/components/loading-states/LoadingAnimation.js +2 -0
  58. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  59. package/dist/components/loading-states/LoadingAnimation.mjs +2 -0
  60. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  61. package/dist/components/loading-states/LoadingButton.js +9 -0
  62. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  63. package/dist/components/loading-states/LoadingButton.mjs +9 -0
  64. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  65. package/dist/components/modals/ConfirmModal.js +16 -2
  66. package/dist/components/modals/ConfirmModal.js.map +1 -1
  67. package/dist/components/modals/ConfirmModal.mjs +16 -2
  68. package/dist/components/modals/ConfirmModal.mjs.map +1 -1
  69. package/dist/components/modals/DiscardChangesModal.js +16 -2
  70. package/dist/components/modals/DiscardChangesModal.js.map +1 -1
  71. package/dist/components/modals/DiscardChangesModal.mjs +16 -2
  72. package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
  73. package/dist/components/modals/InputModal.d.mts +1 -0
  74. package/dist/components/modals/InputModal.d.ts +1 -0
  75. package/dist/components/modals/InputModal.js +196 -76
  76. package/dist/components/modals/InputModal.js.map +1 -1
  77. package/dist/components/modals/InputModal.mjs +189 -69
  78. package/dist/components/modals/InputModal.mjs.map +1 -1
  79. package/dist/components/modals/LanguageModal.js +203 -83
  80. package/dist/components/modals/LanguageModal.js.map +1 -1
  81. package/dist/components/modals/LanguageModal.mjs +192 -72
  82. package/dist/components/modals/LanguageModal.mjs.map +1 -1
  83. package/dist/components/modals/ThemeModal.js +206 -86
  84. package/dist/components/modals/ThemeModal.js.map +1 -1
  85. package/dist/components/modals/ThemeModal.mjs +193 -73
  86. package/dist/components/modals/ThemeModal.mjs.map +1 -1
  87. package/dist/components/properties/CheckboxProperty.js +17 -5
  88. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  89. package/dist/components/properties/CheckboxProperty.mjs +17 -5
  90. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  91. package/dist/components/properties/DateProperty.js +182 -65
  92. package/dist/components/properties/DateProperty.js.map +1 -1
  93. package/dist/components/properties/DateProperty.mjs +179 -62
  94. package/dist/components/properties/DateProperty.mjs.map +1 -1
  95. package/dist/components/properties/MultiSelectProperty.js +194 -74
  96. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  97. package/dist/components/properties/MultiSelectProperty.mjs +187 -67
  98. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  99. package/dist/components/properties/NumberProperty.js +182 -65
  100. package/dist/components/properties/NumberProperty.js.map +1 -1
  101. package/dist/components/properties/NumberProperty.mjs +179 -62
  102. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  103. package/dist/components/properties/PropertyBase.js +12 -1
  104. package/dist/components/properties/PropertyBase.js.map +1 -1
  105. package/dist/components/properties/PropertyBase.mjs +12 -1
  106. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  107. package/dist/components/properties/SelectProperty.js +194 -74
  108. package/dist/components/properties/SelectProperty.js.map +1 -1
  109. package/dist/components/properties/SelectProperty.mjs +187 -67
  110. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  111. package/dist/components/properties/TextProperty.js +43 -34
  112. package/dist/components/properties/TextProperty.js.map +1 -1
  113. package/dist/components/properties/TextProperty.mjs +43 -34
  114. package/dist/components/properties/TextProperty.mjs.map +1 -1
  115. package/dist/components/table/FillerRowElement.d.mts +8 -0
  116. package/dist/components/table/FillerRowElement.d.ts +8 -0
  117. package/dist/components/table/FillerRowElement.js +36 -0
  118. package/dist/components/table/FillerRowElement.js.map +1 -0
  119. package/dist/components/table/FillerRowElement.mjs +12 -0
  120. package/dist/components/table/FillerRowElement.mjs.map +1 -0
  121. package/dist/components/table/Filter.d.mts +5 -0
  122. package/dist/components/table/Filter.d.ts +5 -0
  123. package/dist/components/table/Filter.js +41 -0
  124. package/dist/components/table/Filter.js.map +1 -0
  125. package/dist/components/table/Filter.mjs +17 -0
  126. package/dist/components/table/Filter.mjs.map +1 -0
  127. package/dist/components/table/Table.d.mts +41 -0
  128. package/dist/components/table/Table.d.ts +41 -0
  129. package/dist/components/table/Table.js +1549 -0
  130. package/dist/components/table/Table.js.map +1 -0
  131. package/dist/components/table/Table.mjs +1520 -0
  132. package/dist/components/table/Table.mjs.map +1 -0
  133. package/dist/components/table/TableCell.d.mts +9 -0
  134. package/dist/components/table/TableCell.d.ts +9 -0
  135. package/dist/components/table/TableCell.js +37 -0
  136. package/dist/components/table/TableCell.js.map +1 -0
  137. package/dist/components/table/TableCell.mjs +13 -0
  138. package/dist/components/table/TableCell.mjs.map +1 -0
  139. package/dist/components/table/TableFilterButton.d.mts +11 -0
  140. package/dist/components/table/TableFilterButton.d.ts +11 -0
  141. package/dist/components/table/TableFilterButton.js +888 -0
  142. package/dist/components/table/TableFilterButton.js.map +1 -0
  143. package/dist/components/table/TableFilterButton.mjs +852 -0
  144. package/dist/components/table/TableFilterButton.mjs.map +1 -0
  145. package/dist/components/table/TableSortButton.d.mts +15 -0
  146. package/dist/components/table/TableSortButton.d.ts +15 -0
  147. package/dist/components/table/TableSortButton.js +136 -0
  148. package/dist/components/table/TableSortButton.js.map +1 -0
  149. package/dist/components/table/TableSortButton.mjs +102 -0
  150. package/dist/components/table/TableSortButton.mjs.map +1 -0
  151. package/dist/components/user-action/Button.d.mts +20 -5
  152. package/dist/components/user-action/Button.d.ts +20 -5
  153. package/dist/components/user-action/Button.js +12 -3
  154. package/dist/components/user-action/Button.js.map +1 -1
  155. package/dist/components/user-action/Button.mjs +11 -3
  156. package/dist/components/user-action/Button.mjs.map +1 -1
  157. package/dist/components/user-action/Checkbox.js +5 -4
  158. package/dist/components/user-action/Checkbox.js.map +1 -1
  159. package/dist/components/user-action/Checkbox.mjs +5 -4
  160. package/dist/components/user-action/Checkbox.mjs.map +1 -1
  161. package/dist/components/user-action/DateAndTimePicker.js +41 -9
  162. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  163. package/dist/components/user-action/DateAndTimePicker.mjs +41 -9
  164. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  165. package/dist/components/user-action/Input.d.mts +27 -7
  166. package/dist/components/user-action/Input.d.ts +27 -7
  167. package/dist/components/user-action/Input.js +173 -64
  168. package/dist/components/user-action/Input.js.map +1 -1
  169. package/dist/components/user-action/Input.mjs +172 -63
  170. package/dist/components/user-action/Input.mjs.map +1 -1
  171. package/dist/components/user-action/MultiSelect.js +195 -75
  172. package/dist/components/user-action/MultiSelect.js.map +1 -1
  173. package/dist/components/user-action/MultiSelect.mjs +187 -67
  174. package/dist/components/user-action/MultiSelect.mjs.map +1 -1
  175. package/dist/components/user-action/ScrollPicker.js +26 -5
  176. package/dist/components/user-action/ScrollPicker.js.map +1 -1
  177. package/dist/components/user-action/ScrollPicker.mjs +26 -5
  178. package/dist/components/user-action/ScrollPicker.mjs.map +1 -1
  179. package/dist/components/user-action/Select.js +195 -75
  180. package/dist/components/user-action/Select.js.map +1 -1
  181. package/dist/components/user-action/Select.mjs +187 -67
  182. package/dist/components/user-action/Select.mjs.map +1 -1
  183. package/dist/components/user-action/Textarea.d.mts +3 -1
  184. package/dist/components/user-action/Textarea.d.ts +3 -1
  185. package/dist/components/user-action/Textarea.js +31 -33
  186. package/dist/components/user-action/Textarea.js.map +1 -1
  187. package/dist/components/user-action/Textarea.mjs +31 -33
  188. package/dist/components/user-action/Textarea.mjs.map +1 -1
  189. package/dist/components/user-action/ToggleableInput.d.mts +3 -1
  190. package/dist/components/user-action/ToggleableInput.d.ts +3 -1
  191. package/dist/components/user-action/ToggleableInput.js +31 -33
  192. package/dist/components/user-action/ToggleableInput.js.map +1 -1
  193. package/dist/components/user-action/ToggleableInput.mjs +31 -33
  194. package/dist/components/user-action/ToggleableInput.mjs.map +1 -1
  195. package/dist/css/globals.css +431 -186
  196. package/dist/css/uncompiled/globals.css +36 -493
  197. package/dist/css/uncompiled/textstyles.css +69 -0
  198. package/dist/css/uncompiled/theme/colors-basic.css +72 -0
  199. package/dist/css/uncompiled/theme/colors-component.css +143 -0
  200. package/dist/css/uncompiled/theme/colors-semantic.css +99 -0
  201. package/dist/css/uncompiled/theme/index.css +5 -0
  202. package/dist/css/uncompiled/theme/theme.css +0 -0
  203. package/dist/css/uncompiled/theme/variants.css +3 -0
  204. package/dist/css/uncompiled/utitlity/animation.css +111 -0
  205. package/dist/css/uncompiled/utitlity/borderradius.css +23 -0
  206. package/dist/css/uncompiled/utitlity/general.css +11 -0
  207. package/dist/css/uncompiled/utitlity/index.css +4 -0
  208. package/dist/css/uncompiled/utitlity/shadow.css +29 -0
  209. package/dist/hooks/useDelay.d.mts +11 -0
  210. package/dist/hooks/useDelay.d.ts +11 -0
  211. package/dist/hooks/useDelay.js +64 -0
  212. package/dist/hooks/useDelay.js.map +1 -0
  213. package/dist/hooks/useDelay.mjs +40 -0
  214. package/dist/hooks/useDelay.mjs.map +1 -0
  215. package/dist/hooks/useFocusManagement.d.mts +9 -0
  216. package/dist/hooks/useFocusManagement.d.ts +9 -0
  217. package/dist/hooks/useFocusManagement.js +84 -0
  218. package/dist/hooks/useFocusManagement.js.map +1 -0
  219. package/dist/hooks/useFocusManagement.mjs +60 -0
  220. package/dist/hooks/useFocusManagement.mjs.map +1 -0
  221. package/dist/hooks/useFocusOnceVisible.d.mts +5 -0
  222. package/dist/hooks/useFocusOnceVisible.d.ts +5 -0
  223. package/dist/hooks/useFocusOnceVisible.js +60 -0
  224. package/dist/hooks/useFocusOnceVisible.js.map +1 -0
  225. package/dist/hooks/useFocusOnceVisible.mjs +26 -0
  226. package/dist/hooks/useFocusOnceVisible.mjs.map +1 -0
  227. package/dist/hooks/useRerender.d.mts +5 -0
  228. package/dist/hooks/useRerender.d.ts +5 -0
  229. package/dist/hooks/useRerender.js +33 -0
  230. package/dist/hooks/useRerender.js.map +1 -0
  231. package/dist/hooks/useRerender.mjs +9 -0
  232. package/dist/hooks/useRerender.mjs.map +1 -0
  233. package/dist/hooks/useResizeCallbackWrapper.d.mts +11 -0
  234. package/dist/hooks/useResizeCallbackWrapper.d.ts +11 -0
  235. package/dist/hooks/useResizeCallbackWrapper.js +38 -0
  236. package/dist/hooks/useResizeCallbackWrapper.js.map +1 -0
  237. package/dist/hooks/useResizeCallbackWrapper.mjs +14 -0
  238. package/dist/hooks/useResizeCallbackWrapper.mjs.map +1 -0
  239. package/dist/index.d.mts +16 -5
  240. package/dist/index.d.ts +16 -5
  241. package/dist/index.js +1428 -860
  242. package/dist/index.js.map +1 -1
  243. package/dist/index.mjs +1370 -799
  244. package/dist/index.mjs.map +1 -1
  245. package/dist/localization/defaults/form.d.mts +1 -0
  246. package/dist/localization/defaults/form.d.ts +1 -0
  247. package/dist/localization/defaults/form.js +2 -0
  248. package/dist/localization/defaults/form.js.map +1 -1
  249. package/dist/localization/defaults/form.mjs +2 -0
  250. package/dist/localization/defaults/form.mjs.map +1 -1
  251. package/dist/util/array.d.mts +11 -5
  252. package/dist/util/array.d.ts +11 -5
  253. package/dist/util/array.js +25 -4
  254. package/dist/util/array.js.map +1 -1
  255. package/dist/util/array.mjs +25 -4
  256. package/dist/util/array.mjs.map +1 -1
  257. package/dist/util/date.js.map +1 -1
  258. package/dist/util/date.mjs.map +1 -1
  259. package/dist/util/resolveSetState.d.mts +5 -0
  260. package/dist/util/resolveSetState.d.ts +5 -0
  261. package/dist/util/resolveSetState.js +32 -0
  262. package/dist/util/resolveSetState.js.map +1 -0
  263. package/dist/util/resolveSetState.mjs +8 -0
  264. package/dist/util/resolveSetState.mjs.map +1 -0
  265. package/package.json +4 -2
  266. package/dist/components/layout-and-navigation/Table.d.mts +0 -99
  267. package/dist/components/layout-and-navigation/Table.d.ts +0 -99
  268. package/dist/components/layout-and-navigation/Table.js +0 -688
  269. package/dist/components/layout-and-navigation/Table.js.map +0 -1
  270. package/dist/components/layout-and-navigation/Table.mjs +0 -645
  271. package/dist/components/layout-and-navigation/Table.mjs.map +0 -1
  272. package/dist/hooks/useSaveDelay.d.mts +0 -6
  273. package/dist/hooks/useSaveDelay.d.ts +0 -6
  274. package/dist/hooks/useSaveDelay.js +0 -67
  275. package/dist/hooks/useSaveDelay.js.map +0 -1
  276. package/dist/hooks/useSaveDelay.mjs +0 -43
  277. package/dist/hooks/useSaveDelay.mjs.map +0 -1
@@ -1,645 +0,0 @@
1
- // src/components/layout-and-navigation/Table.tsx
2
- import { useEffect as useEffect3, useRef, useState as useState4 } from "react";
3
- import { Scrollbars } from "react-custom-scrollbars-2";
4
-
5
- // src/util/noop.ts
6
- var noop = () => void 0;
7
-
8
- // src/components/user-action/Checkbox.tsx
9
- import { useState } from "react";
10
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
11
- import { Check, Minus } from "lucide-react";
12
- import clsx2 from "clsx";
13
-
14
- // src/components/user-action/Label.tsx
15
- import clsx from "clsx";
16
- import { jsx } from "react/jsx-runtime";
17
- var styleMapping = {
18
- labelSmall: "textstyle-label-sm",
19
- labelMedium: "textstyle-label-md",
20
- labelBig: "textstyle-label-lg"
21
- };
22
- var Label = ({
23
- children,
24
- name,
25
- labelType = "labelSmall",
26
- className,
27
- ...props
28
- }) => {
29
- return /* @__PURE__ */ jsx("label", { ...props, className: clsx(styleMapping[labelType], className), children: children ? children : name });
30
- };
31
-
32
- // src/components/user-action/Checkbox.tsx
33
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
34
- var checkboxSizeMapping = {
35
- small: "size-4",
36
- medium: "size-6",
37
- large: "size-8"
38
- };
39
- var checkboxIconSizeMapping = {
40
- small: "size-3",
41
- medium: "size-5",
42
- large: "size-7"
43
- };
44
- var Checkbox = ({
45
- id,
46
- label,
47
- checked,
48
- disabled,
49
- onChange,
50
- onChangeTristate,
51
- size = "medium",
52
- className = "",
53
- containerClassName
54
- }) => {
55
- const usedSizeClass = checkboxSizeMapping[size];
56
- const innerIconSize = checkboxIconSizeMapping[size];
57
- const propagateChange = (checked2) => {
58
- if (onChangeTristate) {
59
- onChangeTristate(checked2);
60
- }
61
- if (onChange) {
62
- onChange(checked2 === "indeterminate" ? false : checked2);
63
- }
64
- };
65
- const changeValue = () => {
66
- const newValue = checked === "indeterminate" ? false : !checked;
67
- propagateChange(newValue);
68
- };
69
- return /* @__PURE__ */ jsxs("div", { className: clsx2("row justify-center items-center", containerClassName), children: [
70
- /* @__PURE__ */ jsx2(
71
- CheckboxPrimitive.Root,
72
- {
73
- onCheckedChange: propagateChange,
74
- checked,
75
- disabled,
76
- id,
77
- className: clsx2(usedSizeClass, `items-center border-2 rounded outline-none focus:border-primary`, {
78
- "text-disabled-text border-disabled-text bg-disabled-background": disabled,
79
- "bg-surface": !disabled && !checked,
80
- "bg-primary/30 border-primary text-primary": checked === true || checked === "indeterminate",
81
- "hover:border-primary focus:hover:border-primary": !checked
82
- }, className),
83
- children: /* @__PURE__ */ jsxs(CheckboxPrimitive.Indicator, { children: [
84
- checked === true && /* @__PURE__ */ jsx2(Check, { className: innerIconSize }),
85
- checked === "indeterminate" && /* @__PURE__ */ jsx2(Minus, { className: innerIconSize })
86
- ] })
87
- }
88
- ),
89
- label && /* @__PURE__ */ jsx2(
90
- Label,
91
- {
92
- ...label,
93
- className: clsx2("cursor-pointer", label.className),
94
- htmlFor: id,
95
- onClick: changeValue
96
- }
97
- )
98
- ] });
99
- };
100
-
101
- // src/components/layout-and-navigation/Pagination.tsx
102
- import { ChevronFirst, ChevronLast, ChevronLeft, ChevronRight } from "lucide-react";
103
- import clsx3 from "clsx";
104
-
105
- // src/localization/LanguageProvider.tsx
106
- import { createContext, useContext, useEffect as useEffect2, useState as useState3 } from "react";
107
-
108
- // src/hooks/useLocalStorage.ts
109
- import { useCallback, useEffect, useState as useState2 } from "react";
110
-
111
- // src/localization/util.ts
112
- var languages = ["en", "de"];
113
- var languagesLocalNames = {
114
- en: "English",
115
- de: "Deutsch"
116
- };
117
- var DEFAULT_LANGUAGE = "en";
118
- var LanguageUtil = {
119
- languages,
120
- DEFAULT_LANGUAGE,
121
- languagesLocalNames
122
- };
123
-
124
- // src/localization/LanguageProvider.tsx
125
- import { jsx as jsx3 } from "react/jsx-runtime";
126
- var LanguageContext = createContext({
127
- language: LanguageUtil.DEFAULT_LANGUAGE,
128
- setLanguage: (v) => v
129
- });
130
- var useLanguage = () => useContext(LanguageContext);
131
-
132
- // src/localization/useTranslation.ts
133
- var TranslationPluralCount = {
134
- zero: 0,
135
- one: 1,
136
- two: 2,
137
- few: 3,
138
- many: 11,
139
- other: -1
140
- };
141
- var useTranslation = (translations, overwriteTranslation = {}) => {
142
- const { language: languageProp, translation: overwrite } = overwriteTranslation;
143
- const { language: inferredLanguage } = useLanguage();
144
- const usedLanguage = languageProp ?? inferredLanguage;
145
- const usedTranslations = [...translations];
146
- if (overwrite) {
147
- usedTranslations.push(overwrite);
148
- }
149
- return (key, options) => {
150
- const { count, replacements } = { ...{ count: 0, replacements: {} }, ...options };
151
- try {
152
- for (let i = translations.length - 1; i >= 0; i--) {
153
- const translation = translations[i];
154
- const localizedTranslation = translation[usedLanguage];
155
- if (!localizedTranslation) {
156
- continue;
157
- }
158
- const value = localizedTranslation[key];
159
- if (!value) {
160
- continue;
161
- }
162
- let forProcessing;
163
- if (typeof value !== "string") {
164
- if (count === TranslationPluralCount.zero && value?.zero) {
165
- forProcessing = value.zero;
166
- } else if (count === TranslationPluralCount.one && value?.one) {
167
- forProcessing = value.one;
168
- } else if (count === TranslationPluralCount.two && value?.two) {
169
- forProcessing = value.two;
170
- } else if (TranslationPluralCount.few <= count && count < TranslationPluralCount.many && value?.few) {
171
- forProcessing = value.few;
172
- } else if (count > TranslationPluralCount.many && value?.many) {
173
- forProcessing = value.many;
174
- } else {
175
- forProcessing = value.other;
176
- }
177
- } else {
178
- forProcessing = value;
179
- }
180
- forProcessing = forProcessing.replace(/\{\{(\w+)}}/g, (_, placeholder) => {
181
- return replacements[placeholder] ?? `{{key:${placeholder}}}`;
182
- });
183
- return forProcessing;
184
- }
185
- } catch (e) {
186
- console.error(e);
187
- }
188
- return `{{${usedLanguage}:${key}}}`;
189
- };
190
- };
191
-
192
- // src/localization/defaults/form.ts
193
- var formTranslation = {
194
- en: {
195
- all: "All",
196
- back: "Back",
197
- cancel: "Cancel",
198
- change: "Change",
199
- clear: "Clear",
200
- close: "Close",
201
- confirm: "Confirm",
202
- decline: "Decline",
203
- delete: "Delete",
204
- discard: "Discard",
205
- discardChanges: "Discard Changes",
206
- done: "Done",
207
- edit: "Edit",
208
- enterText: "Enter text here",
209
- error: "Error",
210
- exit: "Exit",
211
- fieldRequiredError: "This field is required.",
212
- invalidEmailError: "Please enter a valid email address.",
213
- less: "Less",
214
- loading: "Loading",
215
- maxLengthError: "Maximum length exceeded.",
216
- minLengthError: "Minimum length not met.",
217
- more: "More",
218
- next: "Next",
219
- no: "No",
220
- none: "None",
221
- of: "of",
222
- optional: "Optional",
223
- pleaseWait: "Please wait...",
224
- previous: "Previous",
225
- remove: "Remove",
226
- required: "Required",
227
- reset: "Reset",
228
- save: "Save",
229
- search: "Search",
230
- select: "Select",
231
- selectOption: "Select an option",
232
- show: "Show",
233
- showMore: "Show more",
234
- showLess: "Show less",
235
- submit: "Submit",
236
- success: "Success",
237
- update: "Update",
238
- unsavedChanges: "Unsaved Changes",
239
- unsavedChangesSaveQuestion: "Do you want to save your changes?",
240
- yes: "Yes"
241
- },
242
- de: {
243
- all: "Alle",
244
- back: "Zur\xFCck",
245
- cancel: "Abbrechen",
246
- change: "\xC4ndern",
247
- clear: "L\xF6schen",
248
- close: "Schlie\xDFen",
249
- confirm: "Best\xE4tigen",
250
- decline: "Ablehnen",
251
- delete: "L\xF6schen",
252
- discard: "Verwerfen",
253
- discardChanges: "\xC4nderungen Verwerfen",
254
- done: "Fertig",
255
- edit: "Bearbeiten",
256
- enterText: "Text hier eingeben",
257
- error: "Fehler",
258
- exit: "Beenden",
259
- fieldRequiredError: "Dieses Feld ist erforderlich.",
260
- invalidEmailError: "Bitte geben Sie eine g\xFCltige E-Mail-Adresse ein.",
261
- less: "Weniger",
262
- loading: "L\xE4dt",
263
- maxLengthError: "Maximale L\xE4nge \xFCberschritten.",
264
- minLengthError: "Mindestl\xE4nge nicht erreicht.",
265
- more: "Mehr",
266
- next: "Weiter",
267
- no: "Nein",
268
- none: "Nichts",
269
- of: "von",
270
- optional: "Optional",
271
- pleaseWait: "Bitte warten...",
272
- previous: "Vorherige",
273
- remove: "Entfernen",
274
- required: "Erforderlich",
275
- reset: "Zur\xFCcksetzen",
276
- save: "Speichern",
277
- search: "Suche",
278
- select: "Select",
279
- selectOption: "Option ausw\xE4hlen",
280
- show: "Anzeigen",
281
- showMore: "Mehr anzeigen",
282
- showLess: "Weniger anzeigen",
283
- submit: "Abschicken",
284
- success: "Erfolg",
285
- update: "Update",
286
- unsavedChanges: "Ungespeicherte \xC4nderungen",
287
- unsavedChangesSaveQuestion: "M\xF6chtest du die \xC4nderungen speichern?",
288
- yes: "Ja"
289
- }
290
- };
291
-
292
- // src/components/layout-and-navigation/Pagination.tsx
293
- import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
294
- var Pagination = ({
295
- overwriteTranslation,
296
- page,
297
- numberOfPages,
298
- onPageChanged
299
- }) => {
300
- const translation = useTranslation([formTranslation], overwriteTranslation);
301
- const changePage = (page2) => {
302
- onPageChanged(page2);
303
- };
304
- const noPages = numberOfPages === 0;
305
- const onFirstPage = page === 0 && !noPages;
306
- const onLastPage = page === numberOfPages - 1;
307
- return /* @__PURE__ */ jsxs2("div", { className: clsx3("row", { "opacity-30": noPages }), children: [
308
- /* @__PURE__ */ jsx4("button", { onClick: () => changePage(0), disabled: onFirstPage, children: /* @__PURE__ */ jsx4(ChevronFirst, { className: clsx3({ "opacity-30": onFirstPage }) }) }),
309
- /* @__PURE__ */ jsx4("button", { onClick: () => changePage(page - 1), disabled: onFirstPage, children: /* @__PURE__ */ jsx4(ChevronLeft, { className: clsx3({ "opacity-30": onFirstPage }) }) }),
310
- /* @__PURE__ */ jsxs2("div", { className: "min-w-[80px] justify-center mx-2", children: [
311
- /* @__PURE__ */ jsx4("span", { className: "select-none text-right flex-1", children: noPages ? 0 : page + 1 }),
312
- /* @__PURE__ */ jsx4("span", { className: "select-none mx-2", children: translation("of") }),
313
- /* @__PURE__ */ jsx4("span", { className: "select-none text-left flex-1", children: numberOfPages })
314
- ] }),
315
- /* @__PURE__ */ jsx4("button", { onClick: () => changePage(page + 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ jsx4(ChevronRight, { className: clsx3({ "opacity-30": onLastPage }) }) }),
316
- /* @__PURE__ */ jsx4("button", { onClick: () => changePage(numberOfPages - 1), disabled: onLastPage || noPages, children: /* @__PURE__ */ jsx4(ChevronLast, { className: clsx3({ "opacity-30": onLastPage }) }) })
317
- ] });
318
- };
319
-
320
- // src/components/layout-and-navigation/Table.tsx
321
- import clsx5 from "clsx";
322
-
323
- // src/components/user-action/Button.tsx
324
- import clsx4 from "clsx";
325
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
326
- var paddingMapping = {
327
- small: "btn-sm",
328
- medium: "btn-md",
329
- large: "btn-lg"
330
- };
331
- var iconPaddingMapping = {
332
- small: "icon-btn-sm",
333
- medium: "icon-btn-md",
334
- large: "icon-btn-lg"
335
- };
336
- var ButtonUtil = {
337
- paddingMapping,
338
- iconPaddingMapping
339
- };
340
- var TextButton = ({
341
- children,
342
- disabled = false,
343
- color = "neutral",
344
- size = "medium",
345
- startIcon,
346
- endIcon,
347
- onClick,
348
- className,
349
- ...restProps
350
- }) => {
351
- const colorClasses = {
352
- primary: "bg-transparent text-button-text-primary-text",
353
- negative: "bg-transparent text-button-text-negative-text",
354
- neutral: "bg-transparent text-button-text-neutral-text"
355
- }[color];
356
- const iconColorClasses = {
357
- primary: "text-button-text-primary-icon",
358
- negative: "text-button-text-negative-icon",
359
- neutral: "text-button-text-neutral-icon"
360
- }[color];
361
- return /* @__PURE__ */ jsxs3(
362
- "button",
363
- {
364
- onClick: disabled ? void 0 : onClick,
365
- disabled: disabled || onClick === void 0,
366
- className: clsx4(
367
- {
368
- "text-disabled-text cursor-not-allowed": disabled,
369
- [clsx4(colorClasses, "hover:bg-button-text-hover-background rounded-full")]: !disabled
370
- },
371
- ButtonUtil.paddingMapping[size],
372
- className
373
- ),
374
- ...restProps,
375
- children: [
376
- startIcon && /* @__PURE__ */ jsx5(
377
- "span",
378
- {
379
- className: clsx4({
380
- [iconColorClasses]: !disabled,
381
- [`text-disabled-icon`]: disabled
382
- }),
383
- children: startIcon
384
- }
385
- ),
386
- children,
387
- endIcon && /* @__PURE__ */ jsx5(
388
- "span",
389
- {
390
- className: clsx4({
391
- [iconColorClasses]: !disabled,
392
- [`text-disabled-icon`]: disabled
393
- }),
394
- children: endIcon
395
- }
396
- )
397
- ]
398
- }
399
- );
400
- };
401
-
402
- // src/components/layout-and-navigation/Table.tsx
403
- import { ChevronDown, ChevronsUpDown, ChevronUp } from "lucide-react";
404
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
405
- var defaultTableStatePagination = {
406
- currentPage: 0,
407
- entriesPerPage: 5
408
- };
409
- var defaultTableStateSelection = {
410
- currentSelection: [],
411
- hasSelectedAll: false,
412
- hasSelectedSome: false,
413
- hasSelectedNone: true
414
- };
415
- var isDataObjectSelected = (tableState, dataObject, identifierMapping) => {
416
- if (!tableState.selection) {
417
- return false;
418
- }
419
- return !!tableState.selection.currentSelection.find((value) => value.localeCompare(identifierMapping(dataObject)) === 0);
420
- };
421
- var pageForItem = (data, item, entriesPerPage, identifierMapping) => {
422
- const index = data.findIndex((value) => identifierMapping(value) === identifierMapping(item));
423
- if (index !== -1) {
424
- return Math.floor(index / entriesPerPage);
425
- }
426
- console.warn("item doesn't exist on data", item, data);
427
- return 0;
428
- };
429
- var updatePagination = (pagination, dataLength) => ({
430
- ...pagination,
431
- currentPage: Math.min(Math.max(Math.ceil(dataLength / pagination.entriesPerPage) - 1, 0), pagination.currentPage)
432
- });
433
- var addElementToTable = (tableState, data, dataObject, identifierMapping) => {
434
- return {
435
- ...tableState,
436
- pagination: tableState.pagination ? {
437
- ...tableState.pagination,
438
- currentPage: pageForItem(data, dataObject, tableState.pagination.entriesPerPage, identifierMapping)
439
- } : void 0,
440
- selection: tableState.selection ? {
441
- ...tableState.selection,
442
- hasSelectedAll: false,
443
- hasSelectedSome: tableState.selection.hasSelectedAll || tableState.selection.hasSelectedSome
444
- } : void 0
445
- };
446
- };
447
- var removeFromTableSelection = (tableState, deletedObjects, dataLength, identifierMapping) => {
448
- if (!tableState.selection) {
449
- return tableState;
450
- }
451
- const deletedObjectIds = deletedObjects.map(identifierMapping);
452
- const elementsBefore = tableState.selection.currentSelection.length;
453
- const currentSelection = tableState.selection.currentSelection.filter((value) => !deletedObjectIds.includes(value));
454
- dataLength -= elementsBefore - currentSelection.length;
455
- return {
456
- ...tableState,
457
- selection: {
458
- currentSelection,
459
- hasSelectedAll: currentSelection.length === dataLength && dataLength !== 0,
460
- hasSelectedSome: currentSelection.length > 0 && currentSelection.length !== dataLength,
461
- hasSelectedNone: currentSelection.length === 0
462
- },
463
- pagination: tableState.pagination ? updatePagination(tableState.pagination, dataLength) : void 0
464
- };
465
- };
466
- var changeTableSelectionSingle = (tableState, dataObject, dataLength, identifierMapping) => {
467
- if (!tableState.selection) {
468
- return tableState;
469
- }
470
- const hasSelectedObject = isDataObjectSelected(tableState, dataObject, identifierMapping);
471
- let currentSelection = [...tableState.selection.currentSelection, identifierMapping(dataObject)];
472
- if (hasSelectedObject) {
473
- currentSelection = tableState.selection.currentSelection.filter((value) => value.localeCompare(identifierMapping(dataObject)) !== 0);
474
- }
475
- return {
476
- ...tableState,
477
- selection: {
478
- currentSelection,
479
- hasSelectedAll: currentSelection.length === dataLength,
480
- hasSelectedSome: currentSelection.length > 0 && currentSelection.length !== dataLength,
481
- hasSelectedNone: currentSelection.length === 0
482
- }
483
- };
484
- };
485
- var changeTableSelectionAll = (tableState, data, identifierMapping) => {
486
- if (!tableState.selection) {
487
- return tableState;
488
- }
489
- if (data.length === 0) {
490
- return {
491
- ...tableState,
492
- selection: {
493
- currentSelection: [],
494
- hasSelectedAll: false,
495
- hasSelectedSome: false,
496
- hasSelectedNone: true
497
- }
498
- };
499
- }
500
- const hasSelectedAll = !(tableState.selection.hasSelectedSome || tableState.selection.hasSelectedAll);
501
- return {
502
- ...tableState,
503
- selection: {
504
- currentSelection: hasSelectedAll ? data.map(identifierMapping) : [],
505
- hasSelectedAll,
506
- hasSelectedSome: false,
507
- hasSelectedNone: !hasSelectedAll
508
- }
509
- };
510
- };
511
- var Table = ({
512
- data,
513
- stateManagement = [{}, noop],
514
- identifierMapping,
515
- header,
516
- rowMappingToCells,
517
- sorting,
518
- focusElement,
519
- className
520
- }) => {
521
- const sortedData = [...data];
522
- if (sorting) {
523
- const [sortingFunction, sortingType] = sorting;
524
- sortedData.sort((a, b) => sortingFunction(a, b) * (sortingType === "ascending" ? 1 : -1));
525
- }
526
- let currentPage = 0;
527
- let pageCount = 1;
528
- let entriesPerPage = 5;
529
- const [tableState, updateTableState] = stateManagement;
530
- let shownElements = sortedData;
531
- if (tableState?.pagination) {
532
- if (tableState.pagination.entriesPerPage < 1) {
533
- console.error("tableState.pagination.entriesPerPage must be >= 1", tableState.pagination.entriesPerPage);
534
- }
535
- entriesPerPage = Math.max(1, tableState.pagination.entriesPerPage);
536
- pageCount = Math.ceil(sortedData.length / entriesPerPage);
537
- if (tableState.pagination.currentPage < 0 || tableState.pagination.currentPage >= pageCount && pageCount !== 0) {
538
- console.error(
539
- "tableState.pagination.currentPage < 0 || (tableState.pagination.currentPage >= pageCount && pageCount !== 0) must be fullfilled",
540
- [`pageCount: ${pageCount}`, `tableState.pagination.currentPage: ${tableState.pagination.currentPage}`]
541
- );
542
- } else {
543
- currentPage = tableState.pagination.currentPage;
544
- }
545
- if (focusElement) {
546
- currentPage = pageForItem(sortedData, focusElement, entriesPerPage, identifierMapping);
547
- }
548
- shownElements = sortedData.slice(currentPage * entriesPerPage, Math.min(sortedData.length, (currentPage + 1) * entriesPerPage));
549
- } else {
550
- currentPage = 0;
551
- }
552
- const headerRow = "border-b-2";
553
- const headerPaddingHead = "pb-2";
554
- const headerPaddingBody = "pt-2";
555
- const cellPadding = "py-1 px-2";
556
- const [scrollbarsAutoHeightMin, setScrollbarsAutoHeightMin] = useState4(0);
557
- const tableRef = useRef(null);
558
- const calculateHeight = () => {
559
- if (tableRef.current) {
560
- const tableHeight = tableRef.current.offsetHeight;
561
- const offset = 25;
562
- setScrollbarsAutoHeightMin(tableHeight + offset);
563
- }
564
- };
565
- useEffect3(() => {
566
- calculateHeight();
567
- const handleResize = () => {
568
- calculateHeight();
569
- };
570
- window.addEventListener("resize", handleResize);
571
- return () => {
572
- window.removeEventListener("resize", handleResize);
573
- };
574
- }, [data, currentPage]);
575
- return /* @__PURE__ */ jsxs4("div", { className: clsx5("col gap-y-4 overflow-hidden", className), children: [
576
- /* @__PURE__ */ jsx6("div", { children: /* @__PURE__ */ jsx6(Scrollbars, { autoHeight: true, autoHeightMin: scrollbarsAutoHeightMin, children: /* @__PURE__ */ jsxs4("table", { ref: tableRef, className: "w-full mb-[12px]", children: [
577
- /* @__PURE__ */ jsx6("thead", { children: /* @__PURE__ */ jsxs4("tr", { className: headerRow, children: [
578
- header && tableState.selection && /* @__PURE__ */ jsx6("th", { className: headerPaddingHead, children: /* @__PURE__ */ jsx6(
579
- Checkbox,
580
- {
581
- checked: tableState.selection.hasSelectedSome ? "indeterminate" : tableState.selection.hasSelectedAll,
582
- onChange: () => updateTableState(changeTableSelectionAll(tableState, data, identifierMapping))
583
- }
584
- ) }),
585
- header && header.map((value, index) => /* @__PURE__ */ jsx6("th", { className: headerPaddingHead, children: /* @__PURE__ */ jsx6("div", { className: "row justify-start px-2", children: value }) }, `tableHeader${index}`))
586
- ] }) }),
587
- /* @__PURE__ */ jsx6("tbody", { children: shownElements.map((value, rowIndex) => /* @__PURE__ */ jsxs4("tr", { children: [
588
- tableState.selection && /* @__PURE__ */ jsx6("td", { className: clsx5(cellPadding, { [headerPaddingBody]: rowIndex === 0 }), children: /* @__PURE__ */ jsx6(
589
- Checkbox,
590
- {
591
- checked: isDataObjectSelected(tableState, value, identifierMapping),
592
- onChange: () => {
593
- updateTableState(changeTableSelectionSingle(tableState, value, data.length, identifierMapping));
594
- }
595
- }
596
- ) }),
597
- rowMappingToCells(value).map((value1, index) => /* @__PURE__ */ jsx6(
598
- "td",
599
- {
600
- className: clsx5(cellPadding, { [headerPaddingBody]: rowIndex === 0 }),
601
- children: value1
602
- },
603
- index
604
- ))
605
- ] }, identifierMapping(value))) })
606
- ] }) }) }),
607
- /* @__PURE__ */ jsx6("div", { className: "row justify-center", children: tableState.pagination && /* @__PURE__ */ jsx6(Pagination, { page: currentPage, numberOfPages: pageCount, onPageChanged: (page) => updateTableState({
608
- ...tableState,
609
- pagination: { entriesPerPage, currentPage: page }
610
- }) }) })
611
- ] });
612
- };
613
- var SortButton = ({
614
- children,
615
- ascending,
616
- color,
617
- onClick,
618
- ...buttonProps
619
- }) => {
620
- return /* @__PURE__ */ jsx6(
621
- TextButton,
622
- {
623
- color,
624
- onClick: () => onClick(ascending === "descending" ? "ascending" : "descending"),
625
- ...buttonProps,
626
- children: /* @__PURE__ */ jsxs4("div", { className: "row gap-x-2", children: [
627
- children,
628
- ascending === "ascending" ? /* @__PURE__ */ jsx6(ChevronUp, {}) : !ascending ? /* @__PURE__ */ jsx6(ChevronsUpDown, {}) : /* @__PURE__ */ jsx6(ChevronDown, {})
629
- ] })
630
- }
631
- );
632
- };
633
- export {
634
- SortButton,
635
- Table,
636
- addElementToTable,
637
- changeTableSelectionSingle,
638
- defaultTableStatePagination,
639
- defaultTableStateSelection,
640
- isDataObjectSelected,
641
- pageForItem,
642
- removeFromTableSelection,
643
- updatePagination
644
- };
645
- //# sourceMappingURL=Table.mjs.map