@framingui/ui 0.6.2 → 0.6.4
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.
- package/README.md +22 -1090
- package/dist/chunk-7UBERMRE.mjs +180 -0
- package/dist/chunk-RWYATDH5.mjs +180 -0
- package/dist/index.d.mts +1 -140
- package/dist/index.mjs +425 -1846
- package/dist/src/components/alert-dialog.stories.js +1 -1
- package/dist/src/components/alert-dialog.stories.js.map +1 -1
- package/dist/src/components/avatar.js +2 -2
- package/dist/src/components/avatar.js.map +1 -1
- package/dist/src/components/avatar.stories.js +2 -2
- package/dist/src/components/avatar.stories.js.map +1 -1
- package/dist/src/components/badge.js +5 -5
- package/dist/src/components/badge.js.map +1 -1
- package/dist/src/components/breadcrumb.js +7 -7
- package/dist/src/components/breadcrumb.js.map +1 -1
- package/dist/src/components/button.js +10 -10
- package/dist/src/components/button.js.map +1 -1
- package/dist/src/components/calendar.js +11 -11
- package/dist/src/components/calendar.js.map +1 -1
- package/dist/src/components/calendar.stories.js +9 -9
- package/dist/src/components/calendar.stories.js.map +1 -1
- package/dist/src/components/card.js +5 -5
- package/dist/src/components/card.js.map +1 -1
- package/dist/src/components/card.stories.js +3 -3
- package/dist/src/components/card.stories.js.map +1 -1
- package/dist/src/components/checkbox.js +1 -1
- package/dist/src/components/checkbox.js.map +1 -1
- package/dist/src/components/checkbox.stories.js +2 -2
- package/dist/src/components/checkbox.stories.js.map +1 -1
- package/dist/src/components/command.d.ts +7 -7
- package/dist/src/components/command.js +8 -8
- package/dist/src/components/command.js.map +1 -1
- package/dist/src/components/command.stories.js +6 -6
- package/dist/src/components/command.stories.js.map +1 -1
- package/dist/src/components/dialog.stories.js +1 -1
- package/dist/src/components/dialog.stories.js.map +1 -1
- package/dist/src/components/dropdown-menu.js +8 -8
- package/dist/src/components/dropdown-menu.js.map +1 -1
- package/dist/src/components/form.js +4 -4
- package/dist/src/components/form.js.map +1 -1
- package/dist/src/components/input.js +1 -1
- package/dist/src/components/input.js.map +1 -1
- package/dist/src/components/input.stories.js +2 -2
- package/dist/src/components/input.stories.js.map +1 -1
- package/dist/src/components/label.stories.js +2 -2
- package/dist/src/components/label.stories.js.map +1 -1
- package/dist/src/components/navigation-menu.js +4 -4
- package/dist/src/components/navigation-menu.js.map +1 -1
- package/dist/src/components/navigation-menu.stories.js +2 -2
- package/dist/src/components/navigation-menu.stories.js.map +1 -1
- package/dist/src/components/popover.js +1 -1
- package/dist/src/components/popover.js.map +1 -1
- package/dist/src/components/popover.stories.js +2 -2
- package/dist/src/components/popover.stories.js.map +1 -1
- package/dist/src/components/progress.js +1 -1
- package/dist/src/components/progress.js.map +1 -1
- package/dist/src/components/radio-group.js +2 -2
- package/dist/src/components/radio-group.js.map +1 -1
- package/dist/src/components/radio-group.stories.js +2 -2
- package/dist/src/components/radio-group.stories.js.map +1 -1
- package/dist/src/components/scroll-area.js +1 -1
- package/dist/src/components/scroll-area.js.map +1 -1
- package/dist/src/components/scroll-area.stories.js +4 -4
- package/dist/src/components/scroll-area.stories.js.map +1 -1
- package/dist/src/components/select.js +5 -5
- package/dist/src/components/select.js.map +1 -1
- package/dist/src/components/separator.js +1 -1
- package/dist/src/components/separator.js.map +1 -1
- package/dist/src/components/separator.stories.js +2 -2
- package/dist/src/components/separator.stories.js.map +1 -1
- package/dist/src/components/sheet.d.ts +1 -1
- package/dist/src/components/sheet.js +11 -11
- package/dist/src/components/sheet.js.map +1 -1
- package/dist/src/components/sidebar.js +13 -13
- package/dist/src/components/sidebar.js.map +1 -1
- package/dist/src/components/sidebar.stories.js +2 -2
- package/dist/src/components/sidebar.stories.js.map +1 -1
- package/dist/src/components/skeleton.js +1 -1
- package/dist/src/components/skeleton.js.map +1 -1
- package/dist/src/components/skeleton.stories.js +1 -1
- package/dist/src/components/skeleton.stories.js.map +1 -1
- package/dist/src/components/switch.js +1 -1
- package/dist/src/components/switch.js.map +1 -1
- package/dist/src/components/switch.stories.js +3 -3
- package/dist/src/components/switch.stories.js.map +1 -1
- package/dist/src/components/table.js +5 -5
- package/dist/src/components/table.js.map +1 -1
- package/dist/src/components/tabs.js +3 -3
- package/dist/src/components/tabs.js.map +1 -1
- package/dist/src/components/tabs.stories.js +2 -2
- package/dist/src/components/tabs.stories.js.map +1 -1
- package/dist/src/components/textarea.js +1 -1
- package/dist/src/components/textarea.js.map +1 -1
- package/dist/src/components/textarea.stories.js +4 -4
- package/dist/src/components/textarea.stories.js.map +1 -1
- package/dist/src/components/toast.js +6 -6
- package/dist/src/components/toast.js.map +1 -1
- package/dist/src/components/tooltip.js +1 -1
- package/dist/src/components/tooltip.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/theme-loader.d.ts.map +1 -1
- package/dist/src/lib/theme-loader.js +41 -29
- package/dist/src/lib/theme-loader.js.map +1 -1
- package/dist/src/lib/tokens.d.ts.map +1 -1
- package/dist/src/lib/tokens.js +38 -38
- package/dist/src/lib/tokens.js.map +1 -1
- package/dist/src/templates/auth/forgot-password.d.ts +2 -2
- package/dist/src/templates/auth/forgot-password.d.ts.map +1 -1
- package/dist/src/templates/auth/forgot-password.js +3 -36
- package/dist/src/templates/auth/forgot-password.js.map +1 -1
- package/dist/src/templates/auth/login.d.ts +2 -2
- package/dist/src/templates/auth/login.d.ts.map +1 -1
- package/dist/src/templates/auth/login.js +3 -36
- package/dist/src/templates/auth/login.js.map +1 -1
- package/dist/src/templates/auth/signup.d.ts +2 -2
- package/dist/src/templates/auth/signup.d.ts.map +1 -1
- package/dist/src/templates/auth/signup.js +3 -36
- package/dist/src/templates/auth/signup.js.map +1 -1
- package/dist/src/templates/auth/verification.d.ts +2 -2
- package/dist/src/templates/auth/verification.d.ts.map +1 -1
- package/dist/src/templates/auth/verification.js +3 -36
- package/dist/src/templates/auth/verification.js.map +1 -1
- package/dist/src/templates/core/landing.d.ts +2 -2
- package/dist/src/templates/core/landing.d.ts.map +1 -1
- package/dist/src/templates/core/landing.js +3 -36
- package/dist/src/templates/core/landing.js.map +1 -1
- package/dist/src/templates/core/preferences.d.ts +2 -2
- package/dist/src/templates/core/preferences.d.ts.map +1 -1
- package/dist/src/templates/core/preferences.js +3 -42
- package/dist/src/templates/core/preferences.js.map +1 -1
- package/dist/src/templates/core/profile.d.ts +2 -2
- package/dist/src/templates/core/profile.d.ts.map +1 -1
- package/dist/src/templates/core/profile.js +3 -36
- package/dist/src/templates/core/profile.js.map +1 -1
- package/dist/src/templates/create-template.d.ts +4 -0
- package/dist/src/templates/create-template.d.ts.map +1 -0
- package/dist/src/templates/create-template.js +41 -0
- package/dist/src/templates/create-template.js.map +1 -0
- package/dist/src/templates/dashboard/overview.d.ts +2 -2
- package/dist/src/templates/dashboard/overview.d.ts.map +1 -1
- package/dist/src/templates/dashboard/overview.js +3 -57
- package/dist/src/templates/dashboard/overview.js.map +1 -1
- package/dist/src/templates/feedback/confirmation.d.ts +2 -2
- package/dist/src/templates/feedback/confirmation.d.ts.map +1 -1
- package/dist/src/templates/feedback/confirmation.js +3 -36
- package/dist/src/templates/feedback/confirmation.js.map +1 -1
- package/dist/src/templates/feedback/empty.d.ts +2 -2
- package/dist/src/templates/feedback/empty.d.ts.map +1 -1
- package/dist/src/templates/feedback/empty.js +3 -36
- package/dist/src/templates/feedback/empty.js.map +1 -1
- package/dist/src/templates/feedback/error.d.ts +2 -2
- package/dist/src/templates/feedback/error.d.ts.map +1 -1
- package/dist/src/templates/feedback/error.js +3 -36
- package/dist/src/templates/feedback/error.js.map +1 -1
- package/dist/src/templates/feedback/loading.d.ts +2 -2
- package/dist/src/templates/feedback/loading.d.ts.map +1 -1
- package/dist/src/templates/feedback/loading.js +3 -36
- package/dist/src/templates/feedback/loading.js.map +1 -1
- package/dist/src/templates/feedback/success.d.ts +2 -2
- package/dist/src/templates/feedback/success.d.ts.map +1 -1
- package/dist/src/templates/feedback/success.js +3 -36
- package/dist/src/templates/feedback/success.js.map +1 -1
- package/dist/src/templates/types.js +6 -6
- package/dist/src/templates/types.js.map +1 -1
- package/dist/templates/index.d.mts +142 -0
- package/dist/templates/index.mjs +905 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -2
- package/styles/globals.css +113 -84
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import {
|
|
3
|
+
Button,
|
|
4
|
+
Card,
|
|
5
|
+
CardContent,
|
|
6
|
+
CardDescription,
|
|
7
|
+
CardFooter,
|
|
8
|
+
CardHeader,
|
|
9
|
+
CardTitle,
|
|
10
|
+
Input,
|
|
11
|
+
Label,
|
|
12
|
+
Separator,
|
|
13
|
+
buttonVariants,
|
|
14
|
+
cn
|
|
15
|
+
} from "./chunk-RWYATDH5.mjs";
|
|
9
16
|
|
|
10
17
|
// src/lib/tokens.ts
|
|
11
18
|
var tokenVars = {
|
|
@@ -13,64 +20,64 @@ var tokenVars = {
|
|
|
13
20
|
// Background Tokens
|
|
14
21
|
// ========================================
|
|
15
22
|
bg: {
|
|
16
|
-
background: "var(--
|
|
17
|
-
foreground: "var(--
|
|
18
|
-
card: "var(--
|
|
19
|
-
cardForeground: "var(--
|
|
20
|
-
popover: "var(--
|
|
21
|
-
popoverForeground: "var(--
|
|
22
|
-
primary: "var(--
|
|
23
|
-
primaryForeground: "var(--
|
|
24
|
-
secondary: "var(--
|
|
25
|
-
secondaryForeground: "var(--
|
|
26
|
-
muted: "var(--
|
|
27
|
-
mutedForeground: "var(--
|
|
28
|
-
accent: "var(--
|
|
29
|
-
accentForeground: "var(--
|
|
30
|
-
destructive: "var(--
|
|
31
|
-
destructiveForeground: "var(--
|
|
23
|
+
background: "var(--bg-background)",
|
|
24
|
+
foreground: "var(--bg-foreground)",
|
|
25
|
+
card: "var(--bg-card)",
|
|
26
|
+
cardForeground: "var(--bg-card-foreground)",
|
|
27
|
+
popover: "var(--bg-popover)",
|
|
28
|
+
popoverForeground: "var(--bg-popover-foreground)",
|
|
29
|
+
primary: "var(--bg-primary)",
|
|
30
|
+
primaryForeground: "var(--bg-primary-foreground)",
|
|
31
|
+
secondary: "var(--bg-secondary)",
|
|
32
|
+
secondaryForeground: "var(--bg-secondary-foreground)",
|
|
33
|
+
muted: "var(--bg-muted)",
|
|
34
|
+
mutedForeground: "var(--bg-muted-foreground)",
|
|
35
|
+
accent: "var(--bg-accent)",
|
|
36
|
+
accentForeground: "var(--bg-accent-foreground)",
|
|
37
|
+
destructive: "var(--bg-destructive)",
|
|
38
|
+
destructiveForeground: "var(--bg-destructive-foreground)"
|
|
32
39
|
},
|
|
33
40
|
// ========================================
|
|
34
41
|
// Border Tokens
|
|
35
42
|
// ========================================
|
|
36
43
|
border: {
|
|
37
|
-
default: "var(--
|
|
38
|
-
input: "var(--
|
|
39
|
-
ring: "var(--
|
|
44
|
+
default: "var(--border-default)",
|
|
45
|
+
input: "var(--border-input)",
|
|
46
|
+
ring: "var(--border-ring)"
|
|
40
47
|
},
|
|
41
48
|
// ========================================
|
|
42
49
|
// Radius Tokens
|
|
43
50
|
// ========================================
|
|
44
51
|
radius: {
|
|
45
|
-
sm: "var(--
|
|
46
|
-
md: "var(--
|
|
47
|
-
lg: "var(--
|
|
48
|
-
xl: "var(--
|
|
49
|
-
full: "var(--
|
|
50
|
-
select: "var(--
|
|
52
|
+
sm: "var(--radius-sm)",
|
|
53
|
+
md: "var(--radius-md)",
|
|
54
|
+
lg: "var(--radius-lg)",
|
|
55
|
+
xl: "var(--radius-xl)",
|
|
56
|
+
full: "var(--radius-full)",
|
|
57
|
+
select: "var(--radius-select)"
|
|
51
58
|
},
|
|
52
59
|
// ========================================
|
|
53
60
|
// Spacing Tokens (4px base)
|
|
54
61
|
// ========================================
|
|
55
62
|
spacing: {
|
|
56
|
-
0: "var(--
|
|
57
|
-
1: "var(--
|
|
58
|
-
2: "var(--
|
|
59
|
-
3: "var(--
|
|
60
|
-
4: "var(--
|
|
61
|
-
5: "var(--
|
|
62
|
-
6: "var(--
|
|
63
|
-
8: "var(--
|
|
64
|
-
10: "var(--
|
|
65
|
-
12: "var(--
|
|
66
|
-
16: "var(--
|
|
63
|
+
0: "var(--spacing-0)",
|
|
64
|
+
1: "var(--spacing-1)",
|
|
65
|
+
2: "var(--spacing-2)",
|
|
66
|
+
3: "var(--spacing-3)",
|
|
67
|
+
4: "var(--spacing-4)",
|
|
68
|
+
5: "var(--spacing-5)",
|
|
69
|
+
6: "var(--spacing-6)",
|
|
70
|
+
8: "var(--spacing-8)",
|
|
71
|
+
10: "var(--spacing-10)",
|
|
72
|
+
12: "var(--spacing-12)",
|
|
73
|
+
16: "var(--spacing-16)"
|
|
67
74
|
}
|
|
68
75
|
};
|
|
69
76
|
function isTokenReference(value) {
|
|
70
|
-
return value.startsWith("var(--
|
|
77
|
+
return value.startsWith("var(--") && value.endsWith(")");
|
|
71
78
|
}
|
|
72
79
|
function extractTokenName(token) {
|
|
73
|
-
const match = token.match(/var\(--
|
|
80
|
+
const match = token.match(/var\(--(.*)\)/);
|
|
74
81
|
return match ? match[1] : "";
|
|
75
82
|
}
|
|
76
83
|
|
|
@@ -121,58 +128,70 @@ function themeToCSS(theme) {
|
|
|
121
128
|
/* ========================================
|
|
122
129
|
Component Tokens (@framingui/ui \uCEF4\uD3EC\uB10C\uD2B8\uC6A9)
|
|
123
130
|
======================================== */
|
|
124
|
-
--
|
|
125
|
-
--
|
|
131
|
+
--bg-background: ${resolveColor(tokens.semantic.background.canvas)};
|
|
132
|
+
--bg-foreground: ${textPrimary};
|
|
126
133
|
|
|
127
|
-
--
|
|
128
|
-
--
|
|
134
|
+
--bg-card: ${resolveColor(tokens.semantic.background.surface.default)};
|
|
135
|
+
--bg-card-foreground: ${textPrimary};
|
|
129
136
|
|
|
130
|
-
--
|
|
131
|
-
--
|
|
137
|
+
--bg-popover: ${resolveColor(tokens.semantic.background.surface.default)};
|
|
138
|
+
--bg-popover-foreground: ${textPrimary};
|
|
132
139
|
|
|
133
|
-
--
|
|
134
|
-
--
|
|
140
|
+
--bg-primary: ${resolveColor(tokens.semantic.background.brand.default)};
|
|
141
|
+
--bg-primary-foreground: ${oklchToCSS(white)};
|
|
135
142
|
|
|
136
|
-
--
|
|
137
|
-
--
|
|
143
|
+
--bg-secondary: ${resolveColor(tokens.semantic.background.surface.emphasis)};
|
|
144
|
+
--bg-secondary-foreground: ${textPrimary};
|
|
138
145
|
|
|
139
|
-
--
|
|
140
|
-
--
|
|
146
|
+
--bg-muted: ${resolveColor(tokens.semantic.background.surface.subtle)};
|
|
147
|
+
--bg-muted-foreground: ${textSecondary};
|
|
141
148
|
|
|
142
|
-
--
|
|
143
|
-
--
|
|
149
|
+
--bg-accent: ${resolveColor(tokens.semantic.background.surface.emphasis)};
|
|
150
|
+
--bg-accent-foreground: ${textPrimary};
|
|
144
151
|
|
|
145
|
-
--
|
|
146
|
-
--
|
|
152
|
+
--bg-destructive: ${oklchToCSS({ l: 0.5, c: 0.2, h: 30 })}; /* Default red */
|
|
153
|
+
--bg-destructive-foreground: ${oklchToCSS(white)};
|
|
154
|
+
|
|
155
|
+
--bg-base: ${resolveColor(tokens.semantic.background.canvas)};
|
|
156
|
+
--bg-success: ${resolveColor(tokens.semantic.background.brand.emphasis)};
|
|
147
157
|
|
|
148
158
|
/* ========================================
|
|
149
159
|
Border Tokens
|
|
150
160
|
======================================== */
|
|
151
|
-
--
|
|
152
|
-
--
|
|
153
|
-
--
|
|
161
|
+
--border-default: ${resolveColor(tokens.semantic.border.default.default)};
|
|
162
|
+
--border-input: ${resolveColor(tokens.semantic.border.default.subtle)};
|
|
163
|
+
--border-ring: ${resolveColor(tokens.semantic.background.brand.default)};
|
|
164
|
+
--border-border: ${resolveColor(tokens.semantic.border.default.default)};
|
|
165
|
+
--border-primary: ${resolveColor(tokens.semantic.background.brand.default)};
|
|
154
166
|
|
|
155
167
|
/* ========================================
|
|
156
168
|
Page Semantic Tokens (\uD398\uC774\uC9C0 \uD15C\uD50C\uB9BF \uC778\uB77C\uC778 \uC2A4\uD0C0\uC77C\uC6A9)
|
|
157
169
|
======================================== */
|
|
158
|
-
--
|
|
159
|
-
--
|
|
160
|
-
--
|
|
161
|
-
--
|
|
162
|
-
--
|
|
163
|
-
--
|
|
164
|
-
--
|
|
165
|
-
--
|
|
170
|
+
--bg-canvas: ${resolveColor(tokens.semantic.background.canvas)};
|
|
171
|
+
--bg-surface: ${resolveColor(tokens.semantic.background.surface.default)};
|
|
172
|
+
--text-primary: ${textPrimary};
|
|
173
|
+
--text-secondary: ${textSecondary};
|
|
174
|
+
--text-tertiary: ${textTertiary};
|
|
175
|
+
--text-foreground: ${textPrimary};
|
|
176
|
+
--text-card-foreground: ${textPrimary};
|
|
177
|
+
--text-popover-foreground: ${textPrimary};
|
|
178
|
+
--text-muted-foreground: ${textSecondary};
|
|
179
|
+
--text-link: ${resolveColor(tokens.semantic.background.brand.default)};
|
|
180
|
+
--text-success: ${resolveColor(tokens.semantic.background.brand.emphasis)};
|
|
181
|
+
--text-destructive: ${oklchToCSS({ l: 0.5, c: 0.2, h: 30 })};
|
|
182
|
+
--action-primary: ${textPrimary};
|
|
183
|
+
--action-primary-text: ${oklchToCSS(white)};
|
|
184
|
+
--border-emphasis: ${resolveColor(tokens.semantic.border.default.emphasis)};
|
|
166
185
|
|
|
167
186
|
/* ========================================
|
|
168
187
|
Radius Tokens
|
|
169
188
|
======================================== */
|
|
170
|
-
${Object.entries(tokens.atomic.radius).map(([key, val]) => `--
|
|
189
|
+
${Object.entries(tokens.atomic.radius).map(([key, val]) => `--radius-${key}: ${val};`).join("\n ")}
|
|
171
190
|
|
|
172
191
|
/* ========================================
|
|
173
192
|
Spacing Tokens
|
|
174
193
|
======================================== */
|
|
175
|
-
${Object.entries(tokens.atomic.spacing).map(([key, val]) => `--
|
|
194
|
+
${Object.entries(tokens.atomic.spacing).map(([key, val]) => `--spacing-${key}: ${val};`).join("\n ")}
|
|
176
195
|
}
|
|
177
196
|
`;
|
|
178
197
|
return css.trim();
|
|
@@ -296,155 +315,18 @@ function getMotionTransition(transition, motionSafe) {
|
|
|
296
315
|
return transition;
|
|
297
316
|
}
|
|
298
317
|
|
|
299
|
-
// src/components/
|
|
300
|
-
import * as React from "react";
|
|
301
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
318
|
+
// src/components/badge.tsx
|
|
302
319
|
import { cva } from "class-variance-authority";
|
|
303
320
|
import { jsx } from "react/jsx-runtime";
|
|
304
|
-
var
|
|
305
|
-
"inline-flex items-center
|
|
306
|
-
{
|
|
307
|
-
variants: {
|
|
308
|
-
variant: {
|
|
309
|
-
default: "bg-[var(--tekton-bg-primary)] text-[var(--tekton-bg-primary-foreground)] hover:bg-[var(--tekton-bg-primary)]/90",
|
|
310
|
-
destructive: "bg-[var(--tekton-bg-destructive)] text-[var(--tekton-bg-destructive-foreground)] hover:bg-[var(--tekton-bg-destructive)]/90",
|
|
311
|
-
outline: "border border-[var(--tekton-border-input)] bg-[var(--tekton-bg-background)] hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
|
|
312
|
-
secondary: "bg-[var(--tekton-bg-secondary)] text-[var(--tekton-bg-secondary-foreground)] hover:bg-[var(--tekton-bg-secondary)]/80",
|
|
313
|
-
ghost: "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
|
|
314
|
-
link: "text-[var(--tekton-bg-primary)] underline-offset-4 hover:underline"
|
|
315
|
-
},
|
|
316
|
-
size: {
|
|
317
|
-
default: "h-10 px-[var(--tekton-spacing-4)] py-[var(--tekton-spacing-2)]",
|
|
318
|
-
sm: "h-9 rounded-[var(--tekton-radius-xl)] px-[var(--tekton-spacing-3)]",
|
|
319
|
-
lg: "h-11 rounded-[var(--tekton-radius-xl)] px-[var(--tekton-spacing-8)]",
|
|
320
|
-
icon: "h-10 w-10"
|
|
321
|
-
}
|
|
322
|
-
},
|
|
323
|
-
defaultVariants: {
|
|
324
|
-
variant: "default",
|
|
325
|
-
size: "default"
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
);
|
|
329
|
-
var Button = React.forwardRef(
|
|
330
|
-
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
331
|
-
const Comp = asChild ? Slot : "button";
|
|
332
|
-
return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
|
|
333
|
-
}
|
|
334
|
-
);
|
|
335
|
-
Button.displayName = "Button";
|
|
336
|
-
|
|
337
|
-
// src/components/input.tsx
|
|
338
|
-
import * as React2 from "react";
|
|
339
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
340
|
-
var Input = React2.forwardRef(
|
|
341
|
-
({ className, type, ...props }, ref) => {
|
|
342
|
-
return /* @__PURE__ */ jsx2(
|
|
343
|
-
"input",
|
|
344
|
-
{
|
|
345
|
-
type,
|
|
346
|
-
className: cn(
|
|
347
|
-
"flex h-10 w-full rounded-[var(--tekton-radius-md)] border border-[var(--tekton-border-input)] bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm ring-offset-[var(--tekton-bg-background)] file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-[var(--tekton-bg-muted-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
348
|
-
className
|
|
349
|
-
),
|
|
350
|
-
ref,
|
|
351
|
-
...props
|
|
352
|
-
}
|
|
353
|
-
);
|
|
354
|
-
}
|
|
355
|
-
);
|
|
356
|
-
Input.displayName = "Input";
|
|
357
|
-
|
|
358
|
-
// src/components/label.tsx
|
|
359
|
-
import * as React3 from "react";
|
|
360
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
361
|
-
import { cva as cva2 } from "class-variance-authority";
|
|
362
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
363
|
-
var labelVariants = cva2(
|
|
364
|
-
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
365
|
-
);
|
|
366
|
-
var Label = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
367
|
-
Label.displayName = LabelPrimitive.Root.displayName;
|
|
368
|
-
|
|
369
|
-
// src/components/card.tsx
|
|
370
|
-
import * as React4 from "react";
|
|
371
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
372
|
-
var Card = React4.forwardRef(
|
|
373
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
374
|
-
"div",
|
|
375
|
-
{
|
|
376
|
-
ref,
|
|
377
|
-
className: cn(
|
|
378
|
-
"rounded-[var(--tekton-radius-lg)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-card)] text-[var(--tekton-bg-card-foreground)] shadow-sm",
|
|
379
|
-
className
|
|
380
|
-
),
|
|
381
|
-
...props
|
|
382
|
-
}
|
|
383
|
-
)
|
|
384
|
-
);
|
|
385
|
-
Card.displayName = "Card";
|
|
386
|
-
var CardHeader = React4.forwardRef(
|
|
387
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
388
|
-
"div",
|
|
389
|
-
{
|
|
390
|
-
ref,
|
|
391
|
-
className: cn(
|
|
392
|
-
"flex flex-col space-y-[var(--tekton-spacing-2)] p-[var(--tekton-spacing-6)]",
|
|
393
|
-
className
|
|
394
|
-
),
|
|
395
|
-
...props
|
|
396
|
-
}
|
|
397
|
-
)
|
|
398
|
-
);
|
|
399
|
-
CardHeader.displayName = "CardHeader";
|
|
400
|
-
var CardTitle = React4.forwardRef(
|
|
401
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
402
|
-
"h3",
|
|
403
|
-
{
|
|
404
|
-
ref,
|
|
405
|
-
className: cn("text-2xl font-semibold leading-none tracking-tight", className),
|
|
406
|
-
...props
|
|
407
|
-
}
|
|
408
|
-
)
|
|
409
|
-
);
|
|
410
|
-
CardTitle.displayName = "CardTitle";
|
|
411
|
-
var CardDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
412
|
-
"p",
|
|
413
|
-
{
|
|
414
|
-
ref,
|
|
415
|
-
className: cn("text-sm text-[var(--tekton-bg-muted-foreground)]", className),
|
|
416
|
-
...props
|
|
417
|
-
}
|
|
418
|
-
));
|
|
419
|
-
CardDescription.displayName = "CardDescription";
|
|
420
|
-
var CardContent = React4.forwardRef(
|
|
421
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx4("div", { ref, className: cn("p-[var(--tekton-spacing-6)] pt-0", className), ...props })
|
|
422
|
-
);
|
|
423
|
-
CardContent.displayName = "CardContent";
|
|
424
|
-
var CardFooter = React4.forwardRef(
|
|
425
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
426
|
-
"div",
|
|
427
|
-
{
|
|
428
|
-
ref,
|
|
429
|
-
className: cn("flex items-center p-[var(--tekton-spacing-6)] pt-0", className),
|
|
430
|
-
...props
|
|
431
|
-
}
|
|
432
|
-
)
|
|
433
|
-
);
|
|
434
|
-
CardFooter.displayName = "CardFooter";
|
|
435
|
-
|
|
436
|
-
// src/components/badge.tsx
|
|
437
|
-
import { cva as cva3 } from "class-variance-authority";
|
|
438
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
439
|
-
var badgeVariants = cva3(
|
|
440
|
-
"inline-flex items-center rounded-[var(--tekton-radius-full)] border px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-1)] text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2",
|
|
321
|
+
var badgeVariants = cva(
|
|
322
|
+
"inline-flex items-center rounded-[var(--radius-full)] border px-[var(--spacing-3)] py-[var(--spacing-1)] text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-[var(--border-ring)] focus:ring-offset-2",
|
|
441
323
|
{
|
|
442
324
|
variants: {
|
|
443
325
|
variant: {
|
|
444
|
-
default: "border-transparent bg-[var(--
|
|
445
|
-
secondary: "border-transparent bg-[var(--
|
|
446
|
-
destructive: "border-transparent bg-[var(--
|
|
447
|
-
outline: "text-[var(--
|
|
326
|
+
default: "border-transparent bg-[var(--bg-primary)] text-[var(--bg-primary-foreground)] hover:bg-[var(--bg-primary)]/80",
|
|
327
|
+
secondary: "border-transparent bg-[var(--bg-secondary)] text-[var(--bg-secondary-foreground)] hover:bg-[var(--bg-secondary)]/80",
|
|
328
|
+
destructive: "border-transparent bg-[var(--bg-destructive)] text-[var(--bg-destructive-foreground)] hover:bg-[var(--bg-destructive)]/80",
|
|
329
|
+
outline: "text-[var(--bg-foreground)]"
|
|
448
330
|
}
|
|
449
331
|
},
|
|
450
332
|
defaultVariants: {
|
|
@@ -453,19 +335,19 @@ var badgeVariants = cva3(
|
|
|
453
335
|
}
|
|
454
336
|
);
|
|
455
337
|
function Badge({ className, variant, ...props }) {
|
|
456
|
-
return /* @__PURE__ */
|
|
338
|
+
return /* @__PURE__ */ jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
457
339
|
}
|
|
458
340
|
|
|
459
341
|
// src/components/avatar.tsx
|
|
460
|
-
import * as
|
|
342
|
+
import * as React from "react";
|
|
461
343
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
462
|
-
import { jsx as
|
|
463
|
-
var Avatar =
|
|
344
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
345
|
+
var Avatar = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
464
346
|
AvatarPrimitive.Root,
|
|
465
347
|
{
|
|
466
348
|
ref,
|
|
467
349
|
className: cn(
|
|
468
|
-
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-[var(--
|
|
350
|
+
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-[var(--radius-full)]",
|
|
469
351
|
className
|
|
470
352
|
),
|
|
471
353
|
...props,
|
|
@@ -473,7 +355,7 @@ var Avatar = React5.forwardRef(({ className, children, ...props }, ref) => /* @_
|
|
|
473
355
|
}
|
|
474
356
|
));
|
|
475
357
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
476
|
-
var AvatarImage =
|
|
358
|
+
var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
477
359
|
AvatarPrimitive.Image,
|
|
478
360
|
{
|
|
479
361
|
ref,
|
|
@@ -482,12 +364,12 @@ var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
482
364
|
}
|
|
483
365
|
));
|
|
484
366
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
485
|
-
var AvatarFallback =
|
|
367
|
+
var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
486
368
|
AvatarPrimitive.Fallback,
|
|
487
369
|
{
|
|
488
370
|
ref,
|
|
489
371
|
className: cn(
|
|
490
|
-
"flex h-full w-full items-center justify-center rounded-[var(--
|
|
372
|
+
"flex h-full w-full items-center justify-center rounded-[var(--radius-full)] bg-[var(--bg-muted)]",
|
|
491
373
|
className
|
|
492
374
|
),
|
|
493
375
|
...props
|
|
@@ -495,95 +377,75 @@ var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
495
377
|
));
|
|
496
378
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
497
379
|
|
|
498
|
-
// src/components/separator.tsx
|
|
499
|
-
import * as React6 from "react";
|
|
500
|
-
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
501
|
-
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
502
|
-
var Separator = React6.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
503
|
-
SeparatorPrimitive.Root,
|
|
504
|
-
{
|
|
505
|
-
ref,
|
|
506
|
-
decorative,
|
|
507
|
-
orientation,
|
|
508
|
-
className: cn(
|
|
509
|
-
"shrink-0 bg-[var(--tekton-border-default)]",
|
|
510
|
-
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
511
|
-
className
|
|
512
|
-
),
|
|
513
|
-
...props
|
|
514
|
-
}
|
|
515
|
-
));
|
|
516
|
-
Separator.displayName = SeparatorPrimitive.Root.displayName;
|
|
517
|
-
|
|
518
380
|
// src/components/checkbox.tsx
|
|
519
|
-
import * as
|
|
381
|
+
import * as React2 from "react";
|
|
520
382
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
521
383
|
import { Check } from "lucide-react";
|
|
522
|
-
import { jsx as
|
|
523
|
-
var Checkbox =
|
|
384
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
385
|
+
var Checkbox = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
524
386
|
CheckboxPrimitive.Root,
|
|
525
387
|
{
|
|
526
388
|
ref,
|
|
527
389
|
className: cn(
|
|
528
|
-
"peer h-4 w-4 shrink-0 rounded-[var(--
|
|
390
|
+
"peer h-4 w-4 shrink-0 rounded-[var(--radius-sm)] border border-[var(--border-input)] ring-offset-[var(--bg-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[var(--bg-primary)] data-[state=checked]:text-[var(--bg-primary-foreground)]",
|
|
529
391
|
className
|
|
530
392
|
),
|
|
531
393
|
...props,
|
|
532
|
-
children: /* @__PURE__ */
|
|
394
|
+
children: /* @__PURE__ */ jsx3(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsx3(Check, { className: "h-4 w-4" }) })
|
|
533
395
|
}
|
|
534
396
|
));
|
|
535
397
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
536
398
|
|
|
537
399
|
// src/components/radio-group.tsx
|
|
538
|
-
import * as
|
|
400
|
+
import * as React3 from "react";
|
|
539
401
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
540
402
|
import { Circle } from "lucide-react";
|
|
541
|
-
import { jsx as
|
|
542
|
-
var RadioGroup =
|
|
543
|
-
return /* @__PURE__ */
|
|
403
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
404
|
+
var RadioGroup = React3.forwardRef(({ className, ...props }, ref) => {
|
|
405
|
+
return /* @__PURE__ */ jsx4(
|
|
544
406
|
RadioGroupPrimitive.Root,
|
|
545
407
|
{
|
|
546
|
-
className: cn("grid gap-[var(--
|
|
408
|
+
className: cn("grid gap-[var(--spacing-2)]", className),
|
|
547
409
|
...props,
|
|
548
410
|
ref
|
|
549
411
|
}
|
|
550
412
|
);
|
|
551
413
|
});
|
|
552
414
|
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
553
|
-
var RadioGroupItem =
|
|
554
|
-
return /* @__PURE__ */
|
|
415
|
+
var RadioGroupItem = React3.forwardRef(({ className, ...props }, ref) => {
|
|
416
|
+
return /* @__PURE__ */ jsx4(
|
|
555
417
|
RadioGroupPrimitive.Item,
|
|
556
418
|
{
|
|
557
419
|
ref,
|
|
558
420
|
className: cn(
|
|
559
|
-
"aspect-square h-4 w-4 rounded-[var(--
|
|
421
|
+
"aspect-square h-4 w-4 rounded-[var(--radius-full)] border border-[var(--border-input)] text-[var(--bg-primary)] ring-offset-[var(--bg-background)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
560
422
|
className
|
|
561
423
|
),
|
|
562
424
|
...props,
|
|
563
|
-
children: /* @__PURE__ */
|
|
425
|
+
children: /* @__PURE__ */ jsx4(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx4(Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
|
|
564
426
|
}
|
|
565
427
|
);
|
|
566
428
|
});
|
|
567
429
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
568
430
|
|
|
569
431
|
// src/components/switch.tsx
|
|
570
|
-
import * as
|
|
432
|
+
import * as React4 from "react";
|
|
571
433
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
572
|
-
import { jsx as
|
|
573
|
-
var Switch =
|
|
434
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
435
|
+
var Switch = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
574
436
|
SwitchPrimitives.Root,
|
|
575
437
|
{
|
|
576
438
|
className: cn(
|
|
577
|
-
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-[var(--
|
|
439
|
+
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-[var(--radius-full)] p-1 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--bg-background)] disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[var(--bg-primary)] data-[state=unchecked]:bg-[var(--bg-muted)]",
|
|
578
440
|
className
|
|
579
441
|
),
|
|
580
442
|
...props,
|
|
581
443
|
ref,
|
|
582
|
-
children: /* @__PURE__ */
|
|
444
|
+
children: /* @__PURE__ */ jsx5(
|
|
583
445
|
SwitchPrimitives.Thumb,
|
|
584
446
|
{
|
|
585
447
|
className: cn(
|
|
586
|
-
"pointer-events-none block h-4 w-4 rounded-[var(--
|
|
448
|
+
"pointer-events-none block h-4 w-4 rounded-[var(--radius-full)] bg-[var(--bg-background)] shadow-sm ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
|
|
587
449
|
)
|
|
588
450
|
}
|
|
589
451
|
)
|
|
@@ -592,15 +454,15 @@ var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
592
454
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
593
455
|
|
|
594
456
|
// src/components/textarea.tsx
|
|
595
|
-
import * as
|
|
596
|
-
import { jsx as
|
|
597
|
-
var Textarea =
|
|
457
|
+
import * as React5 from "react";
|
|
458
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
459
|
+
var Textarea = React5.forwardRef(
|
|
598
460
|
({ className, ...props }, ref) => {
|
|
599
|
-
return /* @__PURE__ */
|
|
461
|
+
return /* @__PURE__ */ jsx6(
|
|
600
462
|
"textarea",
|
|
601
463
|
{
|
|
602
464
|
className: cn(
|
|
603
|
-
"flex min-h-[80px] w-full rounded-[var(--
|
|
465
|
+
"flex min-h-[80px] w-full rounded-[var(--radius-md)] border border-[var(--border-input)] bg-[var(--bg-background)] px-[var(--spacing-3)] py-[var(--spacing-2)] text-sm ring-offset-[var(--bg-background)] placeholder:text-[var(--bg-muted-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
604
466
|
className
|
|
605
467
|
),
|
|
606
468
|
ref,
|
|
@@ -612,13 +474,13 @@ var Textarea = React10.forwardRef(
|
|
|
612
474
|
Textarea.displayName = "Textarea";
|
|
613
475
|
|
|
614
476
|
// src/components/skeleton.tsx
|
|
615
|
-
import { jsx as
|
|
477
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
616
478
|
function Skeleton({ className, ...props }) {
|
|
617
|
-
return /* @__PURE__ */
|
|
479
|
+
return /* @__PURE__ */ jsx7(
|
|
618
480
|
"div",
|
|
619
481
|
{
|
|
620
482
|
className: cn(
|
|
621
|
-
"animate-pulse rounded-[var(--
|
|
483
|
+
"animate-pulse rounded-[var(--radius-md)] bg-[var(--bg-muted)]",
|
|
622
484
|
className
|
|
623
485
|
),
|
|
624
486
|
...props
|
|
@@ -627,24 +489,24 @@ function Skeleton({ className, ...props }) {
|
|
|
627
489
|
}
|
|
628
490
|
|
|
629
491
|
// src/components/scroll-area.tsx
|
|
630
|
-
import * as
|
|
492
|
+
import * as React6 from "react";
|
|
631
493
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
632
|
-
import { jsx as
|
|
633
|
-
var ScrollArea =
|
|
494
|
+
import { jsx as jsx8, jsxs } from "react/jsx-runtime";
|
|
495
|
+
var ScrollArea = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
634
496
|
ScrollAreaPrimitive.Root,
|
|
635
497
|
{
|
|
636
498
|
ref,
|
|
637
499
|
className: cn("relative overflow-hidden", className),
|
|
638
500
|
...props,
|
|
639
501
|
children: [
|
|
640
|
-
/* @__PURE__ */
|
|
641
|
-
/* @__PURE__ */
|
|
642
|
-
/* @__PURE__ */
|
|
502
|
+
/* @__PURE__ */ jsx8(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
503
|
+
/* @__PURE__ */ jsx8(ScrollBar, {}),
|
|
504
|
+
/* @__PURE__ */ jsx8(ScrollAreaPrimitive.Corner, {})
|
|
643
505
|
]
|
|
644
506
|
}
|
|
645
507
|
));
|
|
646
508
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
647
|
-
var ScrollBar =
|
|
509
|
+
var ScrollBar = React6.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx8(
|
|
648
510
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
649
511
|
{
|
|
650
512
|
ref,
|
|
@@ -656,69 +518,69 @@ var ScrollBar = React11.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
656
518
|
className
|
|
657
519
|
),
|
|
658
520
|
...props,
|
|
659
|
-
children: /* @__PURE__ */
|
|
521
|
+
children: /* @__PURE__ */ jsx8(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-[var(--radius-full)] bg-[var(--border-default)]" })
|
|
660
522
|
}
|
|
661
523
|
));
|
|
662
524
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
663
525
|
|
|
664
526
|
// src/components/select.tsx
|
|
665
|
-
import * as
|
|
527
|
+
import * as React7 from "react";
|
|
666
528
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
667
529
|
import { Check as Check2, ChevronDown, ChevronUp } from "lucide-react";
|
|
668
|
-
import { jsx as
|
|
530
|
+
import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
669
531
|
var Select = SelectPrimitive.Root;
|
|
670
532
|
var SelectGroup = SelectPrimitive.Group;
|
|
671
533
|
var SelectValue = SelectPrimitive.Value;
|
|
672
|
-
var SelectTrigger =
|
|
534
|
+
var SelectTrigger = React7.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
|
|
673
535
|
SelectPrimitive.Trigger,
|
|
674
536
|
{
|
|
675
537
|
ref,
|
|
676
538
|
className: cn(
|
|
677
|
-
"flex h-10 w-full items-center justify-between rounded-[var(--
|
|
539
|
+
"flex h-10 w-full items-center justify-between rounded-[var(--radius-select,var(--radius-md))] border border-[var(--border-input)] bg-[var(--bg-background)] px-[var(--spacing-3)] py-[var(--spacing-2)] text-sm ring-offset-[var(--bg-background)] placeholder:text-[var(--bg-muted-foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--border-ring)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
678
540
|
className
|
|
679
541
|
),
|
|
680
542
|
...props,
|
|
681
543
|
children: [
|
|
682
544
|
children,
|
|
683
|
-
/* @__PURE__ */
|
|
545
|
+
/* @__PURE__ */ jsx9(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx9(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
|
|
684
546
|
]
|
|
685
547
|
}
|
|
686
548
|
));
|
|
687
549
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
688
|
-
var SelectScrollUpButton =
|
|
550
|
+
var SelectScrollUpButton = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
689
551
|
SelectPrimitive.ScrollUpButton,
|
|
690
552
|
{
|
|
691
553
|
ref,
|
|
692
554
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
693
555
|
...props,
|
|
694
|
-
children: /* @__PURE__ */
|
|
556
|
+
children: /* @__PURE__ */ jsx9(ChevronUp, { className: "h-4 w-4" })
|
|
695
557
|
}
|
|
696
558
|
));
|
|
697
559
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
698
|
-
var SelectScrollDownButton =
|
|
560
|
+
var SelectScrollDownButton = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
699
561
|
SelectPrimitive.ScrollDownButton,
|
|
700
562
|
{
|
|
701
563
|
ref,
|
|
702
564
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
703
565
|
...props,
|
|
704
|
-
children: /* @__PURE__ */
|
|
566
|
+
children: /* @__PURE__ */ jsx9(ChevronDown, { className: "h-4 w-4" })
|
|
705
567
|
}
|
|
706
568
|
));
|
|
707
569
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
708
|
-
var SelectContent =
|
|
570
|
+
var SelectContent = React7.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx9(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
|
|
709
571
|
SelectPrimitive.Content,
|
|
710
572
|
{
|
|
711
573
|
ref,
|
|
712
574
|
className: cn(
|
|
713
|
-
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-[var(--
|
|
575
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-default)] bg-[var(--bg-popover)] text-[var(--bg-popover-foreground)] shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
714
576
|
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
715
577
|
className
|
|
716
578
|
),
|
|
717
579
|
position,
|
|
718
580
|
...props,
|
|
719
581
|
children: [
|
|
720
|
-
/* @__PURE__ */
|
|
721
|
-
/* @__PURE__ */
|
|
582
|
+
/* @__PURE__ */ jsx9(SelectScrollUpButton, {}),
|
|
583
|
+
/* @__PURE__ */ jsx9(
|
|
722
584
|
SelectPrimitive.Viewport,
|
|
723
585
|
{
|
|
724
586
|
className: cn(
|
|
@@ -728,59 +590,59 @@ var SelectContent = React12.forwardRef(({ className, children, position = "poppe
|
|
|
728
590
|
children
|
|
729
591
|
}
|
|
730
592
|
),
|
|
731
|
-
/* @__PURE__ */
|
|
593
|
+
/* @__PURE__ */ jsx9(SelectScrollDownButton, {})
|
|
732
594
|
]
|
|
733
595
|
}
|
|
734
596
|
) }));
|
|
735
597
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
736
|
-
var SelectLabel =
|
|
598
|
+
var SelectLabel = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
737
599
|
SelectPrimitive.Label,
|
|
738
600
|
{
|
|
739
601
|
ref,
|
|
740
602
|
className: cn(
|
|
741
|
-
"py-[var(--
|
|
603
|
+
"py-[var(--spacing-2)] pl-8 pr-[var(--spacing-2)] text-sm font-semibold",
|
|
742
604
|
className
|
|
743
605
|
),
|
|
744
606
|
...props
|
|
745
607
|
}
|
|
746
608
|
));
|
|
747
609
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
748
|
-
var SelectItem =
|
|
610
|
+
var SelectItem = React7.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
|
|
749
611
|
SelectPrimitive.Item,
|
|
750
612
|
{
|
|
751
613
|
ref,
|
|
752
614
|
className: cn(
|
|
753
|
-
"relative flex w-full cursor-default select-none items-center rounded-[var(--
|
|
615
|
+
"relative flex w-full cursor-default select-none items-center rounded-[var(--radius-sm)] py-[var(--spacing-2)] pl-8 pr-[var(--spacing-2)] text-sm outline-none focus:bg-[var(--bg-accent)] focus:text-[var(--bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
754
616
|
className
|
|
755
617
|
),
|
|
756
618
|
...props,
|
|
757
619
|
children: [
|
|
758
|
-
/* @__PURE__ */
|
|
759
|
-
/* @__PURE__ */
|
|
620
|
+
/* @__PURE__ */ jsx9("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx9(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx9(Check2, { className: "h-4 w-4" }) }) }),
|
|
621
|
+
/* @__PURE__ */ jsx9(SelectPrimitive.ItemText, { children })
|
|
760
622
|
]
|
|
761
623
|
}
|
|
762
624
|
));
|
|
763
625
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
764
|
-
var SelectSeparator =
|
|
626
|
+
var SelectSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
765
627
|
SelectPrimitive.Separator,
|
|
766
628
|
{
|
|
767
629
|
ref,
|
|
768
|
-
className: cn("-mx-1 my-1 h-px bg-[var(--
|
|
630
|
+
className: cn("-mx-1 my-1 h-px bg-[var(--bg-muted)]", className),
|
|
769
631
|
...props
|
|
770
632
|
}
|
|
771
633
|
));
|
|
772
634
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
773
635
|
|
|
774
636
|
// src/components/dialog.tsx
|
|
775
|
-
import * as
|
|
637
|
+
import * as React8 from "react";
|
|
776
638
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
777
639
|
import { X } from "lucide-react";
|
|
778
|
-
import { jsx as
|
|
640
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
779
641
|
var Dialog = DialogPrimitive.Root;
|
|
780
642
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
781
643
|
var DialogPortal = DialogPrimitive.Portal;
|
|
782
644
|
var DialogClose = DialogPrimitive.Close;
|
|
783
|
-
var DialogOverlay =
|
|
645
|
+
var DialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
784
646
|
DialogPrimitive.Overlay,
|
|
785
647
|
{
|
|
786
648
|
ref,
|
|
@@ -792,8 +654,8 @@ var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
792
654
|
}
|
|
793
655
|
));
|
|
794
656
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
795
|
-
var DialogContent =
|
|
796
|
-
/* @__PURE__ */
|
|
657
|
+
var DialogContent = React8.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs3(DialogPortal, { children: [
|
|
658
|
+
/* @__PURE__ */ jsx10(DialogOverlay, {}),
|
|
797
659
|
/* @__PURE__ */ jsxs3(
|
|
798
660
|
DialogPrimitive.Content,
|
|
799
661
|
{
|
|
@@ -806,17 +668,17 @@ var DialogContent = React13.forwardRef(({ className, children, ...props }, ref)
|
|
|
806
668
|
children: [
|
|
807
669
|
children,
|
|
808
670
|
/* @__PURE__ */ jsxs3(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500", children: [
|
|
809
|
-
/* @__PURE__ */
|
|
810
|
-
/* @__PURE__ */
|
|
671
|
+
/* @__PURE__ */ jsx10(X, { className: "h-4 w-4" }),
|
|
672
|
+
/* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Close" })
|
|
811
673
|
] })
|
|
812
674
|
]
|
|
813
675
|
}
|
|
814
676
|
)
|
|
815
677
|
] }));
|
|
816
678
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
817
|
-
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
679
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx10("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
818
680
|
DialogHeader.displayName = "DialogHeader";
|
|
819
|
-
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
681
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx10(
|
|
820
682
|
"div",
|
|
821
683
|
{
|
|
822
684
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
@@ -824,7 +686,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx15(
|
|
|
824
686
|
}
|
|
825
687
|
);
|
|
826
688
|
DialogFooter.displayName = "DialogFooter";
|
|
827
|
-
var DialogTitle =
|
|
689
|
+
var DialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
828
690
|
DialogPrimitive.Title,
|
|
829
691
|
{
|
|
830
692
|
ref,
|
|
@@ -833,7 +695,7 @@ var DialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
833
695
|
}
|
|
834
696
|
));
|
|
835
697
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
836
|
-
var DialogDescription =
|
|
698
|
+
var DialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
837
699
|
DialogPrimitive.Description,
|
|
838
700
|
{
|
|
839
701
|
ref,
|
|
@@ -844,64 +706,64 @@ var DialogDescription = React13.forwardRef(({ className, ...props }, ref) => /*
|
|
|
844
706
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
845
707
|
|
|
846
708
|
// src/components/dropdown-menu.tsx
|
|
847
|
-
import * as
|
|
709
|
+
import * as React9 from "react";
|
|
848
710
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
849
711
|
import { Check as Check3, ChevronRight, Circle as Circle2 } from "lucide-react";
|
|
850
|
-
import { jsx as
|
|
712
|
+
import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
851
713
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
852
714
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
853
715
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
854
716
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
855
717
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
856
718
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
857
|
-
var DropdownMenuSubTrigger =
|
|
719
|
+
var DropdownMenuSubTrigger = React9.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
|
|
858
720
|
DropdownMenuPrimitive.SubTrigger,
|
|
859
721
|
{
|
|
860
722
|
ref,
|
|
861
723
|
className: cn(
|
|
862
|
-
"flex cursor-default select-none items-center rounded-[var(--
|
|
724
|
+
"flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-[var(--spacing-2)] py-[var(--spacing-2)] text-sm outline-none focus:bg-[var(--bg-accent)] data-[state=open]:bg-[var(--bg-accent)]",
|
|
863
725
|
inset && "pl-8",
|
|
864
726
|
className
|
|
865
727
|
),
|
|
866
728
|
...props,
|
|
867
729
|
children: [
|
|
868
730
|
children,
|
|
869
|
-
/* @__PURE__ */
|
|
731
|
+
/* @__PURE__ */ jsx11(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
870
732
|
]
|
|
871
733
|
}
|
|
872
734
|
));
|
|
873
735
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
874
|
-
var DropdownMenuSubContent =
|
|
736
|
+
var DropdownMenuSubContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
875
737
|
DropdownMenuPrimitive.SubContent,
|
|
876
738
|
{
|
|
877
739
|
ref,
|
|
878
740
|
className: cn(
|
|
879
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-[var(--
|
|
741
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-default)] bg-[var(--bg-popover)] p-1 text-[var(--bg-popover-foreground)] shadow-lg 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
880
742
|
className
|
|
881
743
|
),
|
|
882
744
|
...props
|
|
883
745
|
}
|
|
884
746
|
));
|
|
885
747
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
886
|
-
var DropdownMenuContent =
|
|
748
|
+
var DropdownMenuContent = React9.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
|
|
887
749
|
DropdownMenuPrimitive.Content,
|
|
888
750
|
{
|
|
889
751
|
ref,
|
|
890
752
|
sideOffset,
|
|
891
753
|
className: cn(
|
|
892
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-[var(--
|
|
754
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-default)] bg-[var(--bg-popover)] p-1 text-[var(--bg-popover-foreground)] shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
893
755
|
className
|
|
894
756
|
),
|
|
895
757
|
...props
|
|
896
758
|
}
|
|
897
759
|
) }));
|
|
898
760
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
899
|
-
var DropdownMenuItem =
|
|
761
|
+
var DropdownMenuItem = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
900
762
|
DropdownMenuPrimitive.Item,
|
|
901
763
|
{
|
|
902
764
|
ref,
|
|
903
765
|
className: cn(
|
|
904
|
-
"relative flex cursor-default select-none items-center rounded-[var(--
|
|
766
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-[var(--spacing-2)] py-[var(--spacing-2)] text-sm outline-none transition-colors focus:bg-[var(--bg-accent)] focus:text-[var(--bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
905
767
|
inset && "pl-8",
|
|
906
768
|
className
|
|
907
769
|
),
|
|
@@ -909,45 +771,45 @@ var DropdownMenuItem = React14.forwardRef(({ className, inset, ...props }, ref)
|
|
|
909
771
|
}
|
|
910
772
|
));
|
|
911
773
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
912
|
-
var DropdownMenuCheckboxItem =
|
|
774
|
+
var DropdownMenuCheckboxItem = React9.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs4(
|
|
913
775
|
DropdownMenuPrimitive.CheckboxItem,
|
|
914
776
|
{
|
|
915
777
|
ref,
|
|
916
778
|
className: cn(
|
|
917
|
-
"relative flex cursor-default select-none items-center rounded-[var(--
|
|
779
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-[var(--spacing-2)] pl-8 pr-[var(--spacing-2)] text-sm outline-none transition-colors focus:bg-[var(--bg-accent)] focus:text-[var(--bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
918
780
|
className
|
|
919
781
|
),
|
|
920
782
|
checked,
|
|
921
783
|
...props,
|
|
922
784
|
children: [
|
|
923
|
-
/* @__PURE__ */
|
|
785
|
+
/* @__PURE__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(Check3, { className: "h-4 w-4" }) }) }),
|
|
924
786
|
children
|
|
925
787
|
]
|
|
926
788
|
}
|
|
927
789
|
));
|
|
928
790
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
929
|
-
var DropdownMenuRadioItem =
|
|
791
|
+
var DropdownMenuRadioItem = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
|
|
930
792
|
DropdownMenuPrimitive.RadioItem,
|
|
931
793
|
{
|
|
932
794
|
ref,
|
|
933
795
|
className: cn(
|
|
934
|
-
"relative flex cursor-default select-none items-center rounded-[var(--
|
|
796
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] py-[var(--spacing-2)] pl-8 pr-[var(--spacing-2)] text-sm outline-none transition-colors focus:bg-[var(--bg-accent)] focus:text-[var(--bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
935
797
|
className
|
|
936
798
|
),
|
|
937
799
|
...props,
|
|
938
800
|
children: [
|
|
939
|
-
/* @__PURE__ */
|
|
801
|
+
/* @__PURE__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(Circle2, { className: "h-2 w-2 fill-current" }) }) }),
|
|
940
802
|
children
|
|
941
803
|
]
|
|
942
804
|
}
|
|
943
805
|
));
|
|
944
806
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
945
|
-
var DropdownMenuLabel =
|
|
807
|
+
var DropdownMenuLabel = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
946
808
|
DropdownMenuPrimitive.Label,
|
|
947
809
|
{
|
|
948
810
|
ref,
|
|
949
811
|
className: cn(
|
|
950
|
-
"px-[var(--
|
|
812
|
+
"px-[var(--spacing-2)] py-[var(--spacing-2)] text-sm font-semibold",
|
|
951
813
|
inset && "pl-8",
|
|
952
814
|
className
|
|
953
815
|
),
|
|
@@ -955,50 +817,50 @@ var DropdownMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
|
|
|
955
817
|
}
|
|
956
818
|
));
|
|
957
819
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
958
|
-
var DropdownMenuSeparator =
|
|
820
|
+
var DropdownMenuSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
959
821
|
DropdownMenuPrimitive.Separator,
|
|
960
822
|
{
|
|
961
823
|
ref,
|
|
962
|
-
className: cn("-mx-1 my-1 h-px bg-[var(--
|
|
824
|
+
className: cn("-mx-1 my-1 h-px bg-[var(--bg-muted)]", className),
|
|
963
825
|
...props
|
|
964
826
|
}
|
|
965
827
|
));
|
|
966
828
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
967
829
|
var DropdownMenuShortcut = ({ className, ...props }) => {
|
|
968
|
-
return /* @__PURE__ */
|
|
830
|
+
return /* @__PURE__ */ jsx11("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
969
831
|
};
|
|
970
832
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
971
833
|
|
|
972
834
|
// src/components/table.tsx
|
|
973
|
-
import * as
|
|
974
|
-
import { jsx as
|
|
975
|
-
var Table =
|
|
976
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
835
|
+
import * as React10 from "react";
|
|
836
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
837
|
+
var Table = React10.forwardRef(
|
|
838
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx12("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx12("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
977
839
|
);
|
|
978
840
|
Table.displayName = "Table";
|
|
979
|
-
var TableHeader =
|
|
841
|
+
var TableHeader = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
980
842
|
TableHeader.displayName = "TableHeader";
|
|
981
|
-
var TableBody =
|
|
843
|
+
var TableBody = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
|
|
982
844
|
TableBody.displayName = "TableBody";
|
|
983
|
-
var TableFooter =
|
|
845
|
+
var TableFooter = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
984
846
|
"tfoot",
|
|
985
847
|
{
|
|
986
848
|
ref,
|
|
987
849
|
className: cn(
|
|
988
|
-
"border-t bg-[var(--
|
|
850
|
+
"border-t bg-[var(--bg-muted)]/50 font-medium [&>tr]:last:border-b-0",
|
|
989
851
|
className
|
|
990
852
|
),
|
|
991
853
|
...props
|
|
992
854
|
}
|
|
993
855
|
));
|
|
994
856
|
TableFooter.displayName = "TableFooter";
|
|
995
|
-
var TableRow =
|
|
996
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
857
|
+
var TableRow = React10.forwardRef(
|
|
858
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
997
859
|
"tr",
|
|
998
860
|
{
|
|
999
861
|
ref,
|
|
1000
862
|
className: cn(
|
|
1001
|
-
"border-b border-[var(--
|
|
863
|
+
"border-b border-[var(--border-default)] transition-colors hover:bg-[var(--bg-muted)]/50 data-[state=selected]:bg-[var(--bg-muted)]",
|
|
1002
864
|
className
|
|
1003
865
|
),
|
|
1004
866
|
...props
|
|
@@ -1006,36 +868,36 @@ var TableRow = React15.forwardRef(
|
|
|
1006
868
|
)
|
|
1007
869
|
);
|
|
1008
870
|
TableRow.displayName = "TableRow";
|
|
1009
|
-
var TableHead =
|
|
871
|
+
var TableHead = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
1010
872
|
"th",
|
|
1011
873
|
{
|
|
1012
874
|
ref,
|
|
1013
875
|
className: cn(
|
|
1014
|
-
"h-12 px-[var(--
|
|
876
|
+
"h-12 px-[var(--spacing-4)] text-left align-middle font-medium text-[var(--bg-muted-foreground)] [&:has([role=checkbox])]:pr-0",
|
|
1015
877
|
className
|
|
1016
878
|
),
|
|
1017
879
|
...props
|
|
1018
880
|
}
|
|
1019
881
|
));
|
|
1020
882
|
TableHead.displayName = "TableHead";
|
|
1021
|
-
var TableCell =
|
|
883
|
+
var TableCell = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
1022
884
|
"td",
|
|
1023
885
|
{
|
|
1024
886
|
ref,
|
|
1025
887
|
className: cn(
|
|
1026
|
-
"p-[var(--
|
|
888
|
+
"p-[var(--spacing-4)] align-middle [&:has([role=checkbox])]:pr-0",
|
|
1027
889
|
className
|
|
1028
890
|
),
|
|
1029
891
|
...props
|
|
1030
892
|
}
|
|
1031
893
|
));
|
|
1032
894
|
TableCell.displayName = "TableCell";
|
|
1033
|
-
var TableCaption =
|
|
895
|
+
var TableCaption = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
1034
896
|
"caption",
|
|
1035
897
|
{
|
|
1036
898
|
ref,
|
|
1037
899
|
className: cn(
|
|
1038
|
-
"mt-[var(--
|
|
900
|
+
"mt-[var(--spacing-4)] text-sm text-[var(--bg-muted-foreground)]",
|
|
1039
901
|
className
|
|
1040
902
|
),
|
|
1041
903
|
...props
|
|
@@ -1044,40 +906,40 @@ var TableCaption = React15.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1044
906
|
TableCaption.displayName = "TableCaption";
|
|
1045
907
|
|
|
1046
908
|
// src/components/tabs.tsx
|
|
1047
|
-
import * as
|
|
909
|
+
import * as React11 from "react";
|
|
1048
910
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
1049
|
-
import { jsx as
|
|
911
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1050
912
|
var Tabs = TabsPrimitive.Root;
|
|
1051
|
-
var TabsList =
|
|
913
|
+
var TabsList = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
1052
914
|
TabsPrimitive.List,
|
|
1053
915
|
{
|
|
1054
916
|
ref,
|
|
1055
917
|
className: cn(
|
|
1056
|
-
"inline-flex h-10 items-center justify-center rounded-[var(--
|
|
918
|
+
"inline-flex h-10 items-center justify-center rounded-[var(--radius-xl)] bg-[var(--bg-muted)] p-1 text-[var(--bg-muted-foreground)]",
|
|
1057
919
|
className
|
|
1058
920
|
),
|
|
1059
921
|
...props
|
|
1060
922
|
}
|
|
1061
923
|
));
|
|
1062
924
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
1063
|
-
var TabsTrigger =
|
|
925
|
+
var TabsTrigger = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
1064
926
|
TabsPrimitive.Trigger,
|
|
1065
927
|
{
|
|
1066
928
|
ref,
|
|
1067
929
|
className: cn(
|
|
1068
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--
|
|
930
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--radius-xl)] px-[var(--spacing-3)] py-1.5 text-sm font-medium ring-offset-[var(--bg-background)] transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-[var(--bg-background)] data-[state=active]:text-[var(--bg-foreground)] data-[state=active]:shadow-sm",
|
|
1069
931
|
className
|
|
1070
932
|
),
|
|
1071
933
|
...props
|
|
1072
934
|
}
|
|
1073
935
|
));
|
|
1074
936
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
1075
|
-
var TabsContent =
|
|
937
|
+
var TabsContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
1076
938
|
TabsPrimitive.Content,
|
|
1077
939
|
{
|
|
1078
940
|
ref,
|
|
1079
941
|
className: cn(
|
|
1080
|
-
"mt-[var(--
|
|
942
|
+
"mt-[var(--spacing-2)] ring-offset-[var(--bg-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2",
|
|
1081
943
|
className
|
|
1082
944
|
),
|
|
1083
945
|
...props
|
|
@@ -1086,31 +948,31 @@ var TabsContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1086
948
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
1087
949
|
|
|
1088
950
|
// src/components/toast.tsx
|
|
1089
|
-
import * as
|
|
951
|
+
import * as React12 from "react";
|
|
1090
952
|
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
1091
|
-
import { cva as
|
|
953
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
1092
954
|
import { X as X2 } from "lucide-react";
|
|
1093
|
-
import { jsx as
|
|
955
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1094
956
|
var ToastProvider = ToastPrimitives.Provider;
|
|
1095
|
-
var ToastViewport =
|
|
957
|
+
var ToastViewport = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1096
958
|
ToastPrimitives.Viewport,
|
|
1097
959
|
{
|
|
1098
960
|
ref,
|
|
1099
961
|
className: cn(
|
|
1100
|
-
"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-[var(--
|
|
962
|
+
"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-[var(--spacing-4)] sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
|
|
1101
963
|
className
|
|
1102
964
|
),
|
|
1103
965
|
...props
|
|
1104
966
|
}
|
|
1105
967
|
));
|
|
1106
968
|
ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
|
|
1107
|
-
var toastVariants =
|
|
1108
|
-
"group pointer-events-auto relative flex w-full items-center justify-between space-x-[var(--
|
|
969
|
+
var toastVariants = cva2(
|
|
970
|
+
"group pointer-events-auto relative flex w-full items-center justify-between space-x-[var(--spacing-4)] overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-default)] p-[var(--spacing-6)] pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
|
|
1109
971
|
{
|
|
1110
972
|
variants: {
|
|
1111
973
|
variant: {
|
|
1112
|
-
default: "border bg-[var(--
|
|
1113
|
-
destructive: "destructive group border-[var(--
|
|
974
|
+
default: "border bg-[var(--bg-background)] text-[var(--bg-foreground)]",
|
|
975
|
+
destructive: "destructive group border-[var(--bg-destructive)] bg-[var(--bg-destructive)] text-[var(--bg-destructive-foreground)]"
|
|
1114
976
|
}
|
|
1115
977
|
},
|
|
1116
978
|
defaultVariants: {
|
|
@@ -1118,8 +980,8 @@ var toastVariants = cva4(
|
|
|
1118
980
|
}
|
|
1119
981
|
}
|
|
1120
982
|
);
|
|
1121
|
-
var Toast =
|
|
1122
|
-
return /* @__PURE__ */
|
|
983
|
+
var Toast = React12.forwardRef(({ className, variant, ...props }, ref) => {
|
|
984
|
+
return /* @__PURE__ */ jsx14(
|
|
1123
985
|
ToastPrimitives.Root,
|
|
1124
986
|
{
|
|
1125
987
|
ref,
|
|
@@ -1129,35 +991,35 @@ var Toast = React17.forwardRef(({ className, variant, ...props }, ref) => {
|
|
|
1129
991
|
);
|
|
1130
992
|
});
|
|
1131
993
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
1132
|
-
var ToastAction =
|
|
994
|
+
var ToastAction = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1133
995
|
ToastPrimitives.Action,
|
|
1134
996
|
{
|
|
1135
997
|
ref,
|
|
1136
998
|
className: cn(
|
|
1137
|
-
"inline-flex h-8 shrink-0 items-center justify-center rounded-[var(--
|
|
999
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--bg-muted)] bg-transparent px-[var(--spacing-3)] text-sm font-medium ring-offset-[var(--bg-background)] transition-colors hover:bg-[var(--bg-secondary)] focus:outline-none focus:ring-2 focus:ring-[var(--border-ring)] focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-[var(--bg-muted)]/40 group-[.destructive]:hover:border-[var(--bg-destructive)]/30 group-[.destructive]:hover:bg-[var(--bg-destructive)] group-[.destructive]:hover:text-[var(--bg-destructive-foreground)] group-[.destructive]:focus:ring-[var(--bg-destructive)]",
|
|
1138
1000
|
className
|
|
1139
1001
|
),
|
|
1140
1002
|
...props
|
|
1141
1003
|
}
|
|
1142
1004
|
));
|
|
1143
1005
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
1144
|
-
var ToastClose =
|
|
1006
|
+
var ToastClose = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1145
1007
|
ToastPrimitives.Close,
|
|
1146
1008
|
{
|
|
1147
1009
|
ref,
|
|
1148
1010
|
className: cn(
|
|
1149
|
-
"absolute right-2 top-2 rounded-[var(--
|
|
1011
|
+
"absolute right-2 top-2 rounded-[var(--radius-md)] p-1 text-[var(--bg-foreground)]/50 opacity-0 transition-opacity hover:text-[var(--bg-foreground)] focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
|
|
1150
1012
|
className
|
|
1151
1013
|
),
|
|
1152
1014
|
"toast-close": "",
|
|
1153
1015
|
...props,
|
|
1154
|
-
children: /* @__PURE__ */
|
|
1016
|
+
children: /* @__PURE__ */ jsx14(X2, { className: "h-4 w-4" })
|
|
1155
1017
|
}
|
|
1156
1018
|
));
|
|
1157
1019
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
1158
|
-
var ToastTitle =
|
|
1020
|
+
var ToastTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
|
|
1159
1021
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
1160
|
-
var ToastDescription =
|
|
1022
|
+
var ToastDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1161
1023
|
ToastPrimitives.Description,
|
|
1162
1024
|
{
|
|
1163
1025
|
ref,
|
|
@@ -1168,19 +1030,19 @@ var ToastDescription = React17.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1168
1030
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
1169
1031
|
|
|
1170
1032
|
// src/components/tooltip.tsx
|
|
1171
|
-
import * as
|
|
1033
|
+
import * as React13 from "react";
|
|
1172
1034
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
1173
|
-
import { jsx as
|
|
1035
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1174
1036
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
1175
1037
|
var Tooltip = TooltipPrimitive.Root;
|
|
1176
1038
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
1177
|
-
var TooltipContent =
|
|
1039
|
+
var TooltipContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1178
1040
|
TooltipPrimitive.Content,
|
|
1179
1041
|
{
|
|
1180
1042
|
ref,
|
|
1181
1043
|
sideOffset,
|
|
1182
1044
|
className: cn(
|
|
1183
|
-
"z-50 overflow-hidden rounded-[var(--
|
|
1045
|
+
"z-50 overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-default)] bg-[var(--bg-popover)] px-[var(--spacing-3)] py-[var(--spacing-2)] text-sm text-[var(--bg-popover-foreground)] shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1184
1046
|
className
|
|
1185
1047
|
),
|
|
1186
1048
|
...props
|
|
@@ -1189,19 +1051,19 @@ var TooltipContent = React18.forwardRef(({ className, sideOffset = 4, ...props }
|
|
|
1189
1051
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
1190
1052
|
|
|
1191
1053
|
// src/components/popover.tsx
|
|
1192
|
-
import * as
|
|
1054
|
+
import * as React14 from "react";
|
|
1193
1055
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
1194
|
-
import { jsx as
|
|
1056
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1195
1057
|
var Popover = PopoverPrimitive.Root;
|
|
1196
1058
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1197
|
-
var PopoverContent =
|
|
1059
|
+
var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx16(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx16(
|
|
1198
1060
|
PopoverPrimitive.Content,
|
|
1199
1061
|
{
|
|
1200
1062
|
ref,
|
|
1201
1063
|
align,
|
|
1202
1064
|
sideOffset,
|
|
1203
1065
|
className: cn(
|
|
1204
|
-
"z-50 w-72 rounded-[var(--
|
|
1066
|
+
"z-50 w-72 rounded-[var(--radius-md)] border border-[var(--border-default)] bg-[var(--bg-popover)] p-[var(--spacing-4)] text-[var(--bg-popover-foreground)] shadow-md outline-none 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1205
1067
|
className
|
|
1206
1068
|
),
|
|
1207
1069
|
...props
|
|
@@ -1210,20 +1072,20 @@ var PopoverContent = React19.forwardRef(({ className, align = "center", sideOffs
|
|
|
1210
1072
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1211
1073
|
|
|
1212
1074
|
// src/components/sheet.tsx
|
|
1213
|
-
import * as
|
|
1075
|
+
import * as React15 from "react";
|
|
1214
1076
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
1215
|
-
import { cva as
|
|
1077
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
1216
1078
|
import { X as X3 } from "lucide-react";
|
|
1217
|
-
import { jsx as
|
|
1079
|
+
import { jsx as jsx17, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1218
1080
|
var Sheet = SheetPrimitive.Root;
|
|
1219
1081
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
1220
1082
|
var SheetClose = SheetPrimitive.Close;
|
|
1221
1083
|
var SheetPortal = SheetPrimitive.Portal;
|
|
1222
|
-
var SheetOverlay =
|
|
1084
|
+
var SheetOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1223
1085
|
SheetPrimitive.Overlay,
|
|
1224
1086
|
{
|
|
1225
1087
|
className: cn(
|
|
1226
|
-
"fixed inset-0 z-50 bg-[var(--
|
|
1088
|
+
"fixed inset-0 z-50 bg-[var(--bg-background)]/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1227
1089
|
className
|
|
1228
1090
|
),
|
|
1229
1091
|
...props,
|
|
@@ -1231,15 +1093,15 @@ var SheetOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1231
1093
|
}
|
|
1232
1094
|
));
|
|
1233
1095
|
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
1234
|
-
var sheetVariants =
|
|
1235
|
-
"fixed z-50 gap-[var(--
|
|
1096
|
+
var sheetVariants = cva3(
|
|
1097
|
+
"fixed z-50 gap-[var(--spacing-4)] bg-[var(--bg-background)] p-[var(--spacing-6)] shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
1236
1098
|
{
|
|
1237
1099
|
variants: {
|
|
1238
1100
|
side: {
|
|
1239
|
-
top: "inset-x-0 top-0 border-b border-[var(--
|
|
1240
|
-
bottom: "inset-x-0 bottom-0 border-t border-[var(--
|
|
1241
|
-
left: "inset-y-0 left-0 h-full w-3/4 border-r border-[var(--
|
|
1242
|
-
right: "inset-y-0 right-0 h-full w-3/4 border-l border-[var(--
|
|
1101
|
+
top: "inset-x-0 top-0 border-b border-[var(--border-default)] data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
1102
|
+
bottom: "inset-x-0 bottom-0 border-t border-[var(--border-default)] data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
1103
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r border-[var(--border-default)] data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
1104
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l border-[var(--border-default)] data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
1243
1105
|
}
|
|
1244
1106
|
},
|
|
1245
1107
|
defaultVariants: {
|
|
@@ -1247,66 +1109,66 @@ var sheetVariants = cva5(
|
|
|
1247
1109
|
}
|
|
1248
1110
|
}
|
|
1249
1111
|
);
|
|
1250
|
-
var SheetContent =
|
|
1251
|
-
/* @__PURE__ */
|
|
1112
|
+
var SheetContent = React15.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(SheetPortal, { children: [
|
|
1113
|
+
/* @__PURE__ */ jsx17(SheetOverlay, {}),
|
|
1252
1114
|
/* @__PURE__ */ jsxs5(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
1253
1115
|
children,
|
|
1254
|
-
/* @__PURE__ */ jsxs5(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-[var(--
|
|
1255
|
-
/* @__PURE__ */
|
|
1256
|
-
/* @__PURE__ */
|
|
1116
|
+
/* @__PURE__ */ jsxs5(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-[var(--radius-sm)] opacity-70 ring-offset-[var(--bg-background)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--border-ring)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--bg-secondary)]", children: [
|
|
1117
|
+
/* @__PURE__ */ jsx17(X3, { className: "h-4 w-4" }),
|
|
1118
|
+
/* @__PURE__ */ jsx17("span", { className: "sr-only", children: "Close" })
|
|
1257
1119
|
] })
|
|
1258
1120
|
] })
|
|
1259
1121
|
] }));
|
|
1260
1122
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
1261
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
1123
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx17(
|
|
1262
1124
|
"div",
|
|
1263
1125
|
{
|
|
1264
1126
|
className: cn(
|
|
1265
|
-
"flex flex-col space-y-[var(--
|
|
1127
|
+
"flex flex-col space-y-[var(--spacing-2)] text-center sm:text-left",
|
|
1266
1128
|
className
|
|
1267
1129
|
),
|
|
1268
1130
|
...props
|
|
1269
1131
|
}
|
|
1270
1132
|
);
|
|
1271
1133
|
SheetHeader.displayName = "SheetHeader";
|
|
1272
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
1134
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx17(
|
|
1273
1135
|
"div",
|
|
1274
1136
|
{
|
|
1275
1137
|
className: cn(
|
|
1276
|
-
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-[var(--
|
|
1138
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-[var(--spacing-2)]",
|
|
1277
1139
|
className
|
|
1278
1140
|
),
|
|
1279
1141
|
...props
|
|
1280
1142
|
}
|
|
1281
1143
|
);
|
|
1282
1144
|
SheetFooter.displayName = "SheetFooter";
|
|
1283
|
-
var SheetTitle =
|
|
1145
|
+
var SheetTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1284
1146
|
SheetPrimitive.Title,
|
|
1285
1147
|
{
|
|
1286
1148
|
ref,
|
|
1287
|
-
className: cn("text-lg font-semibold text-[var(--
|
|
1149
|
+
className: cn("text-lg font-semibold text-[var(--bg-foreground)]", className),
|
|
1288
1150
|
...props
|
|
1289
1151
|
}
|
|
1290
1152
|
));
|
|
1291
1153
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
1292
|
-
var SheetDescription =
|
|
1154
|
+
var SheetDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1293
1155
|
SheetPrimitive.Description,
|
|
1294
1156
|
{
|
|
1295
1157
|
ref,
|
|
1296
|
-
className: cn("text-sm text-[var(--
|
|
1158
|
+
className: cn("text-sm text-[var(--bg-muted-foreground)]", className),
|
|
1297
1159
|
...props
|
|
1298
1160
|
}
|
|
1299
1161
|
));
|
|
1300
1162
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
1301
1163
|
|
|
1302
1164
|
// src/components/alert-dialog.tsx
|
|
1303
|
-
import * as
|
|
1165
|
+
import * as React16 from "react";
|
|
1304
1166
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
1305
|
-
import { jsx as
|
|
1167
|
+
import { jsx as jsx18, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1306
1168
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
1307
1169
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
1308
1170
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
1309
|
-
var AlertDialogOverlay =
|
|
1171
|
+
var AlertDialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1310
1172
|
AlertDialogPrimitive.Overlay,
|
|
1311
1173
|
{
|
|
1312
1174
|
className: cn(
|
|
@@ -1318,9 +1180,9 @@ var AlertDialogOverlay = React21.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1318
1180
|
}
|
|
1319
1181
|
));
|
|
1320
1182
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
1321
|
-
var AlertDialogContent =
|
|
1322
|
-
/* @__PURE__ */
|
|
1323
|
-
/* @__PURE__ */
|
|
1183
|
+
var AlertDialogContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs6(AlertDialogPortal, { children: [
|
|
1184
|
+
/* @__PURE__ */ jsx18(AlertDialogOverlay, {}),
|
|
1185
|
+
/* @__PURE__ */ jsx18(
|
|
1324
1186
|
AlertDialogPrimitive.Content,
|
|
1325
1187
|
{
|
|
1326
1188
|
ref,
|
|
@@ -1333,9 +1195,9 @@ var AlertDialogContent = React21.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1333
1195
|
)
|
|
1334
1196
|
] }));
|
|
1335
1197
|
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
1336
|
-
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
1198
|
+
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx18("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
1337
1199
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
1338
|
-
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
1200
|
+
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx18(
|
|
1339
1201
|
"div",
|
|
1340
1202
|
{
|
|
1341
1203
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
@@ -1343,7 +1205,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23(
|
|
|
1343
1205
|
}
|
|
1344
1206
|
);
|
|
1345
1207
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
1346
|
-
var AlertDialogTitle =
|
|
1208
|
+
var AlertDialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1347
1209
|
AlertDialogPrimitive.Title,
|
|
1348
1210
|
{
|
|
1349
1211
|
ref,
|
|
@@ -1352,7 +1214,7 @@ var AlertDialogTitle = React21.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1352
1214
|
}
|
|
1353
1215
|
));
|
|
1354
1216
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
1355
|
-
var AlertDialogDescription =
|
|
1217
|
+
var AlertDialogDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1356
1218
|
AlertDialogPrimitive.Description,
|
|
1357
1219
|
{
|
|
1358
1220
|
ref,
|
|
@@ -1361,9 +1223,9 @@ var AlertDialogDescription = React21.forwardRef(({ className, ...props }, ref) =
|
|
|
1361
1223
|
}
|
|
1362
1224
|
));
|
|
1363
1225
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
1364
|
-
var AlertDialogAction =
|
|
1226
|
+
var AlertDialogAction = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
|
|
1365
1227
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
1366
|
-
var AlertDialogCancel =
|
|
1228
|
+
var AlertDialogCancel = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1367
1229
|
AlertDialogPrimitive.Cancel,
|
|
1368
1230
|
{
|
|
1369
1231
|
ref,
|
|
@@ -1374,10 +1236,10 @@ var AlertDialogCancel = React21.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1374
1236
|
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
1375
1237
|
|
|
1376
1238
|
// src/components/progress.tsx
|
|
1377
|
-
import * as
|
|
1239
|
+
import * as React17 from "react";
|
|
1378
1240
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
1379
|
-
import { jsx as
|
|
1380
|
-
var Progress =
|
|
1241
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1242
|
+
var Progress = React17.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1381
1243
|
ProgressPrimitive.Root,
|
|
1382
1244
|
{
|
|
1383
1245
|
ref,
|
|
@@ -1386,14 +1248,14 @@ var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
1386
1248
|
"aria-valuemin": 0,
|
|
1387
1249
|
"aria-valuemax": 100,
|
|
1388
1250
|
className: cn(
|
|
1389
|
-
"relative h-4 w-full overflow-hidden rounded-[var(--
|
|
1251
|
+
"relative h-4 w-full overflow-hidden rounded-[var(--radius-full)] bg-[var(--bg-secondary)]",
|
|
1390
1252
|
className
|
|
1391
1253
|
),
|
|
1392
1254
|
...props,
|
|
1393
|
-
children: /* @__PURE__ */
|
|
1255
|
+
children: /* @__PURE__ */ jsx19(
|
|
1394
1256
|
ProgressPrimitive.Indicator,
|
|
1395
1257
|
{
|
|
1396
|
-
className: "h-full w-full flex-1 bg-[var(--
|
|
1258
|
+
className: "h-full w-full flex-1 bg-[var(--bg-primary)] transition-all",
|
|
1397
1259
|
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
1398
1260
|
}
|
|
1399
1261
|
)
|
|
@@ -1402,11 +1264,11 @@ var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
1402
1264
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
1403
1265
|
|
|
1404
1266
|
// src/components/sidebar.tsx
|
|
1405
|
-
import * as
|
|
1406
|
-
import { cva as
|
|
1407
|
-
import { jsx as
|
|
1408
|
-
var sidebarVariants =
|
|
1409
|
-
"flex flex-col border-r border-[var(--
|
|
1267
|
+
import * as React18 from "react";
|
|
1268
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
1269
|
+
import { jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1270
|
+
var sidebarVariants = cva4(
|
|
1271
|
+
"flex flex-col border-r border-[var(--border-default)] bg-[var(--bg-background)] transition-all duration-300",
|
|
1410
1272
|
{
|
|
1411
1273
|
variants: {
|
|
1412
1274
|
variant: {
|
|
@@ -1425,8 +1287,8 @@ var sidebarVariants = cva6(
|
|
|
1425
1287
|
}
|
|
1426
1288
|
}
|
|
1427
1289
|
);
|
|
1428
|
-
var sidebarHeaderVariants =
|
|
1429
|
-
"flex items-center gap-[var(--
|
|
1290
|
+
var sidebarHeaderVariants = cva4(
|
|
1291
|
+
"flex items-center gap-[var(--spacing-2)] border-b border-[var(--border-default)] bg-[var(--bg-card)] p-[var(--spacing-4)]",
|
|
1430
1292
|
{
|
|
1431
1293
|
variants: {
|
|
1432
1294
|
size: {
|
|
@@ -1440,25 +1302,25 @@ var sidebarHeaderVariants = cva6(
|
|
|
1440
1302
|
}
|
|
1441
1303
|
}
|
|
1442
1304
|
);
|
|
1443
|
-
var sidebarContentVariants =
|
|
1305
|
+
var sidebarContentVariants = cva4("flex-1 overflow-y-auto p-[var(--spacing-4)]", {
|
|
1444
1306
|
variants: {
|
|
1445
1307
|
spacing: {
|
|
1446
|
-
default: "space-y-[var(--
|
|
1447
|
-
compact: "space-y-[var(--
|
|
1448
|
-
relaxed: "space-y-[var(--
|
|
1308
|
+
default: "space-y-[var(--spacing-2)]",
|
|
1309
|
+
compact: "space-y-[var(--spacing-1)]",
|
|
1310
|
+
relaxed: "space-y-[var(--spacing-4)]"
|
|
1449
1311
|
}
|
|
1450
1312
|
},
|
|
1451
1313
|
defaultVariants: {
|
|
1452
1314
|
spacing: "default"
|
|
1453
1315
|
}
|
|
1454
1316
|
});
|
|
1455
|
-
var sidebarItemVariants =
|
|
1456
|
-
"flex w-full items-center gap-[var(--
|
|
1317
|
+
var sidebarItemVariants = cva4(
|
|
1318
|
+
"flex w-full items-center gap-[var(--spacing-3)] rounded-[var(--radius-md)] px-[var(--spacing-3)] py-[var(--spacing-2)] text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
1457
1319
|
{
|
|
1458
1320
|
variants: {
|
|
1459
1321
|
variant: {
|
|
1460
|
-
default: "text-[var(--
|
|
1461
|
-
active: "bg-[var(--
|
|
1322
|
+
default: "text-[var(--bg-foreground)] hover:bg-[var(--bg-accent)] hover:text-[var(--bg-accent-foreground)]",
|
|
1323
|
+
active: "bg-[var(--bg-primary)] text-[var(--bg-primary-foreground)] hover:bg-[var(--bg-primary)]/90"
|
|
1462
1324
|
}
|
|
1463
1325
|
},
|
|
1464
1326
|
defaultVariants: {
|
|
@@ -1466,24 +1328,24 @@ var sidebarItemVariants = cva6(
|
|
|
1466
1328
|
}
|
|
1467
1329
|
}
|
|
1468
1330
|
);
|
|
1469
|
-
var sidebarSectionVariants =
|
|
1331
|
+
var sidebarSectionVariants = cva4("space-y-[var(--spacing-1)]", {
|
|
1470
1332
|
variants: {}
|
|
1471
1333
|
});
|
|
1472
|
-
var sidebarSectionTitleVariants =
|
|
1473
|
-
"px-[var(--
|
|
1334
|
+
var sidebarSectionTitleVariants = cva4(
|
|
1335
|
+
"px-[var(--spacing-3)] py-[var(--spacing-2)] text-xs font-semibold uppercase tracking-wider text-[var(--text-muted-foreground)]",
|
|
1474
1336
|
{
|
|
1475
1337
|
variants: {}
|
|
1476
1338
|
}
|
|
1477
1339
|
);
|
|
1478
|
-
var sidebarFooterVariants =
|
|
1479
|
-
"border-t border-[var(--
|
|
1340
|
+
var sidebarFooterVariants = cva4(
|
|
1341
|
+
"border-t border-[var(--border-default)] p-[var(--spacing-4)]",
|
|
1480
1342
|
{
|
|
1481
1343
|
variants: {}
|
|
1482
1344
|
}
|
|
1483
1345
|
);
|
|
1484
|
-
var Sidebar =
|
|
1346
|
+
var Sidebar = React18.forwardRef(
|
|
1485
1347
|
({ className, variant, size, collapsed, ...props }, ref) => {
|
|
1486
|
-
return /* @__PURE__ */
|
|
1348
|
+
return /* @__PURE__ */ jsx20(
|
|
1487
1349
|
"div",
|
|
1488
1350
|
{
|
|
1489
1351
|
ref,
|
|
@@ -1496,19 +1358,19 @@ var Sidebar = React23.forwardRef(
|
|
|
1496
1358
|
}
|
|
1497
1359
|
);
|
|
1498
1360
|
Sidebar.displayName = "Sidebar";
|
|
1499
|
-
var SidebarHeader =
|
|
1361
|
+
var SidebarHeader = React18.forwardRef(
|
|
1500
1362
|
({ className, size, ...props }, ref) => {
|
|
1501
|
-
return /* @__PURE__ */
|
|
1363
|
+
return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarHeaderVariants({ size, className })), ...props });
|
|
1502
1364
|
}
|
|
1503
1365
|
);
|
|
1504
1366
|
SidebarHeader.displayName = "SidebarHeader";
|
|
1505
|
-
var SidebarContent =
|
|
1367
|
+
var SidebarContent = React18.forwardRef(
|
|
1506
1368
|
({ className, spacing, ...props }, ref) => {
|
|
1507
|
-
return /* @__PURE__ */
|
|
1369
|
+
return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarContentVariants({ spacing, className })), ...props });
|
|
1508
1370
|
}
|
|
1509
1371
|
);
|
|
1510
1372
|
SidebarContent.displayName = "SidebarContent";
|
|
1511
|
-
var SidebarItem =
|
|
1373
|
+
var SidebarItem = React18.forwardRef(
|
|
1512
1374
|
({ className, variant, icon, badge, children, active, ...props }, ref) => {
|
|
1513
1375
|
return /* @__PURE__ */ jsxs7(
|
|
1514
1376
|
"button",
|
|
@@ -1517,36 +1379,36 @@ var SidebarItem = React23.forwardRef(
|
|
|
1517
1379
|
className: cn(sidebarItemVariants({ variant: active ? "active" : variant, className })),
|
|
1518
1380
|
...props,
|
|
1519
1381
|
children: [
|
|
1520
|
-
icon && /* @__PURE__ */
|
|
1521
|
-
/* @__PURE__ */
|
|
1522
|
-
badge && /* @__PURE__ */
|
|
1382
|
+
icon && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0", children: icon }),
|
|
1383
|
+
/* @__PURE__ */ jsx20("span", { className: "flex-1 truncate text-left", children }),
|
|
1384
|
+
badge && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0", children: badge })
|
|
1523
1385
|
]
|
|
1524
1386
|
}
|
|
1525
1387
|
);
|
|
1526
1388
|
}
|
|
1527
1389
|
);
|
|
1528
1390
|
SidebarItem.displayName = "SidebarItem";
|
|
1529
|
-
var SidebarSection =
|
|
1391
|
+
var SidebarSection = React18.forwardRef(
|
|
1530
1392
|
({ className, title, collapsed, children, ...props }, ref) => {
|
|
1531
|
-
const [isCollapsed, setIsCollapsed] =
|
|
1532
|
-
|
|
1393
|
+
const [isCollapsed, setIsCollapsed] = React18.useState(collapsed ?? false);
|
|
1394
|
+
React18.useEffect(() => {
|
|
1533
1395
|
if (collapsed !== void 0) {
|
|
1534
1396
|
setIsCollapsed(collapsed);
|
|
1535
1397
|
}
|
|
1536
1398
|
}, [collapsed]);
|
|
1537
1399
|
return /* @__PURE__ */ jsxs7("div", { ref, className: cn(sidebarSectionVariants({ className })), ...props, children: [
|
|
1538
|
-
title && /* @__PURE__ */
|
|
1400
|
+
title && /* @__PURE__ */ jsx20(
|
|
1539
1401
|
"button",
|
|
1540
1402
|
{
|
|
1541
1403
|
className: cn(
|
|
1542
1404
|
sidebarSectionTitleVariants(),
|
|
1543
|
-
"w-full text-left hover:text-[var(--
|
|
1405
|
+
"w-full text-left hover:text-[var(--bg-foreground)] transition-colors"
|
|
1544
1406
|
),
|
|
1545
1407
|
onClick: () => setIsCollapsed(!isCollapsed),
|
|
1546
1408
|
"aria-expanded": !isCollapsed,
|
|
1547
1409
|
children: /* @__PURE__ */ jsxs7("span", { className: "flex items-center justify-between", children: [
|
|
1548
1410
|
title,
|
|
1549
|
-
/* @__PURE__ */
|
|
1411
|
+
/* @__PURE__ */ jsx20(
|
|
1550
1412
|
"span",
|
|
1551
1413
|
{
|
|
1552
1414
|
className: cn("transition-transform", isCollapsed ? "rotate-0" : "rotate-90"),
|
|
@@ -1557,30 +1419,30 @@ var SidebarSection = React23.forwardRef(
|
|
|
1557
1419
|
] })
|
|
1558
1420
|
}
|
|
1559
1421
|
),
|
|
1560
|
-
!isCollapsed && /* @__PURE__ */
|
|
1422
|
+
!isCollapsed && /* @__PURE__ */ jsx20("div", { className: "space-y-[var(--spacing-1)]", children })
|
|
1561
1423
|
] });
|
|
1562
1424
|
}
|
|
1563
1425
|
);
|
|
1564
1426
|
SidebarSection.displayName = "SidebarSection";
|
|
1565
|
-
var SidebarSectionTitle =
|
|
1427
|
+
var SidebarSectionTitle = React18.forwardRef(
|
|
1566
1428
|
({ className, ...props }, ref) => {
|
|
1567
|
-
return /* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarSectionTitleVariants({ className })), ...props });
|
|
1568
1430
|
}
|
|
1569
1431
|
);
|
|
1570
1432
|
SidebarSectionTitle.displayName = "SidebarSectionTitle";
|
|
1571
|
-
var SidebarFooter =
|
|
1433
|
+
var SidebarFooter = React18.forwardRef(
|
|
1572
1434
|
({ className, ...props }, ref) => {
|
|
1573
|
-
return /* @__PURE__ */
|
|
1435
|
+
return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarFooterVariants({ className })), ...props });
|
|
1574
1436
|
}
|
|
1575
1437
|
);
|
|
1576
1438
|
SidebarFooter.displayName = "SidebarFooter";
|
|
1577
1439
|
|
|
1578
1440
|
// src/components/navigation-menu.tsx
|
|
1579
|
-
import * as
|
|
1441
|
+
import * as React19 from "react";
|
|
1580
1442
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
1581
|
-
import { cva as
|
|
1582
|
-
import { jsx as
|
|
1583
|
-
var NavigationMenu =
|
|
1443
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
1444
|
+
import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1445
|
+
var NavigationMenu = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1584
1446
|
NavigationMenuPrimitive.Root,
|
|
1585
1447
|
{
|
|
1586
1448
|
ref,
|
|
@@ -1588,17 +1450,17 @@ var NavigationMenu = React24.forwardRef(({ className, children, ...props }, ref)
|
|
|
1588
1450
|
...props,
|
|
1589
1451
|
children: [
|
|
1590
1452
|
children,
|
|
1591
|
-
/* @__PURE__ */
|
|
1453
|
+
/* @__PURE__ */ jsx21(NavigationMenuViewport, {})
|
|
1592
1454
|
]
|
|
1593
1455
|
}
|
|
1594
1456
|
));
|
|
1595
1457
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
1596
|
-
var NavigationMenuList =
|
|
1458
|
+
var NavigationMenuList = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1597
1459
|
NavigationMenuPrimitive.List,
|
|
1598
1460
|
{
|
|
1599
1461
|
ref,
|
|
1600
1462
|
className: cn(
|
|
1601
|
-
"group flex flex-1 list-none items-center justify-center gap-[var(--
|
|
1463
|
+
"group flex flex-1 list-none items-center justify-center gap-[var(--spacing-1)]",
|
|
1602
1464
|
className
|
|
1603
1465
|
),
|
|
1604
1466
|
...props
|
|
@@ -1606,10 +1468,10 @@ var NavigationMenuList = React24.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1606
1468
|
));
|
|
1607
1469
|
NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
1608
1470
|
var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
1609
|
-
var navigationMenuTriggerStyle =
|
|
1610
|
-
"group inline-flex h-10 w-max items-center justify-center rounded-[var(--
|
|
1471
|
+
var navigationMenuTriggerStyle = cva5(
|
|
1472
|
+
"group inline-flex h-10 w-max items-center justify-center rounded-[var(--radius-md)] bg-[var(--bg-background)] px-[var(--spacing-4)] py-[var(--spacing-2)] text-sm font-medium transition-colors hover:bg-[var(--bg-accent)] hover:text-[var(--bg-accent-foreground)] focus:bg-[var(--bg-accent)] focus:text-[var(--bg-accent-foreground)] focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-[var(--bg-accent)]/50 data-[state=open]:bg-[var(--bg-accent)]/50"
|
|
1611
1473
|
);
|
|
1612
|
-
var NavigationMenuTrigger =
|
|
1474
|
+
var NavigationMenuTrigger = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1613
1475
|
NavigationMenuPrimitive.Trigger,
|
|
1614
1476
|
{
|
|
1615
1477
|
ref,
|
|
@@ -1618,7 +1480,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
|
|
|
1618
1480
|
children: [
|
|
1619
1481
|
children,
|
|
1620
1482
|
" ",
|
|
1621
|
-
/* @__PURE__ */
|
|
1483
|
+
/* @__PURE__ */ jsx21(
|
|
1622
1484
|
"svg",
|
|
1623
1485
|
{
|
|
1624
1486
|
width: "12",
|
|
@@ -1628,7 +1490,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
|
|
|
1628
1490
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1629
1491
|
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
|
|
1630
1492
|
"aria-hidden": "true",
|
|
1631
|
-
children: /* @__PURE__ */
|
|
1493
|
+
children: /* @__PURE__ */ jsx21(
|
|
1632
1494
|
"path",
|
|
1633
1495
|
{
|
|
1634
1496
|
d: "M2.5 4.5L6 8L9.5 4.5",
|
|
@@ -1644,7 +1506,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
|
|
|
1644
1506
|
}
|
|
1645
1507
|
));
|
|
1646
1508
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
1647
|
-
var NavigationMenuContent =
|
|
1509
|
+
var NavigationMenuContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1648
1510
|
NavigationMenuPrimitive.Content,
|
|
1649
1511
|
{
|
|
1650
1512
|
ref,
|
|
@@ -1657,11 +1519,11 @@ var NavigationMenuContent = React24.forwardRef(({ className, ...props }, ref) =>
|
|
|
1657
1519
|
));
|
|
1658
1520
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
1659
1521
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
1660
|
-
var NavigationMenuViewport =
|
|
1522
|
+
var NavigationMenuViewport = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx21(
|
|
1661
1523
|
NavigationMenuPrimitive.Viewport,
|
|
1662
1524
|
{
|
|
1663
1525
|
className: cn(
|
|
1664
|
-
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-[var(--
|
|
1526
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-default)] bg-[var(--bg-popover)] text-[var(--text-popover-foreground)] shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
1665
1527
|
className
|
|
1666
1528
|
),
|
|
1667
1529
|
ref,
|
|
@@ -1669,7 +1531,7 @@ var NavigationMenuViewport = React24.forwardRef(({ className, ...props }, ref) =
|
|
|
1669
1531
|
}
|
|
1670
1532
|
) }));
|
|
1671
1533
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
1672
|
-
var NavigationMenuIndicator =
|
|
1534
|
+
var NavigationMenuIndicator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1673
1535
|
NavigationMenuPrimitive.Indicator,
|
|
1674
1536
|
{
|
|
1675
1537
|
ref,
|
|
@@ -1678,16 +1540,16 @@ var NavigationMenuIndicator = React24.forwardRef(({ className, ...props }, ref)
|
|
|
1678
1540
|
className
|
|
1679
1541
|
),
|
|
1680
1542
|
...props,
|
|
1681
|
-
children: /* @__PURE__ */
|
|
1543
|
+
children: /* @__PURE__ */ jsx21("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-[var(--border-default)] shadow-md" })
|
|
1682
1544
|
}
|
|
1683
1545
|
));
|
|
1684
1546
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
1685
1547
|
|
|
1686
1548
|
// src/components/breadcrumb.tsx
|
|
1687
|
-
import * as
|
|
1688
|
-
import { cva as
|
|
1689
|
-
import { jsx as
|
|
1690
|
-
var breadcrumbVariants =
|
|
1549
|
+
import * as React20 from "react";
|
|
1550
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
1551
|
+
import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1552
|
+
var breadcrumbVariants = cva6("flex items-center gap-[var(--spacing-2)]", {
|
|
1691
1553
|
variants: {
|
|
1692
1554
|
size: {
|
|
1693
1555
|
sm: "text-xs",
|
|
@@ -1699,19 +1561,19 @@ var breadcrumbVariants = cva8("flex items-center gap-[var(--tekton-spacing-2)]",
|
|
|
1699
1561
|
size: "default"
|
|
1700
1562
|
}
|
|
1701
1563
|
});
|
|
1702
|
-
var breadcrumbListVariants =
|
|
1564
|
+
var breadcrumbListVariants = cva6("flex flex-wrap items-center gap-1.5 break-words", {
|
|
1703
1565
|
variants: {}
|
|
1704
1566
|
});
|
|
1705
|
-
var breadcrumbItemVariants =
|
|
1567
|
+
var breadcrumbItemVariants = cva6("inline-flex items-center gap-1.5", {
|
|
1706
1568
|
variants: {}
|
|
1707
1569
|
});
|
|
1708
|
-
var breadcrumbLinkVariants =
|
|
1709
|
-
"transition-colors hover:text-[var(--
|
|
1570
|
+
var breadcrumbLinkVariants = cva6(
|
|
1571
|
+
"transition-colors hover:text-[var(--bg-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 rounded-[var(--radius-sm)]",
|
|
1710
1572
|
{
|
|
1711
1573
|
variants: {
|
|
1712
1574
|
active: {
|
|
1713
|
-
true: "text-[var(--
|
|
1714
|
-
false: "text-[var(--
|
|
1575
|
+
true: "text-[var(--bg-foreground)] font-medium pointer-events-none",
|
|
1576
|
+
false: "text-[var(--text-muted-foreground)] underline-offset-4 hover:underline"
|
|
1715
1577
|
}
|
|
1716
1578
|
},
|
|
1717
1579
|
defaultVariants: {
|
|
@@ -1719,18 +1581,18 @@ var breadcrumbLinkVariants = cva8(
|
|
|
1719
1581
|
}
|
|
1720
1582
|
}
|
|
1721
1583
|
);
|
|
1722
|
-
var breadcrumbSeparatorVariants =
|
|
1584
|
+
var breadcrumbSeparatorVariants = cva6("text-[var(--text-muted-foreground)] select-none", {
|
|
1723
1585
|
variants: {}
|
|
1724
1586
|
});
|
|
1725
|
-
var breadcrumbEllipsisVariants =
|
|
1726
|
-
"inline-flex h-9 w-9 items-center justify-center text-[var(--
|
|
1587
|
+
var breadcrumbEllipsisVariants = cva6(
|
|
1588
|
+
"inline-flex h-9 w-9 items-center justify-center text-[var(--text-muted-foreground)]",
|
|
1727
1589
|
{
|
|
1728
1590
|
variants: {}
|
|
1729
1591
|
}
|
|
1730
1592
|
);
|
|
1731
|
-
var Breadcrumb =
|
|
1593
|
+
var Breadcrumb = React20.forwardRef(
|
|
1732
1594
|
({ className, size, separator: _separator = "/", ...props }, ref) => {
|
|
1733
|
-
return /* @__PURE__ */
|
|
1595
|
+
return /* @__PURE__ */ jsx22(
|
|
1734
1596
|
"nav",
|
|
1735
1597
|
{
|
|
1736
1598
|
ref,
|
|
@@ -1742,18 +1604,18 @@ var Breadcrumb = React25.forwardRef(
|
|
|
1742
1604
|
}
|
|
1743
1605
|
);
|
|
1744
1606
|
Breadcrumb.displayName = "Breadcrumb";
|
|
1745
|
-
var BreadcrumbList =
|
|
1746
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1607
|
+
var BreadcrumbList = React20.forwardRef(
|
|
1608
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx22("ol", { ref, className: cn(breadcrumbListVariants({ className })), ...props })
|
|
1747
1609
|
);
|
|
1748
1610
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
1749
|
-
var BreadcrumbItem =
|
|
1750
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1611
|
+
var BreadcrumbItem = React20.forwardRef(
|
|
1612
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx22("li", { ref, className: cn(breadcrumbItemVariants({ className })), ...props })
|
|
1751
1613
|
);
|
|
1752
1614
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
1753
|
-
var BreadcrumbLink =
|
|
1615
|
+
var BreadcrumbLink = React20.forwardRef(
|
|
1754
1616
|
({ className, active, asChild = false, ...props }, ref) => {
|
|
1755
|
-
const Comp = asChild ?
|
|
1756
|
-
return /* @__PURE__ */
|
|
1617
|
+
const Comp = asChild ? React20.Fragment : "a";
|
|
1618
|
+
return /* @__PURE__ */ jsx22(
|
|
1757
1619
|
Comp,
|
|
1758
1620
|
{
|
|
1759
1621
|
ref: asChild ? void 0 : ref,
|
|
@@ -1766,8 +1628,8 @@ var BreadcrumbLink = React25.forwardRef(
|
|
|
1766
1628
|
}
|
|
1767
1629
|
);
|
|
1768
1630
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
1769
|
-
var BreadcrumbPage =
|
|
1770
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1631
|
+
var BreadcrumbPage = React20.forwardRef(
|
|
1632
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1771
1633
|
"span",
|
|
1772
1634
|
{
|
|
1773
1635
|
ref,
|
|
@@ -1776,7 +1638,7 @@ var BreadcrumbPage = React25.forwardRef(
|
|
|
1776
1638
|
"aria-current": "page",
|
|
1777
1639
|
className: cn(
|
|
1778
1640
|
breadcrumbLinkVariants({ active: true }),
|
|
1779
|
-
"text-[var(--
|
|
1641
|
+
"text-[var(--bg-foreground)]",
|
|
1780
1642
|
className
|
|
1781
1643
|
),
|
|
1782
1644
|
...props
|
|
@@ -1784,8 +1646,8 @@ var BreadcrumbPage = React25.forwardRef(
|
|
|
1784
1646
|
)
|
|
1785
1647
|
);
|
|
1786
1648
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
1787
|
-
var BreadcrumbSeparator =
|
|
1788
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */
|
|
1649
|
+
var BreadcrumbSeparator = React20.forwardRef(
|
|
1650
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1789
1651
|
"li",
|
|
1790
1652
|
{
|
|
1791
1653
|
ref,
|
|
@@ -1798,7 +1660,7 @@ var BreadcrumbSeparator = React25.forwardRef(
|
|
|
1798
1660
|
)
|
|
1799
1661
|
);
|
|
1800
1662
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
1801
|
-
var BreadcrumbEllipsis =
|
|
1663
|
+
var BreadcrumbEllipsis = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1802
1664
|
"span",
|
|
1803
1665
|
{
|
|
1804
1666
|
ref,
|
|
@@ -1807,7 +1669,7 @@ var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1807
1669
|
className: cn(breadcrumbEllipsisVariants({ className })),
|
|
1808
1670
|
...props,
|
|
1809
1671
|
children: [
|
|
1810
|
-
/* @__PURE__ */
|
|
1672
|
+
/* @__PURE__ */ jsx22(
|
|
1811
1673
|
"svg",
|
|
1812
1674
|
{
|
|
1813
1675
|
width: "15",
|
|
@@ -1816,7 +1678,7 @@ var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1816
1678
|
fill: "none",
|
|
1817
1679
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1818
1680
|
"aria-hidden": "true",
|
|
1819
|
-
children: /* @__PURE__ */
|
|
1681
|
+
children: /* @__PURE__ */ jsx22(
|
|
1820
1682
|
"path",
|
|
1821
1683
|
{
|
|
1822
1684
|
d: "M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM12.5 8.625C13.1213 8.625 13.625 8.12132 13.625 7.5C13.625 6.87868 13.1213 6.375 12.5 6.375C11.8787 6.375 11.375 6.87868 11.375 7.5C11.375 8.12132 11.8787 8.625 12.5 8.625Z",
|
|
@@ -1827,22 +1689,22 @@ var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1827
1689
|
)
|
|
1828
1690
|
}
|
|
1829
1691
|
),
|
|
1830
|
-
/* @__PURE__ */
|
|
1692
|
+
/* @__PURE__ */ jsx22("span", { className: "sr-only", children: "More" })
|
|
1831
1693
|
]
|
|
1832
1694
|
}
|
|
1833
1695
|
));
|
|
1834
1696
|
BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
1835
1697
|
|
|
1836
1698
|
// src/components/command.tsx
|
|
1837
|
-
import * as
|
|
1699
|
+
import * as React21 from "react";
|
|
1838
1700
|
import { Command as CommandPrimitive } from "cmdk";
|
|
1839
|
-
import { jsx as
|
|
1840
|
-
var Command =
|
|
1701
|
+
import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1702
|
+
var Command = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
1841
1703
|
CommandPrimitive,
|
|
1842
1704
|
{
|
|
1843
1705
|
ref,
|
|
1844
1706
|
className: cn(
|
|
1845
|
-
"flex h-full w-full flex-col overflow-hidden rounded-[var(--
|
|
1707
|
+
"flex h-full w-full flex-col overflow-hidden rounded-[var(--radius-md)] bg-[var(--bg-popover)] text-[var(--text-popover-foreground)]",
|
|
1846
1708
|
className
|
|
1847
1709
|
),
|
|
1848
1710
|
...props
|
|
@@ -1853,24 +1715,24 @@ var CommandDialog = ({
|
|
|
1853
1715
|
children,
|
|
1854
1716
|
...props
|
|
1855
1717
|
}) => {
|
|
1856
|
-
return /* @__PURE__ */
|
|
1718
|
+
return /* @__PURE__ */ jsx23(
|
|
1857
1719
|
CommandPrimitive.Dialog,
|
|
1858
1720
|
{
|
|
1859
1721
|
...props,
|
|
1860
1722
|
className: cn(
|
|
1861
|
-
"fixed inset-0 z-50 bg-[var(--
|
|
1723
|
+
"fixed inset-0 z-50 bg-[var(--bg-background)]/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
|
|
1862
1724
|
),
|
|
1863
|
-
children: /* @__PURE__ */
|
|
1725
|
+
children: /* @__PURE__ */ jsx23("div", { className: "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-[var(--border-default)] bg-[var(--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", children: /* @__PURE__ */ jsx23(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--text-muted-foreground)] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) })
|
|
1864
1726
|
}
|
|
1865
1727
|
);
|
|
1866
1728
|
};
|
|
1867
|
-
var CommandInput =
|
|
1729
|
+
var CommandInput = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1868
1730
|
"div",
|
|
1869
1731
|
{
|
|
1870
|
-
className: "flex items-center border-b border-[var(--
|
|
1732
|
+
className: "flex items-center border-b border-[var(--border-default)] px-3",
|
|
1871
1733
|
"cmdk-input-wrapper": "",
|
|
1872
1734
|
children: [
|
|
1873
|
-
/* @__PURE__ */
|
|
1735
|
+
/* @__PURE__ */ jsx23(
|
|
1874
1736
|
"svg",
|
|
1875
1737
|
{
|
|
1876
1738
|
width: "15",
|
|
@@ -1879,7 +1741,7 @@ var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1879
1741
|
fill: "none",
|
|
1880
1742
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1881
1743
|
className: "mr-2 h-4 w-4 shrink-0 opacity-50",
|
|
1882
|
-
children: /* @__PURE__ */
|
|
1744
|
+
children: /* @__PURE__ */ jsx23(
|
|
1883
1745
|
"path",
|
|
1884
1746
|
{
|
|
1885
1747
|
d: "M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",
|
|
@@ -1890,12 +1752,12 @@ var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1890
1752
|
)
|
|
1891
1753
|
}
|
|
1892
1754
|
),
|
|
1893
|
-
/* @__PURE__ */
|
|
1755
|
+
/* @__PURE__ */ jsx23(
|
|
1894
1756
|
CommandPrimitive.Input,
|
|
1895
1757
|
{
|
|
1896
1758
|
ref,
|
|
1897
1759
|
className: cn(
|
|
1898
|
-
"flex h-11 w-full rounded-[var(--
|
|
1760
|
+
"flex h-11 w-full rounded-[var(--radius-md)] bg-transparent py-3 text-sm outline-none placeholder:text-[var(--text-muted-foreground)] disabled:cursor-not-allowed disabled:opacity-50",
|
|
1899
1761
|
className
|
|
1900
1762
|
),
|
|
1901
1763
|
...props
|
|
@@ -1905,7 +1767,7 @@ var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1905
1767
|
}
|
|
1906
1768
|
));
|
|
1907
1769
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
1908
|
-
var CommandList =
|
|
1770
|
+
var CommandList = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
1909
1771
|
CommandPrimitive.List,
|
|
1910
1772
|
{
|
|
1911
1773
|
ref,
|
|
@@ -1914,42 +1776,42 @@ var CommandList = React26.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1914
1776
|
}
|
|
1915
1777
|
));
|
|
1916
1778
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
1917
|
-
var CommandEmpty =
|
|
1779
|
+
var CommandEmpty = React21.forwardRef((props, ref) => /* @__PURE__ */ jsx23(
|
|
1918
1780
|
CommandPrimitive.Empty,
|
|
1919
1781
|
{
|
|
1920
1782
|
ref,
|
|
1921
|
-
className: "py-6 text-center text-sm text-[var(--
|
|
1783
|
+
className: "py-6 text-center text-sm text-[var(--text-muted-foreground)]",
|
|
1922
1784
|
...props
|
|
1923
1785
|
}
|
|
1924
1786
|
));
|
|
1925
1787
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
1926
|
-
var CommandGroup =
|
|
1788
|
+
var CommandGroup = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
1927
1789
|
CommandPrimitive.Group,
|
|
1928
1790
|
{
|
|
1929
1791
|
ref,
|
|
1930
1792
|
className: cn(
|
|
1931
|
-
"overflow-hidden p-1 text-[var(--
|
|
1793
|
+
"overflow-hidden p-1 text-[var(--bg-foreground)] [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--text-muted-foreground)]",
|
|
1932
1794
|
className
|
|
1933
1795
|
),
|
|
1934
1796
|
...props
|
|
1935
1797
|
}
|
|
1936
1798
|
));
|
|
1937
1799
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
1938
|
-
var CommandSeparator =
|
|
1800
|
+
var CommandSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
1939
1801
|
CommandPrimitive.Separator,
|
|
1940
1802
|
{
|
|
1941
1803
|
ref,
|
|
1942
|
-
className: cn("-mx-1 h-px bg-[var(--
|
|
1804
|
+
className: cn("-mx-1 h-px bg-[var(--border-default)]", className),
|
|
1943
1805
|
...props
|
|
1944
1806
|
}
|
|
1945
1807
|
));
|
|
1946
1808
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
1947
|
-
var CommandItem =
|
|
1809
|
+
var CommandItem = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
1948
1810
|
CommandPrimitive.Item,
|
|
1949
1811
|
{
|
|
1950
1812
|
ref,
|
|
1951
1813
|
className: cn(
|
|
1952
|
-
"relative flex cursor-default select-none items-center rounded-[var(--
|
|
1814
|
+
"relative flex cursor-default select-none items-center rounded-[var(--radius-sm)] px-2 py-1.5 text-sm outline-none aria-selected:bg-[var(--bg-accent)] aria-selected:text-[var(--bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1953
1815
|
className
|
|
1954
1816
|
),
|
|
1955
1817
|
...props
|
|
@@ -1957,11 +1819,11 @@ var CommandItem = React26.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1957
1819
|
));
|
|
1958
1820
|
CommandItem.displayName = CommandPrimitive.Item.displayName;
|
|
1959
1821
|
var CommandShortcut = ({ className, ...props }) => {
|
|
1960
|
-
return /* @__PURE__ */
|
|
1822
|
+
return /* @__PURE__ */ jsx23(
|
|
1961
1823
|
"span",
|
|
1962
1824
|
{
|
|
1963
1825
|
className: cn(
|
|
1964
|
-
"ml-auto text-xs tracking-widest text-[var(--
|
|
1826
|
+
"ml-auto text-xs tracking-widest text-[var(--text-muted-foreground)]",
|
|
1965
1827
|
className
|
|
1966
1828
|
),
|
|
1967
1829
|
...props
|
|
@@ -1972,9 +1834,9 @@ CommandShortcut.displayName = "CommandShortcut";
|
|
|
1972
1834
|
|
|
1973
1835
|
// src/components/calendar.tsx
|
|
1974
1836
|
import { DayPicker } from "react-day-picker";
|
|
1975
|
-
import { jsx as
|
|
1837
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1976
1838
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
1977
|
-
return /* @__PURE__ */
|
|
1839
|
+
return /* @__PURE__ */ jsx24(
|
|
1978
1840
|
DayPicker,
|
|
1979
1841
|
{
|
|
1980
1842
|
showOutsideDays,
|
|
@@ -1984,41 +1846,41 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
1984
1846
|
month: "space-y-4 w-full",
|
|
1985
1847
|
caption: "relative flex justify-center items-center h-9 w-full",
|
|
1986
1848
|
month_caption: "flex items-center",
|
|
1987
|
-
caption_label: "text-sm font-black text-[var(--
|
|
1849
|
+
caption_label: "text-sm font-black text-[var(--bg-foreground)]",
|
|
1988
1850
|
nav: "absolute inset-0 flex items-center justify-between pointer-events-none z-10 px-2",
|
|
1989
1851
|
button_previous: cn(
|
|
1990
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--
|
|
1991
|
-
"hover:bg-[var(--
|
|
1852
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--radius-md)] text-sm font-medium ring-offset-[var(--bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
1853
|
+
"hover:bg-[var(--bg-accent)] hover:text-[var(--bg-accent-foreground)]",
|
|
1992
1854
|
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 pointer-events-auto"
|
|
1993
1855
|
),
|
|
1994
1856
|
button_next: cn(
|
|
1995
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--
|
|
1996
|
-
"hover:bg-[var(--
|
|
1857
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--radius-md)] text-sm font-medium ring-offset-[var(--bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
1858
|
+
"hover:bg-[var(--bg-accent)] hover:text-[var(--bg-accent-foreground)]",
|
|
1997
1859
|
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 pointer-events-auto"
|
|
1998
1860
|
),
|
|
1999
1861
|
month_grid: "w-full border-collapse space-y-1",
|
|
2000
1862
|
weekdays: "flex w-full",
|
|
2001
|
-
weekday: "text-[var(--
|
|
1863
|
+
weekday: "text-[var(--bg-muted-foreground)] rounded-[var(--radius-md)] flex-1 font-normal text-[0.8rem] text-center",
|
|
2002
1864
|
week: "flex w-full mt-2",
|
|
2003
|
-
day: "flex-1 aspect-square text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-[var(--
|
|
1865
|
+
day: "flex-1 aspect-square text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-[var(--radius-md)] [&:has([aria-selected].day-outside)]:bg-[var(--bg-accent)]/50 [&:has([aria-selected])]:bg-[var(--bg-accent)] first:[&:has([aria-selected])]:rounded-l-[var(--radius-md)] last:[&:has([aria-selected])]:rounded-r-[var(--radius-md)] focus-within:relative focus-within:z-20",
|
|
2004
1866
|
day_button: cn(
|
|
2005
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--
|
|
2006
|
-
"hover:bg-[var(--
|
|
1867
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-[var(--radius-md)] text-sm font-medium ring-offset-[var(--bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
1868
|
+
"hover:bg-[var(--bg-accent)] hover:text-[var(--bg-accent-foreground)]",
|
|
2007
1869
|
"h-full w-full p-0 font-normal aria-selected:opacity-100"
|
|
2008
1870
|
),
|
|
2009
1871
|
range_end: "day-range-end",
|
|
2010
|
-
selected: "rounded-[var(--
|
|
2011
|
-
today: "rounded-[var(--
|
|
2012
|
-
outside: "day-outside text-[var(--
|
|
2013
|
-
disabled: "text-[var(--
|
|
2014
|
-
range_middle: "aria-selected:bg-[var(--
|
|
1872
|
+
selected: "rounded-[var(--radius-md)] bg-[var(--bg-primary)] text-[var(--bg-primary-foreground)] hover:bg-[var(--bg-primary)] hover:text-[var(--bg-primary-foreground)] focus:bg-[var(--bg-primary)] focus:text-[var(--bg-primary-foreground)]",
|
|
1873
|
+
today: "rounded-[var(--radius-md)] bg-[var(--bg-accent)] text-[var(--bg-accent-foreground)]",
|
|
1874
|
+
outside: "day-outside text-[var(--bg-muted-foreground)] opacity-50 aria-selected:bg-[var(--bg-accent)]/50 aria-selected:text-[var(--bg-muted-foreground)] aria-selected:opacity-30",
|
|
1875
|
+
disabled: "text-[var(--bg-muted-foreground)] opacity-50",
|
|
1876
|
+
range_middle: "aria-selected:bg-[var(--bg-accent)] aria-selected:text-[var(--bg-accent-foreground)]",
|
|
2015
1877
|
hidden: "invisible",
|
|
2016
1878
|
...classNames
|
|
2017
1879
|
},
|
|
2018
1880
|
components: {
|
|
2019
1881
|
Chevron: ({ orientation }) => {
|
|
2020
1882
|
if (orientation === "left") {
|
|
2021
|
-
return /* @__PURE__ */
|
|
1883
|
+
return /* @__PURE__ */ jsx24(
|
|
2022
1884
|
"svg",
|
|
2023
1885
|
{
|
|
2024
1886
|
width: "15",
|
|
@@ -2027,7 +1889,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
2027
1889
|
fill: "none",
|
|
2028
1890
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2029
1891
|
className: "h-4 w-4",
|
|
2030
|
-
children: /* @__PURE__ */
|
|
1892
|
+
children: /* @__PURE__ */ jsx24(
|
|
2031
1893
|
"path",
|
|
2032
1894
|
{
|
|
2033
1895
|
d: "M8.84182 3.13514C9.04327 3.32401 9.05348 3.64042 8.86462 3.84188L5.43521 7.49991L8.86462 11.1579C9.05348 11.3594 9.04327 11.6758 8.84182 11.8647C8.64036 12.0535 8.32394 12.0433 8.13508 11.8419L4.38508 7.84188C4.20477 7.64955 4.20477 7.35027 4.38508 7.15794L8.13508 3.15794C8.32394 2.95648 8.64036 2.94628 8.84182 3.13514Z",
|
|
@@ -2039,7 +1901,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
2039
1901
|
}
|
|
2040
1902
|
);
|
|
2041
1903
|
}
|
|
2042
|
-
return /* @__PURE__ */
|
|
1904
|
+
return /* @__PURE__ */ jsx24(
|
|
2043
1905
|
"svg",
|
|
2044
1906
|
{
|
|
2045
1907
|
width: "15",
|
|
@@ -2048,7 +1910,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
2048
1910
|
fill: "none",
|
|
2049
1911
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2050
1912
|
className: "h-4 w-4",
|
|
2051
|
-
children: /* @__PURE__ */
|
|
1913
|
+
children: /* @__PURE__ */ jsx24(
|
|
2052
1914
|
"path",
|
|
2053
1915
|
{
|
|
2054
1916
|
d: "M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",
|
|
@@ -2066,1259 +1928,6 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
2066
1928
|
);
|
|
2067
1929
|
}
|
|
2068
1930
|
Calendar.displayName = "Calendar";
|
|
2069
|
-
|
|
2070
|
-
// src/templates/types.ts
|
|
2071
|
-
var DEFAULT_RESPONSIVE_LAYOUT = {
|
|
2072
|
-
mobile: {
|
|
2073
|
-
padding: "var(--tekton-layout-padding-mobile)",
|
|
2074
|
-
// 16px
|
|
2075
|
-
gap: "var(--tekton-layout-gap-mobile)",
|
|
2076
|
-
// 16px
|
|
2077
|
-
columns: 4
|
|
2078
|
-
},
|
|
2079
|
-
tablet: {
|
|
2080
|
-
padding: "var(--tekton-layout-padding-tablet)",
|
|
2081
|
-
// 32px
|
|
2082
|
-
gap: "var(--tekton-layout-gap-tablet)",
|
|
2083
|
-
// 24px
|
|
2084
|
-
columns: 8
|
|
2085
|
-
},
|
|
2086
|
-
desktop: {
|
|
2087
|
-
padding: "var(--tekton-layout-padding-desktop)",
|
|
2088
|
-
// 64px
|
|
2089
|
-
gap: "var(--tekton-layout-gap-desktop)",
|
|
2090
|
-
// 32px
|
|
2091
|
-
columns: 12
|
|
2092
|
-
}
|
|
2093
|
-
};
|
|
2094
|
-
var DEFAULT_BREAKPOINTS = {
|
|
2095
|
-
mobile: 768,
|
|
2096
|
-
tablet: 1024,
|
|
2097
|
-
desktop: 1024
|
|
2098
|
-
};
|
|
2099
|
-
|
|
2100
|
-
// src/templates/registry.ts
|
|
2101
|
-
var TemplateRegistry = class _TemplateRegistry {
|
|
2102
|
-
static instance;
|
|
2103
|
-
templates;
|
|
2104
|
-
constructor() {
|
|
2105
|
-
this.templates = /* @__PURE__ */ new Map();
|
|
2106
|
-
}
|
|
2107
|
-
/**
|
|
2108
|
-
* Get singleton instance
|
|
2109
|
-
*/
|
|
2110
|
-
static getInstance() {
|
|
2111
|
-
if (!_TemplateRegistry.instance) {
|
|
2112
|
-
_TemplateRegistry.instance = new _TemplateRegistry();
|
|
2113
|
-
}
|
|
2114
|
-
return _TemplateRegistry.instance;
|
|
2115
|
-
}
|
|
2116
|
-
/**
|
|
2117
|
-
* Register a template
|
|
2118
|
-
*/
|
|
2119
|
-
register(template) {
|
|
2120
|
-
if (this.templates.has(template.id)) {
|
|
2121
|
-
console.warn(`Template "${template.id}" is already registered. Overwriting.`);
|
|
2122
|
-
}
|
|
2123
|
-
this.templates.set(template.id, {
|
|
2124
|
-
template,
|
|
2125
|
-
metadata: {
|
|
2126
|
-
usageCount: 0
|
|
2127
|
-
}
|
|
2128
|
-
});
|
|
2129
|
-
}
|
|
2130
|
-
/**
|
|
2131
|
-
* Register multiple templates
|
|
2132
|
-
*/
|
|
2133
|
-
registerMany(templates) {
|
|
2134
|
-
templates.forEach((template) => this.register(template));
|
|
2135
|
-
}
|
|
2136
|
-
/**
|
|
2137
|
-
* Get template by ID
|
|
2138
|
-
*/
|
|
2139
|
-
get(id) {
|
|
2140
|
-
const entry = this.templates.get(id);
|
|
2141
|
-
if (entry) {
|
|
2142
|
-
entry.metadata.usageCount++;
|
|
2143
|
-
entry.metadata.lastUsed = (/* @__PURE__ */ new Date()).toISOString();
|
|
2144
|
-
return entry.template;
|
|
2145
|
-
}
|
|
2146
|
-
return void 0;
|
|
2147
|
-
}
|
|
2148
|
-
/**
|
|
2149
|
-
* Get all templates
|
|
2150
|
-
*/
|
|
2151
|
-
getAll() {
|
|
2152
|
-
return Array.from(this.templates.values()).map((entry) => entry.template);
|
|
2153
|
-
}
|
|
2154
|
-
/**
|
|
2155
|
-
* Get templates by category
|
|
2156
|
-
*/
|
|
2157
|
-
getByCategory(category) {
|
|
2158
|
-
return this.getAll().filter((template) => template.category === category);
|
|
2159
|
-
}
|
|
2160
|
-
/**
|
|
2161
|
-
* Find templates by required components
|
|
2162
|
-
* Returns templates that include ALL specified components
|
|
2163
|
-
*/
|
|
2164
|
-
findByRequiredComponents(components) {
|
|
2165
|
-
return this.getAll().filter((template) => {
|
|
2166
|
-
return components.every((component) => template.requiredComponents.includes(component));
|
|
2167
|
-
});
|
|
2168
|
-
}
|
|
2169
|
-
/**
|
|
2170
|
-
* Search templates by keyword
|
|
2171
|
-
* Searches in: id, name, description, tags
|
|
2172
|
-
*/
|
|
2173
|
-
search(keyword) {
|
|
2174
|
-
const lowerKeyword = keyword.toLowerCase();
|
|
2175
|
-
return this.getAll().filter((template) => {
|
|
2176
|
-
return template.id.toLowerCase().includes(lowerKeyword) || template.name.toLowerCase().includes(lowerKeyword) || template.description.toLowerCase().includes(lowerKeyword) || template.tags?.some((tag) => tag.toLowerCase().includes(lowerKeyword));
|
|
2177
|
-
});
|
|
2178
|
-
}
|
|
2179
|
-
/**
|
|
2180
|
-
* Get template metadata
|
|
2181
|
-
*/
|
|
2182
|
-
getMetadata(id) {
|
|
2183
|
-
return this.templates.get(id)?.metadata;
|
|
2184
|
-
}
|
|
2185
|
-
/**
|
|
2186
|
-
* Get most used templates
|
|
2187
|
-
*/
|
|
2188
|
-
getMostUsed(limit = 10) {
|
|
2189
|
-
return Array.from(this.templates.values()).sort((a, b) => b.metadata.usageCount - a.metadata.usageCount).slice(0, limit).map((entry) => entry.template);
|
|
2190
|
-
}
|
|
2191
|
-
/**
|
|
2192
|
-
* Get recently used templates
|
|
2193
|
-
*/
|
|
2194
|
-
getRecentlyUsed(limit = 10) {
|
|
2195
|
-
return Array.from(this.templates.values()).filter((entry) => entry.metadata.lastUsed).sort((a, b) => {
|
|
2196
|
-
const dateA = new Date(a.metadata.lastUsed).getTime();
|
|
2197
|
-
const dateB = new Date(b.metadata.lastUsed).getTime();
|
|
2198
|
-
return dateB - dateA;
|
|
2199
|
-
}).slice(0, limit).map((entry) => entry.template);
|
|
2200
|
-
}
|
|
2201
|
-
/**
|
|
2202
|
-
* Clear all templates
|
|
2203
|
-
*/
|
|
2204
|
-
clear() {
|
|
2205
|
-
this.templates.clear();
|
|
2206
|
-
}
|
|
2207
|
-
/**
|
|
2208
|
-
* Get template count
|
|
2209
|
-
*/
|
|
2210
|
-
count() {
|
|
2211
|
-
return this.templates.size;
|
|
2212
|
-
}
|
|
2213
|
-
/**
|
|
2214
|
-
* Check if template exists
|
|
2215
|
-
*/
|
|
2216
|
-
has(id) {
|
|
2217
|
-
return this.templates.has(id);
|
|
2218
|
-
}
|
|
2219
|
-
/**
|
|
2220
|
-
* Remove template
|
|
2221
|
-
*/
|
|
2222
|
-
remove(id) {
|
|
2223
|
-
return this.templates.delete(id);
|
|
2224
|
-
}
|
|
2225
|
-
};
|
|
2226
|
-
var templateRegistry = TemplateRegistry.getInstance();
|
|
2227
|
-
|
|
2228
|
-
// src/templates/auth/login.tsx
|
|
2229
|
-
import { Fragment as Fragment2, jsx as jsx30, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2230
|
-
function LoginTemplateComponent({
|
|
2231
|
-
children,
|
|
2232
|
-
className = "",
|
|
2233
|
-
slots = {},
|
|
2234
|
-
texts = {},
|
|
2235
|
-
options = {}
|
|
2236
|
-
}) {
|
|
2237
|
-
const title = texts.title || "Welcome Back";
|
|
2238
|
-
const subtitle = texts.subtitle || "Sign in to your account";
|
|
2239
|
-
const buttonLabel = texts.button_label || "Sign In";
|
|
2240
|
-
const showSocialLogin = options.social_login ?? false;
|
|
2241
|
-
const showRememberMe = options.remember_me ?? false;
|
|
2242
|
-
return /* @__PURE__ */ jsxs11(
|
|
2243
|
-
"div",
|
|
2244
|
-
{
|
|
2245
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2246
|
-
children: [
|
|
2247
|
-
/* @__PURE__ */ jsxs11(Card, { className: "w-full max-w-md", children: [
|
|
2248
|
-
/* @__PURE__ */ jsxs11(CardHeader, { children: [
|
|
2249
|
-
slots.logo && /* @__PURE__ */ jsx30("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.logo }),
|
|
2250
|
-
/* @__PURE__ */ jsx30(CardTitle, { children: title }),
|
|
2251
|
-
/* @__PURE__ */ jsx30(CardDescription, { children: subtitle })
|
|
2252
|
-
] }),
|
|
2253
|
-
/* @__PURE__ */ jsxs11(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
|
|
2254
|
-
/* @__PURE__ */ jsxs11("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2255
|
-
/* @__PURE__ */ jsx30(Label, { htmlFor: "email", children: "Email" }),
|
|
2256
|
-
/* @__PURE__ */ jsx30(Input, { id: "email", type: "email", placeholder: "Enter your email" })
|
|
2257
|
-
] }),
|
|
2258
|
-
/* @__PURE__ */ jsxs11("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2259
|
-
/* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-between", children: [
|
|
2260
|
-
/* @__PURE__ */ jsx30(Label, { htmlFor: "password", children: "Password" }),
|
|
2261
|
-
slots.forgotPassword && /* @__PURE__ */ jsx30("div", { children: slots.forgotPassword })
|
|
2262
|
-
] }),
|
|
2263
|
-
/* @__PURE__ */ jsx30(Input, { id: "password", type: "password", placeholder: "Enter your password" })
|
|
2264
|
-
] }),
|
|
2265
|
-
showRememberMe && slots.rememberMe && /* @__PURE__ */ jsx30("div", { className: "flex items-center space-x-[var(--tekton-spacing-2)]", children: slots.rememberMe }),
|
|
2266
|
-
/* @__PURE__ */ jsx30(Button, { className: "w-full", children: buttonLabel }),
|
|
2267
|
-
showSocialLogin && slots.socialLogin && /* @__PURE__ */ jsxs11(Fragment2, { children: [
|
|
2268
|
-
/* @__PURE__ */ jsxs11("div", { className: "relative", children: [
|
|
2269
|
-
/* @__PURE__ */ jsx30("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx30(Separator, {}) }),
|
|
2270
|
-
/* @__PURE__ */ jsx30("div", { className: "relative flex justify-center text-xs uppercase", children: /* @__PURE__ */ jsx30("span", { className: "bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-2)] text-[var(--tekton-text-muted-foreground)]", children: "Or continue with" }) })
|
|
2271
|
-
] }),
|
|
2272
|
-
/* @__PURE__ */ jsx30("div", { className: "grid grid-cols-2 gap-[var(--tekton-spacing-4)]", children: slots.socialLogin })
|
|
2273
|
-
] })
|
|
2274
|
-
] }),
|
|
2275
|
-
/* @__PURE__ */ jsx30(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs11("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
|
|
2276
|
-
"Don't have an account?",
|
|
2277
|
-
" ",
|
|
2278
|
-
/* @__PURE__ */ jsx30("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Sign up" })
|
|
2279
|
-
] }) })
|
|
2280
|
-
] }),
|
|
2281
|
-
children
|
|
2282
|
-
]
|
|
2283
|
-
}
|
|
2284
|
-
);
|
|
2285
|
-
}
|
|
2286
|
-
var LoginTemplate = {
|
|
2287
|
-
id: "auth.login",
|
|
2288
|
-
name: "Login",
|
|
2289
|
-
category: "auth",
|
|
2290
|
-
description: "Standard login screen with email and password",
|
|
2291
|
-
skeleton: {
|
|
2292
|
-
shell: "centered-card",
|
|
2293
|
-
page: "auth-page",
|
|
2294
|
-
sections: [
|
|
2295
|
-
{
|
|
2296
|
-
id: "login-form",
|
|
2297
|
-
name: "Login Form",
|
|
2298
|
-
slot: "main",
|
|
2299
|
-
required: true,
|
|
2300
|
-
Component: LoginTemplateComponent
|
|
2301
|
-
}
|
|
2302
|
-
]
|
|
2303
|
-
},
|
|
2304
|
-
layout: {
|
|
2305
|
-
type: "centered",
|
|
2306
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2307
|
-
},
|
|
2308
|
-
customizable: {
|
|
2309
|
-
texts: ["title", "subtitle", "button_label"],
|
|
2310
|
-
optional: ["social_login", "remember_me"],
|
|
2311
|
-
slots: ["logo", "forgotPassword", "rememberMe", "socialLogin", "footer"]
|
|
2312
|
-
},
|
|
2313
|
-
requiredComponents: ["Button", "Input", "Form", "Card", "Label"],
|
|
2314
|
-
Component: LoginTemplateComponent,
|
|
2315
|
-
version: "1.0.0",
|
|
2316
|
-
created: "2026-01-31",
|
|
2317
|
-
updated: "2026-01-31",
|
|
2318
|
-
tags: ["auth", "login", "form"]
|
|
2319
|
-
};
|
|
2320
|
-
|
|
2321
|
-
// src/templates/auth/signup.tsx
|
|
2322
|
-
import { Fragment as Fragment3, jsx as jsx31, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2323
|
-
function SignupTemplateComponent({
|
|
2324
|
-
children,
|
|
2325
|
-
className = "",
|
|
2326
|
-
slots = {},
|
|
2327
|
-
texts = {},
|
|
2328
|
-
options = {}
|
|
2329
|
-
}) {
|
|
2330
|
-
const title = texts.title || "Create Account";
|
|
2331
|
-
const subtitle = texts.subtitle || "Sign up to get started";
|
|
2332
|
-
const buttonLabel = texts.button_label || "Sign Up";
|
|
2333
|
-
const showSocialSignup = options.social_signup ?? false;
|
|
2334
|
-
return /* @__PURE__ */ jsxs12(
|
|
2335
|
-
"div",
|
|
2336
|
-
{
|
|
2337
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2338
|
-
children: [
|
|
2339
|
-
/* @__PURE__ */ jsxs12(Card, { className: "w-full max-w-md", children: [
|
|
2340
|
-
/* @__PURE__ */ jsxs12(CardHeader, { children: [
|
|
2341
|
-
slots.logo && /* @__PURE__ */ jsx31("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.logo }),
|
|
2342
|
-
/* @__PURE__ */ jsx31(CardTitle, { children: title }),
|
|
2343
|
-
/* @__PURE__ */ jsx31(CardDescription, { children: subtitle })
|
|
2344
|
-
] }),
|
|
2345
|
-
/* @__PURE__ */ jsxs12(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
|
|
2346
|
-
/* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2347
|
-
/* @__PURE__ */ jsx31(Label, { htmlFor: "name", children: "Name" }),
|
|
2348
|
-
/* @__PURE__ */ jsx31(Input, { id: "name", type: "text", placeholder: "Enter your name" })
|
|
2349
|
-
] }),
|
|
2350
|
-
/* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2351
|
-
/* @__PURE__ */ jsx31(Label, { htmlFor: "email", children: "Email" }),
|
|
2352
|
-
/* @__PURE__ */ jsx31(Input, { id: "email", type: "email", placeholder: "Enter your email" })
|
|
2353
|
-
] }),
|
|
2354
|
-
/* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2355
|
-
/* @__PURE__ */ jsx31(Label, { htmlFor: "password", children: "Password" }),
|
|
2356
|
-
/* @__PURE__ */ jsx31(Input, { id: "password", type: "password", placeholder: "Enter your password" })
|
|
2357
|
-
] }),
|
|
2358
|
-
/* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2359
|
-
/* @__PURE__ */ jsx31(Label, { htmlFor: "password-confirm", children: "Confirm Password" }),
|
|
2360
|
-
/* @__PURE__ */ jsx31(Input, { id: "password-confirm", type: "password", placeholder: "Confirm your password" })
|
|
2361
|
-
] }),
|
|
2362
|
-
slots.termsCheckbox && /* @__PURE__ */ jsx31("div", { className: "flex items-start space-x-[var(--tekton-spacing-2)]", children: slots.termsCheckbox }),
|
|
2363
|
-
/* @__PURE__ */ jsx31(Button, { className: "w-full", children: buttonLabel }),
|
|
2364
|
-
showSocialSignup && slots.socialSignup && /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
2365
|
-
/* @__PURE__ */ jsxs12("div", { className: "relative", children: [
|
|
2366
|
-
/* @__PURE__ */ jsx31("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx31(Separator, {}) }),
|
|
2367
|
-
/* @__PURE__ */ jsx31("div", { className: "relative flex justify-center text-xs uppercase", children: /* @__PURE__ */ jsx31("span", { className: "bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-2)] text-[var(--tekton-text-muted-foreground)]", children: "Or sign up with" }) })
|
|
2368
|
-
] }),
|
|
2369
|
-
/* @__PURE__ */ jsx31("div", { className: "grid grid-cols-2 gap-[var(--tekton-spacing-4)]", children: slots.socialSignup })
|
|
2370
|
-
] })
|
|
2371
|
-
] }),
|
|
2372
|
-
/* @__PURE__ */ jsx31(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs12("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
|
|
2373
|
-
"Already have an account?",
|
|
2374
|
-
" ",
|
|
2375
|
-
/* @__PURE__ */ jsx31("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Sign in" })
|
|
2376
|
-
] }) })
|
|
2377
|
-
] }),
|
|
2378
|
-
children
|
|
2379
|
-
]
|
|
2380
|
-
}
|
|
2381
|
-
);
|
|
2382
|
-
}
|
|
2383
|
-
var SignupTemplate = {
|
|
2384
|
-
id: "auth.signup",
|
|
2385
|
-
name: "Signup",
|
|
2386
|
-
category: "auth",
|
|
2387
|
-
description: "Standard signup screen with name, email, and password",
|
|
2388
|
-
skeleton: {
|
|
2389
|
-
shell: "centered-card",
|
|
2390
|
-
page: "auth-page",
|
|
2391
|
-
sections: [
|
|
2392
|
-
{
|
|
2393
|
-
id: "signup-form",
|
|
2394
|
-
name: "Signup Form",
|
|
2395
|
-
slot: "main",
|
|
2396
|
-
required: true,
|
|
2397
|
-
Component: SignupTemplateComponent
|
|
2398
|
-
}
|
|
2399
|
-
]
|
|
2400
|
-
},
|
|
2401
|
-
layout: {
|
|
2402
|
-
type: "centered",
|
|
2403
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2404
|
-
},
|
|
2405
|
-
customizable: {
|
|
2406
|
-
texts: ["title", "subtitle", "button_label"],
|
|
2407
|
-
optional: ["social_signup"],
|
|
2408
|
-
slots: ["logo", "termsCheckbox", "socialSignup", "footer"]
|
|
2409
|
-
},
|
|
2410
|
-
requiredComponents: ["Button", "Input", "Form", "Card", "Label", "Checkbox"],
|
|
2411
|
-
Component: SignupTemplateComponent,
|
|
2412
|
-
version: "1.0.0",
|
|
2413
|
-
created: "2026-02-01",
|
|
2414
|
-
updated: "2026-02-01",
|
|
2415
|
-
tags: ["auth", "signup", "registration", "form"]
|
|
2416
|
-
};
|
|
2417
|
-
|
|
2418
|
-
// src/templates/auth/forgot-password.tsx
|
|
2419
|
-
import { jsx as jsx32, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2420
|
-
function ForgotPasswordTemplateComponent({
|
|
2421
|
-
children,
|
|
2422
|
-
className = "",
|
|
2423
|
-
slots = {},
|
|
2424
|
-
texts = {}
|
|
2425
|
-
}) {
|
|
2426
|
-
const title = texts.title || "Forgot Password?";
|
|
2427
|
-
const subtitle = texts.subtitle || "Enter your email address and we'll send you a reset link";
|
|
2428
|
-
const buttonLabel = texts.button_label || "Send Reset Link";
|
|
2429
|
-
return /* @__PURE__ */ jsxs13(
|
|
2430
|
-
"div",
|
|
2431
|
-
{
|
|
2432
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2433
|
-
children: [
|
|
2434
|
-
/* @__PURE__ */ jsxs13(Card, { className: "w-full max-w-md", children: [
|
|
2435
|
-
/* @__PURE__ */ jsxs13(CardHeader, { children: [
|
|
2436
|
-
slots.logo && /* @__PURE__ */ jsx32("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.logo }),
|
|
2437
|
-
/* @__PURE__ */ jsx32(CardTitle, { children: title }),
|
|
2438
|
-
/* @__PURE__ */ jsx32(CardDescription, { children: subtitle })
|
|
2439
|
-
] }),
|
|
2440
|
-
/* @__PURE__ */ jsxs13(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
|
|
2441
|
-
/* @__PURE__ */ jsxs13("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2442
|
-
/* @__PURE__ */ jsx32(Label, { htmlFor: "email", children: "Email" }),
|
|
2443
|
-
/* @__PURE__ */ jsx32(Input, { id: "email", type: "email", placeholder: "Enter your email" })
|
|
2444
|
-
] }),
|
|
2445
|
-
/* @__PURE__ */ jsx32(Button, { className: "w-full", children: buttonLabel })
|
|
2446
|
-
] }),
|
|
2447
|
-
/* @__PURE__ */ jsx32(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs13("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
|
|
2448
|
-
"Remember your password?",
|
|
2449
|
-
" ",
|
|
2450
|
-
/* @__PURE__ */ jsx32("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Back to login" })
|
|
2451
|
-
] }) })
|
|
2452
|
-
] }),
|
|
2453
|
-
children
|
|
2454
|
-
]
|
|
2455
|
-
}
|
|
2456
|
-
);
|
|
2457
|
-
}
|
|
2458
|
-
var ForgotPasswordTemplate = {
|
|
2459
|
-
id: "auth.forgot-password",
|
|
2460
|
-
name: "Forgot Password",
|
|
2461
|
-
category: "auth",
|
|
2462
|
-
description: "Password reset screen with email input",
|
|
2463
|
-
skeleton: {
|
|
2464
|
-
shell: "centered-card",
|
|
2465
|
-
page: "auth-page",
|
|
2466
|
-
sections: [
|
|
2467
|
-
{
|
|
2468
|
-
id: "forgot-password-form",
|
|
2469
|
-
name: "Forgot Password Form",
|
|
2470
|
-
slot: "main",
|
|
2471
|
-
required: true,
|
|
2472
|
-
Component: ForgotPasswordTemplateComponent
|
|
2473
|
-
}
|
|
2474
|
-
]
|
|
2475
|
-
},
|
|
2476
|
-
layout: {
|
|
2477
|
-
type: "centered",
|
|
2478
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2479
|
-
},
|
|
2480
|
-
customizable: {
|
|
2481
|
-
texts: ["title", "subtitle", "button_label"],
|
|
2482
|
-
optional: [],
|
|
2483
|
-
slots: ["logo", "footer"]
|
|
2484
|
-
},
|
|
2485
|
-
requiredComponents: ["Button", "Input", "Form", "Card", "Label"],
|
|
2486
|
-
Component: ForgotPasswordTemplateComponent,
|
|
2487
|
-
version: "1.0.0",
|
|
2488
|
-
created: "2026-02-01",
|
|
2489
|
-
updated: "2026-02-01",
|
|
2490
|
-
tags: ["auth", "password", "reset", "forgot"]
|
|
2491
|
-
};
|
|
2492
|
-
|
|
2493
|
-
// src/templates/auth/verification.tsx
|
|
2494
|
-
import { jsx as jsx33, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2495
|
-
function VerificationTemplateComponent({
|
|
2496
|
-
children,
|
|
2497
|
-
className = "",
|
|
2498
|
-
slots = {},
|
|
2499
|
-
texts = {},
|
|
2500
|
-
options = {}
|
|
2501
|
-
}) {
|
|
2502
|
-
const title = texts.title || "Verify Your Email";
|
|
2503
|
-
const subtitle = texts.subtitle || "We've sent a verification link to your email address";
|
|
2504
|
-
const buttonLabel = texts.button_label || "Continue";
|
|
2505
|
-
const showResend = options.show_resend ?? true;
|
|
2506
|
-
const userEmail = options.user_email || "user@example.com";
|
|
2507
|
-
return /* @__PURE__ */ jsxs14(
|
|
2508
|
-
"div",
|
|
2509
|
-
{
|
|
2510
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2511
|
-
children: [
|
|
2512
|
-
/* @__PURE__ */ jsxs14(Card, { className: "w-full max-w-md", children: [
|
|
2513
|
-
/* @__PURE__ */ jsxs14(CardHeader, { children: [
|
|
2514
|
-
slots.icon && /* @__PURE__ */ jsx33("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.icon }),
|
|
2515
|
-
/* @__PURE__ */ jsx33(CardTitle, { children: title }),
|
|
2516
|
-
/* @__PURE__ */ jsx33(CardDescription, { children: subtitle })
|
|
2517
|
-
] }),
|
|
2518
|
-
/* @__PURE__ */ jsxs14(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
|
|
2519
|
-
/* @__PURE__ */ jsx33("div", { className: "bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-3)] rounded-[var(--tekton-radius-md)] text-center", children: /* @__PURE__ */ jsx33("p", { className: "text-sm font-medium", children: userEmail }) }),
|
|
2520
|
-
/* @__PURE__ */ jsx33(Button, { className: "w-full", children: buttonLabel }),
|
|
2521
|
-
showResend && /* @__PURE__ */ jsx33("div", { className: "text-center", children: /* @__PURE__ */ jsxs14("p", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: [
|
|
2522
|
-
"Didn't receive the email?",
|
|
2523
|
-
" ",
|
|
2524
|
-
/* @__PURE__ */ jsx33("button", { className: "text-[var(--tekton-text-primary)] hover:underline", children: "Resend" })
|
|
2525
|
-
] }) })
|
|
2526
|
-
] }),
|
|
2527
|
-
/* @__PURE__ */ jsx33(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs14("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
|
|
2528
|
-
"Wrong email?",
|
|
2529
|
-
" ",
|
|
2530
|
-
/* @__PURE__ */ jsx33("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Change email address" })
|
|
2531
|
-
] }) })
|
|
2532
|
-
] }),
|
|
2533
|
-
children
|
|
2534
|
-
]
|
|
2535
|
-
}
|
|
2536
|
-
);
|
|
2537
|
-
}
|
|
2538
|
-
var VerificationTemplate = {
|
|
2539
|
-
id: "auth.verification",
|
|
2540
|
-
name: "Email Verification",
|
|
2541
|
-
category: "auth",
|
|
2542
|
-
description: "Email verification screen with resend option",
|
|
2543
|
-
skeleton: {
|
|
2544
|
-
shell: "centered-card",
|
|
2545
|
-
page: "auth-page",
|
|
2546
|
-
sections: [
|
|
2547
|
-
{
|
|
2548
|
-
id: "verification-message",
|
|
2549
|
-
name: "Verification Message",
|
|
2550
|
-
slot: "main",
|
|
2551
|
-
required: true,
|
|
2552
|
-
Component: VerificationTemplateComponent
|
|
2553
|
-
}
|
|
2554
|
-
]
|
|
2555
|
-
},
|
|
2556
|
-
layout: {
|
|
2557
|
-
type: "centered",
|
|
2558
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2559
|
-
},
|
|
2560
|
-
customizable: {
|
|
2561
|
-
texts: ["title", "subtitle", "button_label"],
|
|
2562
|
-
optional: ["show_resend", "user_email"],
|
|
2563
|
-
slots: ["icon", "footer"]
|
|
2564
|
-
},
|
|
2565
|
-
requiredComponents: ["Button", "Card"],
|
|
2566
|
-
Component: VerificationTemplateComponent,
|
|
2567
|
-
version: "1.0.0",
|
|
2568
|
-
created: "2026-02-01",
|
|
2569
|
-
updated: "2026-02-01",
|
|
2570
|
-
tags: ["auth", "verification", "email", "confirm"]
|
|
2571
|
-
};
|
|
2572
|
-
|
|
2573
|
-
// src/templates/core/landing.tsx
|
|
2574
|
-
import { jsx as jsx34, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2575
|
-
function LandingTemplateComponent({
|
|
2576
|
-
children,
|
|
2577
|
-
className = "",
|
|
2578
|
-
slots = {},
|
|
2579
|
-
texts = {}
|
|
2580
|
-
}) {
|
|
2581
|
-
const title = texts.title || "Welcome Back";
|
|
2582
|
-
const subtitle = texts.subtitle || "Start a new conversation or continue where you left off";
|
|
2583
|
-
const ctaLabel = texts.cta_label || "New Conversation";
|
|
2584
|
-
return /* @__PURE__ */ jsxs15("div", { className: `min-h-screen flex ${className}`, children: [
|
|
2585
|
-
slots.sidebar && /* @__PURE__ */ jsx34("aside", { className: "w-64 border-r border-[var(--tekton-border-default)] bg-[var(--tekton-bg-muted)]", children: slots.sidebar }),
|
|
2586
|
-
/* @__PURE__ */ jsxs15("main", { className: "flex-1 flex flex-col", children: [
|
|
2587
|
-
slots.header && /* @__PURE__ */ jsx34("header", { className: "border-b border-[var(--tekton-border-default)] p-[var(--tekton-spacing-4)]", children: slots.header }),
|
|
2588
|
-
/* @__PURE__ */ jsx34("div", { className: "flex-1 flex flex-col items-center justify-center p-[var(--tekton-spacing-8)]", children: /* @__PURE__ */ jsxs15("div", { className: "max-w-2xl w-full text-center space-y-[var(--tekton-spacing-6)]", children: [
|
|
2589
|
-
/* @__PURE__ */ jsxs15("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2590
|
-
/* @__PURE__ */ jsx34("h1", { className: "text-3xl font-bold", children: title }),
|
|
2591
|
-
/* @__PURE__ */ jsx34("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: subtitle })
|
|
2592
|
-
] }),
|
|
2593
|
-
/* @__PURE__ */ jsx34("div", { children: /* @__PURE__ */ jsx34(Button, { size: "lg", children: ctaLabel }) }),
|
|
2594
|
-
slots.recentActivity && /* @__PURE__ */ jsx34("div", { className: "mt-[var(--tekton-spacing-8)]", children: slots.recentActivity }),
|
|
2595
|
-
slots.suggestions && /* @__PURE__ */ jsx34("div", { className: "mt-[var(--tekton-spacing-6)]", children: slots.suggestions })
|
|
2596
|
-
] }) })
|
|
2597
|
-
] }),
|
|
2598
|
-
children
|
|
2599
|
-
] });
|
|
2600
|
-
}
|
|
2601
|
-
var LandingTemplate = {
|
|
2602
|
-
id: "core.landing",
|
|
2603
|
-
name: "Landing",
|
|
2604
|
-
category: "marketing",
|
|
2605
|
-
description: "Main dashboard landing page with sidebar and CTA",
|
|
2606
|
-
skeleton: {
|
|
2607
|
-
shell: "sidebar-layout",
|
|
2608
|
-
page: "main-page",
|
|
2609
|
-
sections: [
|
|
2610
|
-
{
|
|
2611
|
-
id: "landing-content",
|
|
2612
|
-
name: "Landing Content",
|
|
2613
|
-
slot: "main",
|
|
2614
|
-
required: true,
|
|
2615
|
-
Component: LandingTemplateComponent
|
|
2616
|
-
}
|
|
2617
|
-
]
|
|
2618
|
-
},
|
|
2619
|
-
layout: {
|
|
2620
|
-
type: "sidebar",
|
|
2621
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2622
|
-
},
|
|
2623
|
-
customizable: {
|
|
2624
|
-
texts: ["title", "subtitle", "cta_label"],
|
|
2625
|
-
optional: [],
|
|
2626
|
-
slots: ["sidebar", "header", "recentActivity", "suggestions"]
|
|
2627
|
-
},
|
|
2628
|
-
requiredComponents: ["Button"],
|
|
2629
|
-
Component: LandingTemplateComponent,
|
|
2630
|
-
version: "1.0.0",
|
|
2631
|
-
created: "2026-02-01",
|
|
2632
|
-
updated: "2026-02-01",
|
|
2633
|
-
tags: ["core", "landing", "dashboard", "home"]
|
|
2634
|
-
};
|
|
2635
|
-
|
|
2636
|
-
// src/templates/core/preferences.tsx
|
|
2637
|
-
import { jsx as jsx35, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2638
|
-
function PreferencesTemplateComponent({
|
|
2639
|
-
children,
|
|
2640
|
-
className = "",
|
|
2641
|
-
slots = {},
|
|
2642
|
-
texts = {}
|
|
2643
|
-
}) {
|
|
2644
|
-
const title = texts.title || "Preferences";
|
|
2645
|
-
const subtitle = texts.subtitle || "Manage your account settings and preferences";
|
|
2646
|
-
const saveLabel = texts.save_label || "Save Changes";
|
|
2647
|
-
return /* @__PURE__ */ jsxs16("div", { className: `min-h-screen flex ${className}`, children: [
|
|
2648
|
-
slots.settingsNav && /* @__PURE__ */ jsx35("aside", { className: "w-64 border-r border-[var(--tekton-border-default)] p-[var(--tekton-spacing-4)] bg-[var(--tekton-bg-muted)]", children: slots.settingsNav }),
|
|
2649
|
-
/* @__PURE__ */ jsx35("main", { className: "flex-1 p-[var(--tekton-spacing-8)]", children: /* @__PURE__ */ jsxs16("div", { className: "max-w-3xl", children: [
|
|
2650
|
-
/* @__PURE__ */ jsxs16("div", { className: "mb-[var(--tekton-spacing-8)]", children: [
|
|
2651
|
-
/* @__PURE__ */ jsx35("h1", { className: "text-3xl font-bold mb-[var(--tekton-spacing-2)]", children: title }),
|
|
2652
|
-
/* @__PURE__ */ jsx35("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: subtitle })
|
|
2653
|
-
] }),
|
|
2654
|
-
/* @__PURE__ */ jsxs16("div", { className: "space-y-[var(--tekton-spacing-6)]", children: [
|
|
2655
|
-
slots.generalSettings && /* @__PURE__ */ jsxs16(Card, { children: [
|
|
2656
|
-
/* @__PURE__ */ jsxs16(CardHeader, { children: [
|
|
2657
|
-
/* @__PURE__ */ jsx35(CardTitle, { children: "General" }),
|
|
2658
|
-
/* @__PURE__ */ jsx35(CardDescription, { children: "Manage your general preferences" })
|
|
2659
|
-
] }),
|
|
2660
|
-
/* @__PURE__ */ jsx35(CardContent, { children: slots.generalSettings })
|
|
2661
|
-
] }),
|
|
2662
|
-
slots.appearanceSettings && /* @__PURE__ */ jsxs16(Card, { children: [
|
|
2663
|
-
/* @__PURE__ */ jsxs16(CardHeader, { children: [
|
|
2664
|
-
/* @__PURE__ */ jsx35(CardTitle, { children: "Appearance" }),
|
|
2665
|
-
/* @__PURE__ */ jsx35(CardDescription, { children: "Customize the look and feel" })
|
|
2666
|
-
] }),
|
|
2667
|
-
/* @__PURE__ */ jsx35(CardContent, { children: slots.appearanceSettings })
|
|
2668
|
-
] }),
|
|
2669
|
-
slots.notificationsSettings && /* @__PURE__ */ jsxs16(Card, { children: [
|
|
2670
|
-
/* @__PURE__ */ jsxs16(CardHeader, { children: [
|
|
2671
|
-
/* @__PURE__ */ jsx35(CardTitle, { children: "Notifications" }),
|
|
2672
|
-
/* @__PURE__ */ jsx35(CardDescription, { children: "Manage notification preferences" })
|
|
2673
|
-
] }),
|
|
2674
|
-
/* @__PURE__ */ jsx35(CardContent, { children: slots.notificationsSettings })
|
|
2675
|
-
] }),
|
|
2676
|
-
slots.additionalSettings && slots.additionalSettings
|
|
2677
|
-
] }),
|
|
2678
|
-
/* @__PURE__ */ jsxs16("div", { className: "mt-[var(--tekton-spacing-8)] flex justify-end gap-[var(--tekton-spacing-4)]", children: [
|
|
2679
|
-
/* @__PURE__ */ jsx35(Button, { variant: "outline", children: "Cancel" }),
|
|
2680
|
-
/* @__PURE__ */ jsx35(Button, { children: saveLabel })
|
|
2681
|
-
] })
|
|
2682
|
-
] }) }),
|
|
2683
|
-
children
|
|
2684
|
-
] });
|
|
2685
|
-
}
|
|
2686
|
-
var PreferencesTemplate = {
|
|
2687
|
-
id: "core.preferences",
|
|
2688
|
-
name: "Preferences",
|
|
2689
|
-
category: "form",
|
|
2690
|
-
description: "Settings and preferences page with categorized options",
|
|
2691
|
-
skeleton: {
|
|
2692
|
-
shell: "sidebar-layout",
|
|
2693
|
-
page: "settings-page",
|
|
2694
|
-
sections: [
|
|
2695
|
-
{
|
|
2696
|
-
id: "preferences-content",
|
|
2697
|
-
name: "Preferences Content",
|
|
2698
|
-
slot: "main",
|
|
2699
|
-
required: true,
|
|
2700
|
-
Component: PreferencesTemplateComponent
|
|
2701
|
-
}
|
|
2702
|
-
]
|
|
2703
|
-
},
|
|
2704
|
-
layout: {
|
|
2705
|
-
type: "sidebar",
|
|
2706
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2707
|
-
},
|
|
2708
|
-
customizable: {
|
|
2709
|
-
texts: ["title", "subtitle", "save_label"],
|
|
2710
|
-
optional: [],
|
|
2711
|
-
slots: [
|
|
2712
|
-
"settingsNav",
|
|
2713
|
-
"generalSettings",
|
|
2714
|
-
"appearanceSettings",
|
|
2715
|
-
"notificationsSettings",
|
|
2716
|
-
"additionalSettings"
|
|
2717
|
-
]
|
|
2718
|
-
},
|
|
2719
|
-
requiredComponents: ["Button", "Card", "Switch", "Select"],
|
|
2720
|
-
Component: PreferencesTemplateComponent,
|
|
2721
|
-
version: "1.0.0",
|
|
2722
|
-
created: "2026-02-01",
|
|
2723
|
-
updated: "2026-02-01",
|
|
2724
|
-
tags: ["core", "settings", "preferences", "configuration"]
|
|
2725
|
-
};
|
|
2726
|
-
|
|
2727
|
-
// src/templates/core/profile.tsx
|
|
2728
|
-
import { jsx as jsx36, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2729
|
-
function ProfileTemplateComponent({
|
|
2730
|
-
children,
|
|
2731
|
-
className = "",
|
|
2732
|
-
slots = {},
|
|
2733
|
-
texts = {},
|
|
2734
|
-
options = {}
|
|
2735
|
-
}) {
|
|
2736
|
-
const title = texts.title || "Profile";
|
|
2737
|
-
const subtitle = texts.subtitle || "Manage your profile information";
|
|
2738
|
-
const saveLabel = texts.save_label || "Save Changes";
|
|
2739
|
-
const userName = String(options.user_name || "John Doe");
|
|
2740
|
-
const userEmail = String(options.user_email || "john@example.com");
|
|
2741
|
-
return /* @__PURE__ */ jsxs17("div", { className: `min-h-screen p-[var(--tekton-spacing-8)] ${className}`, children: [
|
|
2742
|
-
/* @__PURE__ */ jsxs17("div", { className: "max-w-3xl mx-auto", children: [
|
|
2743
|
-
/* @__PURE__ */ jsxs17("div", { className: "mb-[var(--tekton-spacing-8)]", children: [
|
|
2744
|
-
/* @__PURE__ */ jsx36("h1", { className: "text-3xl font-bold mb-[var(--tekton-spacing-2)]", children: title }),
|
|
2745
|
-
/* @__PURE__ */ jsx36("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: subtitle })
|
|
2746
|
-
] }),
|
|
2747
|
-
/* @__PURE__ */ jsxs17(Card, { children: [
|
|
2748
|
-
/* @__PURE__ */ jsxs17(CardHeader, { children: [
|
|
2749
|
-
/* @__PURE__ */ jsx36(CardTitle, { children: "Personal Information" }),
|
|
2750
|
-
/* @__PURE__ */ jsx36(CardDescription, { children: "Update your profile details" })
|
|
2751
|
-
] }),
|
|
2752
|
-
/* @__PURE__ */ jsxs17(CardContent, { className: "space-y-[var(--tekton-spacing-6)]", children: [
|
|
2753
|
-
slots.avatar && /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-[var(--tekton-spacing-4)]", children: [
|
|
2754
|
-
/* @__PURE__ */ jsx36("div", { children: slots.avatar }),
|
|
2755
|
-
/* @__PURE__ */ jsxs17("div", { children: [
|
|
2756
|
-
/* @__PURE__ */ jsx36(Button, { variant: "outline", size: "sm", children: "Change Photo" }),
|
|
2757
|
-
/* @__PURE__ */ jsx36("p", { className: "text-xs text-[var(--tekton-text-muted-foreground)] mt-[var(--tekton-spacing-2)]", children: "JPG, PNG. Max 2MB" })
|
|
2758
|
-
] })
|
|
2759
|
-
] }),
|
|
2760
|
-
/* @__PURE__ */ jsxs17("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2761
|
-
/* @__PURE__ */ jsx36(Label, { htmlFor: "name", children: "Name" }),
|
|
2762
|
-
/* @__PURE__ */ jsx36(Input, { id: "name", type: "text", defaultValue: userName })
|
|
2763
|
-
] }),
|
|
2764
|
-
/* @__PURE__ */ jsxs17("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2765
|
-
/* @__PURE__ */ jsx36(Label, { htmlFor: "email", children: "Email" }),
|
|
2766
|
-
/* @__PURE__ */ jsx36(Input, { id: "email", type: "email", defaultValue: userEmail, disabled: true }),
|
|
2767
|
-
/* @__PURE__ */ jsx36("p", { className: "text-xs text-[var(--tekton-text-muted-foreground)]", children: "Contact support to change your email address" })
|
|
2768
|
-
] }),
|
|
2769
|
-
slots.bioField && /* @__PURE__ */ jsx36("div", { className: "space-y-[var(--tekton-spacing-2)]", children: slots.bioField }),
|
|
2770
|
-
slots.additionalFields && slots.additionalFields
|
|
2771
|
-
] })
|
|
2772
|
-
] }),
|
|
2773
|
-
slots.additionalSections && /* @__PURE__ */ jsx36("div", { className: "mt-[var(--tekton-spacing-6)]", children: slots.additionalSections }),
|
|
2774
|
-
/* @__PURE__ */ jsxs17("div", { className: "mt-[var(--tekton-spacing-8)] flex justify-end gap-[var(--tekton-spacing-4)]", children: [
|
|
2775
|
-
/* @__PURE__ */ jsx36(Button, { variant: "outline", children: "Cancel" }),
|
|
2776
|
-
/* @__PURE__ */ jsx36(Button, { children: saveLabel })
|
|
2777
|
-
] })
|
|
2778
|
-
] }),
|
|
2779
|
-
children
|
|
2780
|
-
] });
|
|
2781
|
-
}
|
|
2782
|
-
var ProfileTemplate = {
|
|
2783
|
-
id: "core.profile",
|
|
2784
|
-
name: "Profile",
|
|
2785
|
-
category: "form",
|
|
2786
|
-
description: "User profile page with editable information",
|
|
2787
|
-
skeleton: {
|
|
2788
|
-
shell: "centered-layout",
|
|
2789
|
-
page: "profile-page",
|
|
2790
|
-
sections: [
|
|
2791
|
-
{
|
|
2792
|
-
id: "profile-content",
|
|
2793
|
-
name: "Profile Content",
|
|
2794
|
-
slot: "main",
|
|
2795
|
-
required: true,
|
|
2796
|
-
Component: ProfileTemplateComponent
|
|
2797
|
-
}
|
|
2798
|
-
]
|
|
2799
|
-
},
|
|
2800
|
-
layout: {
|
|
2801
|
-
type: "centered",
|
|
2802
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2803
|
-
},
|
|
2804
|
-
customizable: {
|
|
2805
|
-
texts: ["title", "subtitle", "save_label"],
|
|
2806
|
-
optional: ["user_name", "user_email"],
|
|
2807
|
-
slots: ["avatar", "bioField", "additionalFields", "additionalSections"]
|
|
2808
|
-
},
|
|
2809
|
-
requiredComponents: ["Button", "Input", "Form", "Card", "Label", "Avatar"],
|
|
2810
|
-
Component: ProfileTemplateComponent,
|
|
2811
|
-
version: "1.0.0",
|
|
2812
|
-
created: "2026-02-01",
|
|
2813
|
-
updated: "2026-02-01",
|
|
2814
|
-
tags: ["core", "profile", "account", "user"]
|
|
2815
|
-
};
|
|
2816
|
-
|
|
2817
|
-
// src/templates/feedback/loading.tsx
|
|
2818
|
-
import { jsx as jsx37, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2819
|
-
function LoadingTemplateComponent({
|
|
2820
|
-
children,
|
|
2821
|
-
className = "",
|
|
2822
|
-
slots = {},
|
|
2823
|
-
texts = {},
|
|
2824
|
-
options = {}
|
|
2825
|
-
}) {
|
|
2826
|
-
const message = texts.message || "Loading...";
|
|
2827
|
-
const showMessage = options.show_message ?? true;
|
|
2828
|
-
return /* @__PURE__ */ jsxs18(
|
|
2829
|
-
"div",
|
|
2830
|
-
{
|
|
2831
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2832
|
-
children: [
|
|
2833
|
-
/* @__PURE__ */ jsxs18("div", { className: "flex flex-col items-center gap-[var(--tekton-spacing-4)]", children: [
|
|
2834
|
-
slots.spinner || /* @__PURE__ */ jsx37("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-[var(--tekton-border-primary)]" }),
|
|
2835
|
-
showMessage && /* @__PURE__ */ jsx37("p", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: message })
|
|
2836
|
-
] }),
|
|
2837
|
-
children
|
|
2838
|
-
]
|
|
2839
|
-
}
|
|
2840
|
-
);
|
|
2841
|
-
}
|
|
2842
|
-
var LoadingTemplate = {
|
|
2843
|
-
id: "feedback.loading",
|
|
2844
|
-
name: "Loading",
|
|
2845
|
-
category: "feedback",
|
|
2846
|
-
description: "Loading state screen with spinner and optional message",
|
|
2847
|
-
skeleton: {
|
|
2848
|
-
shell: "centered",
|
|
2849
|
-
page: "feedback-page",
|
|
2850
|
-
sections: [
|
|
2851
|
-
{
|
|
2852
|
-
id: "loading-indicator",
|
|
2853
|
-
name: "Loading Indicator",
|
|
2854
|
-
slot: "main",
|
|
2855
|
-
required: true,
|
|
2856
|
-
Component: LoadingTemplateComponent
|
|
2857
|
-
}
|
|
2858
|
-
]
|
|
2859
|
-
},
|
|
2860
|
-
layout: {
|
|
2861
|
-
type: "centered",
|
|
2862
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2863
|
-
},
|
|
2864
|
-
customizable: {
|
|
2865
|
-
texts: ["message"],
|
|
2866
|
-
optional: ["show_message"],
|
|
2867
|
-
slots: ["spinner"]
|
|
2868
|
-
},
|
|
2869
|
-
requiredComponents: [],
|
|
2870
|
-
Component: LoadingTemplateComponent,
|
|
2871
|
-
version: "1.0.0",
|
|
2872
|
-
created: "2026-02-01",
|
|
2873
|
-
updated: "2026-02-01",
|
|
2874
|
-
tags: ["feedback", "loading", "spinner", "state"]
|
|
2875
|
-
};
|
|
2876
|
-
|
|
2877
|
-
// src/templates/feedback/error.tsx
|
|
2878
|
-
import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2879
|
-
function ErrorTemplateComponent({
|
|
2880
|
-
children,
|
|
2881
|
-
className = "",
|
|
2882
|
-
slots = {},
|
|
2883
|
-
texts = {},
|
|
2884
|
-
options = {}
|
|
2885
|
-
}) {
|
|
2886
|
-
const title = texts.title || "Something Went Wrong";
|
|
2887
|
-
const message = texts.message || "An error occurred. Please try again.";
|
|
2888
|
-
const retryLabel = texts.retry_label || "Try Again";
|
|
2889
|
-
const showRetry = options.show_retry ?? true;
|
|
2890
|
-
return /* @__PURE__ */ jsxs19(
|
|
2891
|
-
"div",
|
|
2892
|
-
{
|
|
2893
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2894
|
-
children: [
|
|
2895
|
-
/* @__PURE__ */ jsxs19("div", { className: "max-w-md text-center space-y-[var(--tekton-spacing-6)]", children: [
|
|
2896
|
-
slots.icon || /* @__PURE__ */ jsx38("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx38("div", { className: "rounded-full bg-[var(--tekton-bg-destructive)] bg-opacity-10 p-[var(--tekton-spacing-4)]", children: /* @__PURE__ */ jsx38(
|
|
2897
|
-
"svg",
|
|
2898
|
-
{
|
|
2899
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
2900
|
-
className: "h-12 w-12 text-[var(--tekton-text-destructive)]",
|
|
2901
|
-
fill: "none",
|
|
2902
|
-
viewBox: "0 0 24 24",
|
|
2903
|
-
stroke: "currentColor",
|
|
2904
|
-
children: /* @__PURE__ */ jsx38(
|
|
2905
|
-
"path",
|
|
2906
|
-
{
|
|
2907
|
-
strokeLinecap: "round",
|
|
2908
|
-
strokeLinejoin: "round",
|
|
2909
|
-
strokeWidth: 2,
|
|
2910
|
-
d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
|
2911
|
-
}
|
|
2912
|
-
)
|
|
2913
|
-
}
|
|
2914
|
-
) }) }),
|
|
2915
|
-
/* @__PURE__ */ jsxs19("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
2916
|
-
/* @__PURE__ */ jsx38("h2", { className: "text-2xl font-bold", children: title }),
|
|
2917
|
-
/* @__PURE__ */ jsx38("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: message })
|
|
2918
|
-
] }),
|
|
2919
|
-
slots.errorDetails && /* @__PURE__ */ jsx38("div", { className: "text-left bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-4)] rounded-[var(--tekton-radius-md)] text-sm", children: slots.errorDetails }),
|
|
2920
|
-
/* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-[var(--tekton-spacing-3)]", children: [
|
|
2921
|
-
showRetry && /* @__PURE__ */ jsx38(Button, { className: "w-full", children: retryLabel }),
|
|
2922
|
-
slots.additionalActions && slots.additionalActions
|
|
2923
|
-
] })
|
|
2924
|
-
] }),
|
|
2925
|
-
children
|
|
2926
|
-
]
|
|
2927
|
-
}
|
|
2928
|
-
);
|
|
2929
|
-
}
|
|
2930
|
-
var ErrorTemplate = {
|
|
2931
|
-
id: "feedback.error",
|
|
2932
|
-
name: "Error",
|
|
2933
|
-
category: "feedback",
|
|
2934
|
-
description: "Error state screen with message and retry option",
|
|
2935
|
-
skeleton: {
|
|
2936
|
-
shell: "centered",
|
|
2937
|
-
page: "feedback-page",
|
|
2938
|
-
sections: [
|
|
2939
|
-
{
|
|
2940
|
-
id: "error-message",
|
|
2941
|
-
name: "Error Message",
|
|
2942
|
-
slot: "main",
|
|
2943
|
-
required: true,
|
|
2944
|
-
Component: ErrorTemplateComponent
|
|
2945
|
-
}
|
|
2946
|
-
]
|
|
2947
|
-
},
|
|
2948
|
-
layout: {
|
|
2949
|
-
type: "centered",
|
|
2950
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
2951
|
-
},
|
|
2952
|
-
customizable: {
|
|
2953
|
-
texts: ["title", "message", "retry_label"],
|
|
2954
|
-
optional: ["show_retry"],
|
|
2955
|
-
slots: ["icon", "errorDetails", "additionalActions"]
|
|
2956
|
-
},
|
|
2957
|
-
requiredComponents: ["Button"],
|
|
2958
|
-
Component: ErrorTemplateComponent,
|
|
2959
|
-
version: "1.0.0",
|
|
2960
|
-
created: "2026-02-01",
|
|
2961
|
-
updated: "2026-02-01",
|
|
2962
|
-
tags: ["feedback", "error", "failure", "state"]
|
|
2963
|
-
};
|
|
2964
|
-
|
|
2965
|
-
// src/templates/feedback/empty.tsx
|
|
2966
|
-
import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2967
|
-
function EmptyTemplateComponent({
|
|
2968
|
-
children,
|
|
2969
|
-
className = "",
|
|
2970
|
-
slots = {},
|
|
2971
|
-
texts = {},
|
|
2972
|
-
options = {}
|
|
2973
|
-
}) {
|
|
2974
|
-
const title = texts.title || "No Items Found";
|
|
2975
|
-
const message = texts.message || "Get started by creating your first item";
|
|
2976
|
-
const ctaLabel = texts.cta_label || "Create New";
|
|
2977
|
-
const showCta = options.show_cta ?? true;
|
|
2978
|
-
return /* @__PURE__ */ jsxs20(
|
|
2979
|
-
"div",
|
|
2980
|
-
{
|
|
2981
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
2982
|
-
children: [
|
|
2983
|
-
/* @__PURE__ */ jsxs20("div", { className: "max-w-md text-center space-y-[var(--tekton-spacing-6)]", children: [
|
|
2984
|
-
slots.illustration || /* @__PURE__ */ jsx39("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx39("div", { className: "rounded-full bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-8)]", children: /* @__PURE__ */ jsx39(
|
|
2985
|
-
"svg",
|
|
2986
|
-
{
|
|
2987
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
2988
|
-
className: "h-16 w-16 text-[var(--tekton-text-muted-foreground)]",
|
|
2989
|
-
fill: "none",
|
|
2990
|
-
viewBox: "0 0 24 24",
|
|
2991
|
-
stroke: "currentColor",
|
|
2992
|
-
children: /* @__PURE__ */ jsx39(
|
|
2993
|
-
"path",
|
|
2994
|
-
{
|
|
2995
|
-
strokeLinecap: "round",
|
|
2996
|
-
strokeLinejoin: "round",
|
|
2997
|
-
strokeWidth: 2,
|
|
2998
|
-
d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"
|
|
2999
|
-
}
|
|
3000
|
-
)
|
|
3001
|
-
}
|
|
3002
|
-
) }) }),
|
|
3003
|
-
/* @__PURE__ */ jsxs20("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
3004
|
-
/* @__PURE__ */ jsx39("h2", { className: "text-2xl font-bold", children: title }),
|
|
3005
|
-
/* @__PURE__ */ jsx39("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: message })
|
|
3006
|
-
] }),
|
|
3007
|
-
showCta && /* @__PURE__ */ jsx39("div", { children: /* @__PURE__ */ jsx39(Button, { size: "lg", children: ctaLabel }) }),
|
|
3008
|
-
slots.helpText && /* @__PURE__ */ jsx39("div", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: slots.helpText })
|
|
3009
|
-
] }),
|
|
3010
|
-
children
|
|
3011
|
-
]
|
|
3012
|
-
}
|
|
3013
|
-
);
|
|
3014
|
-
}
|
|
3015
|
-
var EmptyTemplate = {
|
|
3016
|
-
id: "feedback.empty",
|
|
3017
|
-
name: "Empty",
|
|
3018
|
-
category: "feedback",
|
|
3019
|
-
description: "Empty state screen with call-to-action",
|
|
3020
|
-
skeleton: {
|
|
3021
|
-
shell: "centered",
|
|
3022
|
-
page: "feedback-page",
|
|
3023
|
-
sections: [
|
|
3024
|
-
{
|
|
3025
|
-
id: "empty-state",
|
|
3026
|
-
name: "Empty State",
|
|
3027
|
-
slot: "main",
|
|
3028
|
-
required: true,
|
|
3029
|
-
Component: EmptyTemplateComponent
|
|
3030
|
-
}
|
|
3031
|
-
]
|
|
3032
|
-
},
|
|
3033
|
-
layout: {
|
|
3034
|
-
type: "centered",
|
|
3035
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
3036
|
-
},
|
|
3037
|
-
customizable: {
|
|
3038
|
-
texts: ["title", "message", "cta_label"],
|
|
3039
|
-
optional: ["show_cta"],
|
|
3040
|
-
slots: ["illustration", "helpText"]
|
|
3041
|
-
},
|
|
3042
|
-
requiredComponents: ["Button"],
|
|
3043
|
-
Component: EmptyTemplateComponent,
|
|
3044
|
-
version: "1.0.0",
|
|
3045
|
-
created: "2026-02-01",
|
|
3046
|
-
updated: "2026-02-01",
|
|
3047
|
-
tags: ["feedback", "empty", "state", "no-data"]
|
|
3048
|
-
};
|
|
3049
|
-
|
|
3050
|
-
// src/templates/feedback/confirmation.tsx
|
|
3051
|
-
import { jsx as jsx40, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3052
|
-
function ConfirmationTemplateComponent({
|
|
3053
|
-
children,
|
|
3054
|
-
className = "",
|
|
3055
|
-
slots = {},
|
|
3056
|
-
texts = {},
|
|
3057
|
-
options = {}
|
|
3058
|
-
}) {
|
|
3059
|
-
const title = texts.title || "Are You Sure?";
|
|
3060
|
-
const message = texts.message || "This action cannot be undone.";
|
|
3061
|
-
const confirmLabel = texts.confirm_label || "Confirm";
|
|
3062
|
-
const cancelLabel = texts.cancel_label || "Cancel";
|
|
3063
|
-
const isDestructive = options.is_destructive ?? false;
|
|
3064
|
-
return /* @__PURE__ */ jsxs21(
|
|
3065
|
-
"div",
|
|
3066
|
-
{
|
|
3067
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
3068
|
-
children: [
|
|
3069
|
-
/* @__PURE__ */ jsxs21(Card, { className: "w-full max-w-md", children: [
|
|
3070
|
-
/* @__PURE__ */ jsxs21(CardHeader, { children: [
|
|
3071
|
-
isDestructive && slots.warningIcon && /* @__PURE__ */ jsx40("div", { className: "mb-[var(--tekton-spacing-2)]", children: slots.warningIcon }),
|
|
3072
|
-
/* @__PURE__ */ jsx40(CardTitle, { children: title }),
|
|
3073
|
-
/* @__PURE__ */ jsx40(CardDescription, { children: message })
|
|
3074
|
-
] }),
|
|
3075
|
-
/* @__PURE__ */ jsx40(CardContent, { children: slots.details && /* @__PURE__ */ jsx40("div", { className: "bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-4)] rounded-[var(--tekton-radius-md)] text-sm", children: slots.details }) }),
|
|
3076
|
-
/* @__PURE__ */ jsxs21(CardFooter, { className: "flex justify-end gap-[var(--tekton-spacing-3)]", children: [
|
|
3077
|
-
/* @__PURE__ */ jsx40(Button, { variant: "outline", children: cancelLabel }),
|
|
3078
|
-
/* @__PURE__ */ jsx40(Button, { variant: isDestructive ? "destructive" : "default", children: confirmLabel })
|
|
3079
|
-
] })
|
|
3080
|
-
] }),
|
|
3081
|
-
children
|
|
3082
|
-
]
|
|
3083
|
-
}
|
|
3084
|
-
);
|
|
3085
|
-
}
|
|
3086
|
-
var ConfirmationTemplate = {
|
|
3087
|
-
id: "feedback.confirmation",
|
|
3088
|
-
name: "Confirmation",
|
|
3089
|
-
category: "feedback",
|
|
3090
|
-
description: "Confirmation dialog for important actions",
|
|
3091
|
-
skeleton: {
|
|
3092
|
-
shell: "centered-card",
|
|
3093
|
-
page: "feedback-page",
|
|
3094
|
-
sections: [
|
|
3095
|
-
{
|
|
3096
|
-
id: "confirmation-dialog",
|
|
3097
|
-
name: "Confirmation Dialog",
|
|
3098
|
-
slot: "main",
|
|
3099
|
-
required: true,
|
|
3100
|
-
Component: ConfirmationTemplateComponent
|
|
3101
|
-
}
|
|
3102
|
-
]
|
|
3103
|
-
},
|
|
3104
|
-
layout: {
|
|
3105
|
-
type: "centered",
|
|
3106
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
3107
|
-
},
|
|
3108
|
-
customizable: {
|
|
3109
|
-
texts: ["title", "message", "confirm_label", "cancel_label"],
|
|
3110
|
-
optional: ["is_destructive"],
|
|
3111
|
-
slots: ["warningIcon", "details"]
|
|
3112
|
-
},
|
|
3113
|
-
requiredComponents: ["Button", "Card"],
|
|
3114
|
-
Component: ConfirmationTemplateComponent,
|
|
3115
|
-
version: "1.0.0",
|
|
3116
|
-
created: "2026-02-01",
|
|
3117
|
-
updated: "2026-02-01",
|
|
3118
|
-
tags: ["feedback", "confirmation", "dialog", "warning"]
|
|
3119
|
-
};
|
|
3120
|
-
|
|
3121
|
-
// src/templates/feedback/success.tsx
|
|
3122
|
-
import { jsx as jsx41, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3123
|
-
function SuccessTemplateComponent({
|
|
3124
|
-
children,
|
|
3125
|
-
className = "",
|
|
3126
|
-
slots = {},
|
|
3127
|
-
texts = {},
|
|
3128
|
-
options = {}
|
|
3129
|
-
}) {
|
|
3130
|
-
const title = texts.title || "Success!";
|
|
3131
|
-
const message = texts.message || "Your action was completed successfully";
|
|
3132
|
-
const ctaLabel = texts.cta_label || "Continue";
|
|
3133
|
-
const showCta = options.show_cta ?? true;
|
|
3134
|
-
return /* @__PURE__ */ jsxs22(
|
|
3135
|
-
"div",
|
|
3136
|
-
{
|
|
3137
|
-
className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
|
|
3138
|
-
children: [
|
|
3139
|
-
/* @__PURE__ */ jsxs22("div", { className: "max-w-md text-center space-y-[var(--tekton-spacing-6)]", children: [
|
|
3140
|
-
slots.icon || /* @__PURE__ */ jsx41("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx41("div", { className: "rounded-full bg-[var(--tekton-bg-success)] bg-opacity-10 p-[var(--tekton-spacing-4)]", children: /* @__PURE__ */ jsx41(
|
|
3141
|
-
"svg",
|
|
3142
|
-
{
|
|
3143
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
3144
|
-
className: "h-12 w-12 text-[var(--tekton-text-success)]",
|
|
3145
|
-
fill: "none",
|
|
3146
|
-
viewBox: "0 0 24 24",
|
|
3147
|
-
stroke: "currentColor",
|
|
3148
|
-
children: /* @__PURE__ */ jsx41(
|
|
3149
|
-
"path",
|
|
3150
|
-
{
|
|
3151
|
-
strokeLinecap: "round",
|
|
3152
|
-
strokeLinejoin: "round",
|
|
3153
|
-
strokeWidth: 2,
|
|
3154
|
-
d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
|
|
3155
|
-
}
|
|
3156
|
-
)
|
|
3157
|
-
}
|
|
3158
|
-
) }) }),
|
|
3159
|
-
/* @__PURE__ */ jsxs22("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
|
|
3160
|
-
/* @__PURE__ */ jsx41("h2", { className: "text-2xl font-bold", children: title }),
|
|
3161
|
-
/* @__PURE__ */ jsx41("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: message })
|
|
3162
|
-
] }),
|
|
3163
|
-
slots.details && /* @__PURE__ */ jsx41("div", { className: "text-left bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-4)] rounded-[var(--tekton-radius-md)] text-sm", children: slots.details }),
|
|
3164
|
-
showCta && /* @__PURE__ */ jsx41("div", { children: /* @__PURE__ */ jsx41(Button, { className: "w-full", size: "lg", children: ctaLabel }) }),
|
|
3165
|
-
slots.additionalActions && /* @__PURE__ */ jsx41("div", { className: "flex flex-col gap-[var(--tekton-spacing-3)]", children: slots.additionalActions })
|
|
3166
|
-
] }),
|
|
3167
|
-
children
|
|
3168
|
-
]
|
|
3169
|
-
}
|
|
3170
|
-
);
|
|
3171
|
-
}
|
|
3172
|
-
var SuccessTemplate = {
|
|
3173
|
-
id: "feedback.success",
|
|
3174
|
-
name: "Success",
|
|
3175
|
-
category: "feedback",
|
|
3176
|
-
description: "Success state screen with confirmation message",
|
|
3177
|
-
skeleton: {
|
|
3178
|
-
shell: "centered",
|
|
3179
|
-
page: "feedback-page",
|
|
3180
|
-
sections: [
|
|
3181
|
-
{
|
|
3182
|
-
id: "success-message",
|
|
3183
|
-
name: "Success Message",
|
|
3184
|
-
slot: "main",
|
|
3185
|
-
required: true,
|
|
3186
|
-
Component: SuccessTemplateComponent
|
|
3187
|
-
}
|
|
3188
|
-
]
|
|
3189
|
-
},
|
|
3190
|
-
layout: {
|
|
3191
|
-
type: "centered",
|
|
3192
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
3193
|
-
},
|
|
3194
|
-
customizable: {
|
|
3195
|
-
texts: ["title", "message", "cta_label"],
|
|
3196
|
-
optional: ["show_cta"],
|
|
3197
|
-
slots: ["icon", "details", "additionalActions"]
|
|
3198
|
-
},
|
|
3199
|
-
requiredComponents: ["Button"],
|
|
3200
|
-
Component: SuccessTemplateComponent,
|
|
3201
|
-
version: "1.0.0",
|
|
3202
|
-
created: "2026-02-01",
|
|
3203
|
-
updated: "2026-02-01",
|
|
3204
|
-
tags: ["feedback", "success", "confirmation", "state"]
|
|
3205
|
-
};
|
|
3206
|
-
|
|
3207
|
-
// src/templates/dashboard/overview.tsx
|
|
3208
|
-
import { jsx as jsx42, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3209
|
-
function DashboardTemplateComponent({
|
|
3210
|
-
children,
|
|
3211
|
-
className = "",
|
|
3212
|
-
slots = {},
|
|
3213
|
-
texts = {}
|
|
3214
|
-
}) {
|
|
3215
|
-
const title = texts.title || "Dashboard";
|
|
3216
|
-
const subtitle = texts.subtitle || "Welcome to your dashboard";
|
|
3217
|
-
return /* @__PURE__ */ jsxs23("div", { className: `min-h-screen flex ${className}`, children: [
|
|
3218
|
-
slots.sidebar && /* @__PURE__ */ jsx42("aside", { className: "w-64 border-r border-[var(--tekton-border-default)] bg-[var(--tekton-bg-card)] hidden lg:block", children: slots.sidebar }),
|
|
3219
|
-
/* @__PURE__ */ jsxs23("main", { className: "flex-1 overflow-auto bg-[var(--tekton-bg-background)]", children: [
|
|
3220
|
-
/* @__PURE__ */ jsx42("header", { className: "sticky top-0 z-10 border-b border-[var(--tekton-border-default)] bg-[var(--tekton-bg-background)]/80 backdrop-blur-md p-[var(--tekton-spacing-4)]", children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
|
|
3221
|
-
/* @__PURE__ */ jsxs23("div", { children: [
|
|
3222
|
-
/* @__PURE__ */ jsx42("h1", { className: "text-2xl font-bold text-[var(--tekton-text-foreground)]", children: title }),
|
|
3223
|
-
/* @__PURE__ */ jsx42("p", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: subtitle })
|
|
3224
|
-
] }),
|
|
3225
|
-
slots.headerActions && /* @__PURE__ */ jsx42("div", { children: slots.headerActions })
|
|
3226
|
-
] }) }),
|
|
3227
|
-
/* @__PURE__ */ jsxs23("div", { className: "py-[var(--tekton-layout-section-py,var(--tekton-spacing-6))] px-[var(--tekton-layout-container-px,var(--tekton-spacing-6))] space-y-[var(--tekton-layout-stack-gap,var(--tekton-spacing-6))] max-w-[var(--tekton-layout-container-xl)] mx-auto", children: [
|
|
3228
|
-
slots.metrics && /* @__PURE__ */ jsx42("div", { className: "grid gap-[var(--tekton-spacing-4)] grid-cols-2 lg:grid-cols-4", children: slots.metrics }),
|
|
3229
|
-
/* @__PURE__ */ jsx42(Separator, {}),
|
|
3230
|
-
/* @__PURE__ */ jsxs23("div", { className: "grid gap-x-[var(--tekton-layout-grid-gap-x,var(--tekton-spacing-6))] gap-y-[var(--tekton-layout-grid-gap-y,var(--tekton-spacing-6))] lg:grid-cols-12", children: [
|
|
3231
|
-
slots.primaryContent && /* @__PURE__ */ jsx42("div", { className: "lg:col-span-8 space-y-[var(--tekton-layout-stack-gap,var(--tekton-spacing-6))]", children: slots.primaryContent }),
|
|
3232
|
-
slots.secondaryContent && /* @__PURE__ */ jsx42("div", { className: "lg:col-span-4 space-y-[var(--tekton-layout-stack-gap,var(--tekton-spacing-6))]", children: /* @__PURE__ */ jsxs23(Card, { className: "h-full", children: [
|
|
3233
|
-
/* @__PURE__ */ jsxs23(CardHeader, { children: [
|
|
3234
|
-
/* @__PURE__ */ jsx42(CardTitle, { children: texts.secondary_title || "Activity" }),
|
|
3235
|
-
/* @__PURE__ */ jsx42(CardDescription, { children: texts.secondary_description || "Recent updates" })
|
|
3236
|
-
] }),
|
|
3237
|
-
/* @__PURE__ */ jsx42(CardContent, { className: "p-0", children: slots.secondaryContent })
|
|
3238
|
-
] }) })
|
|
3239
|
-
] }),
|
|
3240
|
-
slots.additionalSections && /* @__PURE__ */ jsx42("div", { children: slots.additionalSections })
|
|
3241
|
-
] })
|
|
3242
|
-
] }),
|
|
3243
|
-
children
|
|
3244
|
-
] });
|
|
3245
|
-
}
|
|
3246
|
-
var DashboardTemplate = {
|
|
3247
|
-
id: "dashboard.overview",
|
|
3248
|
-
name: "Dashboard Overview",
|
|
3249
|
-
category: "dashboard",
|
|
3250
|
-
description: "Standard dashboard layout with sidebar, metrics, and content areas (12-column grid)",
|
|
3251
|
-
skeleton: {
|
|
3252
|
-
shell: "sidebar-layout",
|
|
3253
|
-
page: "dashboard-page",
|
|
3254
|
-
sections: [
|
|
3255
|
-
{
|
|
3256
|
-
id: "dashboard-sidebar",
|
|
3257
|
-
name: "Sidebar Navigation",
|
|
3258
|
-
slot: "sidebar",
|
|
3259
|
-
required: false,
|
|
3260
|
-
Component: () => null
|
|
3261
|
-
},
|
|
3262
|
-
{
|
|
3263
|
-
id: "dashboard-main",
|
|
3264
|
-
name: "Main Content",
|
|
3265
|
-
slot: "primaryContent",
|
|
3266
|
-
required: true,
|
|
3267
|
-
Component: () => null
|
|
3268
|
-
},
|
|
3269
|
-
{
|
|
3270
|
-
id: "dashboard-side",
|
|
3271
|
-
name: "Side Panel",
|
|
3272
|
-
slot: "secondaryContent",
|
|
3273
|
-
required: false,
|
|
3274
|
-
Component: () => null
|
|
3275
|
-
}
|
|
3276
|
-
]
|
|
3277
|
-
},
|
|
3278
|
-
layout: {
|
|
3279
|
-
type: "sidebar",
|
|
3280
|
-
responsive: DEFAULT_RESPONSIVE_LAYOUT
|
|
3281
|
-
},
|
|
3282
|
-
customizable: {
|
|
3283
|
-
texts: ["title", "subtitle", "texts.secondary_title", "texts.secondary_description"],
|
|
3284
|
-
optional: ["metrics", "additionalSections"],
|
|
3285
|
-
slots: [
|
|
3286
|
-
"sidebar",
|
|
3287
|
-
"headerActions",
|
|
3288
|
-
"metrics",
|
|
3289
|
-
"primaryContent",
|
|
3290
|
-
"secondaryContent",
|
|
3291
|
-
"additionalSections"
|
|
3292
|
-
]
|
|
3293
|
-
},
|
|
3294
|
-
requiredComponents: ["Card", "Separator"],
|
|
3295
|
-
Component: DashboardTemplateComponent,
|
|
3296
|
-
version: "1.1.0",
|
|
3297
|
-
created: "2026-01-31",
|
|
3298
|
-
updated: "2026-02-01",
|
|
3299
|
-
tags: ["dashboard", "overview", "analytics"]
|
|
3300
|
-
};
|
|
3301
|
-
|
|
3302
|
-
// src/templates/index.ts
|
|
3303
|
-
templateRegistry.registerMany([
|
|
3304
|
-
// Auth
|
|
3305
|
-
LoginTemplate,
|
|
3306
|
-
SignupTemplate,
|
|
3307
|
-
ForgotPasswordTemplate,
|
|
3308
|
-
VerificationTemplate,
|
|
3309
|
-
// Core
|
|
3310
|
-
LandingTemplate,
|
|
3311
|
-
PreferencesTemplate,
|
|
3312
|
-
ProfileTemplate,
|
|
3313
|
-
// Feedback
|
|
3314
|
-
LoadingTemplate,
|
|
3315
|
-
ErrorTemplate,
|
|
3316
|
-
EmptyTemplate,
|
|
3317
|
-
ConfirmationTemplate,
|
|
3318
|
-
SuccessTemplate,
|
|
3319
|
-
// Dashboard
|
|
3320
|
-
DashboardTemplate
|
|
3321
|
-
]);
|
|
3322
1931
|
export {
|
|
3323
1932
|
AlertDialog,
|
|
3324
1933
|
AlertDialogAction,
|
|
@@ -3360,12 +1969,6 @@ export {
|
|
|
3360
1969
|
CommandList,
|
|
3361
1970
|
CommandSeparator,
|
|
3362
1971
|
CommandShortcut,
|
|
3363
|
-
ConfirmationTemplate,
|
|
3364
|
-
ConfirmationTemplateComponent,
|
|
3365
|
-
DEFAULT_BREAKPOINTS,
|
|
3366
|
-
DEFAULT_RESPONSIVE_LAYOUT,
|
|
3367
|
-
DashboardTemplate,
|
|
3368
|
-
DashboardTemplateComponent,
|
|
3369
1972
|
Dialog,
|
|
3370
1973
|
DialogClose,
|
|
3371
1974
|
DialogContent,
|
|
@@ -3391,20 +1994,8 @@ export {
|
|
|
3391
1994
|
DropdownMenuSubContent,
|
|
3392
1995
|
DropdownMenuSubTrigger,
|
|
3393
1996
|
DropdownMenuTrigger,
|
|
3394
|
-
EmptyTemplate,
|
|
3395
|
-
EmptyTemplateComponent,
|
|
3396
|
-
ErrorTemplate,
|
|
3397
|
-
ErrorTemplateComponent,
|
|
3398
|
-
ForgotPasswordTemplate,
|
|
3399
|
-
ForgotPasswordTemplateComponent,
|
|
3400
1997
|
Input,
|
|
3401
1998
|
Label,
|
|
3402
|
-
LandingTemplate,
|
|
3403
|
-
LandingTemplateComponent,
|
|
3404
|
-
LoadingTemplate,
|
|
3405
|
-
LoadingTemplateComponent,
|
|
3406
|
-
LoginTemplate,
|
|
3407
|
-
LoginTemplateComponent,
|
|
3408
1999
|
NavigationMenu,
|
|
3409
2000
|
NavigationMenuContent,
|
|
3410
2001
|
NavigationMenuIndicator,
|
|
@@ -3416,10 +2007,6 @@ export {
|
|
|
3416
2007
|
Popover,
|
|
3417
2008
|
PopoverContent,
|
|
3418
2009
|
PopoverTrigger,
|
|
3419
|
-
PreferencesTemplate,
|
|
3420
|
-
PreferencesTemplateComponent,
|
|
3421
|
-
ProfileTemplate,
|
|
3422
|
-
ProfileTemplateComponent,
|
|
3423
2010
|
Progress,
|
|
3424
2011
|
RadioGroup,
|
|
3425
2012
|
RadioGroupItem,
|
|
@@ -3453,11 +2040,7 @@ export {
|
|
|
3453
2040
|
SidebarItem,
|
|
3454
2041
|
SidebarSection,
|
|
3455
2042
|
SidebarSectionTitle,
|
|
3456
|
-
SignupTemplate,
|
|
3457
|
-
SignupTemplateComponent,
|
|
3458
2043
|
Skeleton,
|
|
3459
|
-
SuccessTemplate,
|
|
3460
|
-
SuccessTemplateComponent,
|
|
3461
2044
|
Switch,
|
|
3462
2045
|
Table,
|
|
3463
2046
|
TableBody,
|
|
@@ -3471,7 +2054,6 @@ export {
|
|
|
3471
2054
|
TabsContent,
|
|
3472
2055
|
TabsList,
|
|
3473
2056
|
TabsTrigger,
|
|
3474
|
-
TemplateRegistry,
|
|
3475
2057
|
Textarea,
|
|
3476
2058
|
Toast,
|
|
3477
2059
|
ToastAction,
|
|
@@ -3484,8 +2066,6 @@ export {
|
|
|
3484
2066
|
TooltipContent,
|
|
3485
2067
|
TooltipProvider,
|
|
3486
2068
|
TooltipTrigger,
|
|
3487
|
-
VerificationTemplate,
|
|
3488
|
-
VerificationTemplateComponent,
|
|
3489
2069
|
badgeVariants,
|
|
3490
2070
|
buttonVariants,
|
|
3491
2071
|
cn,
|
|
@@ -3503,7 +2083,6 @@ export {
|
|
|
3503
2083
|
setThemeId,
|
|
3504
2084
|
sidebarVariants,
|
|
3505
2085
|
slideVariants,
|
|
3506
|
-
templateRegistry,
|
|
3507
2086
|
themeToCSS,
|
|
3508
2087
|
tokenVars,
|
|
3509
2088
|
transitions,
|