@kosmeo-ui/react 0.1.1 → 0.2.0

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 (187) hide show
  1. package/dist/components/buttons/button/index.d.ts +2 -0
  2. package/dist/components/buttons/button/index.d.ts.map +1 -1
  3. package/dist/components/buttons/button/index.js +2 -2
  4. package/dist/components/buttons/button/index.js.map +1 -1
  5. package/dist/components/buttons/button/styles.css +6 -4
  6. package/dist/components/buttons/rowActions/styles.css +7 -0
  7. package/dist/components/data-display/addressBlock/styles.css +2 -4
  8. package/dist/components/data-display/dataTable/styles.css +15 -0
  9. package/dist/components/data-display/infiniteScroll/filters/searchFilter.d.ts.map +1 -1
  10. package/dist/components/data-display/infiniteScroll/filters/searchFilter.js +4 -35
  11. package/dist/components/data-display/infiniteScroll/filters/searchFilter.js.map +1 -1
  12. package/dist/components/data-display/infiniteScroll/filters/styles.css +4 -0
  13. package/dist/components/data-display/infiniteScroll/header/deleteButton.d.ts.map +1 -1
  14. package/dist/components/data-display/infiniteScroll/header/deleteButton.js +1 -1
  15. package/dist/components/data-display/infiniteScroll/header/deleteButton.js.map +1 -1
  16. package/dist/components/data-display/infiniteScroll/header/index.d.ts.map +1 -1
  17. package/dist/components/data-display/infiniteScroll/header/index.js +1 -1
  18. package/dist/components/data-display/infiniteScroll/header/index.js.map +1 -1
  19. package/dist/components/data-display/infiniteScroll/table/index.d.ts.map +1 -1
  20. package/dist/components/data-display/infiniteScroll/table/index.js +2 -2
  21. package/dist/components/data-display/infiniteScroll/table/index.js.map +1 -1
  22. package/dist/components/data-display/infiniteScroll/tags/index.d.ts.map +1 -1
  23. package/dist/components/data-display/infiniteScroll/tags/index.js +1 -6
  24. package/dist/components/data-display/infiniteScroll/tags/index.js.map +1 -1
  25. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.d.ts.map +1 -1
  26. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js +3 -3
  27. package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js.map +1 -1
  28. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.d.ts.map +1 -1
  29. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js +3 -13
  30. package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js.map +1 -1
  31. package/dist/components/data-display/infiniteScroll/tags/selectFilterTag.d.ts.map +1 -1
  32. package/dist/components/data-display/infiniteScroll/tags/selectFilterTag.js +3 -5
  33. package/dist/components/data-display/infiniteScroll/tags/selectFilterTag.js.map +1 -1
  34. package/dist/components/data-display/infiniteScroll/tags/styles.css +1 -29
  35. package/dist/components/data-display/recoveryCodeGrid/styles.css +1 -2
  36. package/dist/components/data-display/statCard/styles.css +1 -1
  37. package/dist/components/data-display/table/styles.css +12 -1
  38. package/dist/components/data-display/tagCard/index.d.ts.map +1 -1
  39. package/dist/components/data-display/tagCard/index.js +1 -1
  40. package/dist/components/data-display/tagCard/index.js.map +1 -1
  41. package/dist/components/feedback/badge/styles.css +8 -6
  42. package/dist/components/feedback/emptyState/styles.css +2 -4
  43. package/dist/components/feedback/progressBar/index.d.ts.map +1 -1
  44. package/dist/components/feedback/progressBar/index.js +7 -2
  45. package/dist/components/feedback/progressBar/index.js.map +1 -1
  46. package/dist/components/feedback/progressBar/styles.css +15 -6
  47. package/dist/components/feedback/spinner/styles.css +0 -13
  48. package/dist/components/forms/fieldShell/styles.css +1 -1
  49. package/dist/components/forms/formActions/styles.css +1 -1
  50. package/dist/components/forms/infoRow/styles.css +1 -2
  51. package/dist/components/forms/requiredAsterisk/styles.css +1 -1
  52. package/dist/components/index.d.ts +2 -0
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/index.js +1 -0
  55. package/dist/components/index.js.map +1 -1
  56. package/dist/components/inputs/checkbox/index.d.ts +6 -1
  57. package/dist/components/inputs/checkbox/index.d.ts.map +1 -1
  58. package/dist/components/inputs/checkbox/index.js +9 -2
  59. package/dist/components/inputs/checkbox/index.js.map +1 -1
  60. package/dist/components/inputs/checkbox/styles.css +8 -0
  61. package/dist/components/inputs/colorPicker/styles.css +1 -1
  62. package/dist/components/inputs/dateInput/index.d.ts +3 -3
  63. package/dist/components/inputs/dateInput/index.d.ts.map +1 -1
  64. package/dist/components/inputs/dateInput/index.js +13 -3
  65. package/dist/components/inputs/dateInput/index.js.map +1 -1
  66. package/dist/components/inputs/dropdown/index.d.ts +2 -0
  67. package/dist/components/inputs/dropdown/index.d.ts.map +1 -1
  68. package/dist/components/inputs/dropdown/index.js +1 -1
  69. package/dist/components/inputs/dropdown/index.js.map +1 -1
  70. package/dist/components/inputs/dropdownArrowButton/index.d.ts.map +1 -1
  71. package/dist/components/inputs/dropdownArrowButton/index.js +1 -1
  72. package/dist/components/inputs/dropdownArrowButton/index.js.map +1 -1
  73. package/dist/components/inputs/dropdownArrowButton/styles.css +1 -1
  74. package/dist/components/inputs/input/index.d.ts +5 -1
  75. package/dist/components/inputs/input/index.d.ts.map +1 -1
  76. package/dist/components/inputs/input/index.js +25 -4
  77. package/dist/components/inputs/input/index.js.map +1 -1
  78. package/dist/components/inputs/input/styles.css +46 -2
  79. package/dist/components/inputs/multiSelect/index.d.ts.map +1 -1
  80. package/dist/components/inputs/multiSelect/index.js +1 -1
  81. package/dist/components/inputs/multiSelect/index.js.map +1 -1
  82. package/dist/components/inputs/multiSelect/styles.css +1 -1
  83. package/dist/components/inputs/phoneInput/index.d.ts.map +1 -1
  84. package/dist/components/inputs/phoneInput/index.js +1 -1
  85. package/dist/components/inputs/phoneInput/index.js.map +1 -1
  86. package/dist/components/inputs/richTextEditor/index.d.ts.map +1 -1
  87. package/dist/components/inputs/richTextEditor/index.js +14 -3
  88. package/dist/components/inputs/richTextEditor/index.js.map +1 -1
  89. package/dist/components/layout/borderedSection/index.d.ts +3 -1
  90. package/dist/components/layout/borderedSection/index.d.ts.map +1 -1
  91. package/dist/components/layout/borderedSection/index.js +2 -2
  92. package/dist/components/layout/borderedSection/index.js.map +1 -1
  93. package/dist/components/layout/card/styles.css +22 -0
  94. package/dist/components/layout/sectionHeader/styles.css +1 -2
  95. package/dist/components/navigation/pagination/index.d.ts +23 -0
  96. package/dist/components/navigation/pagination/index.d.ts.map +1 -0
  97. package/dist/components/navigation/pagination/index.js +29 -0
  98. package/dist/components/navigation/pagination/index.js.map +1 -0
  99. package/dist/components/navigation/pagination/styles.css +113 -0
  100. package/dist/components/navigation/pagination/utils.d.ts +9 -0
  101. package/dist/components/navigation/pagination/utils.d.ts.map +1 -0
  102. package/dist/components/navigation/pagination/utils.js +25 -0
  103. package/dist/components/navigation/pagination/utils.js.map +1 -0
  104. package/dist/components/navigation/sidebar/styles.css +9 -1
  105. package/dist/components/navigation/tabButton/styles.css +6 -6
  106. package/dist/components/navigation/tabs/styles.css +2 -2
  107. package/dist/components/overlays/confirmationModal/index.d.ts +5 -0
  108. package/dist/components/overlays/confirmationModal/index.d.ts.map +1 -1
  109. package/dist/components/overlays/confirmationModal/index.js +23 -4
  110. package/dist/components/overlays/confirmationModal/index.js.map +1 -1
  111. package/dist/components/overlays/confirmationModal/styles.css +3 -0
  112. package/dist/components/overlays/modal/index.d.ts +2 -0
  113. package/dist/components/overlays/modal/index.d.ts.map +1 -1
  114. package/dist/components/overlays/modal/index.js +13 -4
  115. package/dist/components/overlays/modal/index.js.map +1 -1
  116. package/dist/hooks/index.d.ts +1 -0
  117. package/dist/hooks/index.d.ts.map +1 -1
  118. package/dist/hooks/index.js +1 -0
  119. package/dist/hooks/index.js.map +1 -1
  120. package/dist/hooks/usePaginated.d.ts +43 -0
  121. package/dist/hooks/usePaginated.d.ts.map +1 -0
  122. package/dist/hooks/usePaginated.js +60 -0
  123. package/dist/hooks/usePaginated.js.map +1 -0
  124. package/dist/styles.css +37 -14
  125. package/package.json +1 -1
  126. package/src/components/buttons/button/index.tsx +14 -5
  127. package/src/components/buttons/button/styles.css +6 -4
  128. package/src/components/buttons/rowActions/styles.css +7 -0
  129. package/src/components/data-display/addressBlock/styles.css +2 -4
  130. package/src/components/data-display/dataTable/styles.css +15 -0
  131. package/src/components/data-display/infiniteScroll/filters/searchFilter.tsx +16 -65
  132. package/src/components/data-display/infiniteScroll/filters/styles.css +4 -0
  133. package/src/components/data-display/infiniteScroll/header/deleteButton.tsx +1 -0
  134. package/src/components/data-display/infiniteScroll/header/index.tsx +4 -0
  135. package/src/components/data-display/infiniteScroll/table/index.tsx +2 -0
  136. package/src/components/data-display/infiniteScroll/tags/index.tsx +1 -11
  137. package/src/components/data-display/infiniteScroll/tags/listFilterTag.tsx +12 -16
  138. package/src/components/data-display/infiniteScroll/tags/rangeFilterTag.tsx +4 -22
  139. package/src/components/data-display/infiniteScroll/tags/selectFilterTag.tsx +4 -11
  140. package/src/components/data-display/infiniteScroll/tags/styles.css +1 -29
  141. package/src/components/data-display/recoveryCodeGrid/styles.css +1 -2
  142. package/src/components/data-display/statCard/styles.css +1 -1
  143. package/src/components/data-display/table/styles.css +12 -1
  144. package/src/components/data-display/tagCard/index.tsx +5 -3
  145. package/src/components/feedback/badge/styles.css +8 -6
  146. package/src/components/feedback/emptyState/styles.css +2 -4
  147. package/src/components/feedback/progressBar/index.tsx +14 -8
  148. package/src/components/feedback/progressBar/styles.css +15 -6
  149. package/src/components/feedback/spinner/styles.css +0 -13
  150. package/src/components/forms/fieldShell/styles.css +1 -1
  151. package/src/components/forms/formActions/styles.css +1 -1
  152. package/src/components/forms/infoRow/styles.css +1 -2
  153. package/src/components/forms/requiredAsterisk/styles.css +1 -1
  154. package/src/components/index.ts +2 -0
  155. package/src/components/inputs/checkbox/index.tsx +24 -4
  156. package/src/components/inputs/checkbox/styles.css +8 -0
  157. package/src/components/inputs/colorPicker/styles.css +1 -1
  158. package/src/components/inputs/dateInput/index.tsx +13 -4
  159. package/src/components/inputs/dropdown/index.tsx +4 -0
  160. package/src/components/inputs/dropdownArrowButton/index.tsx +1 -0
  161. package/src/components/inputs/dropdownArrowButton/styles.css +1 -1
  162. package/src/components/inputs/input/index.tsx +47 -4
  163. package/src/components/inputs/input/styles.css +46 -2
  164. package/src/components/inputs/multiSelect/index.tsx +1 -0
  165. package/src/components/inputs/multiSelect/styles.css +1 -1
  166. package/src/components/inputs/phoneInput/index.tsx +6 -2
  167. package/src/components/inputs/richTextEditor/index.tsx +27 -3
  168. package/src/components/layout/borderedSection/index.tsx +4 -1
  169. package/src/components/layout/card/styles.css +22 -0
  170. package/src/components/layout/sectionHeader/styles.css +1 -2
  171. package/src/components/navigation/pagination/index.tsx +134 -0
  172. package/src/components/navigation/pagination/styles.css +113 -0
  173. package/src/components/navigation/pagination/utils.ts +32 -0
  174. package/src/components/navigation/sidebar/styles.css +9 -1
  175. package/src/components/navigation/tabButton/styles.css +6 -6
  176. package/src/components/navigation/tabs/styles.css +2 -2
  177. package/src/components/overlays/confirmationModal/index.tsx +37 -1
  178. package/src/components/overlays/confirmationModal/styles.css +3 -0
  179. package/src/components/overlays/modal/index.tsx +23 -4
  180. package/src/hooks/index.ts +4 -0
  181. package/src/hooks/usePaginated.ts +123 -0
  182. package/src/styles.css +37 -14
  183. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.d.ts +0 -10
  184. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.d.ts.map +0 -1
  185. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.js +0 -22
  186. package/dist/components/data-display/infiniteScroll/tags/searchFilterTag.js.map +0 -1
  187. package/src/components/data-display/infiniteScroll/tags/searchFilterTag.tsx +0 -41
@@ -0,0 +1,123 @@
1
+ "use client";
2
+
3
+ import { keepPreviousData, useQuery } from "@tanstack/react-query";
4
+ import { useCallback, useEffect, useState } from "react";
5
+ import { AxiosInstance } from "axios";
6
+
7
+ interface OffsetPageResponse<T> {
8
+ data: T[];
9
+ total: number;
10
+ }
11
+
12
+ type QueryParams = Record<string, string | number | boolean | undefined>;
13
+
14
+ interface UsePaginatedOptions {
15
+ axiosInstance: AxiosInstance;
16
+ /** API endpoint to fetch from (e.g., "/v1/projects"). It takes `limit` and `offset` and returns `{ data, total }`. */
17
+ endpoint: string;
18
+ /** Query key for React Query caching. */
19
+ queryKey: string;
20
+ /** Organization ID to scope cache keys (prevents stale cross-org data). */
21
+ orgId?: string | null;
22
+ /** Initial page size (default: 10). */
23
+ initialPageSize?: number;
24
+ /** Extra query params such as filters and sort. Changing them returns to page 1. */
25
+ params?: QueryParams;
26
+ enabled?: boolean;
27
+ }
28
+
29
+ export interface UsePaginatedReturn<T> {
30
+ /** The current page's rows. */
31
+ data: T[];
32
+ /** Total matching rows across all pages. */
33
+ total: number;
34
+ /** Current page, starting at 1. */
35
+ page: number;
36
+ pageSize: number;
37
+ pageCount: number;
38
+ setPage: (page: number) => void;
39
+ /** Changes the page size and returns to page 1. */
40
+ setPageSize: (pageSize: number) => void;
41
+ /** True until the first page arrives. */
42
+ isLoading: boolean;
43
+ /** True whenever a page is loading, including after the first. */
44
+ isFetching: boolean;
45
+ error: Error | null;
46
+ refetch: () => void;
47
+ }
48
+
49
+ /**
50
+ * One page at a time from an offset endpoint (`limit` + `offset` in,
51
+ * `{ data, total }` out), for `Pagination`. The previous page stays on screen
52
+ * while the next one loads. Use `useInfiniteCursor` for `InfiniteScroll`.
53
+ */
54
+ const usePaginated = <T>(
55
+ options: UsePaginatedOptions
56
+ ): UsePaginatedReturn<T> => {
57
+ const {
58
+ axiosInstance,
59
+ endpoint,
60
+ queryKey,
61
+ orgId,
62
+ initialPageSize = 10,
63
+ params,
64
+ enabled = true,
65
+ } = options;
66
+
67
+ const [page, setPage] = useState(1);
68
+ const [pageSize, setPageSizeState] = useState(initialPageSize);
69
+
70
+ // New filters or sort make the old page number meaningless.
71
+ const paramsKey = JSON.stringify(params ?? {});
72
+ const [prevParamsKey, setPrevParamsKey] = useState(paramsKey);
73
+ if (paramsKey !== prevParamsKey) {
74
+ setPrevParamsKey(paramsKey);
75
+ setPage(1);
76
+ }
77
+
78
+ const query = useQuery<OffsetPageResponse<T>, Error>({
79
+ queryKey: [`${queryKey}-paged`, orgId ?? null, paramsKey, page, pageSize],
80
+ enabled,
81
+ placeholderData: keepPreviousData,
82
+ queryFn: async () => {
83
+ const res = await axiosInstance.get<OffsetPageResponse<T>>(endpoint, {
84
+ params: { ...params, limit: pageSize, offset: (page - 1) * pageSize },
85
+ });
86
+ return res.data;
87
+ },
88
+ });
89
+
90
+ const total = query.data?.total ?? 0;
91
+ const pageCount = Math.max(1, Math.ceil(total / pageSize));
92
+
93
+ // Rows deleted from the last page can leave it empty; step back.
94
+ useEffect(() => {
95
+ if (query.data && !query.isPlaceholderData && page > pageCount) {
96
+ setPage(pageCount);
97
+ }
98
+ }, [query.data, query.isPlaceholderData, page, pageCount]);
99
+
100
+ const setPageSize = useCallback((size: number) => {
101
+ setPageSizeState(size);
102
+ setPage(1);
103
+ }, []);
104
+
105
+ const { refetch } = query;
106
+ const refetchPage = useCallback(() => void refetch(), [refetch]);
107
+
108
+ return {
109
+ data: query.data?.data ?? [],
110
+ total,
111
+ page,
112
+ pageSize,
113
+ pageCount,
114
+ setPage,
115
+ setPageSize,
116
+ isLoading: query.isLoading,
117
+ isFetching: query.isFetching,
118
+ error: query.error,
119
+ refetch: refetchPage,
120
+ };
121
+ };
122
+
123
+ export default usePaginated;
package/src/styles.css CHANGED
@@ -81,12 +81,14 @@ h6 {
81
81
  --primary-color-active: #141f6c;
82
82
  --primary-color-background: #3d52db;
83
83
  --primary-color-background-light: #f0f2ff;
84
+ /* Primary as text (links, active tabs) on page and card surfaces. */
85
+ --primary-color-text: #17257d;
84
86
 
85
- /* Secondary Colors */
86
- --secondary-color: #858585;
87
- --secondary-color-hover: #8c8c8c;
88
- --secondary-color-active: #808080;
89
- --secondary-color-background: #a6a6a6;
87
+ /* Secondary Colors — dark enough for white text (4.5:1) */
88
+ --secondary-color: #6b6b6b;
89
+ --secondary-color-hover: #757575;
90
+ --secondary-color-active: #616161;
91
+ --secondary-color-background: #6b6b6b;
90
92
 
91
93
  /* Light Colors */
92
94
  --light-color: #fafafa;
@@ -101,18 +103,22 @@ h6 {
101
103
  --warning-color-background: #ffd24d;
102
104
  --warning-color-background-light: #fff8e1;
103
105
  --warning-color-text: #92400e;
106
+ /* Text on a warning fill. */
107
+ --warning-color-contrast: #333;
104
108
 
105
109
  /* Danger Colors */
106
110
  --danger-color: #dc3545;
107
111
  --danger-color-hover: #e23243;
108
112
  --danger-color-active: #d92638;
109
- --danger-color-background: #e46774;
113
+ --danger-color-background: #c42b3b;
114
+ /* Danger as text (field errors) on page and card surfaces. */
115
+ --danger-color-text: #b92535;
110
116
 
111
117
  /* Success Colors */
112
118
  --success-color: #198754;
113
119
  --success-color-hover: #1c975d;
114
120
  --success-color-active: #188150;
115
- --success-color-background: #24c278;
121
+ --success-color-background: #157347;
116
122
  --success-color-background-light: #e8f5e8;
117
123
 
118
124
  /* Background Colors */
@@ -136,7 +142,7 @@ h6 {
136
142
  --text-color: #333;
137
143
  --text-color-secondary: #666;
138
144
  --text-color-light: white;
139
- --text-color-link: #007bff;
145
+ --text-color-link: #0062cc;
140
146
  --text-size-sm: 0.875rem;
141
147
  --text-size-md: 1rem;
142
148
  --text-size-lg: 1.125rem;
@@ -161,11 +167,12 @@ h6 {
161
167
  --primary-color-active: #3d4f99;
162
168
  --primary-color-background: #4a5fb5;
163
169
  --primary-color-background-light: #1c2240;
170
+ --primary-color-text: #9aabf2;
164
171
 
165
172
  /* Secondary Colors */
166
- --secondary-color: #8a8f99;
167
- --secondary-color-hover: #9aa0aa;
168
- --secondary-color-active: #7a7f88;
173
+ --secondary-color: #646a75;
174
+ --secondary-color-hover: #6e7480;
175
+ --secondary-color-active: #5a606a;
169
176
  --secondary-color-background: #4a4f5a;
170
177
 
171
178
  /* Light Colors — surface-toned (used for "light" variant buttons/pills) */
@@ -181,17 +188,19 @@ h6 {
181
188
  --warning-color-background: #4d3a00;
182
189
  --warning-color-background-light: #2e2200;
183
190
  --warning-color-text: #f5c542;
191
+ --warning-color-contrast: #15181f;
184
192
 
185
193
  /* Danger Colors */
186
194
  --danger-color: #c94250;
187
195
  --danger-color-hover: #d35261;
188
196
  --danger-color-active: #b53847;
189
197
  --danger-color-background: #4a1820;
198
+ --danger-color-text: #ff8f9a;
190
199
 
191
200
  /* Success Colors */
192
- --success-color: #2a9560;
193
- --success-color-hover: #32a66c;
194
- --success-color-active: #248355;
201
+ --success-color: #1f7a4e;
202
+ --success-color-hover: #238556;
203
+ --success-color-active: #1b6d45;
195
204
  --success-color-background: #133e2c;
196
205
  --success-color-background-light: #0d2419;
197
206
 
@@ -384,3 +393,17 @@ code {
384
393
  .k-flex-wrap {
385
394
  flex-wrap: wrap;
386
395
  }
396
+
397
+ /* Visually hidden, still read by screen readers. Global so any component can
398
+ use it without depending on another component's stylesheet. */
399
+ .k-sr-only {
400
+ position: absolute;
401
+ width: 0.0625rem;
402
+ height: 0.0625rem;
403
+ padding: 0;
404
+ margin: -0.0625rem;
405
+ overflow: hidden;
406
+ clip: rect(0, 0, 0, 0);
407
+ white-space: nowrap;
408
+ border: 0;
409
+ }
@@ -1,10 +0,0 @@
1
- import "./styles.css";
2
- import { GeneratedSearchFilter, InfiniteScrollMenuGeneratedFilter } from "../types.js";
3
- interface InfiniteScrollSearchFilterTagProps {
4
- filter: GeneratedSearchFilter;
5
- filters: InfiniteScrollMenuGeneratedFilter[];
6
- handleNewFilters: (filters: InfiniteScrollMenuGeneratedFilter[]) => void;
7
- }
8
- declare const SearchFilterTag: (props: InfiniteScrollSearchFilterTagProps) => import("react").JSX.Element;
9
- export default SearchFilterTag;
10
- //# sourceMappingURL=searchFilterTag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchFilterTag.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/infiniteScroll/tags/searchFilterTag.tsx"],"names":[],"mappings":"AAMA,OAAO,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EAClC,MAAM,aAAa,CAAC;AAErB,UAAU,kCAAkC;IAC1C,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC7C,gBAAgB,EAAE,CAAC,OAAO,EAAE,iCAAiC,EAAE,KAAK,IAAI,CAAC;CAC1E;AAED,QAAA,MAAM,eAAe,GAAI,OAAO,kCAAkC,gCAoBjE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,22 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { faMagnifyingGlass, faXmark } from "@fortawesome/free-solid-svg-icons";
4
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5
- import IconButton from "../../../buttons/iconButton/index.js";
6
- import { useCallback } from "react";
7
- import "./styles.css";
8
- const SearchFilterTag = (props) => {
9
- const handleRemove = useCallback(() => {
10
- const newFilters = props.filters?.map((f) => {
11
- if (f.filterId !== props.filter.filterId)
12
- return f;
13
- if (f.type !== "SEARCH")
14
- return f;
15
- return { ...f, value: "" };
16
- });
17
- props.handleNewFilters(newFilters);
18
- }, [props.filters, props.filter]);
19
- return (_jsxs("div", { className: "k-tag-container", children: [_jsx("p", { className: "k-tag-title", children: props.filter.title }), _jsxs("div", { className: "k-tag-actions", children: [_jsx(FontAwesomeIcon, { icon: faMagnifyingGlass }), _jsx("p", { className: "k-tag-value", children: props.filter.value }), _jsx(IconButton, { icon: faXmark, onClick: handleRemove, size: "sm" })] })] }));
20
- };
21
- export default SearchFilterTag;
22
- //# sourceMappingURL=searchFilterTag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchFilterTag.js","sourceRoot":"","sources":["../../../../../src/components/data-display/infiniteScroll/tags/searchFilterTag.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,UAAU,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,cAAc,CAAC;AAYtB,MAAM,eAAe,GAAG,CAAC,KAAyC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YAClC,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAElC,OAAO,CACL,eAAK,SAAS,EAAC,iBAAiB,aAC9B,YAAG,SAAS,EAAC,aAAa,YAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAK,EACnD,eAAK,SAAS,EAAC,eAAe,aAC5B,KAAC,eAAe,IAAC,IAAI,EAAE,iBAAiB,GAAI,EAC5C,YAAG,SAAS,EAAC,aAAa,YAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAK,EACnD,KAAC,UAAU,IAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAC,IAAI,GAAG,IAC1D,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,41 +0,0 @@
1
- "use client";
2
-
3
- import { faMagnifyingGlass, faXmark } from "@fortawesome/free-solid-svg-icons";
4
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5
- import IconButton from "../../../buttons/iconButton/index.js";
6
- import { useCallback } from "react";
7
- import "./styles.css";
8
- import {
9
- GeneratedSearchFilter,
10
- InfiniteScrollMenuGeneratedFilter,
11
- } from "../types.js";
12
-
13
- interface InfiniteScrollSearchFilterTagProps {
14
- filter: GeneratedSearchFilter;
15
- filters: InfiniteScrollMenuGeneratedFilter[];
16
- handleNewFilters: (filters: InfiniteScrollMenuGeneratedFilter[]) => void;
17
- }
18
-
19
- const SearchFilterTag = (props: InfiniteScrollSearchFilterTagProps) => {
20
- const handleRemove = useCallback(() => {
21
- const newFilters = props.filters?.map((f) => {
22
- if (f.filterId !== props.filter.filterId) return f;
23
- if (f.type !== "SEARCH") return f;
24
- return { ...f, value: "" };
25
- });
26
- props.handleNewFilters(newFilters);
27
- }, [props.filters, props.filter]);
28
-
29
- return (
30
- <div className="k-tag-container">
31
- <p className="k-tag-title">{props.filter.title}</p>
32
- <div className="k-tag-actions">
33
- <FontAwesomeIcon icon={faMagnifyingGlass} />
34
- <p className="k-tag-value">{props.filter.value}</p>
35
- <IconButton icon={faXmark} onClick={handleRemove} size="sm" />
36
- </div>
37
- </div>
38
- );
39
- };
40
-
41
- export default SearchFilterTag;