Caleb Fahlgren commited on
Commit
001a16b
·
1 Parent(s): 7321a0b
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
- "next": "14.2.5"
 
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 justify-between p-24 ${inter.className}`}
10
  >
11
- <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
12
- <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
13
- Get started by editing&nbsp;
14
- <code className="font-mono font-bold">src/pages/index.tsx</code>
15
- </p>
16
- <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
17
- <a
18
- className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
19
- href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
20
- target="_blank"
21
- rel="noopener noreferrer"
22
- >
23
- By{" "}
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
- -&gt;
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
- -&gt;
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&nbsp;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
- -&gt;
92
- </span>
93
- </h2>
94
- <p className={`m-0 max-w-[30ch] text-sm opacity-50`}>
95
- Discover and deploy boilerplate example Next.js&nbsp;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
- -&gt;
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
- :root {
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
- --foreground-rgb: 255, 255, 255;
14
- --background-start-rgb: 0, 0, 0;
15
- --background-end-rgb: 0, 0, 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  }
17
- }
18
 
19
- body {
20
- color: rgb(var(--foreground-rgb));
21
- background: linear-gradient(
22
- to bottom,
23
- transparent,
24
- rgb(var(--background-end-rgb))
25
- )
26
- rgb(var(--background-start-rgb));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  }
28
 
29
- @layer utilities {
30
- .text-balance {
31
- text-wrap: balance;
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: Config = {
 
4
  content: [
5
- "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
6
- "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
7
- "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
8
- ],
 
 
9
  theme: {
 
 
 
 
 
 
 
10
  extend: {
11
- backgroundImage: {
12
- "gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
13
- "gradient-conic":
14
- "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  },
16
  },
17
  },
18
- plugins: [],
19
- };
20
- export default config;
 
 
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