Skip to content

Commit 7ff7e0d

Browse files
authored
chore(deps): upgrade to tailwind v4 (#125)
1 parent e944e90 commit 7ff7e0d

21 files changed

+406
-643
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
55

66
## Unreleased
77

8-
- Nothing
8+
- upgrade to tailwind v4
99

1010
## 2.0.1
1111

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,18 @@
4040
"prepare": "husky install"
4141
},
4242
"devDependencies": {
43+
"@tailwindcss/postcss": "^4.1.14",
4344
"@types/node": "^24.6.1",
4445
"@types/react": "^18.0.0",
4546
"@types/react-dom": "^18.0.0",
4647
"@types/react-syntax-highlighter": "^15.5.13",
4748
"@vitejs/plugin-react": "^5.0.4",
48-
"autoprefixer": "^10.4.21",
4949
"depcheck": "^1.4.7",
5050
"husky": ">=6",
5151
"lint-staged": ">=10",
5252
"postcss": "^8.5.6",
5353
"prettier": "^3.6.2",
54-
"tailwindcss": "^3.4.0",
54+
"tailwindcss": "^4.1.14",
5555
"vite": "^7.1.8",
5656
"vite-tsconfig-paths": "^5.1.4"
5757
},

postcss.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
module.exports = {
22
plugins: {
3-
tailwindcss: {},
4-
autoprefixer: {},
3+
"@tailwindcss/postcss": {},
54
},
65
};

src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ export const App = () => {
317317
{/* Skip to main content link */}
318318
<a
319319
href="#main-content"
320-
className="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
320+
className="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-100 focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-md focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
321321
>
322322
Skip to main content
323323
</a>

src/components/ApiConfigPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ const ApiConfigPanel: React.FC<ApiConfigPanelProps> = ({
628628
>
629629
<div className={hstack({ gap: "sm" })}>
630630
<div
631-
className="w-2 h-2 sm:w-2.5 sm:h-2.5 rounded-full flex-shrink-0"
631+
className="w-2 h-2 sm:w-2.5 sm:h-2.5 rounded-full shrink-0"
632632
style={{
633633
backgroundColor: api.healthy
634634
? "rgb(34 197 94)"

src/components/ui/badge.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { cva, type VariantProps } from "class-variance-authority";
44
import { cn } from "@/utils/utils";
55

66
const badgeVariants = cva(
7-
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
7+
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
88
{
99
variants: {
1010
variant: {

src/components/ui/button.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import { cva, type VariantProps } from "class-variance-authority";
55
import { cn } from "@/utils/utils";
66

77
const buttonVariants = cva(
8-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
8+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
99
{
1010
variants: {
1111
variant: {
1212
default: "bg-primary text-primary-foreground hover:bg-primary/90",
1313
destructive:
1414
"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
1515
outline:
16-
"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
16+
"border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
1717
secondary:
1818
"bg-secondary text-secondary-foreground hover:bg-secondary/80",
1919
ghost:

src/components/ui/calendar.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ function Calendar({
2727
<DayPicker
2828
showOutsideDays={showOutsideDays}
2929
className={cn(
30-
"bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
31-
String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
32-
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
30+
"bg-background group/calendar p-3 [--cell-size:2rem] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",
31+
String.raw`[.rdp-button\_next>svg]:**:rtl:rotate-180`,
32+
String.raw`[.rdp-button\_previous>svg]:**:rtl:rotate-180`,
3333
className
3434
)}
3535
captionLayout={captionLayout}
@@ -51,24 +51,24 @@ function Calendar({
5151
),
5252
button_previous: cn(
5353
buttonVariants({ variant: buttonVariant }),
54-
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
54+
"h-(--cell-size) w-(--cell-size) select-none p-0 aria-disabled:opacity-50",
5555
defaultClassNames.button_previous
5656
),
5757
button_next: cn(
5858
buttonVariants({ variant: buttonVariant }),
59-
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
59+
"h-(--cell-size) w-(--cell-size) select-none p-0 aria-disabled:opacity-50",
6060
defaultClassNames.button_next
6161
),
6262
month_caption: cn(
63-
"flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",
63+
"flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",
6464
defaultClassNames.month_caption
6565
),
6666
dropdowns: cn(
67-
"flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",
67+
"flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",
6868
defaultClassNames.dropdowns
6969
),
7070
dropdown_root: cn(
71-
"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
71+
"has-focus:border-ring border-input shadow-2xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
7272
defaultClassNames.dropdown_root
7373
),
7474
dropdown: cn(
@@ -90,7 +90,7 @@ function Calendar({
9090
),
9191
week: cn("mt-2 flex w-full", defaultClassNames.week),
9292
week_number_header: cn(
93-
"w-[--cell-size] select-none",
93+
"w-(--cell-size) select-none",
9494
defaultClassNames.week_number_header
9595
),
9696
week_number: cn(
@@ -157,7 +157,7 @@ function Calendar({
157157
WeekNumber: ({ children, ...props }) => {
158158
return (
159159
<td {...props}>
160-
<div className="flex size-[--cell-size] items-center justify-center text-center">
160+
<div className="flex size-(--cell-size) items-center justify-center text-center">
161161
{children}
162162
</div>
163163
</td>
@@ -199,7 +199,7 @@ function CalendarDayButton({
199199
data-range-end={modifiers.range_end}
200200
data-range-middle={modifiers.range_middle}
201201
className={cn(
202-
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
202+
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-(--cell-size) flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
203203
defaultClassNames.day,
204204
className
205205
)}

src/components/ui/card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const Card = React.forwardRef<
99
<div
1010
ref={ref}
1111
className={cn(
12-
"rounded-lg border bg-card text-card-foreground shadow-sm",
12+
"rounded-lg border bg-card text-card-foreground shadow-xs",
1313
className
1414
)}
1515
{...props}

src/components/ui/dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const DialogContent = React.forwardRef<
4444
{...props}
4545
>
4646
{children}
47-
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
47+
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
4848
<X className="h-4 w-4" />
4949
<span className="sr-only">Close</span>
5050
</DialogPrimitive.Close>

0 commit comments

Comments
 (0)