@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,278 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * FeatureTable — Config-driven data table component
4
+ *
5
+ * Replaces ALL per-feature table implementations with a single generic component
6
+ * driven by FeatureConfig.columns[].
7
+ *
8
+ * Before (100+ lines boilerplate PER feature):
9
+ * <DataTable columns={orderColumns} data={orders} ... />
10
+ *
11
+ * After (ZERO boilerplate):
12
+ * <FeatureTable config={ordersConfig} feature={feature} />
13
+ *
14
+ * Features:
15
+ * - Auto-generates columns from config.columns[]
16
+ * - Sorting (server-side via useFeature)
17
+ * - Pagination (server-side via useFeature)
18
+ * - Row selection (optional)
19
+ * - Slot pattern for custom cell renderers
20
+ * - Responsive column visibility
21
+ * - Empty state
22
+ * - Loading skeleton
23
+ *
24
+ * @module @tetra/ui
25
+ */
26
+ import React, { useMemo, useCallback } from 'react';
27
+ import { useReactTable, getCoreRowModel, flexRender, } from '@tanstack/react-table';
28
+ // ─── Value Accessors ────────────────────────────────────────
29
+ function getNestedValue(obj, path) {
30
+ return path.split('.').reduce((acc, key) => {
31
+ if (acc && typeof acc === 'object' && key in acc) {
32
+ return acc[key];
33
+ }
34
+ return undefined;
35
+ }, obj);
36
+ }
37
+ function applyTransform(value, transform) {
38
+ const str = String(value ?? '');
39
+ switch (transform) {
40
+ case 'uppercase': return str.toUpperCase();
41
+ case 'lowercase': return str.toLowerCase();
42
+ case 'capitalize': return str.charAt(0).toUpperCase() + str.slice(1);
43
+ case 'titlecase': return str.replace(/\b\w/g, c => c.toUpperCase());
44
+ default: return str;
45
+ }
46
+ }
47
+ // ─── Default Cell Renderers ─────────────────────────────────
48
+ function renderTextCell(value, col) {
49
+ let text = String(value ?? '');
50
+ if (col.transform)
51
+ text = applyTransform(value, col.transform);
52
+ if (col.truncate && text.length > col.truncate) {
53
+ return (_jsxs("span", { title: text, children: [text.slice(0, col.truncate), "\u2026"] }));
54
+ }
55
+ return text;
56
+ }
57
+ function renderNumberCell(value) {
58
+ if (value === null || value === undefined)
59
+ return '—';
60
+ return new Intl.NumberFormat().format(Number(value));
61
+ }
62
+ function renderCurrencyCell(value, col) {
63
+ if (value === null || value === undefined)
64
+ return '—';
65
+ return new Intl.NumberFormat(undefined, {
66
+ style: 'currency',
67
+ currency: col.currency || 'EUR',
68
+ }).format(Number(value));
69
+ }
70
+ function renderDateCell(value, col) {
71
+ if (!value)
72
+ return '—';
73
+ const date = new Date(String(value));
74
+ if (isNaN(date.getTime()))
75
+ return String(value);
76
+ if (col.type === 'datetime') {
77
+ return date.toLocaleString(undefined, {
78
+ year: 'numeric', month: 'short', day: 'numeric',
79
+ hour: '2-digit', minute: '2-digit',
80
+ });
81
+ }
82
+ return date.toLocaleDateString(undefined, {
83
+ year: 'numeric', month: 'short', day: 'numeric',
84
+ });
85
+ }
86
+ function renderBooleanCell(value) {
87
+ if (value === true)
88
+ return _jsx("span", { "aria-label": "Yes", children: "\u2713" });
89
+ if (value === false)
90
+ return _jsx("span", { "aria-label": "No", children: "\u2717" });
91
+ return '—';
92
+ }
93
+ function renderBadgeCell(value, col) {
94
+ if (value === null || value === undefined)
95
+ return '—';
96
+ const text = String(value);
97
+ const variant = col.badgeVariantMap?.[text] || 'default';
98
+ return (_jsx("span", { className: `inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ring-1 ring-inset badge-${variant}`, children: text }));
99
+ }
100
+ function renderImageCell(value) {
101
+ if (!value)
102
+ return '—';
103
+ return (_jsx("img", { src: String(value), alt: "", className: "h-8 w-8 rounded object-cover", loading: "lazy" }));
104
+ }
105
+ function renderLinkCell(value, col, row) {
106
+ if (!value)
107
+ return '—';
108
+ let href = String(value);
109
+ if (col.linkTemplate) {
110
+ href = col.linkTemplate.replace(/\{\{(\w+)\}\}/g, (_, field) => String(row[field] ?? ''));
111
+ }
112
+ return (_jsx("a", { href: href, className: "text-blue-600 underline hover:text-blue-800", children: String(value) }));
113
+ }
114
+ function renderCell(value, col, row, customRenderers) {
115
+ // Custom renderer takes priority
116
+ if (col.cellRenderer && customRenderers?.[col.cellRenderer]) {
117
+ return customRenderers[col.cellRenderer](value, row);
118
+ }
119
+ const type = col.type || 'text';
120
+ switch (type) {
121
+ case 'number': return renderNumberCell(value);
122
+ case 'currency': return renderCurrencyCell(value, col);
123
+ case 'date':
124
+ case 'datetime': return renderDateCell(value, col);
125
+ case 'boolean': return renderBooleanCell(value);
126
+ case 'badge': return renderBadgeCell(value, col);
127
+ case 'image': return renderImageCell(value);
128
+ case 'link': return renderLinkCell(value, col, row);
129
+ case 'custom':
130
+ if (col.cellRenderer && customRenderers?.[col.cellRenderer]) {
131
+ return customRenderers[col.cellRenderer](value, row);
132
+ }
133
+ return renderTextCell(value, col);
134
+ default: return renderTextCell(value, col);
135
+ }
136
+ }
137
+ // ─── Column Builder ─────────────────────────────────────────
138
+ function buildColumns(config, cellRenderers, onSort, sortField, sortDirection) {
139
+ const columns = (config.columns || [])
140
+ .filter(col => col.visible !== false)
141
+ .sort((a, b) => (a.order ?? 999) - (b.order ?? 999));
142
+ return columns.map((col) => ({
143
+ id: col.accessor,
144
+ accessorFn: (row) => {
145
+ const r = row;
146
+ if (col.nestedAccessor)
147
+ return getNestedValue(r, col.nestedAccessor);
148
+ return r[col.accessor];
149
+ },
150
+ header: () => {
151
+ if (!col.sortable)
152
+ return col.header;
153
+ const isActive = sortField === col.accessor;
154
+ const arrow = isActive ? (sortDirection === 'asc' ? ' ↑' : ' ↓') : '';
155
+ return (_jsxs("button", { type: "button", className: "flex items-center gap-1 hover:text-foreground", onClick: () => onSort?.(col.accessor), children: [col.header, arrow] }));
156
+ },
157
+ cell: (info) => renderCell(info.getValue(), col, info.row.original, cellRenderers),
158
+ size: col.width ? parseInt(col.width) || undefined : undefined,
159
+ minSize: col.minWidth ? parseInt(col.minWidth) || undefined : undefined,
160
+ meta: { columnConfig: col },
161
+ }));
162
+ }
163
+ // ─── Skeleton Loader ────────────────────────────────────────
164
+ function TableSkeleton({ columns, rows }) {
165
+ return (_jsx(_Fragment, { children: Array.from({ length: rows }).map((_, rowIdx) => (_jsx("tr", { children: Array.from({ length: columns }).map((_, colIdx) => (_jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "h-4 w-3/4 animate-pulse rounded bg-muted" }) }, colIdx))) }, rowIdx))) }));
166
+ }
167
+ function TablePagination({ page, pageCount, totalCount, pageSize, hasPreviousPage, hasNextPage, setPage, labels, }) {
168
+ const l = {
169
+ previous: labels?.previous ?? 'Previous',
170
+ next: labels?.next ?? 'Next',
171
+ showing: labels?.showing ?? 'Showing',
172
+ of: labels?.of ?? 'of',
173
+ results: labels?.results ?? 'results',
174
+ page: labels?.page ?? 'Page',
175
+ };
176
+ const from = page * pageSize + 1;
177
+ const to = Math.min((page + 1) * pageSize, totalCount);
178
+ return (_jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-t", children: [_jsx("div", { className: "text-sm text-muted-foreground", children: totalCount > 0
179
+ ? `${l.showing} ${from}–${to} ${l.of} ${totalCount} ${l.results}`
180
+ : `0 ${l.results}` }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("span", { className: "text-sm text-muted-foreground", children: [l.page, " ", page + 1, " ", l.of, " ", pageCount] }), _jsx("button", { type: "button", className: "inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium disabled:opacity-50 disabled:pointer-events-none hover:bg-accent", disabled: !hasPreviousPage, onClick: () => setPage(page - 1), children: l.previous }), _jsx("button", { type: "button", className: "inline-flex items-center justify-center rounded-md border px-3 py-1.5 text-sm font-medium disabled:opacity-50 disabled:pointer-events-none hover:bg-accent", disabled: !hasNextPage, onClick: () => setPage(page + 1), children: l.next })] })] }));
181
+ }
182
+ // ─── Main Component ─────────────────────────────────────────
183
+ /**
184
+ * FeatureTable — Config-driven data table
185
+ *
186
+ * @example
187
+ * ```tsx
188
+ * import { ordersConfig } from '@/config/features/orders.config';
189
+ * import { useFeature, FeatureTable } from '@soulbatical/tetra-ui';
190
+ *
191
+ * function OrdersPage() {
192
+ * const feature = useFeature(ordersConfig, supabase, { organizationId });
193
+ *
194
+ * return (
195
+ * <FeatureTable
196
+ * config={ordersConfig}
197
+ * feature={feature}
198
+ * onRowClick={(order) => router.push(`/orders/${order.id}`)}
199
+ * cellRenderers={{
200
+ * orderStatus: (value) => <CustomStatusBadge status={value} />,
201
+ * }}
202
+ * />
203
+ * );
204
+ * }
205
+ * ```
206
+ */
207
+ export function FeatureTable({ config, feature, selectable = false, rowSelection: controlledRowSelection, onRowSelectionChange, onRowClick, cellRenderers, columnVisibility: controlledColumnVisibility, emptyMessage, emptyState, className, loading: loadingOverride, skeletonRows = 5, getRowId, paginationLabels, }) {
208
+ const { data, totalCount, loading: featureLoading, page, setPage, pageCount, pageSize, hasPreviousPage, hasNextPage, sortField, sortDirection, setSort, error, } = feature;
209
+ const isLoading = loadingOverride ?? featureLoading;
210
+ // ─── Row Selection ──────────────────────────────────
211
+ const [internalRowSelection, setInternalRowSelection] = React.useState({});
212
+ const rowSelectionState = controlledRowSelection ?? internalRowSelection;
213
+ const handleRowSelectionChange = useCallback((updater) => {
214
+ const newSelection = typeof updater === 'function'
215
+ ? updater(rowSelectionState)
216
+ : updater;
217
+ if (onRowSelectionChange) {
218
+ onRowSelectionChange(newSelection);
219
+ }
220
+ else {
221
+ setInternalRowSelection(newSelection);
222
+ }
223
+ }, [rowSelectionState, onRowSelectionChange]);
224
+ // ─── Sort Handler ───────────────────────────────────
225
+ const handleSort = useCallback((field) => {
226
+ setSort(field); // toggles direction if same field
227
+ }, [setSort]);
228
+ // ─── Column Visibility ─────────────────────────────
229
+ const defaultColumnVisibility = useMemo(() => {
230
+ const vis = {};
231
+ for (const col of config.columns || []) {
232
+ if (col.visible === false)
233
+ vis[col.accessor] = false;
234
+ }
235
+ return vis;
236
+ }, [config.columns]);
237
+ const columnVisibility = controlledColumnVisibility ?? defaultColumnVisibility;
238
+ // ─── Build Columns ─────────────────────────────────
239
+ const columns = useMemo(() => {
240
+ const cols = buildColumns(config, cellRenderers, handleSort, sortField, sortDirection);
241
+ // Prepend selection column if selectable
242
+ if (selectable) {
243
+ const selectCol = {
244
+ id: '_select',
245
+ header: ({ table }) => (_jsx("input", { type: "checkbox", checked: table.getIsAllPageRowsSelected(), onChange: table.getToggleAllPageRowsSelectedHandler(), "aria-label": "Select all" })),
246
+ cell: ({ row }) => (_jsx("input", { type: "checkbox", checked: row.getIsSelected(), onChange: row.getToggleSelectedHandler(), "aria-label": "Select row" })),
247
+ size: 40,
248
+ };
249
+ return [selectCol, ...cols];
250
+ }
251
+ return cols;
252
+ }, [config, cellRenderers, handleSort, sortField, sortDirection, selectable]);
253
+ // ─── Table Instance ────────────────────────────────
254
+ const table = useReactTable({
255
+ data,
256
+ columns,
257
+ state: {
258
+ rowSelection: rowSelectionState,
259
+ columnVisibility,
260
+ },
261
+ onRowSelectionChange: selectable ? handleRowSelectionChange : undefined,
262
+ getCoreRowModel: getCoreRowModel(),
263
+ manualSorting: true,
264
+ manualPagination: true,
265
+ pageCount,
266
+ getRowId: getRowId
267
+ ? (row) => getRowId(row)
268
+ : (row) => String(row.id ?? ''),
269
+ enableRowSelection: selectable,
270
+ });
271
+ // ─── Visible Column Count ──────────────────────────
272
+ const visibleColumnCount = table.getVisibleFlatColumns().length;
273
+ // ─── Render ────────────────────────────────────────
274
+ return (_jsxs("div", { className: `w-full overflow-hidden rounded-md border ${className ?? ''}`, children: [error && (_jsx("div", { className: "px-4 py-3 text-sm text-destructive bg-destructive/10 border-b", children: error })), _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { className: "border-b bg-muted/50", children: table.getHeaderGroups().map(headerGroup => (_jsx("tr", { children: headerGroup.headers.map(header => (_jsx("th", { className: "px-4 py-3 text-left font-medium text-muted-foreground", style: header.getSize() ? { width: header.getSize() } : undefined, children: header.isPlaceholder
275
+ ? null
276
+ : flexRender(header.column.columnDef.header, header.getContext()) }, header.id))) }, headerGroup.id))) }), _jsx("tbody", { className: "divide-y", children: isLoading ? (_jsx(TableSkeleton, { columns: visibleColumnCount, rows: skeletonRows })) : table.getRowModel().rows.length === 0 ? (_jsx("tr", { children: _jsx("td", { colSpan: visibleColumnCount, className: "px-4 py-12 text-center text-muted-foreground", children: emptyState ?? (emptyMessage || 'No results found') }) })) : (table.getRowModel().rows.map(row => (_jsx("tr", { className: `${onRowClick ? 'cursor-pointer hover:bg-muted/50' : ''} ${row.getIsSelected() ? 'bg-muted' : ''}`, onClick: onRowClick ? () => onRowClick(row.original) : undefined, children: row.getVisibleCells().map(cell => (_jsx("td", { className: "px-4 py-3", children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id))) }, row.id)))) })] }) }), _jsx(TablePagination, { page: page, pageCount: pageCount, totalCount: totalCount, pageSize: pageSize, hasPreviousPage: hasPreviousPage, hasNextPage: hasNextPage, setPage: setPage, labels: paginationLabels })] }));
277
+ }
278
+ //# sourceMappingURL=FeatureTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureTable.js","sourceRoot":"","sources":["../../src/components/FeatureTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
9
+ export { Badge, badgeVariants };
10
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,aAAa;;8EAkBlB,CAAC;AAEF,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAI1D;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { cn } from "../../lib/utils.js";
4
+ const badgeVariants = cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", {
5
+ variants: {
6
+ variant: {
7
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
8
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
9
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
10
+ outline: "text-foreground",
11
+ },
12
+ },
13
+ defaultVariants: {
14
+ variant: "default",
15
+ },
16
+ });
17
+ function Badge({ className, variant, ...props }) {
18
+ return (_jsx("div", { className: cn(badgeVariants({ variant }), className), ...props }));
19
+ }
20
+ export { Badge, badgeVariants };
21
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,aAAa,GAAG,GAAG,CACvB,wKAAwK,EACxK;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,2EAA2E;YAC7E,SAAS,EACP,iFAAiF;YACnF,WAAW,EACT,uFAAuF;YACzF,OAAO,EAAE,iBAAiB;SAC3B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAMF,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAc;IACzD,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACzE,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ }
10
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
+ export { Button, buttonVariants };
12
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,cAAc;;;8EA4BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { Slot } from "@radix-ui/react-slot";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../lib/utils.js";
6
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
7
+ variants: {
8
+ variant: {
9
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
10
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
11
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
12
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
13
+ ghost: "hover:bg-accent hover:text-accent-foreground",
14
+ link: "text-primary underline-offset-4 hover:underline",
15
+ },
16
+ size: {
17
+ default: "h-10 px-4 py-2",
18
+ sm: "h-9 rounded-md px-3",
19
+ lg: "h-11 rounded-md px-8",
20
+ icon: "h-10 w-10",
21
+ },
22
+ },
23
+ defaultVariants: {
24
+ variant: "default",
25
+ size: "default",
26
+ },
27
+ });
28
+ const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
29
+ const Comp = asChild ? Slot : "button";
30
+ return (_jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref: ref, ...props }));
31
+ });
32
+ Button.displayName = "Button";
33
+ export { Button, buttonVariants };
34
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,cAAc,GAAG,GAAG,CACxB,0VAA0V,EAC1V;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,wDAAwD;YAC1D,WAAW,EACT,oEAAoE;YACtE,OAAO,EACL,gFAAgF;YAClF,SAAS,EACP,8DAA8D;YAChE,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,gBAAgB;YACzB,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,WAAW;SAClB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC;AAQF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvC,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
5
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
9
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,IAAI,6GAYR,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,QAAA,MAAM,SAAS,6GAYb,CAAC;AAGH,QAAA,MAAM,eAAe,6GASnB,CAAC;AAGH,QAAA,MAAM,WAAW,6GAKf,CAAC;AAGH,QAAA,MAAM,UAAU,6GASd,CAAC;AAGH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../../lib/utils.js";
4
+ const Card = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props })));
5
+ Card.displayName = "Card";
6
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })));
7
+ CardHeader.displayName = "CardHeader";
8
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })));
9
+ CardTitle.displayName = "CardTitle";
10
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
11
+ CardDescription.displayName = "CardDescription";
12
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("p-6 pt-0", className), ...props })));
13
+ CardContent.displayName = "CardContent";
14
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("flex items-center p-6 pt-0", className), ...props })));
15
+ CardFooter.displayName = "CardFooter";
16
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
17
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAG3B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAE1B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC,CAAC;AACH,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACnE,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
4
+ declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
6
+ declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const DialogHeader: {
10
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const DialogFooter: {
14
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
15
+ displayName: string;
16
+ };
17
+ declare const DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
18
+ declare const DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
19
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
20
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,QAAA,MAAM,MAAM,uCAAuB,CAAC;AACpC,QAAA,MAAM,aAAa,8GAA0B,CAAC;AAC9C,QAAA,MAAM,YAAY,6CAAyB,CAAC;AAC5C,QAAA,MAAM,WAAW,4GAAwB,CAAC;AAE1C,QAAA,MAAM,aAAa,8JAYjB,CAAC;AAGH,QAAA,MAAM,aAAa,8JAqBjB,CAAC;AAGH,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAC;AAGF,QAAA,MAAM,YAAY;8BAGf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAC;AAGF,QAAA,MAAM,WAAW,oKAYf,CAAC;AAGH,QAAA,MAAM,iBAAiB,8KASrB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
5
+ import { X } from "lucide-react";
6
+ import { cn } from "../../lib/utils.js";
7
+ const Dialog = DialogPrimitive.Root;
8
+ const DialogTrigger = DialogPrimitive.Trigger;
9
+ const DialogPortal = DialogPrimitive.Portal;
10
+ const DialogClose = DialogPrimitive.Close;
11
+ const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className), ...props })));
12
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
13
+ const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
14
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
15
+ const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
16
+ DialogHeader.displayName = "DialogHeader";
17
+ const DialogFooter = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
18
+ DialogFooter.displayName = "DialogFooter";
19
+ const DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props })));
20
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
21
+ const DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn("text-sm text-muted-foreground", className), ...props })));
22
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
23
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
24
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
+ }
4
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
5
+ export { Input };
6
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;CAAG;AAExD,QAAA,MAAM,KAAK,qFAcV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../../lib/utils.js";
4
+ const Input = React.forwardRef(({ className, type, ...props }, ref) => {
5
+ return (_jsx("input", { type: type, className: cn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", className), ref: ref, ...props }));
6
+ });
7
+ Input.displayName = "Input";
8
+ export { Input };
9
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAKxC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACrC,OAAO,CACL,gBACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,mXAAmX,EACnX,SAAS,CACV,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const labelVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
4
+ export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>, VariantProps<typeof labelVariants> {
5
+ }
6
+ declare const Label: React.ForwardRefExoticComponent<LabelProps & React.RefAttributes<HTMLLabelElement>>;
7
+ export { Label };
8
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/components/ui/label.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,aAAa,oFAElB,CAAC;AAEF,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,QAAA,MAAM,KAAK,qFAIV,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../lib/utils.js";
6
+ const labelVariants = cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
7
+ const Label = React.forwardRef(({ className, ...props }, ref) => (_jsx("label", { ref: ref, className: cn(labelVariants(), className), ...props })));
8
+ Label.displayName = "Label";
9
+ export { Label };
10
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/components/ui/label.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,aAAa,GAAG,GAAG,CACvB,4FAA4F,CAC7F,CAAC;AAMF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,gBAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAC1E,CACF,CAAC;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SelectScrollDownButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const SelectContent: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
14
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAI1D,QAAA,MAAM,MAAM,uCAAuB,CAAC;AACpC,QAAA,MAAM,WAAW,yGAAwB,CAAC;AAC1C,QAAA,MAAM,WAAW,0GAAwB,CAAC;AAE1C,QAAA,MAAM,aAAa,oKAiBjB,CAAC;AAGH,QAAA,MAAM,oBAAoB,qKAcxB,CAAC;AAGH,QAAA,MAAM,sBAAsB,uKAc1B,CAAC;AAIH,QAAA,MAAM,aAAa,8JA6BjB,CAAC;AAGH,QAAA,MAAM,WAAW,4JASf,CAAC;AAGH,QAAA,MAAM,UAAU,2JAmBd,CAAC;AAGH,QAAA,MAAM,eAAe,gKASnB,CAAC;AAGH,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,CAAC"}