Faran Butt
commited on
Commit
β’
02f749e
1
Parent(s):
e831a1d
Added the document submit button
Browse files- components.json +16 -0
- package-lock.json +121 -59
- package.json +6 -0
- src/components/base/boxes.tsx +0 -28
- src/components/base/code.tsx +0 -19
- src/components/base/example-button.tsx +0 -41
- src/components/base/options.tsx +0 -56
- src/components/base/secret.tsx +0 -33
- src/components/base/slider-with-label.tsx +0 -22
- src/components/example-components.tsx +0 -35
- src/components/footer.tsx +0 -32
- src/components/getting-started.tsx +0 -150
- src/components/huggingface/huggingface.tsx +0 -64
- src/components/huggingface/inference/summarization.tsx +0 -190
- src/components/title.tsx +0 -62
- src/components/ui/button.tsx +57 -0
- src/components/ui/input.tsx +25 -0
- src/components/under-construction.tsx +0 -8
- src/lib/utils.ts +6 -0
- src/pages/global.css +74 -1
- src/pages/index.tsx +8 -7
- tailwind.config.js +71 -10
components.json
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"$schema": "https://ui.shadcn.com/schema.json",
|
3 |
+
"style": "new-york",
|
4 |
+
"rsc": true,
|
5 |
+
"tsx": true,
|
6 |
+
"tailwind": {
|
7 |
+
"config": "tailwind.config.js",
|
8 |
+
"css": "src/pages/global.css",
|
9 |
+
"baseColor": "gray",
|
10 |
+
"cssVariables": true
|
11 |
+
},
|
12 |
+
"aliases": {
|
13 |
+
"components": "@/components",
|
14 |
+
"utils": "@/lib/utils"
|
15 |
+
}
|
16 |
+
}
|
package-lock.json
CHANGED
@@ -16,14 +16,20 @@
|
|
16 |
"@huggingface/inference": "2.3.3",
|
17 |
"@mui/icons-material": "5.11.16",
|
18 |
"@mui/material": "5.12.0",
|
|
|
|
|
19 |
"@types/node": "20.1.4",
|
20 |
"@types/react": "18.2.6",
|
21 |
"@types/react-dom": "18.2.4",
|
|
|
|
|
22 |
"eslint": "8.40.0",
|
23 |
"eslint-config-next": "13.4.2",
|
24 |
"next": "13.4.2",
|
25 |
"react": "18.2.0",
|
26 |
"react-dom": "18.2.0",
|
|
|
|
|
27 |
"typescript": "5.0.4"
|
28 |
},
|
29 |
"devDependencies": {
|
@@ -36,7 +42,6 @@
|
|
36 |
"version": "5.2.0",
|
37 |
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
|
38 |
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
|
39 |
-
"dev": true,
|
40 |
"engines": {
|
41 |
"node": ">=10"
|
42 |
},
|
@@ -160,11 +165,11 @@
|
|
160 |
}
|
161 |
},
|
162 |
"node_modules/@babel/runtime": {
|
163 |
-
"version": "7.
|
164 |
-
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.
|
165 |
-
"integrity": "sha512-
|
166 |
"dependencies": {
|
167 |
-
"regenerator-runtime": "^0.
|
168 |
},
|
169 |
"engines": {
|
170 |
"node": ">=6.9.0"
|
@@ -434,7 +439,6 @@
|
|
434 |
"version": "0.3.3",
|
435 |
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
436 |
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
|
437 |
-
"dev": true,
|
438 |
"dependencies": {
|
439 |
"@jridgewell/set-array": "^1.0.1",
|
440 |
"@jridgewell/sourcemap-codec": "^1.4.10",
|
@@ -448,7 +452,6 @@
|
|
448 |
"version": "3.1.1",
|
449 |
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
|
450 |
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
|
451 |
-
"dev": true,
|
452 |
"engines": {
|
453 |
"node": ">=6.0.0"
|
454 |
}
|
@@ -457,7 +460,6 @@
|
|
457 |
"version": "1.1.2",
|
458 |
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
|
459 |
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
|
460 |
-
"dev": true,
|
461 |
"engines": {
|
462 |
"node": ">=6.0.0"
|
463 |
}
|
@@ -465,14 +467,12 @@
|
|
465 |
"node_modules/@jridgewell/sourcemap-codec": {
|
466 |
"version": "1.4.15",
|
467 |
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
468 |
-
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
469 |
-
"dev": true
|
470 |
},
|
471 |
"node_modules/@jridgewell/trace-mapping": {
|
472 |
"version": "0.3.20",
|
473 |
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
|
474 |
"integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
|
475 |
-
"dev": true,
|
476 |
"dependencies": {
|
477 |
"@jridgewell/resolve-uri": "^3.1.0",
|
478 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
@@ -510,6 +510,14 @@
|
|
510 |
}
|
511 |
}
|
512 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
"node_modules/@mui/base/node_modules/react-is": {
|
514 |
"version": "18.2.0",
|
515 |
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
@@ -593,6 +601,14 @@
|
|
593 |
}
|
594 |
}
|
595 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
596 |
"node_modules/@mui/material/node_modules/react-is": {
|
597 |
"version": "18.2.0",
|
598 |
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
@@ -711,6 +727,14 @@
|
|
711 |
}
|
712 |
}
|
713 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
714 |
"node_modules/@mui/types": {
|
715 |
"version": "7.2.4",
|
716 |
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz",
|
@@ -959,6 +983,49 @@
|
|
959 |
"url": "https://opencollective.com/popperjs"
|
960 |
}
|
961 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
962 |
"node_modules/@rushstack/eslint-patch": {
|
963 |
"version": "1.2.0",
|
964 |
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
|
@@ -1196,14 +1263,12 @@
|
|
1196 |
"node_modules/any-promise": {
|
1197 |
"version": "1.3.0",
|
1198 |
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
1199 |
-
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
|
1200 |
-
"dev": true
|
1201 |
},
|
1202 |
"node_modules/anymatch": {
|
1203 |
"version": "3.1.3",
|
1204 |
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
1205 |
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
1206 |
-
"dev": true,
|
1207 |
"dependencies": {
|
1208 |
"normalize-path": "^3.0.0",
|
1209 |
"picomatch": "^2.0.4"
|
@@ -1215,8 +1280,7 @@
|
|
1215 |
"node_modules/arg": {
|
1216 |
"version": "5.0.2",
|
1217 |
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
1218 |
-
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
|
1219 |
-
"dev": true
|
1220 |
},
|
1221 |
"node_modules/argparse": {
|
1222 |
"version": "2.0.1",
|
@@ -1415,7 +1479,6 @@
|
|
1415 |
"version": "2.2.0",
|
1416 |
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
1417 |
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
1418 |
-
"dev": true,
|
1419 |
"engines": {
|
1420 |
"node": ">=8"
|
1421 |
}
|
@@ -1537,7 +1600,6 @@
|
|
1537 |
"version": "2.0.1",
|
1538 |
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
1539 |
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
|
1540 |
-
"dev": true,
|
1541 |
"engines": {
|
1542 |
"node": ">= 6"
|
1543 |
}
|
@@ -1580,7 +1642,6 @@
|
|
1580 |
"version": "3.5.3",
|
1581 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
1582 |
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
|
1583 |
-
"dev": true,
|
1584 |
"funding": [
|
1585 |
{
|
1586 |
"type": "individual",
|
@@ -1607,7 +1668,6 @@
|
|
1607 |
"version": "5.1.2",
|
1608 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
1609 |
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
1610 |
-
"dev": true,
|
1611 |
"dependencies": {
|
1612 |
"is-glob": "^4.0.1"
|
1613 |
},
|
@@ -1615,15 +1675,26 @@
|
|
1615 |
"node": ">= 6"
|
1616 |
}
|
1617 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1618 |
"node_modules/client-only": {
|
1619 |
"version": "0.0.1",
|
1620 |
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
|
1621 |
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
1622 |
},
|
1623 |
"node_modules/clsx": {
|
1624 |
-
"version": "
|
1625 |
-
"resolved": "https://registry.npmjs.org/clsx/-/clsx-
|
1626 |
-
"integrity": "sha512-
|
1627 |
"engines": {
|
1628 |
"node": ">=6"
|
1629 |
}
|
@@ -1648,7 +1719,6 @@
|
|
1648 |
"version": "4.1.1",
|
1649 |
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
1650 |
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
1651 |
-
"dev": true,
|
1652 |
"engines": {
|
1653 |
"node": ">= 6"
|
1654 |
}
|
@@ -1700,7 +1770,6 @@
|
|
1700 |
"version": "3.0.0",
|
1701 |
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
1702 |
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
|
1703 |
-
"dev": true,
|
1704 |
"bin": {
|
1705 |
"cssesc": "bin/cssesc"
|
1706 |
},
|
@@ -1828,8 +1897,7 @@
|
|
1828 |
"node_modules/didyoumean": {
|
1829 |
"version": "1.2.2",
|
1830 |
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
1831 |
-
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
|
1832 |
-
"dev": true
|
1833 |
},
|
1834 |
"node_modules/dir-glob": {
|
1835 |
"version": "3.0.1",
|
@@ -1845,8 +1913,7 @@
|
|
1845 |
"node_modules/dlv": {
|
1846 |
"version": "1.1.3",
|
1847 |
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
1848 |
-
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
|
1849 |
-
"dev": true
|
1850 |
},
|
1851 |
"node_modules/doctrine": {
|
1852 |
"version": "3.0.0",
|
@@ -2640,7 +2707,6 @@
|
|
2640 |
"version": "2.3.3",
|
2641 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
2642 |
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
2643 |
-
"dev": true,
|
2644 |
"hasInstallScript": true,
|
2645 |
"optional": true,
|
2646 |
"os": [
|
@@ -3036,7 +3102,6 @@
|
|
3036 |
"version": "2.1.0",
|
3037 |
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
3038 |
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
3039 |
-
"dev": true,
|
3040 |
"dependencies": {
|
3041 |
"binary-extensions": "^2.0.0"
|
3042 |
},
|
@@ -3355,7 +3420,6 @@
|
|
3355 |
"version": "1.21.0",
|
3356 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
|
3357 |
"integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
|
3358 |
-
"dev": true,
|
3359 |
"bin": {
|
3360 |
"jiti": "bin/jiti.js"
|
3361 |
}
|
@@ -3452,7 +3516,6 @@
|
|
3452 |
"version": "2.1.0",
|
3453 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
3454 |
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
|
3455 |
-
"dev": true,
|
3456 |
"engines": {
|
3457 |
"node": ">=10"
|
3458 |
}
|
@@ -3576,7 +3639,6 @@
|
|
3576 |
"version": "2.7.0",
|
3577 |
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
|
3578 |
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
|
3579 |
-
"dev": true,
|
3580 |
"dependencies": {
|
3581 |
"any-promise": "^1.0.0",
|
3582 |
"object-assign": "^4.0.1",
|
@@ -3691,7 +3753,6 @@
|
|
3691 |
"version": "3.0.0",
|
3692 |
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
3693 |
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
3694 |
-
"dev": true,
|
3695 |
"engines": {
|
3696 |
"node": ">=0.10.0"
|
3697 |
}
|
@@ -3742,7 +3803,6 @@
|
|
3742 |
"version": "3.0.0",
|
3743 |
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
|
3744 |
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
|
3745 |
-
"dev": true,
|
3746 |
"engines": {
|
3747 |
"node": ">= 6"
|
3748 |
}
|
@@ -4020,7 +4080,6 @@
|
|
4020 |
"version": "2.3.0",
|
4021 |
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
4022 |
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
4023 |
-
"dev": true,
|
4024 |
"engines": {
|
4025 |
"node": ">=0.10.0"
|
4026 |
}
|
@@ -4029,7 +4088,6 @@
|
|
4029 |
"version": "4.0.6",
|
4030 |
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
|
4031 |
"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
|
4032 |
-
"dev": true,
|
4033 |
"engines": {
|
4034 |
"node": ">= 6"
|
4035 |
}
|
@@ -4038,7 +4096,6 @@
|
|
4038 |
"version": "8.4.31",
|
4039 |
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
4040 |
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
4041 |
-
"dev": true,
|
4042 |
"funding": [
|
4043 |
{
|
4044 |
"type": "opencollective",
|
@@ -4066,7 +4123,6 @@
|
|
4066 |
"version": "15.1.0",
|
4067 |
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
|
4068 |
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
|
4069 |
-
"dev": true,
|
4070 |
"dependencies": {
|
4071 |
"postcss-value-parser": "^4.0.0",
|
4072 |
"read-cache": "^1.0.0",
|
@@ -4083,7 +4139,6 @@
|
|
4083 |
"version": "4.0.1",
|
4084 |
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
|
4085 |
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
|
4086 |
-
"dev": true,
|
4087 |
"dependencies": {
|
4088 |
"camelcase-css": "^2.0.1"
|
4089 |
},
|
@@ -4102,7 +4157,6 @@
|
|
4102 |
"version": "4.0.1",
|
4103 |
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
|
4104 |
"integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
|
4105 |
-
"dev": true,
|
4106 |
"dependencies": {
|
4107 |
"lilconfig": "^2.0.5",
|
4108 |
"yaml": "^2.1.1"
|
@@ -4131,7 +4185,6 @@
|
|
4131 |
"version": "2.3.4",
|
4132 |
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
|
4133 |
"integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
|
4134 |
-
"dev": true,
|
4135 |
"engines": {
|
4136 |
"node": ">= 14"
|
4137 |
}
|
@@ -4140,7 +4193,6 @@
|
|
4140 |
"version": "6.0.1",
|
4141 |
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
|
4142 |
"integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
|
4143 |
-
"dev": true,
|
4144 |
"dependencies": {
|
4145 |
"postcss-selector-parser": "^6.0.11"
|
4146 |
},
|
@@ -4159,7 +4211,6 @@
|
|
4159 |
"version": "6.0.13",
|
4160 |
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
|
4161 |
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
|
4162 |
-
"dev": true,
|
4163 |
"dependencies": {
|
4164 |
"cssesc": "^3.0.0",
|
4165 |
"util-deprecate": "^1.0.2"
|
@@ -4171,8 +4222,7 @@
|
|
4171 |
"node_modules/postcss-value-parser": {
|
4172 |
"version": "4.2.0",
|
4173 |
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
|
4174 |
-
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
4175 |
-
"dev": true
|
4176 |
},
|
4177 |
"node_modules/prelude-ls": {
|
4178 |
"version": "1.2.1",
|
@@ -4271,7 +4321,6 @@
|
|
4271 |
"version": "1.0.0",
|
4272 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
4273 |
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
|
4274 |
-
"dev": true,
|
4275 |
"dependencies": {
|
4276 |
"pify": "^2.3.0"
|
4277 |
}
|
@@ -4296,7 +4345,6 @@
|
|
4296 |
"version": "3.6.0",
|
4297 |
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
4298 |
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
4299 |
-
"dev": true,
|
4300 |
"dependencies": {
|
4301 |
"picomatch": "^2.2.1"
|
4302 |
},
|
@@ -4305,9 +4353,9 @@
|
|
4305 |
}
|
4306 |
},
|
4307 |
"node_modules/regenerator-runtime": {
|
4308 |
-
"version": "0.
|
4309 |
-
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.
|
4310 |
-
"integrity": "sha512-
|
4311 |
},
|
4312 |
"node_modules/regexp.prototype.flags": {
|
4313 |
"version": "1.5.0",
|
@@ -4747,7 +4795,6 @@
|
|
4747 |
"version": "3.34.0",
|
4748 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
|
4749 |
"integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
|
4750 |
-
"dev": true,
|
4751 |
"dependencies": {
|
4752 |
"@jridgewell/gen-mapping": "^0.3.2",
|
4753 |
"commander": "^4.0.0",
|
@@ -4769,7 +4816,6 @@
|
|
4769 |
"version": "7.1.6",
|
4770 |
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
4771 |
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
4772 |
-
"dev": true,
|
4773 |
"dependencies": {
|
4774 |
"fs.realpath": "^1.0.0",
|
4775 |
"inflight": "^1.0.4",
|
@@ -4822,11 +4868,22 @@
|
|
4822 |
"url": "https://opencollective.com/unts"
|
4823 |
}
|
4824 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4825 |
"node_modules/tailwindcss": {
|
4826 |
"version": "3.3.5",
|
4827 |
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz",
|
4828 |
"integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==",
|
4829 |
-
"dev": true,
|
4830 |
"dependencies": {
|
4831 |
"@alloc/quick-lru": "^5.2.0",
|
4832 |
"arg": "^5.0.2",
|
@@ -4859,6 +4916,14 @@
|
|
4859 |
"node": ">=14.0.0"
|
4860 |
}
|
4861 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4862 |
"node_modules/tapable": {
|
4863 |
"version": "2.2.1",
|
4864 |
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
|
@@ -4876,7 +4941,6 @@
|
|
4876 |
"version": "3.3.1",
|
4877 |
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
|
4878 |
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
|
4879 |
-
"dev": true,
|
4880 |
"dependencies": {
|
4881 |
"any-promise": "^1.0.0"
|
4882 |
}
|
@@ -4885,7 +4949,6 @@
|
|
4885 |
"version": "1.6.0",
|
4886 |
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
|
4887 |
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
|
4888 |
-
"dev": true,
|
4889 |
"dependencies": {
|
4890 |
"thenify": ">= 3.1.0 < 4"
|
4891 |
},
|
@@ -4940,8 +5003,7 @@
|
|
4940 |
"node_modules/ts-interface-checker": {
|
4941 |
"version": "0.1.13",
|
4942 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
4943 |
-
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
|
4944 |
-
"dev": true
|
4945 |
},
|
4946 |
"node_modules/tsconfig-paths": {
|
4947 |
"version": "3.14.2",
|
|
|
16 |
"@huggingface/inference": "2.3.3",
|
17 |
"@mui/icons-material": "5.11.16",
|
18 |
"@mui/material": "5.12.0",
|
19 |
+
"@radix-ui/react-icons": "^1.3.0",
|
20 |
+
"@radix-ui/react-slot": "^1.0.2",
|
21 |
"@types/node": "20.1.4",
|
22 |
"@types/react": "18.2.6",
|
23 |
"@types/react-dom": "18.2.4",
|
24 |
+
"class-variance-authority": "^0.7.0",
|
25 |
+
"clsx": "^2.0.0",
|
26 |
"eslint": "8.40.0",
|
27 |
"eslint-config-next": "13.4.2",
|
28 |
"next": "13.4.2",
|
29 |
"react": "18.2.0",
|
30 |
"react-dom": "18.2.0",
|
31 |
+
"tailwind-merge": "^2.0.0",
|
32 |
+
"tailwindcss-animate": "^1.0.7",
|
33 |
"typescript": "5.0.4"
|
34 |
},
|
35 |
"devDependencies": {
|
|
|
42 |
"version": "5.2.0",
|
43 |
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
|
44 |
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
|
|
|
45 |
"engines": {
|
46 |
"node": ">=10"
|
47 |
},
|
|
|
165 |
}
|
166 |
},
|
167 |
"node_modules/@babel/runtime": {
|
168 |
+
"version": "7.23.2",
|
169 |
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
|
170 |
+
"integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
|
171 |
"dependencies": {
|
172 |
+
"regenerator-runtime": "^0.14.0"
|
173 |
},
|
174 |
"engines": {
|
175 |
"node": ">=6.9.0"
|
|
|
439 |
"version": "0.3.3",
|
440 |
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
441 |
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
|
|
|
442 |
"dependencies": {
|
443 |
"@jridgewell/set-array": "^1.0.1",
|
444 |
"@jridgewell/sourcemap-codec": "^1.4.10",
|
|
|
452 |
"version": "3.1.1",
|
453 |
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
|
454 |
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
|
|
|
455 |
"engines": {
|
456 |
"node": ">=6.0.0"
|
457 |
}
|
|
|
460 |
"version": "1.1.2",
|
461 |
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
|
462 |
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
|
|
|
463 |
"engines": {
|
464 |
"node": ">=6.0.0"
|
465 |
}
|
|
|
467 |
"node_modules/@jridgewell/sourcemap-codec": {
|
468 |
"version": "1.4.15",
|
469 |
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
470 |
+
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
|
|
|
471 |
},
|
472 |
"node_modules/@jridgewell/trace-mapping": {
|
473 |
"version": "0.3.20",
|
474 |
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
|
475 |
"integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
|
|
|
476 |
"dependencies": {
|
477 |
"@jridgewell/resolve-uri": "^3.1.0",
|
478 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
|
|
510 |
}
|
511 |
}
|
512 |
},
|
513 |
+
"node_modules/@mui/base/node_modules/clsx": {
|
514 |
+
"version": "1.2.1",
|
515 |
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
|
516 |
+
"integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
|
517 |
+
"engines": {
|
518 |
+
"node": ">=6"
|
519 |
+
}
|
520 |
+
},
|
521 |
"node_modules/@mui/base/node_modules/react-is": {
|
522 |
"version": "18.2.0",
|
523 |
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
|
|
601 |
}
|
602 |
}
|
603 |
},
|
604 |
+
"node_modules/@mui/material/node_modules/clsx": {
|
605 |
+
"version": "1.2.1",
|
606 |
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
|
607 |
+
"integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
|
608 |
+
"engines": {
|
609 |
+
"node": ">=6"
|
610 |
+
}
|
611 |
+
},
|
612 |
"node_modules/@mui/material/node_modules/react-is": {
|
613 |
"version": "18.2.0",
|
614 |
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
|
|
727 |
}
|
728 |
}
|
729 |
},
|
730 |
+
"node_modules/@mui/system/node_modules/clsx": {
|
731 |
+
"version": "1.2.1",
|
732 |
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
|
733 |
+
"integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
|
734 |
+
"engines": {
|
735 |
+
"node": ">=6"
|
736 |
+
}
|
737 |
+
},
|
738 |
"node_modules/@mui/types": {
|
739 |
"version": "7.2.4",
|
740 |
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz",
|
|
|
983 |
"url": "https://opencollective.com/popperjs"
|
984 |
}
|
985 |
},
|
986 |
+
"node_modules/@radix-ui/react-compose-refs": {
|
987 |
+
"version": "1.0.1",
|
988 |
+
"resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz",
|
989 |
+
"integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==",
|
990 |
+
"dependencies": {
|
991 |
+
"@babel/runtime": "^7.13.10"
|
992 |
+
},
|
993 |
+
"peerDependencies": {
|
994 |
+
"@types/react": "*",
|
995 |
+
"react": "^16.8 || ^17.0 || ^18.0"
|
996 |
+
},
|
997 |
+
"peerDependenciesMeta": {
|
998 |
+
"@types/react": {
|
999 |
+
"optional": true
|
1000 |
+
}
|
1001 |
+
}
|
1002 |
+
},
|
1003 |
+
"node_modules/@radix-ui/react-icons": {
|
1004 |
+
"version": "1.3.0",
|
1005 |
+
"resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
|
1006 |
+
"integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
|
1007 |
+
"peerDependencies": {
|
1008 |
+
"react": "^16.x || ^17.x || ^18.x"
|
1009 |
+
}
|
1010 |
+
},
|
1011 |
+
"node_modules/@radix-ui/react-slot": {
|
1012 |
+
"version": "1.0.2",
|
1013 |
+
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz",
|
1014 |
+
"integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==",
|
1015 |
+
"dependencies": {
|
1016 |
+
"@babel/runtime": "^7.13.10",
|
1017 |
+
"@radix-ui/react-compose-refs": "1.0.1"
|
1018 |
+
},
|
1019 |
+
"peerDependencies": {
|
1020 |
+
"@types/react": "*",
|
1021 |
+
"react": "^16.8 || ^17.0 || ^18.0"
|
1022 |
+
},
|
1023 |
+
"peerDependenciesMeta": {
|
1024 |
+
"@types/react": {
|
1025 |
+
"optional": true
|
1026 |
+
}
|
1027 |
+
}
|
1028 |
+
},
|
1029 |
"node_modules/@rushstack/eslint-patch": {
|
1030 |
"version": "1.2.0",
|
1031 |
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
|
|
|
1263 |
"node_modules/any-promise": {
|
1264 |
"version": "1.3.0",
|
1265 |
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
1266 |
+
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
|
|
|
1267 |
},
|
1268 |
"node_modules/anymatch": {
|
1269 |
"version": "3.1.3",
|
1270 |
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
1271 |
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
|
|
1272 |
"dependencies": {
|
1273 |
"normalize-path": "^3.0.0",
|
1274 |
"picomatch": "^2.0.4"
|
|
|
1280 |
"node_modules/arg": {
|
1281 |
"version": "5.0.2",
|
1282 |
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
1283 |
+
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
|
|
|
1284 |
},
|
1285 |
"node_modules/argparse": {
|
1286 |
"version": "2.0.1",
|
|
|
1479 |
"version": "2.2.0",
|
1480 |
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
1481 |
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
|
|
1482 |
"engines": {
|
1483 |
"node": ">=8"
|
1484 |
}
|
|
|
1600 |
"version": "2.0.1",
|
1601 |
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
1602 |
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
|
|
|
1603 |
"engines": {
|
1604 |
"node": ">= 6"
|
1605 |
}
|
|
|
1642 |
"version": "3.5.3",
|
1643 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
1644 |
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
|
|
|
1645 |
"funding": [
|
1646 |
{
|
1647 |
"type": "individual",
|
|
|
1668 |
"version": "5.1.2",
|
1669 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
1670 |
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
|
|
1671 |
"dependencies": {
|
1672 |
"is-glob": "^4.0.1"
|
1673 |
},
|
|
|
1675 |
"node": ">= 6"
|
1676 |
}
|
1677 |
},
|
1678 |
+
"node_modules/class-variance-authority": {
|
1679 |
+
"version": "0.7.0",
|
1680 |
+
"resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz",
|
1681 |
+
"integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==",
|
1682 |
+
"dependencies": {
|
1683 |
+
"clsx": "2.0.0"
|
1684 |
+
},
|
1685 |
+
"funding": {
|
1686 |
+
"url": "https://joebell.co.uk"
|
1687 |
+
}
|
1688 |
+
},
|
1689 |
"node_modules/client-only": {
|
1690 |
"version": "0.0.1",
|
1691 |
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
|
1692 |
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
|
1693 |
},
|
1694 |
"node_modules/clsx": {
|
1695 |
+
"version": "2.0.0",
|
1696 |
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
|
1697 |
+
"integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
|
1698 |
"engines": {
|
1699 |
"node": ">=6"
|
1700 |
}
|
|
|
1719 |
"version": "4.1.1",
|
1720 |
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
1721 |
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
|
|
1722 |
"engines": {
|
1723 |
"node": ">= 6"
|
1724 |
}
|
|
|
1770 |
"version": "3.0.0",
|
1771 |
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
1772 |
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
|
|
|
1773 |
"bin": {
|
1774 |
"cssesc": "bin/cssesc"
|
1775 |
},
|
|
|
1897 |
"node_modules/didyoumean": {
|
1898 |
"version": "1.2.2",
|
1899 |
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
1900 |
+
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
|
|
|
1901 |
},
|
1902 |
"node_modules/dir-glob": {
|
1903 |
"version": "3.0.1",
|
|
|
1913 |
"node_modules/dlv": {
|
1914 |
"version": "1.1.3",
|
1915 |
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
1916 |
+
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
|
|
|
1917 |
},
|
1918 |
"node_modules/doctrine": {
|
1919 |
"version": "3.0.0",
|
|
|
2707 |
"version": "2.3.3",
|
2708 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
2709 |
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
|
|
2710 |
"hasInstallScript": true,
|
2711 |
"optional": true,
|
2712 |
"os": [
|
|
|
3102 |
"version": "2.1.0",
|
3103 |
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
3104 |
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
|
|
3105 |
"dependencies": {
|
3106 |
"binary-extensions": "^2.0.0"
|
3107 |
},
|
|
|
3420 |
"version": "1.21.0",
|
3421 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
|
3422 |
"integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
|
|
|
3423 |
"bin": {
|
3424 |
"jiti": "bin/jiti.js"
|
3425 |
}
|
|
|
3516 |
"version": "2.1.0",
|
3517 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
3518 |
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
|
|
|
3519 |
"engines": {
|
3520 |
"node": ">=10"
|
3521 |
}
|
|
|
3639 |
"version": "2.7.0",
|
3640 |
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
|
3641 |
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
|
|
|
3642 |
"dependencies": {
|
3643 |
"any-promise": "^1.0.0",
|
3644 |
"object-assign": "^4.0.1",
|
|
|
3753 |
"version": "3.0.0",
|
3754 |
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
3755 |
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
|
|
3756 |
"engines": {
|
3757 |
"node": ">=0.10.0"
|
3758 |
}
|
|
|
3803 |
"version": "3.0.0",
|
3804 |
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
|
3805 |
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
|
|
|
3806 |
"engines": {
|
3807 |
"node": ">= 6"
|
3808 |
}
|
|
|
4080 |
"version": "2.3.0",
|
4081 |
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
4082 |
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
|
|
4083 |
"engines": {
|
4084 |
"node": ">=0.10.0"
|
4085 |
}
|
|
|
4088 |
"version": "4.0.6",
|
4089 |
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
|
4090 |
"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
|
|
|
4091 |
"engines": {
|
4092 |
"node": ">= 6"
|
4093 |
}
|
|
|
4096 |
"version": "8.4.31",
|
4097 |
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
4098 |
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
|
|
4099 |
"funding": [
|
4100 |
{
|
4101 |
"type": "opencollective",
|
|
|
4123 |
"version": "15.1.0",
|
4124 |
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
|
4125 |
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
|
|
|
4126 |
"dependencies": {
|
4127 |
"postcss-value-parser": "^4.0.0",
|
4128 |
"read-cache": "^1.0.0",
|
|
|
4139 |
"version": "4.0.1",
|
4140 |
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
|
4141 |
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
|
|
|
4142 |
"dependencies": {
|
4143 |
"camelcase-css": "^2.0.1"
|
4144 |
},
|
|
|
4157 |
"version": "4.0.1",
|
4158 |
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
|
4159 |
"integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
|
|
|
4160 |
"dependencies": {
|
4161 |
"lilconfig": "^2.0.5",
|
4162 |
"yaml": "^2.1.1"
|
|
|
4185 |
"version": "2.3.4",
|
4186 |
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
|
4187 |
"integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
|
|
|
4188 |
"engines": {
|
4189 |
"node": ">= 14"
|
4190 |
}
|
|
|
4193 |
"version": "6.0.1",
|
4194 |
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
|
4195 |
"integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
|
|
|
4196 |
"dependencies": {
|
4197 |
"postcss-selector-parser": "^6.0.11"
|
4198 |
},
|
|
|
4211 |
"version": "6.0.13",
|
4212 |
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
|
4213 |
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
|
|
|
4214 |
"dependencies": {
|
4215 |
"cssesc": "^3.0.0",
|
4216 |
"util-deprecate": "^1.0.2"
|
|
|
4222 |
"node_modules/postcss-value-parser": {
|
4223 |
"version": "4.2.0",
|
4224 |
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
|
4225 |
+
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
|
|
|
4226 |
},
|
4227 |
"node_modules/prelude-ls": {
|
4228 |
"version": "1.2.1",
|
|
|
4321 |
"version": "1.0.0",
|
4322 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
4323 |
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
|
|
|
4324 |
"dependencies": {
|
4325 |
"pify": "^2.3.0"
|
4326 |
}
|
|
|
4345 |
"version": "3.6.0",
|
4346 |
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
4347 |
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
|
|
4348 |
"dependencies": {
|
4349 |
"picomatch": "^2.2.1"
|
4350 |
},
|
|
|
4353 |
}
|
4354 |
},
|
4355 |
"node_modules/regenerator-runtime": {
|
4356 |
+
"version": "0.14.0",
|
4357 |
+
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
|
4358 |
+
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
|
4359 |
},
|
4360 |
"node_modules/regexp.prototype.flags": {
|
4361 |
"version": "1.5.0",
|
|
|
4795 |
"version": "3.34.0",
|
4796 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
|
4797 |
"integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
|
|
|
4798 |
"dependencies": {
|
4799 |
"@jridgewell/gen-mapping": "^0.3.2",
|
4800 |
"commander": "^4.0.0",
|
|
|
4816 |
"version": "7.1.6",
|
4817 |
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
4818 |
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
|
|
4819 |
"dependencies": {
|
4820 |
"fs.realpath": "^1.0.0",
|
4821 |
"inflight": "^1.0.4",
|
|
|
4868 |
"url": "https://opencollective.com/unts"
|
4869 |
}
|
4870 |
},
|
4871 |
+
"node_modules/tailwind-merge": {
|
4872 |
+
"version": "2.0.0",
|
4873 |
+
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.0.0.tgz",
|
4874 |
+
"integrity": "sha512-WO8qghn9yhsldLSg80au+3/gY9E4hFxIvQ3qOmlpXnqpDKoMruKfi/56BbbMg6fHTQJ9QD3cc79PoWqlaQE4rw==",
|
4875 |
+
"dependencies": {
|
4876 |
+
"@babel/runtime": "^7.23.1"
|
4877 |
+
},
|
4878 |
+
"funding": {
|
4879 |
+
"type": "github",
|
4880 |
+
"url": "https://github.com/sponsors/dcastil"
|
4881 |
+
}
|
4882 |
+
},
|
4883 |
"node_modules/tailwindcss": {
|
4884 |
"version": "3.3.5",
|
4885 |
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz",
|
4886 |
"integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==",
|
|
|
4887 |
"dependencies": {
|
4888 |
"@alloc/quick-lru": "^5.2.0",
|
4889 |
"arg": "^5.0.2",
|
|
|
4916 |
"node": ">=14.0.0"
|
4917 |
}
|
4918 |
},
|
4919 |
+
"node_modules/tailwindcss-animate": {
|
4920 |
+
"version": "1.0.7",
|
4921 |
+
"resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
|
4922 |
+
"integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
|
4923 |
+
"peerDependencies": {
|
4924 |
+
"tailwindcss": ">=3.0.0 || insiders"
|
4925 |
+
}
|
4926 |
+
},
|
4927 |
"node_modules/tapable": {
|
4928 |
"version": "2.2.1",
|
4929 |
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
|
|
|
4941 |
"version": "3.3.1",
|
4942 |
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
|
4943 |
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
|
|
|
4944 |
"dependencies": {
|
4945 |
"any-promise": "^1.0.0"
|
4946 |
}
|
|
|
4949 |
"version": "1.6.0",
|
4950 |
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
|
4951 |
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
|
|
|
4952 |
"dependencies": {
|
4953 |
"thenify": ">= 3.1.0 < 4"
|
4954 |
},
|
|
|
5003 |
"node_modules/ts-interface-checker": {
|
5004 |
"version": "0.1.13",
|
5005 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
5006 |
+
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
|
|
|
5007 |
},
|
5008 |
"node_modules/tsconfig-paths": {
|
5009 |
"version": "3.14.2",
|
package.json
CHANGED
@@ -31,14 +31,20 @@
|
|
31 |
"@huggingface/inference": "2.3.3",
|
32 |
"@mui/icons-material": "5.11.16",
|
33 |
"@mui/material": "5.12.0",
|
|
|
|
|
34 |
"@types/node": "20.1.4",
|
35 |
"@types/react": "18.2.6",
|
36 |
"@types/react-dom": "18.2.4",
|
|
|
|
|
37 |
"eslint": "8.40.0",
|
38 |
"eslint-config-next": "13.4.2",
|
39 |
"next": "13.4.2",
|
40 |
"react": "18.2.0",
|
41 |
"react-dom": "18.2.0",
|
|
|
|
|
42 |
"typescript": "5.0.4"
|
43 |
},
|
44 |
"devDependencies": {
|
|
|
31 |
"@huggingface/inference": "2.3.3",
|
32 |
"@mui/icons-material": "5.11.16",
|
33 |
"@mui/material": "5.12.0",
|
34 |
+
"@radix-ui/react-icons": "^1.3.0",
|
35 |
+
"@radix-ui/react-slot": "^1.0.2",
|
36 |
"@types/node": "20.1.4",
|
37 |
"@types/react": "18.2.6",
|
38 |
"@types/react-dom": "18.2.4",
|
39 |
+
"class-variance-authority": "^0.7.0",
|
40 |
+
"clsx": "^2.0.0",
|
41 |
"eslint": "8.40.0",
|
42 |
"eslint-config-next": "13.4.2",
|
43 |
"next": "13.4.2",
|
44 |
"react": "18.2.0",
|
45 |
"react-dom": "18.2.0",
|
46 |
+
"tailwind-merge": "^2.0.0",
|
47 |
+
"tailwindcss-animate": "^1.0.7",
|
48 |
"typescript": "5.0.4"
|
49 |
},
|
50 |
"devDependencies": {
|
src/components/base/boxes.tsx
DELETED
@@ -1,28 +0,0 @@
|
|
1 |
-
import { Divider, DividerProps, Paper, PaperProps } from "@mui/material";
|
2 |
-
import { styled } from "@mui/material/styles";
|
3 |
-
|
4 |
-
export const SectionBox = styled(Paper)<PaperProps>(({ theme }) => ({
|
5 |
-
display: "flex",
|
6 |
-
padding: 15,
|
7 |
-
paddingTop: 30,
|
8 |
-
paddingBottom: 30,
|
9 |
-
marginBottom: 20,
|
10 |
-
background: `linear-gradient(to bottom right, ${theme.palette.primary.main} 0%, ${theme.palette.secondary.main} 100%)`,
|
11 |
-
}));
|
12 |
-
|
13 |
-
export const HighlightBox = styled(Paper)<PaperProps>(({ theme }) => ({
|
14 |
-
display: "flex",
|
15 |
-
alignItems: "center",
|
16 |
-
justifyContent: "center",
|
17 |
-
padding: 10,
|
18 |
-
borderBottom: `3px solid transparent`,
|
19 |
-
borderImage: `linear-gradient(to bottom right, #b827fc 0%, #2c90fc 25%, #b8fd33 50%, #fec837 75%, #fd1892 100%)`,
|
20 |
-
borderImageSlice: 1,
|
21 |
-
}));
|
22 |
-
|
23 |
-
export const DividerBox = styled(Divider)<DividerProps>(({ theme }) => ({
|
24 |
-
marginTop: 20,
|
25 |
-
marginBottom: 20,
|
26 |
-
background: "transparent",
|
27 |
-
border: "none",
|
28 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/base/code.tsx
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
import { styled } from "@mui/material/styles";
|
2 |
-
import { Paper, PaperProps } from "@mui/material";
|
3 |
-
|
4 |
-
type CodeProps = {
|
5 |
-
children: string;
|
6 |
-
};
|
7 |
-
|
8 |
-
const CodeBox = styled(Paper)<PaperProps>(({ theme }) => ({
|
9 |
-
fontFamily: "monospace",
|
10 |
-
padding: 8,
|
11 |
-
borderTop: `2px solid ${theme.palette.secondary.dark}`,
|
12 |
-
borderBottom: `2px solid ${theme.palette.secondary.dark}`,
|
13 |
-
}));
|
14 |
-
|
15 |
-
export default function Code(props: CodeProps) {
|
16 |
-
const { children } = props;
|
17 |
-
|
18 |
-
return <CodeBox>{children}</CodeBox>;
|
19 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/base/example-button.tsx
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
import { Button, Typography } from "@mui/material";
|
2 |
-
import { MouseEventHandler } from "react";
|
3 |
-
|
4 |
-
interface ExampleButtonProps {
|
5 |
-
text: string;
|
6 |
-
displayLength?: number;
|
7 |
-
onClick?: (text: string) => void;
|
8 |
-
}
|
9 |
-
|
10 |
-
/**
|
11 |
-
*
|
12 |
-
* A button that hosts an example "text" that can be used as the input
|
13 |
-
* to anything to get an inspiration on how to get started.
|
14 |
-
*
|
15 |
-
* @param props ExampleButtonProps
|
16 |
-
* @returns
|
17 |
-
*/
|
18 |
-
export default function ExampleButton(props: ExampleButtonProps) {
|
19 |
-
const { text, displayLength = 50, onClick } = props;
|
20 |
-
|
21 |
-
const displayText =
|
22 |
-
text.slice(0, displayLength) + (text.length > displayLength ? "..." : "");
|
23 |
-
|
24 |
-
const handleClick: MouseEventHandler = event => {
|
25 |
-
event.preventDefault();
|
26 |
-
|
27 |
-
if (onClick) {
|
28 |
-
onClick(text);
|
29 |
-
}
|
30 |
-
};
|
31 |
-
|
32 |
-
return (
|
33 |
-
<Button
|
34 |
-
onClick={handleClick}
|
35 |
-
sx={{ textTransform: "none" }}
|
36 |
-
variant="outlined"
|
37 |
-
>
|
38 |
-
<Typography>{displayText}</Typography>
|
39 |
-
</Button>
|
40 |
-
);
|
41 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/base/options.tsx
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
import { KeyboardArrowDown, KeyboardArrowUp } from "@mui/icons-material";
|
2 |
-
import {
|
3 |
-
Card,
|
4 |
-
CardContent,
|
5 |
-
CardHeader,
|
6 |
-
Collapse,
|
7 |
-
IconButton,
|
8 |
-
Stack,
|
9 |
-
} from "@mui/material";
|
10 |
-
import { ReactElement, useState } from "react";
|
11 |
-
|
12 |
-
type OptionsProps = {
|
13 |
-
children: ReactElement | ReactElement[];
|
14 |
-
opened?: boolean;
|
15 |
-
};
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Define options that are hidden by default
|
19 |
-
*
|
20 |
-
* @param props OptionsProps
|
21 |
-
* @param props.opened boolean - Are the options visible or not (default)
|
22 |
-
*
|
23 |
-
* @returns Options
|
24 |
-
*/
|
25 |
-
export default function Options(props: OptionsProps) {
|
26 |
-
const { children, opened = false } = props;
|
27 |
-
|
28 |
-
const [showOptions, setShowOptions] = useState(opened);
|
29 |
-
|
30 |
-
const handleShowOptions = () => setShowOptions(!showOptions);
|
31 |
-
|
32 |
-
return (
|
33 |
-
<>
|
34 |
-
<Card>
|
35 |
-
<CardHeader
|
36 |
-
title="Options"
|
37 |
-
onClick={handleShowOptions}
|
38 |
-
action={
|
39 |
-
<IconButton aria-label="expand" size="small">
|
40 |
-
{showOptions ? <KeyboardArrowUp /> : <KeyboardArrowDown />}
|
41 |
-
</IconButton>
|
42 |
-
}
|
43 |
-
sx={{
|
44 |
-
cursor: "pointer",
|
45 |
-
}}
|
46 |
-
titleTypographyProps={{ variant: "h6", sx: { fontSize: "1em" } }}
|
47 |
-
/>
|
48 |
-
<Collapse in={showOptions}>
|
49 |
-
<CardContent>
|
50 |
-
<Stack spacing={2}>{children}</Stack>
|
51 |
-
</CardContent>
|
52 |
-
</Collapse>
|
53 |
-
</Card>
|
54 |
-
</>
|
55 |
-
);
|
56 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/base/secret.tsx
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
import {
|
2 |
-
IconButton,
|
3 |
-
InputAdornment,
|
4 |
-
TextField,
|
5 |
-
TextFieldProps,
|
6 |
-
} from "@mui/material";
|
7 |
-
import { useState } from "react";
|
8 |
-
import { Visibility, VisibilityOff } from "@mui/icons-material";
|
9 |
-
|
10 |
-
export default function Secret(props: TextFieldProps) {
|
11 |
-
const { name = "secret", label = "Secret" } = props;
|
12 |
-
const [showSecret, setShowSecret] = useState(false);
|
13 |
-
|
14 |
-
const handleShowSecret = () => setShowSecret(!showSecret);
|
15 |
-
|
16 |
-
return (
|
17 |
-
<TextField
|
18 |
-
variant="filled"
|
19 |
-
label={label}
|
20 |
-
name={name}
|
21 |
-
type={showSecret ? "text" : "password"}
|
22 |
-
InputProps={{
|
23 |
-
endAdornment: (
|
24 |
-
<InputAdornment position="end">
|
25 |
-
<IconButton onClick={handleShowSecret}>
|
26 |
-
{showSecret ? <Visibility /> : <VisibilityOff />}
|
27 |
-
</IconButton>
|
28 |
-
</InputAdornment>
|
29 |
-
),
|
30 |
-
}}
|
31 |
-
/>
|
32 |
-
);
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/base/slider-with-label.tsx
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
import {
|
2 |
-
Box,
|
3 |
-
FormControlLabel,
|
4 |
-
Slider,
|
5 |
-
SliderProps,
|
6 |
-
Typography,
|
7 |
-
} from "@mui/material";
|
8 |
-
|
9 |
-
type SliderWithLabelProps = SliderProps & {
|
10 |
-
label?: string;
|
11 |
-
};
|
12 |
-
|
13 |
-
export default function SliderWithLabel(props: SliderWithLabelProps) {
|
14 |
-
const { label = "", valueLabelDisplay = "auto" } = props;
|
15 |
-
|
16 |
-
return (
|
17 |
-
<Box>
|
18 |
-
<Typography variant="subtitle1">{label}</Typography>
|
19 |
-
<Slider {...props} valueLabelDisplay={valueLabelDisplay} />
|
20 |
-
</Box>
|
21 |
-
);
|
22 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/example-components.tsx
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
import { Box, Stack, Typography } from "@mui/material";
|
2 |
-
import Huggingface from "./huggingface/huggingface";
|
3 |
-
import { DividerBox, HighlightBox, SectionBox } from "./base/boxes";
|
4 |
-
import { UnderConstruction } from "./under-construction";
|
5 |
-
|
6 |
-
export default function ExampleComponents() {
|
7 |
-
return (
|
8 |
-
<>
|
9 |
-
<SectionBox>
|
10 |
-
<Stack spacing={2}>
|
11 |
-
<Typography component="h2" variant="h3">
|
12 |
-
Components
|
13 |
-
</Typography>
|
14 |
-
|
15 |
-
<Typography variant="body1">
|
16 |
-
Unsure where to begin? Our pre-built components offer a jumpstart
|
17 |
-
for your ML demo π
|
18 |
-
</Typography>
|
19 |
-
</Stack>
|
20 |
-
</SectionBox>
|
21 |
-
|
22 |
-
<Huggingface />
|
23 |
-
|
24 |
-
<DividerBox />
|
25 |
-
|
26 |
-
<Stack spacing={4}>
|
27 |
-
<HighlightBox>
|
28 |
-
<Typography variant="h4">More comming soon!</Typography>
|
29 |
-
</HighlightBox>
|
30 |
-
|
31 |
-
<UnderConstruction />
|
32 |
-
</Stack>
|
33 |
-
</>
|
34 |
-
);
|
35 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/footer.tsx
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
import Box from "@mui/material/Box";
|
2 |
-
import Image from "next/image";
|
3 |
-
import { Divider, Link } from "@mui/material";
|
4 |
-
|
5 |
-
const Footer = () => {
|
6 |
-
return (
|
7 |
-
<Box
|
8 |
-
component="footer"
|
9 |
-
sx={{
|
10 |
-
display: "flex",
|
11 |
-
justifyContent: "center",
|
12 |
-
gap: 1,
|
13 |
-
alignItems: "center",
|
14 |
-
mt: 8,
|
15 |
-
mb: 4,
|
16 |
-
}}
|
17 |
-
>
|
18 |
-
<Link
|
19 |
-
href="https://failfa.st"
|
20 |
-
display="flex"
|
21 |
-
alignItems="center"
|
22 |
-
rel="noopener"
|
23 |
-
target="_blank"
|
24 |
-
>
|
25 |
-
<Box sx={{ mr: 0.5 }}>Powered by</Box>{" "}
|
26 |
-
<Image src="/failfast.svg" alt="failfast Logo" width="32" height="32" />
|
27 |
-
</Link>
|
28 |
-
</Box>
|
29 |
-
);
|
30 |
-
};
|
31 |
-
|
32 |
-
export default Footer;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/getting-started.tsx
DELETED
@@ -1,150 +0,0 @@
|
|
1 |
-
import {
|
2 |
-
Button,
|
3 |
-
Grid,
|
4 |
-
Link,
|
5 |
-
List,
|
6 |
-
ListItem,
|
7 |
-
ListItemIcon,
|
8 |
-
ListItemText,
|
9 |
-
ListSubheader,
|
10 |
-
Paper,
|
11 |
-
Stack,
|
12 |
-
Typography,
|
13 |
-
} from "@mui/material";
|
14 |
-
|
15 |
-
import ViewQuiltIcon from "@mui/icons-material/ViewQuilt";
|
16 |
-
import SailingIcon from "@mui/icons-material/Sailing";
|
17 |
-
import LightModeIcon from "@mui/icons-material/LightMode";
|
18 |
-
import SentimentVerySatisfiedIcon from "@mui/icons-material/SentimentVerySatisfied";
|
19 |
-
import ContentCopyIcon from "@mui/icons-material/ContentCopy";
|
20 |
-
import LinkIcon from "@mui/icons-material/Link";
|
21 |
-
import SyncIcon from "@mui/icons-material/Sync";
|
22 |
-
import { HighlightBox } from "./base/boxes";
|
23 |
-
|
24 |
-
export default function GettingStarted() {
|
25 |
-
return (
|
26 |
-
<>
|
27 |
-
<Grid container spacing={2} sx={{ justifyContent: "center" }}>
|
28 |
-
<Grid item sm={8} lg={6}>
|
29 |
-
<Paper sx={{ p: 2 }}>
|
30 |
-
<List disablePadding>
|
31 |
-
<ListSubheader sx={{ fontSize: "1.5em" }}>Features</ListSubheader>
|
32 |
-
|
33 |
-
<ListItem>
|
34 |
-
<ListItemIcon>
|
35 |
-
<SentimentVerySatisfiedIcon />
|
36 |
-
</ListItemIcon>
|
37 |
-
<ListItemText>
|
38 |
-
<Link
|
39 |
-
href="https://huggingface.co/docs/huggingface.js/index"
|
40 |
-
target="_blank"
|
41 |
-
rel="noopener"
|
42 |
-
>
|
43 |
-
huggingface.js
|
44 |
-
</Link>{" "}
|
45 |
-
components (WIP)
|
46 |
-
</ListItemText>
|
47 |
-
</ListItem>
|
48 |
-
|
49 |
-
<ListItem>
|
50 |
-
<ListItemIcon>
|
51 |
-
<LinkIcon />
|
52 |
-
</ListItemIcon>
|
53 |
-
<ListItemText>
|
54 |
-
<Link
|
55 |
-
href="https://js.langchain.com/docs"
|
56 |
-
target="_blank"
|
57 |
-
rel="noopener"
|
58 |
-
>
|
59 |
-
langchain.js
|
60 |
-
</Link>{" "}
|
61 |
-
and{" "}
|
62 |
-
<Link
|
63 |
-
href="https://github.com/failfa-st/hyv"
|
64 |
-
target="_blank"
|
65 |
-
rel="noopener"
|
66 |
-
>
|
67 |
-
hyv
|
68 |
-
</Link>{" "}
|
69 |
-
components (comming soon)
|
70 |
-
</ListItemText>
|
71 |
-
</ListItem>
|
72 |
-
|
73 |
-
<ListItem>
|
74 |
-
<ListItemIcon>
|
75 |
-
<ViewQuiltIcon />
|
76 |
-
</ListItemIcon>
|
77 |
-
<ListItemText>
|
78 |
-
Rapid prototyping with{" "}
|
79 |
-
<Link
|
80 |
-
href="https://mui.com/material-ui/getting-started/overview/"
|
81 |
-
target="_blank"
|
82 |
-
rel="noopener"
|
83 |
-
>
|
84 |
-
MUI
|
85 |
-
</Link>
|
86 |
-
</ListItemText>
|
87 |
-
</ListItem>
|
88 |
-
<ListItem>
|
89 |
-
<ListItemIcon>
|
90 |
-
<LightModeIcon />
|
91 |
-
</ListItemIcon>
|
92 |
-
<ListItemText>
|
93 |
-
Dark / light theme based on system preferences
|
94 |
-
</ListItemText>
|
95 |
-
</ListItem>
|
96 |
-
<ListItem>
|
97 |
-
<ListItemIcon>
|
98 |
-
<SyncIcon />
|
99 |
-
</ListItemIcon>
|
100 |
-
<ListItemText>
|
101 |
-
Sync your GitHub repository with your π€ Space
|
102 |
-
</ListItemText>
|
103 |
-
</ListItem>
|
104 |
-
<ListItem>
|
105 |
-
<ListItemIcon>
|
106 |
-
<SailingIcon />
|
107 |
-
</ListItemIcon>
|
108 |
-
<ListItemText>Runs in Docker or localhost</ListItemText>
|
109 |
-
</ListItem>
|
110 |
-
</List>
|
111 |
-
</Paper>
|
112 |
-
</Grid>
|
113 |
-
|
114 |
-
<Grid item sm={4} lg={3}>
|
115 |
-
<Stack gap={2}>
|
116 |
-
<Paper sx={{ p: 2 }}>
|
117 |
-
<Typography variant="body1">
|
118 |
-
Explore the{" "}
|
119 |
-
<Link
|
120 |
-
href="https://huggingface.co/spaces/failfast/nextjs-docker-starter/blob/main/README.md"
|
121 |
-
target="_blank"
|
122 |
-
rel="noopener"
|
123 |
-
>
|
124 |
-
README
|
125 |
-
</Link>{" "}
|
126 |
-
for a comprehensive guide on local development, Docker
|
127 |
-
utilization, secret management, and GitHub-based Space control.
|
128 |
-
</Typography>
|
129 |
-
</Paper>
|
130 |
-
|
131 |
-
<Paper sx={{ p: 2 }}>
|
132 |
-
<Typography variant="body1">
|
133 |
-
Have feedback or ideas?{" "}
|
134 |
-
<Link
|
135 |
-
href="https://huggingface.co/spaces/failfast/nextjs-docker-starter/discussions"
|
136 |
-
target="_blank"
|
137 |
-
rel="noopener"
|
138 |
-
>
|
139 |
-
We're eager to hear from you!
|
140 |
-
</Link>{" "}
|
141 |
-
As an open-source project in its early stages, your input can
|
142 |
-
significantly shape our development.
|
143 |
-
</Typography>
|
144 |
-
</Paper>
|
145 |
-
</Stack>
|
146 |
-
</Grid>
|
147 |
-
</Grid>
|
148 |
-
</>
|
149 |
-
);
|
150 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/huggingface/huggingface.tsx
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
import { Alert, Link, Typography } from "@mui/material";
|
2 |
-
import { HfInference } from "@huggingface/inference";
|
3 |
-
import { useEffect } from "react";
|
4 |
-
import Summarization from "./inference/summarization";
|
5 |
-
import { HighlightBox } from "../base/boxes";
|
6 |
-
import Code from "../base/code";
|
7 |
-
|
8 |
-
export type InferenceProps = {
|
9 |
-
token?: string;
|
10 |
-
model: string;
|
11 |
-
};
|
12 |
-
|
13 |
-
export default function Huggingface() {
|
14 |
-
return (
|
15 |
-
<>
|
16 |
-
<HighlightBox>
|
17 |
-
<Typography component="h4" variant="h4">
|
18 |
-
huggingface.js
|
19 |
-
</Typography>
|
20 |
-
</HighlightBox>
|
21 |
-
|
22 |
-
<Typography variant="body1">
|
23 |
-
<Link
|
24 |
-
href="https://huggingface.co/docs/huggingface.js/index"
|
25 |
-
target="_blank"
|
26 |
-
rel="noopener"
|
27 |
-
>
|
28 |
-
huggingface.js
|
29 |
-
</Link>{" "}
|
30 |
-
is a suite of JavaScript libraries that interact with the Hugging Face
|
31 |
-
API. It enables the use of over 100,000 ML models or your own via the{" "}
|
32 |
-
<Link
|
33 |
-
href="https://huggingface.co/docs/inference-endpoints/index"
|
34 |
-
target="_blank"
|
35 |
-
rel="noopener"
|
36 |
-
>
|
37 |
-
Inference API
|
38 |
-
</Link>
|
39 |
-
, and supports managing Hugging Face repositories.
|
40 |
-
</Typography>
|
41 |
-
|
42 |
-
<Alert severity="info">
|
43 |
-
When you run into rate limits while using the components, make sure to
|
44 |
-
add your π€ access token (optained via your{" "}
|
45 |
-
<Link
|
46 |
-
href="https://huggingface.co/settings/tokens"
|
47 |
-
target="_blank"
|
48 |
-
rel="noopener"
|
49 |
-
>
|
50 |
-
account settings
|
51 |
-
</Link>
|
52 |
-
) into `HF Access Token` under "Options".
|
53 |
-
</Alert>
|
54 |
-
|
55 |
-
<Typography component="h5" variant="h5">
|
56 |
-
Summarization
|
57 |
-
</Typography>
|
58 |
-
|
59 |
-
<Code>{`<Summarization model="facebook/bart-large-cnn" maxLength={100} />`}</Code>
|
60 |
-
|
61 |
-
<Summarization model="facebook/bart-large-cnn" maxLength={100} />
|
62 |
-
</>
|
63 |
-
);
|
64 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/huggingface/inference/summarization.tsx
DELETED
@@ -1,190 +0,0 @@
|
|
1 |
-
import {
|
2 |
-
Alert,
|
3 |
-
Box,
|
4 |
-
Button,
|
5 |
-
CircularProgress,
|
6 |
-
Paper,
|
7 |
-
Slider,
|
8 |
-
Stack,
|
9 |
-
TextField,
|
10 |
-
Typography,
|
11 |
-
} from "@mui/material";
|
12 |
-
import { useEffect, useRef, useState } from "react";
|
13 |
-
import { HfInference, SummarizationArgs } from "@huggingface/inference";
|
14 |
-
import { InferenceProps } from "../huggingface";
|
15 |
-
import Options from "@/components/base/options";
|
16 |
-
import SliderWithLabel from "@/components/base/slider-with-label";
|
17 |
-
import ExampleButton from "@/components/base/example-button";
|
18 |
-
import Secret from "@/components/base/secret";
|
19 |
-
|
20 |
-
type SummarizationProps = InferenceProps & {
|
21 |
-
/**
|
22 |
-
* (Default: None). Integer to define the maximum length in tokens of the output summary.
|
23 |
-
*/
|
24 |
-
maxLength?: number;
|
25 |
-
/**
|
26 |
-
* (Default: None). Float (0-120.0). The amount of time in seconds that the query should take maximum. Network can cause some overhead so it will be a soft limit.
|
27 |
-
*/
|
28 |
-
maxTime?: number;
|
29 |
-
/**
|
30 |
-
* (Default: None). Integer to define the minimum length in tokens of the output summary.
|
31 |
-
*/
|
32 |
-
minLength?: number;
|
33 |
-
/**
|
34 |
-
* (Default: None). Float (0.0-100.0). The more a token is used within generation the more it is penalized to not be picked in successive generation passes.
|
35 |
-
*/
|
36 |
-
repetitionPenalty?: number;
|
37 |
-
/**
|
38 |
-
* (Default: 1.0). Float (0.0-100.0). The temperature of the sampling operation. 1 means regular sampling, 0 means always take the highest score, 100.0 is getting closer to uniform probability.
|
39 |
-
*/
|
40 |
-
temperature?: number;
|
41 |
-
/**
|
42 |
-
* (Default: None). Integer to define the top tokens considered within the sample operation to create new text.
|
43 |
-
*/
|
44 |
-
topK?: number;
|
45 |
-
/**
|
46 |
-
* (Default: None). Float to define the tokens that are within the sample operation of text generation. Add tokens in the sample for more probable to least probable until the sum of the probabilities is greater than top_p.
|
47 |
-
*/
|
48 |
-
topP?: number;
|
49 |
-
};
|
50 |
-
|
51 |
-
export default function Summarization(props: SummarizationProps) {
|
52 |
-
const {
|
53 |
-
model,
|
54 |
-
maxLength,
|
55 |
-
maxTime,
|
56 |
-
minLength,
|
57 |
-
repetitionPenalty,
|
58 |
-
temperature,
|
59 |
-
topK,
|
60 |
-
topP,
|
61 |
-
} = props;
|
62 |
-
|
63 |
-
const [token, setToken] = useState<string>("");
|
64 |
-
const [inputText, setInputText] = useState<string>("");
|
65 |
-
const [summary, setSummary] = useState<string>("");
|
66 |
-
const [error, setError] = useState<string>("");
|
67 |
-
const [loading, setLoading] = useState(false);
|
68 |
-
|
69 |
-
const inference = useRef<HfInference | null>(null);
|
70 |
-
|
71 |
-
useEffect(() => {
|
72 |
-
inference.current = new HfInference(token);
|
73 |
-
}, [token]);
|
74 |
-
|
75 |
-
// Parse the data of the form and trigger "call"
|
76 |
-
const handleSubmit = (event: any) => {
|
77 |
-
event.preventDefault();
|
78 |
-
const data = new FormData(event.currentTarget);
|
79 |
-
|
80 |
-
setToken(data.get("token") as string);
|
81 |
-
|
82 |
-
const text = data.get("text") as string;
|
83 |
-
const max_length = Number(data.get("maxLength") as string);
|
84 |
-
|
85 |
-
call({ model, inputs: text, parameters: { max_length } });
|
86 |
-
};
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Call the inference API using args
|
90 |
-
*/
|
91 |
-
const call = async (args: SummarizationArgs) => {
|
92 |
-
const { inputs, parameters } = args;
|
93 |
-
|
94 |
-
try {
|
95 |
-
setLoading(true);
|
96 |
-
|
97 |
-
const response = await inference.current?.summarization({
|
98 |
-
model,
|
99 |
-
inputs,
|
100 |
-
parameters,
|
101 |
-
});
|
102 |
-
|
103 |
-
setSummary(response?.summary_text as string);
|
104 |
-
setError("");
|
105 |
-
} catch (error) {
|
106 |
-
if (error instanceof Error) {
|
107 |
-
setError(error.message);
|
108 |
-
} else {
|
109 |
-
setError("An unknown error occurred");
|
110 |
-
}
|
111 |
-
}
|
112 |
-
|
113 |
-
setLoading(false);
|
114 |
-
};
|
115 |
-
|
116 |
-
return (
|
117 |
-
<>
|
118 |
-
<Paper component="form" onSubmit={handleSubmit} sx={{ padding: "1em" }}>
|
119 |
-
<Stack spacing={2}>
|
120 |
-
<TextField
|
121 |
-
variant="filled"
|
122 |
-
label="Text to summarize"
|
123 |
-
multiline
|
124 |
-
required
|
125 |
-
minRows={4}
|
126 |
-
name="text"
|
127 |
-
value={inputText}
|
128 |
-
onChange={e => setInputText(e.target.value)}
|
129 |
-
/>
|
130 |
-
|
131 |
-
<Button type="submit" variant="contained" disabled={loading}>
|
132 |
-
Run{" "}
|
133 |
-
{loading && (
|
134 |
-
<CircularProgress
|
135 |
-
size={24}
|
136 |
-
sx={{
|
137 |
-
position: "absolute",
|
138 |
-
top: "50%",
|
139 |
-
left: "50%",
|
140 |
-
marginTop: "-12px",
|
141 |
-
marginLeft: "-12px",
|
142 |
-
}}
|
143 |
-
/>
|
144 |
-
)}
|
145 |
-
</Button>
|
146 |
-
|
147 |
-
{error && <Alert severity="error">{error}</Alert>}
|
148 |
-
|
149 |
-
<TextField
|
150 |
-
variant="outlined"
|
151 |
-
label="Summary"
|
152 |
-
multiline
|
153 |
-
minRows={2}
|
154 |
-
name="text"
|
155 |
-
value={summary}
|
156 |
-
/>
|
157 |
-
|
158 |
-
<Options>
|
159 |
-
<Secret name="token" label="HF Access Token" />
|
160 |
-
|
161 |
-
<SliderWithLabel
|
162 |
-
label="max_length"
|
163 |
-
name="maxLength"
|
164 |
-
aria-label="max length"
|
165 |
-
defaultValue={maxLength}
|
166 |
-
step={1}
|
167 |
-
min={56}
|
168 |
-
max={256}
|
169 |
-
/>
|
170 |
-
</Options>
|
171 |
-
|
172 |
-
<Typography variant="h6" sx={{ fontSize: "1em" }}>
|
173 |
-
Examples
|
174 |
-
</Typography>
|
175 |
-
<Stack direction="row" spacing={2}>
|
176 |
-
<ExampleButton
|
177 |
-
text="The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct."
|
178 |
-
onClick={setInputText}
|
179 |
-
/>
|
180 |
-
|
181 |
-
<ExampleButton
|
182 |
-
text="Machine learning (ML) is a field devoted to understanding and building methods that let machines 'learn' β that is, methods that leverage data to improve computer performance on some set of tasks. Machine learning algorithms build a model based on sample data, known as training data, in order to make predictions or decisions without being explicitly programmed to do so. Machine learning algorithms are used in a wide variety of applications, such as in medicine, email filtering, speech recognition, agriculture, and computer vision, where it is difficult or unfeasible to develop conventional algorithms to perform the needed tasks."
|
183 |
-
onClick={setInputText}
|
184 |
-
/>
|
185 |
-
</Stack>
|
186 |
-
</Stack>
|
187 |
-
</Paper>
|
188 |
-
</>
|
189 |
-
);
|
190 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/title.tsx
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
import { Button, Link, Paper, Stack, Typography } from "@mui/material";
|
2 |
-
import { HighlightBox } from "./base/boxes";
|
3 |
-
import ContentCopyIcon from "@mui/icons-material/ContentCopy";
|
4 |
-
|
5 |
-
export default function Title() {
|
6 |
-
return (
|
7 |
-
<Stack
|
8 |
-
spacing={4}
|
9 |
-
sx={{
|
10 |
-
justifyContent: "center",
|
11 |
-
alignItems: "center",
|
12 |
-
minHeight: "40vh",
|
13 |
-
p: 4,
|
14 |
-
}}
|
15 |
-
>
|
16 |
-
<Typography variant="h1" component="h1">
|
17 |
-
<Link
|
18 |
-
href="https://nextjs.org"
|
19 |
-
target="_blank"
|
20 |
-
rel="noopener noreferrer"
|
21 |
-
>
|
22 |
-
Next.js
|
23 |
-
</Link>{" "}
|
24 |
-
on π€{" "}
|
25 |
-
<Link
|
26 |
-
href="https://huggingface.co/spaces"
|
27 |
-
target="_blank"
|
28 |
-
rel="noopener noreferrer"
|
29 |
-
>
|
30 |
-
Spaces
|
31 |
-
</Link>
|
32 |
-
</Typography>
|
33 |
-
|
34 |
-
<HighlightBox>
|
35 |
-
<Typography variant="h5" component="p">
|
36 |
-
Run your ML demo with ease in a Next.js environment
|
37 |
-
</Typography>
|
38 |
-
</HighlightBox>
|
39 |
-
|
40 |
-
<Stack gap={2} direction="row">
|
41 |
-
<Button
|
42 |
-
startIcon={<ContentCopyIcon />}
|
43 |
-
variant="contained"
|
44 |
-
href="https://huggingface.co/spaces/failfast/nextjs-docker-starter?duplicate=true"
|
45 |
-
target="_blank"
|
46 |
-
rel="noopener"
|
47 |
-
color="secondary"
|
48 |
-
>
|
49 |
-
Duplicate space
|
50 |
-
</Button>
|
51 |
-
|
52 |
-
<Button
|
53 |
-
href="https://github.com/failfa-st/nextjs-docker-starter"
|
54 |
-
target="_blank"
|
55 |
-
rel="noopener"
|
56 |
-
>
|
57 |
-
Contribute on GitHub
|
58 |
-
</Button>
|
59 |
-
</Stack>
|
60 |
-
</Stack>
|
61 |
-
);
|
62 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/components/ui/button.tsx
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as React from "react"
|
2 |
+
import { Slot } from "@radix-ui/react-slot"
|
3 |
+
import { cva, type VariantProps } from "class-variance-authority"
|
4 |
+
|
5 |
+
import { cn } from "@/lib/utils"
|
6 |
+
|
7 |
+
const buttonVariants = cva(
|
8 |
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
9 |
+
{
|
10 |
+
variants: {
|
11 |
+
variant: {
|
12 |
+
default:
|
13 |
+
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
14 |
+
destructive:
|
15 |
+
"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
16 |
+
outline:
|
17 |
+
"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground",
|
18 |
+
secondary:
|
19 |
+
"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
20 |
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
21 |
+
link: "text-primary underline-offset-4 hover:underline",
|
22 |
+
},
|
23 |
+
size: {
|
24 |
+
default: "h-9 px-4 py-2",
|
25 |
+
sm: "h-8 rounded-md px-3 text-xs",
|
26 |
+
lg: "h-10 rounded-md px-8",
|
27 |
+
icon: "h-9 w-9",
|
28 |
+
},
|
29 |
+
},
|
30 |
+
defaultVariants: {
|
31 |
+
variant: "default",
|
32 |
+
size: "default",
|
33 |
+
},
|
34 |
+
}
|
35 |
+
)
|
36 |
+
|
37 |
+
export interface ButtonProps
|
38 |
+
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
39 |
+
VariantProps<typeof buttonVariants> {
|
40 |
+
asChild?: boolean
|
41 |
+
}
|
42 |
+
|
43 |
+
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
44 |
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
45 |
+
const Comp = asChild ? Slot : "button"
|
46 |
+
return (
|
47 |
+
<Comp
|
48 |
+
className={cn(buttonVariants({ variant, size, className }))}
|
49 |
+
ref={ref}
|
50 |
+
{...props}
|
51 |
+
/>
|
52 |
+
)
|
53 |
+
}
|
54 |
+
)
|
55 |
+
Button.displayName = "Button"
|
56 |
+
|
57 |
+
export { Button, buttonVariants }
|
src/components/ui/input.tsx
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as React from "react"
|
2 |
+
|
3 |
+
import { cn } from "@/lib/utils"
|
4 |
+
|
5 |
+
export interface InputProps
|
6 |
+
extends React.InputHTMLAttributes<HTMLInputElement> {}
|
7 |
+
|
8 |
+
const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
9 |
+
({ className, type, ...props }, ref) => {
|
10 |
+
return (
|
11 |
+
<input
|
12 |
+
type={type}
|
13 |
+
className={cn(
|
14 |
+
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
15 |
+
className
|
16 |
+
)}
|
17 |
+
ref={ref}
|
18 |
+
{...props}
|
19 |
+
/>
|
20 |
+
)
|
21 |
+
}
|
22 |
+
)
|
23 |
+
Input.displayName = "Input"
|
24 |
+
|
25 |
+
export { Input }
|
src/components/under-construction.tsx
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
import { styled } from "@mui/material/styles";
|
2 |
-
|
3 |
-
export const UnderConstruction = styled("div")({
|
4 |
-
width: "100%",
|
5 |
-
height: "266px",
|
6 |
-
backgroundRepeat: "round",
|
7 |
-
backgroundImage: `url("data:image/gif;base64,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")`,
|
8 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/lib/utils.ts
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { type ClassValue, clsx } from "clsx"
|
2 |
+
import { twMerge } from "tailwind-merge"
|
3 |
+
|
4 |
+
export function cn(...inputs: ClassValue[]) {
|
5 |
+
return twMerge(clsx(inputs))
|
6 |
+
}
|
src/pages/global.css
CHANGED
@@ -1,3 +1,76 @@
|
|
1 |
@tailwind base;
|
2 |
@tailwind components;
|
3 |
-
@tailwind utilities;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
@tailwind base;
|
2 |
@tailwind components;
|
3 |
+
@tailwind utilities;
|
4 |
+
|
5 |
+
@layer base {
|
6 |
+
:root {
|
7 |
+
--background: 0 0% 100%;
|
8 |
+
--foreground: 224 71.4% 4.1%;
|
9 |
+
|
10 |
+
--card: 0 0% 100%;
|
11 |
+
--card-foreground: 224 71.4% 4.1%;
|
12 |
+
|
13 |
+
--popover: 0 0% 100%;
|
14 |
+
--popover-foreground: 224 71.4% 4.1%;
|
15 |
+
|
16 |
+
--primary: 220.9 39.3% 11%;
|
17 |
+
--primary-foreground: 210 20% 98%;
|
18 |
+
|
19 |
+
--secondary: 220 14.3% 95.9%;
|
20 |
+
--secondary-foreground: 220.9 39.3% 11%;
|
21 |
+
|
22 |
+
--muted: 220 14.3% 95.9%;
|
23 |
+
--muted-foreground: 220 8.9% 46.1%;
|
24 |
+
|
25 |
+
--accent: 220 14.3% 95.9%;
|
26 |
+
--accent-foreground: 220.9 39.3% 11%;
|
27 |
+
|
28 |
+
--destructive: 0 84.2% 60.2%;
|
29 |
+
--destructive-foreground: 210 20% 98%;
|
30 |
+
|
31 |
+
--border: 220 13% 91%;
|
32 |
+
--input: 220 13% 91%;
|
33 |
+
--ring: 224 71.4% 4.1%;
|
34 |
+
|
35 |
+
--radius: 0.5rem;
|
36 |
+
}
|
37 |
+
|
38 |
+
.dark {
|
39 |
+
--background: 224 71.4% 4.1%;
|
40 |
+
--foreground: 210 20% 98%;
|
41 |
+
|
42 |
+
--card: 224 71.4% 4.1%;
|
43 |
+
--card-foreground: 210 20% 98%;
|
44 |
+
|
45 |
+
--popover: 224 71.4% 4.1%;
|
46 |
+
--popover-foreground: 210 20% 98%;
|
47 |
+
|
48 |
+
--primary: 210 20% 98%;
|
49 |
+
--primary-foreground: 220.9 39.3% 11%;
|
50 |
+
|
51 |
+
--secondary: 215 27.9% 16.9%;
|
52 |
+
--secondary-foreground: 210 20% 98%;
|
53 |
+
|
54 |
+
--muted: 215 27.9% 16.9%;
|
55 |
+
--muted-foreground: 217.9 10.6% 64.9%;
|
56 |
+
|
57 |
+
--accent: 215 27.9% 16.9%;
|
58 |
+
--accent-foreground: 210 20% 98%;
|
59 |
+
|
60 |
+
--destructive: 0 62.8% 30.6%;
|
61 |
+
--destructive-foreground: 210 20% 98%;
|
62 |
+
|
63 |
+
--border: 215 27.9% 16.9%;
|
64 |
+
--input: 215 27.9% 16.9%;
|
65 |
+
--ring: 216 12.2% 83.9%;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
@layer base {
|
70 |
+
* {
|
71 |
+
@apply border-border;
|
72 |
+
}
|
73 |
+
body {
|
74 |
+
@apply bg-background text-foreground;
|
75 |
+
}
|
76 |
+
}
|
src/pages/index.tsx
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
import Head from "next/head";
|
2 |
import Link from "next/link";
|
3 |
import { useState } from "react";
|
4 |
-
import {
|
5 |
-
import
|
6 |
export default function Home() {
|
7 |
const [file,setFile] = useState(null);
|
8 |
const [result,setResult] = useState('');
|
@@ -28,11 +28,12 @@ export default function Home() {
|
|
28 |
<h1 className='text-gray-400 text-5xl md:text-7xl font-bold'>Here <span className='text-blue-600 dark:text-blue-500'> .Chat</span></h1>
|
29 |
</div>
|
30 |
<div className=''>
|
31 |
-
<div className="">
|
32 |
-
<
|
33 |
-
|
34 |
-
|
35 |
-
|
|
|
36 |
</div>
|
37 |
</div>
|
38 |
</div>
|
|
|
1 |
import Head from "next/head";
|
2 |
import Link from "next/link";
|
3 |
import { useState } from "react";
|
4 |
+
import { Button } from "@/components/ui/button";
|
5 |
+
import { Input } from "@/components/ui/input";
|
6 |
export default function Home() {
|
7 |
const [file,setFile] = useState(null);
|
8 |
const [result,setResult] = useState('');
|
|
|
28 |
<h1 className='text-gray-400 text-5xl md:text-7xl font-bold'>Here <span className='text-blue-600 dark:text-blue-500'> .Chat</span></h1>
|
29 |
</div>
|
30 |
<div className=''>
|
31 |
+
<div className="flex gap-2">
|
32 |
+
<div className="">
|
33 |
+
<Input type='file' onChange={handleFileChange}/>
|
34 |
+
<p className="mt-1 text-sm text-gray-500 dark:text-gray-300" id="file_input_help">SVG, PNG, JPG or GIF (MAX. 800x400px).</p>
|
35 |
+
</div>
|
36 |
+
<Button className='border-2 border-blue-500 bg-white text-blue-500 font-bold hover:text-white hover:bg-blue-500'>Submit</Button>
|
37 |
</div>
|
38 |
</div>
|
39 |
</div>
|
tailwind.config.js
CHANGED
@@ -1,15 +1,76 @@
|
|
1 |
/** @type {import('tailwindcss').Config} */
|
2 |
module.exports = {
|
|
|
3 |
content: [
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
"./src/**/*.{js,ts,jsx,tsx,mdx}",
|
10 |
-
],
|
11 |
theme: {
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
},
|
14 |
-
plugins: [],
|
15 |
-
}
|
|
|
1 |
/** @type {import('tailwindcss').Config} */
|
2 |
module.exports = {
|
3 |
+
darkMode: ["class"],
|
4 |
content: [
|
5 |
+
'./pages/**/*.{ts,tsx}',
|
6 |
+
'./components/**/*.{ts,tsx}',
|
7 |
+
'./app/**/*.{ts,tsx}',
|
8 |
+
'./src/**/*.{ts,tsx}',
|
9 |
+
],
|
|
|
|
|
10 |
theme: {
|
11 |
+
container: {
|
12 |
+
center: true,
|
13 |
+
padding: "2rem",
|
14 |
+
screens: {
|
15 |
+
"2xl": "1400px",
|
16 |
+
},
|
17 |
+
},
|
18 |
+
extend: {
|
19 |
+
colors: {
|
20 |
+
border: "hsl(var(--border))",
|
21 |
+
input: "hsl(var(--input))",
|
22 |
+
ring: "hsl(var(--ring))",
|
23 |
+
background: "hsl(var(--background))",
|
24 |
+
foreground: "hsl(var(--foreground))",
|
25 |
+
primary: {
|
26 |
+
DEFAULT: "hsl(var(--primary))",
|
27 |
+
foreground: "hsl(var(--primary-foreground))",
|
28 |
+
},
|
29 |
+
secondary: {
|
30 |
+
DEFAULT: "hsl(var(--secondary))",
|
31 |
+
foreground: "hsl(var(--secondary-foreground))",
|
32 |
+
},
|
33 |
+
destructive: {
|
34 |
+
DEFAULT: "hsl(var(--destructive))",
|
35 |
+
foreground: "hsl(var(--destructive-foreground))",
|
36 |
+
},
|
37 |
+
muted: {
|
38 |
+
DEFAULT: "hsl(var(--muted))",
|
39 |
+
foreground: "hsl(var(--muted-foreground))",
|
40 |
+
},
|
41 |
+
accent: {
|
42 |
+
DEFAULT: "hsl(var(--accent))",
|
43 |
+
foreground: "hsl(var(--accent-foreground))",
|
44 |
+
},
|
45 |
+
popover: {
|
46 |
+
DEFAULT: "hsl(var(--popover))",
|
47 |
+
foreground: "hsl(var(--popover-foreground))",
|
48 |
+
},
|
49 |
+
card: {
|
50 |
+
DEFAULT: "hsl(var(--card))",
|
51 |
+
foreground: "hsl(var(--card-foreground))",
|
52 |
+
},
|
53 |
+
},
|
54 |
+
borderRadius: {
|
55 |
+
lg: "var(--radius)",
|
56 |
+
md: "calc(var(--radius) - 2px)",
|
57 |
+
sm: "calc(var(--radius) - 4px)",
|
58 |
+
},
|
59 |
+
keyframes: {
|
60 |
+
"accordion-down": {
|
61 |
+
from: { height: 0 },
|
62 |
+
to: { height: "var(--radix-accordion-content-height)" },
|
63 |
+
},
|
64 |
+
"accordion-up": {
|
65 |
+
from: { height: "var(--radix-accordion-content-height)" },
|
66 |
+
to: { height: 0 },
|
67 |
+
},
|
68 |
+
},
|
69 |
+
animation: {
|
70 |
+
"accordion-down": "accordion-down 0.2s ease-out",
|
71 |
+
"accordion-up": "accordion-up 0.2s ease-out",
|
72 |
+
},
|
73 |
+
},
|
74 |
},
|
75 |
+
plugins: [require("tailwindcss-animate")],
|
76 |
+
}
|