From e66ba01b77ec4102af286636849afd444648c70d Mon Sep 17 00:00:00 2001 From: Collin Schaafsma Date: Mon, 13 Jan 2025 08:11:51 -0700 Subject: [PATCH 1/2] tailwind4 beta --- .eslintrc.json | 11 +- app/(app)/_components/header.tsx | 2 +- app/(app)/account/page.tsx | 2 +- app/(app)/dashboard/page.tsx | 2 +- .../sign-in/_components/sign-in-form.tsx | 2 +- app/(marketing)/page.tsx | 8 +- .../sign-up/_components/sign-up-form.tsx | 2 +- app/globals.css | 100 ++- components/ui/badge.tsx | 2 +- components/ui/button.tsx | 2 +- components/ui/card.tsx | 2 +- components/ui/chart.tsx | 4 +- components/ui/dropdown-menu.tsx | 8 +- components/ui/input.tsx | 2 +- components/ui/sheet.tsx | 2 +- components/ui/table.tsx | 2 +- package.json | 6 +- pnpm-lock.yaml | 633 +++++++++--------- postcss.config.mjs | 2 +- tailwind.config.ts | 84 --- 20 files changed, 449 insertions(+), 429 deletions(-) delete mode 100644 tailwind.config.ts diff --git a/.eslintrc.json b/.eslintrc.json index 55e9d2d..49cfe06 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,12 +4,9 @@ "extends": [ "next/core-web-vitals", "next/typescript", - "prettier", - "plugin:tailwindcss/recommended" + "prettier" ], - "plugins": ["tailwindcss"], "rules": { - "tailwindcss/no-custom-classname": "off", "@typescript-eslint/no-unused-vars": [ "error", { @@ -23,12 +20,6 @@ } ] }, - "settings": { - "tailwindcss": { - "callees": ["cn", "cva"], - "config": "tailwind.config.ts" - } - }, "overrides": [ { "files": ["*.ts", "*.tsx"], diff --git a/app/(app)/_components/header.tsx b/app/(app)/_components/header.tsx index e396a2a..d713daa 100644 --- a/app/(app)/_components/header.tsx +++ b/app/(app)/_components/header.tsx @@ -6,7 +6,7 @@ import { MobileNav } from "./nav" export function Header({ children }: Readonly<{ children?: React.ReactNode }>) { return ( -
+
{/* this allows you to optionally pass in other components like a breadcrumb or a search component from the page */} {children} diff --git a/app/(app)/account/page.tsx b/app/(app)/account/page.tsx index 9f55a4d..7ae5eac 100644 --- a/app/(app)/account/page.tsx +++ b/app/(app)/account/page.tsx @@ -36,7 +36,7 @@ export default async function AccountPage(props: {
-
+
diff --git a/app/(app)/dashboard/page.tsx b/app/(app)/dashboard/page.tsx index f867c1e..6d1ab61 100644 --- a/app/(app)/dashboard/page.tsx +++ b/app/(app)/dashboard/page.tsx @@ -33,7 +33,7 @@ export default function DashboardPage() {
-
+
diff --git a/app/(auth)/sign-in/_components/sign-in-form.tsx b/app/(auth)/sign-in/_components/sign-in-form.tsx index 6960df3..497721f 100644 --- a/app/(auth)/sign-in/_components/sign-in-form.tsx +++ b/app/(auth)/sign-in/_components/sign-in-form.tsx @@ -74,7 +74,7 @@ export default function SignInForm({ type="submit" aria-disabled={isPending} disabled={isPending} - className="flex w-full items-center justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" + className="flex w-full items-center justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-xs hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" name="provider" value="google" > diff --git a/app/(marketing)/page.tsx b/app/(marketing)/page.tsx index b9bed59..ebce068 100644 --- a/app/(marketing)/page.tsx +++ b/app/(marketing)/page.tsx @@ -26,14 +26,14 @@ export default function Home() {
Get Started Learn More @@ -100,7 +100,7 @@ export default function Home() {
- + What is included? @@ -110,7 +110,7 @@ export default function Home() { - + How do I get started? diff --git a/app/(onboarding)/sign-up/_components/sign-up-form.tsx b/app/(onboarding)/sign-up/_components/sign-up-form.tsx index cbceaca..38511da 100644 --- a/app/(onboarding)/sign-up/_components/sign-up-form.tsx +++ b/app/(onboarding)/sign-up/_components/sign-up-form.tsx @@ -74,7 +74,7 @@ export default function SignUpForm({ type="submit" aria-disabled={isPending} disabled={isPending} - className="flex w-full items-center justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" + className="flex w-full items-center justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-xs hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" name="provider" value="google" > diff --git a/app/globals.css b/app/globals.css index 06c79ee..9ddb537 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,6 +1,100 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import 'tailwindcss'; + +@variant dark (&:is(.dark *)); + +@theme { + --font-sans: var(--font-sans), ui-sans-serif, system-ui, sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + + --color-border: hsl(var(--border)); + --color-input: hsl(var(--input)); + --color-ring: hsl(var(--ring)); + --color-background: hsl(var(--background)); + --color-foreground: hsl(var(--foreground)); + + --color-primary: hsl(var(--primary)); + --color-primary-foreground: hsl(var(--primary-foreground)); + + --color-secondary: hsl(var(--secondary)); + --color-secondary-foreground: hsl(var(--secondary-foreground)); + + --color-destructive: hsl(var(--destructive)); + --color-destructive-foreground: hsl(var(--destructive-foreground)); + + --color-muted: hsl(var(--muted)); + --color-muted-foreground: hsl(var(--muted-foreground)); + + --color-accent: hsl(var(--accent)); + --color-accent-foreground: hsl(var(--accent-foreground)); + + --color-popover: hsl(var(--popover)); + --color-popover-foreground: hsl(var(--popover-foreground)); + + --color-card: hsl(var(--card)); + --color-card-foreground: hsl(var(--card-foreground)); + + --radius-lg: var(--radius); + --radius-md: calc(var(--radius) - 2px); + --radius-sm: calc(var(--radius) - 4px); + + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; + --animate-scroll: scroll 30s linear infinite; + + @keyframes accordion-down { + from { + height: 0; + } + to { + height: var(--radix-accordion-content-height); + } + } + @keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + } + to { + height: 0; + } + } + @keyframes scroll { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(-50%); + } + } +} + +@utility container { + margin-inline: auto; + padding-inline: 2rem; + @media (width >= --theme(--breakpoint-sm)) { + max-width: none; + } + @media (width >= 1400px) { + max-width: 1400px; + } +} + +/* + The default border color has changed to `currentColor` in Tailwind CSS v4, + so we've added these compatibility styles to make sure everything still + looks the same as it did with Tailwind CSS v3. + + If we ever want to remove these styles, we need to add an explicit border + color utility to any element that depends on these defaults. +*/ +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentColor); + } +} @layer base { :root { diff --git a/components/ui/badge.tsx b/components/ui/badge.tsx index cc9774f..63ac3c8 100644 --- a/components/ui/badge.tsx +++ b/components/ui/badge.tsx @@ -3,7 +3,7 @@ import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const badgeVariants = cva( - "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", + "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", { variants: { variant: { diff --git a/components/ui/button.tsx b/components/ui/button.tsx index a92a68d..756ebf6 100644 --- a/components/ui/button.tsx +++ b/components/ui/button.tsx @@ -4,7 +4,7 @@ import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { diff --git a/components/ui/card.tsx b/components/ui/card.tsx index c1da9be..9e7a61b 100644 --- a/components/ui/card.tsx +++ b/components/ui/card.tsx @@ -8,7 +8,7 @@ const Card = React.forwardRef<
( {children} - + Close diff --git a/components/ui/table.tsx b/components/ui/table.tsx index e9d5945..1acfce3 100644 --- a/components/ui/table.tsx +++ b/components/ui/table.tsx @@ -42,7 +42,7 @@ const TableFooter = React.forwardRef< tr]:last:border-b-0", + "border-t bg-muted/50 font-medium last:[&>tr]:border-b-0", className )} {...props} diff --git a/package.json b/package.json index 5f56404..b80cebd 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "^4.3.1", + "@tailwindcss/postcss": "4.0.0-beta.9", "@types/node": "^20.12.13", "@types/react": "19.0.1", "@types/react-dom": "19.0.2", @@ -66,11 +67,10 @@ "eslint": "^9.12.0", "eslint-config-next": "15.1.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-tailwindcss": "^3.17.0", "postcss": "^8", "prettier": "^3.3.3", - "prettier-plugin-tailwindcss": "^0.6.5", - "tailwindcss": "^3.4.3", + "prettier-plugin-tailwindcss": "^0.6.9", + "tailwindcss": "4.0.0-beta.9", "tsx": "^4.15.1", "typescript": "^5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c5c826..0561ba3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,7 +118,7 @@ importers: version: 2.5.3 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.13) + version: 1.0.7(tailwindcss@4.0.0-beta.9) zod: specifier: ^3.23.8 version: 3.23.8 @@ -126,6 +126,9 @@ importers: '@ianvs/prettier-plugin-sort-imports': specifier: ^4.3.1 version: 4.3.1(prettier@3.3.3) + '@tailwindcss/postcss': + specifier: 4.0.0-beta.9 + version: 4.0.0-beta.9 '@types/node': specifier: ^20.12.13 version: 20.16.10 @@ -140,16 +143,13 @@ importers: version: 0.24.2 eslint: specifier: ^9.12.0 - version: 9.12.0(jiti@1.21.6) + version: 9.12.0(jiti@2.4.2) eslint-config-next: specifier: 15.1.0 - version: 15.1.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + version: 15.1.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.12.0(jiti@1.21.6)) - eslint-plugin-tailwindcss: - specifier: ^3.17.0 - version: 3.17.4(tailwindcss@3.4.13) + version: 9.1.0(eslint@9.12.0(jiti@2.4.2)) postcss: specifier: ^8 version: 8.4.47 @@ -157,11 +157,11 @@ importers: specifier: ^3.3.3 version: 3.3.3 prettier-plugin-tailwindcss: - specifier: ^0.6.5 - version: 0.6.8(@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3))(prettier@3.3.3) + specifier: ^0.6.9 + version: 0.6.9(@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3))(prettier@3.3.3) tailwindcss: - specifier: ^3.4.3 - version: 3.4.13 + specifier: 4.0.0-beta.9 + version: 4.0.0-beta.9 tsx: specifier: ^4.15.1 version: 4.19.1 @@ -1701,6 +1701,82 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@tailwindcss/node@4.0.0-beta.9': + resolution: {integrity: sha512-KuKNhNVU5hd2L5BkXE/twBKkMnHG4wQiHes6axhDbdcRew0/YZtvlWvMIy7QmtBWnR1lM8scPhp0RXmxK/hZdw==} + + '@tailwindcss/oxide-android-arm64@4.0.0-beta.9': + resolution: {integrity: sha512-MiDpTfYvRozM+40mV2wh7GCxyEj7zIOtX3bRNaJgu0adxzZaKkylks46kBY8X91NV3ch6CQSf9Zlr0vi4U5qdw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.0.0-beta.9': + resolution: {integrity: sha512-SjdLul42NElqSHO5uINXylMNDx4KjtN3iB2o5nv0dFJV119DB0rxSCswgSEfigqyMXLyOAw3dwdoJIUFiw5Sdg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.0.0-beta.9': + resolution: {integrity: sha512-pmAs3H+pYUxAYbz2y7Q2tIfcNVlnPiikZN0SejF7JaDROg4PhQsWWpvlzHZZvD6CuyFCRXayudG8PwpJSk29dg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.0.0-beta.9': + resolution: {integrity: sha512-l39LttvdeeueMxuVNn1Z/cNK1YMWNzoIUgTsHCgF2vhY9tl4R+QcSwlviAkvw4AkiAC4El84pGBBVGswyWa8Rw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0-beta.9': + resolution: {integrity: sha512-sISzLGpVXNqOYJTo7KcdtUWQulZnW7cqFanBNbe8tCkS1KvlIuckC3MWAihLxpLrmobKh/Wv+wB1aE08VEfCww==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.0-beta.9': + resolution: {integrity: sha512-8nmeXyBchcqzQtyqjnmMxlLyxBPd+bwlnr5tDr3w6yol0z7Yrfz3T6L4QoZ4TbfhE26t6qWsUa+WQlzMJKsazg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.0.0-beta.9': + resolution: {integrity: sha512-x+Vr4SnZayMj5PEFHL7MczrvjK7fYuv2LvakPfXoDYnAOmjhrjX5go3I0Q65uUPWiZxGcS/y0JgAtQqgHSKU8A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.0.0-beta.9': + resolution: {integrity: sha512-4HpvDn3k5P623exDRbo9rjEXcIuHBj3ZV9YcnWJNE9QZ2vzKXGXxCxPuShTAg25JmH8z+b2whmFsnbxDqtgKhA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.0.0-beta.9': + resolution: {integrity: sha512-RgJrSk7uAt5QC7ez0p0uNcd/Z0yoXuBL9VvMnZVdEMDA7dcf1/zMCcFt3p2nGsGY7q2qp0hULdBEhsRP2Gq0cw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.0-beta.9': + resolution: {integrity: sha512-FCpprAxJqDT27C2OaJTAR06+BsmHS2gW7Wu0lC9E6DwiizYP0YjSVFeYvnkluE5O2J4uVR3X2GAaqxbtG4z9Ug==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.0.0-beta.9': + resolution: {integrity: sha512-KOf2YKFwrvFVX+RNJsYVC6tsWBxDMTX7/u4SpUepqkwVgq2yCObx/Sqt820lXuKgGJ9dKsTYF2wvMUGom7B71A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.0.0-beta.9': + resolution: {integrity: sha512-1bpui84CDnrjB6TI3AGR9jYUA28+VIfkrM4BH3+VXA9B80+cARtd3ON06ouA5/r/2xs4qe+T85Z1c0k5X6vLeA==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.0.0-beta.9': + resolution: {integrity: sha512-xXqMnXtg8K2FgrIlqSf3PPHgyAuSiGe7BJ6+6wma96s7VXArsN5UtTwDuksAedJtCymk1liTvLa2eRNrumlavA==} + '@types/connect@3.4.36': resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} @@ -1932,16 +2008,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2049,10 +2119,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - caniuse-lite@1.0.30001667: resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} @@ -2124,10 +2190,6 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -2152,11 +2214,6 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2262,6 +2319,11 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -2269,12 +2331,6 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -2413,6 +2469,10 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2566,12 +2626,6 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-tailwindcss@3.17.4: - resolution: {integrity: sha512-gJAEHmCq2XFfUP/+vwEfEJ9igrPeZFg+skeMtsxquSQdxba9XRk5bn0Bp9jxG1VV9/wwPKi1g3ZjItu6MIjhNg==} - engines: {node: '>=18.12.0'} - peerDependencies: - tailwindcss: ^3.4.0 - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -2985,8 +3039,8 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true jose@5.9.3: @@ -3055,16 +3109,69 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lightningcss-darwin-arm64@1.29.1: + resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} + lightningcss-darwin-x64@1.29.1: + resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.1: + resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.1: + resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.1: + resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.1: + resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.1: + resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.1: + resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.1: + resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.1: + resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lightningcss@1.29.1: + resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} + engines: {node: '>= 12.0.0'} loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} @@ -3153,9 +3260,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3250,10 +3354,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - object-inspect@1.13.2: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} @@ -3355,55 +3455,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -3469,8 +3524,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.8: - resolution: {integrity: sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==} + prettier-plugin-tailwindcss@0.6.9: + resolution: {integrity: sha512-r0i3uhaZAXYP0At5xGfJH876W3HHGHDp+LCRUJrs57PBeQ6mYHMwr25KH8NPX44F2yGTvdnH7OqCshlQx183Eg==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -3621,9 +3676,6 @@ packages: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -3842,11 +3894,6 @@ packages: babel-plugin-macros: optional: true - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3871,10 +3918,8 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@3.4.13: - resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@4.0.0-beta.9: + resolution: {integrity: sha512-96KpsfQi+/sFIOfyFnGzyy5pobuzf1iMBD9NVtelerPM/lPI2XUS4Kikw9yuKRniXXw77ov1sl7gCSKLsn6CJA==} tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -3904,13 +3949,6 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -3931,9 +3969,6 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -4019,9 +4054,6 @@ packages: resolution: {integrity: sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==} engines: {node: '>=6.14.2'} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true @@ -4110,11 +4142,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} - hasBin: true - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -4509,9 +4536,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@2.4.2))': dependencies: - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -5577,6 +5604,68 @@ snapshots: dependencies: tslib: 2.8.1 + '@tailwindcss/node@4.0.0-beta.9': + dependencies: + enhanced-resolve: 5.18.0 + jiti: 2.4.2 + tailwindcss: 4.0.0-beta.9 + + '@tailwindcss/oxide-android-arm64@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.0.0-beta.9': + optional: true + + '@tailwindcss/oxide@4.0.0-beta.9': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.0.0-beta.9 + '@tailwindcss/oxide-darwin-arm64': 4.0.0-beta.9 + '@tailwindcss/oxide-darwin-x64': 4.0.0-beta.9 + '@tailwindcss/oxide-freebsd-x64': 4.0.0-beta.9 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.0-beta.9 + '@tailwindcss/oxide-linux-arm64-gnu': 4.0.0-beta.9 + '@tailwindcss/oxide-linux-arm64-musl': 4.0.0-beta.9 + '@tailwindcss/oxide-linux-x64-gnu': 4.0.0-beta.9 + '@tailwindcss/oxide-linux-x64-musl': 4.0.0-beta.9 + '@tailwindcss/oxide-win32-arm64-msvc': 4.0.0-beta.9 + '@tailwindcss/oxide-win32-x64-msvc': 4.0.0-beta.9 + + '@tailwindcss/postcss@4.0.0-beta.9': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.0.0-beta.9 + '@tailwindcss/oxide': 4.0.0-beta.9 + lightningcss: 1.29.1 + postcss: 8.4.47 + tailwindcss: 4.0.0-beta.9 + '@types/connect@3.4.36': dependencies: '@types/node': 20.16.10 @@ -5647,15 +5736,15 @@ snapshots: '@types/shimmer@1.2.0': {} - '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.8.0 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -5665,14 +5754,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 8.8.0 '@typescript-eslint/types': 8.8.0 '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 8.8.0 debug: 4.3.7 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -5683,10 +5772,10 @@ snapshots: '@typescript-eslint/types': 8.8.0 '@typescript-eslint/visitor-keys': 8.8.0 - '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2)': dependencies: '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -5712,13 +5801,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.8.0 '@typescript-eslint/types': 8.8.0 '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript @@ -5858,15 +5947,11 @@ snapshots: ansi-styles@6.2.1: {} - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - arg@5.0.2: {} - argparse@2.0.1: {} aria-hidden@1.2.4: @@ -6010,8 +6095,6 @@ snapshots: callsites@3.1.0: {} - camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001667: {} chalk@2.4.2: @@ -6088,8 +6171,6 @@ snapshots: commander@2.20.3: {} - commander@4.1.1: {} - commondir@1.0.1: {} concat-map@0.0.1: {} @@ -6111,8 +6192,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cssesc@3.0.0: {} - csstype@3.1.3: {} d3-array@3.2.4: @@ -6222,15 +6301,13 @@ snapshots: delayed-stream@1.0.0: {} + detect-libc@1.0.3: {} + detect-libc@2.0.3: optional: true detect-node-es@1.1.0: {} - didyoumean@1.2.2: {} - - dlv@1.1.3: {} - doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -6298,6 +6375,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@4.5.0: {} es-abstract@1.23.3: @@ -6497,19 +6579,19 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@15.1.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2): + eslint-config-next@15.1.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2): dependencies: '@next/eslint-plugin-next': 15.1.0 '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - eslint: 9.12.0(jiti@1.21.6) + '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) + eslint: 9.12.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)) - eslint-plugin-jsx-a11y: 6.10.0(eslint@9.12.0(jiti@1.21.6)) - eslint-plugin-react: 7.37.1(eslint@9.12.0(jiti@1.21.6)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.12.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.12.0(jiti@2.4.2)) + eslint-plugin-react: 7.37.1(eslint@9.12.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.12.0(jiti@2.4.2)) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -6517,9 +6599,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@1.21.6)): + eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@2.4.2)): dependencies: - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) eslint-import-resolver-node@0.3.9: dependencies: @@ -6529,37 +6611,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.12.0(jiti@1.21.6) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6)) + eslint: 9.12.0(jiti@2.4.2) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.4.2)))(eslint@9.12.0(jiti@2.4.2)) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.4.2)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.4.2)))(eslint@9.12.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - eslint: 9.12.0(jiti@1.21.6) + '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) + eslint: 9.12.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -6568,9 +6650,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.4.2)))(eslint@9.12.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -6582,13 +6664,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@9.12.0(jiti@2.4.2))(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.0(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-jsx-a11y@6.10.0(eslint@9.12.0(jiti@2.4.2)): dependencies: aria-query: 5.1.3 array-includes: 3.1.8 @@ -6599,7 +6681,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -6608,11 +6690,11 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.0 - eslint-plugin-react-hooks@5.0.0(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-react-hooks@5.0.0(eslint@9.12.0(jiti@2.4.2)): dependencies: - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) - eslint-plugin-react@7.37.1(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-react@7.37.1(eslint@9.12.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -6620,7 +6702,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -6634,12 +6716,6 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-tailwindcss@3.17.4(tailwindcss@3.4.13): - dependencies: - fast-glob: 3.3.2 - postcss: 8.4.47 - tailwindcss: 3.4.13 - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -6654,9 +6730,9 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@9.12.0(jiti@1.21.6): + eslint@9.12.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.6.0 @@ -6692,7 +6768,7 @@ snapshots: optionator: 0.9.4 text-table: 0.2.0 optionalDependencies: - jiti: 1.21.6 + jiti: 2.4.2 transitivePeerDependencies: - supports-color @@ -7086,7 +7162,7 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jiti@1.21.6: {} + jiti@2.4.2: {} jose@5.9.3: {} @@ -7146,11 +7222,50 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@2.1.0: {} + lightningcss-darwin-arm64@1.29.1: + optional: true + + lightningcss-darwin-x64@1.29.1: + optional: true - lilconfig@3.1.2: {} + lightningcss-freebsd-x64@1.29.1: + optional: true - lines-and-columns@1.2.4: {} + lightningcss-linux-arm-gnueabihf@1.29.1: + optional: true + + lightningcss-linux-arm64-gnu@1.29.1: + optional: true + + lightningcss-linux-arm64-musl@1.29.1: + optional: true + + lightningcss-linux-x64-gnu@1.29.1: + optional: true + + lightningcss-linux-x64-musl@1.29.1: + optional: true + + lightningcss-win32-arm64-msvc@1.29.1: + optional: true + + lightningcss-win32-x64-msvc@1.29.1: + optional: true + + lightningcss@1.29.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.1 + lightningcss-darwin-x64: 1.29.1 + lightningcss-freebsd-x64: 1.29.1 + lightningcss-linux-arm-gnueabihf: 1.29.1 + lightningcss-linux-arm64-gnu: 1.29.1 + lightningcss-linux-arm64-musl: 1.29.1 + lightningcss-linux-x64-gnu: 1.29.1 + lightningcss-linux-x64-musl: 1.29.1 + lightningcss-win32-arm64-msvc: 1.29.1 + lightningcss-win32-x64-msvc: 1.29.1 loader-runner@4.3.0: {} @@ -7225,12 +7340,6 @@ snapshots: ms@2.1.3: {} - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - nanoid@3.3.7: {} nanoid@5.0.7: {} @@ -7297,8 +7406,6 @@ snapshots: object-assign@4.1.1: {} - object-hash@3.0.0: {} - object-inspect@1.13.2: {} object-is@1.1.6: @@ -7411,43 +7518,8 @@ snapshots: picomatch@2.3.1: {} - pify@2.3.0: {} - - pirates@4.0.6: {} - possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - - postcss-js@4.0.1(postcss@8.4.47): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.47 - - postcss-load-config@4.0.2(postcss@8.4.47): - dependencies: - lilconfig: 3.1.2 - yaml: 2.5.1 - optionalDependencies: - postcss: 8.4.47 - - postcss-nested@6.2.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-value-parser@4.2.0: {} - postcss@8.4.31: dependencies: nanoid: 3.3.7 @@ -7506,7 +7578,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.8(@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3))(prettier@3.3.3): + prettier-plugin-tailwindcss@0.6.9(@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3))(prettier@3.3.3): dependencies: prettier: 3.3.3 optionalDependencies: @@ -7603,10 +7675,6 @@ snapshots: react@19.0.0: {} - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -7891,16 +7959,6 @@ snapshots: optionalDependencies: '@babel/core': 7.25.7 - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -7917,36 +7975,11 @@ snapshots: tailwind-merge@2.5.3: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.13): + tailwindcss-animate@1.0.7(tailwindcss@4.0.0-beta.9): dependencies: - tailwindcss: 3.4.13 + tailwindcss: 4.0.0-beta.9 - tailwindcss@3.4.13: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.6 - lilconfig: 2.1.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.0 - postcss: 8.4.47 - postcss-import: 15.1.0(postcss@8.4.47) - postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.2(postcss@8.4.47) - postcss-nested: 6.2.0(postcss@8.4.47) - postcss-selector-parser: 6.1.2 - resolve: 1.22.8 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node + tailwindcss@4.0.0-beta.9: {} tapable@2.2.1: {} @@ -7970,14 +8003,6 @@ snapshots: text-table@0.2.0: {} - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - tiny-invariant@1.3.3: {} to-fast-properties@2.0.0: {} @@ -7992,8 +8017,6 @@ snapshots: dependencies: typescript: 5.6.2 - ts-interface-checker@0.1.13: {} - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -8097,8 +8120,6 @@ snapshots: dependencies: node-gyp-build: 4.8.2 - util-deprecate@1.0.2: {} - uuid@9.0.1: {} victory-vendor@36.9.2: @@ -8141,7 +8162,7 @@ snapshots: acorn-import-attributes: 1.9.5(acorn@8.12.1) browserslist: 4.24.0 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 + enhanced-resolve: 5.18.0 es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 @@ -8231,8 +8252,6 @@ snapshots: yallist@3.1.1: {} - yaml@2.5.1: {} - yocto-queue@0.1.0: {} zod@3.23.8: {} diff --git a/postcss.config.mjs b/postcss.config.mjs index b1d7bf4..2ba550b 100644 --- a/postcss.config.mjs +++ b/postcss.config.mjs @@ -1,7 +1,7 @@ /** @type {import('postcss-load-config').Config} */ const config = { plugins: { - tailwindcss: {} + '@tailwindcss/postcss': {} } } diff --git a/tailwind.config.ts b/tailwind.config.ts deleted file mode 100644 index 7f98ed5..0000000 --- a/tailwind.config.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type { Config } from "tailwindcss" -import { fontFamily } from "tailwindcss/defaultTheme" - -const config = { - darkMode: ["class"], - content: ["./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}"], - prefix: "", - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - fontFamily: { - sans: ["var(--font-sans)", ...fontFamily.sans], - }, - colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", - }, - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, - keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, - }, - scroll: { - "0%": { transform: "translateX(0)" }, - "100%": { transform: "translateX(-50%)" }, - }, - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - scroll: "scroll 30s linear infinite", - }, - }, - }, - plugins: [require("tailwindcss-animate")], -} satisfies Config - -export default config From ba661b5bec0c78536f6106f5c7e5664913238fd2 Mon Sep 17 00:00:00 2001 From: Collin Schaafsma Date: Mon, 13 Jan 2025 08:18:56 -0700 Subject: [PATCH 2/2] formatting --- app/(app)/_components/header.tsx | 2 +- app/(app)/_components/nav/link.tsx | 4 ++-- .../account/_components/paginator-provider.tsx | 2 +- .../account/_components/payment-method-card.tsx | 2 +- .../account/_components/subscription-plan-card.tsx | 2 +- app/(app)/dashboard/_components/customers-card.tsx | 4 ++-- app/(app)/dashboard/_components/gross-card.tsx | 4 ++-- app/(app)/dashboard/_components/mrr-card.tsx | 4 ++-- .../_components/newsletter-contacts-card.tsx | 4 ++-- app/(app)/error.tsx | 4 ++-- app/(app)/layout.tsx | 6 +++--- app/(auth)/layout.tsx | 2 +- app/(auth)/sign-in/_components/sign-in-form.tsx | 10 +++++----- app/(marketing)/@comingSoon/page.tsx | 4 ++-- app/(marketing)/_components/header.tsx | 2 +- app/(marketing)/_components/products.tsx | 10 +++++----- .../_components/subscription-interval.tsx | 2 +- app/(marketing)/checkout/thank-you/page.tsx | 4 ++-- app/(marketing)/layout.tsx | 2 +- app/(marketing)/page.tsx | 10 +++++----- app/(onboarding)/layout.tsx | 2 +- .../sign-up/_components/sign-up-form.tsx | 10 +++++----- components/theme-toggle.tsx | 4 ++-- components/ui/breadcrumb.tsx | 6 +++--- components/ui/card.tsx | 6 +++--- components/ui/chart.tsx | 12 +++++------- components/ui/dropdown-menu.tsx | 14 +++++++------- components/ui/input.tsx | 2 +- components/ui/sheet.tsx | 8 ++++---- components/ui/skeleton.tsx | 2 +- components/ui/table.tsx | 8 ++++---- components/ui/tooltip.tsx | 2 +- 32 files changed, 79 insertions(+), 81 deletions(-) diff --git a/app/(app)/_components/header.tsx b/app/(app)/_components/header.tsx index d713daa..e66934e 100644 --- a/app/(app)/_components/header.tsx +++ b/app/(app)/_components/header.tsx @@ -6,7 +6,7 @@ import { MobileNav } from "./nav" export function Header({ children }: Readonly<{ children?: React.ReactNode }>) { return ( -
+
{/* this allows you to optionally pass in other components like a breadcrumb or a search component from the page */} {children} diff --git a/app/(app)/_components/nav/link.tsx b/app/(app)/_components/nav/link.tsx index 03ca2e8..5f84544 100644 --- a/app/(app)/_components/nav/link.tsx +++ b/app/(app)/_components/nav/link.tsx @@ -20,7 +20,7 @@ export function DesktopNavLink({ ({ } setHasMore(responseToPaginate?.hasMore || false) - }, [cursor]) + }, [cursor, responseToPaginate]) const handleNextPage = () => { if (responseToPaginate?.data.length) { diff --git a/app/(app)/account/_components/payment-method-card.tsx b/app/(app)/account/_components/payment-method-card.tsx index 2d0c986..d1ae33a 100644 --- a/app/(app)/account/_components/payment-method-card.tsx +++ b/app/(app)/account/_components/payment-method-card.tsx @@ -32,7 +32,7 @@ function PaymentMethodCardSkeleton() { function PaymentMethodCardErrorFallback() { return ( <> - +
We are sorry.
An error occurred while fetching payment methods. diff --git a/app/(app)/account/_components/subscription-plan-card.tsx b/app/(app)/account/_components/subscription-plan-card.tsx index ef42205..f9dbed8 100644 --- a/app/(app)/account/_components/subscription-plan-card.tsx +++ b/app/(app)/account/_components/subscription-plan-card.tsx @@ -45,7 +45,7 @@ function SubscriptionPlanSkeleton() { function SubscriptionPlanErrorFallback() { return ( <> - +
We are sorry.
An error occurred while fetching subscription plan. diff --git a/app/(app)/dashboard/_components/customers-card.tsx b/app/(app)/dashboard/_components/customers-card.tsx index 3a6088c..5da1ef1 100644 --- a/app/(app)/dashboard/_components/customers-card.tsx +++ b/app/(app)/dashboard/_components/customers-card.tsx @@ -54,7 +54,7 @@ export async function LoadCustomersCard() { return ( <>
{customersData.current}
-

+

{customersData.percentageChange >= 0 ? "+" : ""} {customersData.percentageChange.toFixed(1)}% from last month

@@ -82,7 +82,7 @@ export function CustomersCard() { Customers - + }> diff --git a/app/(app)/dashboard/_components/gross-card.tsx b/app/(app)/dashboard/_components/gross-card.tsx index fd32496..983b4a9 100644 --- a/app/(app)/dashboard/_components/gross-card.tsx +++ b/app/(app)/dashboard/_components/gross-card.tsx @@ -55,7 +55,7 @@ async function LoadGrossCard() { return ( <>
${grossData.current}
-

+

{grossData.percentageChange >= 0 ? "+" : ""} {grossData.percentageChange.toFixed(1)}% from last month

@@ -83,7 +83,7 @@ export function GrossCard() { Gross - + }> diff --git a/app/(app)/dashboard/_components/mrr-card.tsx b/app/(app)/dashboard/_components/mrr-card.tsx index 8131e59..5d6f4a1 100644 --- a/app/(app)/dashboard/_components/mrr-card.tsx +++ b/app/(app)/dashboard/_components/mrr-card.tsx @@ -54,7 +54,7 @@ export async function LoadMRRCard() { return ( <>
${mrrData.current}
-

+

{mrrData.percentageChange >= 0 ? "+" : ""} {mrrData.percentageChange.toFixed(1)}% from last month

@@ -82,7 +82,7 @@ export function MRRCard() { MRR - + }> diff --git a/app/(app)/dashboard/_components/newsletter-contacts-card.tsx b/app/(app)/dashboard/_components/newsletter-contacts-card.tsx index 6f8d54d..57fcd4b 100644 --- a/app/(app)/dashboard/_components/newsletter-contacts-card.tsx +++ b/app/(app)/dashboard/_components/newsletter-contacts-card.tsx @@ -57,7 +57,7 @@ async function LoadNewsletterContactsCard() { return ( <>
{data.current}
-

+

{data.percentageChange >= 0 ? "+" : ""} {data.percentageChange.toFixed(1)}% from last month

@@ -97,7 +97,7 @@ export function NewsletterContactsCard() { Newsletter Contacts - + }> diff --git a/app/(app)/error.tsx b/app/(app)/error.tsx index df0116f..e4d6ec7 100644 --- a/app/(app)/error.tsx +++ b/app/(app)/error.tsx @@ -18,12 +18,12 @@ export default function ErrorPage({ }, [error]) return ( -
+

Something went wrong

-

+

We experienced an error while processing your request. Our team has been notified and will investigate the issue.

diff --git a/app/(app)/layout.tsx b/app/(app)/layout.tsx index 659a947..fa09913 100644 --- a/app/(app)/layout.tsx +++ b/app/(app)/layout.tsx @@ -44,7 +44,7 @@ export default function RootLayout({ @@ -56,8 +56,8 @@ export default function RootLayout({ disableTransitionOnChange > -
-