create-better-t-stack 2.18.0 → 2.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/frontend/react/next/package.json.hbs +1 -4
- package/templates/frontend/react/react-router/package.json +1 -4
- package/templates/frontend/react/tanstack-router/package.json +1 -4
- package/templates/frontend/react/tanstack-start/package.json +1 -4
- package/templates/frontend/react/web-base/src/components/ui/button.tsx +9 -9
- package/templates/frontend/react/web-base/src/components/ui/card.tsx +10 -10
- package/templates/frontend/react/web-base/src/components/ui/checkbox.tsx +6 -6
- package/templates/frontend/react/web-base/src/components/ui/dropdown-menu.tsx +26 -24
- package/templates/frontend/react/web-base/src/components/ui/input.tsx +4 -4
- package/templates/frontend/react/web-base/src/components/ui/label.tsx +5 -7
- package/templates/frontend/react/web-base/src/components/ui/skeleton.tsx +3 -3
- package/templates/frontend/react/web-base/src/components/ui/sonner.tsx +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-better-t-stack",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.1",
|
|
4
4
|
"description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,10 +9,7 @@
|
|
|
9
9
|
"lint": "next lint"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"
|
|
13
|
-
"@radix-ui/react-dropdown-menu": "^2.1.7",
|
|
14
|
-
"@radix-ui/react-label": "^2.1.3",
|
|
15
|
-
"@radix-ui/react-slot": "^1.2.0",
|
|
12
|
+
"radix-ui": "^1.4.2",
|
|
16
13
|
"@tanstack/react-form": "^1.3.2",
|
|
17
14
|
"class-variance-authority": "^0.7.1",
|
|
18
15
|
"clsx": "^2.1.1",
|
|
@@ -9,10 +9,7 @@
|
|
|
9
9
|
"typecheck": "react-router typegen && tsc"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"
|
|
13
|
-
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
14
|
-
"@radix-ui/react-label": "^2.1.7",
|
|
15
|
-
"@radix-ui/react-slot": "^1.2.3",
|
|
12
|
+
"radix-ui": "^1.4.2",
|
|
16
13
|
"@react-router/fs-routes": "^7.6.1",
|
|
17
14
|
"@react-router/node": "^7.6.1",
|
|
18
15
|
"@react-router/serve": "^7.6.1",
|
|
@@ -23,10 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@hookform/resolvers": "^3.10.0",
|
|
26
|
-
|
|
27
|
-
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
|
28
|
-
"@radix-ui/react-label": "^2.1.2",
|
|
29
|
-
"@radix-ui/react-slot": "^1.1.2",
|
|
26
|
+
"radix-ui": "^1.4.2",
|
|
30
27
|
"@tanstack/react-form": "^1.0.5",
|
|
31
28
|
"@tailwindcss/vite": "^4.0.15",
|
|
32
29
|
"@tanstack/react-router": "^1.114.25",
|
|
@@ -8,10 +8,7 @@
|
|
|
8
8
|
"dev": "vite dev --port=3001"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"
|
|
12
|
-
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
|
13
|
-
"@radix-ui/react-label": "^2.1.2",
|
|
14
|
-
"@radix-ui/react-slot": "^1.1.2",
|
|
11
|
+
"radix-ui": "^1.4.2",
|
|
15
12
|
"@tanstack/react-form": "^1.0.5",
|
|
16
13
|
"@tailwindcss/vite": "^4.1.8",
|
|
17
14
|
"@tanstack/react-query": "^5.80.6",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
import { Slot } from "
|
|
3
|
-
import { cva, type VariantProps } from "class-variance-authority"
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { Slot as SlotPrimitive } from "radix-ui"
|
|
3
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
4
4
|
|
|
5
|
-
import { cn } from "@/lib/utils"
|
|
5
|
+
import { cn } from "@/lib/utils"
|
|
6
6
|
|
|
7
7
|
const buttonVariants = cva(
|
|
8
8
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
@@ -33,7 +33,7 @@ const buttonVariants = cva(
|
|
|
33
33
|
size: "default",
|
|
34
34
|
},
|
|
35
35
|
}
|
|
36
|
-
)
|
|
36
|
+
)
|
|
37
37
|
|
|
38
38
|
function Button({
|
|
39
39
|
className,
|
|
@@ -43,9 +43,9 @@ function Button({
|
|
|
43
43
|
...props
|
|
44
44
|
}: React.ComponentProps<"button"> &
|
|
45
45
|
VariantProps<typeof buttonVariants> & {
|
|
46
|
-
asChild?: boolean
|
|
46
|
+
asChild?: boolean
|
|
47
47
|
}) {
|
|
48
|
-
const Comp = asChild ? Slot : "button"
|
|
48
|
+
const Comp = asChild ? SlotPrimitive.Slot : "button"
|
|
49
49
|
|
|
50
50
|
return (
|
|
51
51
|
<Comp
|
|
@@ -53,7 +53,7 @@ function Button({
|
|
|
53
53
|
className={cn(buttonVariants({ variant, size, className }))}
|
|
54
54
|
{...props}
|
|
55
55
|
/>
|
|
56
|
-
)
|
|
56
|
+
)
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
export { Button, buttonVariants }
|
|
59
|
+
export { Button, buttonVariants }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as React from "react"
|
|
1
|
+
import * as React from "react"
|
|
2
2
|
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
4
|
|
|
5
5
|
function Card({ className, ...props }: React.ComponentProps<"div">) {
|
|
6
6
|
return (
|
|
@@ -12,7 +12,7 @@ function Card({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
12
12
|
)}
|
|
13
13
|
{...props}
|
|
14
14
|
/>
|
|
15
|
-
)
|
|
15
|
+
)
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -25,7 +25,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
25
25
|
)}
|
|
26
26
|
{...props}
|
|
27
27
|
/>
|
|
28
|
-
)
|
|
28
|
+
)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -35,7 +35,7 @@ function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
35
35
|
className={cn("leading-none font-semibold", className)}
|
|
36
36
|
{...props}
|
|
37
37
|
/>
|
|
38
|
-
)
|
|
38
|
+
)
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -45,7 +45,7 @@ function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
45
45
|
className={cn("text-muted-foreground text-sm", className)}
|
|
46
46
|
{...props}
|
|
47
47
|
/>
|
|
48
|
-
)
|
|
48
|
+
)
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function CardAction({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -58,7 +58,7 @@ function CardAction({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
58
58
|
)}
|
|
59
59
|
{...props}
|
|
60
60
|
/>
|
|
61
|
-
)
|
|
61
|
+
)
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
function CardContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -68,7 +68,7 @@ function CardContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
68
68
|
className={cn("px-6", className)}
|
|
69
69
|
{...props}
|
|
70
70
|
/>
|
|
71
|
-
)
|
|
71
|
+
)
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -78,7 +78,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
78
78
|
className={cn("flex items-center px-6 [.border-t]:pt-6", className)}
|
|
79
79
|
{...props}
|
|
80
80
|
/>
|
|
81
|
-
)
|
|
81
|
+
)
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
export {
|
|
@@ -89,4 +89,4 @@ export {
|
|
|
89
89
|
CardAction,
|
|
90
90
|
CardDescription,
|
|
91
91
|
CardContent,
|
|
92
|
-
}
|
|
92
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
import
|
|
3
|
-
import { CheckIcon } from "lucide-react"
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { Checkbox as CheckboxPrimitive } from "radix-ui"
|
|
3
|
+
import { CheckIcon } from "lucide-react"
|
|
4
4
|
|
|
5
|
-
import { cn } from "@/lib/utils"
|
|
5
|
+
import { cn } from "@/lib/utils"
|
|
6
6
|
|
|
7
7
|
function Checkbox({
|
|
8
8
|
className,
|
|
@@ -24,7 +24,7 @@ function Checkbox({
|
|
|
24
24
|
<CheckIcon className="size-3.5" />
|
|
25
25
|
</CheckboxPrimitive.Indicator>
|
|
26
26
|
</CheckboxPrimitive.Root>
|
|
27
|
-
)
|
|
27
|
+
)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export { Checkbox }
|
|
30
|
+
export { Checkbox }
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
3
|
-
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
|
|
1
|
+
"use client"
|
|
4
2
|
|
|
5
|
-
import
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
|
|
5
|
+
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
|
|
6
|
+
|
|
7
|
+
import { cn } from "@/lib/utils"
|
|
6
8
|
|
|
7
9
|
function DropdownMenu({
|
|
8
10
|
...props
|
|
9
11
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
|
|
10
|
-
return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props}
|
|
12
|
+
return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
function DropdownMenuPortal({
|
|
@@ -15,7 +17,7 @@ function DropdownMenuPortal({
|
|
|
15
17
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
|
|
16
18
|
return (
|
|
17
19
|
<DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
|
|
18
|
-
)
|
|
20
|
+
)
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
function DropdownMenuTrigger({
|
|
@@ -26,7 +28,7 @@ function DropdownMenuTrigger({
|
|
|
26
28
|
data-slot="dropdown-menu-trigger"
|
|
27
29
|
{...props}
|
|
28
30
|
/>
|
|
29
|
-
)
|
|
31
|
+
)
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
function DropdownMenuContent({
|
|
@@ -46,7 +48,7 @@ function DropdownMenuContent({
|
|
|
46
48
|
{...props}
|
|
47
49
|
/>
|
|
48
50
|
</DropdownMenuPrimitive.Portal>
|
|
49
|
-
)
|
|
51
|
+
)
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
function DropdownMenuGroup({
|
|
@@ -54,7 +56,7 @@ function DropdownMenuGroup({
|
|
|
54
56
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {
|
|
55
57
|
return (
|
|
56
58
|
<DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
|
|
57
|
-
)
|
|
59
|
+
)
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
function DropdownMenuItem({
|
|
@@ -63,8 +65,8 @@ function DropdownMenuItem({
|
|
|
63
65
|
variant = "default",
|
|
64
66
|
...props
|
|
65
67
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
|
|
66
|
-
inset?: boolean
|
|
67
|
-
variant?: "default" | "destructive"
|
|
68
|
+
inset?: boolean
|
|
69
|
+
variant?: "default" | "destructive"
|
|
68
70
|
}) {
|
|
69
71
|
return (
|
|
70
72
|
<DropdownMenuPrimitive.Item
|
|
@@ -77,7 +79,7 @@ function DropdownMenuItem({
|
|
|
77
79
|
)}
|
|
78
80
|
{...props}
|
|
79
81
|
/>
|
|
80
|
-
)
|
|
82
|
+
)
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
function DropdownMenuCheckboxItem({
|
|
@@ -103,7 +105,7 @@ function DropdownMenuCheckboxItem({
|
|
|
103
105
|
</span>
|
|
104
106
|
{children}
|
|
105
107
|
</DropdownMenuPrimitive.CheckboxItem>
|
|
106
|
-
)
|
|
108
|
+
)
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
function DropdownMenuRadioGroup({
|
|
@@ -114,7 +116,7 @@ function DropdownMenuRadioGroup({
|
|
|
114
116
|
data-slot="dropdown-menu-radio-group"
|
|
115
117
|
{...props}
|
|
116
118
|
/>
|
|
117
|
-
)
|
|
119
|
+
)
|
|
118
120
|
}
|
|
119
121
|
|
|
120
122
|
function DropdownMenuRadioItem({
|
|
@@ -138,7 +140,7 @@ function DropdownMenuRadioItem({
|
|
|
138
140
|
</span>
|
|
139
141
|
{children}
|
|
140
142
|
</DropdownMenuPrimitive.RadioItem>
|
|
141
|
-
)
|
|
143
|
+
)
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
function DropdownMenuLabel({
|
|
@@ -146,7 +148,7 @@ function DropdownMenuLabel({
|
|
|
146
148
|
inset,
|
|
147
149
|
...props
|
|
148
150
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
|
|
149
|
-
inset?: boolean
|
|
151
|
+
inset?: boolean
|
|
150
152
|
}) {
|
|
151
153
|
return (
|
|
152
154
|
<DropdownMenuPrimitive.Label
|
|
@@ -158,7 +160,7 @@ function DropdownMenuLabel({
|
|
|
158
160
|
)}
|
|
159
161
|
{...props}
|
|
160
162
|
/>
|
|
161
|
-
)
|
|
163
|
+
)
|
|
162
164
|
}
|
|
163
165
|
|
|
164
166
|
function DropdownMenuSeparator({
|
|
@@ -171,7 +173,7 @@ function DropdownMenuSeparator({
|
|
|
171
173
|
className={cn("bg-border -mx-1 my-1 h-px", className)}
|
|
172
174
|
{...props}
|
|
173
175
|
/>
|
|
174
|
-
)
|
|
176
|
+
)
|
|
175
177
|
}
|
|
176
178
|
|
|
177
179
|
function DropdownMenuShortcut({
|
|
@@ -187,13 +189,13 @@ function DropdownMenuShortcut({
|
|
|
187
189
|
)}
|
|
188
190
|
{...props}
|
|
189
191
|
/>
|
|
190
|
-
)
|
|
192
|
+
)
|
|
191
193
|
}
|
|
192
194
|
|
|
193
195
|
function DropdownMenuSub({
|
|
194
196
|
...props
|
|
195
197
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {
|
|
196
|
-
return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props}
|
|
198
|
+
return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} />
|
|
197
199
|
}
|
|
198
200
|
|
|
199
201
|
function DropdownMenuSubTrigger({
|
|
@@ -202,7 +204,7 @@ function DropdownMenuSubTrigger({
|
|
|
202
204
|
children,
|
|
203
205
|
...props
|
|
204
206
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
|
|
205
|
-
inset?: boolean
|
|
207
|
+
inset?: boolean
|
|
206
208
|
}) {
|
|
207
209
|
return (
|
|
208
210
|
<DropdownMenuPrimitive.SubTrigger
|
|
@@ -217,7 +219,7 @@ function DropdownMenuSubTrigger({
|
|
|
217
219
|
{children}
|
|
218
220
|
<ChevronRightIcon className="ml-auto size-4" />
|
|
219
221
|
</DropdownMenuPrimitive.SubTrigger>
|
|
220
|
-
)
|
|
222
|
+
)
|
|
221
223
|
}
|
|
222
224
|
|
|
223
225
|
function DropdownMenuSubContent({
|
|
@@ -233,7 +235,7 @@ function DropdownMenuSubContent({
|
|
|
233
235
|
)}
|
|
234
236
|
{...props}
|
|
235
237
|
/>
|
|
236
|
-
)
|
|
238
|
+
)
|
|
237
239
|
}
|
|
238
240
|
|
|
239
241
|
export {
|
|
@@ -252,4 +254,4 @@ export {
|
|
|
252
254
|
DropdownMenuSub,
|
|
253
255
|
DropdownMenuSubTrigger,
|
|
254
256
|
DropdownMenuSubContent,
|
|
255
|
-
}
|
|
257
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as React from "react"
|
|
1
|
+
import * as React from "react"
|
|
2
2
|
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
4
|
|
|
5
5
|
function Input({ className, type, ...props }: React.ComponentProps<"input">) {
|
|
6
6
|
return (
|
|
@@ -15,7 +15,7 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
|
|
|
15
15
|
)}
|
|
16
16
|
{...props}
|
|
17
17
|
/>
|
|
18
|
-
)
|
|
18
|
+
)
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export { Input }
|
|
21
|
+
export { Input }
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
import { Label as LabelPrimitive } from "radix-ui"
|
|
2
3
|
|
|
3
|
-
import
|
|
4
|
-
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
5
|
-
|
|
6
|
-
import { cn } from "@/lib/utils";
|
|
4
|
+
import { cn } from "@/lib/utils"
|
|
7
5
|
|
|
8
6
|
function Label({
|
|
9
7
|
className,
|
|
@@ -18,7 +16,7 @@ function Label({
|
|
|
18
16
|
)}
|
|
19
17
|
{...props}
|
|
20
18
|
/>
|
|
21
|
-
)
|
|
19
|
+
)
|
|
22
20
|
}
|
|
23
21
|
|
|
24
|
-
export { Label }
|
|
22
|
+
export { Label }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from "@/lib/utils"
|
|
1
|
+
import { cn } from "@/lib/utils"
|
|
2
2
|
|
|
3
3
|
function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
|
|
4
4
|
return (
|
|
@@ -7,7 +7,7 @@ function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
7
7
|
className={cn("bg-accent animate-pulse rounded-md", className)}
|
|
8
8
|
{...props}
|
|
9
9
|
/>
|
|
10
|
-
)
|
|
10
|
+
)
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export { Skeleton }
|
|
13
|
+
export { Skeleton }
|