@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.
Files changed (172) hide show
  1. package/README.md +22 -1090
  2. package/dist/chunk-7UBERMRE.mjs +180 -0
  3. package/dist/chunk-RWYATDH5.mjs +180 -0
  4. package/dist/index.d.mts +1 -140
  5. package/dist/index.mjs +425 -1846
  6. package/dist/src/components/alert-dialog.stories.js +1 -1
  7. package/dist/src/components/alert-dialog.stories.js.map +1 -1
  8. package/dist/src/components/avatar.js +2 -2
  9. package/dist/src/components/avatar.js.map +1 -1
  10. package/dist/src/components/avatar.stories.js +2 -2
  11. package/dist/src/components/avatar.stories.js.map +1 -1
  12. package/dist/src/components/badge.js +5 -5
  13. package/dist/src/components/badge.js.map +1 -1
  14. package/dist/src/components/breadcrumb.js +7 -7
  15. package/dist/src/components/breadcrumb.js.map +1 -1
  16. package/dist/src/components/button.js +10 -10
  17. package/dist/src/components/button.js.map +1 -1
  18. package/dist/src/components/calendar.js +11 -11
  19. package/dist/src/components/calendar.js.map +1 -1
  20. package/dist/src/components/calendar.stories.js +9 -9
  21. package/dist/src/components/calendar.stories.js.map +1 -1
  22. package/dist/src/components/card.js +5 -5
  23. package/dist/src/components/card.js.map +1 -1
  24. package/dist/src/components/card.stories.js +3 -3
  25. package/dist/src/components/card.stories.js.map +1 -1
  26. package/dist/src/components/checkbox.js +1 -1
  27. package/dist/src/components/checkbox.js.map +1 -1
  28. package/dist/src/components/checkbox.stories.js +2 -2
  29. package/dist/src/components/checkbox.stories.js.map +1 -1
  30. package/dist/src/components/command.d.ts +7 -7
  31. package/dist/src/components/command.js +8 -8
  32. package/dist/src/components/command.js.map +1 -1
  33. package/dist/src/components/command.stories.js +6 -6
  34. package/dist/src/components/command.stories.js.map +1 -1
  35. package/dist/src/components/dialog.stories.js +1 -1
  36. package/dist/src/components/dialog.stories.js.map +1 -1
  37. package/dist/src/components/dropdown-menu.js +8 -8
  38. package/dist/src/components/dropdown-menu.js.map +1 -1
  39. package/dist/src/components/form.js +4 -4
  40. package/dist/src/components/form.js.map +1 -1
  41. package/dist/src/components/input.js +1 -1
  42. package/dist/src/components/input.js.map +1 -1
  43. package/dist/src/components/input.stories.js +2 -2
  44. package/dist/src/components/input.stories.js.map +1 -1
  45. package/dist/src/components/label.stories.js +2 -2
  46. package/dist/src/components/label.stories.js.map +1 -1
  47. package/dist/src/components/navigation-menu.js +4 -4
  48. package/dist/src/components/navigation-menu.js.map +1 -1
  49. package/dist/src/components/navigation-menu.stories.js +2 -2
  50. package/dist/src/components/navigation-menu.stories.js.map +1 -1
  51. package/dist/src/components/popover.js +1 -1
  52. package/dist/src/components/popover.js.map +1 -1
  53. package/dist/src/components/popover.stories.js +2 -2
  54. package/dist/src/components/popover.stories.js.map +1 -1
  55. package/dist/src/components/progress.js +1 -1
  56. package/dist/src/components/progress.js.map +1 -1
  57. package/dist/src/components/radio-group.js +2 -2
  58. package/dist/src/components/radio-group.js.map +1 -1
  59. package/dist/src/components/radio-group.stories.js +2 -2
  60. package/dist/src/components/radio-group.stories.js.map +1 -1
  61. package/dist/src/components/scroll-area.js +1 -1
  62. package/dist/src/components/scroll-area.js.map +1 -1
  63. package/dist/src/components/scroll-area.stories.js +4 -4
  64. package/dist/src/components/scroll-area.stories.js.map +1 -1
  65. package/dist/src/components/select.js +5 -5
  66. package/dist/src/components/select.js.map +1 -1
  67. package/dist/src/components/separator.js +1 -1
  68. package/dist/src/components/separator.js.map +1 -1
  69. package/dist/src/components/separator.stories.js +2 -2
  70. package/dist/src/components/separator.stories.js.map +1 -1
  71. package/dist/src/components/sheet.d.ts +1 -1
  72. package/dist/src/components/sheet.js +11 -11
  73. package/dist/src/components/sheet.js.map +1 -1
  74. package/dist/src/components/sidebar.js +13 -13
  75. package/dist/src/components/sidebar.js.map +1 -1
  76. package/dist/src/components/sidebar.stories.js +2 -2
  77. package/dist/src/components/sidebar.stories.js.map +1 -1
  78. package/dist/src/components/skeleton.js +1 -1
  79. package/dist/src/components/skeleton.js.map +1 -1
  80. package/dist/src/components/skeleton.stories.js +1 -1
  81. package/dist/src/components/skeleton.stories.js.map +1 -1
  82. package/dist/src/components/switch.js +1 -1
  83. package/dist/src/components/switch.js.map +1 -1
  84. package/dist/src/components/switch.stories.js +3 -3
  85. package/dist/src/components/switch.stories.js.map +1 -1
  86. package/dist/src/components/table.js +5 -5
  87. package/dist/src/components/table.js.map +1 -1
  88. package/dist/src/components/tabs.js +3 -3
  89. package/dist/src/components/tabs.js.map +1 -1
  90. package/dist/src/components/tabs.stories.js +2 -2
  91. package/dist/src/components/tabs.stories.js.map +1 -1
  92. package/dist/src/components/textarea.js +1 -1
  93. package/dist/src/components/textarea.js.map +1 -1
  94. package/dist/src/components/textarea.stories.js +4 -4
  95. package/dist/src/components/textarea.stories.js.map +1 -1
  96. package/dist/src/components/toast.js +6 -6
  97. package/dist/src/components/toast.js.map +1 -1
  98. package/dist/src/components/tooltip.js +1 -1
  99. package/dist/src/components/tooltip.js.map +1 -1
  100. package/dist/src/index.d.ts +0 -1
  101. package/dist/src/index.d.ts.map +1 -1
  102. package/dist/src/index.js +0 -1
  103. package/dist/src/index.js.map +1 -1
  104. package/dist/src/lib/theme-loader.d.ts.map +1 -1
  105. package/dist/src/lib/theme-loader.js +41 -29
  106. package/dist/src/lib/theme-loader.js.map +1 -1
  107. package/dist/src/lib/tokens.d.ts.map +1 -1
  108. package/dist/src/lib/tokens.js +38 -38
  109. package/dist/src/lib/tokens.js.map +1 -1
  110. package/dist/src/templates/auth/forgot-password.d.ts +2 -2
  111. package/dist/src/templates/auth/forgot-password.d.ts.map +1 -1
  112. package/dist/src/templates/auth/forgot-password.js +3 -36
  113. package/dist/src/templates/auth/forgot-password.js.map +1 -1
  114. package/dist/src/templates/auth/login.d.ts +2 -2
  115. package/dist/src/templates/auth/login.d.ts.map +1 -1
  116. package/dist/src/templates/auth/login.js +3 -36
  117. package/dist/src/templates/auth/login.js.map +1 -1
  118. package/dist/src/templates/auth/signup.d.ts +2 -2
  119. package/dist/src/templates/auth/signup.d.ts.map +1 -1
  120. package/dist/src/templates/auth/signup.js +3 -36
  121. package/dist/src/templates/auth/signup.js.map +1 -1
  122. package/dist/src/templates/auth/verification.d.ts +2 -2
  123. package/dist/src/templates/auth/verification.d.ts.map +1 -1
  124. package/dist/src/templates/auth/verification.js +3 -36
  125. package/dist/src/templates/auth/verification.js.map +1 -1
  126. package/dist/src/templates/core/landing.d.ts +2 -2
  127. package/dist/src/templates/core/landing.d.ts.map +1 -1
  128. package/dist/src/templates/core/landing.js +3 -36
  129. package/dist/src/templates/core/landing.js.map +1 -1
  130. package/dist/src/templates/core/preferences.d.ts +2 -2
  131. package/dist/src/templates/core/preferences.d.ts.map +1 -1
  132. package/dist/src/templates/core/preferences.js +3 -42
  133. package/dist/src/templates/core/preferences.js.map +1 -1
  134. package/dist/src/templates/core/profile.d.ts +2 -2
  135. package/dist/src/templates/core/profile.d.ts.map +1 -1
  136. package/dist/src/templates/core/profile.js +3 -36
  137. package/dist/src/templates/core/profile.js.map +1 -1
  138. package/dist/src/templates/create-template.d.ts +4 -0
  139. package/dist/src/templates/create-template.d.ts.map +1 -0
  140. package/dist/src/templates/create-template.js +41 -0
  141. package/dist/src/templates/create-template.js.map +1 -0
  142. package/dist/src/templates/dashboard/overview.d.ts +2 -2
  143. package/dist/src/templates/dashboard/overview.d.ts.map +1 -1
  144. package/dist/src/templates/dashboard/overview.js +3 -57
  145. package/dist/src/templates/dashboard/overview.js.map +1 -1
  146. package/dist/src/templates/feedback/confirmation.d.ts +2 -2
  147. package/dist/src/templates/feedback/confirmation.d.ts.map +1 -1
  148. package/dist/src/templates/feedback/confirmation.js +3 -36
  149. package/dist/src/templates/feedback/confirmation.js.map +1 -1
  150. package/dist/src/templates/feedback/empty.d.ts +2 -2
  151. package/dist/src/templates/feedback/empty.d.ts.map +1 -1
  152. package/dist/src/templates/feedback/empty.js +3 -36
  153. package/dist/src/templates/feedback/empty.js.map +1 -1
  154. package/dist/src/templates/feedback/error.d.ts +2 -2
  155. package/dist/src/templates/feedback/error.d.ts.map +1 -1
  156. package/dist/src/templates/feedback/error.js +3 -36
  157. package/dist/src/templates/feedback/error.js.map +1 -1
  158. package/dist/src/templates/feedback/loading.d.ts +2 -2
  159. package/dist/src/templates/feedback/loading.d.ts.map +1 -1
  160. package/dist/src/templates/feedback/loading.js +3 -36
  161. package/dist/src/templates/feedback/loading.js.map +1 -1
  162. package/dist/src/templates/feedback/success.d.ts +2 -2
  163. package/dist/src/templates/feedback/success.d.ts.map +1 -1
  164. package/dist/src/templates/feedback/success.js +3 -36
  165. package/dist/src/templates/feedback/success.js.map +1 -1
  166. package/dist/src/templates/types.js +6 -6
  167. package/dist/src/templates/types.js.map +1 -1
  168. package/dist/templates/index.d.mts +142 -0
  169. package/dist/templates/index.mjs +905 -0
  170. package/dist/tsconfig.tsbuildinfo +1 -1
  171. package/package.json +7 -2
  172. package/styles/globals.css +113 -84
package/dist/index.mjs CHANGED
@@ -1,11 +1,18 @@
1
1
  'use client';
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
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(--tekton-bg-background)",
17
- foreground: "var(--tekton-bg-foreground)",
18
- card: "var(--tekton-bg-card)",
19
- cardForeground: "var(--tekton-bg-card-foreground)",
20
- popover: "var(--tekton-bg-popover)",
21
- popoverForeground: "var(--tekton-bg-popover-foreground)",
22
- primary: "var(--tekton-bg-primary)",
23
- primaryForeground: "var(--tekton-bg-primary-foreground)",
24
- secondary: "var(--tekton-bg-secondary)",
25
- secondaryForeground: "var(--tekton-bg-secondary-foreground)",
26
- muted: "var(--tekton-bg-muted)",
27
- mutedForeground: "var(--tekton-bg-muted-foreground)",
28
- accent: "var(--tekton-bg-accent)",
29
- accentForeground: "var(--tekton-bg-accent-foreground)",
30
- destructive: "var(--tekton-bg-destructive)",
31
- destructiveForeground: "var(--tekton-bg-destructive-foreground)"
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(--tekton-border-default)",
38
- input: "var(--tekton-border-input)",
39
- ring: "var(--tekton-border-ring)"
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(--tekton-radius-sm)",
46
- md: "var(--tekton-radius-md)",
47
- lg: "var(--tekton-radius-lg)",
48
- xl: "var(--tekton-radius-xl)",
49
- full: "var(--tekton-radius-full)",
50
- select: "var(--tekton-radius-select)"
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(--tekton-spacing-0)",
57
- 1: "var(--tekton-spacing-1)",
58
- 2: "var(--tekton-spacing-2)",
59
- 3: "var(--tekton-spacing-3)",
60
- 4: "var(--tekton-spacing-4)",
61
- 5: "var(--tekton-spacing-5)",
62
- 6: "var(--tekton-spacing-6)",
63
- 8: "var(--tekton-spacing-8)",
64
- 10: "var(--tekton-spacing-10)",
65
- 12: "var(--tekton-spacing-12)",
66
- 16: "var(--tekton-spacing-16)"
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(--tekton-") && value.endsWith(")");
77
+ return value.startsWith("var(--") && value.endsWith(")");
71
78
  }
72
79
  function extractTokenName(token) {
73
- const match = token.match(/var\(--tekton-(.*)\)/);
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
- --tekton-bg-background: ${resolveColor(tokens.semantic.background.canvas)};
125
- --tekton-bg-foreground: ${textPrimary};
131
+ --bg-background: ${resolveColor(tokens.semantic.background.canvas)};
132
+ --bg-foreground: ${textPrimary};
126
133
 
127
- --tekton-bg-card: ${resolveColor(tokens.semantic.background.surface.default)};
128
- --tekton-bg-card-foreground: ${textPrimary};
134
+ --bg-card: ${resolveColor(tokens.semantic.background.surface.default)};
135
+ --bg-card-foreground: ${textPrimary};
129
136
 
130
- --tekton-bg-popover: ${resolveColor(tokens.semantic.background.surface.default)};
131
- --tekton-bg-popover-foreground: ${textPrimary};
137
+ --bg-popover: ${resolveColor(tokens.semantic.background.surface.default)};
138
+ --bg-popover-foreground: ${textPrimary};
132
139
 
133
- --tekton-bg-primary: ${resolveColor(tokens.semantic.background.brand.default)};
134
- --tekton-bg-primary-foreground: ${oklchToCSS(white)};
140
+ --bg-primary: ${resolveColor(tokens.semantic.background.brand.default)};
141
+ --bg-primary-foreground: ${oklchToCSS(white)};
135
142
 
136
- --tekton-bg-secondary: ${resolveColor(tokens.semantic.background.surface.emphasis)};
137
- --tekton-bg-secondary-foreground: ${textPrimary};
143
+ --bg-secondary: ${resolveColor(tokens.semantic.background.surface.emphasis)};
144
+ --bg-secondary-foreground: ${textPrimary};
138
145
 
139
- --tekton-bg-muted: ${resolveColor(tokens.semantic.background.surface.subtle)};
140
- --tekton-bg-muted-foreground: ${textSecondary};
146
+ --bg-muted: ${resolveColor(tokens.semantic.background.surface.subtle)};
147
+ --bg-muted-foreground: ${textSecondary};
141
148
 
142
- --tekton-bg-accent: ${resolveColor(tokens.semantic.background.surface.emphasis)};
143
- --tekton-bg-accent-foreground: ${textPrimary};
149
+ --bg-accent: ${resolveColor(tokens.semantic.background.surface.emphasis)};
150
+ --bg-accent-foreground: ${textPrimary};
144
151
 
145
- --tekton-bg-destructive: ${oklchToCSS({ l: 0.5, c: 0.2, h: 30 })}; /* Default red */
146
- --tekton-bg-destructive-foreground: ${oklchToCSS(white)};
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
- --tekton-border-default: ${resolveColor(tokens.semantic.border.default.default)};
152
- --tekton-border-input: ${resolveColor(tokens.semantic.border.default.subtle)};
153
- --tekton-border-ring: ${resolveColor(tokens.semantic.background.brand.default)};
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
- --tekton-bg-canvas: ${resolveColor(tokens.semantic.background.canvas)};
159
- --tekton-bg-surface: ${resolveColor(tokens.semantic.background.surface.default)};
160
- --tekton-text-primary: ${textPrimary};
161
- --tekton-text-secondary: ${textSecondary};
162
- --tekton-text-tertiary: ${textTertiary};
163
- --tekton-action-primary: ${textPrimary};
164
- --tekton-action-primary-text: ${oklchToCSS(white)};
165
- --tekton-border-emphasis: ${resolveColor(tokens.semantic.border.default.emphasis)};
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]) => `--tekton-radius-${key}: ${val};`).join("\n ")}
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]) => `--tekton-spacing-${key}: ${val};`).join("\n ")}
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/button.tsx
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 buttonVariants = cva(
305
- "inline-flex items-center justify-center whitespace-nowrap rounded-[var(--tekton-radius-xl)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
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(--tekton-bg-primary)] text-[var(--tekton-bg-primary-foreground)] hover:bg-[var(--tekton-bg-primary)]/80",
445
- secondary: "border-transparent bg-[var(--tekton-bg-secondary)] text-[var(--tekton-bg-secondary-foreground)] hover:bg-[var(--tekton-bg-secondary)]/80",
446
- destructive: "border-transparent bg-[var(--tekton-bg-destructive)] text-[var(--tekton-bg-destructive-foreground)] hover:bg-[var(--tekton-bg-destructive)]/80",
447
- outline: "text-[var(--tekton-bg-foreground)]"
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__ */ jsx5("div", { className: cn(badgeVariants({ variant }), className), ...props });
338
+ return /* @__PURE__ */ jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
457
339
  }
458
340
 
459
341
  // src/components/avatar.tsx
460
- import * as React5 from "react";
342
+ import * as React from "react";
461
343
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
462
- import { jsx as jsx6 } from "react/jsx-runtime";
463
- var Avatar = React5.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx6(
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(--tekton-radius-full)]",
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 = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
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 = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
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(--tekton-radius-full)] bg-[var(--tekton-bg-muted)]",
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 React7 from "react";
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 jsx8 } from "react/jsx-runtime";
523
- var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
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(--tekton-radius-sm)] border border-[var(--tekton-border-input)] ring-offset-[var(--tekton-bg-background)] 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 data-[state=checked]:bg-[var(--tekton-bg-primary)] data-[state=checked]:text-[var(--tekton-bg-primary-foreground)]",
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__ */ jsx8(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsx8(Check, { className: "h-4 w-4" }) })
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 React8 from "react";
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 jsx9 } from "react/jsx-runtime";
542
- var RadioGroup = React8.forwardRef(({ className, ...props }, ref) => {
543
- return /* @__PURE__ */ jsx9(
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(--tekton-spacing-2)]", className),
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 = React8.forwardRef(({ className, ...props }, ref) => {
554
- return /* @__PURE__ */ jsx9(
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(--tekton-radius-full)] border border-[var(--tekton-border-input)] text-[var(--tekton-bg-primary)] ring-offset-[var(--tekton-bg-background)] focus: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",
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__ */ jsx9(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx9(Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
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 React9 from "react";
432
+ import * as React4 from "react";
571
433
  import * as SwitchPrimitives from "@radix-ui/react-switch";
572
- import { jsx as jsx10 } from "react/jsx-runtime";
573
- var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
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(--tekton-radius-full)] p-1 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--tekton-bg-background)] disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[var(--tekton-bg-primary)] data-[state=unchecked]:bg-[var(--tekton-bg-muted)]",
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__ */ jsx10(
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(--tekton-radius-full)] bg-[var(--tekton-bg-background)] shadow-sm ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
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 React10 from "react";
596
- import { jsx as jsx11 } from "react/jsx-runtime";
597
- var Textarea = React10.forwardRef(
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__ */ jsx11(
461
+ return /* @__PURE__ */ jsx6(
600
462
  "textarea",
601
463
  {
602
464
  className: cn(
603
- "flex min-h-[80px] 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)] 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",
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 jsx12 } from "react/jsx-runtime";
477
+ import { jsx as jsx7 } from "react/jsx-runtime";
616
478
  function Skeleton({ className, ...props }) {
617
- return /* @__PURE__ */ jsx12(
479
+ return /* @__PURE__ */ jsx7(
618
480
  "div",
619
481
  {
620
482
  className: cn(
621
- "animate-pulse rounded-[var(--tekton-radius-md)] bg-[var(--tekton-bg-muted)]",
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 React11 from "react";
492
+ import * as React6 from "react";
631
493
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
632
- import { jsx as jsx13, jsxs } from "react/jsx-runtime";
633
- var ScrollArea = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
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__ */ jsx13(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
641
- /* @__PURE__ */ jsx13(ScrollBar, {}),
642
- /* @__PURE__ */ jsx13(ScrollAreaPrimitive.Corner, {})
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 = React11.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx13(
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__ */ jsx13(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-[var(--tekton-radius-full)] bg-[var(--tekton-border-default)]" })
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 React12 from "react";
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 jsx14, jsxs as jsxs2 } from "react/jsx-runtime";
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 = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
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(--tekton-radius-select,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)] placeholder:text-[var(--tekton-bg-muted-foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
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__ */ jsx14(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx14(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
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 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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__ */ jsx14(ChevronUp, { className: "h-4 w-4" })
556
+ children: /* @__PURE__ */ jsx9(ChevronUp, { className: "h-4 w-4" })
695
557
  }
696
558
  ));
697
559
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
698
- var SelectScrollDownButton = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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__ */ jsx14(ChevronDown, { className: "h-4 w-4" })
566
+ children: /* @__PURE__ */ jsx9(ChevronDown, { className: "h-4 w-4" })
705
567
  }
706
568
  ));
707
569
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
708
- var SelectContent = React12.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx14(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
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(--tekton-radius-md)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-popover)] text-[var(--tekton-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",
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__ */ jsx14(SelectScrollUpButton, {}),
721
- /* @__PURE__ */ jsx14(
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__ */ jsx14(SelectScrollDownButton, {})
593
+ /* @__PURE__ */ jsx9(SelectScrollDownButton, {})
732
594
  ]
733
595
  }
734
596
  ) }));
735
597
  SelectContent.displayName = SelectPrimitive.Content.displayName;
736
- var SelectLabel = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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(--tekton-spacing-2)] pl-8 pr-[var(--tekton-spacing-2)] text-sm font-semibold",
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 = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
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(--tekton-radius-sm)] py-[var(--tekton-spacing-2)] pl-8 pr-[var(--tekton-spacing-2)] text-sm outline-none focus:bg-[var(--tekton-bg-accent)] focus:text-[var(--tekton-bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
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__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check2, { className: "h-4 w-4" }) }) }),
759
- /* @__PURE__ */ jsx14(SelectPrimitive.ItemText, { children })
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 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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(--tekton-bg-muted)]", className),
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 React13 from "react";
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 jsx15, jsxs as jsxs3 } from "react/jsx-runtime";
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 = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
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 = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs3(DialogPortal, { children: [
796
- /* @__PURE__ */ jsx15(DialogOverlay, {}),
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__ */ jsx15(X, { className: "h-4 w-4" }),
810
- /* @__PURE__ */ jsx15("span", { className: "sr-only", children: "Close" })
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__ */ jsx15("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
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__ */ jsx15(
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 = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
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 = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
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 React14 from "react";
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 jsx16, jsxs as jsxs4 } from "react/jsx-runtime";
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 = React14.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
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(--tekton-radius-sm)] px-[var(--tekton-spacing-2)] py-[var(--tekton-spacing-2)] text-sm outline-none focus:bg-[var(--tekton-bg-accent)] data-[state=open]:bg-[var(--tekton-bg-accent)]",
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__ */ jsx16(ChevronRight, { className: "ml-auto h-4 w-4" })
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 = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
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(--tekton-radius-md)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-popover)] p-1 text-[var(--tekton-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",
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 = React14.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx16(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx16(
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(--tekton-radius-md)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-popover)] p-1 text-[var(--tekton-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",
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 = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
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(--tekton-radius-sm)] px-[var(--tekton-spacing-2)] py-[var(--tekton-spacing-2)] text-sm outline-none transition-colors focus:bg-[var(--tekton-bg-accent)] focus:text-[var(--tekton-bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
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 = React14.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs4(
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(--tekton-radius-sm)] py-[var(--tekton-spacing-2)] pl-8 pr-[var(--tekton-spacing-2)] text-sm outline-none transition-colors focus:bg-[var(--tekton-bg-accent)] focus:text-[var(--tekton-bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
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__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Check3, { className: "h-4 w-4" }) }) }),
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 = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
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(--tekton-radius-sm)] py-[var(--tekton-spacing-2)] pl-8 pr-[var(--tekton-spacing-2)] text-sm outline-none transition-colors focus:bg-[var(--tekton-bg-accent)] focus:text-[var(--tekton-bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
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__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Circle2, { className: "h-2 w-2 fill-current" }) }) }),
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 = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
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(--tekton-spacing-2)] py-[var(--tekton-spacing-2)] text-sm font-semibold",
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 = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
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(--tekton-bg-muted)]", className),
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__ */ jsx16("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
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 React15 from "react";
974
- import { jsx as jsx17 } from "react/jsx-runtime";
975
- var Table = React15.forwardRef(
976
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx17("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx17("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
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 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
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 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
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 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
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(--tekton-bg-muted)]/50 font-medium [&>tr]:last:border-b-0",
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 = React15.forwardRef(
996
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
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(--tekton-border-default)] transition-colors hover:bg-[var(--tekton-bg-muted)]/50 data-[state=selected]:bg-[var(--tekton-bg-muted)]",
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 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
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(--tekton-spacing-4)] text-left align-middle font-medium text-[var(--tekton-bg-muted-foreground)] [&:has([role=checkbox])]:pr-0",
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 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
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(--tekton-spacing-4)] align-middle [&:has([role=checkbox])]:pr-0",
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 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
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(--tekton-spacing-4)] text-sm text-[var(--tekton-bg-muted-foreground)]",
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 React16 from "react";
909
+ import * as React11 from "react";
1048
910
  import * as TabsPrimitive from "@radix-ui/react-tabs";
1049
- import { jsx as jsx18 } from "react/jsx-runtime";
911
+ import { jsx as jsx13 } from "react/jsx-runtime";
1050
912
  var Tabs = TabsPrimitive.Root;
1051
- var TabsList = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
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(--tekton-radius-xl)] bg-[var(--tekton-bg-muted)] p-1 text-[var(--tekton-bg-muted-foreground)]",
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
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(--tekton-radius-xl)] px-[var(--tekton-spacing-3)] py-1.5 text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-[var(--tekton-bg-background)] data-[state=active]:text-[var(--tekton-bg-foreground)] data-[state=active]:shadow-sm",
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
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(--tekton-spacing-2)] ring-offset-[var(--tekton-bg-background)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2",
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 React17 from "react";
951
+ import * as React12 from "react";
1090
952
  import * as ToastPrimitives from "@radix-ui/react-toast";
1091
- import { cva as cva4 } from "class-variance-authority";
953
+ import { cva as cva2 } from "class-variance-authority";
1092
954
  import { X as X2 } from "lucide-react";
1093
- import { jsx as jsx19 } from "react/jsx-runtime";
955
+ import { jsx as jsx14 } from "react/jsx-runtime";
1094
956
  var ToastProvider = ToastPrimitives.Provider;
1095
- var ToastViewport = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
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(--tekton-spacing-4)] sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
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 = cva4(
1108
- "group pointer-events-auto relative flex w-full items-center justify-between space-x-[var(--tekton-spacing-4)] overflow-hidden rounded-[var(--tekton-radius-md)] border border-[var(--tekton-border-default)] p-[var(--tekton-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",
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(--tekton-bg-background)] text-[var(--tekton-bg-foreground)]",
1113
- destructive: "destructive group border-[var(--tekton-bg-destructive)] bg-[var(--tekton-bg-destructive)] text-[var(--tekton-bg-destructive-foreground)]"
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 = React17.forwardRef(({ className, variant, ...props }, ref) => {
1122
- return /* @__PURE__ */ jsx19(
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 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
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(--tekton-radius-md)] border border-[var(--tekton-bg-muted)] bg-transparent px-[var(--tekton-spacing-3)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors hover:bg-[var(--tekton-bg-secondary)] focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-[var(--tekton-bg-muted)]/40 group-[.destructive]:hover:border-[var(--tekton-bg-destructive)]/30 group-[.destructive]:hover:bg-[var(--tekton-bg-destructive)] group-[.destructive]:hover:text-[var(--tekton-bg-destructive-foreground)] group-[.destructive]:focus:ring-[var(--tekton-bg-destructive)]",
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 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
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(--tekton-radius-md)] p-1 text-[var(--tekton-bg-foreground)]/50 opacity-0 transition-opacity hover:text-[var(--tekton-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",
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__ */ jsx19(X2, { className: "h-4 w-4" })
1016
+ children: /* @__PURE__ */ jsx14(X2, { className: "h-4 w-4" })
1155
1017
  }
1156
1018
  ));
1157
1019
  ToastClose.displayName = ToastPrimitives.Close.displayName;
1158
- var ToastTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
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 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
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 React18 from "react";
1033
+ import * as React13 from "react";
1172
1034
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
1173
- import { jsx as jsx20 } from "react/jsx-runtime";
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 = React18.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx20(
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(--tekton-radius-md)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-popover)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm text-[var(--tekton-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",
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 React19 from "react";
1054
+ import * as React14 from "react";
1193
1055
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1194
- import { jsx as jsx21 } from "react/jsx-runtime";
1056
+ import { jsx as jsx16 } from "react/jsx-runtime";
1195
1057
  var Popover = PopoverPrimitive.Root;
1196
1058
  var PopoverTrigger = PopoverPrimitive.Trigger;
1197
- var PopoverContent = React19.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx21(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
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(--tekton-radius-md)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-popover)] p-[var(--tekton-spacing-4)] text-[var(--tekton-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",
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 React20 from "react";
1075
+ import * as React15 from "react";
1214
1076
  import * as SheetPrimitive from "@radix-ui/react-dialog";
1215
- import { cva as cva5 } from "class-variance-authority";
1077
+ import { cva as cva3 } from "class-variance-authority";
1216
1078
  import { X as X3 } from "lucide-react";
1217
- import { jsx as jsx22, jsxs as jsxs5 } from "react/jsx-runtime";
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 = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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(--tekton-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",
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 = cva5(
1235
- "fixed z-50 gap-[var(--tekton-spacing-4)] bg-[var(--tekton-bg-background)] p-[var(--tekton-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",
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(--tekton-border-default)] data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
1240
- bottom: "inset-x-0 bottom-0 border-t border-[var(--tekton-border-default)] data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
1241
- left: "inset-y-0 left-0 h-full w-3/4 border-r border-[var(--tekton-border-default)] data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
1242
- right: "inset-y-0 right-0 h-full w-3/4 border-l border-[var(--tekton-border-default)] data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
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 = React20.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(SheetPortal, { children: [
1251
- /* @__PURE__ */ jsx22(SheetOverlay, {}),
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(--tekton-radius-sm)] opacity-70 ring-offset-[var(--tekton-bg-background)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--tekton-bg-secondary)]", children: [
1255
- /* @__PURE__ */ jsx22(X3, { className: "h-4 w-4" }),
1256
- /* @__PURE__ */ jsx22("span", { className: "sr-only", children: "Close" })
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__ */ jsx22(
1123
+ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx17(
1262
1124
  "div",
1263
1125
  {
1264
1126
  className: cn(
1265
- "flex flex-col space-y-[var(--tekton-spacing-2)] text-center sm:text-left",
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__ */ jsx22(
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(--tekton-spacing-2)]",
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 = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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(--tekton-bg-foreground)]", className),
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 = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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(--tekton-bg-muted-foreground)]", className),
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 React21 from "react";
1165
+ import * as React16 from "react";
1304
1166
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
1305
- import { jsx as jsx23, jsxs as jsxs6 } from "react/jsx-runtime";
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs6(AlertDialogPortal, { children: [
1322
- /* @__PURE__ */ jsx23(AlertDialogOverlay, {}),
1323
- /* @__PURE__ */ jsx23(
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__ */ jsx23("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
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__ */ jsx23(
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
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 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
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 React22 from "react";
1239
+ import * as React17 from "react";
1378
1240
  import * as ProgressPrimitive from "@radix-ui/react-progress";
1379
- import { jsx as jsx24 } from "react/jsx-runtime";
1380
- var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx24(
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(--tekton-radius-full)] bg-[var(--tekton-bg-secondary)]",
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__ */ jsx24(
1255
+ children: /* @__PURE__ */ jsx19(
1394
1256
  ProgressPrimitive.Indicator,
1395
1257
  {
1396
- className: "h-full w-full flex-1 bg-[var(--tekton-bg-primary)] transition-all",
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 React23 from "react";
1406
- import { cva as cva6 } from "class-variance-authority";
1407
- import { jsx as jsx25, jsxs as jsxs7 } from "react/jsx-runtime";
1408
- var sidebarVariants = cva6(
1409
- "flex flex-col border-r border-[var(--tekton-border-default)] bg-[var(--tekton-bg-background)] transition-all duration-300",
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 = cva6(
1429
- "flex items-center gap-[var(--tekton-spacing-2)] border-b border-[var(--tekton-border-default)] bg-[var(--tekton-bg-card)] p-[var(--tekton-spacing-4)]",
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 = cva6("flex-1 overflow-y-auto p-[var(--tekton-spacing-4)]", {
1305
+ var sidebarContentVariants = cva4("flex-1 overflow-y-auto p-[var(--spacing-4)]", {
1444
1306
  variants: {
1445
1307
  spacing: {
1446
- default: "space-y-[var(--tekton-spacing-2)]",
1447
- compact: "space-y-[var(--tekton-spacing-1)]",
1448
- relaxed: "space-y-[var(--tekton-spacing-4)]"
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 = cva6(
1456
- "flex w-full items-center gap-[var(--tekton-spacing-3)] rounded-[var(--tekton-radius-md)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
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(--tekton-bg-foreground)] hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
1461
- active: "bg-[var(--tekton-bg-primary)] text-[var(--tekton-bg-primary-foreground)] hover:bg-[var(--tekton-bg-primary)]/90"
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 = cva6("space-y-[var(--tekton-spacing-1)]", {
1331
+ var sidebarSectionVariants = cva4("space-y-[var(--spacing-1)]", {
1470
1332
  variants: {}
1471
1333
  });
1472
- var sidebarSectionTitleVariants = cva6(
1473
- "px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-xs font-semibold uppercase tracking-wider text-[var(--tekton-text-muted-foreground)]",
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 = cva6(
1479
- "border-t border-[var(--tekton-border-default)] p-[var(--tekton-spacing-4)]",
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 = React23.forwardRef(
1346
+ var Sidebar = React18.forwardRef(
1485
1347
  ({ className, variant, size, collapsed, ...props }, ref) => {
1486
- return /* @__PURE__ */ jsx25(
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 = React23.forwardRef(
1361
+ var SidebarHeader = React18.forwardRef(
1500
1362
  ({ className, size, ...props }, ref) => {
1501
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarHeaderVariants({ size, className })), ...props });
1363
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarHeaderVariants({ size, className })), ...props });
1502
1364
  }
1503
1365
  );
1504
1366
  SidebarHeader.displayName = "SidebarHeader";
1505
- var SidebarContent = React23.forwardRef(
1367
+ var SidebarContent = React18.forwardRef(
1506
1368
  ({ className, spacing, ...props }, ref) => {
1507
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarContentVariants({ spacing, className })), ...props });
1369
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarContentVariants({ spacing, className })), ...props });
1508
1370
  }
1509
1371
  );
1510
1372
  SidebarContent.displayName = "SidebarContent";
1511
- var SidebarItem = React23.forwardRef(
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__ */ jsx25("span", { className: "flex-shrink-0", children: icon }),
1521
- /* @__PURE__ */ jsx25("span", { className: "flex-1 truncate text-left", children }),
1522
- badge && /* @__PURE__ */ jsx25("span", { className: "flex-shrink-0", children: badge })
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 = React23.forwardRef(
1391
+ var SidebarSection = React18.forwardRef(
1530
1392
  ({ className, title, collapsed, children, ...props }, ref) => {
1531
- const [isCollapsed, setIsCollapsed] = React23.useState(collapsed ?? false);
1532
- React23.useEffect(() => {
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__ */ jsx25(
1400
+ title && /* @__PURE__ */ jsx20(
1539
1401
  "button",
1540
1402
  {
1541
1403
  className: cn(
1542
1404
  sidebarSectionTitleVariants(),
1543
- "w-full text-left hover:text-[var(--tekton-bg-foreground)] transition-colors"
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__ */ jsx25(
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__ */ jsx25("div", { className: "space-y-[var(--tekton-spacing-1)]", children })
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 = React23.forwardRef(
1427
+ var SidebarSectionTitle = React18.forwardRef(
1566
1428
  ({ className, ...props }, ref) => {
1567
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarSectionTitleVariants({ className })), ...props });
1429
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarSectionTitleVariants({ className })), ...props });
1568
1430
  }
1569
1431
  );
1570
1432
  SidebarSectionTitle.displayName = "SidebarSectionTitle";
1571
- var SidebarFooter = React23.forwardRef(
1433
+ var SidebarFooter = React18.forwardRef(
1572
1434
  ({ className, ...props }, ref) => {
1573
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarFooterVariants({ className })), ...props });
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 React24 from "react";
1441
+ import * as React19 from "react";
1580
1442
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
1581
- import { cva as cva7 } from "class-variance-authority";
1582
- import { jsx as jsx26, jsxs as jsxs8 } from "react/jsx-runtime";
1583
- var NavigationMenu = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
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__ */ jsx26(NavigationMenuViewport, {})
1453
+ /* @__PURE__ */ jsx21(NavigationMenuViewport, {})
1592
1454
  ]
1593
1455
  }
1594
1456
  ));
1595
1457
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1596
- var NavigationMenuList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
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(--tekton-spacing-1)]",
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 = cva7(
1610
- "group inline-flex h-10 w-max items-center justify-center rounded-[var(--tekton-radius-md)] bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-4)] py-[var(--tekton-spacing-2)] text-sm font-medium transition-colors hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)] focus:bg-[var(--tekton-bg-accent)] focus:text-[var(--tekton-bg-accent-foreground)] focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-[var(--tekton-bg-accent)]/50 data-[state=open]:bg-[var(--tekton-bg-accent)]/50"
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 = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
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__ */ jsx26(
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__ */ jsx26(
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx26(
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(--tekton-radius-md)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-popover)] text-[var(--tekton-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)]",
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 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
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__ */ jsx26("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-[var(--tekton-border-default)] shadow-md" })
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 React25 from "react";
1688
- import { cva as cva8 } from "class-variance-authority";
1689
- import { jsx as jsx27, jsxs as jsxs9 } from "react/jsx-runtime";
1690
- var breadcrumbVariants = cva8("flex items-center gap-[var(--tekton-spacing-2)]", {
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 = cva8("flex flex-wrap items-center gap-1.5 break-words", {
1564
+ var breadcrumbListVariants = cva6("flex flex-wrap items-center gap-1.5 break-words", {
1703
1565
  variants: {}
1704
1566
  });
1705
- var breadcrumbItemVariants = cva8("inline-flex items-center gap-1.5", {
1567
+ var breadcrumbItemVariants = cva6("inline-flex items-center gap-1.5", {
1706
1568
  variants: {}
1707
1569
  });
1708
- var breadcrumbLinkVariants = cva8(
1709
- "transition-colors hover:text-[var(--tekton-bg-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 rounded-[var(--tekton-radius-sm)]",
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(--tekton-bg-foreground)] font-medium pointer-events-none",
1714
- false: "text-[var(--tekton-text-muted-foreground)] underline-offset-4 hover:underline"
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 = cva8("text-[var(--tekton-text-muted-foreground)] select-none", {
1584
+ var breadcrumbSeparatorVariants = cva6("text-[var(--text-muted-foreground)] select-none", {
1723
1585
  variants: {}
1724
1586
  });
1725
- var breadcrumbEllipsisVariants = cva8(
1726
- "inline-flex h-9 w-9 items-center justify-center text-[var(--tekton-text-muted-foreground)]",
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 = React25.forwardRef(
1593
+ var Breadcrumb = React20.forwardRef(
1732
1594
  ({ className, size, separator: _separator = "/", ...props }, ref) => {
1733
- return /* @__PURE__ */ jsx27(
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 = React25.forwardRef(
1746
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27("ol", { ref, className: cn(breadcrumbListVariants({ className })), ...props })
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 = React25.forwardRef(
1750
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27("li", { ref, className: cn(breadcrumbItemVariants({ className })), ...props })
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 = React25.forwardRef(
1615
+ var BreadcrumbLink = React20.forwardRef(
1754
1616
  ({ className, active, asChild = false, ...props }, ref) => {
1755
- const Comp = asChild ? React25.Fragment : "a";
1756
- return /* @__PURE__ */ jsx27(
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 = React25.forwardRef(
1770
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
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(--tekton-bg-foreground)]",
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 = React25.forwardRef(
1788
- ({ children, className, ...props }, ref) => /* @__PURE__ */ jsx27(
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 = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(
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__ */ jsx27(
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__ */ jsx27(
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__ */ jsx27("span", { className: "sr-only", children: "More" })
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 React26 from "react";
1699
+ import * as React21 from "react";
1838
1700
  import { Command as CommandPrimitive } from "cmdk";
1839
- import { jsx as jsx28, jsxs as jsxs10 } from "react/jsx-runtime";
1840
- var Command = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
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(--tekton-radius-md)] bg-[var(--tekton-bg-popover)] text-[var(--tekton-text-popover-foreground)]",
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__ */ jsx28(
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(--tekton-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"
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__ */ jsx28("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(--tekton-border-default)] bg-[var(--tekton-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__ */ jsx28(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--tekton-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 }) })
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 = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(
1729
+ var CommandInput = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(
1868
1730
  "div",
1869
1731
  {
1870
- className: "flex items-center border-b border-[var(--tekton-border-default)] px-3",
1732
+ className: "flex items-center border-b border-[var(--border-default)] px-3",
1871
1733
  "cmdk-input-wrapper": "",
1872
1734
  children: [
1873
- /* @__PURE__ */ jsx28(
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__ */ jsx28(
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__ */ jsx28(
1755
+ /* @__PURE__ */ jsx23(
1894
1756
  CommandPrimitive.Input,
1895
1757
  {
1896
1758
  ref,
1897
1759
  className: cn(
1898
- "flex h-11 w-full rounded-[var(--tekton-radius-md)] bg-transparent py-3 text-sm outline-none placeholder:text-[var(--tekton-text-muted-foreground)] disabled:cursor-not-allowed disabled:opacity-50",
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 = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
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 = React26.forwardRef((props, ref) => /* @__PURE__ */ jsx28(
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(--tekton-text-muted-foreground)]",
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 = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
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(--tekton-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(--tekton-text-muted-foreground)]",
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 = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
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(--tekton-border-default)]", className),
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 = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
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(--tekton-radius-sm)] px-2 py-1.5 text-sm outline-none aria-selected:bg-[var(--tekton-bg-accent)] aria-selected:text-[var(--tekton-bg-accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
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__ */ jsx28(
1822
+ return /* @__PURE__ */ jsx23(
1961
1823
  "span",
1962
1824
  {
1963
1825
  className: cn(
1964
- "ml-auto text-xs tracking-widest text-[var(--tekton-text-muted-foreground)]",
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 jsx29 } from "react/jsx-runtime";
1837
+ import { jsx as jsx24 } from "react/jsx-runtime";
1976
1838
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1977
- return /* @__PURE__ */ jsx29(
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(--tekton-bg-foreground)]",
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(--tekton-radius-md)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
1991
- "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
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(--tekton-radius-md)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
1996
- "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
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(--tekton-bg-muted-foreground)] rounded-[var(--tekton-radius-md)] flex-1 font-normal text-[0.8rem] text-center",
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(--tekton-radius-md)] [&:has([aria-selected].day-outside)]:bg-[var(--tekton-bg-accent)]/50 [&:has([aria-selected])]:bg-[var(--tekton-bg-accent)] first:[&:has([aria-selected])]:rounded-l-[var(--tekton-radius-md)] last:[&:has([aria-selected])]:rounded-r-[var(--tekton-radius-md)] focus-within:relative focus-within:z-20",
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(--tekton-radius-md)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
2006
- "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
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(--tekton-radius-md)] bg-[var(--tekton-bg-primary)] text-[var(--tekton-bg-primary-foreground)] hover:bg-[var(--tekton-bg-primary)] hover:text-[var(--tekton-bg-primary-foreground)] focus:bg-[var(--tekton-bg-primary)] focus:text-[var(--tekton-bg-primary-foreground)]",
2011
- today: "rounded-[var(--tekton-radius-md)] bg-[var(--tekton-bg-accent)] text-[var(--tekton-bg-accent-foreground)]",
2012
- outside: "day-outside text-[var(--tekton-bg-muted-foreground)] opacity-50 aria-selected:bg-[var(--tekton-bg-accent)]/50 aria-selected:text-[var(--tekton-bg-muted-foreground)] aria-selected:opacity-30",
2013
- disabled: "text-[var(--tekton-bg-muted-foreground)] opacity-50",
2014
- range_middle: "aria-selected:bg-[var(--tekton-bg-accent)] aria-selected:text-[var(--tekton-bg-accent-foreground)]",
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__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29(
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__ */ jsx29(
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,