@lucaismyname/create-l1-stack 0.0.2 → 0.0.3
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 +6 -7
- package/src/index.js +80 -28
- package/templates/l1-stack-js/README.md +0 -16
- package/templates/l1-stack-js/components.json +0 -22
- package/templates/l1-stack-js/eslint.config.js +0 -29
- package/templates/l1-stack-js/index.html +0 -13
- package/templates/l1-stack-js/jsconfig.json +0 -9
- package/templates/l1-stack-js/package.json +0 -42
- package/templates/l1-stack-js/postcss.config.js +0 -5
- package/templates/l1-stack-js/public/vite.svg +0 -1
- package/templates/l1-stack-js/src/App.css +0 -42
- package/templates/l1-stack-js/src/App.jsx +0 -21
- package/templates/l1-stack-js/src/assets/react.svg +0 -1
- package/templates/l1-stack-js/src/components/TopNav.jsx +0 -28
- package/templates/l1-stack-js/src/components/ui/button.jsx +0 -48
- package/templates/l1-stack-js/src/components/ui/card.jsx +0 -50
- package/templates/l1-stack-js/src/components/ui/input.jsx +0 -19
- package/templates/l1-stack-js/src/components/ui/label.jsx +0 -16
- package/templates/l1-stack-js/src/index.css +0 -134
- package/templates/l1-stack-js/src/lib/mysql.js +0 -5
- package/templates/l1-stack-js/src/lib/notion.js +0 -7
- package/templates/l1-stack-js/src/lib/strapi.js +0 -6
- package/templates/l1-stack-js/src/lib/utils.js +0 -6
- package/templates/l1-stack-js/src/main.jsx +0 -13
- package/templates/l1-stack-js/src/pages/Home.jsx +0 -47
- package/templates/l1-stack-js/src/pages/Integrations.jsx +0 -65
- package/templates/l1-stack-js/tailwind.config.js +0 -8
- package/templates/l1-stack-js/tailwind.config.ts +0 -9
- package/templates/l1-stack-js/vite.config.js +0 -13
- package/templates/l1-stack-ts/README.md +0 -73
- package/templates/l1-stack-ts/components.json +0 -22
- package/templates/l1-stack-ts/eslint.config.js +0 -23
- package/templates/l1-stack-ts/index.html +0 -13
- package/templates/l1-stack-ts/package.json +0 -44
- package/templates/l1-stack-ts/postcss.config.js +0 -5
- package/templates/l1-stack-ts/public/vite.svg +0 -1
- package/templates/l1-stack-ts/src/App.css +0 -42
- package/templates/l1-stack-ts/src/App.tsx +0 -21
- package/templates/l1-stack-ts/src/assets/react.svg +0 -1
- package/templates/l1-stack-ts/src/components/TopNav.tsx +0 -28
- package/templates/l1-stack-ts/src/components/ui/button.tsx +0 -57
- package/templates/l1-stack-ts/src/components/ui/card.tsx +0 -76
- package/templates/l1-stack-ts/src/components/ui/input.tsx +0 -22
- package/templates/l1-stack-ts/src/components/ui/label.tsx +0 -24
- package/templates/l1-stack-ts/src/index.css +0 -134
- package/templates/l1-stack-ts/src/lib/mysql.ts +0 -5
- package/templates/l1-stack-ts/src/lib/notion.ts +0 -7
- package/templates/l1-stack-ts/src/lib/strapi.ts +0 -6
- package/templates/l1-stack-ts/src/lib/utils.ts +0 -6
- package/templates/l1-stack-ts/src/main.tsx +0 -13
- package/templates/l1-stack-ts/src/pages/Home.tsx +0 -46
- package/templates/l1-stack-ts/src/pages/Integrations.tsx +0 -64
- package/templates/l1-stack-ts/tailwind.config.ts +0 -9
- package/templates/l1-stack-ts/tsconfig.app.json +0 -32
- package/templates/l1-stack-ts/tsconfig.json +0 -13
- package/templates/l1-stack-ts/tsconfig.node.json +0 -30
- package/templates/l1-stack-ts/vite.config.ts +0 -13
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
import { Slot } from "@radix-ui/react-slot"
|
|
3
|
-
import { cva, type VariantProps } from "class-variance-authority"
|
|
4
|
-
|
|
5
|
-
import { cn } from "@/lib/utils"
|
|
6
|
-
|
|
7
|
-
const buttonVariants = cva(
|
|
8
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
9
|
-
{
|
|
10
|
-
variants: {
|
|
11
|
-
variant: {
|
|
12
|
-
default:
|
|
13
|
-
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
14
|
-
destructive:
|
|
15
|
-
"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
16
|
-
outline:
|
|
17
|
-
"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
18
|
-
secondary:
|
|
19
|
-
"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
20
|
-
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
21
|
-
link: "text-primary underline-offset-4 hover:underline",
|
|
22
|
-
},
|
|
23
|
-
size: {
|
|
24
|
-
default: "h-9 px-4 py-2",
|
|
25
|
-
sm: "h-8 rounded-md px-3 text-xs",
|
|
26
|
-
lg: "h-10 rounded-md px-8",
|
|
27
|
-
icon: "h-9 w-9",
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
defaultVariants: {
|
|
31
|
-
variant: "default",
|
|
32
|
-
size: "default",
|
|
33
|
-
},
|
|
34
|
-
}
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
export interface ButtonProps
|
|
38
|
-
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
39
|
-
VariantProps<typeof buttonVariants> {
|
|
40
|
-
asChild?: boolean
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
44
|
-
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
45
|
-
const Comp = asChild ? Slot : "button"
|
|
46
|
-
return (
|
|
47
|
-
<Comp
|
|
48
|
-
className={cn(buttonVariants({ variant, size, className }))}
|
|
49
|
-
ref={ref}
|
|
50
|
-
{...props}
|
|
51
|
-
/>
|
|
52
|
-
)
|
|
53
|
-
}
|
|
54
|
-
)
|
|
55
|
-
Button.displayName = "Button"
|
|
56
|
-
|
|
57
|
-
export { Button, buttonVariants }
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const Card = React.forwardRef<
|
|
6
|
-
HTMLDivElement,
|
|
7
|
-
React.HTMLAttributes<HTMLDivElement>
|
|
8
|
-
>(({ className, ...props }, ref) => (
|
|
9
|
-
<div
|
|
10
|
-
ref={ref}
|
|
11
|
-
className={cn(
|
|
12
|
-
"rounded-xl border bg-card text-card-foreground shadow",
|
|
13
|
-
className
|
|
14
|
-
)}
|
|
15
|
-
{...props}
|
|
16
|
-
/>
|
|
17
|
-
))
|
|
18
|
-
Card.displayName = "Card"
|
|
19
|
-
|
|
20
|
-
const CardHeader = React.forwardRef<
|
|
21
|
-
HTMLDivElement,
|
|
22
|
-
React.HTMLAttributes<HTMLDivElement>
|
|
23
|
-
>(({ className, ...props }, ref) => (
|
|
24
|
-
<div
|
|
25
|
-
ref={ref}
|
|
26
|
-
className={cn("flex flex-col space-y-1.5 p-6", className)}
|
|
27
|
-
{...props}
|
|
28
|
-
/>
|
|
29
|
-
))
|
|
30
|
-
CardHeader.displayName = "CardHeader"
|
|
31
|
-
|
|
32
|
-
const CardTitle = React.forwardRef<
|
|
33
|
-
HTMLDivElement,
|
|
34
|
-
React.HTMLAttributes<HTMLDivElement>
|
|
35
|
-
>(({ className, ...props }, ref) => (
|
|
36
|
-
<div
|
|
37
|
-
ref={ref}
|
|
38
|
-
className={cn("font-semibold leading-none tracking-tight", className)}
|
|
39
|
-
{...props}
|
|
40
|
-
/>
|
|
41
|
-
))
|
|
42
|
-
CardTitle.displayName = "CardTitle"
|
|
43
|
-
|
|
44
|
-
const CardDescription = React.forwardRef<
|
|
45
|
-
HTMLDivElement,
|
|
46
|
-
React.HTMLAttributes<HTMLDivElement>
|
|
47
|
-
>(({ className, ...props }, ref) => (
|
|
48
|
-
<div
|
|
49
|
-
ref={ref}
|
|
50
|
-
className={cn("text-sm text-muted-foreground", className)}
|
|
51
|
-
{...props}
|
|
52
|
-
/>
|
|
53
|
-
))
|
|
54
|
-
CardDescription.displayName = "CardDescription"
|
|
55
|
-
|
|
56
|
-
const CardContent = React.forwardRef<
|
|
57
|
-
HTMLDivElement,
|
|
58
|
-
React.HTMLAttributes<HTMLDivElement>
|
|
59
|
-
>(({ className, ...props }, ref) => (
|
|
60
|
-
<div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
|
|
61
|
-
))
|
|
62
|
-
CardContent.displayName = "CardContent"
|
|
63
|
-
|
|
64
|
-
const CardFooter = React.forwardRef<
|
|
65
|
-
HTMLDivElement,
|
|
66
|
-
React.HTMLAttributes<HTMLDivElement>
|
|
67
|
-
>(({ className, ...props }, ref) => (
|
|
68
|
-
<div
|
|
69
|
-
ref={ref}
|
|
70
|
-
className={cn("flex items-center p-6 pt-0", className)}
|
|
71
|
-
{...props}
|
|
72
|
-
/>
|
|
73
|
-
))
|
|
74
|
-
CardFooter.displayName = "CardFooter"
|
|
75
|
-
|
|
76
|
-
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>(
|
|
6
|
-
({ className, type, ...props }, ref) => {
|
|
7
|
-
return (
|
|
8
|
-
<input
|
|
9
|
-
type={type}
|
|
10
|
-
className={cn(
|
|
11
|
-
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
12
|
-
className
|
|
13
|
-
)}
|
|
14
|
-
ref={ref}
|
|
15
|
-
{...props}
|
|
16
|
-
/>
|
|
17
|
-
)
|
|
18
|
-
}
|
|
19
|
-
)
|
|
20
|
-
Input.displayName = "Input"
|
|
21
|
-
|
|
22
|
-
export { Input }
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import * as React from "react"
|
|
2
|
-
import * as LabelPrimitive from "@radix-ui/react-label"
|
|
3
|
-
import { cva, type VariantProps } from "class-variance-authority"
|
|
4
|
-
|
|
5
|
-
import { cn } from "@/lib/utils"
|
|
6
|
-
|
|
7
|
-
const labelVariants = cva(
|
|
8
|
-
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
const Label = React.forwardRef<
|
|
12
|
-
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
13
|
-
React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &
|
|
14
|
-
VariantProps<typeof labelVariants>
|
|
15
|
-
>(({ className, ...props }, ref) => (
|
|
16
|
-
<LabelPrimitive.Root
|
|
17
|
-
ref={ref}
|
|
18
|
-
className={cn(labelVariants(), className)}
|
|
19
|
-
{...props}
|
|
20
|
-
/>
|
|
21
|
-
))
|
|
22
|
-
Label.displayName = LabelPrimitive.Root.displayName
|
|
23
|
-
|
|
24
|
-
export { Label }
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
@import 'tailwindcss';
|
|
2
|
-
|
|
3
|
-
@plugin 'tailwindcss-animate';
|
|
4
|
-
@import "tw-animate-css";
|
|
5
|
-
|
|
6
|
-
@custom-variant dark (&:is(.dark *));
|
|
7
|
-
|
|
8
|
-
html,
|
|
9
|
-
body {
|
|
10
|
-
height: 100%;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
body {
|
|
14
|
-
margin: 0;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@theme inline {
|
|
18
|
-
--radius-sm: calc(var(--radius) - 4px);
|
|
19
|
-
--radius-md: calc(var(--radius) - 2px);
|
|
20
|
-
--radius-lg: var(--radius);
|
|
21
|
-
--radius-xl: calc(var(--radius) + 4px);
|
|
22
|
-
--radius-2xl: calc(var(--radius) + 8px);
|
|
23
|
-
--radius-3xl: calc(var(--radius) + 12px);
|
|
24
|
-
--radius-4xl: calc(var(--radius) + 16px);
|
|
25
|
-
--color-background: var(--background);
|
|
26
|
-
--color-foreground: var(--foreground);
|
|
27
|
-
--color-card: var(--card);
|
|
28
|
-
--color-card-foreground: var(--card-foreground);
|
|
29
|
-
--color-popover: var(--popover);
|
|
30
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
31
|
-
--color-primary: var(--primary);
|
|
32
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
33
|
-
--color-secondary: var(--secondary);
|
|
34
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
35
|
-
--color-muted: var(--muted);
|
|
36
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
37
|
-
--color-accent: var(--accent);
|
|
38
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
39
|
-
--color-destructive: var(--destructive);
|
|
40
|
-
--color-border: var(--border);
|
|
41
|
-
--color-input: var(--input);
|
|
42
|
-
--color-ring: var(--ring);
|
|
43
|
-
--color-chart-1: var(--chart-1);
|
|
44
|
-
--color-chart-2: var(--chart-2);
|
|
45
|
-
--color-chart-3: var(--chart-3);
|
|
46
|
-
--color-chart-4: var(--chart-4);
|
|
47
|
-
--color-chart-5: var(--chart-5);
|
|
48
|
-
--color-sidebar: var(--sidebar);
|
|
49
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
50
|
-
--color-sidebar-primary: var(--sidebar-primary);
|
|
51
|
-
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
52
|
-
--color-sidebar-accent: var(--sidebar-accent);
|
|
53
|
-
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
54
|
-
--color-sidebar-border: var(--sidebar-border);
|
|
55
|
-
--color-sidebar-ring: var(--sidebar-ring);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
:root {
|
|
59
|
-
--radius: 0.625rem;
|
|
60
|
-
--background: oklch(1 0 0);
|
|
61
|
-
--foreground: oklch(0.145 0 0);
|
|
62
|
-
--card: oklch(1 0 0);
|
|
63
|
-
--card-foreground: oklch(0.145 0 0);
|
|
64
|
-
--popover: oklch(1 0 0);
|
|
65
|
-
--popover-foreground: oklch(0.145 0 0);
|
|
66
|
-
--primary: oklch(0.205 0 0);
|
|
67
|
-
--primary-foreground: oklch(0.985 0 0);
|
|
68
|
-
--secondary: oklch(0.97 0 0);
|
|
69
|
-
--secondary-foreground: oklch(0.205 0 0);
|
|
70
|
-
--muted: oklch(0.97 0 0);
|
|
71
|
-
--muted-foreground: oklch(0.556 0 0);
|
|
72
|
-
--accent: oklch(0.97 0 0);
|
|
73
|
-
--accent-foreground: oklch(0.205 0 0);
|
|
74
|
-
--destructive: oklch(0.577 0.245 27.325);
|
|
75
|
-
--border: oklch(0.922 0 0);
|
|
76
|
-
--input: oklch(0.922 0 0);
|
|
77
|
-
--ring: oklch(0.708 0 0);
|
|
78
|
-
--chart-1: oklch(0.646 0.222 41.116);
|
|
79
|
-
--chart-2: oklch(0.6 0.118 184.704);
|
|
80
|
-
--chart-3: oklch(0.398 0.07 227.392);
|
|
81
|
-
--chart-4: oklch(0.828 0.189 84.429);
|
|
82
|
-
--chart-5: oklch(0.769 0.188 70.08);
|
|
83
|
-
--sidebar: oklch(0.985 0 0);
|
|
84
|
-
--sidebar-foreground: oklch(0.145 0 0);
|
|
85
|
-
--sidebar-primary: oklch(0.205 0 0);
|
|
86
|
-
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
87
|
-
--sidebar-accent: oklch(0.97 0 0);
|
|
88
|
-
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
89
|
-
--sidebar-border: oklch(0.922 0 0);
|
|
90
|
-
--sidebar-ring: oklch(0.708 0 0);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.dark {
|
|
94
|
-
--background: oklch(0.145 0 0);
|
|
95
|
-
--foreground: oklch(0.985 0 0);
|
|
96
|
-
--card: oklch(0.205 0 0);
|
|
97
|
-
--card-foreground: oklch(0.985 0 0);
|
|
98
|
-
--popover: oklch(0.205 0 0);
|
|
99
|
-
--popover-foreground: oklch(0.985 0 0);
|
|
100
|
-
--primary: oklch(0.922 0 0);
|
|
101
|
-
--primary-foreground: oklch(0.205 0 0);
|
|
102
|
-
--secondary: oklch(0.269 0 0);
|
|
103
|
-
--secondary-foreground: oklch(0.985 0 0);
|
|
104
|
-
--muted: oklch(0.269 0 0);
|
|
105
|
-
--muted-foreground: oklch(0.708 0 0);
|
|
106
|
-
--accent: oklch(0.269 0 0);
|
|
107
|
-
--accent-foreground: oklch(0.985 0 0);
|
|
108
|
-
--destructive: oklch(0.704 0.191 22.216);
|
|
109
|
-
--border: oklch(1 0 0 / 10%);
|
|
110
|
-
--input: oklch(1 0 0 / 15%);
|
|
111
|
-
--ring: oklch(0.556 0 0);
|
|
112
|
-
--chart-1: oklch(0.488 0.243 264.376);
|
|
113
|
-
--chart-2: oklch(0.696 0.17 162.48);
|
|
114
|
-
--chart-3: oklch(0.769 0.188 70.08);
|
|
115
|
-
--chart-4: oklch(0.627 0.265 303.9);
|
|
116
|
-
--chart-5: oklch(0.645 0.246 16.439);
|
|
117
|
-
--sidebar: oklch(0.205 0 0);
|
|
118
|
-
--sidebar-foreground: oklch(0.985 0 0);
|
|
119
|
-
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
120
|
-
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
121
|
-
--sidebar-accent: oklch(0.269 0 0);
|
|
122
|
-
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
123
|
-
--sidebar-border: oklch(1 0 0 / 10%);
|
|
124
|
-
--sidebar-ring: oklch(0.556 0 0);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
@layer base {
|
|
128
|
-
* {
|
|
129
|
-
@apply border-border outline-ring/50;
|
|
130
|
-
}
|
|
131
|
-
body {
|
|
132
|
-
@apply bg-background text-foreground;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// MySQL is backend-only.
|
|
2
|
-
// Use @lucaismyname/l1-utils from a Node server (Express/Fastify/Next API route, etc.).
|
|
3
|
-
// Example (Node):
|
|
4
|
-
// import { createMySqlPool } from '@lucaismyname/l1-utils'
|
|
5
|
-
// const db = await createMySqlPool({ host, user, password, database })
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { StrictMode } from 'react'
|
|
2
|
-
import { createRoot } from 'react-dom/client'
|
|
3
|
-
import { BrowserRouter } from 'react-router-dom'
|
|
4
|
-
import './index.css'
|
|
5
|
-
import App from './App.tsx'
|
|
6
|
-
|
|
7
|
-
createRoot(document.getElementById('root')!).render(
|
|
8
|
-
<StrictMode>
|
|
9
|
-
<BrowserRouter>
|
|
10
|
-
<App />
|
|
11
|
-
</BrowserRouter>
|
|
12
|
-
</StrictMode>,
|
|
13
|
-
)
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Button } from '@/components/ui/button'
|
|
2
|
-
import {
|
|
3
|
-
Card,
|
|
4
|
-
CardContent,
|
|
5
|
-
CardDescription,
|
|
6
|
-
CardFooter,
|
|
7
|
-
CardHeader,
|
|
8
|
-
CardTitle,
|
|
9
|
-
} from '@/components/ui/card'
|
|
10
|
-
import { Input } from '@/components/ui/input'
|
|
11
|
-
import { Label } from '@/components/ui/label'
|
|
12
|
-
import { Rocket } from 'lucide-react'
|
|
13
|
-
|
|
14
|
-
export default function Home() {
|
|
15
|
-
return (
|
|
16
|
-
<div className="space-y-8">
|
|
17
|
-
<div className="space-y-2">
|
|
18
|
-
<h1 className="text-3xl font-semibold tracking-tight">Hello World</h1>
|
|
19
|
-
<p className="text-muted-foreground">
|
|
20
|
-
L1 Stack starter template (Vite + React + Tailwind + shadcn/ui).
|
|
21
|
-
</p>
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<Card>
|
|
25
|
-
<CardHeader>
|
|
26
|
-
<CardTitle className="flex items-center gap-2">
|
|
27
|
-
<Rocket className="h-4 w-4" />
|
|
28
|
-
Quick start
|
|
29
|
-
</CardTitle>
|
|
30
|
-
<CardDescription>
|
|
31
|
-
Example of accessible form primitives (Label + Input) and a primary action.
|
|
32
|
-
</CardDescription>
|
|
33
|
-
</CardHeader>
|
|
34
|
-
<CardContent className="space-y-4">
|
|
35
|
-
<div className="space-y-2">
|
|
36
|
-
<Label htmlFor="projectName">Project name</Label>
|
|
37
|
-
<Input id="projectName" placeholder="my-app" autoComplete="off" />
|
|
38
|
-
</div>
|
|
39
|
-
</CardContent>
|
|
40
|
-
<CardFooter>
|
|
41
|
-
<Button type="button">Continue</Button>
|
|
42
|
-
</CardFooter>
|
|
43
|
-
</Card>
|
|
44
|
-
</div>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Card, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
|
|
2
|
-
import { Database, NotebookPen, Server } from 'lucide-react'
|
|
3
|
-
|
|
4
|
-
export default function Integrations() {
|
|
5
|
-
return (
|
|
6
|
-
<div className="space-y-6">
|
|
7
|
-
<div className="space-y-2">
|
|
8
|
-
<h1 className="text-3xl font-semibold tracking-tight">Integrations</h1>
|
|
9
|
-
<p className="text-muted-foreground">
|
|
10
|
-
Starter placeholders for service connectors.
|
|
11
|
-
</p>
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
<div className="rounded-lg border bg-card p-4 text-sm text-muted-foreground">
|
|
15
|
-
Examples live in:
|
|
16
|
-
<div className="mt-2 font-mono text-xs text-foreground">
|
|
17
|
-
src/lib/strapi.ts
|
|
18
|
-
<br />
|
|
19
|
-
src/lib/notion.ts
|
|
20
|
-
<br />
|
|
21
|
-
src/lib/mysql.ts
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
|
|
25
|
-
<div className="grid gap-4 sm:grid-cols-2">
|
|
26
|
-
<Card>
|
|
27
|
-
<CardHeader>
|
|
28
|
-
<CardTitle className="flex items-center gap-2">
|
|
29
|
-
<Server className="h-4 w-4" />
|
|
30
|
-
Strapi / Strapi Cloud
|
|
31
|
-
</CardTitle>
|
|
32
|
-
<CardDescription>
|
|
33
|
-
Add your base URL + API token and fetch content.
|
|
34
|
-
</CardDescription>
|
|
35
|
-
</CardHeader>
|
|
36
|
-
</Card>
|
|
37
|
-
|
|
38
|
-
<Card>
|
|
39
|
-
<CardHeader>
|
|
40
|
-
<CardTitle className="flex items-center gap-2">
|
|
41
|
-
<NotebookPen className="h-4 w-4" />
|
|
42
|
-
Notion
|
|
43
|
-
</CardTitle>
|
|
44
|
-
<CardDescription>
|
|
45
|
-
Use a Notion integration token to query databases.
|
|
46
|
-
</CardDescription>
|
|
47
|
-
</CardHeader>
|
|
48
|
-
</Card>
|
|
49
|
-
|
|
50
|
-
<Card className="sm:col-span-2">
|
|
51
|
-
<CardHeader>
|
|
52
|
-
<CardTitle className="flex items-center gap-2">
|
|
53
|
-
<Database className="h-4 w-4" />
|
|
54
|
-
MySQL
|
|
55
|
-
</CardTitle>
|
|
56
|
-
<CardDescription>
|
|
57
|
-
Backend-only utility. Create a server and use the MySQL helpers there.
|
|
58
|
-
</CardDescription>
|
|
59
|
-
</CardHeader>
|
|
60
|
-
</Card>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
63
|
-
)
|
|
64
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
4
|
-
"target": "ES2022",
|
|
5
|
-
"useDefineForClassFields": true,
|
|
6
|
-
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
7
|
-
"module": "ESNext",
|
|
8
|
-
"baseUrl": ".",
|
|
9
|
-
"paths": {
|
|
10
|
-
"@/*": ["./src/*"]
|
|
11
|
-
},
|
|
12
|
-
"types": ["vite/client"],
|
|
13
|
-
"skipLibCheck": true,
|
|
14
|
-
|
|
15
|
-
/* Bundler mode */
|
|
16
|
-
"moduleResolution": "bundler",
|
|
17
|
-
"allowImportingTsExtensions": true,
|
|
18
|
-
"verbatimModuleSyntax": true,
|
|
19
|
-
"moduleDetection": "force",
|
|
20
|
-
"noEmit": true,
|
|
21
|
-
"jsx": "react-jsx",
|
|
22
|
-
|
|
23
|
-
/* Linting */
|
|
24
|
-
"strict": true,
|
|
25
|
-
"noUnusedLocals": true,
|
|
26
|
-
"noUnusedParameters": true,
|
|
27
|
-
"erasableSyntaxOnly": true,
|
|
28
|
-
"noFallthroughCasesInSwitch": true,
|
|
29
|
-
"noUncheckedSideEffectImports": true
|
|
30
|
-
},
|
|
31
|
-
"include": ["src"]
|
|
32
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
-
"target": "ES2023",
|
|
5
|
-
"lib": ["ES2023"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"baseUrl": ".",
|
|
8
|
-
"paths": {
|
|
9
|
-
"@/*": ["./src/*"]
|
|
10
|
-
},
|
|
11
|
-
"types": ["node"],
|
|
12
|
-
"skipLibCheck": true,
|
|
13
|
-
|
|
14
|
-
/* Bundler mode */
|
|
15
|
-
"moduleResolution": "bundler",
|
|
16
|
-
"allowImportingTsExtensions": true,
|
|
17
|
-
"verbatimModuleSyntax": true,
|
|
18
|
-
"moduleDetection": "force",
|
|
19
|
-
"noEmit": true,
|
|
20
|
-
|
|
21
|
-
/* Linting */
|
|
22
|
-
"strict": true,
|
|
23
|
-
"noUnusedLocals": true,
|
|
24
|
-
"noUnusedParameters": true,
|
|
25
|
-
"erasableSyntaxOnly": true,
|
|
26
|
-
"noFallthroughCasesInSwitch": true,
|
|
27
|
-
"noUncheckedSideEffectImports": true
|
|
28
|
-
},
|
|
29
|
-
"include": ["vite.config.ts"]
|
|
30
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vite'
|
|
2
|
-
import react from '@vitejs/plugin-react'
|
|
3
|
-
import path from 'node:path'
|
|
4
|
-
|
|
5
|
-
// https://vite.dev/config/
|
|
6
|
-
export default defineConfig({
|
|
7
|
-
plugins: [react()],
|
|
8
|
-
resolve: {
|
|
9
|
-
alias: {
|
|
10
|
-
'@': path.resolve(__dirname, './src'),
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
})
|