├── app ├── favicon.ico ├── fonts │ ├── GeistVF.woff │ └── GeistMonoVF.woff ├── globals.css ├── layout.tsx └── page.tsx ├── postcss.config.mjs ├── next.config.mjs ├── utils └── utils.ts ├── tailwind.config.ts ├── .gitignore ├── package.json ├── tsconfig.json ├── components ├── keypad.tsx └── key-button.tsx ├── README.md └── pnpm-lock.yaml /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzzshawn/Buttons/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /app/fonts/GeistVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzzshawn/Buttons/HEAD/app/fonts/GeistVF.woff -------------------------------------------------------------------------------- /app/fonts/GeistMonoVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzzshawn/Buttons/HEAD/app/fonts/GeistMonoVF.woff -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | images: { 4 | domains: ['assets.codepen.io'], 5 | }, 6 | }; 7 | 8 | export default nextConfig; 9 | -------------------------------------------------------------------------------- /utils/utils.ts: -------------------------------------------------------------------------------- 1 | import { ClassValue, clsx } from "clsx"; 2 | import { twMerge } from "tailwind-merge"; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: [ 5 | "./pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | colors: { 12 | background: "var(--background)", 13 | foreground: "var(--foreground)", 14 | }, 15 | }, 16 | }, 17 | plugins: [], 18 | }; 19 | export default config; 20 | -------------------------------------------------------------------------------- /app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --background: #ffffff; 7 | --foreground: #171717; 8 | } 9 | 10 | @media (prefers-color-scheme: dark) { 11 | :root { 12 | --background: #0a0a0a; 13 | --foreground: #ededed; 14 | } 15 | } 16 | 17 | body { 18 | color: var(--foreground); 19 | background: var(--background); 20 | font-family: Arial, Helvetica, sans-serif; 21 | } 22 | 23 | @layer utilities { 24 | .text-balance { 25 | text-wrap: balance; 26 | } 27 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "archives", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "clsx": "^2.1.1", 13 | "next": "14.2.30", 14 | "react": "^18", 15 | "react-dom": "^18", 16 | "tailwind-merge": "^3.3.1" 17 | }, 18 | "devDependencies": { 19 | "@types/node": "^20", 20 | "@types/react": "^18", 21 | "@types/react-dom": "^18", 22 | "postcss": "^8", 23 | "tailwindcss": "^3.4.1", 24 | "typescript": "^5" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import localFont from "next/font/local"; 3 | import "./globals.css"; 4 | 5 | const geistSans = localFont({ 6 | src: "./fonts/GeistVF.woff", 7 | variable: "--font-geist-sans", 8 | weight: "100 900", 9 | }); 10 | const geistMono = localFont({ 11 | src: "./fonts/GeistMonoVF.woff", 12 | variable: "--font-geist-mono", 13 | weight: "100 900", 14 | }); 15 | 16 | export const metadata: Metadata = { 17 | title: "Buttons", 18 | description: "Generated by create next app", 19 | }; 20 | 21 | export default function RootLayout({ 22 | children, 23 | }: Readonly<{ 24 | children: React.ReactNode; 25 | }>) { 26 | return ( 27 | 28 | 31 | {children} 32 | 33 | 34 | ); 35 | } 36 | -------------------------------------------------------------------------------- /components/keypad.tsx: -------------------------------------------------------------------------------- 1 | import Image from 'next/image'; 2 | import React from 'react' 3 | import KeyButton from './key-button'; 4 | 5 | const Keypad = ({ 6 | keys, 7 | pressedKeys, 8 | onKeyPress 9 | }: { 10 | keys: any; 11 | pressedKeys: Set; 12 | onKeyPress: (id: string) => void; 13 | }) => { 14 | return ( 15 |
17 |
18 | 19 |
20 | 21 | {Object.entries(keys).map(([keyId, keyConfig]: [string, any]) => ( 22 | 28 | ))} 29 | 30 | 31 |
32 | ) 33 | } 34 | 35 | export default Keypad -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | # or 12 | pnpm dev 13 | # or 14 | bun dev 15 | ``` 16 | 17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 | 19 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 | 21 | This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. 22 | 23 | ## Learn More 24 | 25 | To learn more about Next.js, take a look at the following resources: 26 | 27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 | 30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! 31 | 32 | ## Deploy on Vercel 33 | 34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 | 36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. 37 | -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import Keypad from "@/components/keypad"; 3 | import Image from "next/image"; 4 | import { useEffect, useRef, useState } from "react"; 5 | 6 | export default function Home() { 7 | const [keys] = useState({ 8 | one: { 9 | key: "Meta", 10 | label: "⌘" 11 | }, 12 | two: { 13 | key: "c", 14 | label: "C" 15 | }, 16 | three: { 17 | key: "v", 18 | label: "V" 19 | }, 20 | four: { 21 | key: "Shift", 22 | label: "⇧" 23 | }, 24 | five: { 25 | key: "Escape", 26 | label: "🗿" 27 | }, 28 | }); 29 | 30 | const [pressedKeys, setPressedKeys] = useState>(new Set()); 31 | const audioRef = useRef(null); 32 | 33 | useEffect(() => { 34 | audioRef.current = new Audio("https://cdn.freesound.org/previews/378/378085_6260145-lq.mp3"); 35 | }, []) 36 | 37 | useEffect(() => { 38 | const handleKeyDown = (event: KeyboardEvent) => { 39 | const keyConfig = Object.entries(keys).find(([_, keyData]) => keyData.key === event.key) 40 | 41 | if (keyConfig) { 42 | setPressedKeys((prev) => new Set(prev).add(keyConfig[0])) 43 | playClickSound() 44 | } 45 | } 46 | 47 | const handleKeyUp = (event: KeyboardEvent) => { 48 | const keyConfig = Object.entries(keys).find( 49 | ([_, keyData]) => keyData.key === event.key || event.key === "Meta", 50 | ) 51 | 52 | if (keyConfig) { 53 | setPressedKeys((prev) => { 54 | const newSet = new Set(prev) 55 | newSet.delete(keyConfig[0]) 56 | return newSet 57 | }) 58 | } 59 | } 60 | 61 | window.addEventListener("keydown", handleKeyDown) 62 | window.addEventListener("keyup", handleKeyUp) 63 | 64 | return () => { 65 | window.removeEventListener("keydown", handleKeyDown) 66 | window.removeEventListener("keyup", handleKeyUp) 67 | } 68 | }, [keys]) 69 | 70 | const playClickSound = () => { 71 | if (!audioRef.current) return; 72 | audioRef.current.volume = 0.4; 73 | audioRef.current.currentTime = 0; 74 | audioRef.current.play(); 75 | } 76 | 77 | const handleKeyPress = (id: string) => { 78 | setPressedKeys(p => new Set(p).add(id)); 79 | playClickSound(); 80 | 81 | setTimeout(() => { 82 | setPressedKeys((prev) => { 83 | const newSet = new Set(prev) 84 | newSet.delete(id) 85 | return newSet 86 | }) 87 | }, 10) 88 | } 89 | 90 | return ( 91 |
92 | 93 |
94 | ); 95 | } 96 | -------------------------------------------------------------------------------- /components/key-button.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from '@/utils/utils'; 2 | import path from 'path'; 3 | import React from 'react' 4 | 5 | const KeyButton = ({ id, keys, isPressed, onPress }: { 6 | id: string; 7 | keys: any; 8 | isPressed: boolean; 9 | onPress: (id: string) => void; 10 | }) => { 11 | 12 | const getPositionClasses = () => { 13 | switch (id) { 14 | case "one": 15 | return "left-[13.7%] bottom-[56.4%]" 16 | case "two": 17 | return "left-[25.8%] bottom-[47.4%]" 18 | case "three": 19 | return "left-[38%] bottom-[38.3%]" 20 | case "four": 21 | return "left-[50.4%] bottom-[29.1%]" 22 | case "five": 23 | return "left-[62.7%] bottom-[19.9%]" 24 | default: 25 | return "" 26 | } 27 | } 28 | 29 | return ( 30 | 58 | ) 59 | } 60 | 61 | export default KeyButton -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | clsx: 12 | specifier: ^2.1.1 13 | version: 2.1.1 14 | next: 15 | specifier: 14.2.30 16 | version: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 17 | react: 18 | specifier: ^18 19 | version: 18.3.1 20 | react-dom: 21 | specifier: ^18 22 | version: 18.3.1(react@18.3.1) 23 | tailwind-merge: 24 | specifier: ^3.3.1 25 | version: 3.3.1 26 | devDependencies: 27 | '@types/node': 28 | specifier: ^20 29 | version: 20.19.9 30 | '@types/react': 31 | specifier: ^18 32 | version: 18.3.23 33 | '@types/react-dom': 34 | specifier: ^18 35 | version: 18.3.7(@types/react@18.3.23) 36 | postcss: 37 | specifier: ^8 38 | version: 8.5.6 39 | tailwindcss: 40 | specifier: ^3.4.1 41 | version: 3.4.17 42 | typescript: 43 | specifier: ^5 44 | version: 5.8.3 45 | 46 | packages: 47 | 48 | '@alloc/quick-lru@5.2.0': 49 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 50 | engines: {node: '>=10'} 51 | 52 | '@isaacs/cliui@8.0.2': 53 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 54 | engines: {node: '>=12'} 55 | 56 | '@jridgewell/gen-mapping@0.3.12': 57 | resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} 58 | 59 | '@jridgewell/resolve-uri@3.1.2': 60 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 61 | engines: {node: '>=6.0.0'} 62 | 63 | '@jridgewell/sourcemap-codec@1.5.4': 64 | resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} 65 | 66 | '@jridgewell/trace-mapping@0.3.29': 67 | resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} 68 | 69 | '@next/env@14.2.30': 70 | resolution: {integrity: sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==} 71 | 72 | '@next/swc-darwin-arm64@14.2.30': 73 | resolution: {integrity: sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==} 74 | engines: {node: '>= 10'} 75 | cpu: [arm64] 76 | os: [darwin] 77 | 78 | '@next/swc-darwin-x64@14.2.30': 79 | resolution: {integrity: sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==} 80 | engines: {node: '>= 10'} 81 | cpu: [x64] 82 | os: [darwin] 83 | 84 | '@next/swc-linux-arm64-gnu@14.2.30': 85 | resolution: {integrity: sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==} 86 | engines: {node: '>= 10'} 87 | cpu: [arm64] 88 | os: [linux] 89 | 90 | '@next/swc-linux-arm64-musl@14.2.30': 91 | resolution: {integrity: sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==} 92 | engines: {node: '>= 10'} 93 | cpu: [arm64] 94 | os: [linux] 95 | 96 | '@next/swc-linux-x64-gnu@14.2.30': 97 | resolution: {integrity: sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==} 98 | engines: {node: '>= 10'} 99 | cpu: [x64] 100 | os: [linux] 101 | 102 | '@next/swc-linux-x64-musl@14.2.30': 103 | resolution: {integrity: sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==} 104 | engines: {node: '>= 10'} 105 | cpu: [x64] 106 | os: [linux] 107 | 108 | '@next/swc-win32-arm64-msvc@14.2.30': 109 | resolution: {integrity: sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==} 110 | engines: {node: '>= 10'} 111 | cpu: [arm64] 112 | os: [win32] 113 | 114 | '@next/swc-win32-ia32-msvc@14.2.30': 115 | resolution: {integrity: sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==} 116 | engines: {node: '>= 10'} 117 | cpu: [ia32] 118 | os: [win32] 119 | 120 | '@next/swc-win32-x64-msvc@14.2.30': 121 | resolution: {integrity: sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==} 122 | engines: {node: '>= 10'} 123 | cpu: [x64] 124 | os: [win32] 125 | 126 | '@nodelib/fs.scandir@2.1.5': 127 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 128 | engines: {node: '>= 8'} 129 | 130 | '@nodelib/fs.stat@2.0.5': 131 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 132 | engines: {node: '>= 8'} 133 | 134 | '@nodelib/fs.walk@1.2.8': 135 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 136 | engines: {node: '>= 8'} 137 | 138 | '@pkgjs/parseargs@0.11.0': 139 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 140 | engines: {node: '>=14'} 141 | 142 | '@swc/counter@0.1.3': 143 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 144 | 145 | '@swc/helpers@0.5.5': 146 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} 147 | 148 | '@types/node@20.19.9': 149 | resolution: {integrity: sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==} 150 | 151 | '@types/prop-types@15.7.15': 152 | resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} 153 | 154 | '@types/react-dom@18.3.7': 155 | resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} 156 | peerDependencies: 157 | '@types/react': ^18.0.0 158 | 159 | '@types/react@18.3.23': 160 | resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==} 161 | 162 | ansi-regex@5.0.1: 163 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 164 | engines: {node: '>=8'} 165 | 166 | ansi-regex@6.1.0: 167 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 168 | engines: {node: '>=12'} 169 | 170 | ansi-styles@4.3.0: 171 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 172 | engines: {node: '>=8'} 173 | 174 | ansi-styles@6.2.1: 175 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 176 | engines: {node: '>=12'} 177 | 178 | any-promise@1.3.0: 179 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 180 | 181 | anymatch@3.1.3: 182 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 183 | engines: {node: '>= 8'} 184 | 185 | arg@5.0.2: 186 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 187 | 188 | balanced-match@1.0.2: 189 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 190 | 191 | binary-extensions@2.3.0: 192 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 193 | engines: {node: '>=8'} 194 | 195 | brace-expansion@2.0.2: 196 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 197 | 198 | braces@3.0.3: 199 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 200 | engines: {node: '>=8'} 201 | 202 | busboy@1.6.0: 203 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 204 | engines: {node: '>=10.16.0'} 205 | 206 | camelcase-css@2.0.1: 207 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 208 | engines: {node: '>= 6'} 209 | 210 | caniuse-lite@1.0.30001727: 211 | resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} 212 | 213 | chokidar@3.6.0: 214 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 215 | engines: {node: '>= 8.10.0'} 216 | 217 | client-only@0.0.1: 218 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 219 | 220 | clsx@2.1.1: 221 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 222 | engines: {node: '>=6'} 223 | 224 | color-convert@2.0.1: 225 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 226 | engines: {node: '>=7.0.0'} 227 | 228 | color-name@1.1.4: 229 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 230 | 231 | commander@4.1.1: 232 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 233 | engines: {node: '>= 6'} 234 | 235 | cross-spawn@7.0.6: 236 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 237 | engines: {node: '>= 8'} 238 | 239 | cssesc@3.0.0: 240 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 241 | engines: {node: '>=4'} 242 | hasBin: true 243 | 244 | csstype@3.1.3: 245 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 246 | 247 | didyoumean@1.2.2: 248 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 249 | 250 | dlv@1.1.3: 251 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 252 | 253 | eastasianwidth@0.2.0: 254 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 255 | 256 | emoji-regex@8.0.0: 257 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 258 | 259 | emoji-regex@9.2.2: 260 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 261 | 262 | fast-glob@3.3.3: 263 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 264 | engines: {node: '>=8.6.0'} 265 | 266 | fastq@1.19.1: 267 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 268 | 269 | fill-range@7.1.1: 270 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 271 | engines: {node: '>=8'} 272 | 273 | foreground-child@3.3.1: 274 | resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 275 | engines: {node: '>=14'} 276 | 277 | fsevents@2.3.3: 278 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 279 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 280 | os: [darwin] 281 | 282 | function-bind@1.1.2: 283 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 284 | 285 | glob-parent@5.1.2: 286 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 287 | engines: {node: '>= 6'} 288 | 289 | glob-parent@6.0.2: 290 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 291 | engines: {node: '>=10.13.0'} 292 | 293 | glob@10.4.5: 294 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 295 | hasBin: true 296 | 297 | graceful-fs@4.2.11: 298 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 299 | 300 | hasown@2.0.2: 301 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 302 | engines: {node: '>= 0.4'} 303 | 304 | is-binary-path@2.1.0: 305 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 306 | engines: {node: '>=8'} 307 | 308 | is-core-module@2.16.1: 309 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 310 | engines: {node: '>= 0.4'} 311 | 312 | is-extglob@2.1.1: 313 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 314 | engines: {node: '>=0.10.0'} 315 | 316 | is-fullwidth-code-point@3.0.0: 317 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 318 | engines: {node: '>=8'} 319 | 320 | is-glob@4.0.3: 321 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 322 | engines: {node: '>=0.10.0'} 323 | 324 | is-number@7.0.0: 325 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 326 | engines: {node: '>=0.12.0'} 327 | 328 | isexe@2.0.0: 329 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 330 | 331 | jackspeak@3.4.3: 332 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 333 | 334 | jiti@1.21.7: 335 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 336 | hasBin: true 337 | 338 | js-tokens@4.0.0: 339 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 340 | 341 | lilconfig@3.1.3: 342 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 343 | engines: {node: '>=14'} 344 | 345 | lines-and-columns@1.2.4: 346 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 347 | 348 | loose-envify@1.4.0: 349 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 350 | hasBin: true 351 | 352 | lru-cache@10.4.3: 353 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 354 | 355 | merge2@1.4.1: 356 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 357 | engines: {node: '>= 8'} 358 | 359 | micromatch@4.0.8: 360 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 361 | engines: {node: '>=8.6'} 362 | 363 | minimatch@9.0.5: 364 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 365 | engines: {node: '>=16 || 14 >=14.17'} 366 | 367 | minipass@7.1.2: 368 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 369 | engines: {node: '>=16 || 14 >=14.17'} 370 | 371 | mz@2.7.0: 372 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 373 | 374 | nanoid@3.3.11: 375 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 376 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 377 | hasBin: true 378 | 379 | next@14.2.30: 380 | resolution: {integrity: sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==} 381 | engines: {node: '>=18.17.0'} 382 | hasBin: true 383 | peerDependencies: 384 | '@opentelemetry/api': ^1.1.0 385 | '@playwright/test': ^1.41.2 386 | react: ^18.2.0 387 | react-dom: ^18.2.0 388 | sass: ^1.3.0 389 | peerDependenciesMeta: 390 | '@opentelemetry/api': 391 | optional: true 392 | '@playwright/test': 393 | optional: true 394 | sass: 395 | optional: true 396 | 397 | normalize-path@3.0.0: 398 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 399 | engines: {node: '>=0.10.0'} 400 | 401 | object-assign@4.1.1: 402 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 403 | engines: {node: '>=0.10.0'} 404 | 405 | object-hash@3.0.0: 406 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 407 | engines: {node: '>= 6'} 408 | 409 | package-json-from-dist@1.0.1: 410 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 411 | 412 | path-key@3.1.1: 413 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 414 | engines: {node: '>=8'} 415 | 416 | path-parse@1.0.7: 417 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 418 | 419 | path-scurry@1.11.1: 420 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 421 | engines: {node: '>=16 || 14 >=14.18'} 422 | 423 | picocolors@1.1.1: 424 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 425 | 426 | picomatch@2.3.1: 427 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 428 | engines: {node: '>=8.6'} 429 | 430 | pify@2.3.0: 431 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 432 | engines: {node: '>=0.10.0'} 433 | 434 | pirates@4.0.7: 435 | resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} 436 | engines: {node: '>= 6'} 437 | 438 | postcss-import@15.1.0: 439 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 440 | engines: {node: '>=14.0.0'} 441 | peerDependencies: 442 | postcss: ^8.0.0 443 | 444 | postcss-js@4.0.1: 445 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 446 | engines: {node: ^12 || ^14 || >= 16} 447 | peerDependencies: 448 | postcss: ^8.4.21 449 | 450 | postcss-load-config@4.0.2: 451 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 452 | engines: {node: '>= 14'} 453 | peerDependencies: 454 | postcss: '>=8.0.9' 455 | ts-node: '>=9.0.0' 456 | peerDependenciesMeta: 457 | postcss: 458 | optional: true 459 | ts-node: 460 | optional: true 461 | 462 | postcss-nested@6.2.0: 463 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 464 | engines: {node: '>=12.0'} 465 | peerDependencies: 466 | postcss: ^8.2.14 467 | 468 | postcss-selector-parser@6.1.2: 469 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 470 | engines: {node: '>=4'} 471 | 472 | postcss-value-parser@4.2.0: 473 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 474 | 475 | postcss@8.4.31: 476 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 477 | engines: {node: ^10 || ^12 || >=14} 478 | 479 | postcss@8.5.6: 480 | resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 481 | engines: {node: ^10 || ^12 || >=14} 482 | 483 | queue-microtask@1.2.3: 484 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 485 | 486 | react-dom@18.3.1: 487 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 488 | peerDependencies: 489 | react: ^18.3.1 490 | 491 | react@18.3.1: 492 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 493 | engines: {node: '>=0.10.0'} 494 | 495 | read-cache@1.0.0: 496 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 497 | 498 | readdirp@3.6.0: 499 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 500 | engines: {node: '>=8.10.0'} 501 | 502 | resolve@1.22.10: 503 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 504 | engines: {node: '>= 0.4'} 505 | hasBin: true 506 | 507 | reusify@1.1.0: 508 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 509 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 510 | 511 | run-parallel@1.2.0: 512 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 513 | 514 | scheduler@0.23.2: 515 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 516 | 517 | shebang-command@2.0.0: 518 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 519 | engines: {node: '>=8'} 520 | 521 | shebang-regex@3.0.0: 522 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 523 | engines: {node: '>=8'} 524 | 525 | signal-exit@4.1.0: 526 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 527 | engines: {node: '>=14'} 528 | 529 | source-map-js@1.2.1: 530 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 531 | engines: {node: '>=0.10.0'} 532 | 533 | streamsearch@1.1.0: 534 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 535 | engines: {node: '>=10.0.0'} 536 | 537 | string-width@4.2.3: 538 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 539 | engines: {node: '>=8'} 540 | 541 | string-width@5.1.2: 542 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 543 | engines: {node: '>=12'} 544 | 545 | strip-ansi@6.0.1: 546 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 547 | engines: {node: '>=8'} 548 | 549 | strip-ansi@7.1.0: 550 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 551 | engines: {node: '>=12'} 552 | 553 | styled-jsx@5.1.1: 554 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 555 | engines: {node: '>= 12.0.0'} 556 | peerDependencies: 557 | '@babel/core': '*' 558 | babel-plugin-macros: '*' 559 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 560 | peerDependenciesMeta: 561 | '@babel/core': 562 | optional: true 563 | babel-plugin-macros: 564 | optional: true 565 | 566 | sucrase@3.35.0: 567 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 568 | engines: {node: '>=16 || 14 >=14.17'} 569 | hasBin: true 570 | 571 | supports-preserve-symlinks-flag@1.0.0: 572 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 573 | engines: {node: '>= 0.4'} 574 | 575 | tailwind-merge@3.3.1: 576 | resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} 577 | 578 | tailwindcss@3.4.17: 579 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} 580 | engines: {node: '>=14.0.0'} 581 | hasBin: true 582 | 583 | thenify-all@1.6.0: 584 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 585 | engines: {node: '>=0.8'} 586 | 587 | thenify@3.3.1: 588 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 589 | 590 | to-regex-range@5.0.1: 591 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 592 | engines: {node: '>=8.0'} 593 | 594 | ts-interface-checker@0.1.13: 595 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 596 | 597 | tslib@2.8.1: 598 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 599 | 600 | typescript@5.8.3: 601 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 602 | engines: {node: '>=14.17'} 603 | hasBin: true 604 | 605 | undici-types@6.21.0: 606 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 607 | 608 | util-deprecate@1.0.2: 609 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 610 | 611 | which@2.0.2: 612 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 613 | engines: {node: '>= 8'} 614 | hasBin: true 615 | 616 | wrap-ansi@7.0.0: 617 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 618 | engines: {node: '>=10'} 619 | 620 | wrap-ansi@8.1.0: 621 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 622 | engines: {node: '>=12'} 623 | 624 | yaml@2.8.0: 625 | resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} 626 | engines: {node: '>= 14.6'} 627 | hasBin: true 628 | 629 | snapshots: 630 | 631 | '@alloc/quick-lru@5.2.0': {} 632 | 633 | '@isaacs/cliui@8.0.2': 634 | dependencies: 635 | string-width: 5.1.2 636 | string-width-cjs: string-width@4.2.3 637 | strip-ansi: 7.1.0 638 | strip-ansi-cjs: strip-ansi@6.0.1 639 | wrap-ansi: 8.1.0 640 | wrap-ansi-cjs: wrap-ansi@7.0.0 641 | 642 | '@jridgewell/gen-mapping@0.3.12': 643 | dependencies: 644 | '@jridgewell/sourcemap-codec': 1.5.4 645 | '@jridgewell/trace-mapping': 0.3.29 646 | 647 | '@jridgewell/resolve-uri@3.1.2': {} 648 | 649 | '@jridgewell/sourcemap-codec@1.5.4': {} 650 | 651 | '@jridgewell/trace-mapping@0.3.29': 652 | dependencies: 653 | '@jridgewell/resolve-uri': 3.1.2 654 | '@jridgewell/sourcemap-codec': 1.5.4 655 | 656 | '@next/env@14.2.30': {} 657 | 658 | '@next/swc-darwin-arm64@14.2.30': 659 | optional: true 660 | 661 | '@next/swc-darwin-x64@14.2.30': 662 | optional: true 663 | 664 | '@next/swc-linux-arm64-gnu@14.2.30': 665 | optional: true 666 | 667 | '@next/swc-linux-arm64-musl@14.2.30': 668 | optional: true 669 | 670 | '@next/swc-linux-x64-gnu@14.2.30': 671 | optional: true 672 | 673 | '@next/swc-linux-x64-musl@14.2.30': 674 | optional: true 675 | 676 | '@next/swc-win32-arm64-msvc@14.2.30': 677 | optional: true 678 | 679 | '@next/swc-win32-ia32-msvc@14.2.30': 680 | optional: true 681 | 682 | '@next/swc-win32-x64-msvc@14.2.30': 683 | optional: true 684 | 685 | '@nodelib/fs.scandir@2.1.5': 686 | dependencies: 687 | '@nodelib/fs.stat': 2.0.5 688 | run-parallel: 1.2.0 689 | 690 | '@nodelib/fs.stat@2.0.5': {} 691 | 692 | '@nodelib/fs.walk@1.2.8': 693 | dependencies: 694 | '@nodelib/fs.scandir': 2.1.5 695 | fastq: 1.19.1 696 | 697 | '@pkgjs/parseargs@0.11.0': 698 | optional: true 699 | 700 | '@swc/counter@0.1.3': {} 701 | 702 | '@swc/helpers@0.5.5': 703 | dependencies: 704 | '@swc/counter': 0.1.3 705 | tslib: 2.8.1 706 | 707 | '@types/node@20.19.9': 708 | dependencies: 709 | undici-types: 6.21.0 710 | 711 | '@types/prop-types@15.7.15': {} 712 | 713 | '@types/react-dom@18.3.7(@types/react@18.3.23)': 714 | dependencies: 715 | '@types/react': 18.3.23 716 | 717 | '@types/react@18.3.23': 718 | dependencies: 719 | '@types/prop-types': 15.7.15 720 | csstype: 3.1.3 721 | 722 | ansi-regex@5.0.1: {} 723 | 724 | ansi-regex@6.1.0: {} 725 | 726 | ansi-styles@4.3.0: 727 | dependencies: 728 | color-convert: 2.0.1 729 | 730 | ansi-styles@6.2.1: {} 731 | 732 | any-promise@1.3.0: {} 733 | 734 | anymatch@3.1.3: 735 | dependencies: 736 | normalize-path: 3.0.0 737 | picomatch: 2.3.1 738 | 739 | arg@5.0.2: {} 740 | 741 | balanced-match@1.0.2: {} 742 | 743 | binary-extensions@2.3.0: {} 744 | 745 | brace-expansion@2.0.2: 746 | dependencies: 747 | balanced-match: 1.0.2 748 | 749 | braces@3.0.3: 750 | dependencies: 751 | fill-range: 7.1.1 752 | 753 | busboy@1.6.0: 754 | dependencies: 755 | streamsearch: 1.1.0 756 | 757 | camelcase-css@2.0.1: {} 758 | 759 | caniuse-lite@1.0.30001727: {} 760 | 761 | chokidar@3.6.0: 762 | dependencies: 763 | anymatch: 3.1.3 764 | braces: 3.0.3 765 | glob-parent: 5.1.2 766 | is-binary-path: 2.1.0 767 | is-glob: 4.0.3 768 | normalize-path: 3.0.0 769 | readdirp: 3.6.0 770 | optionalDependencies: 771 | fsevents: 2.3.3 772 | 773 | client-only@0.0.1: {} 774 | 775 | clsx@2.1.1: {} 776 | 777 | color-convert@2.0.1: 778 | dependencies: 779 | color-name: 1.1.4 780 | 781 | color-name@1.1.4: {} 782 | 783 | commander@4.1.1: {} 784 | 785 | cross-spawn@7.0.6: 786 | dependencies: 787 | path-key: 3.1.1 788 | shebang-command: 2.0.0 789 | which: 2.0.2 790 | 791 | cssesc@3.0.0: {} 792 | 793 | csstype@3.1.3: {} 794 | 795 | didyoumean@1.2.2: {} 796 | 797 | dlv@1.1.3: {} 798 | 799 | eastasianwidth@0.2.0: {} 800 | 801 | emoji-regex@8.0.0: {} 802 | 803 | emoji-regex@9.2.2: {} 804 | 805 | fast-glob@3.3.3: 806 | dependencies: 807 | '@nodelib/fs.stat': 2.0.5 808 | '@nodelib/fs.walk': 1.2.8 809 | glob-parent: 5.1.2 810 | merge2: 1.4.1 811 | micromatch: 4.0.8 812 | 813 | fastq@1.19.1: 814 | dependencies: 815 | reusify: 1.1.0 816 | 817 | fill-range@7.1.1: 818 | dependencies: 819 | to-regex-range: 5.0.1 820 | 821 | foreground-child@3.3.1: 822 | dependencies: 823 | cross-spawn: 7.0.6 824 | signal-exit: 4.1.0 825 | 826 | fsevents@2.3.3: 827 | optional: true 828 | 829 | function-bind@1.1.2: {} 830 | 831 | glob-parent@5.1.2: 832 | dependencies: 833 | is-glob: 4.0.3 834 | 835 | glob-parent@6.0.2: 836 | dependencies: 837 | is-glob: 4.0.3 838 | 839 | glob@10.4.5: 840 | dependencies: 841 | foreground-child: 3.3.1 842 | jackspeak: 3.4.3 843 | minimatch: 9.0.5 844 | minipass: 7.1.2 845 | package-json-from-dist: 1.0.1 846 | path-scurry: 1.11.1 847 | 848 | graceful-fs@4.2.11: {} 849 | 850 | hasown@2.0.2: 851 | dependencies: 852 | function-bind: 1.1.2 853 | 854 | is-binary-path@2.1.0: 855 | dependencies: 856 | binary-extensions: 2.3.0 857 | 858 | is-core-module@2.16.1: 859 | dependencies: 860 | hasown: 2.0.2 861 | 862 | is-extglob@2.1.1: {} 863 | 864 | is-fullwidth-code-point@3.0.0: {} 865 | 866 | is-glob@4.0.3: 867 | dependencies: 868 | is-extglob: 2.1.1 869 | 870 | is-number@7.0.0: {} 871 | 872 | isexe@2.0.0: {} 873 | 874 | jackspeak@3.4.3: 875 | dependencies: 876 | '@isaacs/cliui': 8.0.2 877 | optionalDependencies: 878 | '@pkgjs/parseargs': 0.11.0 879 | 880 | jiti@1.21.7: {} 881 | 882 | js-tokens@4.0.0: {} 883 | 884 | lilconfig@3.1.3: {} 885 | 886 | lines-and-columns@1.2.4: {} 887 | 888 | loose-envify@1.4.0: 889 | dependencies: 890 | js-tokens: 4.0.0 891 | 892 | lru-cache@10.4.3: {} 893 | 894 | merge2@1.4.1: {} 895 | 896 | micromatch@4.0.8: 897 | dependencies: 898 | braces: 3.0.3 899 | picomatch: 2.3.1 900 | 901 | minimatch@9.0.5: 902 | dependencies: 903 | brace-expansion: 2.0.2 904 | 905 | minipass@7.1.2: {} 906 | 907 | mz@2.7.0: 908 | dependencies: 909 | any-promise: 1.3.0 910 | object-assign: 4.1.1 911 | thenify-all: 1.6.0 912 | 913 | nanoid@3.3.11: {} 914 | 915 | next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 916 | dependencies: 917 | '@next/env': 14.2.30 918 | '@swc/helpers': 0.5.5 919 | busboy: 1.6.0 920 | caniuse-lite: 1.0.30001727 921 | graceful-fs: 4.2.11 922 | postcss: 8.4.31 923 | react: 18.3.1 924 | react-dom: 18.3.1(react@18.3.1) 925 | styled-jsx: 5.1.1(react@18.3.1) 926 | optionalDependencies: 927 | '@next/swc-darwin-arm64': 14.2.30 928 | '@next/swc-darwin-x64': 14.2.30 929 | '@next/swc-linux-arm64-gnu': 14.2.30 930 | '@next/swc-linux-arm64-musl': 14.2.30 931 | '@next/swc-linux-x64-gnu': 14.2.30 932 | '@next/swc-linux-x64-musl': 14.2.30 933 | '@next/swc-win32-arm64-msvc': 14.2.30 934 | '@next/swc-win32-ia32-msvc': 14.2.30 935 | '@next/swc-win32-x64-msvc': 14.2.30 936 | transitivePeerDependencies: 937 | - '@babel/core' 938 | - babel-plugin-macros 939 | 940 | normalize-path@3.0.0: {} 941 | 942 | object-assign@4.1.1: {} 943 | 944 | object-hash@3.0.0: {} 945 | 946 | package-json-from-dist@1.0.1: {} 947 | 948 | path-key@3.1.1: {} 949 | 950 | path-parse@1.0.7: {} 951 | 952 | path-scurry@1.11.1: 953 | dependencies: 954 | lru-cache: 10.4.3 955 | minipass: 7.1.2 956 | 957 | picocolors@1.1.1: {} 958 | 959 | picomatch@2.3.1: {} 960 | 961 | pify@2.3.0: {} 962 | 963 | pirates@4.0.7: {} 964 | 965 | postcss-import@15.1.0(postcss@8.5.6): 966 | dependencies: 967 | postcss: 8.5.6 968 | postcss-value-parser: 4.2.0 969 | read-cache: 1.0.0 970 | resolve: 1.22.10 971 | 972 | postcss-js@4.0.1(postcss@8.5.6): 973 | dependencies: 974 | camelcase-css: 2.0.1 975 | postcss: 8.5.6 976 | 977 | postcss-load-config@4.0.2(postcss@8.5.6): 978 | dependencies: 979 | lilconfig: 3.1.3 980 | yaml: 2.8.0 981 | optionalDependencies: 982 | postcss: 8.5.6 983 | 984 | postcss-nested@6.2.0(postcss@8.5.6): 985 | dependencies: 986 | postcss: 8.5.6 987 | postcss-selector-parser: 6.1.2 988 | 989 | postcss-selector-parser@6.1.2: 990 | dependencies: 991 | cssesc: 3.0.0 992 | util-deprecate: 1.0.2 993 | 994 | postcss-value-parser@4.2.0: {} 995 | 996 | postcss@8.4.31: 997 | dependencies: 998 | nanoid: 3.3.11 999 | picocolors: 1.1.1 1000 | source-map-js: 1.2.1 1001 | 1002 | postcss@8.5.6: 1003 | dependencies: 1004 | nanoid: 3.3.11 1005 | picocolors: 1.1.1 1006 | source-map-js: 1.2.1 1007 | 1008 | queue-microtask@1.2.3: {} 1009 | 1010 | react-dom@18.3.1(react@18.3.1): 1011 | dependencies: 1012 | loose-envify: 1.4.0 1013 | react: 18.3.1 1014 | scheduler: 0.23.2 1015 | 1016 | react@18.3.1: 1017 | dependencies: 1018 | loose-envify: 1.4.0 1019 | 1020 | read-cache@1.0.0: 1021 | dependencies: 1022 | pify: 2.3.0 1023 | 1024 | readdirp@3.6.0: 1025 | dependencies: 1026 | picomatch: 2.3.1 1027 | 1028 | resolve@1.22.10: 1029 | dependencies: 1030 | is-core-module: 2.16.1 1031 | path-parse: 1.0.7 1032 | supports-preserve-symlinks-flag: 1.0.0 1033 | 1034 | reusify@1.1.0: {} 1035 | 1036 | run-parallel@1.2.0: 1037 | dependencies: 1038 | queue-microtask: 1.2.3 1039 | 1040 | scheduler@0.23.2: 1041 | dependencies: 1042 | loose-envify: 1.4.0 1043 | 1044 | shebang-command@2.0.0: 1045 | dependencies: 1046 | shebang-regex: 3.0.0 1047 | 1048 | shebang-regex@3.0.0: {} 1049 | 1050 | signal-exit@4.1.0: {} 1051 | 1052 | source-map-js@1.2.1: {} 1053 | 1054 | streamsearch@1.1.0: {} 1055 | 1056 | string-width@4.2.3: 1057 | dependencies: 1058 | emoji-regex: 8.0.0 1059 | is-fullwidth-code-point: 3.0.0 1060 | strip-ansi: 6.0.1 1061 | 1062 | string-width@5.1.2: 1063 | dependencies: 1064 | eastasianwidth: 0.2.0 1065 | emoji-regex: 9.2.2 1066 | strip-ansi: 7.1.0 1067 | 1068 | strip-ansi@6.0.1: 1069 | dependencies: 1070 | ansi-regex: 5.0.1 1071 | 1072 | strip-ansi@7.1.0: 1073 | dependencies: 1074 | ansi-regex: 6.1.0 1075 | 1076 | styled-jsx@5.1.1(react@18.3.1): 1077 | dependencies: 1078 | client-only: 0.0.1 1079 | react: 18.3.1 1080 | 1081 | sucrase@3.35.0: 1082 | dependencies: 1083 | '@jridgewell/gen-mapping': 0.3.12 1084 | commander: 4.1.1 1085 | glob: 10.4.5 1086 | lines-and-columns: 1.2.4 1087 | mz: 2.7.0 1088 | pirates: 4.0.7 1089 | ts-interface-checker: 0.1.13 1090 | 1091 | supports-preserve-symlinks-flag@1.0.0: {} 1092 | 1093 | tailwind-merge@3.3.1: {} 1094 | 1095 | tailwindcss@3.4.17: 1096 | dependencies: 1097 | '@alloc/quick-lru': 5.2.0 1098 | arg: 5.0.2 1099 | chokidar: 3.6.0 1100 | didyoumean: 1.2.2 1101 | dlv: 1.1.3 1102 | fast-glob: 3.3.3 1103 | glob-parent: 6.0.2 1104 | is-glob: 4.0.3 1105 | jiti: 1.21.7 1106 | lilconfig: 3.1.3 1107 | micromatch: 4.0.8 1108 | normalize-path: 3.0.0 1109 | object-hash: 3.0.0 1110 | picocolors: 1.1.1 1111 | postcss: 8.5.6 1112 | postcss-import: 15.1.0(postcss@8.5.6) 1113 | postcss-js: 4.0.1(postcss@8.5.6) 1114 | postcss-load-config: 4.0.2(postcss@8.5.6) 1115 | postcss-nested: 6.2.0(postcss@8.5.6) 1116 | postcss-selector-parser: 6.1.2 1117 | resolve: 1.22.10 1118 | sucrase: 3.35.0 1119 | transitivePeerDependencies: 1120 | - ts-node 1121 | 1122 | thenify-all@1.6.0: 1123 | dependencies: 1124 | thenify: 3.3.1 1125 | 1126 | thenify@3.3.1: 1127 | dependencies: 1128 | any-promise: 1.3.0 1129 | 1130 | to-regex-range@5.0.1: 1131 | dependencies: 1132 | is-number: 7.0.0 1133 | 1134 | ts-interface-checker@0.1.13: {} 1135 | 1136 | tslib@2.8.1: {} 1137 | 1138 | typescript@5.8.3: {} 1139 | 1140 | undici-types@6.21.0: {} 1141 | 1142 | util-deprecate@1.0.2: {} 1143 | 1144 | which@2.0.2: 1145 | dependencies: 1146 | isexe: 2.0.0 1147 | 1148 | wrap-ansi@7.0.0: 1149 | dependencies: 1150 | ansi-styles: 4.3.0 1151 | string-width: 4.2.3 1152 | strip-ansi: 6.0.1 1153 | 1154 | wrap-ansi@8.1.0: 1155 | dependencies: 1156 | ansi-styles: 6.2.1 1157 | string-width: 5.1.2 1158 | strip-ansi: 7.1.0 1159 | 1160 | yaml@2.8.0: {} 1161 | --------------------------------------------------------------------------------