@soulbatical/tetra-ui 0.1.0 → 0.1.2

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.

Potentially problematic release.


This version of @soulbatical/tetra-ui might be problematic. Click here for more details.

Files changed (69) hide show
  1. package/dist/components/FeatureFilters.d.ts +72 -0
  2. package/dist/components/FeatureFilters.d.ts.map +1 -0
  3. package/dist/components/FeatureFilters.js +229 -0
  4. package/dist/components/FeatureFilters.js.map +1 -0
  5. package/dist/components/FeatureForm.d.ts +100 -0
  6. package/dist/components/FeatureForm.d.ts.map +1 -0
  7. package/dist/components/FeatureForm.js +336 -0
  8. package/dist/components/FeatureForm.js.map +1 -0
  9. package/dist/components/FeatureTable.d.ts +95 -0
  10. package/dist/components/FeatureTable.d.ts.map +1 -0
  11. package/dist/components/FeatureTable.js +278 -0
  12. package/dist/components/FeatureTable.js.map +1 -0
  13. package/dist/components/ui/badge.d.ts +10 -0
  14. package/dist/components/ui/badge.d.ts.map +1 -0
  15. package/dist/components/ui/badge.js +21 -0
  16. package/dist/components/ui/badge.js.map +1 -0
  17. package/dist/components/ui/button.d.ts +12 -0
  18. package/dist/components/ui/button.d.ts.map +1 -0
  19. package/dist/components/ui/button.js +34 -0
  20. package/dist/components/ui/button.js.map +1 -0
  21. package/dist/components/ui/card.d.ts +9 -0
  22. package/dist/components/ui/card.d.ts.map +1 -0
  23. package/dist/components/ui/card.js +17 -0
  24. package/dist/components/ui/card.js.map +1 -0
  25. package/dist/components/ui/dialog.d.ts +20 -0
  26. package/dist/components/ui/dialog.d.ts.map +1 -0
  27. package/dist/components/ui/dialog.js +24 -0
  28. package/dist/components/ui/dialog.js.map +1 -0
  29. package/dist/components/ui/input.d.ts +6 -0
  30. package/dist/components/ui/input.d.ts.map +1 -0
  31. package/dist/components/ui/input.js +9 -0
  32. package/dist/components/ui/input.js.map +1 -0
  33. package/dist/components/ui/label.d.ts +8 -0
  34. package/dist/components/ui/label.d.ts.map +1 -0
  35. package/dist/components/ui/label.js +10 -0
  36. package/dist/components/ui/label.js.map +1 -0
  37. package/dist/components/ui/select.d.ts +14 -0
  38. package/dist/components/ui/select.d.ts.map +1 -0
  39. package/dist/components/ui/select.js +28 -0
  40. package/dist/components/ui/select.js.map +1 -0
  41. package/dist/components/ui/table.d.ts +11 -0
  42. package/dist/components/ui/table.d.ts.map +1 -0
  43. package/dist/components/ui/table.js +21 -0
  44. package/dist/components/ui/table.js.map +1 -0
  45. package/dist/components/ui/tabs.d.ts +8 -0
  46. package/dist/components/ui/tabs.d.ts.map +1 -0
  47. package/dist/components/ui/tabs.js +14 -0
  48. package/dist/components/ui/tabs.js.map +1 -0
  49. package/dist/components/ui/textarea.d.ts +6 -0
  50. package/dist/components/ui/textarea.d.ts.map +1 -0
  51. package/dist/components/ui/textarea.js +9 -0
  52. package/dist/components/ui/textarea.js.map +1 -0
  53. package/dist/hooks/useAffiliateDashboard.d.ts +86 -0
  54. package/dist/hooks/useAffiliateDashboard.d.ts.map +1 -0
  55. package/dist/hooks/useAffiliateDashboard.js +161 -0
  56. package/dist/hooks/useAffiliateDashboard.js.map +1 -0
  57. package/dist/hooks/useFeature.d.ts +100 -0
  58. package/dist/hooks/useFeature.d.ts.map +1 -0
  59. package/dist/hooks/useFeature.js +325 -0
  60. package/dist/hooks/useFeature.js.map +1 -0
  61. package/dist/index.d.ts +19 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +18 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/tailwind-preset.d.ts +17 -0
  66. package/dist/tailwind-preset.d.ts.map +1 -0
  67. package/dist/tailwind-preset.js +86 -0
  68. package/dist/tailwind-preset.js.map +1 -0
  69. package/package.json +37 -7
@@ -0,0 +1,325 @@
1
+ /**
2
+ * useFeature() — Config-driven React hook for feature data management
3
+ *
4
+ * Replaces ALL per-feature hooks (useOrdersList, useOrdersCounts, useVouchersList, etc.)
5
+ * with a single generic hook driven by FeatureConfig.
6
+ *
7
+ * @module @tetra/ui
8
+ */
9
+ import { useState, useCallback, useMemo, useEffect, useRef } from 'react';
10
+ // ─── Filter Defaults ────────────────────────────────────────
11
+ function buildFilterDefaults(config) {
12
+ const defaults = {};
13
+ for (const filter of config.filters || []) {
14
+ if (filter.ui?.defaultValue !== undefined) {
15
+ defaults[filter.name] = filter.ui.defaultValue;
16
+ }
17
+ else {
18
+ defaults[filter.name] = 'all';
19
+ }
20
+ }
21
+ return defaults;
22
+ }
23
+ // ─── RPC Parameter Builder ──────────────────────────────────
24
+ function buildRpcParams(filters, config, options) {
25
+ const params = {};
26
+ if (options.organizationId) {
27
+ params.p_org_id = options.organizationId;
28
+ }
29
+ params.p_limit = options.limit;
30
+ params.p_offset = options.offset;
31
+ params.p_sort_field = options.sortField;
32
+ params.p_sort_direction = options.sortDirection;
33
+ const searchValue = options.debouncedSearch ?? filters.search;
34
+ if (searchValue && searchValue.trim().length >= options.minSearchLength) {
35
+ params.p_search = searchValue.trim();
36
+ }
37
+ else {
38
+ params.p_search = null;
39
+ }
40
+ for (const filter of config.filters || []) {
41
+ if (filter.type === 'search')
42
+ continue;
43
+ if (filter.rpcFunction)
44
+ continue;
45
+ const value = filters[filter.name];
46
+ const rpcParamName = filter.rpcParam || filter.name;
47
+ const paramKey = `p_${rpcParamName}`;
48
+ if (value === 'all') {
49
+ params[paramKey] = null;
50
+ continue;
51
+ }
52
+ if (value === undefined) {
53
+ params[paramKey] = null;
54
+ continue;
55
+ }
56
+ if (Array.isArray(value)) {
57
+ params[paramKey] = value.length > 0 ? value : null;
58
+ continue;
59
+ }
60
+ params[paramKey] = value;
61
+ }
62
+ return params;
63
+ }
64
+ function buildCountsRpcParams(filters, config, options) {
65
+ const params = {};
66
+ if (options.organizationId) {
67
+ params.p_org_id = options.organizationId;
68
+ }
69
+ const searchValue = options.debouncedSearch ?? filters.search;
70
+ if (searchValue && searchValue.trim().length >= options.minSearchLength) {
71
+ params.p_search = searchValue.trim();
72
+ }
73
+ else {
74
+ params.p_search = null;
75
+ }
76
+ for (const filter of config.filters || []) {
77
+ if (filter.type === 'search')
78
+ continue;
79
+ if (filter.rpcFunction)
80
+ continue;
81
+ const value = filters[filter.name];
82
+ const rpcParamName = filter.rpcParam || filter.name;
83
+ const paramKey = `p_${rpcParamName}`;
84
+ if (value === 'all' || value === undefined) {
85
+ params[paramKey] = null;
86
+ continue;
87
+ }
88
+ if (Array.isArray(value)) {
89
+ params[paramKey] = value.length > 0 ? value : null;
90
+ continue;
91
+ }
92
+ params[paramKey] = value;
93
+ }
94
+ return params;
95
+ }
96
+ // ─── Debounce Hook ──────────────────────────────────────────
97
+ function useDebounce(value, delay) {
98
+ const [debouncedValue, setDebouncedValue] = useState(value);
99
+ useEffect(() => {
100
+ const timer = setTimeout(() => setDebouncedValue(value), delay);
101
+ return () => clearTimeout(timer);
102
+ }, [value, delay]);
103
+ return debouncedValue;
104
+ }
105
+ // ─── Main Hook ──────────────────────────────────────────────
106
+ /**
107
+ * useFeature — Universal hook for config-driven feature data
108
+ *
109
+ * @param config - FeatureConfig with resultsRpcName and/or countsRpcName
110
+ * @param supabase - Supabase client instance
111
+ * @param options - Optional configuration
112
+ *
113
+ * @example
114
+ * ```tsx
115
+ * import { ordersConfig } from '@/config/features/orders.config';
116
+ * import { useFeature } from '@soulbatical/tetra-ui';
117
+ *
118
+ * function OrdersPage() {
119
+ * const {
120
+ * data, counts, loading, error,
121
+ * filters, setFilter, resetFilters,
122
+ * page, setPage, pageCount,
123
+ * sortField, sortDirection, setSort,
124
+ * refetch
125
+ * } = useFeature(ordersConfig, supabase, {
126
+ * organizationId: user.organizationId,
127
+ * pageSize: 25,
128
+ * });
129
+ *
130
+ * return <FeatureTable config={ordersConfig} feature={feature} />;
131
+ * }
132
+ * ```
133
+ */
134
+ export function useFeature(config, supabase, options = {}) {
135
+ const { enabled = true, pageSize: initialPageSize, initialFilters, initialSortField, initialSortDirection = 'desc', searchDebounceMs = 300, minSearchLength = 2, organizationId, } = options;
136
+ // ─── Derived Defaults ─────────────────────────────
137
+ const defaultPageSize = initialPageSize ?? config.pagination?.defaultLimit ?? 20;
138
+ const defaultSortField = initialSortField ?? config.defaultSortField ?? 'created_at';
139
+ const filterDefaults = useMemo(() => ({
140
+ ...buildFilterDefaults(config),
141
+ ...initialFilters,
142
+ }), [config, initialFilters]);
143
+ // ─── State ────────────────────────────────────────
144
+ const [filters, setFiltersState] = useState(filterDefaults);
145
+ const [page, setPage] = useState(0);
146
+ const [pageSize] = useState(defaultPageSize);
147
+ const [sortField, setSortField] = useState(defaultSortField);
148
+ const [sortDirection, setSortDirection] = useState(initialSortDirection);
149
+ const [data, setData] = useState([]);
150
+ const [totalCount, setTotalCount] = useState(0);
151
+ const [counts, setCounts] = useState({});
152
+ const [loading, setLoading] = useState(false);
153
+ const [countsLoading, setCountsLoading] = useState(false);
154
+ const [error, setError] = useState(null);
155
+ const mountedRef = useRef(true);
156
+ useEffect(() => {
157
+ mountedRef.current = true;
158
+ return () => { mountedRef.current = false; };
159
+ }, []);
160
+ const searchValue = filters.search || '';
161
+ const debouncedSearch = useDebounce(searchValue, searchDebounceMs);
162
+ // ─── Fetch Data ───────────────────────────────────
163
+ const fetchData = useCallback(async () => {
164
+ if (!enabled || !config.resultsRpcName)
165
+ return;
166
+ setLoading(true);
167
+ setError(null);
168
+ try {
169
+ const rpcParams = buildRpcParams(filters, config, {
170
+ organizationId,
171
+ limit: pageSize,
172
+ offset: page * pageSize,
173
+ sortField,
174
+ sortDirection,
175
+ debouncedSearch,
176
+ minSearchLength,
177
+ });
178
+ const { data: result, error: rpcError } = await supabase.rpc(config.resultsRpcName, rpcParams);
179
+ if (!mountedRef.current)
180
+ return;
181
+ if (rpcError) {
182
+ setError(rpcError.message);
183
+ setData([]);
184
+ setTotalCount(0);
185
+ return;
186
+ }
187
+ if (Array.isArray(result)) {
188
+ setData(result);
189
+ if (result.length > 0 && 'total_count' in result[0]) {
190
+ setTotalCount(result[0].total_count);
191
+ }
192
+ }
193
+ else if (result && typeof result === 'object') {
194
+ const items = result.items || result.data || [];
195
+ setData(items);
196
+ setTotalCount(result.total || result.total_count || items.length);
197
+ }
198
+ else {
199
+ setData([]);
200
+ setTotalCount(0);
201
+ }
202
+ }
203
+ catch (err) {
204
+ if (!mountedRef.current)
205
+ return;
206
+ setError(err instanceof Error ? err.message : 'Failed to fetch data');
207
+ setData([]);
208
+ }
209
+ finally {
210
+ if (mountedRef.current) {
211
+ setLoading(false);
212
+ }
213
+ }
214
+ }, [
215
+ enabled, config, supabase, filters, organizationId,
216
+ pageSize, page, sortField, sortDirection, debouncedSearch, minSearchLength,
217
+ ]);
218
+ // ─── Fetch Counts ─────────────────────────────────
219
+ const fetchCounts = useCallback(async () => {
220
+ if (!enabled || !config.countsRpcName)
221
+ return;
222
+ setCountsLoading(true);
223
+ try {
224
+ const rpcParams = buildCountsRpcParams(filters, config, {
225
+ organizationId,
226
+ debouncedSearch,
227
+ minSearchLength,
228
+ });
229
+ const { data: result, error: rpcError } = await supabase.rpc(config.countsRpcName, rpcParams);
230
+ if (!mountedRef.current)
231
+ return;
232
+ if (rpcError) {
233
+ setCounts({});
234
+ return;
235
+ }
236
+ if (result && typeof result === 'object' && !Array.isArray(result)) {
237
+ setCounts(result);
238
+ if ('total' in result) {
239
+ setTotalCount(result.total);
240
+ }
241
+ }
242
+ else if (Array.isArray(result) && result.length === 1) {
243
+ setCounts(result[0]);
244
+ if ('total' in result[0]) {
245
+ setTotalCount(result[0].total);
246
+ }
247
+ }
248
+ else {
249
+ setCounts({});
250
+ }
251
+ }
252
+ catch {
253
+ if (mountedRef.current) {
254
+ setCounts({});
255
+ }
256
+ }
257
+ finally {
258
+ if (mountedRef.current) {
259
+ setCountsLoading(false);
260
+ }
261
+ }
262
+ }, [enabled, config, supabase, filters, organizationId, debouncedSearch, minSearchLength]);
263
+ // ─── Effects ──────────────────────────────────────
264
+ useEffect(() => {
265
+ fetchData();
266
+ }, [fetchData]);
267
+ useEffect(() => {
268
+ fetchCounts();
269
+ }, [fetchCounts]);
270
+ // ─── Filter Actions ───────────────────────────────
271
+ const setFilter = useCallback((name, value) => {
272
+ setFiltersState(prev => ({ ...prev, [name]: value }));
273
+ setPage(0);
274
+ }, []);
275
+ const setFilters = useCallback((newFilters) => {
276
+ setFiltersState(prev => ({ ...prev, ...newFilters }));
277
+ setPage(0);
278
+ }, []);
279
+ const resetFilters = useCallback(() => {
280
+ setFiltersState(filterDefaults);
281
+ setPage(0);
282
+ }, [filterDefaults]);
283
+ // ─── Sort Action ──────────────────────────────────
284
+ const setSort = useCallback((field, direction) => {
285
+ setSortField(field);
286
+ if (direction) {
287
+ setSortDirection(direction);
288
+ }
289
+ else {
290
+ setSortDirection(prev => field === sortField ? (prev === 'asc' ? 'desc' : 'asc') : 'desc');
291
+ }
292
+ setPage(0);
293
+ }, [sortField]);
294
+ // ─── Refetch ──────────────────────────────────────
295
+ const refetch = useCallback(async () => {
296
+ await Promise.all([fetchData(), fetchCounts()]);
297
+ }, [fetchData, fetchCounts]);
298
+ // ─── Computed ─────────────────────────────────────
299
+ const pageCount = Math.max(1, Math.ceil(totalCount / pageSize));
300
+ const hasPreviousPage = page > 0;
301
+ const hasNextPage = page < pageCount - 1;
302
+ return {
303
+ data,
304
+ totalCount,
305
+ counts,
306
+ loading,
307
+ countsLoading,
308
+ error,
309
+ filters,
310
+ setFilter,
311
+ setFilters,
312
+ resetFilters,
313
+ page,
314
+ setPage,
315
+ sortField,
316
+ sortDirection,
317
+ setSort,
318
+ refetch,
319
+ pageCount,
320
+ hasPreviousPage,
321
+ hasNextPage,
322
+ pageSize,
323
+ };
324
+ }
325
+ //# sourceMappingURL=useFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeature.js","sourceRoot":"","sources":["../../src/hooks/useFeature.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  export type { TetraConfig, AuthUser as TetraAuthUser, Organization as TetraOrganization, FilterConfig, SortFieldConfig, FeatureDisplayConfig, PageDisplayConfig, ListDisplayConfig, CardDisplayConfig, ApiResponse, ListParams, } from "./types/index.js";
2
2
  export { cn } from "./lib/utils.js";
3
+ export { Button, buttonVariants, type ButtonProps } from "./components/ui/button.js";
4
+ export { Input, type InputProps } from "./components/ui/input.js";
5
+ export { Textarea, type TextareaProps } from "./components/ui/textarea.js";
6
+ export { Label, type LabelProps } from "./components/ui/label.js";
7
+ export { Badge, badgeVariants, type BadgeProps } from "./components/ui/badge.js";
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, } from "./components/ui/card.js";
9
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from "./components/ui/dialog.js";
10
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from "./components/ui/select.js";
11
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, } from "./components/ui/table.js";
12
+ export { Tabs, TabsList, TabsTrigger, TabsContent, } from "./components/ui/tabs.js";
3
13
  export { ThemeProvider, useTheme } from "./providers/ThemeProvider.js";
4
14
  export { QueryProvider } from "./providers/QueryProvider.js";
5
15
  export { useAuth, getAccessToken, waitForAuthReady, configureAuth, } from "./hooks/useAuth.js";
@@ -27,4 +37,13 @@ export { useFilterConfigs, generateSortOptions, type FilterConfigsResponse, type
27
37
  export { usePageContext, PageContextProvider, type PageContext, } from "./hooks/usePageContext.js";
28
38
  export { useGenericList } from "./hooks/useGenericList.js";
29
39
  export { useGenericListWithConfig } from "./hooks/useGenericListWithConfig.js";
40
+ export { useFeature } from "./hooks/useFeature.js";
41
+ export type { UseFeatureOptions, UseFeatureResult } from "./hooks/useFeature.js";
42
+ export { FeatureTable } from "./components/FeatureTable.js";
43
+ export type { FeatureTableProps, CellRendererMap } from "./components/FeatureTable.js";
44
+ export { FeatureFilters } from "./components/FeatureFilters.js";
45
+ export type { FeatureFiltersProps } from "./components/FeatureFilters.js";
46
+ export { FeatureForm } from "./components/FeatureForm.js";
47
+ export type { FeatureFormProps, CustomComponentMap } from "./components/FeatureForm.js";
48
+ export { useAffiliateDashboard, useAffiliateProfile, useAffiliateCommissions, } from "./hooks/useAffiliateDashboard.js";
30
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,WAAW,EACX,QAAQ,IAAI,aAAa,EACzB,YAAY,IAAI,iBAAiB,EACjC,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EACL,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,GAClB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,sBAAsB,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,KAAK,WAAW,GACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,WAAW,EACX,QAAQ,IAAI,aAAa,EACzB,YAAY,IAAI,iBAAiB,EACjC,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAGpC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EACL,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,GAClB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,sBAAsB,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,KAAK,WAAW,GACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,17 @@
3
3
  // ============================================
4
4
  // Utilities
5
5
  export { cn } from "./lib/utils.js";
6
+ // ── shadcn/ui base components ──────────────────────────────
7
+ export { Button, buttonVariants } from "./components/ui/button.js";
8
+ export { Input } from "./components/ui/input.js";
9
+ export { Textarea } from "./components/ui/textarea.js";
10
+ export { Label } from "./components/ui/label.js";
11
+ export { Badge, badgeVariants } from "./components/ui/badge.js";
12
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, } from "./components/ui/card.js";
13
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from "./components/ui/dialog.js";
14
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from "./components/ui/select.js";
15
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, } from "./components/ui/table.js";
16
+ export { Tabs, TabsList, TabsTrigger, TabsContent, } from "./components/ui/tabs.js";
6
17
  // Providers
7
18
  export { ThemeProvider, useTheme } from "./providers/ThemeProvider.js";
8
19
  export { QueryProvider } from "./providers/QueryProvider.js";
@@ -40,4 +51,11 @@ export { usePageContext, PageContextProvider, } from "./hooks/usePageContext.js"
40
51
  // Hooks — generic list
41
52
  export { useGenericList } from "./hooks/useGenericList.js";
42
53
  export { useGenericListWithConfig } from "./hooks/useGenericListWithConfig.js";
54
+ // ── Config-driven auto-components (FeatureConfig → UI) ─────
55
+ export { useFeature } from "./hooks/useFeature.js";
56
+ export { FeatureTable } from "./components/FeatureTable.js";
57
+ export { FeatureFilters } from "./components/FeatureFilters.js";
58
+ export { FeatureForm } from "./components/FeatureForm.js";
59
+ // ── Affiliate hooks ─────────────────────────────────────────
60
+ export { useAffiliateDashboard, useAffiliateProfile, useAffiliateCommissions, } from "./hooks/useAffiliateDashboard.js";
43
61
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,8CAA8C;AAC9C,+CAA+C;AAiB/C,YAAY;AACZ,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO;AACP,OAAO,EACL,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,eAAe;AACf,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAErC,WAAW;AACX,OAAO,EACL,SAAS,EACT,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AAEjC,aAAa;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,yDAAyD;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,iBAAiB,GAGlB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAA2D,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AAEvF,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,gCAAgC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,mDAAmD;AACnD,OAAO,EACL,cAAc,EACd,mBAAmB,GAEpB,MAAM,2BAA2B,CAAC;AAEnC,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Tetra Tailwind CSS preset — shared config for all VCA projects.
3
+ *
4
+ * Usage in consuming project's tailwind.config.ts:
5
+ *
6
+ * import { tetraPreset } from "@tetra/ui/tailwind-preset";
7
+ * export default {
8
+ * presets: [tetraPreset],
9
+ * content: [
10
+ * "./src/**\/*.{ts,tsx}",
11
+ * "./node_modules/@soulbatical/tetra-ui/dist/**\/*.js",
12
+ * ],
13
+ * };
14
+ */
15
+ import type { Config } from "tailwindcss";
16
+ export declare const tetraPreset: Partial<Config>;
17
+ //# sourceMappingURL=tailwind-preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-preset.d.ts","sourceRoot":"","sources":["../src/tailwind-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAsEvC,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Tetra Tailwind CSS preset — shared config for all VCA projects.
3
+ *
4
+ * Usage in consuming project's tailwind.config.ts:
5
+ *
6
+ * import { tetraPreset } from "@tetra/ui/tailwind-preset";
7
+ * export default {
8
+ * presets: [tetraPreset],
9
+ * content: [
10
+ * "./src/**\/*.{ts,tsx}",
11
+ * "./node_modules/@soulbatical/tetra-ui/dist/**\/*.js",
12
+ * ],
13
+ * };
14
+ */
15
+ export const tetraPreset = {
16
+ darkMode: "class",
17
+ theme: {
18
+ extend: {
19
+ colors: {
20
+ border: "hsl(var(--border))",
21
+ input: "hsl(var(--input))",
22
+ ring: "hsl(var(--ring))",
23
+ background: "hsl(var(--background))",
24
+ foreground: "hsl(var(--foreground))",
25
+ primary: {
26
+ DEFAULT: "hsl(var(--primary))",
27
+ foreground: "hsl(var(--primary-foreground))",
28
+ },
29
+ secondary: {
30
+ DEFAULT: "hsl(var(--secondary))",
31
+ foreground: "hsl(var(--secondary-foreground))",
32
+ },
33
+ destructive: {
34
+ DEFAULT: "hsl(var(--destructive))",
35
+ foreground: "hsl(var(--destructive-foreground))",
36
+ },
37
+ muted: {
38
+ DEFAULT: "hsl(var(--muted))",
39
+ foreground: "hsl(var(--muted-foreground))",
40
+ },
41
+ accent: {
42
+ DEFAULT: "hsl(var(--accent))",
43
+ foreground: "hsl(var(--accent-foreground))",
44
+ },
45
+ popover: {
46
+ DEFAULT: "hsl(var(--popover))",
47
+ foreground: "hsl(var(--popover-foreground))",
48
+ },
49
+ card: {
50
+ DEFAULT: "hsl(var(--card))",
51
+ foreground: "hsl(var(--card-foreground))",
52
+ },
53
+ sidebar: {
54
+ DEFAULT: "hsl(var(--sidebar-background))",
55
+ foreground: "hsl(var(--sidebar-foreground))",
56
+ primary: "hsl(var(--sidebar-primary))",
57
+ "primary-foreground": "hsl(var(--sidebar-primary-foreground))",
58
+ accent: "hsl(var(--sidebar-accent))",
59
+ "accent-foreground": "hsl(var(--sidebar-accent-foreground))",
60
+ border: "hsl(var(--sidebar-border))",
61
+ ring: "hsl(var(--sidebar-ring))",
62
+ },
63
+ },
64
+ borderRadius: {
65
+ lg: "var(--radius)",
66
+ md: "calc(var(--radius) - 2px)",
67
+ sm: "calc(var(--radius) - 4px)",
68
+ },
69
+ keyframes: {
70
+ "accordion-down": {
71
+ from: { height: "0" },
72
+ to: { height: "var(--radix-accordion-content-height)" },
73
+ },
74
+ "accordion-up": {
75
+ from: { height: "var(--radix-accordion-content-height)" },
76
+ to: { height: "0" },
77
+ },
78
+ },
79
+ animation: {
80
+ "accordion-down": "accordion-down 0.2s ease-out",
81
+ "accordion-up": "accordion-up 0.2s ease-out",
82
+ },
83
+ },
84
+ },
85
+ };
86
+ //# sourceMappingURL=tailwind-preset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-preset.js","sourceRoot":"","sources":["../src/tailwind-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE;QACL,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,oBAAoB;gBAC5B,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,wBAAwB;gBACpC,UAAU,EAAE,wBAAwB;gBACpC,OAAO,EAAE;oBACP,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,gCAAgC;iBAC7C;gBACD,SAAS,EAAE;oBACT,OAAO,EAAE,uBAAuB;oBAChC,UAAU,EAAE,kCAAkC;iBAC/C;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE,yBAAyB;oBAClC,UAAU,EAAE,oCAAoC;iBACjD;gBACD,KAAK,EAAE;oBACL,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,8BAA8B;iBAC3C;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,oBAAoB;oBAC7B,UAAU,EAAE,+BAA+B;iBAC5C;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,gCAAgC;iBAC7C;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE,kBAAkB;oBAC3B,UAAU,EAAE,6BAA6B;iBAC1C;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,gCAAgC;oBACzC,UAAU,EAAE,gCAAgC;oBAC5C,OAAO,EAAE,6BAA6B;oBACtC,oBAAoB,EAAE,wCAAwC;oBAC9D,MAAM,EAAE,4BAA4B;oBACpC,mBAAmB,EAAE,uCAAuC;oBAC5D,MAAM,EAAE,4BAA4B;oBACpC,IAAI,EAAE,0BAA0B;iBACjC;aACF;YACD,YAAY,EAAE;gBACZ,EAAE,EAAE,eAAe;gBACnB,EAAE,EAAE,2BAA2B;gBAC/B,EAAE,EAAE,2BAA2B;aAChC;YACD,SAAS,EAAE;gBACT,gBAAgB,EAAE;oBAChB,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;oBACrB,EAAE,EAAE,EAAE,MAAM,EAAE,uCAAuC,EAAE;iBACxD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,EAAE,MAAM,EAAE,uCAAuC,EAAE;oBACzD,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;iBACpB;aACF;YACD,SAAS,EAAE;gBACT,gBAAgB,EAAE,8BAA8B;gBAChD,cAAc,EAAE,4BAA4B;aAC7C;SACF;KACF;CACF,CAAC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "restricted"
6
6
  },
7
- "version": "0.1.0",
7
+ "version": "0.1.2",
8
8
  "description": "Shared React frontend framework for VCA platform projects — config-driven components, hooks, providers, and styling",
9
9
  "type": "module",
10
10
  "main": "dist/index.js",
@@ -15,6 +15,11 @@
15
15
  "import": "./dist/index.js",
16
16
  "default": "./dist/index.js"
17
17
  },
18
+ "./tailwind-preset": {
19
+ "types": "./dist/tailwind-preset.d.ts",
20
+ "import": "./dist/tailwind-preset.js",
21
+ "default": "./dist/tailwind-preset.js"
22
+ },
18
23
  "./styles": {
19
24
  "import": "./dist/styles/index.css",
20
25
  "default": "./dist/styles/index.css"
@@ -34,24 +39,49 @@
34
39
  "prepublishOnly": "npm run build"
35
40
  },
36
41
  "peerDependencies": {
42
+ "@soulbatical/tetra-core": ">=0.1.0",
43
+ "@supabase/supabase-js": "^2.0.0",
44
+ "@tanstack/react-query": "^5.0.0",
45
+ "@tanstack/react-table": "^8.0.0",
46
+ "next": "^14.0.0 || ^15.0.0",
47
+ "next-themes": "^0.4.0",
37
48
  "react": "^18.0.0 || ^19.0.0",
38
49
  "react-dom": "^18.0.0 || ^19.0.0",
39
- "next": "^14.0.0 || ^15.0.0",
40
- "@tanstack/react-query": "^5.0.0",
41
- "next-themes": "^0.4.0"
50
+ "tailwindcss": "^3.4.0 || ^4.0.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "@supabase/supabase-js": {
54
+ "optional": true
55
+ },
56
+ "@tanstack/react-table": {
57
+ "optional": true
58
+ },
59
+ "tailwindcss": {
60
+ "optional": true
61
+ }
42
62
  },
43
63
  "dependencies": {
64
+ "@radix-ui/react-dialog": "^1.1.15",
65
+ "@radix-ui/react-select": "^2.2.6",
66
+ "@radix-ui/react-slot": "^1.2.4",
67
+ "@radix-ui/react-tabs": "^1.1.13",
68
+ "class-variance-authority": "^0.7.1",
44
69
  "clsx": "^2.1.0",
70
+ "lucide-react": "^0.575.0",
45
71
  "tailwind-merge": "^2.6.0"
46
72
  },
47
73
  "devDependencies": {
74
+ "@soulbatical/tetra-core": "^0.1.0",
75
+ "@supabase/supabase-js": "2.93.3",
76
+ "@tanstack/react-query": "^5.0.0",
77
+ "@tanstack/react-table": "^8.21.3",
48
78
  "@types/react": "^19.0.0",
49
79
  "@types/react-dom": "^19.0.0",
50
- "react": "^19.0.0",
51
- "react-dom": "^19.0.0",
52
- "@tanstack/react-query": "^5.0.0",
53
80
  "next": "^15.0.0",
54
81
  "next-themes": "^0.4.0",
82
+ "react": "^19.0.0",
83
+ "react-dom": "^19.0.0",
84
+ "tailwindcss": "^3.4.19",
55
85
  "typescript": "^5.7.3"
56
86
  },
57
87
  "keywords": [