Spaces:
Build error
Build error
Caleb Fahlgren
commited on
Commit
·
001a16b
1
Parent(s):
7321a0b
init
Browse files- bun.lockb +0 -0
- components.json +17 -0
- package.json +6 -1
- src/lib/utils.ts +6 -0
- src/pages/index.tsx +14 -104
- src/styles/globals.css +59 -23
- tailwind.config.ts +73 -13
bun.lockb
CHANGED
Binary files a/bun.lockb and b/bun.lockb differ
|
|
components.json
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"$schema": "https://ui.shadcn.com/schema.json",
|
3 |
+
"style": "new-york",
|
4 |
+
"rsc": false,
|
5 |
+
"tsx": true,
|
6 |
+
"tailwind": {
|
7 |
+
"config": "tailwind.config.ts",
|
8 |
+
"css": "src/styles/globals.css",
|
9 |
+
"baseColor": "slate",
|
10 |
+
"cssVariables": true,
|
11 |
+
"prefix": ""
|
12 |
+
},
|
13 |
+
"aliases": {
|
14 |
+
"components": "@/components",
|
15 |
+
"utils": "@/lib/utils"
|
16 |
+
}
|
17 |
+
}
|
package.json
CHANGED
@@ -9,9 +9,14 @@
|
|
9 |
"lint": "next lint"
|
10 |
},
|
11 |
"dependencies": {
|
|
|
|
|
|
|
|
|
12 |
"react": "^18",
|
13 |
"react-dom": "^18",
|
14 |
-
"
|
|
|
15 |
},
|
16 |
"devDependencies": {
|
17 |
"typescript": "^5",
|
|
|
9 |
"lint": "next lint"
|
10 |
},
|
11 |
"dependencies": {
|
12 |
+
"@radix-ui/react-icons": "^1.3.0",
|
13 |
+
"class-variance-authority": "^0.7.0",
|
14 |
+
"clsx": "^2.1.1",
|
15 |
+
"next": "14.2.5",
|
16 |
"react": "^18",
|
17 |
"react-dom": "^18",
|
18 |
+
"tailwind-merge": "^2.4.0",
|
19 |
+
"tailwindcss-animate": "^1.0.7"
|
20 |
},
|
21 |
"devDependencies": {
|
22 |
"typescript": "^5",
|
src/lib/utils.ts
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { type ClassValue, clsx } from "clsx"
|
2 |
+
import { twMerge } from "tailwind-merge"
|
3 |
+
|
4 |
+
export function cn(...inputs: ClassValue[]) {
|
5 |
+
return twMerge(clsx(inputs))
|
6 |
+
}
|
src/pages/index.tsx
CHANGED
@@ -6,113 +6,23 @@ const inter = Inter({ subsets: ["latin"] });
|
|
6 |
export default function Home() {
|
7 |
return (
|
8 |
<main
|
9 |
-
className={`flex min-h-screen flex-col items-center
|
10 |
>
|
11 |
-
<
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
<Image
|
25 |
-
src="/vercel.svg"
|
26 |
-
alt="Vercel Logo"
|
27 |
-
className="dark:invert"
|
28 |
-
width={100}
|
29 |
-
height={24}
|
30 |
-
priority
|
31 |
-
/>
|
32 |
-
</a>
|
33 |
-
</div>
|
34 |
-
</div>
|
35 |
-
|
36 |
-
<div className="relative flex place-items-center before:absolute before:h-[300px] before:w-full sm:before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full sm:after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700/10 after:dark:from-sky-900 after:dark:via-[#0141ff]/40 before:lg:h-[360px]">
|
37 |
-
<Image
|
38 |
-
className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert"
|
39 |
-
src="/next.svg"
|
40 |
-
alt="Next.js Logo"
|
41 |
-
width={180}
|
42 |
-
height={37}
|
43 |
-
priority
|
44 |
/>
|
45 |
</div>
|
46 |
-
|
47 |
-
<div className="mb-32 grid text-center lg:max-w-5xl lg:w-full lg:mb-0 lg:grid-cols-4 lg:text-left">
|
48 |
-
<a
|
49 |
-
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
|
50 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
51 |
-
target="_blank"
|
52 |
-
rel="noopener noreferrer"
|
53 |
-
>
|
54 |
-
<h2 className={`mb-3 text-2xl font-semibold`}>
|
55 |
-
Docs{" "}
|
56 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
57 |
-
->
|
58 |
-
</span>
|
59 |
-
</h2>
|
60 |
-
<p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
|
61 |
-
Find in-depth information about Next.js features and API.
|
62 |
-
</p>
|
63 |
-
</a>
|
64 |
-
|
65 |
-
<a
|
66 |
-
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
|
67 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
68 |
-
target="_blank"
|
69 |
-
rel="noopener noreferrer"
|
70 |
-
>
|
71 |
-
<h2 className={`mb-3 text-2xl font-semibold`}>
|
72 |
-
Learn{" "}
|
73 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
74 |
-
->
|
75 |
-
</span>
|
76 |
-
</h2>
|
77 |
-
<p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
|
78 |
-
Learn about Next.js in an interactive course with quizzes!
|
79 |
-
</p>
|
80 |
-
</a>
|
81 |
-
|
82 |
-
<a
|
83 |
-
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
|
84 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
85 |
-
target="_blank"
|
86 |
-
rel="noopener noreferrer"
|
87 |
-
>
|
88 |
-
<h2 className={`mb-3 text-2xl font-semibold`}>
|
89 |
-
Templates{" "}
|
90 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
91 |
-
->
|
92 |
-
</span>
|
93 |
-
</h2>
|
94 |
-
<p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
|
95 |
-
Discover and deploy boilerplate example Next.js projects.
|
96 |
-
</p>
|
97 |
-
</a>
|
98 |
-
|
99 |
-
<a
|
100 |
-
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
|
101 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
102 |
-
target="_blank"
|
103 |
-
rel="noopener noreferrer"
|
104 |
-
>
|
105 |
-
<h2 className={`mb-3 text-2xl font-semibold`}>
|
106 |
-
Deploy{" "}
|
107 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
108 |
-
->
|
109 |
-
</span>
|
110 |
-
</h2>
|
111 |
-
<p className={`m-0 max-w-[30ch] text-sm opacity-50 text-balance`}>
|
112 |
-
Instantly deploy your Next.js site to a shareable URL with Vercel.
|
113 |
-
</p>
|
114 |
-
</a>
|
115 |
-
</div>
|
116 |
</main>
|
117 |
);
|
118 |
}
|
|
|
6 |
export default function Home() {
|
7 |
return (
|
8 |
<main
|
9 |
+
className={`flex min-h-screen flex-col items-center p-24 ${inter.className}`}
|
10 |
>
|
11 |
+
<h1 className="text-4xl font-mono font-bold">
|
12 |
+
kraina/airbnb
|
13 |
+
</h1>
|
14 |
+
<p className="text-sm mt-2">
|
15 |
+
A dataset of Airbnb listings for 10 cities in Europe.
|
16 |
+
</p>
|
17 |
+
<div className="w-full max-w-5xl my-10">
|
18 |
+
<iframe
|
19 |
+
src="https://huggingface.co/datasets/kraina/airbnb/embed/viewer/all/train"
|
20 |
+
frameBorder="0"
|
21 |
+
width="100%"
|
22 |
+
height="560px"
|
23 |
+
title="Hugging Face Dataset Viewer"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
/>
|
25 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
</main>
|
27 |
);
|
28 |
}
|
src/styles/globals.css
CHANGED
@@ -2,32 +2,68 @@
|
|
2 |
@tailwind components;
|
3 |
@tailwind utilities;
|
4 |
|
5 |
-
|
6 |
-
--foreground-rgb: 0, 0, 0;
|
7 |
-
--background-start-rgb: 214, 219, 220;
|
8 |
-
--background-end-rgb: 255, 255, 255;
|
9 |
-
}
|
10 |
-
|
11 |
-
@media (prefers-color-scheme: dark) {
|
12 |
:root {
|
13 |
-
--
|
14 |
-
--
|
15 |
-
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
}
|
17 |
-
}
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
}
|
28 |
|
29 |
-
@layer
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
-
|
|
|
|
|
|
|
|
2 |
@tailwind components;
|
3 |
@tailwind utilities;
|
4 |
|
5 |
+
@layer base {
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
:root {
|
7 |
+
--background: 0 0% 100%;
|
8 |
+
--foreground: 222.2 84% 4.9%;
|
9 |
+
--card: 0 0% 100%;
|
10 |
+
--card-foreground: 222.2 84% 4.9%;
|
11 |
+
--popover: 0 0% 100%;
|
12 |
+
--popover-foreground: 222.2 84% 4.9%;
|
13 |
+
--primary: 222.2 47.4% 11.2%;
|
14 |
+
--primary-foreground: 210 40% 98%;
|
15 |
+
--secondary: 210 40% 96.1%;
|
16 |
+
--secondary-foreground: 222.2 47.4% 11.2%;
|
17 |
+
--muted: 210 40% 96.1%;
|
18 |
+
--muted-foreground: 215.4 16.3% 46.9%;
|
19 |
+
--accent: 210 40% 96.1%;
|
20 |
+
--accent-foreground: 222.2 47.4% 11.2%;
|
21 |
+
--destructive: 0 84.2% 60.2%;
|
22 |
+
--destructive-foreground: 210 40% 98%;
|
23 |
+
--border: 214.3 31.8% 91.4%;
|
24 |
+
--input: 214.3 31.8% 91.4%;
|
25 |
+
--ring: 222.2 84% 4.9%;
|
26 |
+
--radius: 0.5rem;
|
27 |
+
--chart-1: 12 76% 61%;
|
28 |
+
--chart-2: 173 58% 39%;
|
29 |
+
--chart-3: 197 37% 24%;
|
30 |
+
--chart-4: 43 74% 66%;
|
31 |
+
--chart-5: 27 87% 67%;
|
32 |
}
|
|
|
33 |
|
34 |
+
.dark {
|
35 |
+
--background: 222.2 84% 4.9%;
|
36 |
+
--foreground: 210 40% 98%;
|
37 |
+
--card: 222.2 84% 4.9%;
|
38 |
+
--card-foreground: 210 40% 98%;
|
39 |
+
--popover: 222.2 84% 4.9%;
|
40 |
+
--popover-foreground: 210 40% 98%;
|
41 |
+
--primary: 210 40% 98%;
|
42 |
+
--primary-foreground: 222.2 47.4% 11.2%;
|
43 |
+
--secondary: 217.2 32.6% 17.5%;
|
44 |
+
--secondary-foreground: 210 40% 98%;
|
45 |
+
--muted: 217.2 32.6% 17.5%;
|
46 |
+
--muted-foreground: 215 20.2% 65.1%;
|
47 |
+
--accent: 217.2 32.6% 17.5%;
|
48 |
+
--accent-foreground: 210 40% 98%;
|
49 |
+
--destructive: 0 62.8% 30.6%;
|
50 |
+
--destructive-foreground: 210 40% 98%;
|
51 |
+
--border: 217.2 32.6% 17.5%;
|
52 |
+
--input: 217.2 32.6% 17.5%;
|
53 |
+
--ring: 212.7 26.8% 83.9%;
|
54 |
+
--chart-1: 220 70% 50%;
|
55 |
+
--chart-2: 160 60% 45%;
|
56 |
+
--chart-3: 30 80% 55%;
|
57 |
+
--chart-4: 280 65% 60%;
|
58 |
+
--chart-5: 340 75% 55%;
|
59 |
+
}
|
60 |
}
|
61 |
|
62 |
+
@layer base {
|
63 |
+
* {
|
64 |
+
@apply border-border;
|
65 |
}
|
66 |
+
body {
|
67 |
+
@apply bg-background text-foreground;
|
68 |
+
}
|
69 |
+
}
|
tailwind.config.ts
CHANGED
@@ -1,20 +1,80 @@
|
|
1 |
-
import type { Config } from "tailwindcss"
|
2 |
|
3 |
-
const config
|
|
|
4 |
content: [
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
|
|
|
|
9 |
theme: {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
extend: {
|
11 |
-
|
12 |
-
|
13 |
-
"
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
},
|
16 |
},
|
17 |
},
|
18 |
-
plugins: [],
|
19 |
-
}
|
20 |
-
|
|
|
|
1 |
+
import type { Config } from "tailwindcss"
|
2 |
|
3 |
+
const config = {
|
4 |
+
darkMode: ["class"],
|
5 |
content: [
|
6 |
+
'./pages/**/*.{ts,tsx}',
|
7 |
+
'./components/**/*.{ts,tsx}',
|
8 |
+
'./app/**/*.{ts,tsx}',
|
9 |
+
'./src/**/*.{ts,tsx}',
|
10 |
+
],
|
11 |
+
prefix: "",
|
12 |
theme: {
|
13 |
+
container: {
|
14 |
+
center: true,
|
15 |
+
padding: "2rem",
|
16 |
+
screens: {
|
17 |
+
"2xl": "1400px",
|
18 |
+
},
|
19 |
+
},
|
20 |
extend: {
|
21 |
+
colors: {
|
22 |
+
border: "hsl(var(--border))",
|
23 |
+
input: "hsl(var(--input))",
|
24 |
+
ring: "hsl(var(--ring))",
|
25 |
+
background: "hsl(var(--background))",
|
26 |
+
foreground: "hsl(var(--foreground))",
|
27 |
+
primary: {
|
28 |
+
DEFAULT: "hsl(var(--primary))",
|
29 |
+
foreground: "hsl(var(--primary-foreground))",
|
30 |
+
},
|
31 |
+
secondary: {
|
32 |
+
DEFAULT: "hsl(var(--secondary))",
|
33 |
+
foreground: "hsl(var(--secondary-foreground))",
|
34 |
+
},
|
35 |
+
destructive: {
|
36 |
+
DEFAULT: "hsl(var(--destructive))",
|
37 |
+
foreground: "hsl(var(--destructive-foreground))",
|
38 |
+
},
|
39 |
+
muted: {
|
40 |
+
DEFAULT: "hsl(var(--muted))",
|
41 |
+
foreground: "hsl(var(--muted-foreground))",
|
42 |
+
},
|
43 |
+
accent: {
|
44 |
+
DEFAULT: "hsl(var(--accent))",
|
45 |
+
foreground: "hsl(var(--accent-foreground))",
|
46 |
+
},
|
47 |
+
popover: {
|
48 |
+
DEFAULT: "hsl(var(--popover))",
|
49 |
+
foreground: "hsl(var(--popover-foreground))",
|
50 |
+
},
|
51 |
+
card: {
|
52 |
+
DEFAULT: "hsl(var(--card))",
|
53 |
+
foreground: "hsl(var(--card-foreground))",
|
54 |
+
},
|
55 |
+
},
|
56 |
+
borderRadius: {
|
57 |
+
lg: "var(--radius)",
|
58 |
+
md: "calc(var(--radius) - 2px)",
|
59 |
+
sm: "calc(var(--radius) - 4px)",
|
60 |
+
},
|
61 |
+
keyframes: {
|
62 |
+
"accordion-down": {
|
63 |
+
from: { height: "0" },
|
64 |
+
to: { height: "var(--radix-accordion-content-height)" },
|
65 |
+
},
|
66 |
+
"accordion-up": {
|
67 |
+
from: { height: "var(--radix-accordion-content-height)" },
|
68 |
+
to: { height: "0" },
|
69 |
+
},
|
70 |
+
},
|
71 |
+
animation: {
|
72 |
+
"accordion-down": "accordion-down 0.2s ease-out",
|
73 |
+
"accordion-up": "accordion-up 0.2s ease-out",
|
74 |
},
|
75 |
},
|
76 |
},
|
77 |
+
plugins: [require("tailwindcss-animate")],
|
78 |
+
} satisfies Config
|
79 |
+
|
80 |
+
export default config
|