create-newt-app 0.33.3 → 0.34.0
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/dist/index.js +153 -144
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { existsSync, promises } from "fs";
|
|
|
11
11
|
import path from "path";
|
|
12
12
|
import https from "node:https";
|
|
13
13
|
//#region package.json
|
|
14
|
-
var version = "0.
|
|
14
|
+
var version = "0.34.0";
|
|
15
15
|
var engines = { "node": ">=24.0.0" };
|
|
16
16
|
//#endregion
|
|
17
17
|
//#region src/templates/root/index.ts
|
|
@@ -31,7 +31,8 @@ const root$2 = { templates: [
|
|
|
31
31
|
"db:migrate": "turbo run migrate",
|
|
32
32
|
"db:generate": "turbo run generate"
|
|
33
33
|
},
|
|
34
|
-
"devDependencies": {
|
|
34
|
+
"devDependencies": {<% if (shadcn && linter === "oxc") { %>
|
|
35
|
+
"@shadcn/lint": "<%= versions["@shadcn/lint"] %>",<% } %>
|
|
35
36
|
"@types/node": "<%= versions["@types/node"] %>",
|
|
36
37
|
"turbo": "<%= versions.turbo %>",
|
|
37
38
|
"typescript": "<%= versions.typescript %>"
|
|
@@ -219,7 +220,9 @@ BETTER_AUTH_SECRET=generate-with-openssl-rand-base64-32
|
|
|
219
220
|
# This is NOT the Next.js you know
|
|
220
221
|
|
|
221
222
|
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in \`node_modules/next/dist/docs/\` before writing any code. Heed deprecation notices.
|
|
222
|
-
<!-- END:nextjs-agent-rules
|
|
223
|
+
<!-- END:nextjs-agent-rules --><% if (shadcn) { %>
|
|
224
|
+
|
|
225
|
+
After making changes, run \`pnpm lint:check\` and fix all errors.<% } %>`
|
|
223
226
|
},
|
|
224
227
|
{
|
|
225
228
|
filename: "CLAUDE.md",
|
|
@@ -458,7 +461,7 @@ export default function Home() {
|
|
|
458
461
|
const { data: session, isPending } = authClient.useSession();
|
|
459
462
|
|
|
460
463
|
const { data: hello } = useQuery({
|
|
461
|
-
queryKey: ['hello'],
|
|
464
|
+
queryKey: ['hello', session?.user.id],
|
|
462
465
|
queryFn: () => fetch('/api/hello').then((r) => r.json()),
|
|
463
466
|
});
|
|
464
467
|
|
|
@@ -1495,6 +1498,7 @@ const versions = {
|
|
|
1495
1498
|
"@nestjs/testing": "^11.0.1",
|
|
1496
1499
|
"@next/eslint-plugin-next": "^16.3.4",
|
|
1497
1500
|
"@oxlint/plugins": "^1.74.0",
|
|
1501
|
+
"@shadcn/lint": "^0.1.0",
|
|
1498
1502
|
"@shadcn/react": "^0.2.1",
|
|
1499
1503
|
"@stylexjs/babel-plugin": "0.19.0",
|
|
1500
1504
|
"@stylexjs/postcss-plugin": "0.19.0",
|
|
@@ -1520,6 +1524,7 @@ const versions = {
|
|
|
1520
1524
|
"class-variance-authority": "^0.7.1",
|
|
1521
1525
|
clsx: "^2.1.1",
|
|
1522
1526
|
cmdk: "^1.1.1",
|
|
1527
|
+
cn: "^0.3.0",
|
|
1523
1528
|
"date-fns": "^4.2.1",
|
|
1524
1529
|
dotenv: "^17.3.1",
|
|
1525
1530
|
"dotenv-cli": "^11.0.0",
|
|
@@ -1538,7 +1543,7 @@ const versions = {
|
|
|
1538
1543
|
next: "16.3.4",
|
|
1539
1544
|
"next-themes": "^0.4.6",
|
|
1540
1545
|
oxfmt: "^0.59.0",
|
|
1541
|
-
oxlint: "^1.
|
|
1546
|
+
oxlint: "^1.80.0",
|
|
1542
1547
|
pg: "^8.14.1",
|
|
1543
1548
|
prettier: "^3.7.4",
|
|
1544
1549
|
react: "^19.2.4",
|
|
@@ -1589,8 +1594,8 @@ const shadcnUi = {
|
|
|
1589
1594
|
"@shadcn/react": "<%= versions["@shadcn/react"] %>",
|
|
1590
1595
|
"shadcn": "<%= versions.shadcn %>",
|
|
1591
1596
|
"class-variance-authority": "<%= versions["class-variance-authority"] %>",
|
|
1592
|
-
"clsx": "<%= versions.clsx %>",
|
|
1593
1597
|
"cmdk": "<%= versions.cmdk %>",
|
|
1598
|
+
"cn": "<%= versions.cn %>",
|
|
1594
1599
|
"date-fns": "<%= versions["date-fns"] %>",
|
|
1595
1600
|
"embla-carousel-react": "<%= versions["embla-carousel-react"] %>",
|
|
1596
1601
|
"input-otp": "<%= versions["input-otp"] %>",
|
|
@@ -1600,7 +1605,6 @@ const shadcnUi = {
|
|
|
1600
1605
|
"react-resizable-panels": "<%= versions["react-resizable-panels"] %>",
|
|
1601
1606
|
"recharts": "<%= versions.recharts %>",
|
|
1602
1607
|
"sonner": "<%= versions.sonner %>",
|
|
1603
|
-
"tailwind-merge": "<%= versions["tailwind-merge"] %>",
|
|
1604
1608
|
"tw-animate-css": "<%= versions["tw-animate-css"] %>"
|
|
1605
1609
|
},
|
|
1606
1610
|
"peerDependencies": {
|
|
@@ -1621,12 +1625,7 @@ const shadcnUi = {
|
|
|
1621
1625
|
},
|
|
1622
1626
|
{
|
|
1623
1627
|
filename: "packages/ui/src/lib/utils.ts",
|
|
1624
|
-
template: `
|
|
1625
|
-
import { twMerge } from "tailwind-merge"
|
|
1626
|
-
|
|
1627
|
-
export function cn(...inputs: ClassValue[]) {
|
|
1628
|
-
return twMerge(clsx(inputs))
|
|
1629
|
-
}
|
|
1628
|
+
template: `export { cn } from "cn"
|
|
1630
1629
|
`
|
|
1631
1630
|
},
|
|
1632
1631
|
{
|
|
@@ -1818,7 +1817,10 @@ export default config;`
|
|
|
1818
1817
|
"extends": "@<%= projectName %>/typescript-config/react-library.json",
|
|
1819
1818
|
"compilerOptions": {
|
|
1820
1819
|
"outDir": "dist",
|
|
1821
|
-
"strictNullChecks": true
|
|
1820
|
+
"strictNullChecks": true,
|
|
1821
|
+
"paths": {
|
|
1822
|
+
"@<%= projectName %>/ui/*": ["./src/*"]
|
|
1823
|
+
}
|
|
1822
1824
|
},
|
|
1823
1825
|
"include": ["src"],
|
|
1824
1826
|
"exclude": ["node_modules", "dist"]
|
|
@@ -1934,13 +1936,13 @@ import { Button } from '@<%= projectName %>/ui/button';
|
|
|
1934
1936
|
import { Link } from '@<%= projectName %>/ui/link';
|
|
1935
1937
|
import { Logo } from '@<%= projectName %>/ui/logo';
|
|
1936
1938
|
import { ModeToggle } from '@<%= projectName %>/ui/mode-toggle';
|
|
1937
|
-
import { Card, CardContent, CardHeader
|
|
1939
|
+
import { Card, CardContent, CardHeader } from '@<%= projectName %>/ui/card';
|
|
1938
1940
|
|
|
1939
1941
|
export default function Home() {
|
|
1940
1942
|
const { data: session, isPending } = authClient.useSession();
|
|
1941
1943
|
|
|
1942
1944
|
const { data: hello } = useQuery({
|
|
1943
|
-
queryKey: ['hello'],
|
|
1945
|
+
queryKey: ['hello', session?.user.id],
|
|
1944
1946
|
queryFn: () => fetch('/api/hello').then((r) => r.json()),
|
|
1945
1947
|
});
|
|
1946
1948
|
|
|
@@ -1955,7 +1957,7 @@ export default function Home() {
|
|
|
1955
1957
|
</div>
|
|
1956
1958
|
|
|
1957
1959
|
<div className="flex items-center gap-3 py-2">
|
|
1958
|
-
<Logo className="w-10 h-auto
|
|
1960
|
+
<Logo className="w-10 h-auto" />
|
|
1959
1961
|
<div>
|
|
1960
1962
|
<h1 className="text-4xl font-black tracking-tight"><%= projectName %></h1>
|
|
1961
1963
|
<p className="text-sm text-muted-foreground tracking-widest uppercase">
|
|
@@ -1966,9 +1968,9 @@ export default function Home() {
|
|
|
1966
1968
|
|
|
1967
1969
|
<Card>
|
|
1968
1970
|
<CardHeader>
|
|
1969
|
-
<
|
|
1971
|
+
<p className="text-xs font-mono uppercase tracking-widest text-muted-foreground">
|
|
1970
1972
|
next.js
|
|
1971
|
-
</
|
|
1973
|
+
</p>
|
|
1972
1974
|
</CardHeader>
|
|
1973
1975
|
<CardContent>
|
|
1974
1976
|
<p className="font-mono text-sm text-muted-foreground">apps/web/app/layout.tsx</p>
|
|
@@ -1978,9 +1980,9 @@ export default function Home() {
|
|
|
1978
1980
|
|
|
1979
1981
|
<Card>
|
|
1980
1982
|
<CardHeader>
|
|
1981
|
-
<
|
|
1983
|
+
<p className="text-xs font-mono uppercase tracking-widest text-muted-foreground">
|
|
1982
1984
|
nest.js
|
|
1983
|
-
</
|
|
1985
|
+
</p>
|
|
1984
1986
|
</CardHeader>
|
|
1985
1987
|
<CardContent>
|
|
1986
1988
|
<p className="font-mono text-sm text-muted-foreground">GET /api/hello</p>
|
|
@@ -1992,9 +1994,9 @@ export default function Home() {
|
|
|
1992
1994
|
|
|
1993
1995
|
<Card>
|
|
1994
1996
|
<CardHeader>
|
|
1995
|
-
<
|
|
1997
|
+
<p className="text-xs font-mono uppercase tracking-widest text-muted-foreground">
|
|
1996
1998
|
better-auth
|
|
1997
|
-
</
|
|
1999
|
+
</p>
|
|
1998
2000
|
</CardHeader>
|
|
1999
2001
|
<CardContent>
|
|
2000
2002
|
{isPending ? (
|
|
@@ -2183,8 +2185,7 @@ export function AuthForm() {
|
|
|
2183
2185
|
{
|
|
2184
2186
|
filename: "packages/ui/src/components/accordion.tsx",
|
|
2185
2187
|
template: `import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion"
|
|
2186
|
-
|
|
2187
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2188
|
+
import { cn } from "cn"
|
|
2188
2189
|
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"
|
|
2189
2190
|
|
|
2190
2191
|
function Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {
|
|
@@ -2262,8 +2263,8 @@ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
|
|
|
2262
2263
|
|
|
2263
2264
|
import * as React from "react"
|
|
2264
2265
|
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog"
|
|
2266
|
+
import { cn } from "cn"
|
|
2265
2267
|
|
|
2266
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2267
2268
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
2268
2269
|
|
|
2269
2270
|
function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {
|
|
@@ -2451,8 +2452,7 @@ export {
|
|
|
2451
2452
|
filename: "packages/ui/src/components/alert.tsx",
|
|
2452
2453
|
template: `import * as React from "react"
|
|
2453
2454
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
2454
|
-
|
|
2455
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2455
|
+
import { cn } from "cn"
|
|
2456
2456
|
|
|
2457
2457
|
const alertVariants = cva(
|
|
2458
2458
|
"group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",
|
|
@@ -2529,7 +2529,7 @@ export { Alert, AlertTitle, AlertDescription, AlertAction }
|
|
|
2529
2529
|
},
|
|
2530
2530
|
{
|
|
2531
2531
|
filename: "packages/ui/src/components/aspect-ratio.tsx",
|
|
2532
|
-
template: `import { cn } from "
|
|
2532
|
+
template: `import { cn } from "cn"
|
|
2533
2533
|
|
|
2534
2534
|
function AspectRatio({
|
|
2535
2535
|
ratio,
|
|
@@ -2559,8 +2559,7 @@ export { AspectRatio }
|
|
|
2559
2559
|
|
|
2560
2560
|
import * as React from "react"
|
|
2561
2561
|
import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar"
|
|
2562
|
-
|
|
2563
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2562
|
+
import { cn } from "cn"
|
|
2564
2563
|
|
|
2565
2564
|
function Avatar({
|
|
2566
2565
|
className,
|
|
@@ -2671,8 +2670,7 @@ export {
|
|
|
2671
2670
|
template: `import { mergeProps } from "@base-ui/react/merge-props"
|
|
2672
2671
|
import { useRender } from "@base-ui/react/use-render"
|
|
2673
2672
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
2674
|
-
|
|
2675
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2673
|
+
import { cn } from "cn"
|
|
2676
2674
|
|
|
2677
2675
|
const badgeVariants = cva(
|
|
2678
2676
|
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",
|
|
@@ -2727,8 +2725,7 @@ export { Badge, badgeVariants }
|
|
|
2727
2725
|
template: `import * as React from "react"
|
|
2728
2726
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
2729
2727
|
import { useRender } from "@base-ui/react/use-render"
|
|
2730
|
-
|
|
2731
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2728
|
+
import { cn } from "cn"
|
|
2732
2729
|
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
2733
2730
|
|
|
2734
2731
|
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
|
|
@@ -2855,8 +2852,7 @@ export {
|
|
|
2855
2852
|
filename: "packages/ui/src/components/button.tsx",
|
|
2856
2853
|
template: `import { Button as ButtonPrimitive } from "@base-ui/react/button"
|
|
2857
2854
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
2858
|
-
|
|
2859
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2855
|
+
import { cn } from "cn"
|
|
2860
2856
|
|
|
2861
2857
|
const buttonVariants = cva(
|
|
2862
2858
|
"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -2918,6 +2914,7 @@ export { Button, buttonVariants }
|
|
|
2918
2914
|
template: `"use client"
|
|
2919
2915
|
|
|
2920
2916
|
import * as React from "react"
|
|
2917
|
+
import { cn } from "cn"
|
|
2921
2918
|
import {
|
|
2922
2919
|
DayPicker,
|
|
2923
2920
|
getDefaultClassNames,
|
|
@@ -2925,7 +2922,6 @@ import {
|
|
|
2925
2922
|
type Locale,
|
|
2926
2923
|
} from "react-day-picker"
|
|
2927
2924
|
|
|
2928
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
2929
2925
|
import { Button, buttonVariants } from "@<%= projectName %>/ui/components/button"
|
|
2930
2926
|
import { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from "lucide-react"
|
|
2931
2927
|
|
|
@@ -3141,8 +3137,7 @@ export { Calendar, CalendarDayButton }
|
|
|
3141
3137
|
{
|
|
3142
3138
|
filename: "packages/ui/src/components/card.tsx",
|
|
3143
3139
|
template: `import * as React from "react"
|
|
3144
|
-
|
|
3145
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
3140
|
+
import { cn } from "cn"
|
|
3146
3141
|
|
|
3147
3142
|
function Card({
|
|
3148
3143
|
className,
|
|
@@ -3250,11 +3245,11 @@ export {
|
|
|
3250
3245
|
template: `"use client"
|
|
3251
3246
|
|
|
3252
3247
|
import * as React from "react"
|
|
3248
|
+
import { cn } from "cn"
|
|
3253
3249
|
import useEmblaCarousel, {
|
|
3254
3250
|
type UseEmblaCarouselType,
|
|
3255
3251
|
} from "embla-carousel-react"
|
|
3256
3252
|
|
|
3257
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
3258
3253
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
3259
3254
|
import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"
|
|
3260
3255
|
|
|
@@ -3496,11 +3491,10 @@ export {
|
|
|
3496
3491
|
template: `"use client"
|
|
3497
3492
|
|
|
3498
3493
|
import * as React from "react"
|
|
3494
|
+
import { cn } from "cn"
|
|
3499
3495
|
import * as RechartsPrimitive from "recharts"
|
|
3500
3496
|
import type { TooltipValueType } from "recharts"
|
|
3501
3497
|
|
|
3502
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
3503
|
-
|
|
3504
3498
|
// Format: { THEME_NAME: CSS_SELECTOR }
|
|
3505
3499
|
const THEMES = { light: "", dark: ".dark" } as const
|
|
3506
3500
|
|
|
@@ -3873,8 +3867,7 @@ export {
|
|
|
3873
3867
|
template: `"use client"
|
|
3874
3868
|
|
|
3875
3869
|
import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox"
|
|
3876
|
-
|
|
3877
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
3870
|
+
import { cn } from "cn"
|
|
3878
3871
|
import { CheckIcon } from "lucide-react"
|
|
3879
3872
|
|
|
3880
3873
|
function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
|
|
@@ -3932,8 +3925,8 @@ export { Collapsible, CollapsibleTrigger, CollapsibleContent }
|
|
|
3932
3925
|
|
|
3933
3926
|
import * as React from "react"
|
|
3934
3927
|
import { Command as CommandPrimitive } from "cmdk"
|
|
3928
|
+
import { cn } from "cn"
|
|
3935
3929
|
|
|
3936
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
3937
3930
|
import {
|
|
3938
3931
|
Dialog,
|
|
3939
3932
|
DialogContent,
|
|
@@ -4132,8 +4125,8 @@ export {
|
|
|
4132
4125
|
|
|
4133
4126
|
import * as React from "react"
|
|
4134
4127
|
import { Combobox as ComboboxPrimitive } from "@base-ui/react"
|
|
4128
|
+
import { cn } from "cn"
|
|
4135
4129
|
|
|
4136
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
4137
4130
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
4138
4131
|
import {
|
|
4139
4132
|
InputGroup,
|
|
@@ -4433,8 +4426,7 @@ export {
|
|
|
4433
4426
|
|
|
4434
4427
|
import * as React from "react"
|
|
4435
4428
|
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu"
|
|
4436
|
-
|
|
4437
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
4429
|
+
import { cn } from "cn"
|
|
4438
4430
|
import { ChevronRightIcon, CheckIcon } from "lucide-react"
|
|
4439
4431
|
|
|
4440
4432
|
function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {
|
|
@@ -4708,8 +4700,8 @@ export {
|
|
|
4708
4700
|
|
|
4709
4701
|
import * as React from "react"
|
|
4710
4702
|
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
|
|
4703
|
+
import { cn } from "cn"
|
|
4711
4704
|
|
|
4712
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
4713
4705
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
4714
4706
|
import { XIcon } from "lucide-react"
|
|
4715
4707
|
|
|
@@ -4882,8 +4874,7 @@ export {
|
|
|
4882
4874
|
|
|
4883
4875
|
import * as React from "react"
|
|
4884
4876
|
import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer"
|
|
4885
|
-
|
|
4886
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
4877
|
+
import { cn } from "cn"
|
|
4887
4878
|
|
|
4888
4879
|
type DrawerContextProps = {
|
|
4889
4880
|
hasSnapPoints: boolean
|
|
@@ -5114,8 +5105,7 @@ export {
|
|
|
5114
5105
|
|
|
5115
5106
|
import * as React from "react"
|
|
5116
5107
|
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
|
|
5117
|
-
|
|
5118
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
5108
|
+
import { cn } from "cn"
|
|
5119
5109
|
import { ChevronRightIcon, CheckIcon } from "lucide-react"
|
|
5120
5110
|
|
|
5121
5111
|
function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
|
|
@@ -5383,8 +5373,7 @@ export {
|
|
|
5383
5373
|
{
|
|
5384
5374
|
filename: "packages/ui/src/components/empty.tsx",
|
|
5385
5375
|
template: `import { cva, type VariantProps } from "class-variance-authority"
|
|
5386
|
-
|
|
5387
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
5376
|
+
import { cn } from "cn"
|
|
5388
5377
|
|
|
5389
5378
|
function Empty({ className, ...props }: React.ComponentProps<"div">) {
|
|
5390
5379
|
return (
|
|
@@ -5494,8 +5483,8 @@ export {
|
|
|
5494
5483
|
|
|
5495
5484
|
import { useMemo } from "react"
|
|
5496
5485
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
5486
|
+
import { cn } from "cn"
|
|
5497
5487
|
|
|
5498
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
5499
5488
|
import { Label } from "@<%= projectName %>/ui/components/label"
|
|
5500
5489
|
import { Separator } from "@<%= projectName %>/ui/components/separator"
|
|
5501
5490
|
|
|
@@ -5735,8 +5724,7 @@ export {
|
|
|
5735
5724
|
template: `"use client"
|
|
5736
5725
|
|
|
5737
5726
|
import { PreviewCard as PreviewCardPrimitive } from "@base-ui/react/preview-card"
|
|
5738
|
-
|
|
5739
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
5727
|
+
import { cn } from "cn"
|
|
5740
5728
|
|
|
5741
5729
|
function HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {
|
|
5742
5730
|
return <PreviewCardPrimitive.Root data-slot="hover-card" {...props} />
|
|
@@ -5790,8 +5778,8 @@ export { HoverCard, HoverCardTrigger, HoverCardContent }
|
|
|
5790
5778
|
template: `import { mergeProps } from "@base-ui/react/merge-props"
|
|
5791
5779
|
import { useRender } from "@base-ui/react/use-render"
|
|
5792
5780
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
5781
|
+
import { cn } from "cn"
|
|
5793
5782
|
|
|
5794
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
5795
5783
|
import { Separator } from "@<%= projectName %>/ui/components/separator"
|
|
5796
5784
|
|
|
5797
5785
|
const buttonGroupVariants = cva(
|
|
@@ -5882,8 +5870,8 @@ export {
|
|
|
5882
5870
|
|
|
5883
5871
|
import * as React from "react"
|
|
5884
5872
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
5873
|
+
import { cn } from "cn"
|
|
5885
5874
|
|
|
5886
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
5887
5875
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
5888
5876
|
import { Input } from "@<%= projectName %>/ui/components/input"
|
|
5889
5877
|
import { Textarea } from "@<%= projectName %>/ui/components/textarea"
|
|
@@ -6044,8 +6032,8 @@ export {
|
|
|
6044
6032
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
6045
6033
|
import { useRender } from "@base-ui/react/use-render"
|
|
6046
6034
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
6035
|
+
import { cn } from "cn"
|
|
6047
6036
|
|
|
6048
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6049
6037
|
import { Separator } from "@<%= projectName %>/ui/components/separator"
|
|
6050
6038
|
|
|
6051
6039
|
function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
@@ -6245,7 +6233,7 @@ export {
|
|
|
6245
6233
|
},
|
|
6246
6234
|
{
|
|
6247
6235
|
filename: "packages/ui/src/components/kbd.tsx",
|
|
6248
|
-
template: `import { cn } from "
|
|
6236
|
+
template: `import { cn } from "cn"
|
|
6249
6237
|
|
|
6250
6238
|
function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
|
|
6251
6239
|
return (
|
|
@@ -6276,8 +6264,7 @@ export { Kbd, KbdGroup }
|
|
|
6276
6264
|
{
|
|
6277
6265
|
filename: "packages/ui/src/components/native-select.tsx",
|
|
6278
6266
|
template: `import * as React from "react"
|
|
6279
|
-
|
|
6280
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6267
|
+
import { cn } from "cn"
|
|
6281
6268
|
import { ChevronDownIcon } from "lucide-react"
|
|
6282
6269
|
|
|
6283
6270
|
type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
|
|
@@ -6340,7 +6327,7 @@ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption }
|
|
|
6340
6327
|
},
|
|
6341
6328
|
{
|
|
6342
6329
|
filename: "packages/ui/src/components/spinner.tsx",
|
|
6343
|
-
template: `import { cn } from "
|
|
6330
|
+
template: `import { cn } from "cn"
|
|
6344
6331
|
import { Loader2Icon } from "lucide-react"
|
|
6345
6332
|
|
|
6346
6333
|
function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
|
|
@@ -6357,9 +6344,8 @@ export { Spinner }
|
|
|
6357
6344
|
template: `"use client"
|
|
6358
6345
|
|
|
6359
6346
|
import * as React from "react"
|
|
6347
|
+
import { cn } from "cn"
|
|
6360
6348
|
import { OTPInput, OTPInputContext } from "input-otp"
|
|
6361
|
-
|
|
6362
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6363
6349
|
import { MinusIcon } from "lucide-react"
|
|
6364
6350
|
|
|
6365
6351
|
function InputOTP({
|
|
@@ -6447,8 +6433,7 @@ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }
|
|
|
6447
6433
|
filename: "packages/ui/src/components/input.tsx",
|
|
6448
6434
|
template: `import * as React from "react"
|
|
6449
6435
|
import { Input as InputPrimitive } from "@base-ui/react/input"
|
|
6450
|
-
|
|
6451
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6436
|
+
import { cn } from "cn"
|
|
6452
6437
|
|
|
6453
6438
|
function Input({ className, type, ...props }: React.ComponentProps<"input">) {
|
|
6454
6439
|
return (
|
|
@@ -6472,8 +6457,7 @@ export { Input }
|
|
|
6472
6457
|
template: `"use client"
|
|
6473
6458
|
|
|
6474
6459
|
import * as React from "react"
|
|
6475
|
-
|
|
6476
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6460
|
+
import { cn } from "cn"
|
|
6477
6461
|
|
|
6478
6462
|
function Label({ className, ...props }: React.ComponentProps<"label">) {
|
|
6479
6463
|
return (
|
|
@@ -6498,8 +6482,8 @@ export { Label }
|
|
|
6498
6482
|
import * as React from "react"
|
|
6499
6483
|
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
|
|
6500
6484
|
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar"
|
|
6485
|
+
import { cn } from "cn"
|
|
6501
6486
|
|
|
6502
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6503
6487
|
import {
|
|
6504
6488
|
DropdownMenu,
|
|
6505
6489
|
DropdownMenuContent,
|
|
@@ -6779,8 +6763,7 @@ export {
|
|
|
6779
6763
|
filename: "packages/ui/src/components/navigation-menu.tsx",
|
|
6780
6764
|
template: `import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu"
|
|
6781
6765
|
import { cva } from "class-variance-authority"
|
|
6782
|
-
|
|
6783
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6766
|
+
import { cn } from "cn"
|
|
6784
6767
|
import { ChevronDownIcon } from "lucide-react"
|
|
6785
6768
|
|
|
6786
6769
|
function NavigationMenu({
|
|
@@ -6950,8 +6933,8 @@ export {
|
|
|
6950
6933
|
{
|
|
6951
6934
|
filename: "packages/ui/src/components/pagination.tsx",
|
|
6952
6935
|
template: `import * as React from "react"
|
|
6936
|
+
import { cn } from "cn"
|
|
6953
6937
|
|
|
6954
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
6955
6938
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
6956
6939
|
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
6957
6940
|
|
|
@@ -7087,8 +7070,7 @@ export {
|
|
|
7087
7070
|
|
|
7088
7071
|
import * as React from "react"
|
|
7089
7072
|
import { Popover as PopoverPrimitive } from "@base-ui/react/popover"
|
|
7090
|
-
|
|
7091
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7073
|
+
import { cn } from "cn"
|
|
7092
7074
|
|
|
7093
7075
|
function Popover({ ...props }: PopoverPrimitive.Root.Props) {
|
|
7094
7076
|
return <PopoverPrimitive.Root data-slot="popover" {...props} />
|
|
@@ -7180,8 +7162,7 @@ export {
|
|
|
7180
7162
|
template: `"use client"
|
|
7181
7163
|
|
|
7182
7164
|
import { Progress as ProgressPrimitive } from "@base-ui/react/progress"
|
|
7183
|
-
|
|
7184
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7165
|
+
import { cn } from "cn"
|
|
7185
7166
|
|
|
7186
7167
|
function Progress({
|
|
7187
7168
|
className,
|
|
@@ -7268,8 +7249,7 @@ export {
|
|
|
7268
7249
|
|
|
7269
7250
|
import { Radio as RadioPrimitive } from "@base-ui/react/radio"
|
|
7270
7251
|
import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group"
|
|
7271
|
-
|
|
7272
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7252
|
+
import { cn } from "cn"
|
|
7273
7253
|
|
|
7274
7254
|
function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {
|
|
7275
7255
|
return (
|
|
@@ -7308,10 +7288,9 @@ export { RadioGroup, RadioGroupItem }
|
|
|
7308
7288
|
filename: "packages/ui/src/components/resizable.tsx",
|
|
7309
7289
|
template: `"use client"
|
|
7310
7290
|
|
|
7291
|
+
import { cn } from "cn"
|
|
7311
7292
|
import * as ResizablePrimitive from "react-resizable-panels"
|
|
7312
7293
|
|
|
7313
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7314
|
-
|
|
7315
7294
|
function ResizablePanelGroup({
|
|
7316
7295
|
className,
|
|
7317
7296
|
...props
|
|
@@ -7364,8 +7343,7 @@ export { ResizableHandle, ResizablePanel, ResizablePanelGroup }
|
|
|
7364
7343
|
|
|
7365
7344
|
import * as React from "react"
|
|
7366
7345
|
import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area"
|
|
7367
|
-
|
|
7368
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7346
|
+
import { cn } from "cn"
|
|
7369
7347
|
|
|
7370
7348
|
function ScrollArea({
|
|
7371
7349
|
className,
|
|
@@ -7423,8 +7401,7 @@ export { ScrollArea, ScrollBar }
|
|
|
7423
7401
|
|
|
7424
7402
|
import * as React from "react"
|
|
7425
7403
|
import { Select as SelectPrimitive } from "@base-ui/react/select"
|
|
7426
|
-
|
|
7427
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7404
|
+
import { cn } from "cn"
|
|
7428
7405
|
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"
|
|
7429
7406
|
|
|
7430
7407
|
const Select = SelectPrimitive.Root
|
|
@@ -7627,8 +7604,7 @@ export {
|
|
|
7627
7604
|
template: `"use client"
|
|
7628
7605
|
|
|
7629
7606
|
import { Separator as SeparatorPrimitive } from "@base-ui/react/separator"
|
|
7630
|
-
|
|
7631
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7607
|
+
import { cn } from "cn"
|
|
7632
7608
|
|
|
7633
7609
|
function Separator({
|
|
7634
7610
|
className,
|
|
@@ -7657,8 +7633,8 @@ export { Separator }
|
|
|
7657
7633
|
|
|
7658
7634
|
import * as React from "react"
|
|
7659
7635
|
import { Dialog as SheetPrimitive } from "@base-ui/react/dialog"
|
|
7636
|
+
import { cn } from "cn"
|
|
7660
7637
|
|
|
7661
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7662
7638
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
7663
7639
|
import { XIcon } from "lucide-react"
|
|
7664
7640
|
|
|
@@ -7801,9 +7777,9 @@ import * as React from "react"
|
|
|
7801
7777
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
7802
7778
|
import { useRender } from "@base-ui/react/use-render"
|
|
7803
7779
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
7780
|
+
import { cn } from "cn"
|
|
7804
7781
|
|
|
7805
7782
|
import { useIsMobile } from "@<%= projectName %>/ui/hooks/use-mobile"
|
|
7806
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
7807
7783
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
7808
7784
|
import { Input } from "@<%= projectName %>/ui/components/input"
|
|
7809
7785
|
import { Separator } from "@<%= projectName %>/ui/components/separator"
|
|
@@ -8522,7 +8498,7 @@ export {
|
|
|
8522
8498
|
},
|
|
8523
8499
|
{
|
|
8524
8500
|
filename: "packages/ui/src/components/skeleton.tsx",
|
|
8525
|
-
template: `import { cn } from "
|
|
8501
|
+
template: `import { cn } from "cn"
|
|
8526
8502
|
|
|
8527
8503
|
function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
|
|
8528
8504
|
return (
|
|
@@ -8540,8 +8516,7 @@ export { Skeleton }
|
|
|
8540
8516
|
{
|
|
8541
8517
|
filename: "packages/ui/src/components/slider.tsx",
|
|
8542
8518
|
template: `import { Slider as SliderPrimitive } from "@base-ui/react/slider"
|
|
8543
|
-
|
|
8544
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8519
|
+
import { cn } from "cn"
|
|
8545
8520
|
|
|
8546
8521
|
function Slider({
|
|
8547
8522
|
className,
|
|
@@ -8651,8 +8626,7 @@ export { Toaster }
|
|
|
8651
8626
|
template: `"use client"
|
|
8652
8627
|
|
|
8653
8628
|
import { Switch as SwitchPrimitive } from "@base-ui/react/switch"
|
|
8654
|
-
|
|
8655
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8629
|
+
import { cn } from "cn"
|
|
8656
8630
|
|
|
8657
8631
|
function Switch({
|
|
8658
8632
|
className,
|
|
@@ -8687,8 +8661,7 @@ export { Switch }
|
|
|
8687
8661
|
template: `"use client"
|
|
8688
8662
|
|
|
8689
8663
|
import * as React from "react"
|
|
8690
|
-
|
|
8691
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8664
|
+
import { cn } from "cn"
|
|
8692
8665
|
|
|
8693
8666
|
function Table({ className, ...props }: React.ComponentProps<"table">) {
|
|
8694
8667
|
return (
|
|
@@ -8808,8 +8781,7 @@ export {
|
|
|
8808
8781
|
|
|
8809
8782
|
import { Tabs as TabsPrimitive } from "@base-ui/react/tabs"
|
|
8810
8783
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
8811
|
-
|
|
8812
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8784
|
+
import { cn } from "cn"
|
|
8813
8785
|
|
|
8814
8786
|
function Tabs({
|
|
8815
8787
|
className,
|
|
@@ -8891,8 +8863,7 @@ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }
|
|
|
8891
8863
|
{
|
|
8892
8864
|
filename: "packages/ui/src/components/textarea.tsx",
|
|
8893
8865
|
template: `import * as React from "react"
|
|
8894
|
-
|
|
8895
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8866
|
+
import { cn } from "cn"
|
|
8896
8867
|
|
|
8897
8868
|
function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
|
|
8898
8869
|
return (
|
|
@@ -8918,8 +8889,8 @@ import * as React from "react"
|
|
|
8918
8889
|
import { Toggle as TogglePrimitive } from "@base-ui/react/toggle"
|
|
8919
8890
|
import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group"
|
|
8920
8891
|
import { type VariantProps } from "class-variance-authority"
|
|
8892
|
+
import { cn } from "cn"
|
|
8921
8893
|
|
|
8922
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8923
8894
|
import { toggleVariants } from "@<%= projectName %>/ui/components/toggle"
|
|
8924
8895
|
|
|
8925
8896
|
const ToggleGroupContext = React.createContext<
|
|
@@ -9009,8 +8980,7 @@ export { ToggleGroup, ToggleGroupItem }
|
|
|
9009
8980
|
|
|
9010
8981
|
import { Toggle as TogglePrimitive } from "@base-ui/react/toggle"
|
|
9011
8982
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
9012
|
-
|
|
9013
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
8983
|
+
import { cn } from "cn"
|
|
9014
8984
|
|
|
9015
8985
|
const toggleVariants = cva(
|
|
9016
8986
|
"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -9057,8 +9027,7 @@ export { Toggle, toggleVariants }
|
|
|
9057
9027
|
template: `"use client"
|
|
9058
9028
|
|
|
9059
9029
|
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip"
|
|
9060
|
-
|
|
9061
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9030
|
+
import { cn } from "cn"
|
|
9062
9031
|
|
|
9063
9032
|
function TooltipProvider({
|
|
9064
9033
|
delay = 0,
|
|
@@ -9153,8 +9122,8 @@ export function ModeToggle() {
|
|
|
9153
9122
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
9154
9123
|
import { useRender } from "@base-ui/react/use-render"
|
|
9155
9124
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
9125
|
+
import { cn } from "cn"
|
|
9156
9126
|
|
|
9157
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9158
9127
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
9159
9128
|
|
|
9160
9129
|
const attachmentVariants = cva(
|
|
@@ -9364,8 +9333,7 @@ export {
|
|
|
9364
9333
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
9365
9334
|
import { useRender } from "@base-ui/react/use-render"
|
|
9366
9335
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
9367
|
-
|
|
9368
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9336
|
+
import { cn } from "cn"
|
|
9369
9337
|
|
|
9370
9338
|
function BubbleGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
9371
9339
|
return (
|
|
@@ -9496,8 +9464,7 @@ export { BubbleGroup, Bubble, BubbleContent, BubbleReactions }
|
|
|
9496
9464
|
import { mergeProps } from "@base-ui/react/merge-props"
|
|
9497
9465
|
import { useRender } from "@base-ui/react/use-render"
|
|
9498
9466
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
9499
|
-
|
|
9500
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9467
|
+
import { cn } from "cn"
|
|
9501
9468
|
|
|
9502
9469
|
const markerVariants = cva(
|
|
9503
9470
|
"group/marker relative flex min-h-4 w-full items-center gap-2 text-left text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [a]:underline [a]:underline-offset-3 [a]:hover:text-foreground",
|
|
@@ -9568,8 +9535,7 @@ export { Marker, MarkerIcon, MarkerContent, markerVariants }
|
|
|
9568
9535
|
{
|
|
9569
9536
|
filename: "packages/ui/src/components/message.tsx",
|
|
9570
9537
|
template: `import * as React from "react"
|
|
9571
|
-
|
|
9572
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9538
|
+
import { cn } from "cn"
|
|
9573
9539
|
|
|
9574
9540
|
function MessageGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
9575
9541
|
return (
|
|
@@ -9672,8 +9638,8 @@ import {
|
|
|
9672
9638
|
useMessageScrollerScrollable,
|
|
9673
9639
|
useMessageScrollerVisibility,
|
|
9674
9640
|
} from "@shadcn/react/message-scroller"
|
|
9641
|
+
import { cn } from "cn"
|
|
9675
9642
|
|
|
9676
|
-
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9677
9643
|
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
9678
9644
|
import { ArrowDownIcon } from "lucide-react"
|
|
9679
9645
|
|
|
@@ -9707,7 +9673,7 @@ function MessageScrollerViewport({
|
|
|
9707
9673
|
<MessageScrollerPrimitive.Viewport
|
|
9708
9674
|
data-slot="message-scroller-viewport"
|
|
9709
9675
|
className={cn(
|
|
9710
|
-
"size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent",
|
|
9676
|
+
"size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent data-pending-scroll:invisible",
|
|
9711
9677
|
className
|
|
9712
9678
|
)}
|
|
9713
9679
|
{...props}
|
|
@@ -10293,7 +10259,7 @@ export default function Home() {
|
|
|
10293
10259
|
const { data: session, isPending } = authClient.useSession();
|
|
10294
10260
|
|
|
10295
10261
|
const { data: hello } = useQuery({
|
|
10296
|
-
queryKey: ['hello'],
|
|
10262
|
+
queryKey: ['hello', session?.user.id],
|
|
10297
10263
|
queryFn: () => fetch('/api/hello').then((r) => r.json()),
|
|
10298
10264
|
});
|
|
10299
10265
|
|
|
@@ -10674,7 +10640,8 @@ var package_json_default$1 = {
|
|
|
10674
10640
|
},
|
|
10675
10641
|
"devDependencies": {
|
|
10676
10642
|
"@eslint/js": "<%= versions["@eslint/js"] %>",
|
|
10677
|
-
"@next/eslint-plugin-next": "<%= versions["@next/eslint-plugin-next"] %>"
|
|
10643
|
+
"@next/eslint-plugin-next": "<%= versions["@next/eslint-plugin-next"] %>",<% if (shadcn) { %>
|
|
10644
|
+
"@shadcn/lint": "<%= versions["@shadcn/lint"] %>",<% } %>
|
|
10678
10645
|
"eslint": "<%= versions.eslint %>",
|
|
10679
10646
|
"eslint-config-prettier": "<%= versions["eslint-config-prettier"] %>",
|
|
10680
10647
|
"eslint-plugin-only-warn": "<%= versions["eslint-plugin-only-warn"] %>",
|
|
@@ -10736,7 +10703,8 @@ import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
|
10736
10703
|
import pluginReact from "eslint-plugin-react";
|
|
10737
10704
|
import globals from "globals";
|
|
10738
10705
|
import pluginNext from "@next/eslint-plugin-next";
|
|
10739
|
-
import { config as baseConfig } from "./base.js"
|
|
10706
|
+
import { config as baseConfig } from "./base.js";<% if (shadcn) { %>
|
|
10707
|
+
import { plugin as shadcn } from "@shadcn/lint";<% } %>
|
|
10740
10708
|
|
|
10741
10709
|
/**
|
|
10742
10710
|
* A custom ESLint configuration for libraries that use Next.js.
|
|
@@ -10784,7 +10752,16 @@ export const nextJsConfig = [
|
|
|
10784
10752
|
// React scope no longer necessary with new JSX transform.
|
|
10785
10753
|
"react/react-in-jsx-scope": "off",
|
|
10786
10754
|
},
|
|
10787
|
-
}
|
|
10755
|
+
},<% if (shadcn) { %>
|
|
10756
|
+
{
|
|
10757
|
+
plugins: { shadcn },
|
|
10758
|
+
rules: {
|
|
10759
|
+
"shadcn/no-restyle": ["error", { allow: ["layout"] }],
|
|
10760
|
+
"shadcn/no-raw-colors": "error",
|
|
10761
|
+
"shadcn/no-arbitrary-values": ["error", { allow: ["layout"] }],
|
|
10762
|
+
"shadcn/require-static-classes": "error",
|
|
10763
|
+
},
|
|
10764
|
+
},<% } %>
|
|
10788
10765
|
];`
|
|
10789
10766
|
};
|
|
10790
10767
|
//#endregion
|
|
@@ -10797,7 +10774,8 @@ import tseslint from "typescript-eslint";
|
|
|
10797
10774
|
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
10798
10775
|
import pluginReact from "eslint-plugin-react";
|
|
10799
10776
|
import globals from "globals";
|
|
10800
|
-
import { config as baseConfig } from "./base.js"
|
|
10777
|
+
import { config as baseConfig } from "./base.js";<% if (shadcn) { %>
|
|
10778
|
+
import { plugin as shadcn } from "@shadcn/lint";<% } %>
|
|
10801
10779
|
|
|
10802
10780
|
/**
|
|
10803
10781
|
* A custom ESLint configuration for libraries that use React.
|
|
@@ -10829,7 +10807,24 @@ export const config = [
|
|
|
10829
10807
|
"react/react-in-jsx-scope": "off",
|
|
10830
10808
|
"react/prop-types": "off",
|
|
10831
10809
|
},
|
|
10810
|
+
},<% if (shadcn) { %>
|
|
10811
|
+
{
|
|
10812
|
+
plugins: { shadcn },
|
|
10813
|
+
rules: {
|
|
10814
|
+
"shadcn/no-restyle": ["error", { allow: ["layout"] }],
|
|
10815
|
+
"shadcn/no-raw-colors": "error",
|
|
10816
|
+
"shadcn/no-arbitrary-values": ["error", { allow: ["layout"] }],
|
|
10817
|
+
"shadcn/require-static-classes": "error",
|
|
10818
|
+
},
|
|
10832
10819
|
},
|
|
10820
|
+
{
|
|
10821
|
+
files: ["src/components/**"],
|
|
10822
|
+
rules: {
|
|
10823
|
+
"shadcn/no-restyle": "off",
|
|
10824
|
+
"shadcn/no-arbitrary-values": "off",
|
|
10825
|
+
"shadcn/require-static-classes": "off",
|
|
10826
|
+
},
|
|
10827
|
+
},<% } %>
|
|
10833
10828
|
];`
|
|
10834
10829
|
};
|
|
10835
10830
|
//#endregion
|
|
@@ -10897,6 +10892,13 @@ var prettierrc_default = {
|
|
|
10897
10892
|
template: `{}`
|
|
10898
10893
|
};
|
|
10899
10894
|
//#endregion
|
|
10895
|
+
//#region src/templates/root/templates/prettierignore.ts
|
|
10896
|
+
var prettierignore_default = {
|
|
10897
|
+
filename: ".prettierignore",
|
|
10898
|
+
template: `pnpm-lock.yaml
|
|
10899
|
+
`
|
|
10900
|
+
};
|
|
10901
|
+
//#endregion
|
|
10900
10902
|
//#region src/templates/eslint-config/index.ts
|
|
10901
10903
|
const web = "apps/web";
|
|
10902
10904
|
const api = "apps/api";
|
|
@@ -10911,7 +10913,8 @@ const eslintConfig = {
|
|
|
10911
10913
|
eslint_config_default$2,
|
|
10912
10914
|
eslint_config_default$1,
|
|
10913
10915
|
eslint_config_default,
|
|
10914
|
-
prettierrc_default
|
|
10916
|
+
prettierrc_default,
|
|
10917
|
+
prettierignore_default
|
|
10915
10918
|
],
|
|
10916
10919
|
packages: [
|
|
10917
10920
|
{
|
|
@@ -11032,9 +11035,9 @@ var oxlintrc_default = {
|
|
|
11032
11035
|
"categories": {
|
|
11033
11036
|
"correctness": "error"
|
|
11034
11037
|
}<% if (antiSlop) { %>,
|
|
11035
|
-
"ignorePatterns": ["tools/oxlint/anti-slop/**"]
|
|
11036
|
-
"jsPlugins": [{ "name": "anti-slop", "specifier": "./tools/oxlint/anti-slop/index.ts" }],
|
|
11037
|
-
"rules": {
|
|
11038
|
+
"ignorePatterns": ["tools/oxlint/anti-slop/**"]<% } %><% if (antiSlop || shadcn) { %>,
|
|
11039
|
+
"jsPlugins": [<% if (antiSlop) { %>{ "name": "anti-slop", "specifier": "./tools/oxlint/anti-slop/index.ts" }<% } %><% if (antiSlop && shadcn) { %>, <% } %><% if (shadcn) { %>"@shadcn/lint"<% } %>],
|
|
11040
|
+
"rules": {<% if (antiSlop) { %>
|
|
11038
11041
|
"anti-slop/no-chained-type-assertions": "error",
|
|
11039
11042
|
"anti-slop/no-conditional-empty-object-spread": "error",
|
|
11040
11043
|
"anti-slop/no-known-value-widening": "error",
|
|
@@ -11049,12 +11052,16 @@ var oxlintrc_default = {
|
|
|
11049
11052
|
"anti-slop/no-unknown-type-aliases": "error",
|
|
11050
11053
|
"anti-slop/no-unsafe-dictionary-type": "error",
|
|
11051
11054
|
"anti-slop/no-widen-then-assert": "error",
|
|
11052
|
-
"anti-slop/require-safety-comment-for-type-assertion": "error"
|
|
11053
|
-
|
|
11055
|
+
"anti-slop/require-safety-comment-for-type-assertion": "error"<% if (shadcn) { %>,<% } %><% } %><% if (shadcn) { %>
|
|
11056
|
+
"shadcn/no-restyle": ["error", { "allow": ["layout"] }],
|
|
11057
|
+
"shadcn/no-raw-colors": "error",
|
|
11058
|
+
"shadcn/no-arbitrary-values": ["error", { "allow": ["layout"] }],
|
|
11059
|
+
"shadcn/require-static-classes": "error"<% } %>
|
|
11060
|
+
}<% } %><% if (shadcn) { %>,
|
|
11054
11061
|
"overrides": [
|
|
11055
11062
|
{
|
|
11056
11063
|
"files": ["packages/ui/src/components/**"],
|
|
11057
|
-
"rules": {
|
|
11064
|
+
"rules": {<% if (antiSlop) { %>
|
|
11058
11065
|
"anti-slop/no-chained-type-assertions": "off",
|
|
11059
11066
|
"anti-slop/no-conditional-empty-object-spread": "off",
|
|
11060
11067
|
"anti-slop/no-known-value-widening": "off",
|
|
@@ -11069,10 +11076,13 @@ var oxlintrc_default = {
|
|
|
11069
11076
|
"anti-slop/no-unknown-type-aliases": "off",
|
|
11070
11077
|
"anti-slop/no-unsafe-dictionary-type": "off",
|
|
11071
11078
|
"anti-slop/no-widen-then-assert": "off",
|
|
11072
|
-
"anti-slop/require-safety-comment-for-type-assertion": "off"
|
|
11079
|
+
"anti-slop/require-safety-comment-for-type-assertion": "off",<% } %>
|
|
11080
|
+
"shadcn/no-restyle": "off",
|
|
11081
|
+
"shadcn/no-arbitrary-values": "off",
|
|
11082
|
+
"shadcn/require-static-classes": "off"
|
|
11073
11083
|
}
|
|
11074
11084
|
}
|
|
11075
|
-
]<% }
|
|
11085
|
+
]<% } %>
|
|
11076
11086
|
}`
|
|
11077
11087
|
};
|
|
11078
11088
|
//#endregion
|
|
@@ -12814,7 +12824,7 @@ export default function Home() {
|
|
|
12814
12824
|
const { data: session, isPending } = authClient.useSession();
|
|
12815
12825
|
|
|
12816
12826
|
const { data: hello } = useQuery({
|
|
12817
|
-
queryKey: ['hello'],
|
|
12827
|
+
queryKey: ['hello', session?.user.id],
|
|
12818
12828
|
queryFn: () => fetch('/api/hello').then((r) => r.json()),
|
|
12819
12829
|
});
|
|
12820
12830
|
|
|
@@ -13010,9 +13020,8 @@ export function TodoList({
|
|
|
13010
13020
|
</span>
|
|
13011
13021
|
<Button
|
|
13012
13022
|
variant="ghost"
|
|
13013
|
-
size="sm"
|
|
13023
|
+
size="icon-sm"
|
|
13014
13024
|
onClick={() => deleteMutation.mutate(todo.id)}
|
|
13015
|
-
className="text-muted-foreground hover:text-destructive h-7 w-7 p-0"
|
|
13016
13025
|
>
|
|
13017
13026
|
×
|
|
13018
13027
|
</Button>
|
|
@@ -13042,13 +13051,13 @@ import { Link } from '@<%= projectName %>/ui/link';
|
|
|
13042
13051
|
import { Logo } from '@<%= projectName %>/ui/logo';
|
|
13043
13052
|
import { TodoList } from '@/app/todo-list';
|
|
13044
13053
|
import { ModeToggle } from '@<%= projectName %>/ui/mode-toggle';
|
|
13045
|
-
import { Card, CardContent, CardHeader
|
|
13054
|
+
import { Card, CardContent, CardHeader } from '@<%= projectName %>/ui/card';
|
|
13046
13055
|
|
|
13047
13056
|
export default function Home() {
|
|
13048
13057
|
const { data: session, isPending } = authClient.useSession();
|
|
13049
13058
|
|
|
13050
13059
|
const { data: hello } = useQuery({
|
|
13051
|
-
queryKey: ['hello'],
|
|
13060
|
+
queryKey: ['hello', session?.user.id],
|
|
13052
13061
|
queryFn: () => fetch('/api/hello').then((r) => r.json()),
|
|
13053
13062
|
});
|
|
13054
13063
|
|
|
@@ -13063,7 +13072,7 @@ export default function Home() {
|
|
|
13063
13072
|
</div>
|
|
13064
13073
|
|
|
13065
13074
|
<div className="flex items-center gap-3 py-2">
|
|
13066
|
-
<Logo className="w-10 h-auto
|
|
13075
|
+
<Logo className="w-10 h-auto" />
|
|
13067
13076
|
<div>
|
|
13068
13077
|
<h1 className="text-4xl font-black tracking-tight"><%= projectName %></h1>
|
|
13069
13078
|
<p className="text-sm text-muted-foreground tracking-widest uppercase">
|
|
@@ -13074,9 +13083,9 @@ export default function Home() {
|
|
|
13074
13083
|
|
|
13075
13084
|
<Card>
|
|
13076
13085
|
<CardHeader>
|
|
13077
|
-
<
|
|
13086
|
+
<p className="text-xs font-mono uppercase tracking-widest text-muted-foreground">
|
|
13078
13087
|
next.js
|
|
13079
|
-
</
|
|
13088
|
+
</p>
|
|
13080
13089
|
</CardHeader>
|
|
13081
13090
|
<CardContent>
|
|
13082
13091
|
<p className="font-mono text-sm text-muted-foreground">apps/web/app/layout.tsx</p>
|
|
@@ -13086,9 +13095,9 @@ export default function Home() {
|
|
|
13086
13095
|
|
|
13087
13096
|
<Card>
|
|
13088
13097
|
<CardHeader>
|
|
13089
|
-
<
|
|
13098
|
+
<p className="text-xs font-mono uppercase tracking-widest text-muted-foreground">
|
|
13090
13099
|
nest.js
|
|
13091
|
-
</
|
|
13100
|
+
</p>
|
|
13092
13101
|
</CardHeader>
|
|
13093
13102
|
<CardContent>
|
|
13094
13103
|
<p className="font-mono text-sm text-muted-foreground">GET /api/hello</p>
|
|
@@ -13100,9 +13109,9 @@ export default function Home() {
|
|
|
13100
13109
|
|
|
13101
13110
|
<Card>
|
|
13102
13111
|
<CardHeader>
|
|
13103
|
-
<
|
|
13112
|
+
<p className="text-xs font-mono uppercase tracking-widest text-muted-foreground">
|
|
13104
13113
|
better-auth
|
|
13105
|
-
</
|
|
13114
|
+
</p>
|
|
13106
13115
|
</CardHeader>
|
|
13107
13116
|
<CardContent>
|
|
13108
13117
|
{isPending ? (
|
|
@@ -13396,7 +13405,7 @@ export default function Home() {
|
|
|
13396
13405
|
const { data: session, isPending } = authClient.useSession();
|
|
13397
13406
|
|
|
13398
13407
|
const { data: hello } = useQuery({
|
|
13399
|
-
queryKey: ['hello'],
|
|
13408
|
+
queryKey: ['hello', session?.user.id],
|
|
13400
13409
|
queryFn: () => fetch('/api/hello').then((r) => r.json()),
|
|
13401
13410
|
});
|
|
13402
13411
|
|