Spaces:
Running
Running
initial commit
Browse files- Dockerfile +25 -0
- README.md +14 -36
- app/globals.css +0 -33
- app/layout.tsx +2 -3
- app/page.tsx +35 -107
- assets/globals.css +13 -0
- components/space.tsx +68 -0
- components/space_icon.tsx +37 -0
- next.config.mjs +22 -1
- package-lock.json +262 -10
- package.json +8 -5
- utils/index.ts +14 -0
- utils/type.ts +19 -0
Dockerfile
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Dockerfile
|
| 2 |
+
|
| 3 |
+
# Use an official Node.js runtime as the base image
|
| 4 |
+
FROM node:18
|
| 5 |
+
|
| 6 |
+
# Set the working directory in the container
|
| 7 |
+
WORKDIR /usr/src/app
|
| 8 |
+
|
| 9 |
+
# Copy package.json and package-lock.json to the container
|
| 10 |
+
COPY package.json package-lock.json ./
|
| 11 |
+
|
| 12 |
+
# Install dependencies
|
| 13 |
+
RUN npm install
|
| 14 |
+
|
| 15 |
+
# Copy the rest of the application files to the container
|
| 16 |
+
COPY . .
|
| 17 |
+
|
| 18 |
+
# Build the Next.js application for production
|
| 19 |
+
RUN npm run build
|
| 20 |
+
|
| 21 |
+
# Expose the application port (assuming your app runs on port 3000)
|
| 22 |
+
EXPOSE 3000
|
| 23 |
+
|
| 24 |
+
# Start the application
|
| 25 |
+
CMD ["npm", "start"]
|
README.md
CHANGED
|
@@ -1,36 +1,14 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 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/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
| 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/deployment) for more details.
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: — Zero GPU Spaces —
|
| 3 |
+
header: mini
|
| 4 |
+
short_description: List of spaces using ZERO-GPU
|
| 5 |
+
emoji: ⚡️
|
| 6 |
+
colorFrom: yellow
|
| 7 |
+
colorTo: green
|
| 8 |
+
sdk: docker
|
| 9 |
+
app_port: 3000
|
| 10 |
+
pinned: false
|
| 11 |
+
license: mit
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/globals.css
DELETED
|
@@ -1,33 +0,0 @@
|
|
| 1 |
-
@tailwind base;
|
| 2 |
-
@tailwind components;
|
| 3 |
-
@tailwind utilities;
|
| 4 |
-
|
| 5 |
-
:root {
|
| 6 |
-
--foreground-rgb: 0, 0, 0;
|
| 7 |
-
--background-start-rgb: 214, 219, 220;
|
| 8 |
-
--background-end-rgb: 255, 255, 255;
|
| 9 |
-
}
|
| 10 |
-
|
| 11 |
-
@media (prefers-color-scheme: dark) {
|
| 12 |
-
:root {
|
| 13 |
-
--foreground-rgb: 255, 255, 255;
|
| 14 |
-
--background-start-rgb: 0, 0, 0;
|
| 15 |
-
--background-end-rgb: 0, 0, 0;
|
| 16 |
-
}
|
| 17 |
-
}
|
| 18 |
-
|
| 19 |
-
body {
|
| 20 |
-
color: rgb(var(--foreground-rgb));
|
| 21 |
-
background: linear-gradient(
|
| 22 |
-
to bottom,
|
| 23 |
-
transparent,
|
| 24 |
-
rgb(var(--background-end-rgb))
|
| 25 |
-
)
|
| 26 |
-
rgb(var(--background-start-rgb));
|
| 27 |
-
}
|
| 28 |
-
|
| 29 |
-
@layer utilities {
|
| 30 |
-
.text-balance {
|
| 31 |
-
text-wrap: balance;
|
| 32 |
-
}
|
| 33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/layout.tsx
CHANGED
|
@@ -1,12 +1,11 @@
|
|
| 1 |
import type { Metadata } from "next";
|
| 2 |
import { Inter } from "next/font/google";
|
| 3 |
-
import "
|
| 4 |
|
| 5 |
const inter = Inter({ subsets: ["latin"] });
|
| 6 |
|
| 7 |
export const metadata: Metadata = {
|
| 8 |
-
title: "
|
| 9 |
-
description: "Generated by create next app",
|
| 10 |
};
|
| 11 |
|
| 12 |
export default function RootLayout({
|
|
|
|
| 1 |
import type { Metadata } from "next";
|
| 2 |
import { Inter } from "next/font/google";
|
| 3 |
+
import "@/assets/globals.css";
|
| 4 |
|
| 5 |
const inter = Inter({ subsets: ["latin"] });
|
| 6 |
|
| 7 |
export const metadata: Metadata = {
|
| 8 |
+
title: "Zero GPU Spaces | Hugging Face",
|
|
|
|
| 9 |
};
|
| 10 |
|
| 11 |
export default function RootLayout({
|
app/page.tsx
CHANGED
|
@@ -1,113 +1,41 @@
|
|
| 1 |
-
import
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
<div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:size-auto lg:bg-none">
|
| 12 |
-
<a
|
| 13 |
-
className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
|
| 14 |
-
href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
| 15 |
-
target="_blank"
|
| 16 |
-
rel="noopener noreferrer"
|
| 17 |
-
>
|
| 18 |
-
By{" "}
|
| 19 |
-
<Image
|
| 20 |
-
src="/vercel.svg"
|
| 21 |
-
alt="Vercel Logo"
|
| 22 |
-
className="dark:invert"
|
| 23 |
-
width={100}
|
| 24 |
-
height={24}
|
| 25 |
-
priority
|
| 26 |
-
/>
|
| 27 |
-
</a>
|
| 28 |
-
</div>
|
| 29 |
-
</div>
|
| 30 |
-
|
| 31 |
-
<div className="relative z-[-1] flex place-items-center before:absolute before:h-[300px] before:w-full before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 sm:before:w-[480px] sm:after:w-[240px] before:lg:h-[360px]">
|
| 32 |
-
<Image
|
| 33 |
-
className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert"
|
| 34 |
-
src="/next.svg"
|
| 35 |
-
alt="Next.js Logo"
|
| 36 |
-
width={180}
|
| 37 |
-
height={37}
|
| 38 |
-
priority
|
| 39 |
-
/>
|
| 40 |
-
</div>
|
| 41 |
-
|
| 42 |
-
<div className="mb-32 grid text-center lg:mb-0 lg:w-full lg:max-w-5xl lg:grid-cols-4 lg:text-left">
|
| 43 |
-
<a
|
| 44 |
-
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
| 45 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
| 46 |
-
target="_blank"
|
| 47 |
-
rel="noopener noreferrer"
|
| 48 |
-
>
|
| 49 |
-
<h2 className="mb-3 text-2xl font-semibold">
|
| 50 |
-
Docs{" "}
|
| 51 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
| 52 |
-
->
|
| 53 |
-
</span>
|
| 54 |
-
</h2>
|
| 55 |
-
<p className="m-0 max-w-[30ch] text-sm opacity-50">
|
| 56 |
-
Find in-depth information about Next.js features and API.
|
| 57 |
-
</p>
|
| 58 |
-
</a>
|
| 59 |
-
|
| 60 |
-
<a
|
| 61 |
-
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
| 62 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
| 63 |
-
target="_blank"
|
| 64 |
-
rel="noopener noreferrer"
|
| 65 |
-
>
|
| 66 |
-
<h2 className="mb-3 text-2xl font-semibold">
|
| 67 |
-
Learn{" "}
|
| 68 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
| 69 |
-
->
|
| 70 |
-
</span>
|
| 71 |
-
</h2>
|
| 72 |
-
<p className="m-0 max-w-[30ch] text-sm opacity-50">
|
| 73 |
-
Learn about Next.js in an interactive course with quizzes!
|
| 74 |
-
</p>
|
| 75 |
-
</a>
|
| 76 |
-
|
| 77 |
-
<a
|
| 78 |
-
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
| 79 |
-
className="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
|
| 80 |
-
target="_blank"
|
| 81 |
-
rel="noopener noreferrer"
|
| 82 |
-
>
|
| 83 |
-
<h2 className="mb-3 text-2xl font-semibold">
|
| 84 |
-
Templates{" "}
|
| 85 |
-
<span className="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">
|
| 86 |
-
->
|
| 87 |
-
</span>
|
| 88 |
-
</h2>
|
| 89 |
-
<p className="m-0 max-w-[30ch] text-sm opacity-50">
|
| 90 |
-
Explore starter templates for Next.js.
|
| 91 |
-
</p>
|
| 92 |
-
</a>
|
| 93 |
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
<
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
|
|
|
|
|
|
| 108 |
</p>
|
| 109 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
</div>
|
| 111 |
-
</
|
| 112 |
);
|
| 113 |
}
|
|
|
|
| 1 |
+
import { Space } from "@/components/space";
|
| 2 |
+
import { SpaceIcon } from "@/components/space_icon";
|
| 3 |
+
import { fetchAllPages } from "@/utils";
|
| 4 |
+
import { SpaceProps } from "@/utils/type";
|
| 5 |
|
| 6 |
+
async function getSpaces() {
|
| 7 |
+
try {
|
| 8 |
+
const response = await fetchAllPages();
|
| 9 |
+
return response as SpaceProps[];
|
| 10 |
+
} catch {
|
| 11 |
+
return [];
|
| 12 |
+
}
|
| 13 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
+
export default async function Home() {
|
| 16 |
+
const spaces = await getSpaces();
|
| 17 |
+
console.log(spaces);
|
| 18 |
+
return (
|
| 19 |
+
<section className="flex h-screen overflow-auto">
|
| 20 |
+
<div className="w-full container px-6 py-10 lg:py-20 mx-auto space-y-14">
|
| 21 |
+
<header className="max-w-4xl mx-auto w-full text-center">
|
| 22 |
+
<div className="mb-6 mx-auto font-regular text-xs text-center max-w-max rounded-full border-gray-200 bg-gray-50 border text-gray-700 px-3 py-2 transition-all duration-300">
|
| 23 |
+
<SpaceIcon className="inline-block w-4 h-4 mr-2 drop-shadow-lg" />
|
| 24 |
+
Browse {spaces.length} spaces
|
| 25 |
+
</div>
|
| 26 |
+
<h1 className="font-extrabold text-3xl text-black">
|
| 27 |
+
Zero GPU Spaces
|
| 28 |
+
</h1>
|
| 29 |
+
<p className="text-neutral-500 font-regular text-base">
|
| 30 |
+
Discover spaces with zero GPU usage on 🤗 Hugging Face Spaces.
|
| 31 |
</p>
|
| 32 |
+
</header>
|
| 33 |
+
<div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
|
| 34 |
+
{spaces?.map((space: SpaceProps) => (
|
| 35 |
+
<Space key={space.id} space={space} />
|
| 36 |
+
))}
|
| 37 |
+
</div>
|
| 38 |
</div>
|
| 39 |
+
</section>
|
| 40 |
);
|
| 41 |
}
|
assets/globals.css
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@tailwind base;
|
| 2 |
+
@tailwind components;
|
| 3 |
+
@tailwind utilities;
|
| 4 |
+
|
| 5 |
+
body {
|
| 6 |
+
@apply bg-gray-100 overflow-hidden;
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
@layer utilities {
|
| 10 |
+
.text-balance {
|
| 11 |
+
text-wrap: balance;
|
| 12 |
+
}
|
| 13 |
+
}
|
components/space.tsx
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import Image from "next/image";
|
| 2 |
+
import { TiHeartFullOutline } from "react-icons/ti";
|
| 3 |
+
|
| 4 |
+
import { SpaceProps } from "@/utils/type";
|
| 5 |
+
import Link from "next/link";
|
| 6 |
+
|
| 7 |
+
interface Props {
|
| 8 |
+
space: SpaceProps;
|
| 9 |
+
}
|
| 10 |
+
export const Space: React.FC<Props> = ({ space }) => {
|
| 11 |
+
return (
|
| 12 |
+
<Link
|
| 13 |
+
href={`https://huggingface.co/spaces/${space.id}`}
|
| 14 |
+
target="_blank"
|
| 15 |
+
className="bg-gray-50 border border-gray-200 px-6 py-4 rounded-xl transition-all duration-300 hover:ring-[4px] hover:ring-blue-500/10"
|
| 16 |
+
>
|
| 17 |
+
<header className="flex items-center justify-between gap-5">
|
| 18 |
+
<div>
|
| 19 |
+
<h2 className="font-semibold text-black">{space?.title}</h2>
|
| 20 |
+
{space.shortDescription && (
|
| 21 |
+
<p className="text-gray-500 text-xs mt-0.5 line-clamp-1">
|
| 22 |
+
{space.shortDescription}
|
| 23 |
+
</p>
|
| 24 |
+
)}
|
| 25 |
+
<div className="flex items-center justify-start gap-2 whitespace-pre-line mt-2">
|
| 26 |
+
<Image
|
| 27 |
+
src={
|
| 28 |
+
space.authorData.avatarUrl?.startsWith("/")
|
| 29 |
+
? `https://huggingface.co${space.authorData.avatarUrl}`
|
| 30 |
+
: space.authorData.avatarUrl
|
| 31 |
+
}
|
| 32 |
+
alt={space.authorData.name}
|
| 33 |
+
width={24}
|
| 34 |
+
height={24}
|
| 35 |
+
className="rounded-full w-4 h-4"
|
| 36 |
+
/>
|
| 37 |
+
<div>
|
| 38 |
+
<p className="text-gray-500 text-xs font-regular">
|
| 39 |
+
{space.authorData.name}
|
| 40 |
+
</p>
|
| 41 |
+
</div>
|
| 42 |
+
</div>
|
| 43 |
+
</div>
|
| 44 |
+
<div className="space-y-3 flex flex-col items-end">
|
| 45 |
+
<div
|
| 46 |
+
className="rounded-full truncate min-w-[2.5rem] min-h-[2.5rem] max-w-[2.5rem] max-h-[2.5rem] overflow-hidden flex items-center justify-center bg-gradient-to-br from-blue-500 to-red-500 border-[2px] border-white ring-1 ring-gray-200"
|
| 47 |
+
style={{
|
| 48 |
+
// @ts-ignore
|
| 49 |
+
"--tw-gradient-from": `${space.colorFrom} var(--tw-gradient-to-position)`,
|
| 50 |
+
"--tw-gradient-to": space.colorTo,
|
| 51 |
+
}}
|
| 52 |
+
>
|
| 53 |
+
{space?.emoji && (
|
| 54 |
+
<p className="text-xl">
|
| 55 |
+
{/* keep only 1 char */}
|
| 56 |
+
{space.emoji}
|
| 57 |
+
</p>
|
| 58 |
+
)}
|
| 59 |
+
</div>
|
| 60 |
+
<div className="flex items-center max-w-max rounded-full px-1.5 py-1 text-sm bg-gray-100/80 border border-gray-200 text-gray-600">
|
| 61 |
+
<TiHeartFullOutline className="w-5" />
|
| 62 |
+
<p className="text-gray-500 text-xs font-regular">{space.likes}</p>
|
| 63 |
+
</div>
|
| 64 |
+
</div>
|
| 65 |
+
</header>
|
| 66 |
+
</Link>
|
| 67 |
+
);
|
| 68 |
+
};
|
components/space_icon.tsx
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const SpaceIcon = ({ className }: { className?: string }) => {
|
| 2 |
+
return (
|
| 3 |
+
<svg
|
| 4 |
+
className={className}
|
| 5 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 6 |
+
focusable="false"
|
| 7 |
+
role="img"
|
| 8 |
+
width="1em"
|
| 9 |
+
height="1em"
|
| 10 |
+
preserveAspectRatio="xMidYMid meet"
|
| 11 |
+
viewBox="0 0 39 40"
|
| 12 |
+
>
|
| 13 |
+
<path
|
| 14 |
+
d="M6.3712 2.04427C3.7183 2.04427 1.56771 4.19486 1.56771 6.84776V18.3546V18.6544V32.7341C1.56771 35.3868 3.71818 37.5377 6.3712 37.5377H17.878H20.7507H32.2575C34.9104 37.5377 37.0612 35.387 37.0612 32.7341V21.6204C37.0612 20.177 36.4252 18.8839 35.4189 18.004C36.4576 16.3895 37.0612 14.4666 37.0612 12.4046C37.0612 6.68274 32.4225 2.04427 26.7007 2.04427C24.6388 2.04427 22.7159 2.64776 21.1014 3.68647C20.2214 2.6802 18.9282 2.04427 17.4849 2.04427H6.3712Z"
|
| 15 |
+
fill="black"
|
| 16 |
+
className="stroke-white"
|
| 17 |
+
strokeWidth="3.07552"
|
| 18 |
+
/>
|
| 19 |
+
<path
|
| 20 |
+
d="M9.56855 23.5001C8.8406 23.5001 8.25047 24.0902 8.25047 24.8182V29.5361C8.25047 30.2641 8.8406 30.8542 9.56855 30.8542H14.2864C15.0144 30.8542 15.6045 30.2641 15.6045 29.5361V24.8182C15.6045 24.0902 15.0143 23.5001 14.2864 23.5001H9.56855Z"
|
| 21 |
+
fill="#FF3270"
|
| 22 |
+
/>
|
| 23 |
+
<path
|
| 24 |
+
d="M24.3409 23.5001C23.613 23.5001 23.0228 24.0902 23.0228 24.8182V29.5361C23.0228 30.2641 23.613 30.8542 24.3409 30.8542H29.0588C29.7868 30.8542 30.3769 30.2641 30.3769 29.5361V24.8182C30.3769 24.0902 29.7868 23.5001 29.0588 23.5001H24.3409Z"
|
| 25 |
+
fill="#861FFF"
|
| 26 |
+
/>
|
| 27 |
+
<path
|
| 28 |
+
d="M9.56855 8.72815C8.8406 8.72815 8.25047 9.31827 8.25047 10.0462V14.7641C8.25047 15.4921 8.8406 16.0822 9.56855 16.0822H14.2864C15.0144 16.0822 15.6045 15.4921 15.6045 14.7641V10.0462C15.6045 9.31827 15.0143 8.72815 14.2864 8.72815H9.56855Z"
|
| 29 |
+
fill="#097EFF"
|
| 30 |
+
/>
|
| 31 |
+
<path
|
| 32 |
+
d="M26.6999 8.72815C24.6692 8.72815 23.0228 10.3744 23.0228 12.4052C23.0228 14.4359 24.6692 16.0822 26.6999 16.0822C28.7306 16.0822 30.3769 14.4359 30.3769 12.4052C30.3769 10.3744 28.7306 8.72815 26.6999 8.72815Z"
|
| 33 |
+
fill="#FFD702"
|
| 34 |
+
/>
|
| 35 |
+
</svg>
|
| 36 |
+
);
|
| 37 |
+
};
|
next.config.mjs
CHANGED
|
@@ -1,4 +1,25 @@
|
|
| 1 |
/** @type {import('next').NextConfig} */
|
| 2 |
-
const nextConfig = {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
|
| 4 |
export default nextConfig;
|
|
|
|
| 1 |
/** @type {import('next').NextConfig} */
|
| 2 |
+
const nextConfig = {
|
| 3 |
+
images: {
|
| 4 |
+
remotePatterns: [
|
| 5 |
+
{
|
| 6 |
+
protocol: "https",
|
| 7 |
+
hostname: "huggingface.co",
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
protocol: "https",
|
| 11 |
+
hostname: "aeiljuispo.cloudimg.io",
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
protocol: "https",
|
| 15 |
+
hostname: "cdn-avatars.huggingface.co",
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
protocol: "https",
|
| 19 |
+
hostname: "www.gravatar.com",
|
| 20 |
+
},
|
| 21 |
+
],
|
| 22 |
+
},
|
| 23 |
+
};
|
| 24 |
|
| 25 |
export default nextConfig;
|
package-lock.json
CHANGED
|
@@ -8,9 +8,12 @@
|
|
| 8 |
"name": "zero-gpu-spaces",
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
|
|
|
| 11 |
"next": "14.2.3",
|
| 12 |
"react": "^18",
|
| 13 |
-
"react-dom": "^18"
|
|
|
|
|
|
|
| 14 |
},
|
| 15 |
"devDependencies": {
|
| 16 |
"@types/node": "^20",
|
|
@@ -39,7 +42,6 @@
|
|
| 39 |
"version": "7.24.4",
|
| 40 |
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz",
|
| 41 |
"integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
|
| 42 |
-
"dev": true,
|
| 43 |
"dependencies": {
|
| 44 |
"regenerator-runtime": "^0.14.0"
|
| 45 |
},
|
|
@@ -215,8 +217,7 @@
|
|
| 215 |
"node_modules/@jridgewell/sourcemap-codec": {
|
| 216 |
"version": "1.4.15",
|
| 217 |
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
| 218 |
-
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
| 219 |
-
"dev": true
|
| 220 |
},
|
| 221 |
"node_modules/@jridgewell/trace-mapping": {
|
| 222 |
"version": "0.3.25",
|
|
@@ -442,6 +443,11 @@
|
|
| 442 |
"tslib": "^2.4.0"
|
| 443 |
}
|
| 444 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 445 |
"node_modules/@types/json5": {
|
| 446 |
"version": "0.0.29",
|
| 447 |
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
|
|
@@ -615,6 +621,11 @@
|
|
| 615 |
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
|
| 616 |
"dev": true
|
| 617 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 618 |
"node_modules/acorn": {
|
| 619 |
"version": "8.11.3",
|
| 620 |
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
|
@@ -1082,6 +1093,11 @@
|
|
| 1082 |
"node": ">= 6"
|
| 1083 |
}
|
| 1084 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1085 |
"node_modules/client-only": {
|
| 1086 |
"version": "0.0.1",
|
| 1087 |
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
|
|
@@ -1120,6 +1136,14 @@
|
|
| 1120 |
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
| 1121 |
"dev": true
|
| 1122 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1123 |
"node_modules/cross-spawn": {
|
| 1124 |
"version": "7.0.3",
|
| 1125 |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
|
@@ -1134,6 +1158,26 @@
|
|
| 1134 |
"node": ">= 8"
|
| 1135 |
}
|
| 1136 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1137 |
"node_modules/cssesc": {
|
| 1138 |
"version": "3.0.0",
|
| 1139 |
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
|
@@ -1149,8 +1193,7 @@
|
|
| 1149 |
"node_modules/csstype": {
|
| 1150 |
"version": "3.1.3",
|
| 1151 |
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
| 1152 |
-
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
| 1153 |
-
"dev": true
|
| 1154 |
},
|
| 1155 |
"node_modules/damerau-levenshtein": {
|
| 1156 |
"version": "1.0.8",
|
|
@@ -1336,6 +1379,14 @@
|
|
| 1336 |
"node": ">=10.13.0"
|
| 1337 |
}
|
| 1338 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1339 |
"node_modules/es-abstract": {
|
| 1340 |
"version": "1.23.3",
|
| 1341 |
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
|
|
@@ -1921,8 +1972,7 @@
|
|
| 1921 |
"node_modules/fast-deep-equal": {
|
| 1922 |
"version": "3.1.3",
|
| 1923 |
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
| 1924 |
-
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
| 1925 |
-
"dev": true
|
| 1926 |
},
|
| 1927 |
"node_modules/fast-glob": {
|
| 1928 |
"version": "3.3.2",
|
|
@@ -1964,6 +2014,21 @@
|
|
| 1964 |
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
| 1965 |
"dev": true
|
| 1966 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1967 |
"node_modules/fastq": {
|
| 1968 |
"version": "1.17.1",
|
| 1969 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
|
@@ -2374,6 +2439,11 @@
|
|
| 2374 |
"node": ">= 0.4"
|
| 2375 |
}
|
| 2376 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2377 |
"node_modules/ignore": {
|
| 2378 |
"version": "5.3.1",
|
| 2379 |
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
|
|
@@ -2424,6 +2494,15 @@
|
|
| 2424 |
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
| 2425 |
"dev": true
|
| 2426 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2427 |
"node_modules/internal-slot": {
|
| 2428 |
"version": "1.0.7",
|
| 2429 |
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
|
|
@@ -2857,6 +2936,11 @@
|
|
| 2857 |
"jiti": "bin/jiti.js"
|
| 2858 |
}
|
| 2859 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2860 |
"node_modules/js-tokens": {
|
| 2861 |
"version": "4.0.0",
|
| 2862 |
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
|
@@ -3015,6 +3099,11 @@
|
|
| 3015 |
"node": "14 || >=16.14"
|
| 3016 |
}
|
| 3017 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3018 |
"node_modules/merge2": {
|
| 3019 |
"version": "1.4.1",
|
| 3020 |
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
|
|
@@ -3084,6 +3173,25 @@
|
|
| 3084 |
"thenify-all": "^1.0.0"
|
| 3085 |
}
|
| 3086 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3087 |
"node_modules/nanoid": {
|
| 3088 |
"version": "3.3.7",
|
| 3089 |
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
|
@@ -3717,12 +3825,54 @@
|
|
| 3717 |
"react": "^18.3.1"
|
| 3718 |
}
|
| 3719 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3720 |
"node_modules/react-is": {
|
| 3721 |
"version": "16.13.1",
|
| 3722 |
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
| 3723 |
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
| 3724 |
"dev": true
|
| 3725 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3726 |
"node_modules/read-cache": {
|
| 3727 |
"version": "1.0.0",
|
| 3728 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
|
@@ -3768,8 +3918,7 @@
|
|
| 3768 |
"node_modules/regenerator-runtime": {
|
| 3769 |
"version": "0.14.1",
|
| 3770 |
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
|
| 3771 |
-
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
|
| 3772 |
-
"dev": true
|
| 3773 |
},
|
| 3774 |
"node_modules/regexp.prototype.flags": {
|
| 3775 |
"version": "1.5.2",
|
|
@@ -3789,6 +3938,11 @@
|
|
| 3789 |
"url": "https://github.com/sponsors/ljharb"
|
| 3790 |
}
|
| 3791 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3792 |
"node_modules/resolve": {
|
| 3793 |
"version": "1.22.8",
|
| 3794 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
|
@@ -3869,6 +4023,14 @@
|
|
| 3869 |
"url": "https://github.com/sponsors/isaacs"
|
| 3870 |
}
|
| 3871 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3872 |
"node_modules/run-parallel": {
|
| 3873 |
"version": "1.2.0",
|
| 3874 |
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
|
@@ -3935,6 +4097,17 @@
|
|
| 3935 |
"loose-envify": "^1.1.0"
|
| 3936 |
}
|
| 3937 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3938 |
"node_modules/semver": {
|
| 3939 |
"version": "7.6.0",
|
| 3940 |
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
|
@@ -3994,6 +4167,14 @@
|
|
| 3994 |
"node": ">= 0.4"
|
| 3995 |
}
|
| 3996 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3997 |
"node_modules/shebang-command": {
|
| 3998 |
"version": "2.0.0",
|
| 3999 |
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
|
@@ -4054,6 +4235,14 @@
|
|
| 4054 |
"node": ">=8"
|
| 4055 |
}
|
| 4056 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4057 |
"node_modules/source-map-js": {
|
| 4058 |
"version": "1.2.0",
|
| 4059 |
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
|
@@ -4062,6 +4251,46 @@
|
|
| 4062 |
"node": ">=0.10.0"
|
| 4063 |
}
|
| 4064 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4065 |
"node_modules/streamsearch": {
|
| 4066 |
"version": "1.1.0",
|
| 4067 |
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
|
@@ -4278,6 +4507,11 @@
|
|
| 4278 |
}
|
| 4279 |
}
|
| 4280 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4281 |
"node_modules/sucrase": {
|
| 4282 |
"version": "3.35.0",
|
| 4283 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
|
@@ -4397,6 +4631,14 @@
|
|
| 4397 |
"node": ">=0.8"
|
| 4398 |
}
|
| 4399 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4400 |
"node_modules/to-regex-range": {
|
| 4401 |
"version": "5.0.1",
|
| 4402 |
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
|
@@ -4409,6 +4651,11 @@
|
|
| 4409 |
"node": ">=8.0"
|
| 4410 |
}
|
| 4411 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4412 |
"node_modules/ts-api-utils": {
|
| 4413 |
"version": "1.3.0",
|
| 4414 |
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
|
|
@@ -4421,6 +4668,11 @@
|
|
| 4421 |
"typescript": ">=4.2.0"
|
| 4422 |
}
|
| 4423 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4424 |
"node_modules/ts-interface-checker": {
|
| 4425 |
"version": "0.1.13",
|
| 4426 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
|
|
|
| 8 |
"name": "zero-gpu-spaces",
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
| 11 |
+
"classnames": "^2.5.1",
|
| 12 |
"next": "14.2.3",
|
| 13 |
"react": "^18",
|
| 14 |
+
"react-dom": "^18",
|
| 15 |
+
"react-icons": "^5.1.0",
|
| 16 |
+
"react-use": "^17.5.0"
|
| 17 |
},
|
| 18 |
"devDependencies": {
|
| 19 |
"@types/node": "^20",
|
|
|
|
| 42 |
"version": "7.24.4",
|
| 43 |
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz",
|
| 44 |
"integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
|
|
|
|
| 45 |
"dependencies": {
|
| 46 |
"regenerator-runtime": "^0.14.0"
|
| 47 |
},
|
|
|
|
| 217 |
"node_modules/@jridgewell/sourcemap-codec": {
|
| 218 |
"version": "1.4.15",
|
| 219 |
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
| 220 |
+
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
|
|
|
| 221 |
},
|
| 222 |
"node_modules/@jridgewell/trace-mapping": {
|
| 223 |
"version": "0.3.25",
|
|
|
|
| 443 |
"tslib": "^2.4.0"
|
| 444 |
}
|
| 445 |
},
|
| 446 |
+
"node_modules/@types/js-cookie": {
|
| 447 |
+
"version": "2.2.7",
|
| 448 |
+
"resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz",
|
| 449 |
+
"integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA=="
|
| 450 |
+
},
|
| 451 |
"node_modules/@types/json5": {
|
| 452 |
"version": "0.0.29",
|
| 453 |
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
|
|
|
|
| 621 |
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
|
| 622 |
"dev": true
|
| 623 |
},
|
| 624 |
+
"node_modules/@xobotyi/scrollbar-width": {
|
| 625 |
+
"version": "1.9.5",
|
| 626 |
+
"resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz",
|
| 627 |
+
"integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ=="
|
| 628 |
+
},
|
| 629 |
"node_modules/acorn": {
|
| 630 |
"version": "8.11.3",
|
| 631 |
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
|
|
|
|
| 1093 |
"node": ">= 6"
|
| 1094 |
}
|
| 1095 |
},
|
| 1096 |
+
"node_modules/classnames": {
|
| 1097 |
+
"version": "2.5.1",
|
| 1098 |
+
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
|
| 1099 |
+
"integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
|
| 1100 |
+
},
|
| 1101 |
"node_modules/client-only": {
|
| 1102 |
"version": "0.0.1",
|
| 1103 |
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
|
|
|
|
| 1136 |
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
| 1137 |
"dev": true
|
| 1138 |
},
|
| 1139 |
+
"node_modules/copy-to-clipboard": {
|
| 1140 |
+
"version": "3.3.3",
|
| 1141 |
+
"resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz",
|
| 1142 |
+
"integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
|
| 1143 |
+
"dependencies": {
|
| 1144 |
+
"toggle-selection": "^1.0.6"
|
| 1145 |
+
}
|
| 1146 |
+
},
|
| 1147 |
"node_modules/cross-spawn": {
|
| 1148 |
"version": "7.0.3",
|
| 1149 |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
|
|
|
| 1158 |
"node": ">= 8"
|
| 1159 |
}
|
| 1160 |
},
|
| 1161 |
+
"node_modules/css-in-js-utils": {
|
| 1162 |
+
"version": "3.1.0",
|
| 1163 |
+
"resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz",
|
| 1164 |
+
"integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==",
|
| 1165 |
+
"dependencies": {
|
| 1166 |
+
"hyphenate-style-name": "^1.0.3"
|
| 1167 |
+
}
|
| 1168 |
+
},
|
| 1169 |
+
"node_modules/css-tree": {
|
| 1170 |
+
"version": "1.1.3",
|
| 1171 |
+
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
|
| 1172 |
+
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
|
| 1173 |
+
"dependencies": {
|
| 1174 |
+
"mdn-data": "2.0.14",
|
| 1175 |
+
"source-map": "^0.6.1"
|
| 1176 |
+
},
|
| 1177 |
+
"engines": {
|
| 1178 |
+
"node": ">=8.0.0"
|
| 1179 |
+
}
|
| 1180 |
+
},
|
| 1181 |
"node_modules/cssesc": {
|
| 1182 |
"version": "3.0.0",
|
| 1183 |
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
|
|
|
| 1193 |
"node_modules/csstype": {
|
| 1194 |
"version": "3.1.3",
|
| 1195 |
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
| 1196 |
+
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
|
|
|
| 1197 |
},
|
| 1198 |
"node_modules/damerau-levenshtein": {
|
| 1199 |
"version": "1.0.8",
|
|
|
|
| 1379 |
"node": ">=10.13.0"
|
| 1380 |
}
|
| 1381 |
},
|
| 1382 |
+
"node_modules/error-stack-parser": {
|
| 1383 |
+
"version": "2.1.4",
|
| 1384 |
+
"resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
|
| 1385 |
+
"integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
|
| 1386 |
+
"dependencies": {
|
| 1387 |
+
"stackframe": "^1.3.4"
|
| 1388 |
+
}
|
| 1389 |
+
},
|
| 1390 |
"node_modules/es-abstract": {
|
| 1391 |
"version": "1.23.3",
|
| 1392 |
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
|
|
|
|
| 1972 |
"node_modules/fast-deep-equal": {
|
| 1973 |
"version": "3.1.3",
|
| 1974 |
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
| 1975 |
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
|
|
|
| 1976 |
},
|
| 1977 |
"node_modules/fast-glob": {
|
| 1978 |
"version": "3.3.2",
|
|
|
|
| 2014 |
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
| 2015 |
"dev": true
|
| 2016 |
},
|
| 2017 |
+
"node_modules/fast-loops": {
|
| 2018 |
+
"version": "1.1.3",
|
| 2019 |
+
"resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.3.tgz",
|
| 2020 |
+
"integrity": "sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g=="
|
| 2021 |
+
},
|
| 2022 |
+
"node_modules/fast-shallow-equal": {
|
| 2023 |
+
"version": "1.0.0",
|
| 2024 |
+
"resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz",
|
| 2025 |
+
"integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw=="
|
| 2026 |
+
},
|
| 2027 |
+
"node_modules/fastest-stable-stringify": {
|
| 2028 |
+
"version": "2.0.2",
|
| 2029 |
+
"resolved": "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz",
|
| 2030 |
+
"integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q=="
|
| 2031 |
+
},
|
| 2032 |
"node_modules/fastq": {
|
| 2033 |
"version": "1.17.1",
|
| 2034 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
|
|
|
| 2439 |
"node": ">= 0.4"
|
| 2440 |
}
|
| 2441 |
},
|
| 2442 |
+
"node_modules/hyphenate-style-name": {
|
| 2443 |
+
"version": "1.0.4",
|
| 2444 |
+
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
|
| 2445 |
+
"integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
|
| 2446 |
+
},
|
| 2447 |
"node_modules/ignore": {
|
| 2448 |
"version": "5.3.1",
|
| 2449 |
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
|
|
|
|
| 2494 |
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
| 2495 |
"dev": true
|
| 2496 |
},
|
| 2497 |
+
"node_modules/inline-style-prefixer": {
|
| 2498 |
+
"version": "7.0.0",
|
| 2499 |
+
"resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz",
|
| 2500 |
+
"integrity": "sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==",
|
| 2501 |
+
"dependencies": {
|
| 2502 |
+
"css-in-js-utils": "^3.1.0",
|
| 2503 |
+
"fast-loops": "^1.1.3"
|
| 2504 |
+
}
|
| 2505 |
+
},
|
| 2506 |
"node_modules/internal-slot": {
|
| 2507 |
"version": "1.0.7",
|
| 2508 |
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
|
|
|
|
| 2936 |
"jiti": "bin/jiti.js"
|
| 2937 |
}
|
| 2938 |
},
|
| 2939 |
+
"node_modules/js-cookie": {
|
| 2940 |
+
"version": "2.2.1",
|
| 2941 |
+
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
|
| 2942 |
+
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
|
| 2943 |
+
},
|
| 2944 |
"node_modules/js-tokens": {
|
| 2945 |
"version": "4.0.0",
|
| 2946 |
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
|
|
|
| 3099 |
"node": "14 || >=16.14"
|
| 3100 |
}
|
| 3101 |
},
|
| 3102 |
+
"node_modules/mdn-data": {
|
| 3103 |
+
"version": "2.0.14",
|
| 3104 |
+
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
| 3105 |
+
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
|
| 3106 |
+
},
|
| 3107 |
"node_modules/merge2": {
|
| 3108 |
"version": "1.4.1",
|
| 3109 |
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
|
|
|
|
| 3173 |
"thenify-all": "^1.0.0"
|
| 3174 |
}
|
| 3175 |
},
|
| 3176 |
+
"node_modules/nano-css": {
|
| 3177 |
+
"version": "5.6.1",
|
| 3178 |
+
"resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.1.tgz",
|
| 3179 |
+
"integrity": "sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==",
|
| 3180 |
+
"dependencies": {
|
| 3181 |
+
"@jridgewell/sourcemap-codec": "^1.4.15",
|
| 3182 |
+
"css-tree": "^1.1.2",
|
| 3183 |
+
"csstype": "^3.1.2",
|
| 3184 |
+
"fastest-stable-stringify": "^2.0.2",
|
| 3185 |
+
"inline-style-prefixer": "^7.0.0",
|
| 3186 |
+
"rtl-css-js": "^1.16.1",
|
| 3187 |
+
"stacktrace-js": "^2.0.2",
|
| 3188 |
+
"stylis": "^4.3.0"
|
| 3189 |
+
},
|
| 3190 |
+
"peerDependencies": {
|
| 3191 |
+
"react": "*",
|
| 3192 |
+
"react-dom": "*"
|
| 3193 |
+
}
|
| 3194 |
+
},
|
| 3195 |
"node_modules/nanoid": {
|
| 3196 |
"version": "3.3.7",
|
| 3197 |
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
|
|
|
| 3825 |
"react": "^18.3.1"
|
| 3826 |
}
|
| 3827 |
},
|
| 3828 |
+
"node_modules/react-icons": {
|
| 3829 |
+
"version": "5.1.0",
|
| 3830 |
+
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.1.0.tgz",
|
| 3831 |
+
"integrity": "sha512-D3zug1270S4hbSlIRJ0CUS97QE1yNNKDjzQe3HqY0aefp2CBn9VgzgES27sRR2gOvFK+0CNx/BW0ggOESp6fqQ==",
|
| 3832 |
+
"peerDependencies": {
|
| 3833 |
+
"react": "*"
|
| 3834 |
+
}
|
| 3835 |
+
},
|
| 3836 |
"node_modules/react-is": {
|
| 3837 |
"version": "16.13.1",
|
| 3838 |
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
| 3839 |
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
| 3840 |
"dev": true
|
| 3841 |
},
|
| 3842 |
+
"node_modules/react-universal-interface": {
|
| 3843 |
+
"version": "0.6.2",
|
| 3844 |
+
"resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz",
|
| 3845 |
+
"integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==",
|
| 3846 |
+
"peerDependencies": {
|
| 3847 |
+
"react": "*",
|
| 3848 |
+
"tslib": "*"
|
| 3849 |
+
}
|
| 3850 |
+
},
|
| 3851 |
+
"node_modules/react-use": {
|
| 3852 |
+
"version": "17.5.0",
|
| 3853 |
+
"resolved": "https://registry.npmjs.org/react-use/-/react-use-17.5.0.tgz",
|
| 3854 |
+
"integrity": "sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==",
|
| 3855 |
+
"dependencies": {
|
| 3856 |
+
"@types/js-cookie": "^2.2.6",
|
| 3857 |
+
"@xobotyi/scrollbar-width": "^1.9.5",
|
| 3858 |
+
"copy-to-clipboard": "^3.3.1",
|
| 3859 |
+
"fast-deep-equal": "^3.1.3",
|
| 3860 |
+
"fast-shallow-equal": "^1.0.0",
|
| 3861 |
+
"js-cookie": "^2.2.1",
|
| 3862 |
+
"nano-css": "^5.6.1",
|
| 3863 |
+
"react-universal-interface": "^0.6.2",
|
| 3864 |
+
"resize-observer-polyfill": "^1.5.1",
|
| 3865 |
+
"screenfull": "^5.1.0",
|
| 3866 |
+
"set-harmonic-interval": "^1.0.1",
|
| 3867 |
+
"throttle-debounce": "^3.0.1",
|
| 3868 |
+
"ts-easing": "^0.2.0",
|
| 3869 |
+
"tslib": "^2.1.0"
|
| 3870 |
+
},
|
| 3871 |
+
"peerDependencies": {
|
| 3872 |
+
"react": "*",
|
| 3873 |
+
"react-dom": "*"
|
| 3874 |
+
}
|
| 3875 |
+
},
|
| 3876 |
"node_modules/read-cache": {
|
| 3877 |
"version": "1.0.0",
|
| 3878 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
|
|
|
| 3918 |
"node_modules/regenerator-runtime": {
|
| 3919 |
"version": "0.14.1",
|
| 3920 |
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
|
| 3921 |
+
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
|
|
|
|
| 3922 |
},
|
| 3923 |
"node_modules/regexp.prototype.flags": {
|
| 3924 |
"version": "1.5.2",
|
|
|
|
| 3938 |
"url": "https://github.com/sponsors/ljharb"
|
| 3939 |
}
|
| 3940 |
},
|
| 3941 |
+
"node_modules/resize-observer-polyfill": {
|
| 3942 |
+
"version": "1.5.1",
|
| 3943 |
+
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
|
| 3944 |
+
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
|
| 3945 |
+
},
|
| 3946 |
"node_modules/resolve": {
|
| 3947 |
"version": "1.22.8",
|
| 3948 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
|
|
|
| 4023 |
"url": "https://github.com/sponsors/isaacs"
|
| 4024 |
}
|
| 4025 |
},
|
| 4026 |
+
"node_modules/rtl-css-js": {
|
| 4027 |
+
"version": "1.16.1",
|
| 4028 |
+
"resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz",
|
| 4029 |
+
"integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==",
|
| 4030 |
+
"dependencies": {
|
| 4031 |
+
"@babel/runtime": "^7.1.2"
|
| 4032 |
+
}
|
| 4033 |
+
},
|
| 4034 |
"node_modules/run-parallel": {
|
| 4035 |
"version": "1.2.0",
|
| 4036 |
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
|
|
|
| 4097 |
"loose-envify": "^1.1.0"
|
| 4098 |
}
|
| 4099 |
},
|
| 4100 |
+
"node_modules/screenfull": {
|
| 4101 |
+
"version": "5.2.0",
|
| 4102 |
+
"resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz",
|
| 4103 |
+
"integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==",
|
| 4104 |
+
"engines": {
|
| 4105 |
+
"node": ">=0.10.0"
|
| 4106 |
+
},
|
| 4107 |
+
"funding": {
|
| 4108 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 4109 |
+
}
|
| 4110 |
+
},
|
| 4111 |
"node_modules/semver": {
|
| 4112 |
"version": "7.6.0",
|
| 4113 |
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
|
|
|
|
| 4167 |
"node": ">= 0.4"
|
| 4168 |
}
|
| 4169 |
},
|
| 4170 |
+
"node_modules/set-harmonic-interval": {
|
| 4171 |
+
"version": "1.0.1",
|
| 4172 |
+
"resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz",
|
| 4173 |
+
"integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==",
|
| 4174 |
+
"engines": {
|
| 4175 |
+
"node": ">=6.9"
|
| 4176 |
+
}
|
| 4177 |
+
},
|
| 4178 |
"node_modules/shebang-command": {
|
| 4179 |
"version": "2.0.0",
|
| 4180 |
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
|
|
|
| 4235 |
"node": ">=8"
|
| 4236 |
}
|
| 4237 |
},
|
| 4238 |
+
"node_modules/source-map": {
|
| 4239 |
+
"version": "0.6.1",
|
| 4240 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
| 4241 |
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
| 4242 |
+
"engines": {
|
| 4243 |
+
"node": ">=0.10.0"
|
| 4244 |
+
}
|
| 4245 |
+
},
|
| 4246 |
"node_modules/source-map-js": {
|
| 4247 |
"version": "1.2.0",
|
| 4248 |
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
|
|
|
| 4251 |
"node": ">=0.10.0"
|
| 4252 |
}
|
| 4253 |
},
|
| 4254 |
+
"node_modules/stack-generator": {
|
| 4255 |
+
"version": "2.0.10",
|
| 4256 |
+
"resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz",
|
| 4257 |
+
"integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==",
|
| 4258 |
+
"dependencies": {
|
| 4259 |
+
"stackframe": "^1.3.4"
|
| 4260 |
+
}
|
| 4261 |
+
},
|
| 4262 |
+
"node_modules/stackframe": {
|
| 4263 |
+
"version": "1.3.4",
|
| 4264 |
+
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
|
| 4265 |
+
"integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
|
| 4266 |
+
},
|
| 4267 |
+
"node_modules/stacktrace-gps": {
|
| 4268 |
+
"version": "3.1.2",
|
| 4269 |
+
"resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz",
|
| 4270 |
+
"integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==",
|
| 4271 |
+
"dependencies": {
|
| 4272 |
+
"source-map": "0.5.6",
|
| 4273 |
+
"stackframe": "^1.3.4"
|
| 4274 |
+
}
|
| 4275 |
+
},
|
| 4276 |
+
"node_modules/stacktrace-gps/node_modules/source-map": {
|
| 4277 |
+
"version": "0.5.6",
|
| 4278 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
|
| 4279 |
+
"integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==",
|
| 4280 |
+
"engines": {
|
| 4281 |
+
"node": ">=0.10.0"
|
| 4282 |
+
}
|
| 4283 |
+
},
|
| 4284 |
+
"node_modules/stacktrace-js": {
|
| 4285 |
+
"version": "2.0.2",
|
| 4286 |
+
"resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz",
|
| 4287 |
+
"integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==",
|
| 4288 |
+
"dependencies": {
|
| 4289 |
+
"error-stack-parser": "^2.0.6",
|
| 4290 |
+
"stack-generator": "^2.0.5",
|
| 4291 |
+
"stacktrace-gps": "^3.0.4"
|
| 4292 |
+
}
|
| 4293 |
+
},
|
| 4294 |
"node_modules/streamsearch": {
|
| 4295 |
"version": "1.1.0",
|
| 4296 |
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
|
|
|
| 4507 |
}
|
| 4508 |
}
|
| 4509 |
},
|
| 4510 |
+
"node_modules/stylis": {
|
| 4511 |
+
"version": "4.3.2",
|
| 4512 |
+
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
|
| 4513 |
+
"integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
|
| 4514 |
+
},
|
| 4515 |
"node_modules/sucrase": {
|
| 4516 |
"version": "3.35.0",
|
| 4517 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
|
|
|
| 4631 |
"node": ">=0.8"
|
| 4632 |
}
|
| 4633 |
},
|
| 4634 |
+
"node_modules/throttle-debounce": {
|
| 4635 |
+
"version": "3.0.1",
|
| 4636 |
+
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
|
| 4637 |
+
"integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==",
|
| 4638 |
+
"engines": {
|
| 4639 |
+
"node": ">=10"
|
| 4640 |
+
}
|
| 4641 |
+
},
|
| 4642 |
"node_modules/to-regex-range": {
|
| 4643 |
"version": "5.0.1",
|
| 4644 |
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
|
|
|
| 4651 |
"node": ">=8.0"
|
| 4652 |
}
|
| 4653 |
},
|
| 4654 |
+
"node_modules/toggle-selection": {
|
| 4655 |
+
"version": "1.0.6",
|
| 4656 |
+
"resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
|
| 4657 |
+
"integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
|
| 4658 |
+
},
|
| 4659 |
"node_modules/ts-api-utils": {
|
| 4660 |
"version": "1.3.0",
|
| 4661 |
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
|
|
|
|
| 4668 |
"typescript": ">=4.2.0"
|
| 4669 |
}
|
| 4670 |
},
|
| 4671 |
+
"node_modules/ts-easing": {
|
| 4672 |
+
"version": "0.2.0",
|
| 4673 |
+
"resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz",
|
| 4674 |
+
"integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ=="
|
| 4675 |
+
},
|
| 4676 |
"node_modules/ts-interface-checker": {
|
| 4677 |
"version": "0.1.13",
|
| 4678 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
package.json
CHANGED
|
@@ -3,24 +3,27 @@
|
|
| 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 |
"react": "^18",
|
| 13 |
"react-dom": "^18",
|
| 14 |
-
"
|
|
|
|
| 15 |
},
|
| 16 |
"devDependencies": {
|
| 17 |
-
"typescript": "^5",
|
| 18 |
"@types/node": "^20",
|
| 19 |
"@types/react": "^18",
|
| 20 |
"@types/react-dom": "^18",
|
|
|
|
|
|
|
| 21 |
"postcss": "^8",
|
| 22 |
"tailwindcss": "^3.4.1",
|
| 23 |
-
"
|
| 24 |
-
"eslint-config-next": "14.2.3"
|
| 25 |
}
|
| 26 |
}
|
|
|
|
| 3 |
"version": "0.1.0",
|
| 4 |
"private": true,
|
| 5 |
"scripts": {
|
| 6 |
+
"dev": "next dev --port 3001",
|
| 7 |
"build": "next build",
|
| 8 |
"start": "next start",
|
| 9 |
"lint": "next lint"
|
| 10 |
},
|
| 11 |
"dependencies": {
|
| 12 |
+
"classnames": "^2.5.1",
|
| 13 |
+
"next": "14.2.3",
|
| 14 |
"react": "^18",
|
| 15 |
"react-dom": "^18",
|
| 16 |
+
"react-icons": "^5.1.0",
|
| 17 |
+
"react-use": "^17.5.0"
|
| 18 |
},
|
| 19 |
"devDependencies": {
|
|
|
|
| 20 |
"@types/node": "^20",
|
| 21 |
"@types/react": "^18",
|
| 22 |
"@types/react-dom": "^18",
|
| 23 |
+
"eslint": "^8",
|
| 24 |
+
"eslint-config-next": "14.2.3",
|
| 25 |
"postcss": "^8",
|
| 26 |
"tailwindcss": "^3.4.1",
|
| 27 |
+
"typescript": "^5"
|
|
|
|
| 28 |
}
|
| 29 |
}
|
utils/index.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const fetchAllPages = async () => {
|
| 2 |
+
const filter_key = "zero-a10g";
|
| 3 |
+
|
| 4 |
+
const pageNumbers = Array.from({ length: 200 }, (_, i) => i);
|
| 5 |
+
const urls = pageNumbers.map(async (pageNumber) => {
|
| 6 |
+
const url = `https://huggingface.co/spaces-json?p=${pageNumber}&sort=trending`;
|
| 7 |
+
const response = await fetch(url);
|
| 8 |
+
const json = await response.json();
|
| 9 |
+
return json?.spaces ?? [];
|
| 10 |
+
});
|
| 11 |
+
const jsonResponses = await Promise.all(urls);
|
| 12 |
+
const spaces = jsonResponses.flat()?.filter((space) => space?.runtime?.hardware?.current === filter_key);
|
| 13 |
+
return spaces;
|
| 14 |
+
};
|
utils/type.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export interface SpaceProps {
|
| 2 |
+
name: string;
|
| 3 |
+
id: string;
|
| 4 |
+
title: string;
|
| 5 |
+
emoji?: string;
|
| 6 |
+
runtime: any;
|
| 7 |
+
shortDescription?: string;
|
| 8 |
+
likes?: number;
|
| 9 |
+
authorData: Author;
|
| 10 |
+
colorFrom: string;
|
| 11 |
+
colorTo: string;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
interface Author {
|
| 15 |
+
name: string;
|
| 16 |
+
username: string;
|
| 17 |
+
fullName?: string;
|
| 18 |
+
avatarUrl: string;
|
| 19 |
+
}
|