de-francophones commited on
Commit
f693953
·
verified ·
1 Parent(s): 6f81039

Upload 47 files

Browse files
Files changed (46) hide show
  1. .cache/huggingface/.gitignore +1 -0
  2. .cache/huggingface/download/.gitattributes.metadata +3 -0
  3. .cache/huggingface/download/.gitignore.metadata +3 -0
  4. .cache/huggingface/download/Dockerfile.metadata +3 -0
  5. .cache/huggingface/download/README.md.metadata +3 -0
  6. .cache/huggingface/download/bun.lockb.metadata +3 -0
  7. .cache/huggingface/download/next.config.mjs.metadata +3 -0
  8. .cache/huggingface/download/package.json.metadata +3 -0
  9. .cache/huggingface/download/postcss.config.mjs.metadata +3 -0
  10. .cache/huggingface/download/public/favicon.ico.metadata +3 -0
  11. .cache/huggingface/download/public/next.svg.metadata +3 -0
  12. .cache/huggingface/download/public/vercel.svg.metadata +3 -0
  13. .cache/huggingface/download/src/pages/_app.tsx.metadata +3 -0
  14. .cache/huggingface/download/src/pages/_document.tsx.metadata +3 -0
  15. .cache/huggingface/download/src/pages/heatmap/index.tsx.metadata +3 -0
  16. .cache/huggingface/download/src/pages/index.tsx.metadata +3 -0
  17. .cache/huggingface/download/src/pages/trend/index.tsx.metadata +3 -0
  18. .cache/huggingface/download/src/styles/globals.css.metadata +3 -0
  19. .cache/huggingface/download/src/utils/modelData.ts.metadata +3 -0
  20. .cache/huggingface/download/src/utils/providers.ts.metadata +3 -0
  21. .cache/huggingface/download/tailwind.config.ts.metadata +3 -0
  22. .cache/huggingface/download/tsconfig.json.metadata +3 -0
  23. .cache/huggingface/download/upload.sh.metadata +3 -0
  24. .cache/huggingface/download/yarn.lock.metadata +3 -0
  25. .gitignore +36 -0
  26. Dockerfile +49 -0
  27. README.md +48 -6
  28. bun.lockb +0 -0
  29. next.config.mjs +7 -0
  30. package.json +30 -0
  31. postcss.config.mjs +8 -0
  32. public/favicon.ico +0 -0
  33. public/next.svg +1 -0
  34. public/vercel.svg +1 -0
  35. src/pages/_app.tsx +6 -0
  36. src/pages/_document.tsx +13 -0
  37. src/pages/heatmap/index.tsx +133 -0
  38. src/pages/index.tsx +12 -0
  39. src/pages/trend/index.tsx +361 -0
  40. src/styles/globals.css +33 -0
  41. src/utils/modelData.ts +345 -0
  42. src/utils/providers.ts +11 -0
  43. tailwind.config.ts +20 -0
  44. tsconfig.json +21 -0
  45. upload.sh +1 -0
  46. yarn.lock +1693 -0
.cache/huggingface/.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ *
.cache/huggingface/download/.gitattributes.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ a6344aac8c09253b3b630fb776ae94478aa0275b
3
+ 1739394028.0808527
.cache/huggingface/download/.gitignore.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ fd3dbb571a12a1c3baf000db049e141c888d05a8
3
+ 1739394028.1935596
.cache/huggingface/download/Dockerfile.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ af593958a9f08f1c00829d497cccc1e57fa837a5
3
+ 1739394027.945661
.cache/huggingface/download/README.md.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 5f845825db7c0e147ff3c58d1a84f8deea3a573c
3
+ 1739394028.0688624
.cache/huggingface/download/bun.lockb.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 95c6e2fd947f1716e60982855d6cd60fb6348197
3
+ 1739394028.1935596
.cache/huggingface/download/next.config.mjs.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 4de717a7f0bdf6baa650650f039cead998c2d2b2
3
+ 1739394027.945661
.cache/huggingface/download/package.json.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 42fa32ec45f0d9faf2dba3f78ca49df3db07c497
3
+ 1739394028.1935596
.cache/huggingface/download/postcss.config.mjs.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 1a69fd2a450afc3bf47e08b22c149190df0ffdb4
3
+ 1739394027.9489067
.cache/huggingface/download/public/favicon.ico.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 718d6fea4835ec2d246af9800eddb7ffb276240c
3
+ 1739394028.2815442
.cache/huggingface/download/public/next.svg.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 5174b28c565c285e3e312ec5178be64fbeca8398
3
+ 1739394028.2815442
.cache/huggingface/download/public/vercel.svg.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ d2f84222734f27b623d1c80dda3561b04d1284af
3
+ 1739394028.2935379
.cache/huggingface/download/src/pages/_app.tsx.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ a7a790fba51faae66a4b09308c6988a116ea0734
3
+ 1739394029.2169757
.cache/huggingface/download/src/pages/_document.tsx.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ b2fff8b4262dde3178afed021bb634b1379cd125
3
+ 1739394028.3993
.cache/huggingface/download/src/pages/heatmap/index.tsx.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 13a2e4e7adeaf49475cf21b0b678f81fd6be1a68
3
+ 1739394028.5183134
.cache/huggingface/download/src/pages/index.tsx.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ ff0d4cdf4fb23ecf159eec8108f11ba905098b7e
3
+ 1739394028.4583404
.cache/huggingface/download/src/pages/trend/index.tsx.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 8ed6efa02cb87344b936e9af1f6e98e93495be77
3
+ 1739394028.5183134
.cache/huggingface/download/src/styles/globals.css.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 875c01e819b90038f0c3e4aee2a4dcc2086b0e14
3
+ 1739394028.5823028
.cache/huggingface/download/src/utils/modelData.ts.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 287eef434145704bef56a8167474fe7538857cb6
3
+ 1739394028.7589223
.cache/huggingface/download/src/utils/providers.ts.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ f5b026e10cf843fea2ba63e6b45d1c359c9543bf
3
+ 1739394028.5823028
.cache/huggingface/download/tailwind.config.ts.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ e9a0944e7b319989ec1a7327d9695247c5bd1a41
3
+ 1739394028.69486
.cache/huggingface/download/tsconfig.json.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ fb68dc1aaf4253111a9ee0129345cce9452fdc0f
3
+ 1739394028.7589223
.cache/huggingface/download/upload.sh.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 174a223381d195782d6656c19a8e9dccb50a5a12
3
+ 1739394028.820304
.cache/huggingface/download/yarn.lock.metadata ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ 22bd7b035b9efdad593c268d4165a81aae559b59
2
+ 262e5281830552c4ebd6c8a0984a0ce6deef14b1
3
+ 1739394028.8562515
.gitignore ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
Dockerfile ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # syntax=docker/dockerfile:1.4
2
+
3
+ FROM oven/bun:1 AS base
4
+
5
+ # Install dependencies only when needed
6
+ FROM base AS deps
7
+ WORKDIR /app
8
+
9
+ # Install dependencies based on the preferred package manager
10
+ COPY --link package.json bun.lockb* ./
11
+ RUN bun install --frozen-lockfile
12
+
13
+ # Rebuild the source code only when needed
14
+ FROM base AS builder
15
+ WORKDIR /app
16
+ COPY --from=deps --link /app/node_modules ./node_modules
17
+ COPY --link . .
18
+
19
+ # Next.js collects completely anonymous telemetry data about general usage.
20
+ # Uncomment the following line in case you want to disable telemetry during the build.
21
+ # ENV NEXT_TELEMETRY_DISABLED 1
22
+
23
+ RUN bun run build
24
+
25
+ # Production image, copy all the files and run next
26
+ FROM base AS runner
27
+ WORKDIR /app
28
+
29
+ ENV NODE_ENV production
30
+ # Uncomment the following line in case you want to disable telemetry during runtime.
31
+ # ENV NEXT_TELEMETRY_DISABLED 1
32
+
33
+ RUN \
34
+ addgroup --system --gid 1001 nodejs; \
35
+ adduser --system --uid 1001 nextjs
36
+
37
+ COPY --from=builder --link /app/public ./public
38
+
39
+ # Automatically leverage output traces to reduce image size
40
+ COPY --from=builder --link --chown=1001:1001 /app/.next/standalone ./
41
+ COPY --from=builder --link --chown=1001:1001 /app/.next/static ./.next/static
42
+
43
+ USER nextjs
44
+
45
+ EXPOSE 3000
46
+
47
+ ENV PORT 3000
48
+ ENV HOSTNAME 0.0.0.0
49
+ CMD ["bun", "run", "server.js"]
README.md CHANGED
@@ -1,10 +1,52 @@
1
  ---
2
- title: Francophones Activity Release
3
- emoji: 📚
4
- colorFrom: gray
5
- colorTo: green
6
- sdk: static
7
  pinned: false
 
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: FrencOpen Source Heatmap
3
+ emoji: 📊
4
+ colorFrom: purple
5
+ colorTo: red
6
+ sdk: docker
7
  pinned: false
8
+ app_port: 3000
9
+ license: apache-2.0
10
+ short_description: Release activity of some major French-speaking actors
11
  ---
12
 
13
+ This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
14
+
15
+ ## Getting Started
16
+
17
+ First, run the development server:
18
+
19
+ ```bash
20
+ npm run dev
21
+ # or
22
+ yarn dev
23
+ # or
24
+ pnpm dev
25
+ # or
26
+ bun dev
27
+ ```
28
+
29
+ Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
30
+
31
+ You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
32
+
33
+ [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
34
+
35
+ The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
36
+
37
+ This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
38
+
39
+ ## Learn More
40
+
41
+ To learn more about Next.js, take a look at the following resources:
42
+
43
+ - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
44
+ - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
45
+
46
+ You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
47
+
48
+ ## Deploy on Vercel
49
+
50
+ 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.
51
+
52
+ Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
bun.lockb ADDED
Binary file (96.2 kB). View file
 
next.config.mjs ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ output: 'standalone',
4
+ reactStrictMode: true,
5
+ };
6
+
7
+ export default nextConfig;
package.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "-",
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
+ "@emotion/react": "^11.13.0",
13
+ "@emotion/styled": "^11.13.0",
14
+ "@mui/material": "^5.16.6",
15
+ "next": "14.2.5",
16
+ "next-themes": "^0.4.3",
17
+ "react": "^18",
18
+ "react-activity-calendar": "^2.2.11",
19
+ "react-dom": "^18",
20
+ "recharts": "^2.13.3"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^20",
24
+ "@types/react": "^18",
25
+ "@types/react-dom": "^18",
26
+ "postcss": "^8",
27
+ "tailwindcss": "^3.4.1",
28
+ "typescript": "^5"
29
+ }
30
+ }
postcss.config.mjs ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ /** @type {import('postcss-load-config').Config} */
2
+ const config = {
3
+ plugins: {
4
+ tailwindcss: {},
5
+ },
6
+ };
7
+
8
+ export default config;
public/favicon.ico ADDED
public/next.svg ADDED
public/vercel.svg ADDED
src/pages/_app.tsx ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import "@/styles/globals.css";
2
+ import type { AppProps } from "next/app";
3
+
4
+ export default function App({ Component, pageProps }: AppProps) {
5
+ return <Component {...pageProps} />;
6
+ }
src/pages/_document.tsx ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Html, Head, Main, NextScript } from "next/document";
2
+
3
+ export default function Document() {
4
+ return (
5
+ <Html lang="en">
6
+ <Head />
7
+ <body>
8
+ <Main />
9
+ <NextScript />
10
+ </body>
11
+ </Html>
12
+ );
13
+ }
src/pages/heatmap/index.tsx ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useState, useEffect } from 'react';
2
+ import ActivityCalendar from 'react-activity-calendar';
3
+ import { Tooltip } from '@mui/material';
4
+ import Link from 'next/link';
5
+ import { fetchAllModelData, generateCalendarData, aggregateCalendarData, CalendarData, Activity } from '@/utils/modelData';
6
+ import { PROVIDERS_MAP } from '@/utils/providers';
7
+
8
+ interface OpenSourceHeatmapProps {
9
+ calendarData: CalendarData & { total: Activity[] };
10
+ }
11
+
12
+ export const getStaticProps = async () => {
13
+ try {
14
+ const modelData = await fetchAllModelData();
15
+ const calendarData = generateCalendarData(modelData);
16
+
17
+ return {
18
+ props: {
19
+ calendarData: {
20
+ total: aggregateCalendarData(calendarData),
21
+ ...calendarData
22
+ }
23
+ },
24
+ revalidate: process.env.VERCEL_ENV === 'production' ? 43200 : 3600, // 12 hours in production, 1 hour in development
25
+ };
26
+ } catch (error) {
27
+ console.error('Error fetching model data:', error);
28
+ return {
29
+ props: {
30
+ calendarData: { total: [] }
31
+ },
32
+ revalidate: 3600, // 1 hour on error
33
+ };
34
+ }
35
+ };
36
+
37
+ const OpenSourceHeatmap: React.FC<OpenSourceHeatmapProps> = ({ calendarData }) => {
38
+ const [isLoading, setIsLoading] = useState(true);
39
+
40
+ useEffect(() => {
41
+ if (calendarData && calendarData.total && calendarData.total.length > 0) {
42
+ setIsLoading(false);
43
+ }
44
+ }, [calendarData]);
45
+
46
+ return (
47
+ <div className="w-full max-w-screen-lg mx-auto p-4">
48
+ <div className="flex justify-between items-center mb-8">
49
+ <div>
50
+ <h1 className="text-3xl lg:text-4xl font-bold mb-2">Cartes thermiques de l'open source</h1>
51
+ <h1 className="text-3xl lg:text-4xl font-bold mb-2">francophone 🤗</h1>
52
+ <p className="text-gray-600 dark:text-gray-400">
53
+ Visualiser l'activité des modèles et jeux de données de l'open source francophone
54
+ </p>
55
+ </div>
56
+ <Link
57
+ href="/trend"
58
+ className="px-4 py-2 rounded-lg bg-blue-500 text-white hover:bg-blue-600 transition-colors"
59
+ >
60
+ Les tendances
61
+ </Link>
62
+ </div>
63
+ {isLoading ? (
64
+ <p className="text-center">Loading...</p>
65
+ ) : (
66
+ <div className="space-y-8 mx-10">
67
+ {/* Total Activity Heatmap */}
68
+ <div className="flex flex-col">
69
+ <h2 className="text-2xl font-bold mb-2">Actitvité totale</h2>
70
+ <div className="w-full overflow-x-auto">
71
+ <div className="inline-block mx-auto">
72
+ <ActivityCalendar
73
+ data={calendarData.total}
74
+ theme={{
75
+ dark: ['#161b22', '#4CAF50'],
76
+ light: ['#161b22', '#4CAF50'],
77
+ }}
78
+ colorScheme="dark"
79
+ hideTotalCount
80
+ renderBlock={(block, activity) => (
81
+ <Tooltip
82
+ title={`${activity.count} ressources créées au total le ${activity.date}`}
83
+ arrow
84
+ >
85
+ {block}
86
+ </Tooltip>
87
+ )}
88
+ />
89
+ </div>
90
+ </div>
91
+ </div>
92
+
93
+ <h2 className="text-2xl font-bold mt-12 mb-6">Activité par Organisations</h2>
94
+
95
+ {/* Individual Provider Heatmaps */}
96
+ {Object.entries(PROVIDERS_MAP)
97
+ .sort(([keyA], [keyB]) =>
98
+ (calendarData[keyB] || []).reduce((sum, day) => sum + day.count, 0) -
99
+ (calendarData[keyA] || []).reduce((sum, day) => sum + day.count, 0)
100
+ )
101
+ .map(([providerName, { color }]) => (
102
+ <div key={providerName} className="flex flex-col">
103
+ <h2 className="text-xl font-bold mb-2">{providerName}</h2>
104
+ <div className="w-full overflow-x-auto">
105
+ <div className="inline-block mx-auto">
106
+ <ActivityCalendar
107
+ data={calendarData[providerName] || []}
108
+ theme={{
109
+ dark: ['#161b22', color],
110
+ light: ['#161b22', color],
111
+ }}
112
+ colorScheme="dark"
113
+ hideTotalCount
114
+ renderBlock={(block, activity) => (
115
+ <Tooltip
116
+ title={`${activity.count} ressources créées le ${activity.date}`}
117
+ arrow
118
+ >
119
+ {block}
120
+ </Tooltip>
121
+ )}
122
+ />
123
+ </div>
124
+ </div>
125
+ </div>
126
+ ))}
127
+ </div>
128
+ )}
129
+ </div>
130
+ );
131
+ };
132
+
133
+ export default OpenSourceHeatmap;
src/pages/index.tsx ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useEffect } from 'react';
2
+ import { useRouter } from 'next/router';
3
+
4
+ export default function Home() {
5
+ const router = useRouter();
6
+
7
+ useEffect(() => {
8
+ router.replace('/trend');
9
+ }, []);
10
+
11
+ return null;
12
+ }
src/pages/trend/index.tsx ADDED
@@ -0,0 +1,361 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React, { useState, useEffect } from 'react';
2
+ import {
3
+ LineChart,
4
+ Line,
5
+ XAxis,
6
+ YAxis,
7
+ CartesianGrid,
8
+ Tooltip,
9
+ Legend,
10
+ ResponsiveContainer
11
+ } from 'recharts';
12
+ import { PROVIDERS_MAP } from '../../utils/providers';
13
+ import {
14
+ fetchAllModelData,
15
+ generateMonthlyData,
16
+ getTotalMonthlyData,
17
+ processDetailedModelData,
18
+ MonthlyActivity,
19
+ DetailedModelData,
20
+ convertToCSV
21
+ } from '../../utils/modelData';
22
+ import Link from 'next/link';
23
+
24
+ interface TrendProps {
25
+ monthlyData: MonthlyActivity[];
26
+ totalData: MonthlyActivity[];
27
+ detailedData: DetailedModelData[];
28
+ error?: string;
29
+ }
30
+
31
+ const COLORS = Object.fromEntries(
32
+ Object.entries(PROVIDERS_MAP).map(([provider, { color }]) => [provider, color])
33
+ );
34
+ COLORS['Total'] = '#3B82F6';
35
+
36
+ const CustomTooltip = ({ active, payload, label }: any) => {
37
+ if (active && payload && payload.length) {
38
+ return (
39
+ <div className="bg-white p-4 border border-gray-200 rounded shadow dark:bg-gray-800 dark:border-gray-700">
40
+ <p className="text-sm font-bold mb-2 dark:text-white">{label}</p>
41
+ {payload.map((entry: any) => (
42
+ <p
43
+ key={entry.name}
44
+ className="text-sm"
45
+ style={{ color: entry.color }}
46
+ >
47
+ {entry.name} : {entry.value} ressources
48
+ </p>
49
+ ))}
50
+ </div>
51
+ );
52
+ }
53
+ return null;
54
+ };
55
+
56
+ const formatDate = (dateStr: string) => {
57
+ const date = new Date(dateStr);
58
+ return date.toLocaleDateString('en-US', {
59
+ year: 'numeric',
60
+ month: 'short',
61
+ day: 'numeric'
62
+ });
63
+ };
64
+
65
+ const TrendPage: React.FC<TrendProps> = ({ monthlyData = [], totalData = [], detailedData = [], error }) => {
66
+ const [showTotal, setShowTotal] = useState(true);
67
+ const [selectedProviders, setSelectedProviders] = useState<string[]>([]);
68
+ const [minLikes, setMinLikes] = useState(100);
69
+ const [isLoading, setIsLoading] = useState(false);
70
+ const [contentType, setContentType] = useState<'all' | 'models' | 'datasets'>('all');
71
+
72
+ const toggleProvider = (provider: string) => {
73
+ setSelectedProviders(prev =>
74
+ prev.includes(provider)
75
+ ? prev.filter(p => p !== provider)
76
+ : [...prev, provider]
77
+ );
78
+ };
79
+
80
+ // Filter total data based on content type
81
+ const filteredTotalData = totalData.filter(d => {
82
+ if (contentType === 'all') {
83
+ return d.isDataset === null; // Show only combined counts for 'all'
84
+ }
85
+ return (contentType === 'datasets' && d.isDataset === true) ||
86
+ (contentType === 'models' && d.isDataset === false);
87
+ });
88
+
89
+ // Group data by provider
90
+ const providerData = Object.fromEntries(
91
+ Object.keys(PROVIDERS_MAP).map(provider => {
92
+ const providerMonthlyData = monthlyData.filter(d => {
93
+ if (contentType === 'all') {
94
+ return d.provider === provider; // Show all items for the provider
95
+ }
96
+ const matchesContentType = (contentType === 'datasets' && d.isDataset === true) ||
97
+ (contentType === 'models' && d.isDataset === false);
98
+ return d.provider === provider && matchesContentType;
99
+ });
100
+
101
+ // If showing all, aggregate the counts for each month
102
+ if (contentType === 'all') {
103
+ const aggregatedData: Record<string, MonthlyActivity> = {};
104
+ providerMonthlyData.forEach(d => {
105
+ if (!aggregatedData[d.date]) {
106
+ aggregatedData[d.date] = {
107
+ date: d.date,
108
+ count: 0,
109
+ provider: d.provider,
110
+ isDataset: null
111
+ };
112
+ }
113
+ aggregatedData[d.date].count += d.count;
114
+ });
115
+ return [provider, Object.values(aggregatedData).sort((a, b) => a.date.localeCompare(b.date))];
116
+ }
117
+
118
+ return [provider, providerMonthlyData || []];
119
+ })
120
+ );
121
+
122
+ // Filter and group detailed model data
123
+ const filteredModels = (detailedData || [])
124
+ .filter(model => {
125
+ const matchesContentType = contentType === 'all' ||
126
+ (contentType === 'datasets' && model.isDataset) ||
127
+ (contentType === 'models' && !model.isDataset);
128
+
129
+ return model.likes >= minLikes &&
130
+ (selectedProviders.length === 0 || selectedProviders.includes(model.provider)) &&
131
+ matchesContentType;
132
+ })
133
+ .reduce<Record<string, DetailedModelData[]>>((acc, model) => {
134
+ if (!acc[model.monthKey]) {
135
+ acc[model.monthKey] = [];
136
+ }
137
+ acc[model.monthKey].push(model);
138
+ return acc;
139
+ }, {});
140
+
141
+ useEffect(() => {
142
+ console.log('Content type changed:', contentType);
143
+ console.log('Selected providers:', selectedProviders);
144
+ console.log('Min likes:', minLikes);
145
+ }, [contentType, selectedProviders, minLikes]);
146
+
147
+ if (error) {
148
+ return (
149
+ <div className="w-full max-w-screen-xl mx-auto p-4">
150
+ <h1 className="text-3xl lg:text-5xl mt-16 font-bold text-center mb-2 dark:text-white">Tendances des sorties de modèles francophones open source 📈</h1>
151
+ <div className="text-center text-red-600 dark:text-red-400 mt-8">
152
+ <p>Error loading data: {error}</p>
153
+ <p className="mt-2">Please try again later.</p>
154
+ </div>
155
+ </div>
156
+ );
157
+ }
158
+
159
+ return (
160
+ <div className="w-full max-w-screen-lg mx-auto p-4">
161
+ <div className="flex justify-between items-center mb-8">
162
+ <div>
163
+ <h1 className="text-3xl lg:text-4xl font-bold mb-2">Tendances dans l'IA francophone ouverte 🤗</h1>
164
+ <p className="text-gray-600 dark:text-gray-400">
165
+ Suivre la croissance des modèles et des jeux de données francophones au cours du temps
166
+ </p>
167
+ </div>
168
+ <Link
169
+ href="/heatmap"
170
+ className="px-4 py-2 rounded-lg bg-blue-500 text-white hover:bg-blue-600 transition-colors"
171
+ >
172
+ Les cartes thermiques
173
+ </Link>
174
+ </div>
175
+ <p className="text-center text-sm mb-8 dark:text-gray-300">
176
+ Suivre la croissance des modèles et des jeux de données francophones au cours du temps
177
+ </p>
178
+
179
+ <div className="flex flex-col gap-4 p-4">
180
+ <div className="flex justify-center mb-6 space-x-4">
181
+ <button
182
+ onClick={() => setContentType('all')}
183
+ className={`px-4 py-2 rounded-lg ${
184
+ contentType === 'all'
185
+ ? 'bg-blue-500 text-white'
186
+ : 'bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300'
187
+ }`}
188
+ >
189
+ Tout confondu
190
+ </button>
191
+ <button
192
+ onClick={() => setContentType('models')}
193
+ className={`px-4 py-2 rounded-lg ${
194
+ contentType === 'models'
195
+ ? 'bg-blue-500 text-white'
196
+ : 'bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300'
197
+ }`}
198
+ >
199
+ Modèles
200
+ </button>
201
+ <button
202
+ onClick={() => setContentType('datasets')}
203
+ className={`px-4 py-2 rounded-lg ${
204
+ contentType === 'datasets'
205
+ ? 'bg-blue-500 text-white'
206
+ : 'bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300'
207
+ }`}
208
+ >
209
+ Jeux de données
210
+ </button>
211
+ </div>
212
+
213
+ <div className="flex flex-wrap gap-4 mb-6 justify-center items-center">
214
+ <div className="flex gap-2">
215
+ <button
216
+ onClick={() => setShowTotal(!showTotal)}
217
+ className={`px-4 py-2 rounded-lg ${
218
+ showTotal
219
+ ? 'bg-blue-500 text-white'
220
+ : 'bg-gray-200 text-gray-700 dark:bg-gray-700 dark:text-gray-300'
221
+ }`}
222
+ >
223
+ {showTotal ? 'Cacher le total' : 'Voir le total'}
224
+ </button>
225
+ {Object.entries(PROVIDERS_MAP).map(([provider, { color }]) => (
226
+ <button
227
+ key={provider}
228
+ onClick={() => toggleProvider(provider)}
229
+ className={`px-4 py-2 rounded-lg transition-colors ${
230
+ selectedProviders.includes(provider)
231
+ ? 'text-white'
232
+ : 'text-gray-600 dark:text-gray-400'
233
+ }`}
234
+ style={{
235
+ backgroundColor: selectedProviders.includes(provider)
236
+ ? color
237
+ : 'transparent'
238
+ }}
239
+ >
240
+ {provider}
241
+ </button>
242
+ ))}
243
+ </div>
244
+ </div>
245
+
246
+ {/* Chart */}
247
+ <div className="w-full h-[600px] dark:bg-gray-900 p-4 rounded-lg">
248
+ <ResponsiveContainer width="100%" height="100%">
249
+ <LineChart
250
+ margin={{ top: 20, right: 30, left: 20, bottom: 20 }}
251
+ >
252
+ <CartesianGrid strokeDasharray="3 3" stroke="#374151" />
253
+ <XAxis
254
+ dataKey="date"
255
+ type="category"
256
+ allowDuplicatedCategory={false}
257
+ tick={{ fontSize: 12 }}
258
+ interval="preserveStartEnd"
259
+ stroke="#9CA3AF"
260
+ />
261
+ <YAxis stroke="#9CA3AF" />
262
+ <Tooltip content={<CustomTooltip />} />
263
+ <Legend />
264
+
265
+ {/* Total Line */}
266
+ {showTotal && (
267
+ <Line
268
+ data={filteredTotalData}
269
+ type="monotone"
270
+ dataKey="count"
271
+ stroke={COLORS['Total']}
272
+ name="Total"
273
+ strokeWidth={2}
274
+ dot={false}
275
+ />
276
+ )}
277
+
278
+ {/* Provider Lines */}
279
+ {selectedProviders.map(provider => (
280
+ <Line
281
+ key={provider}
282
+ data={providerData[provider]}
283
+ type="monotone"
284
+ dataKey="count"
285
+ stroke={COLORS[provider]}
286
+ name={provider}
287
+ strokeWidth={1.5}
288
+ dot={false}
289
+ />
290
+ ))}
291
+ </LineChart>
292
+ </ResponsiveContainer>
293
+ </div>
294
+
295
+ {/* Download Button */}
296
+ <div className="flex justify-center mt-4 mb-8">
297
+ <button
298
+ className="px-4 py-2 rounded-lg bg-green-500 text-white hover:bg-green-600"
299
+ onClick={() => {
300
+ // Get the currently visible data based on filters
301
+ const visibleData = [];
302
+
303
+ // Add provider data if showing
304
+ selectedProviders.forEach(provider => {
305
+ visibleData.push(...providerData[provider].map(d => ({ ...d, provider })));
306
+ });
307
+
308
+ // Add total data if showing
309
+ if (showTotal) {
310
+ visibleData.push(...filteredTotalData);
311
+ }
312
+
313
+ const csvContent = convertToCSV(visibleData);
314
+ const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
315
+ const link = document.createElement('a');
316
+ link.href = URL.createObjectURL(blob);
317
+ link.download = `${contentType}_counts.csv`;
318
+ link.click();
319
+ URL.revokeObjectURL(link.href);
320
+ }}
321
+ >
322
+ Télécharger en CSV
323
+ </button>
324
+ </div>
325
+ </div>
326
+ </div>
327
+ );
328
+ };
329
+
330
+
331
+ export const getStaticProps = async () => {
332
+ try {
333
+ const modelData = await fetchAllModelData();
334
+ const monthlyData = generateMonthlyData(modelData);
335
+ const totalData = getTotalMonthlyData(monthlyData);
336
+ const filteredModels = processDetailedModelData(modelData);
337
+
338
+ return {
339
+ props: {
340
+ monthlyData,
341
+ totalData,
342
+ filteredModels,
343
+ },
344
+ // Revalidate every 12 hours
345
+ revalidate: 43200,
346
+ };
347
+ } catch (error) {
348
+ console.error('Error in getStaticProps:', error);
349
+ return {
350
+ props: {
351
+ monthlyData: [],
352
+ totalData: [],
353
+ filteredModels: {},
354
+ },
355
+ // Retry more frequently if there was an error
356
+ revalidate: 3600,
357
+ };
358
+ }
359
+ };
360
+
361
+ export default TrendPage;
src/styles/globals.css ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ }
src/utils/modelData.ts ADDED
@@ -0,0 +1,345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { PROVIDERS_MAP } from './providers';
2
+
3
+ export interface ModelData {
4
+ id: string;
5
+ name: string;
6
+ createdAt: string;
7
+ likes: number;
8
+ downloads?: number;
9
+ isDataset?: boolean;
10
+ provider: string;
11
+ }
12
+
13
+ export interface Activity {
14
+ date: string;
15
+ count: number;
16
+ level: number;
17
+ }
18
+
19
+ export interface CalendarData {
20
+ [key: string]: Activity[];
21
+ }
22
+
23
+ export interface MonthlyActivity {
24
+ date: string; // YYYY-MM format
25
+ count: number;
26
+ provider: string;
27
+ isDataset: boolean | null; // null means it includes both
28
+ name?: string;
29
+ }
30
+
31
+ export interface DetailedModelData {
32
+ id: string;
33
+ name: string;
34
+ createdAt: string;
35
+ likes: number;
36
+ downloads: number;
37
+ monthKey: string; // YYYY-MM
38
+ provider: string;
39
+ sortKey: string; // YYYY-MM
40
+ isDataset: boolean;
41
+ }
42
+
43
+ // Generates calendar data from model data
44
+ export const generateCalendarData = (modelData: ModelData[]): CalendarData => {
45
+ const data: CalendarData = Object.fromEntries(
46
+ Object.keys(PROVIDERS_MAP).map(provider => [provider, []])
47
+ );
48
+
49
+ const today = new Date();
50
+ const startDate = new Date(today);
51
+ startDate.setMonth(today.getMonth() - 11);
52
+ startDate.setDate(1);
53
+
54
+ // Create a map to store counts for each provider and date
55
+ const countMap: Record<string, Record<string, number>> = {};
56
+
57
+ if (!Array.isArray(modelData)) {
58
+ console.error('Model data is not an array:', modelData);
59
+ modelData = [];
60
+ }
61
+
62
+ modelData.forEach(item => {
63
+ const [org] = item.id.split('/');
64
+ const provider = Object.entries(PROVIDERS_MAP).find(([_, info]) =>
65
+ info.authors.includes(org)
66
+ )?.[0];
67
+
68
+ if (provider) {
69
+ const date = item.createdAt.split('T')[0];
70
+ if (!countMap[provider]) {
71
+ countMap[provider] = {};
72
+ }
73
+ countMap[provider][date] = (countMap[provider][date] || 0) + 1;
74
+ }
75
+ });
76
+
77
+ // Fill in the data array with actual counts and zero counts
78
+ Object.keys(PROVIDERS_MAP).forEach(provider => {
79
+ let currentDate = new Date(startDate);
80
+ while (currentDate <= today) {
81
+ const dateStr = currentDate.toISOString().split('T')[0];
82
+ const count = countMap[provider]?.[dateStr] || 0;
83
+ data[provider].push({
84
+ date: dateStr,
85
+ count,
86
+ level: count === 0 ? 0 : Math.min(4, Math.ceil(count / 2))
87
+ });
88
+ currentDate.setDate(currentDate.getDate() + 1);
89
+ }
90
+ });
91
+
92
+ return data;
93
+ };
94
+
95
+ // Aggregates calendar data from all providers into a single heatmap
96
+ export const aggregateCalendarData = (calendarData: CalendarData): Activity[] => {
97
+ if (Object.keys(calendarData).length === 0) return [];
98
+
99
+ // Get the first provider's data to get the date range
100
+ const firstProviderData = Object.values(calendarData)[0];
101
+
102
+ // Create a map to store aggregated counts by date
103
+ const aggregatedCounts: Record<string, number> = {};
104
+
105
+ // Sum up counts for each date across all providers
106
+ Object.values(calendarData).forEach(providerData => {
107
+ providerData.forEach(activity => {
108
+ aggregatedCounts[activity.date] = (aggregatedCounts[activity.date] || 0) + activity.count;
109
+ });
110
+ });
111
+
112
+ // Convert the aggregated counts into Activity array
113
+ return firstProviderData.map(({ date }) => {
114
+ const count = aggregatedCounts[date] || 0;
115
+ return {
116
+ date,
117
+ count,
118
+ level: count === 0 ? 0 : Math.min(4, Math.ceil(count / 3))
119
+ };
120
+ });
121
+ };
122
+
123
+ export const generateMonthlyData = (modelData: ModelData[]): MonthlyActivity[] => {
124
+ const monthlyData: Record<string, Record<string, Record<string, MonthlyActivity>>> = {};
125
+
126
+ modelData.forEach(model => {
127
+ const date = new Date(model.createdAt);
128
+ const monthKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
129
+ const provider = model.provider || 'unknown';
130
+ const type = model.isDataset ? 'dataset' : 'model';
131
+
132
+ if (!monthlyData[monthKey]) {
133
+ monthlyData[monthKey] = {};
134
+ }
135
+ if (!monthlyData[monthKey][provider]) {
136
+ monthlyData[monthKey][provider] = {};
137
+ }
138
+
139
+ if (!monthlyData[monthKey][provider][type]) {
140
+ monthlyData[monthKey][provider][type] = {
141
+ date: monthKey,
142
+ count: 0,
143
+ provider,
144
+ isDataset: model.isDataset ?? false, // Use nullish coalescing to provide a default
145
+ name: model.name
146
+ };
147
+ }
148
+
149
+ monthlyData[monthKey][provider][type].count++;
150
+ });
151
+
152
+ // Flatten the nested structure
153
+ return Object.values(monthlyData)
154
+ .flatMap(providerData =>
155
+ Object.values(providerData).flatMap(typeData =>
156
+ Object.values(typeData)
157
+ )
158
+ )
159
+ .sort((a, b) => a.date.localeCompare(b.date));
160
+ };
161
+
162
+ const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
163
+
164
+ async function fetchWithRetry(url: string, retries = 3, delayMs = 1000): Promise<Response> {
165
+ for (let i = 0; i < retries; i++) {
166
+ try {
167
+ const response = await fetch(url);
168
+ if (response.status === 429) { // Rate limit exceeded
169
+ console.log(`Rate limit exceeded, waiting ${delayMs}ms before retry ${i + 1}/${retries}`);
170
+ await delay(delayMs);
171
+ continue;
172
+ }
173
+ return response;
174
+ } catch (error) {
175
+ if (i === retries - 1) throw error;
176
+ console.log(`Fetch failed, retrying (${i + 1}/${retries})...`);
177
+ await delay(delayMs);
178
+ }
179
+ }
180
+ throw new Error('Max retries reached');
181
+ }
182
+
183
+ export const fetchAllModelData = async (): Promise<ModelData[]> => {
184
+ const allData: ModelData[] = [];
185
+
186
+ for (const [provider, info] of Object.entries(PROVIDERS_MAP)) {
187
+ console.log(`Fetching data for provider: ${provider}`);
188
+
189
+ for (const author of info.authors) {
190
+ console.log(` Fetching data for author: ${author}`);
191
+ try {
192
+ // Fetch models
193
+ const modelResponse = await fetchWithRetry(
194
+ `https://huggingface.co/api/models?author=${author}&sort=likes&direction=-1&limit=10000`,
195
+ 3,
196
+ 2000
197
+ );
198
+ const modelData = await modelResponse.json();
199
+
200
+ // Fetch datasets
201
+ const datasetResponse = await fetchWithRetry(
202
+ `https://huggingface.co/api/datasets?author=${author}&sort=likes&direction=-1&limit=10000`,
203
+ 3,
204
+ 2000
205
+ );
206
+ const datasetData = await datasetResponse.json();
207
+
208
+ // Combine and process the data
209
+ const combinedData = [
210
+ ...modelData.map((item: any) => ({
211
+ id: item.id,
212
+ name: item.id,
213
+ createdAt: item.createdAt,
214
+ likes: item.likes,
215
+ downloads: item.downloads,
216
+ isDataset: false,
217
+ provider
218
+ })),
219
+ ...datasetData.map((item: any) => ({
220
+ id: item.id,
221
+ name: item.id,
222
+ createdAt: item.createdAt,
223
+ likes: item.likes,
224
+ downloads: item.downloads,
225
+ isDataset: true,
226
+ provider
227
+ }))
228
+ ];
229
+
230
+ allData.push(...combinedData);
231
+ console.log(` Fetched ${combinedData.length} items (${modelData.length} models, ${datasetData.length} datasets) for ${author}`);
232
+ } catch (error) {
233
+ console.error(`Error fetching data for ${provider}/${author}:`, error);
234
+ }
235
+
236
+ // Add a delay between author requests to avoid rate limiting
237
+ await delay(1000);
238
+ }
239
+ }
240
+
241
+ // Remove duplicates based on id
242
+ const uniqueData = Array.from(
243
+ new Map(allData.map(item => [item.id, item])).values()
244
+ );
245
+
246
+ console.log(`Total unique items fetched: ${uniqueData.length}`);
247
+ return uniqueData;
248
+ };
249
+
250
+ export function processDetailedModelData(models: ModelData[]): DetailedModelData[] {
251
+ return models.map(model => {
252
+ const date = new Date(model.createdAt);
253
+ const monthKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
254
+ const provider = model.provider || 'unknown';
255
+ const sortKey = `${monthKey}-${model.name}`;
256
+
257
+ return {
258
+ id: model.id,
259
+ name: model.name || model.id,
260
+ createdAt: model.createdAt,
261
+ likes: model.likes || 0,
262
+ downloads: model.downloads || 0, // Set downloads to 0 if it's undefined
263
+ monthKey,
264
+ provider,
265
+ sortKey,
266
+ isDataset: model.isDataset ?? false
267
+ };
268
+ });
269
+ }
270
+
271
+ // Helper function to get total monthly data across all providers
272
+ export const getTotalMonthlyData = (monthlyData: MonthlyActivity[]): MonthlyActivity[] => {
273
+ const totalByMonth: Record<string, Record<'model' | 'dataset' | 'all', number>> = {};
274
+
275
+ // Initialize the structure
276
+ monthlyData.forEach(({ date }) => {
277
+ if (!totalByMonth[date]) {
278
+ totalByMonth[date] = { model: 0, dataset: 0, all: 0 };
279
+ }
280
+ });
281
+
282
+ // Aggregate counts by month and type
283
+ monthlyData.forEach(({ date, count, isDataset }) => {
284
+ const type = isDataset ? 'dataset' : 'model';
285
+ totalByMonth[date][type] += count;
286
+ totalByMonth[date].all += count; // Track combined count
287
+ });
288
+
289
+ // Convert to MonthlyActivity array
290
+ return Object.entries(totalByMonth).flatMap(([date, counts]) => [
291
+ {
292
+ date,
293
+ count: counts.all,
294
+ provider: 'Total',
295
+ isDataset: null // null means it includes both
296
+ },
297
+ {
298
+ date,
299
+ count: counts.model,
300
+ provider: 'Total',
301
+ isDataset: false
302
+ },
303
+ {
304
+ date,
305
+ count: counts.dataset,
306
+ provider: 'Total',
307
+ isDataset: true
308
+ }
309
+ ]).sort((a, b) => a.date.localeCompare(b.date));
310
+ };
311
+
312
+ // Convert monthly activity data to CSV format
313
+ export const convertToCSV = (data: MonthlyActivity[]): string => {
314
+ // Group data by date
315
+ const dataByDate: Record<string, Record<string, number>> = {};
316
+ const providers = new Set<string>();
317
+
318
+ // Initialize and collect data
319
+ data.forEach(({ date, provider, count }) => {
320
+ if (!dataByDate[date]) {
321
+ dataByDate[date] = {};
322
+ }
323
+ dataByDate[date][provider] = count;
324
+ providers.add(provider);
325
+ });
326
+
327
+ // Create CSV header
328
+ const header = ['Date', ...Array.from(providers)];
329
+
330
+ // Create CSV rows
331
+ const rows = Object.entries(dataByDate)
332
+ .sort(([a], [b]) => a.localeCompare(b))
333
+ .map(([date, providerData]) => {
334
+ const row = [date];
335
+ header.slice(1).forEach(provider => {
336
+ row.push((providerData[provider] || 0).toString());
337
+ });
338
+ return row;
339
+ });
340
+
341
+ // Combine header and rows
342
+ return [header, ...rows]
343
+ .map(row => row.join(','))
344
+ .join('\n');
345
+ };
src/utils/providers.ts ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export interface ProviderInfo {
2
+ color: string;
3
+ authors: string[];
4
+ }
5
+
6
+ export const PROVIDERS_MAP: Record<string, ProviderInfo> = {
7
+ "MistralAI": { color: "#FF6F00", authors: ["mistralai"] },
8
+ "Kyutai": { color: "#39F2AE", authors: ["kyutai"] },
9
+ "Hugging Face": { color: "#FEC912", authors: ["HuggingFaceTB","HuggingFaceH4","HuggingFaceFW","open-r1"] },
10
+ "INRIA": { color: "#E1000F", authors: ["inria-soda","Inria-CEDAR","almanach","oscar-corpus","scikit-learn"] },
11
+ };
tailwind.config.ts ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Config } from "tailwindcss";
2
+
3
+ const config: Config = {
4
+ content: [
5
+ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
6
+ "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
7
+ "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
8
+ ],
9
+ theme: {
10
+ extend: {
11
+ backgroundImage: {
12
+ "gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
13
+ "gradient-conic":
14
+ "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
15
+ },
16
+ },
17
+ },
18
+ plugins: [],
19
+ };
20
+ export default config;
tsconfig.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "paths": {
16
+ "@/*": ["./src/*"]
17
+ }
18
+ },
19
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
20
+ "exclude": ["node_modules"]
21
+ }
upload.sh ADDED
@@ -0,0 +1 @@
 
 
1
+ HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli upload zh-ai-community/zh-model-release-heatmap . . --repo-type space --create-pr
yarn.lock ADDED
@@ -0,0 +1,1693 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@alloc/quick-lru@^5.2.0":
6
+ version "5.2.0"
7
+ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
8
+ integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
9
+
10
+ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.7":
11
+ version "7.24.7"
12
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
13
+ integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
14
+ dependencies:
15
+ "@babel/highlight" "^7.24.7"
16
+ picocolors "^1.0.0"
17
+
18
+ "@babel/generator@^7.25.0":
19
+ version "7.25.0"
20
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e"
21
+ integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==
22
+ dependencies:
23
+ "@babel/types" "^7.25.0"
24
+ "@jridgewell/gen-mapping" "^0.3.5"
25
+ "@jridgewell/trace-mapping" "^0.3.25"
26
+ jsesc "^2.5.1"
27
+
28
+ "@babel/helper-module-imports@^7.16.7":
29
+ version "7.24.7"
30
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b"
31
+ integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==
32
+ dependencies:
33
+ "@babel/traverse" "^7.24.7"
34
+ "@babel/types" "^7.24.7"
35
+
36
+ "@babel/helper-string-parser@^7.24.8":
37
+ version "7.24.8"
38
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d"
39
+ integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==
40
+
41
+ "@babel/helper-validator-identifier@^7.24.7":
42
+ version "7.24.7"
43
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
44
+ integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
45
+
46
+ "@babel/highlight@^7.24.7":
47
+ version "7.24.7"
48
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d"
49
+ integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
50
+ dependencies:
51
+ "@babel/helper-validator-identifier" "^7.24.7"
52
+ chalk "^2.4.2"
53
+ js-tokens "^4.0.0"
54
+ picocolors "^1.0.0"
55
+
56
+ "@babel/parser@^7.25.0", "@babel/parser@^7.25.3":
57
+ version "7.25.3"
58
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065"
59
+ integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==
60
+ dependencies:
61
+ "@babel/types" "^7.25.2"
62
+
63
+ "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7":
64
+ version "7.25.0"
65
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb"
66
+ integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==
67
+ dependencies:
68
+ regenerator-runtime "^0.14.0"
69
+
70
+ "@babel/template@^7.25.0":
71
+ version "7.25.0"
72
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a"
73
+ integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==
74
+ dependencies:
75
+ "@babel/code-frame" "^7.24.7"
76
+ "@babel/parser" "^7.25.0"
77
+ "@babel/types" "^7.25.0"
78
+
79
+ "@babel/traverse@^7.24.7":
80
+ version "7.25.3"
81
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490"
82
+ integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==
83
+ dependencies:
84
+ "@babel/code-frame" "^7.24.7"
85
+ "@babel/generator" "^7.25.0"
86
+ "@babel/parser" "^7.25.3"
87
+ "@babel/template" "^7.25.0"
88
+ "@babel/types" "^7.25.2"
89
+ debug "^4.3.1"
90
+ globals "^11.1.0"
91
+
92
+ "@babel/types@^7.24.7", "@babel/types@^7.25.0", "@babel/types@^7.25.2":
93
+ version "7.25.2"
94
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125"
95
+ integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==
96
+ dependencies:
97
+ "@babel/helper-string-parser" "^7.24.8"
98
+ "@babel/helper-validator-identifier" "^7.24.7"
99
+ to-fast-properties "^2.0.0"
100
+
101
+ "@emotion/babel-plugin@^11.12.0":
102
+ version "11.12.0"
103
+ resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz#7b43debb250c313101b3f885eba634f1d723fcc2"
104
+ integrity sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==
105
+ dependencies:
106
+ "@babel/helper-module-imports" "^7.16.7"
107
+ "@babel/runtime" "^7.18.3"
108
+ "@emotion/hash" "^0.9.2"
109
+ "@emotion/memoize" "^0.9.0"
110
+ "@emotion/serialize" "^1.2.0"
111
+ babel-plugin-macros "^3.1.0"
112
+ convert-source-map "^1.5.0"
113
+ escape-string-regexp "^4.0.0"
114
+ find-root "^1.1.0"
115
+ source-map "^0.5.7"
116
+ stylis "4.2.0"
117
+
118
+ "@emotion/cache@^11.11.0", "@emotion/cache@^11.13.0":
119
+ version "11.13.1"
120
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.13.1.tgz#fecfc54d51810beebf05bf2a161271a1a91895d7"
121
+ integrity sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==
122
+ dependencies:
123
+ "@emotion/memoize" "^0.9.0"
124
+ "@emotion/sheet" "^1.4.0"
125
+ "@emotion/utils" "^1.4.0"
126
+ "@emotion/weak-memoize" "^0.4.0"
127
+ stylis "4.2.0"
128
+
129
+ "@emotion/hash@^0.9.2":
130
+ version "0.9.2"
131
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b"
132
+ integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==
133
+
134
+ "@emotion/is-prop-valid@^1.3.0":
135
+ version "1.3.0"
136
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz#bd84ba972195e8a2d42462387581560ef780e4e2"
137
+ integrity sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==
138
+ dependencies:
139
+ "@emotion/memoize" "^0.9.0"
140
+
141
+ "@emotion/memoize@^0.9.0":
142
+ version "0.9.0"
143
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102"
144
+ integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==
145
+
146
+ "@emotion/react@^11.13.0":
147
+ version "11.13.0"
148
+ resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.13.0.tgz#a9ebf827b98220255e5760dac89fa2d38ca7b43d"
149
+ integrity sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==
150
+ dependencies:
151
+ "@babel/runtime" "^7.18.3"
152
+ "@emotion/babel-plugin" "^11.12.0"
153
+ "@emotion/cache" "^11.13.0"
154
+ "@emotion/serialize" "^1.3.0"
155
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0"
156
+ "@emotion/utils" "^1.4.0"
157
+ "@emotion/weak-memoize" "^0.4.0"
158
+ hoist-non-react-statics "^3.3.1"
159
+
160
+ "@emotion/serialize@^1.2.0", "@emotion/serialize@^1.3.0":
161
+ version "1.3.0"
162
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.0.tgz#e07cadfc967a4e7816e0c3ffaff4c6ce05cb598d"
163
+ integrity sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==
164
+ dependencies:
165
+ "@emotion/hash" "^0.9.2"
166
+ "@emotion/memoize" "^0.9.0"
167
+ "@emotion/unitless" "^0.9.0"
168
+ "@emotion/utils" "^1.4.0"
169
+ csstype "^3.0.2"
170
+
171
+ "@emotion/sheet@^1.4.0":
172
+ version "1.4.0"
173
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c"
174
+ integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==
175
+
176
+ "@emotion/styled@^11.13.0":
177
+ version "11.13.0"
178
+ resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.13.0.tgz#633fd700db701472c7a5dbef54d6f9834e9fb190"
179
+ integrity sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==
180
+ dependencies:
181
+ "@babel/runtime" "^7.18.3"
182
+ "@emotion/babel-plugin" "^11.12.0"
183
+ "@emotion/is-prop-valid" "^1.3.0"
184
+ "@emotion/serialize" "^1.3.0"
185
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0"
186
+ "@emotion/utils" "^1.4.0"
187
+
188
+ "@emotion/unitless@^0.9.0":
189
+ version "0.9.0"
190
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.9.0.tgz#8e5548f072bd67b8271877e51c0f95c76a66cbe2"
191
+ integrity sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==
192
+
193
+ "@emotion/use-insertion-effect-with-fallbacks@^1.1.0":
194
+ version "1.1.0"
195
+ resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz#1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf"
196
+ integrity sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==
197
+
198
+ "@emotion/utils@^1.4.0":
199
+ version "1.4.0"
200
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.0.tgz#262f1d02aaedb2ec91c83a0955dd47822ad5fbdd"
201
+ integrity sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==
202
+
203
+ "@emotion/weak-memoize@^0.4.0":
204
+ version "0.4.0"
205
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6"
206
+ integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==
207
+
208
+ "@isaacs/cliui@^8.0.2":
209
+ version "8.0.2"
210
+ resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
211
+ integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
212
+ dependencies:
213
+ string-width "^5.1.2"
214
+ string-width-cjs "npm:string-width@^4.2.0"
215
+ strip-ansi "^7.0.1"
216
+ strip-ansi-cjs "npm:strip-ansi@^6.0.1"
217
+ wrap-ansi "^8.1.0"
218
+ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
219
+
220
+ "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
221
+ version "0.3.5"
222
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
223
+ integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
224
+ dependencies:
225
+ "@jridgewell/set-array" "^1.2.1"
226
+ "@jridgewell/sourcemap-codec" "^1.4.10"
227
+ "@jridgewell/trace-mapping" "^0.3.24"
228
+
229
+ "@jridgewell/resolve-uri@^3.1.0":
230
+ version "3.1.2"
231
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
232
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
233
+
234
+ "@jridgewell/set-array@^1.2.1":
235
+ version "1.2.1"
236
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
237
+ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
238
+
239
+ "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
240
+ version "1.5.0"
241
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
242
+ integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
243
+
244
+ "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
245
+ version "0.3.25"
246
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
247
+ integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
248
+ dependencies:
249
+ "@jridgewell/resolve-uri" "^3.1.0"
250
+ "@jridgewell/sourcemap-codec" "^1.4.14"
251
+
252
+ "@mui/core-downloads-tracker@^5.16.6":
253
+ version "5.16.6"
254
+ resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.6.tgz#f029e12ffda8eb79838cc85897f03a628010037c"
255
+ integrity sha512-kytg6LheUG42V8H/o/Ptz3olSO5kUXW9zF0ox18VnblX6bO2yif1FPItgc3ey1t5ansb1+gbe7SatntqusQupg==
256
+
257
+ "@mui/material@^5.16.6":
258
+ version "5.16.6"
259
+ resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.16.6.tgz#c7d695f4a9a473052dc086e64471d0435b7e4a52"
260
+ integrity sha512-0LUIKBOIjiFfzzFNxXZBRAyr9UQfmTAFzbt6ziOU2FDXhorNN2o3N9/32mNJbCA8zJo2FqFU6d3dtoqUDyIEfA==
261
+ dependencies:
262
+ "@babel/runtime" "^7.23.9"
263
+ "@mui/core-downloads-tracker" "^5.16.6"
264
+ "@mui/system" "^5.16.6"
265
+ "@mui/types" "^7.2.15"
266
+ "@mui/utils" "^5.16.6"
267
+ "@popperjs/core" "^2.11.8"
268
+ "@types/react-transition-group" "^4.4.10"
269
+ clsx "^2.1.0"
270
+ csstype "^3.1.3"
271
+ prop-types "^15.8.1"
272
+ react-is "^18.3.1"
273
+ react-transition-group "^4.4.5"
274
+
275
+ "@mui/private-theming@^5.16.6":
276
+ version "5.16.6"
277
+ resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.16.6.tgz#547671e7ae3f86b68d1289a0b90af04dfcc1c8c9"
278
+ integrity sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==
279
+ dependencies:
280
+ "@babel/runtime" "^7.23.9"
281
+ "@mui/utils" "^5.16.6"
282
+ prop-types "^15.8.1"
283
+
284
+ "@mui/styled-engine@^5.16.6":
285
+ version "5.16.6"
286
+ resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.16.6.tgz#60110c106dd482dfdb7e2aa94fd6490a0a3f8852"
287
+ integrity sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==
288
+ dependencies:
289
+ "@babel/runtime" "^7.23.9"
290
+ "@emotion/cache" "^11.11.0"
291
+ csstype "^3.1.3"
292
+ prop-types "^15.8.1"
293
+
294
+ "@mui/system@^5.16.6":
295
+ version "5.16.6"
296
+ resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.16.6.tgz#2dabe63d2e45816ce611c40d6e3f79b9c2ccbcd7"
297
+ integrity sha512-5xgyJjBIMPw8HIaZpfbGAaFYPwImQn7Nyh+wwKWhvkoIeDosQ1ZMVrbTclefi7G8hNmqhip04duYwYpbBFnBgw==
298
+ dependencies:
299
+ "@babel/runtime" "^7.23.9"
300
+ "@mui/private-theming" "^5.16.6"
301
+ "@mui/styled-engine" "^5.16.6"
302
+ "@mui/types" "^7.2.15"
303
+ "@mui/utils" "^5.16.6"
304
+ clsx "^2.1.0"
305
+ csstype "^3.1.3"
306
+ prop-types "^15.8.1"
307
+
308
+ "@mui/types@^7.2.15":
309
+ version "7.2.15"
310
+ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.15.tgz#dadd232fe9a70be0d526630675dff3b110f30b53"
311
+ integrity sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==
312
+
313
+ "@mui/utils@^5.16.6":
314
+ version "5.16.6"
315
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.16.6.tgz#905875bbc58d3dcc24531c3314a6807aba22a711"
316
+ integrity sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==
317
+ dependencies:
318
+ "@babel/runtime" "^7.23.9"
319
+ "@mui/types" "^7.2.15"
320
+ "@types/prop-types" "^15.7.12"
321
+ clsx "^2.1.1"
322
+ prop-types "^15.8.1"
323
+ react-is "^18.3.1"
324
+
325
+ "@next/[email protected]":
326
+ version "14.2.5"
327
+ resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.5.tgz#1d9328ab828711d3517d0a1d505acb55e5ef7ad0"
328
+ integrity sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==
329
+
330
+ "@next/[email protected]":
331
+ version "14.2.5"
332
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz#d0a160cf78c18731c51cc0bff131c706b3e9bb05"
333
+ integrity sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==
334
+
335
+ "@next/[email protected]":
336
+ version "14.2.5"
337
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz#eb832a992407f6e6352eed05a073379f1ce0589c"
338
+ integrity sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==
339
+
340
+ "@next/[email protected]":
341
+ version "14.2.5"
342
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz#098fdab57a4664969bc905f5801ef5a89582c689"
343
+ integrity sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==
344
+
345
+ "@next/[email protected]":
346
+ version "14.2.5"
347
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz#243a1cc1087fb75481726dd289c7b219fa01f2b5"
348
+ integrity sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==
349
+
350
+ "@next/[email protected]":
351
+ version "14.2.5"
352
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz#b8a2e436387ee4a52aa9719b718992e0330c4953"
353
+ integrity sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==
354
+
355
+ "@next/[email protected]":
356
+ version "14.2.5"
357
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz#cb8a9adad5fb8df86112cfbd363aab5c6d32757b"
358
+ integrity sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==
359
+
360
+ "@next/[email protected]":
361
+ version "14.2.5"
362
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz#81f996c1c38ea0900d4e7719cc8814be8a835da0"
363
+ integrity sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==
364
+
365
+ "@next/[email protected]":
366
+ version "14.2.5"
367
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz#f61c74ce823e10b2bc150e648fc192a7056422e0"
368
+ integrity sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==
369
+
370
+ "@next/[email protected]":
371
+ version "14.2.5"
372
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz#ed199a920efb510cfe941cd75ed38a7be21e756f"
373
+ integrity sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==
374
+
375
+ "@nodelib/[email protected]":
376
+ version "2.1.5"
377
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
378
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
379
+ dependencies:
380
+ "@nodelib/fs.stat" "2.0.5"
381
+ run-parallel "^1.1.9"
382
+
383
+ "@nodelib/[email protected]", "@nodelib/fs.stat@^2.0.2":
384
+ version "2.0.5"
385
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
386
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
387
+
388
+ "@nodelib/fs.walk@^1.2.3":
389
+ version "1.2.8"
390
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
391
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
392
+ dependencies:
393
+ "@nodelib/fs.scandir" "2.1.5"
394
+ fastq "^1.6.0"
395
+
396
+ "@pkgjs/parseargs@^0.11.0":
397
+ version "0.11.0"
398
+ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
399
+ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
400
+
401
+ "@popperjs/core@^2.11.8":
402
+ version "2.11.8"
403
+ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
404
+ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
405
+
406
+ "@swc/counter@^0.1.3":
407
+ version "0.1.3"
408
+ resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
409
+ integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
410
+
411
+ "@swc/[email protected]":
412
+ version "0.5.5"
413
+ resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0"
414
+ integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==
415
+ dependencies:
416
+ "@swc/counter" "^0.1.3"
417
+ tslib "^2.4.0"
418
+
419
+ "@types/chroma-js@^2.4.3":
420
+ version "2.4.4"
421
+ resolved "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-2.4.4.tgz#254dddff54568ff8e5d0dcdb071871a458fdfd31"
422
+ integrity sha512-/DTccpHTaKomqussrn+ciEvfW4k6NAHzNzs/sts1TCqg333qNxOhy8TNIoQCmbGG3Tl8KdEhkGAssb1n3mTXiQ==
423
+
424
+ "@types/d3-array@^3.0.3":
425
+ version "3.2.1"
426
+ resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5"
427
+ integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==
428
+
429
+ "@types/d3-color@*":
430
+ version "3.1.3"
431
+ resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2"
432
+ integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==
433
+
434
+ "@types/d3-ease@^3.0.0":
435
+ version "3.0.2"
436
+ resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b"
437
+ integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==
438
+
439
+ "@types/d3-interpolate@^3.0.1":
440
+ version "3.0.4"
441
+ resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c"
442
+ integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==
443
+ dependencies:
444
+ "@types/d3-color" "*"
445
+
446
+ "@types/d3-path@*":
447
+ version "3.1.0"
448
+ resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a"
449
+ integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==
450
+
451
+ "@types/d3-scale@^4.0.2":
452
+ version "4.0.8"
453
+ resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb"
454
+ integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==
455
+ dependencies:
456
+ "@types/d3-time" "*"
457
+
458
+ "@types/d3-shape@^3.1.0":
459
+ version "3.1.6"
460
+ resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72"
461
+ integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==
462
+ dependencies:
463
+ "@types/d3-path" "*"
464
+
465
+ "@types/d3-time@*", "@types/d3-time@^3.0.0":
466
+ version "3.0.4"
467
+ resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f"
468
+ integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==
469
+
470
+ "@types/d3-timer@^3.0.0":
471
+ version "3.0.2"
472
+ resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70"
473
+ integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==
474
+
475
+ "@types/node@^20":
476
+ version "20.14.13"
477
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.13.tgz#bf4fe8959ae1c43bc284de78bd6c01730933736b"
478
+ integrity sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w==
479
+ dependencies:
480
+ undici-types "~5.26.4"
481
+
482
+ "@types/parse-json@^4.0.0":
483
+ version "4.0.2"
484
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
485
+ integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
486
+
487
+ "@types/prismjs@^1.26.0":
488
+ version "1.26.4"
489
+ resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.4.tgz#1a9e1074619ce1d7322669e5b46fbe823925103a"
490
+ integrity sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==
491
+
492
+ "@types/prop-types@*", "@types/prop-types@^15.7.12":
493
+ version "15.7.12"
494
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
495
+ integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
496
+
497
+ "@types/react-dom@^18":
498
+ version "18.3.0"
499
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0"
500
+ integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==
501
+ dependencies:
502
+ "@types/react" "*"
503
+
504
+ "@types/react-transition-group@^4.4.10":
505
+ version "4.4.10"
506
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac"
507
+ integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==
508
+ dependencies:
509
+ "@types/react" "*"
510
+
511
+ "@types/react@*", "@types/react@^18":
512
+ version "18.3.3"
513
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f"
514
+ integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==
515
+ dependencies:
516
+ "@types/prop-types" "*"
517
+ csstype "^3.0.2"
518
+
519
+ ansi-regex@^5.0.1:
520
+ version "5.0.1"
521
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
522
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
523
+
524
+ ansi-regex@^6.0.1:
525
+ version "6.0.1"
526
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
527
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
528
+
529
+ ansi-styles@^3.2.1:
530
+ version "3.2.1"
531
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
532
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
533
+ dependencies:
534
+ color-convert "^1.9.0"
535
+
536
+ ansi-styles@^4.0.0:
537
+ version "4.3.0"
538
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
539
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
540
+ dependencies:
541
+ color-convert "^2.0.1"
542
+
543
+ ansi-styles@^6.1.0:
544
+ version "6.2.1"
545
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
546
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
547
+
548
+ any-promise@^1.0.0:
549
+ version "1.3.0"
550
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
551
+ integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
552
+
553
+ anymatch@~3.1.2:
554
+ version "3.1.3"
555
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
556
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
557
+ dependencies:
558
+ normalize-path "^3.0.0"
559
+ picomatch "^2.0.4"
560
+
561
+ arg@^5.0.2:
562
+ version "5.0.2"
563
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
564
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
565
+
566
+ babel-plugin-macros@^3.1.0:
567
+ version "3.1.0"
568
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
569
+ integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==
570
+ dependencies:
571
+ "@babel/runtime" "^7.12.5"
572
+ cosmiconfig "^7.0.0"
573
+ resolve "^1.19.0"
574
+
575
+ balanced-match@^1.0.0:
576
+ version "1.0.2"
577
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
578
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
579
+
580
+ binary-extensions@^2.0.0:
581
+ version "2.3.0"
582
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
583
+ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
584
+
585
+ brace-expansion@^2.0.1:
586
+ version "2.0.1"
587
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
588
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
589
+ dependencies:
590
+ balanced-match "^1.0.0"
591
+
592
+ braces@^3.0.3, braces@~3.0.2:
593
+ version "3.0.3"
594
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
595
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
596
+ dependencies:
597
+ fill-range "^7.1.1"
598
+
599
600
+ version "1.6.0"
601
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
602
+ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
603
+ dependencies:
604
+ streamsearch "^1.1.0"
605
+
606
+ callsites@^3.0.0:
607
+ version "3.1.0"
608
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
609
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
610
+
611
+ camelcase-css@^2.0.1:
612
+ version "2.0.1"
613
+ resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
614
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
615
+
616
+ caniuse-lite@^1.0.30001579:
617
+ version "1.0.30001645"
618
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001645.tgz#4c4b7427683dea1170a152cd1654be8d0da7bd71"
619
+ integrity sha512-GFtY2+qt91kzyMk6j48dJcwJVq5uTkk71XxE3RtScx7XWRLsO7bU44LOFkOZYR8w9YMS0UhPSYpN/6rAMImmLw==
620
+
621
+ chalk@^2.4.2:
622
+ version "2.4.2"
623
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
624
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
625
+ dependencies:
626
+ ansi-styles "^3.2.1"
627
+ escape-string-regexp "^1.0.5"
628
+ supports-color "^5.3.0"
629
+
630
+ chokidar@^3.5.3:
631
+ version "3.6.0"
632
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
633
+ integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
634
+ dependencies:
635
+ anymatch "~3.1.2"
636
+ braces "~3.0.2"
637
+ glob-parent "~5.1.2"
638
+ is-binary-path "~2.1.0"
639
+ is-glob "~4.0.1"
640
+ normalize-path "~3.0.0"
641
+ readdirp "~3.6.0"
642
+ optionalDependencies:
643
+ fsevents "~2.3.2"
644
+
645
+ chroma-js@^2.4.2:
646
+ version "2.6.0"
647
+ resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.6.0.tgz#578743dd359698a75067a19fa5571dec54d0b70b"
648
+ integrity sha512-BLHvCB9s8Z1EV4ethr6xnkl/P2YRFOGqfgvuMG/MyCbZPrTA+NeiByY6XvgF0zP4/2deU2CXnWyMa3zu1LqQ3A==
649
+
650
651
+ version "0.0.1"
652
+ resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
653
+ integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
654
+
655
+ clsx@^2.0.0, clsx@^2.1.0, clsx@^2.1.1:
656
+ version "2.1.1"
657
+ resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999"
658
+ integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==
659
+
660
+ color-convert@^1.9.0:
661
+ version "1.9.3"
662
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
663
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
664
+ dependencies:
665
+ color-name "1.1.3"
666
+
667
+ color-convert@^2.0.1:
668
+ version "2.0.1"
669
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
670
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
671
+ dependencies:
672
+ color-name "~1.1.4"
673
+
674
675
+ version "1.1.3"
676
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
677
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
678
+
679
+ color-name@~1.1.4:
680
+ version "1.1.4"
681
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
682
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
683
+
684
+ commander@^4.0.0:
685
+ version "4.1.1"
686
+ resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
687
+ integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
688
+
689
+ convert-source-map@^1.5.0:
690
+ version "1.9.0"
691
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
692
+ integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
693
+
694
+ cosmiconfig@^7.0.0:
695
+ version "7.1.0"
696
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
697
+ integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
698
+ dependencies:
699
+ "@types/parse-json" "^4.0.0"
700
+ import-fresh "^3.2.1"
701
+ parse-json "^5.0.0"
702
+ path-type "^4.0.0"
703
+ yaml "^1.10.0"
704
+
705
+ cross-spawn@^7.0.0:
706
+ version "7.0.3"
707
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
708
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
709
+ dependencies:
710
+ path-key "^3.1.0"
711
+ shebang-command "^2.0.0"
712
+ which "^2.0.1"
713
+
714
+ cssesc@^3.0.0:
715
+ version "3.0.0"
716
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
717
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
718
+
719
+ csstype@^3.0.2, csstype@^3.1.3:
720
+ version "3.1.3"
721
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
722
+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
723
+
724
+ "d3-array@2 - 3", "[email protected] - 3", d3-array@^3.1.6:
725
+ version "3.2.4"
726
+ resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5"
727
+ integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
728
+ dependencies:
729
+ internmap "1 - 2"
730
+
731
+ "d3-color@1 - 3":
732
+ version "3.1.0"
733
+ resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2"
734
+ integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
735
+
736
+ d3-ease@^3.0.1:
737
+ version "3.0.1"
738
+ resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4"
739
+ integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
740
+
741
+ "d3-format@1 - 3":
742
+ version "3.1.0"
743
+ resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641"
744
+ integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
745
+
746
+ "[email protected] - 3", d3-interpolate@^3.0.1:
747
+ version "3.0.1"
748
+ resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
749
+ integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
750
+ dependencies:
751
+ d3-color "1 - 3"
752
+
753
+ d3-path@^3.1.0:
754
+ version "3.1.0"
755
+ resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526"
756
+ integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
757
+
758
+ d3-scale@^4.0.2:
759
+ version "4.0.2"
760
+ resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396"
761
+ integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
762
+ dependencies:
763
+ d3-array "2.10.0 - 3"
764
+ d3-format "1 - 3"
765
+ d3-interpolate "1.2.0 - 3"
766
+ d3-time "2.1.1 - 3"
767
+ d3-time-format "2 - 4"
768
+
769
+ d3-shape@^3.1.0:
770
+ version "3.2.0"
771
+ resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5"
772
+ integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
773
+ dependencies:
774
+ d3-path "^3.1.0"
775
+
776
+ "d3-time-format@2 - 4":
777
+ version "4.1.0"
778
+ resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a"
779
+ integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
780
+ dependencies:
781
+ d3-time "1 - 3"
782
+
783
+ "d3-time@1 - 3", "[email protected] - 3", d3-time@^3.0.0:
784
+ version "3.1.0"
785
+ resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7"
786
+ integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
787
+ dependencies:
788
+ d3-array "2 - 3"
789
+
790
+ d3-timer@^3.0.1:
791
+ version "3.0.1"
792
+ resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0"
793
+ integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
794
+
795
+ date-fns@^3.6.0:
796
+ version "3.6.0"
797
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf"
798
+ integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==
799
+
800
+ debug@^4.3.1:
801
+ version "4.3.6"
802
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b"
803
+ integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
804
+ dependencies:
805
+ ms "2.1.2"
806
+
807
+ decimal.js-light@^2.4.1:
808
+ version "2.5.1"
809
+ resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934"
810
+ integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==
811
+
812
+ didyoumean@^1.2.2:
813
+ version "1.2.2"
814
+ resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
815
+ integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
816
+
817
+ dlv@^1.1.3:
818
+ version "1.1.3"
819
+ resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
820
+ integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
821
+
822
+ dom-helpers@^5.0.1:
823
+ version "5.2.1"
824
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
825
+ integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
826
+ dependencies:
827
+ "@babel/runtime" "^7.8.7"
828
+ csstype "^3.0.2"
829
+
830
+ eastasianwidth@^0.2.0:
831
+ version "0.2.0"
832
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
833
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
834
+
835
+ emoji-regex@^8.0.0:
836
+ version "8.0.0"
837
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
838
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
839
+
840
+ emoji-regex@^9.2.2:
841
+ version "9.2.2"
842
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
843
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
844
+
845
+ error-ex@^1.3.1:
846
+ version "1.3.2"
847
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
848
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
849
+ dependencies:
850
+ is-arrayish "^0.2.1"
851
+
852
+ escape-string-regexp@^1.0.5:
853
+ version "1.0.5"
854
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
855
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
856
+
857
+ escape-string-regexp@^4.0.0:
858
+ version "4.0.0"
859
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
860
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
861
+
862
+ eventemitter3@^4.0.1:
863
+ version "4.0.7"
864
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
865
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
866
+
867
+ fast-equals@^5.0.1:
868
+ version "5.0.1"
869
+ resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d"
870
+ integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==
871
+
872
+ fast-glob@^3.3.0:
873
+ version "3.3.2"
874
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
875
+ integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
876
+ dependencies:
877
+ "@nodelib/fs.stat" "^2.0.2"
878
+ "@nodelib/fs.walk" "^1.2.3"
879
+ glob-parent "^5.1.2"
880
+ merge2 "^1.3.0"
881
+ micromatch "^4.0.4"
882
+
883
+ fastq@^1.6.0:
884
+ version "1.17.1"
885
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
886
+ integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
887
+ dependencies:
888
+ reusify "^1.0.4"
889
+
890
+ fill-range@^7.1.1:
891
+ version "7.1.1"
892
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
893
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
894
+ dependencies:
895
+ to-regex-range "^5.0.1"
896
+
897
+ find-root@^1.1.0:
898
+ version "1.1.0"
899
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
900
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
901
+
902
+ foreground-child@^3.1.0:
903
+ version "3.2.1"
904
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7"
905
+ integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==
906
+ dependencies:
907
+ cross-spawn "^7.0.0"
908
+ signal-exit "^4.0.1"
909
+
910
+ fsevents@~2.3.2:
911
+ version "2.3.3"
912
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
913
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
914
+
915
+ function-bind@^1.1.2:
916
+ version "1.1.2"
917
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
918
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
919
+
920
+ glob-parent@^5.1.2, glob-parent@~5.1.2:
921
+ version "5.1.2"
922
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
923
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
924
+ dependencies:
925
+ is-glob "^4.0.1"
926
+
927
+ glob-parent@^6.0.2:
928
+ version "6.0.2"
929
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
930
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
931
+ dependencies:
932
+ is-glob "^4.0.3"
933
+
934
+ glob@^10.3.10:
935
+ version "10.4.5"
936
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
937
+ integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
938
+ dependencies:
939
+ foreground-child "^3.1.0"
940
+ jackspeak "^3.1.2"
941
+ minimatch "^9.0.4"
942
+ minipass "^7.1.2"
943
+ package-json-from-dist "^1.0.0"
944
+ path-scurry "^1.11.1"
945
+
946
+ globals@^11.1.0:
947
+ version "11.12.0"
948
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
949
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
950
+
951
+ graceful-fs@^4.2.11:
952
+ version "4.2.11"
953
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
954
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
955
+
956
+ has-flag@^3.0.0:
957
+ version "3.0.0"
958
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
959
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
960
+
961
+ hasown@^2.0.2:
962
+ version "2.0.2"
963
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
964
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
965
+ dependencies:
966
+ function-bind "^1.1.2"
967
+
968
+ hoist-non-react-statics@^3.3.1:
969
+ version "3.3.2"
970
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
971
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
972
+ dependencies:
973
+ react-is "^16.7.0"
974
+
975
+ import-fresh@^3.2.1:
976
+ version "3.3.0"
977
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
978
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
979
+ dependencies:
980
+ parent-module "^1.0.0"
981
+ resolve-from "^4.0.0"
982
+
983
+ "internmap@1 - 2":
984
+ version "2.0.3"
985
+ resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009"
986
+ integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
987
+
988
+ is-arrayish@^0.2.1:
989
+ version "0.2.1"
990
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
991
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
992
+
993
+ is-binary-path@~2.1.0:
994
+ version "2.1.0"
995
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
996
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
997
+ dependencies:
998
+ binary-extensions "^2.0.0"
999
+
1000
+ is-core-module@^2.13.0:
1001
+ version "2.15.0"
1002
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea"
1003
+ integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==
1004
+ dependencies:
1005
+ hasown "^2.0.2"
1006
+
1007
+ is-extglob@^2.1.1:
1008
+ version "2.1.1"
1009
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1010
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1011
+
1012
+ is-fullwidth-code-point@^3.0.0:
1013
+ version "3.0.0"
1014
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1015
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1016
+
1017
+ is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
1018
+ version "4.0.3"
1019
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1020
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1021
+ dependencies:
1022
+ is-extglob "^2.1.1"
1023
+
1024
+ is-number@^7.0.0:
1025
+ version "7.0.0"
1026
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1027
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1028
+
1029
+ isexe@^2.0.0:
1030
+ version "2.0.0"
1031
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1032
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1033
+
1034
+ jackspeak@^3.1.2:
1035
+ version "3.4.3"
1036
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
1037
+ integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
1038
+ dependencies:
1039
+ "@isaacs/cliui" "^8.0.2"
1040
+ optionalDependencies:
1041
+ "@pkgjs/parseargs" "^0.11.0"
1042
+
1043
+ jiti@^1.21.0:
1044
+ version "1.21.6"
1045
+ resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
1046
+ integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
1047
+
1048
+ "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1049
+ version "4.0.0"
1050
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1051
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1052
+
1053
+ jsesc@^2.5.1:
1054
+ version "2.5.2"
1055
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1056
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1057
+
1058
+ json-parse-even-better-errors@^2.3.0:
1059
+ version "2.3.1"
1060
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
1061
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
1062
+
1063
+ lilconfig@^2.1.0:
1064
+ version "2.1.0"
1065
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
1066
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
1067
+
1068
+ lilconfig@^3.0.0:
1069
+ version "3.1.2"
1070
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb"
1071
+ integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==
1072
+
1073
+ lines-and-columns@^1.1.6:
1074
+ version "1.2.4"
1075
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
1076
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
1077
+
1078
+ lodash@^4.17.21:
1079
+ version "4.17.21"
1080
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1081
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1082
+
1083
+ loose-envify@^1.1.0, loose-envify@^1.4.0:
1084
+ version "1.4.0"
1085
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1086
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1087
+ dependencies:
1088
+ js-tokens "^3.0.0 || ^4.0.0"
1089
+
1090
+ lru-cache@^10.2.0:
1091
+ version "10.4.3"
1092
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
1093
+ integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
1094
+
1095
+ merge2@^1.3.0:
1096
+ version "1.4.1"
1097
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1098
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1099
+
1100
+ micromatch@^4.0.4, micromatch@^4.0.5:
1101
+ version "4.0.7"
1102
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
1103
+ integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
1104
+ dependencies:
1105
+ braces "^3.0.3"
1106
+ picomatch "^2.3.1"
1107
+
1108
+ minimatch@^9.0.4:
1109
+ version "9.0.5"
1110
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
1111
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
1112
+ dependencies:
1113
+ brace-expansion "^2.0.1"
1114
+
1115
+ "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
1116
+ version "7.1.2"
1117
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
1118
+ integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
1119
+
1120
1121
+ version "2.1.2"
1122
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1123
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1124
+
1125
+ mz@^2.7.0:
1126
+ version "2.7.0"
1127
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
1128
+ integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
1129
+ dependencies:
1130
+ any-promise "^1.0.0"
1131
+ object-assign "^4.0.1"
1132
+ thenify-all "^1.0.0"
1133
+
1134
+ nanoid@^3.3.6, nanoid@^3.3.7:
1135
+ version "3.3.7"
1136
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
1137
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
1138
+
1139
1140
+ version "14.2.5"
1141
+ resolved "https://registry.yarnpkg.com/next/-/next-14.2.5.tgz#afe4022bb0b752962e2205836587a289270efbea"
1142
+ integrity sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==
1143
+ dependencies:
1144
+ "@next/env" "14.2.5"
1145
+ "@swc/helpers" "0.5.5"
1146
+ busboy "1.6.0"
1147
+ caniuse-lite "^1.0.30001579"
1148
+ graceful-fs "^4.2.11"
1149
+ postcss "8.4.31"
1150
+ styled-jsx "5.1.1"
1151
+ optionalDependencies:
1152
+ "@next/swc-darwin-arm64" "14.2.5"
1153
+ "@next/swc-darwin-x64" "14.2.5"
1154
+ "@next/swc-linux-arm64-gnu" "14.2.5"
1155
+ "@next/swc-linux-arm64-musl" "14.2.5"
1156
+ "@next/swc-linux-x64-gnu" "14.2.5"
1157
+ "@next/swc-linux-x64-musl" "14.2.5"
1158
+ "@next/swc-win32-arm64-msvc" "14.2.5"
1159
+ "@next/swc-win32-ia32-msvc" "14.2.5"
1160
+ "@next/swc-win32-x64-msvc" "14.2.5"
1161
+
1162
+ normalize-path@^3.0.0, normalize-path@~3.0.0:
1163
+ version "3.0.0"
1164
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1165
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1166
+
1167
+ object-assign@^4.0.1, object-assign@^4.1.1:
1168
+ version "4.1.1"
1169
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1170
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1171
+
1172
+ object-hash@^3.0.0:
1173
+ version "3.0.0"
1174
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
1175
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
1176
+
1177
+ package-json-from-dist@^1.0.0:
1178
+ version "1.0.0"
1179
+ resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
1180
+ integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
1181
+
1182
+ parent-module@^1.0.0:
1183
+ version "1.0.1"
1184
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1185
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1186
+ dependencies:
1187
+ callsites "^3.0.0"
1188
+
1189
+ parse-json@^5.0.0:
1190
+ version "5.2.0"
1191
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
1192
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
1193
+ dependencies:
1194
+ "@babel/code-frame" "^7.0.0"
1195
+ error-ex "^1.3.1"
1196
+ json-parse-even-better-errors "^2.3.0"
1197
+ lines-and-columns "^1.1.6"
1198
+
1199
+ path-key@^3.1.0:
1200
+ version "3.1.1"
1201
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1202
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1203
+
1204
+ path-parse@^1.0.7:
1205
+ version "1.0.7"
1206
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1207
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1208
+
1209
+ path-scurry@^1.11.1:
1210
+ version "1.11.1"
1211
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
1212
+ integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
1213
+ dependencies:
1214
+ lru-cache "^10.2.0"
1215
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
1216
+
1217
+ path-type@^4.0.0:
1218
+ version "4.0.0"
1219
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
1220
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1221
+
1222
+ picocolors@^1.0.0, picocolors@^1.0.1:
1223
+ version "1.0.1"
1224
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
1225
+ integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
1226
+
1227
+ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
1228
+ version "2.3.1"
1229
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1230
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1231
+
1232
+ pify@^2.3.0:
1233
+ version "2.3.0"
1234
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1235
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1236
+
1237
+ pirates@^4.0.1:
1238
+ version "4.0.6"
1239
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
1240
+ integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
1241
+
1242
+ postcss-import@^15.1.0:
1243
+ version "15.1.0"
1244
+ resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
1245
+ integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
1246
+ dependencies:
1247
+ postcss-value-parser "^4.0.0"
1248
+ read-cache "^1.0.0"
1249
+ resolve "^1.1.7"
1250
+
1251
+ postcss-js@^4.0.1:
1252
+ version "4.0.1"
1253
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
1254
+ integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
1255
+ dependencies:
1256
+ camelcase-css "^2.0.1"
1257
+
1258
+ postcss-load-config@^4.0.1:
1259
+ version "4.0.2"
1260
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3"
1261
+ integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==
1262
+ dependencies:
1263
+ lilconfig "^3.0.0"
1264
+ yaml "^2.3.4"
1265
+
1266
+ postcss-nested@^6.0.1:
1267
+ version "6.2.0"
1268
+ resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131"
1269
+ integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==
1270
+ dependencies:
1271
+ postcss-selector-parser "^6.1.1"
1272
+
1273
+ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1:
1274
+ version "6.1.1"
1275
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38"
1276
+ integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==
1277
+ dependencies:
1278
+ cssesc "^3.0.0"
1279
+ util-deprecate "^1.0.2"
1280
+
1281
+ postcss-value-parser@^4.0.0:
1282
+ version "4.2.0"
1283
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1284
+ integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1285
+
1286
1287
+ version "8.4.31"
1288
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
1289
+ integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
1290
+ dependencies:
1291
+ nanoid "^3.3.6"
1292
+ picocolors "^1.0.0"
1293
+ source-map-js "^1.0.2"
1294
+
1295
+ postcss@^8, postcss@^8.4.23:
1296
+ version "8.4.40"
1297
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8"
1298
+ integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==
1299
+ dependencies:
1300
+ nanoid "^3.3.7"
1301
+ picocolors "^1.0.1"
1302
+ source-map-js "^1.2.0"
1303
+
1304
+ prism-react-renderer@^2.3.1:
1305
+ version "2.3.1"
1306
+ resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz#e59e5450052ede17488f6bc85de1553f584ff8d5"
1307
+ integrity sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==
1308
+ dependencies:
1309
+ "@types/prismjs" "^1.26.0"
1310
+ clsx "^2.0.0"
1311
+
1312
+ prop-types@^15.6.2, prop-types@^15.8.1:
1313
+ version "15.8.1"
1314
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
1315
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
1316
+ dependencies:
1317
+ loose-envify "^1.4.0"
1318
+ object-assign "^4.1.1"
1319
+ react-is "^16.13.1"
1320
+
1321
+ queue-microtask@^1.2.2:
1322
+ version "1.2.3"
1323
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1324
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1325
+
1326
+ react-activity-calendar@^2.2.11:
1327
+ version "2.2.11"
1328
+ resolved "https://registry.yarnpkg.com/react-activity-calendar/-/react-activity-calendar-2.2.11.tgz#1fda05ee4000f9fa7eca2f3c08ca7e02644931c5"
1329
+ integrity sha512-KblrtieAiUCT3Tn549mD6b5C+CaUJUN26NuBFc277s29HlUPI5bu0HSkpqP0LVicNX+Ng8apkyOgnbQpxQpnYg==
1330
+ dependencies:
1331
+ "@types/chroma-js" "^2.4.3"
1332
+ chroma-js "^2.4.2"
1333
+ date-fns "^3.6.0"
1334
+ prism-react-renderer "^2.3.1"
1335
+
1336
+ react-dom@^18:
1337
+ version "18.3.1"
1338
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
1339
+ integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
1340
+ dependencies:
1341
+ loose-envify "^1.1.0"
1342
+ scheduler "^0.23.2"
1343
+
1344
+ react-is@^16.13.1, react-is@^16.7.0:
1345
+ version "16.13.1"
1346
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
1347
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1348
+
1349
+ react-is@^18.3.1:
1350
+ version "18.3.1"
1351
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
1352
+ integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
1353
+
1354
+ react-smooth@^4.0.0:
1355
+ version "4.0.1"
1356
+ resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-4.0.1.tgz#6200d8699bfe051ae40ba187988323b1449eab1a"
1357
+ integrity sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==
1358
+ dependencies:
1359
+ fast-equals "^5.0.1"
1360
+ prop-types "^15.8.1"
1361
+ react-transition-group "^4.4.5"
1362
+
1363
+ react-transition-group@^4.4.5:
1364
+ version "4.4.5"
1365
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
1366
+ integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==
1367
+ dependencies:
1368
+ "@babel/runtime" "^7.5.5"
1369
+ dom-helpers "^5.0.1"
1370
+ loose-envify "^1.4.0"
1371
+ prop-types "^15.6.2"
1372
+
1373
+ react@^18:
1374
+ version "18.3.1"
1375
+ resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
1376
+ integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
1377
+ dependencies:
1378
+ loose-envify "^1.1.0"
1379
+
1380
+ read-cache@^1.0.0:
1381
+ version "1.0.0"
1382
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
1383
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
1384
+ dependencies:
1385
+ pify "^2.3.0"
1386
+
1387
+ readdirp@~3.6.0:
1388
+ version "3.6.0"
1389
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
1390
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1391
+ dependencies:
1392
+ picomatch "^2.2.1"
1393
+
1394
+ recharts-scale@^0.4.4:
1395
+ version "0.4.5"
1396
+ resolved "https://registry.yarnpkg.com/recharts-scale/-/recharts-scale-0.4.5.tgz#0969271f14e732e642fcc5bd4ab270d6e87dd1d9"
1397
+ integrity sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==
1398
+ dependencies:
1399
+ decimal.js-light "^2.4.1"
1400
+
1401
+ recharts@^2.13.3:
1402
+ version "2.13.3"
1403
+ resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.13.3.tgz#a5ce61e493dff921a14a14a8f42a9f2d2bbefd5a"
1404
+ integrity sha512-YDZ9dOfK9t3ycwxgKbrnDlRC4BHdjlY73fet3a0C1+qGMjXVZe6+VXmpOIIhzkje5MMEL8AN4hLIe4AMskBzlA==
1405
+ dependencies:
1406
+ clsx "^2.0.0"
1407
+ eventemitter3 "^4.0.1"
1408
+ lodash "^4.17.21"
1409
+ react-is "^18.3.1"
1410
+ react-smooth "^4.0.0"
1411
+ recharts-scale "^0.4.4"
1412
+ tiny-invariant "^1.3.1"
1413
+ victory-vendor "^36.6.8"
1414
+
1415
+ regenerator-runtime@^0.14.0:
1416
+ version "0.14.1"
1417
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
1418
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
1419
+
1420
+ resolve-from@^4.0.0:
1421
+ version "4.0.0"
1422
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1423
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1424
+
1425
+ resolve@^1.1.7, resolve@^1.19.0, resolve@^1.22.2:
1426
+ version "1.22.8"
1427
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
1428
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
1429
+ dependencies:
1430
+ is-core-module "^2.13.0"
1431
+ path-parse "^1.0.7"
1432
+ supports-preserve-symlinks-flag "^1.0.0"
1433
+
1434
+ reusify@^1.0.4:
1435
+ version "1.0.4"
1436
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1437
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1438
+
1439
+ run-parallel@^1.1.9:
1440
+ version "1.2.0"
1441
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1442
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1443
+ dependencies:
1444
+ queue-microtask "^1.2.2"
1445
+
1446
+ scheduler@^0.23.2:
1447
+ version "0.23.2"
1448
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
1449
+ integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
1450
+ dependencies:
1451
+ loose-envify "^1.1.0"
1452
+
1453
+ shebang-command@^2.0.0:
1454
+ version "2.0.0"
1455
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1456
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1457
+ dependencies:
1458
+ shebang-regex "^3.0.0"
1459
+
1460
+ shebang-regex@^3.0.0:
1461
+ version "3.0.0"
1462
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1463
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1464
+
1465
+ signal-exit@^4.0.1:
1466
+ version "4.1.0"
1467
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
1468
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
1469
+
1470
+ source-map-js@^1.0.2, source-map-js@^1.2.0:
1471
+ version "1.2.0"
1472
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
1473
+ integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
1474
+
1475
+ source-map@^0.5.7:
1476
+ version "0.5.7"
1477
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1478
+ integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
1479
+
1480
+ streamsearch@^1.1.0:
1481
+ version "1.1.0"
1482
+ resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
1483
+ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
1484
+
1485
+ "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
1486
+ name string-width-cjs
1487
+ version "4.2.3"
1488
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1489
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1490
+ dependencies:
1491
+ emoji-regex "^8.0.0"
1492
+ is-fullwidth-code-point "^3.0.0"
1493
+ strip-ansi "^6.0.1"
1494
+
1495
+ string-width@^5.0.1, string-width@^5.1.2:
1496
+ version "5.1.2"
1497
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
1498
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
1499
+ dependencies:
1500
+ eastasianwidth "^0.2.0"
1501
+ emoji-regex "^9.2.2"
1502
+ strip-ansi "^7.0.1"
1503
+
1504
+ "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1505
+ name strip-ansi-cjs
1506
+ version "6.0.1"
1507
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1508
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1509
+ dependencies:
1510
+ ansi-regex "^5.0.1"
1511
+
1512
+ strip-ansi@^7.0.1:
1513
+ version "7.1.0"
1514
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
1515
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
1516
+ dependencies:
1517
+ ansi-regex "^6.0.1"
1518
+
1519
1520
+ version "5.1.1"
1521
+ resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
1522
+ integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==
1523
+ dependencies:
1524
+ client-only "0.0.1"
1525
+
1526
1527
+ version "4.2.0"
1528
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
1529
+ integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
1530
+
1531
+ sucrase@^3.32.0:
1532
+ version "3.35.0"
1533
+ resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
1534
+ integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==
1535
+ dependencies:
1536
+ "@jridgewell/gen-mapping" "^0.3.2"
1537
+ commander "^4.0.0"
1538
+ glob "^10.3.10"
1539
+ lines-and-columns "^1.1.6"
1540
+ mz "^2.7.0"
1541
+ pirates "^4.0.1"
1542
+ ts-interface-checker "^0.1.9"
1543
+
1544
+ supports-color@^5.3.0:
1545
+ version "5.5.0"
1546
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1547
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1548
+ dependencies:
1549
+ has-flag "^3.0.0"
1550
+
1551
+ supports-preserve-symlinks-flag@^1.0.0:
1552
+ version "1.0.0"
1553
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1554
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1555
+
1556
+ tailwindcss@^3.4.1:
1557
+ version "3.4.7"
1558
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.7.tgz#6092f18767f5933f59375b9afe558e592fc77201"
1559
+ integrity sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==
1560
+ dependencies:
1561
+ "@alloc/quick-lru" "^5.2.0"
1562
+ arg "^5.0.2"
1563
+ chokidar "^3.5.3"
1564
+ didyoumean "^1.2.2"
1565
+ dlv "^1.1.3"
1566
+ fast-glob "^3.3.0"
1567
+ glob-parent "^6.0.2"
1568
+ is-glob "^4.0.3"
1569
+ jiti "^1.21.0"
1570
+ lilconfig "^2.1.0"
1571
+ micromatch "^4.0.5"
1572
+ normalize-path "^3.0.0"
1573
+ object-hash "^3.0.0"
1574
+ picocolors "^1.0.0"
1575
+ postcss "^8.4.23"
1576
+ postcss-import "^15.1.0"
1577
+ postcss-js "^4.0.1"
1578
+ postcss-load-config "^4.0.1"
1579
+ postcss-nested "^6.0.1"
1580
+ postcss-selector-parser "^6.0.11"
1581
+ resolve "^1.22.2"
1582
+ sucrase "^3.32.0"
1583
+
1584
+ thenify-all@^1.0.0:
1585
+ version "1.6.0"
1586
+ resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
1587
+ integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
1588
+ dependencies:
1589
+ thenify ">= 3.1.0 < 4"
1590
+
1591
+ "thenify@>= 3.1.0 < 4":
1592
+ version "3.3.1"
1593
+ resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
1594
+ integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
1595
+ dependencies:
1596
+ any-promise "^1.0.0"
1597
+
1598
+ tiny-invariant@^1.3.1:
1599
+ version "1.3.3"
1600
+ resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127"
1601
+ integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==
1602
+
1603
+ to-fast-properties@^2.0.0:
1604
+ version "2.0.0"
1605
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1606
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
1607
+
1608
+ to-regex-range@^5.0.1:
1609
+ version "5.0.1"
1610
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1611
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1612
+ dependencies:
1613
+ is-number "^7.0.0"
1614
+
1615
+ ts-interface-checker@^0.1.9:
1616
+ version "0.1.13"
1617
+ resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
1618
+ integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
1619
+
1620
+ tslib@^2.4.0:
1621
+ version "2.6.3"
1622
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
1623
+ integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
1624
+
1625
+ typescript@^5:
1626
+ version "5.5.4"
1627
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba"
1628
+ integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
1629
+
1630
+ undici-types@~5.26.4:
1631
+ version "5.26.5"
1632
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
1633
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
1634
+
1635
+ util-deprecate@^1.0.2:
1636
+ version "1.0.2"
1637
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1638
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1639
+
1640
+ victory-vendor@^36.6.8:
1641
+ version "36.9.2"
1642
+ resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-36.9.2.tgz#668b02a448fa4ea0f788dbf4228b7e64669ff801"
1643
+ integrity sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==
1644
+ dependencies:
1645
+ "@types/d3-array" "^3.0.3"
1646
+ "@types/d3-ease" "^3.0.0"
1647
+ "@types/d3-interpolate" "^3.0.1"
1648
+ "@types/d3-scale" "^4.0.2"
1649
+ "@types/d3-shape" "^3.1.0"
1650
+ "@types/d3-time" "^3.0.0"
1651
+ "@types/d3-timer" "^3.0.0"
1652
+ d3-array "^3.1.6"
1653
+ d3-ease "^3.0.1"
1654
+ d3-interpolate "^3.0.1"
1655
+ d3-scale "^4.0.2"
1656
+ d3-shape "^3.1.0"
1657
+ d3-time "^3.0.0"
1658
+ d3-timer "^3.0.1"
1659
+
1660
+ which@^2.0.1:
1661
+ version "2.0.2"
1662
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1663
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1664
+ dependencies:
1665
+ isexe "^2.0.0"
1666
+
1667
+ "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
1668
+ version "7.0.0"
1669
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1670
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1671
+ dependencies:
1672
+ ansi-styles "^4.0.0"
1673
+ string-width "^4.1.0"
1674
+ strip-ansi "^6.0.0"
1675
+
1676
+ wrap-ansi@^8.1.0:
1677
+ version "8.1.0"
1678
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
1679
+ integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
1680
+ dependencies:
1681
+ ansi-styles "^6.1.0"
1682
+ string-width "^5.0.1"
1683
+ strip-ansi "^7.0.1"
1684
+
1685
+ yaml@^1.10.0:
1686
+ version "1.10.2"
1687
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
1688
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
1689
+
1690
+ yaml@^2.3.4:
1691
+ version "2.5.0"
1692
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d"
1693
+ integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==