Skip to content

Commit fc8c219

Browse files
committed
Merge branch 'jonulak/update-tailwind' into feat/add-chat-bot
2 parents eec2630 + 63c9819 commit fc8c219

File tree

328 files changed

+9112
-7432
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

328 files changed

+9112
-7432
lines changed

eslint-report.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

package-lock.json

Lines changed: 4729 additions & 4325 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,28 @@
2222
"dependencies": {
2323
"@ai-sdk/azure": "^1.0.7",
2424
"@ai-sdk/google": "^1.2.19",
25-
"@ai-sdk/openai": "^1.3.22",
25+
"@ai-sdk/openai": "^1.3.23",
2626
"@ai-sdk/react": "^1.2.12",
27-
"@assistant-ui/react": "^0.10.24",
28-
"@assistant-ui/react-ai-sdk": "^0.10.14",
29-
"@assistant-ui/react-markdown": "^0.10.5",
27+
"@assistant-ui/react": "^0.10.25",
28+
"@assistant-ui/react-ai-sdk": "^0.10.15",
29+
"@assistant-ui/react-markdown": "^0.10.6",
3030
"@googlemaps/react-wrapper": "^1.1.35",
3131
"@googlemaps/typescript-guards": "^2.0.1",
3232
"@neondatabase/serverless": "^1.0.1",
3333
"@next-auth/prisma-adapter": "^1.0.7",
34-
"@prisma/adapter-neon": "^6.9.0",
35-
"@prisma/client": "^6.9.0",
34+
"@prisma/adapter-neon": "^6.10.1",
35+
"@prisma/client": "^6.10.1",
3636
"@radix-ui/react-dialog": "^1.1.4",
3737
"@radix-ui/react-icons": "^1.3.0",
3838
"@radix-ui/react-separator": "^1.1.7",
3939
"@radix-ui/react-slot": "^1.2.3",
4040
"@radix-ui/react-tooltip": "^1.2.7",
4141
"@radix-ui/themes": "^1.1.0",
42+
"@tailwindcss/postcss": "^4.1.11",
4243
"@types/express": "^4.17.17",
4344
"@vercel/analytics": "^1.4.1",
4445
"ace-builds": "^1.33.1",
45-
"ai": "^4.3.16",
46+
"ai": "^4.3.17",
4647
"axios": "^1.4.0",
4748
"class-variance-authority": "^0.7.0",
4849
"clsx": "^1.2.1",
@@ -54,12 +55,13 @@
5455
"fast-equals": "3.0.3",
5556
"framer-motion": "^12.18.1",
5657
"gray-matter": "^4.0.3",
57-
"lucide-react": "^0.523.0",
58+
"lucide-react": "^0.525.0",
5859
"mailchimp-api-v3": "^1.15.0",
5960
"marked": "^4.0.18",
6061
"motion": "^11.13.3",
6162
"next": "^15.0.3",
6263
"next-auth": "^4.24.11",
64+
"next-mdx-remote": "^5.0.0",
6365
"next-pwa": "^5.6.0",
6466
"next-react-svg": "^1.1.3",
6567
"next-seo": "^5.5.0",
@@ -75,6 +77,7 @@
7577
"swiper": "^8.3.1",
7678
"tailwind-merge": "^2.3.0",
7779
"tailwindcss-animate": "^1.0.7",
80+
"tw-animate-css": "^1.3.5",
7881
"ws": "^8.18.2",
7982
"zod": "^3.25.67"
8083
},
@@ -91,6 +94,7 @@
9194
"@types/jest": "^29.5.14",
9295
"@types/jsonwebtoken": "^8.5.8",
9396
"@types/marked": "^4.0.3",
97+
"@types/mdx": "^2.0.13",
9498
"@types/next-auth": "^3.15.0",
9599
"@types/node": "^18.0.0",
96100
"@types/react": "^18.3.12",
@@ -116,10 +120,10 @@
116120
"lint-staged": "^12.3.7",
117121
"postcss": "^8.4.12",
118122
"prettier": "^3.4.2",
119-
"prettier-plugin-tailwindcss": "^0.6.9",
120-
"prisma": "^6.11.1",
123+
"prettier-plugin-tailwindcss": "^0.6.14",
124+
"prisma": "^6.10.1",
121125
"rimraf": "^3.0.2",
122-
"tailwindcss": "^3.0.23",
126+
"tailwindcss": "^4.1.11",
123127
"ts-complex": "^1.0.0",
124128
"ts-jest": "^29.2.5",
125129
"ts-node": "^10.9.2",
Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
const safelist = [
22
/html/,
33
/body/,
4-
/^-tw-/,
5-
/^tw-/,
4+
/^tw:/,
65
/^maxSm:/,
76
/^maxXl:/,
87
/^maxLg:/,
@@ -17,7 +16,7 @@ const safelist = [
1716
/^hover:/,
1817
/^focus:/,
1918
/^group/,
20-
/^group-hover:tw-/,
19+
/^tw:group-hover/,
2120
/^last:/,
2221
/^first:/,
2322
/^even:/,
@@ -29,14 +28,12 @@ const safelist = [
2928
/^react-tabs/,
3029
];
3130

32-
module.exports = {
33-
plugins: [
34-
"tailwindcss",
35-
"autoprefixer",
36-
process.env.NODE_ENV === "production"
37-
? [
38-
"@fullhuman/postcss-purgecss",
39-
{
31+
export default {
32+
plugins: {
33+
"@tailwindcss/postcss": {},
34+
...(process.env.NODE_ENV === "production"
35+
? {
36+
"@fullhuman/postcss-purgecss": {
4037
content: ["./src/**/*.tsx"],
4138
defaultExtractor: (content) => content.match(/[\w-/:]+(?<!:)/g) || [],
4239
safelist: {
@@ -45,7 +42,7 @@ module.exports = {
4542
greedy: safelist,
4643
},
4744
},
48-
]
49-
: null,
50-
],
45+
}
46+
: {}),
47+
},
5148
};
File renamed without changes.

src/app/layout.tsx renamed to src/app/(vetsai)/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import "@assets/css/tailwind.css";
1+
import "@assets/css/vetsai.css";
22

33
export const metadata = {
44
title: "Next.js",

src/app/vetsai/assistant.tsx renamed to src/app/(vetsai)/vetsai/assistant.tsx

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { AssistantRuntimeProvider } from "@assistant-ui/react";
44
import { useChatRuntime } from "@assistant-ui/react-ai-sdk";
55
import { Thread } from "@/components/vetsai/assistant-ui/thread";
66
import { SidebarInset, SidebarProvider, SidebarTrigger } from "@/components/vetsai/ui/sidebar";
7-
import { AppSidebar } from "@/components/vetsai/app-sidebar";
87
import { Separator } from "@/components/vetsai/ui/separator";
98
import {
109
Breadcrumb,
@@ -14,9 +13,9 @@ import {
1413
BreadcrumbPage,
1514
BreadcrumbSeparator,
1615
} from "@/components/vetsai/ui/breadcrumb";
17-
import "@assets/css/vetsai.css";
16+
import { AppSidebar } from "@/components/vetsai/app-sidebar";
1817

19-
const Assistant = () => {
18+
export const Assistant = () => {
2019
const runtime = useChatRuntime({
2120
api: "/api/chat",
2221
});
@@ -26,17 +25,17 @@ const Assistant = () => {
2625
<SidebarProvider>
2726
<AppSidebar />
2827
<SidebarInset>
29-
<header className="tw-flex tw-h-16 tw-shrink-0 tw-items-center tw-gap-2 tw-border-b tw-px-4">
28+
<header className="flex h-16 shrink-0 items-center gap-2 border-b px-4">
3029
<SidebarTrigger />
31-
<Separator orientation="vertical" className="tw-mr-2 tw-h-4" />
30+
<Separator orientation="vertical" className="mr-2 h-4" />
3231
<Breadcrumb>
3332
<BreadcrumbList>
34-
<BreadcrumbItem className="tw-hidden md:tw-block">
33+
<BreadcrumbItem className="hidden md:block">
3534
<BreadcrumbLink href="#">
3635
Build Your Own ChatGPT UX
3736
</BreadcrumbLink>
3837
</BreadcrumbItem>
39-
<BreadcrumbSeparator className="tw-hidden md:tw-block" />
38+
<BreadcrumbSeparator className="hidden md:block" />
4039
<BreadcrumbItem>
4140
<BreadcrumbPage>Starter Template</BreadcrumbPage>
4241
</BreadcrumbItem>
@@ -49,5 +48,3 @@ const Assistant = () => {
4948
</AssistantRuntimeProvider>
5049
);
5150
};
52-
53-
export default Assistant;

src/app/vetsai/page.tsx renamed to src/app/(vetsai)/vetsai/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { redirect } from "next/navigation";
22
import { getServerSession } from "next-auth";
33
import { options } from "@/pages/api/auth/options";
4-
import Assistant from "./assistant";
4+
import { Assistant } from "./assistant";
55

66
const VetsAI = async () => {
77
const session = await getServerSession(options);

src/assets/css/font-awesome-pro.min.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,21 +131,25 @@
131131
}
132132
.fa-rotate-90 {
133133
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
134+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
134135
-webkit-transform: rotate(90deg);
135136
transform: rotate(90deg);
136137
}
137138
.fa-rotate-180 {
138139
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
140+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
139141
-webkit-transform: rotate(180deg);
140142
transform: rotate(180deg);
141143
}
142144
.fa-rotate-270 {
143145
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
146+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
144147
-webkit-transform: rotate(270deg);
145148
transform: rotate(270deg);
146149
}
147150
.fa-flip-horizontal {
148151
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
152+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
149153
-webkit-transform: scaleX(-1);
150154
transform: scaleX(-1);
151155
}
@@ -157,6 +161,7 @@
157161
.fa-flip-horizontal.fa-flip-vertical,
158162
.fa-flip-vertical {
159163
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
164+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
160165
}
161166
.fa-flip-both,
162167
.fa-flip-horizontal.fa-flip-vertical {

src/assets/css/tailwind.css

Lines changed: 51 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,51 @@
1-
@tailwind base;
2-
@tailwind components;
3-
@tailwind utilities;
1+
@import 'tailwindcss' prefix(tw);
2+
@config '../../../tailwind.config.js';
3+
@source not "../../app/vetsai/";
4+
@source not "../../components/vetsai";
5+
6+
/*
7+
The default border color has changed to `currentcolor` in Tailwind CSS v4,
8+
so we've added these compatibility styles to make sure everything still
9+
looks the same as it did with Tailwind CSS v3.
10+
11+
If we ever want to remove these styles, we need to add an explicit border
12+
color utility to any element that depends on these defaults.
13+
*/
14+
@layer base {
15+
*,
16+
::after,
17+
::before,
18+
::backdrop,
19+
::file-selector-button {
20+
border-color: var(--color-gray-200, currentcolor);
21+
}
22+
}
423

524
@layer base {
25+
/* Adds cursor-pointer for buttons by default, tailwind v4 defaults to cursor pointer for buttons */
26+
button,
27+
[role='button'] {
28+
cursor: pointer;
29+
}
30+
button:disabled,
31+
[role='button']:disabled {
32+
cursor: default;
33+
}
34+
635
body {
7-
@apply tw-overflow-x-hidden tw-font-body tw-text-base tw-font-normal tw-leading-body tw-text-body;
36+
@apply tw:overflow-x-hidden tw:font-body tw:text-base tw:font-normal tw:leading-body tw:text-body;
837
}
938
a {
10-
@apply tw-transition-colors hover:tw-text-primary;
39+
@apply tw:transition-colors tw:hover:text-primary;
1140
}
1241
p {
13-
@apply tw-mb-3.8;
42+
@apply tw:mb-3.8;
1443
}
1544
p:last-child {
16-
@apply tw-mb-0;
45+
@apply tw:mb-0;
1746
}
1847
p:only-child {
19-
@apply tw-mb-0;
48+
@apply tw:mb-0;
2049
}
2150
h1,
2251
.h1,
@@ -30,62 +59,62 @@
3059
.h5,
3160
h6,
3261
.h6 {
33-
@apply tw-mb-2 tw-font-heading tw-font-bold tw-leading-heading tw-text-heading;
62+
@apply tw:mb-2 tw:font-heading tw:font-bold tw:leading-heading tw:text-heading;
3463
}
3564
h1,
3665
.h1 {
37-
@apply tw-text-h1;
66+
@apply tw:text-h1;
3867
}
3968
h2,
4069
.h2 {
41-
@apply tw-text-[26px] md:tw-text-h2;
70+
@apply tw:text-[26px] tw:md:text-h2;
4271
}
4372
h3,
4473
.h3 {
45-
@apply tw-text-h4 md:tw-text-h3;
74+
@apply tw:text-h4 tw:md:text-h3;
4675
}
4776
h4,
4877
.h4 {
49-
@apply tw-text-h4;
78+
@apply tw:text-h4;
5079
}
5180
h5,
5281
.h5 {
53-
@apply tw-text-h5;
82+
@apply tw:text-h5;
5483
}
5584
h6,
5685
.h6 {
57-
@apply tw-text-h6;
86+
@apply tw:text-h6;
5887
}
5988
h1 a,
6089
h2 a,
6190
h3 a,
6291
h4 a,
6392
h5 a,
6493
h6 a {
65-
@apply tw-text-current hover:tw-text-primary;
94+
@apply tw:text-current tw:hover:text-primary;
6695
}
6796
.link-overlay {
68-
@apply tw-absolute tw-inset-0 tw-z-10 -tw-indent-[99999px];
97+
@apply tw:absolute tw:inset-0 tw:z-10 tw:-indent-[99999px];
6998
}
7099
.table-responsive {
71-
@apply tw-overflow-y-auto;
100+
@apply tw:overflow-y-auto;
72101
-webkit-overflow-scrolling: touch;
73102
}
74103
iframe {
75104
height: auto;
76105
width: 100%;
77106
aspect-ratio: 16 / 9;
78107
}
79-
.tw-rotate-y-180 {
108+
.rotate-y-180 {
80109
transform: rotateY(180deg);
81110
}
82-
.tw-rotate-y-180-translate-x-half {
111+
.rotate-y-180-translate-x-half {
83112
transform: translateX(-50%) rotateY(180deg);
84113
}
85-
.tw-no-scroll::-webkit-scrollbar {
114+
.no-scroll::-webkit-scrollbar {
86115
display: none;
87116
}
88-
.tw-no-scroll {
117+
.no-scroll {
89118
-ms-overflow-style: none;
90119
scrollbar-width: none;
91120
}

0 commit comments

Comments
 (0)