diff --git a/typing-app/.eslintrc.json b/typing-app/.eslintrc.json
index 9b08370c..f64128d4 100644
--- a/typing-app/.eslintrc.json
+++ b/typing-app/.eslintrc.json
@@ -1,7 +1,6 @@
{
"extends": [
"next/core-web-vitals",
- "prettier",
- "next/babel"
+ "prettier"
]
}
diff --git a/typing-app/README.md b/typing-app/README.md
index c4033664..08f571f4 100644
--- a/typing-app/README.md
+++ b/typing-app/README.md
@@ -18,8 +18,6 @@ Open [http://localhost:3000](http://localhost:3000) with your browser to see the
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
-This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
-
## Learn More
To learn more about Next.js, take a look at the following resources:
diff --git a/typing-app/package.json b/typing-app/package.json
index 3cc7ad15..62557a82 100644
--- a/typing-app/package.json
+++ b/typing-app/package.json
@@ -27,6 +27,7 @@
"prettier": "^3.2.5",
"react": "^18",
"react-dom": "^18",
+ "sharp": "^0.33.3",
"tailwind-merge": "^2.2.1",
"tailwindcss-animate": "^1.0.7"
},
diff --git a/typing-app/public/img/gauge_time.png b/typing-app/public/img/gauge_time.png
index 0458530a..0cc4f1f0 100644
Binary files a/typing-app/public/img/gauge_time.png and b/typing-app/public/img/gauge_time.png differ
diff --git a/typing-app/src/app/favicon.ico b/typing-app/src/app/favicon.ico
index 718d6fea..1c234515 100644
Binary files a/typing-app/src/app/favicon.ico and b/typing-app/src/app/favicon.ico differ
diff --git a/typing-app/src/app/globals.css b/typing-app/src/app/globals.css
index 1340b323..a75cdd73 100644
--- a/typing-app/src/app/globals.css
+++ b/typing-app/src/app/globals.css
@@ -1,20 +1,15 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
:root {
--foreground-rgb: 0, 0, 0;
--background-start-rgb: 0, 0, 0;
--background-end-rgb: 0, 0, 0;
}
+* {
+ font-family: "メイリオ", "Meiryo", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "MS Pゴシック", sans-serif;
+}
+
body {
color: rgb(var(--foreground-rgb));
background: rgb(var(--background-start-rgb));
-}
-
-@layer utilities {
- .text-balance {
- text-wrap: balance;
- }
+ overflow-y: hidden;
}
diff --git a/typing-app/src/app/layout.tsx b/typing-app/src/app/layout.tsx
index 433a1775..e374430f 100644
--- a/typing-app/src/app/layout.tsx
+++ b/typing-app/src/app/layout.tsx
@@ -1,11 +1,9 @@
import type { Metadata } from "next";
-import { Inter } from "next/font/google";
import Header from "../components/organism/Header";
import Footer from "../components/organism/Footer";
import "./globals.css";
import { Box, ChakraProvider } from "@chakra-ui/react";
-
-const inter = Inter({ subsets: ["latin"] });
+import background from "@/assets/images/background.png";
export const metadata: Metadata = {
title: "TYPE MASTER",
@@ -18,9 +16,9 @@ export default async function RootLayout({
}>) {
return (
-
+
-
+
{children}
diff --git a/typing-app/src/assets/images/background.png b/typing-app/src/assets/images/background.png
new file mode 100644
index 00000000..38dbf7b9
Binary files /dev/null and b/typing-app/src/assets/images/background.png differ
diff --git a/typing-app/src/assets/images/home/game.png b/typing-app/src/assets/images/home/game.png
new file mode 100644
index 00000000..ebef756b
Binary files /dev/null and b/typing-app/src/assets/images/home/game.png differ
diff --git a/typing-app/src/assets/images/home/logout.png b/typing-app/src/assets/images/home/logout.png
new file mode 100644
index 00000000..0392dc7a
Binary files /dev/null and b/typing-app/src/assets/images/home/logout.png differ
diff --git a/typing-app/src/assets/images/home/ranking.png b/typing-app/src/assets/images/home/ranking.png
new file mode 100644
index 00000000..be510bd6
Binary files /dev/null and b/typing-app/src/assets/images/home/ranking.png differ
diff --git a/typing-app/src/components/atoms/Banner.tsx b/typing-app/src/components/atoms/Banner.tsx
index f960bc4c..d67a13ba 100644
--- a/typing-app/src/components/atoms/Banner.tsx
+++ b/typing-app/src/components/atoms/Banner.tsx
@@ -1,11 +1,13 @@
import React from "react";
-import { Box, Image } from "@chakra-ui/react";
+import { Box, Image, Link } from "@chakra-ui/react";
import bannerImage from "@/assets/images/banner.png";
const Banner: React.FC = () => {
return (
-
+
+
+
);
};
diff --git a/typing-app/src/components/molecules/GameStartButton.tsx b/typing-app/src/components/molecules/GameStartButton.tsx
index 756d9e39..a63af56d 100644
--- a/typing-app/src/components/molecules/GameStartButton.tsx
+++ b/typing-app/src/components/molecules/GameStartButton.tsx
@@ -1,18 +1,16 @@
"use client";
import React from "react";
-import { Button, useDisclosure } from "@chakra-ui/react";
+import { Image, useDisclosure } from "@chakra-ui/react";
import LoginModal from "./LoginModal";
+import gameButton from "@/assets/images/home/game.png";
const GameStartButton = () => {
const { isOpen, onOpen, onClose } = useDisclosure();
return (
<>
-
-
+
>
);
diff --git a/typing-app/src/components/molecules/LogoutButton.tsx b/typing-app/src/components/molecules/LogoutButton.tsx
index 730b9dae..5071d5ac 100644
--- a/typing-app/src/components/molecules/LogoutButton.tsx
+++ b/typing-app/src/components/molecules/LogoutButton.tsx
@@ -2,9 +2,10 @@
import React from "react";
import { useRouter } from "next/navigation";
-import { Button, useDisclosure } from "@chakra-ui/react";
+import { Image, useDisclosure } from "@chakra-ui/react";
import LogoutModal from "./LogoutModal";
import { logout } from "@/app/actions";
+import logoutButton from "@/assets/images/home/logout.png";
const LogoutButton: React.FC = () => {
const { isOpen, onOpen, onClose } = useDisclosure();
@@ -23,10 +24,7 @@ const LogoutButton: React.FC = () => {
return (
<>
-
-
+
>
);
diff --git a/typing-app/src/components/molecules/RankingButton.tsx b/typing-app/src/components/molecules/RankingButton.tsx
index 7345d147..0227cc94 100644
--- a/typing-app/src/components/molecules/RankingButton.tsx
+++ b/typing-app/src/components/molecules/RankingButton.tsx
@@ -1,7 +1,8 @@
"use client";
import { useRouter } from "next/navigation";
-import { Button } from "@chakra-ui/react";
+import { Image } from "@chakra-ui/react";
+import rankingButton from "@/assets/images/home/ranking.png";
const RankingButton = () => {
const router = useRouter();
@@ -11,11 +12,7 @@ const RankingButton = () => {
router.push("/ranking");
};
- return (
-
- );
+ return ;
};
export default RankingButton;
diff --git a/typing-app/src/components/organism/Header.tsx b/typing-app/src/components/organism/Header.tsx
index e97f03bc..8dec894a 100644
--- a/typing-app/src/components/organism/Header.tsx
+++ b/typing-app/src/components/organism/Header.tsx
@@ -8,7 +8,7 @@ import Separator from "@/components/atoms/Separater";
const Header: React.FC = () => {
return (
<>
-
+
diff --git a/typing-app/src/components/organism/HomeMenuContainer.tsx b/typing-app/src/components/organism/HomeMenuContainer.tsx
index 1b044fe5..dfc09dbf 100644
--- a/typing-app/src/components/organism/HomeMenuContainer.tsx
+++ b/typing-app/src/components/organism/HomeMenuContainer.tsx
@@ -5,8 +5,8 @@ import LogoutButton from "../molecules/LogoutButton";
const HomeMenuContainer = () => {
return (
-
-
+
+
{/* TODO: ログイン状況に応じて表示を切り替え */}
diff --git a/typing-app/src/components/organism/RankingTabs.tsx b/typing-app/src/components/organism/RankingTabs.tsx
index 6585f7e3..c979320d 100644
--- a/typing-app/src/components/organism/RankingTabs.tsx
+++ b/typing-app/src/components/organism/RankingTabs.tsx
@@ -54,7 +54,7 @@ const RankingTabs = () => {
};
return (
-
+
{/* 幅を揃えるためだけの要素,視覚的な意味はなし */}
diff --git a/typing-app/src/components/templates/GamePre.module.css b/typing-app/src/components/templates/GamePre.module.css
index 2b95443c..c089b2df 100644
--- a/typing-app/src/components/templates/GamePre.module.css
+++ b/typing-app/src/components/templates/GamePre.module.css
@@ -4,7 +4,7 @@
margin: 50px auto 0 auto;
position: absolute;
left: 15%;
- top: 100px;
+ top: 120px;
background-color: #263238;
border: 4px, #fff;
}
diff --git a/typing-app/src/components/templates/GamePre.tsx b/typing-app/src/components/templates/GamePre.tsx
index 7d7bdba5..d724203a 100644
--- a/typing-app/src/components/templates/GamePre.tsx
+++ b/typing-app/src/components/templates/GamePre.tsx
@@ -29,7 +29,7 @@ const GamePre: React.FC = ({ nextPage }) => {
templateAreas={`"header header"
"main nav"
"footer footer"`}
- gridTemplateRows={"80px 1fr 50px"}
+ gridTemplateRows={"80px 1fr 80px"}
gridTemplateColumns={"1fr 1fr"}
h="100%"
gap={0}
@@ -38,9 +38,9 @@ const GamePre: React.FC = ({ nextPage }) => {
alignItems="center"
overflow="auto"
>
-
+
- ゲーム説明
+ 操作説明
@@ -49,8 +49,8 @@ const GamePre: React.FC = ({ nextPage }) => {
制限時間は1分間!
英文を速く・正確に入力して高スコアを目指そう!
【ランキング掲載条件】
- WPM(Words per Minutes): 120字以上
- 正打率: 95%以上
+ WPM (Words Per Minutes) : 120字以上
+ 正打率 : 95%以上
【入力しても反応しなくなった場合】
テキストが表示されているボックスをクリックすると元に戻れます。
@@ -70,7 +70,7 @@ const GamePre: React.FC = ({ nextPage }) => {
- [Space]キーを押して開始
+ [Space] キーを押して開始
diff --git a/typing-app/src/components/templates/GameResult.module.css b/typing-app/src/components/templates/GameResult.module.css
index bdd0c0b3..7036bb4d 100644
--- a/typing-app/src/components/templates/GameResult.module.css
+++ b/typing-app/src/components/templates/GameResult.module.css
@@ -4,7 +4,7 @@
margin: 50px auto 0 auto;
position: absolute;
left: 15%;
- top: 100px;
+ top: 120px;
background-color: #263238;
border: solid 4px #fff;
}
diff --git a/typing-app/src/components/templates/GameResult.tsx b/typing-app/src/components/templates/GameResult.tsx
index 395eaca9..b2ddfd72 100644
--- a/typing-app/src/components/templates/GameResult.tsx
+++ b/typing-app/src/components/templates/GameResult.tsx
@@ -70,28 +70,28 @@ const GameResult: React.FC = ({ nextPage, resultScore }) => {
- {resultScore.keystrokes}回
+ {resultScore.keystrokes} 回
- {resultScore.miss}回
+ {resultScore.miss} 回
- {String(resultScore.time.getMinutes() * 60 + resultScore.time.getSeconds()).padStart(2, "0")}秒
- {String(Math.floor(resultScore.time.getMilliseconds() / 100))}
+ {String(resultScore.time.getMinutes() * 60 + resultScore.time.getSeconds()).padStart(2, "0")}.
+ {String(Math.floor(resultScore.time.getMilliseconds() / 100))} 秒
- {Math.floor(resultScore.wpm)}字/分
+ {Math.floor(resultScore.wpm)} 字/分
- {resultScore.accuracy.toFixed(1)}%
+ {resultScore.accuracy.toFixed(1)} %
diff --git a/typing-app/src/components/templates/GameTyping.module.css b/typing-app/src/components/templates/GameTyping.module.css
index dceb1109..7ba92c91 100644
--- a/typing-app/src/components/templates/GameTyping.module.css
+++ b/typing-app/src/components/templates/GameTyping.module.css
@@ -4,7 +4,7 @@
margin: 50px auto 0 auto;
position: absolute;
left: 15%;
- top: 100px;
+ top: 120px;
background-color: #263238;
border: solid 4px #fff;
}
diff --git a/typing-app/src/components/templates/GameTyping.tsx b/typing-app/src/components/templates/GameTyping.tsx
index e454ea93..bac05bf2 100644
--- a/typing-app/src/components/templates/GameTyping.tsx
+++ b/typing-app/src/components/templates/GameTyping.tsx
@@ -180,8 +180,7 @@ const GameTyping: React.FC = ({ nextPage, subjectText, setResul
= ({ nextPage, subjectText, setResul
height={24}
/>
- {/* TODO: Lpre, Ipusumって消すんじゃなかったっけ */}
- Lorem Ipsum
+ -
{subjectText.slice(0, typeIndex)}
@@ -206,7 +204,7 @@ const GameTyping: React.FC = ({ nextPage, subjectText, setResul
残り {count.toFixed(1)} 秒
- {correctType} 語 / {subjectText.length} 字
+ {correctType} 字 / {subjectText.length} 字
diff --git a/typing-app/yarn.lock b/typing-app/yarn.lock
index 4a0989b3..d097bdf3 100644
--- a/typing-app/yarn.lock
+++ b/typing-app/yarn.lock
@@ -1640,6 +1640,15 @@ __metadata:
languageName: node
linkType: hard
+"@emnapi/runtime@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "@emnapi/runtime@npm:1.1.1"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/c11ee57abf0ec643e64ccdace4b4fcc0b0c7b1117a191f969e84ae3669841aa90d2c17fa35b73f5a66fc0c843c8caca7bf11187faaeaa526bcfb7dbfb9b85de9
+ languageName: node
+ linkType: hard
+
"@emotion/babel-plugin@npm:^11.11.0":
version: 11.11.0
resolution: "@emotion/babel-plugin@npm:11.11.0"
@@ -1860,6 +1869,181 @@ __metadata:
languageName: node
linkType: hard
+"@img/sharp-darwin-arm64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-darwin-arm64@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-darwin-arm64": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-darwin-arm64":
+ optional: true
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-darwin-x64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-darwin-x64@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-darwin-x64": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-darwin-x64":
+ optional: true
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-darwin-arm64@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-darwin-arm64@npm:1.0.2"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-darwin-x64@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-darwin-x64@npm:1.0.2"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-arm64@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-linux-arm64@npm:1.0.2"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-arm@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-linux-arm@npm:1.0.2"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-s390x@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-linux-s390x@npm:1.0.2"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linux-x64@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-linux-x64@npm:1.0.2"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linuxmusl-arm64@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.0.2"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-libvips-linuxmusl-x64@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.0.2"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-arm64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-linux-arm64@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-linux-arm64": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-arm64":
+ optional: true
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-arm@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-linux-arm@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-linux-arm": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-arm":
+ optional: true
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-s390x@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-linux-s390x@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-linux-s390x": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-s390x":
+ optional: true
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linux-x64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-linux-x64@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-linux-x64": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-linux-x64":
+ optional: true
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linuxmusl-arm64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-linuxmusl-arm64@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-linuxmusl-arm64":
+ optional: true
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-linuxmusl-x64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-linuxmusl-x64@npm:0.33.3"
+ dependencies:
+ "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.2"
+ dependenciesMeta:
+ "@img/sharp-libvips-linuxmusl-x64":
+ optional: true
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@img/sharp-wasm32@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-wasm32@npm:0.33.3"
+ dependencies:
+ "@emnapi/runtime": "npm:^1.1.0"
+ conditions: cpu=wasm32
+ languageName: node
+ linkType: hard
+
+"@img/sharp-win32-ia32@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-win32-ia32@npm:0.33.3"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@img/sharp-win32-x64@npm:0.33.3":
+ version: 0.33.3
+ resolution: "@img/sharp-win32-x64@npm:0.33.3"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@isaacs/cliui@npm:^8.0.2":
version: 8.0.2
resolution: "@isaacs/cliui@npm:8.0.2"
@@ -3803,13 +3987,23 @@ __metadata:
languageName: node
linkType: hard
-"color-name@npm:~1.1.4":
+"color-name@npm:^1.0.0, color-name@npm:~1.1.4":
version: 1.1.4
resolution: "color-name@npm:1.1.4"
checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
languageName: node
linkType: hard
+"color-string@npm:^1.9.0":
+ version: 1.9.1
+ resolution: "color-string@npm:1.9.1"
+ dependencies:
+ color-name: "npm:^1.0.0"
+ simple-swizzle: "npm:^0.2.2"
+ checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404
+ languageName: node
+ linkType: hard
+
"color2k@npm:^2.0.2":
version: 2.0.3
resolution: "color2k@npm:2.0.3"
@@ -3817,6 +4011,16 @@ __metadata:
languageName: node
linkType: hard
+"color@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "color@npm:4.2.3"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ color-string: "npm:^1.9.0"
+ checksum: 10c0/7fbe7cfb811054c808349de19fb380252e5e34e61d7d168ec3353e9e9aacb1802674bddc657682e4e9730c2786592a4de6f8283e7e0d3870b829bb0b7b2f6118
+ languageName: node
+ linkType: hard
+
"combined-stream@npm:^1.0.8":
version: 1.0.8
resolution: "combined-stream@npm:1.0.8"
@@ -4133,6 +4337,13 @@ __metadata:
languageName: node
linkType: hard
+"detect-libc@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "detect-libc@npm:2.0.3"
+ checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7
+ languageName: node
+ linkType: hard
+
"detect-newline@npm:^3.0.0":
version: 3.1.0
resolution: "detect-newline@npm:3.1.0"
@@ -5529,6 +5740,13 @@ __metadata:
languageName: node
linkType: hard
+"is-arrayish@npm:^0.3.1":
+ version: 0.3.2
+ resolution: "is-arrayish@npm:0.3.2"
+ checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54
+ languageName: node
+ linkType: hard
+
"is-async-function@npm:^2.0.0":
version: 2.0.0
resolution: "is-async-function@npm:2.0.0"
@@ -7993,7 +8211,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4":
+"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0":
version: 7.6.0
resolution: "semver@npm:7.6.0"
dependencies:
@@ -8030,6 +8248,75 @@ __metadata:
languageName: node
linkType: hard
+"sharp@npm:^0.33.3":
+ version: 0.33.3
+ resolution: "sharp@npm:0.33.3"
+ dependencies:
+ "@img/sharp-darwin-arm64": "npm:0.33.3"
+ "@img/sharp-darwin-x64": "npm:0.33.3"
+ "@img/sharp-libvips-darwin-arm64": "npm:1.0.2"
+ "@img/sharp-libvips-darwin-x64": "npm:1.0.2"
+ "@img/sharp-libvips-linux-arm": "npm:1.0.2"
+ "@img/sharp-libvips-linux-arm64": "npm:1.0.2"
+ "@img/sharp-libvips-linux-s390x": "npm:1.0.2"
+ "@img/sharp-libvips-linux-x64": "npm:1.0.2"
+ "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.2"
+ "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.2"
+ "@img/sharp-linux-arm": "npm:0.33.3"
+ "@img/sharp-linux-arm64": "npm:0.33.3"
+ "@img/sharp-linux-s390x": "npm:0.33.3"
+ "@img/sharp-linux-x64": "npm:0.33.3"
+ "@img/sharp-linuxmusl-arm64": "npm:0.33.3"
+ "@img/sharp-linuxmusl-x64": "npm:0.33.3"
+ "@img/sharp-wasm32": "npm:0.33.3"
+ "@img/sharp-win32-ia32": "npm:0.33.3"
+ "@img/sharp-win32-x64": "npm:0.33.3"
+ color: "npm:^4.2.3"
+ detect-libc: "npm:^2.0.3"
+ semver: "npm:^7.6.0"
+ dependenciesMeta:
+ "@img/sharp-darwin-arm64":
+ optional: true
+ "@img/sharp-darwin-x64":
+ optional: true
+ "@img/sharp-libvips-darwin-arm64":
+ optional: true
+ "@img/sharp-libvips-darwin-x64":
+ optional: true
+ "@img/sharp-libvips-linux-arm":
+ optional: true
+ "@img/sharp-libvips-linux-arm64":
+ optional: true
+ "@img/sharp-libvips-linux-s390x":
+ optional: true
+ "@img/sharp-libvips-linux-x64":
+ optional: true
+ "@img/sharp-libvips-linuxmusl-arm64":
+ optional: true
+ "@img/sharp-libvips-linuxmusl-x64":
+ optional: true
+ "@img/sharp-linux-arm":
+ optional: true
+ "@img/sharp-linux-arm64":
+ optional: true
+ "@img/sharp-linux-s390x":
+ optional: true
+ "@img/sharp-linux-x64":
+ optional: true
+ "@img/sharp-linuxmusl-arm64":
+ optional: true
+ "@img/sharp-linuxmusl-x64":
+ optional: true
+ "@img/sharp-wasm32":
+ optional: true
+ "@img/sharp-win32-ia32":
+ optional: true
+ "@img/sharp-win32-x64":
+ optional: true
+ checksum: 10c0/12f5203426595b4e64c807162a6d52358b591d25fbb414a51fe38861584759fba38485be951ed98d15be3dfe21f2def5336f78ca35bf8bbd22d88cc78ca03f2a
+ languageName: node
+ linkType: hard
+
"shebang-command@npm:^2.0.0":
version: 2.0.0
resolution: "shebang-command@npm:2.0.0"
@@ -8072,6 +8359,15 @@ __metadata:
languageName: node
linkType: hard
+"simple-swizzle@npm:^0.2.2":
+ version: 0.2.2
+ resolution: "simple-swizzle@npm:0.2.2"
+ dependencies:
+ is-arrayish: "npm:^0.3.1"
+ checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308
+ languageName: node
+ linkType: hard
+
"sisteransi@npm:^1.0.5":
version: 1.0.5
resolution: "sisteransi@npm:1.0.5"
@@ -8765,6 +9061,7 @@ __metadata:
prettier: "npm:^3.2.5"
react: "npm:^18"
react-dom: "npm:^18"
+ sharp: "npm:^0.33.3"
tailwind-merge: "npm:^2.2.1"
tailwindcss: "npm:^3.3.0"
tailwindcss-animate: "npm:^1.0.7"