new
This commit is contained in:
parent
08bc8e8ba5
commit
912b1733b3
171
package-lock.json
generated
171
package-lock.json
generated
@ -9,6 +9,7 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@headlessui/react": "^2.1.0",
|
"@headlessui/react": "^2.1.0",
|
||||||
|
"@heroicons/react": "^2.2.0",
|
||||||
"@tailwindcss/forms": "^0.5.3",
|
"@tailwindcss/forms": "^0.5.3",
|
||||||
"@tailwindcss/postcss": "^4.1.7",
|
"@tailwindcss/postcss": "^4.1.7",
|
||||||
"@types/node": "^20.10.8",
|
"@types/node": "^20.10.8",
|
||||||
@ -65,13 +66,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
"version": "7.23.8",
|
"version": "7.27.6",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz",
|
||||||
"integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
|
"integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"license": "MIT",
|
||||||
"regenerator-runtime": "^0.14.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
@ -222,6 +221,15 @@
|
|||||||
"react-dom": "^18"
|
"react-dom": "^18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@heroicons/react": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">= 16 || ^19.0.0-rc"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@humanwhocodes/config-array": {
|
"node_modules/@humanwhocodes/config-array": {
|
||||||
"version": "0.11.14",
|
"version": "0.11.14",
|
||||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
||||||
@ -766,9 +774,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/env": {
|
"node_modules/@next/env": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.30.tgz",
|
||||||
"integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
|
"integrity": "sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@next/eslint-plugin-next": {
|
"node_modules/@next/eslint-plugin-next": {
|
||||||
"version": "14.0.4",
|
"version": "14.0.4",
|
||||||
@ -780,12 +789,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-darwin-arm64": {
|
"node_modules/@next/swc-darwin-arm64": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.30.tgz",
|
||||||
"integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
|
"integrity": "sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"darwin"
|
"darwin"
|
||||||
@ -795,12 +805,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-darwin-x64": {
|
"node_modules/@next/swc-darwin-x64": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.30.tgz",
|
||||||
"integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
|
"integrity": "sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"darwin"
|
"darwin"
|
||||||
@ -810,12 +821,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-arm64-gnu": {
|
"node_modules/@next/swc-linux-arm64-gnu": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.30.tgz",
|
||||||
"integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
|
"integrity": "sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux"
|
"linux"
|
||||||
@ -825,12 +837,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-arm64-musl": {
|
"node_modules/@next/swc-linux-arm64-musl": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.30.tgz",
|
||||||
"integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
|
"integrity": "sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux"
|
"linux"
|
||||||
@ -840,12 +853,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-x64-gnu": {
|
"node_modules/@next/swc-linux-x64-gnu": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.30.tgz",
|
||||||
"integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
|
"integrity": "sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux"
|
"linux"
|
||||||
@ -855,12 +869,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-x64-musl": {
|
"node_modules/@next/swc-linux-x64-musl": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.30.tgz",
|
||||||
"integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
|
"integrity": "sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux"
|
"linux"
|
||||||
@ -870,12 +885,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-win32-arm64-msvc": {
|
"node_modules/@next/swc-win32-arm64-msvc": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.30.tgz",
|
||||||
"integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
|
"integrity": "sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
@ -885,12 +901,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-win32-ia32-msvc": {
|
"node_modules/@next/swc-win32-ia32-msvc": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.30.tgz",
|
||||||
"integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
|
"integrity": "sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ia32"
|
"ia32"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
@ -900,12 +917,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-win32-x64-msvc": {
|
"node_modules/@next/swc-win32-x64-msvc": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.30.tgz",
|
||||||
"integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
|
"integrity": "sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
@ -1472,10 +1490,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
|
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0"
|
"balanced-match": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -1776,22 +1795,24 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/braces": {
|
"node_modules/braces": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fill-range": "^7.0.1"
|
"fill-range": "^7.1.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
@ -1936,10 +1957,11 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/cross-spawn": {
|
"node_modules/cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"path-key": "^3.1.0",
|
"path-key": "^3.1.0",
|
||||||
"shebang-command": "^2.0.0",
|
"shebang-command": "^2.0.0",
|
||||||
@ -2680,10 +2702,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fill-range": {
|
"node_modules/fill-range": {
|
||||||
"version": "7.0.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"to-regex-range": "^5.0.1"
|
"to-regex-range": "^5.0.1"
|
||||||
},
|
},
|
||||||
@ -3270,6 +3293,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.12.0"
|
"node": ">=0.12.0"
|
||||||
}
|
}
|
||||||
@ -3841,12 +3865,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/micromatch": {
|
"node_modules/micromatch": {
|
||||||
"version": "4.0.5",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"braces": "^3.0.2",
|
"braces": "^3.0.3",
|
||||||
"picomatch": "^2.3.1"
|
"picomatch": "^2.3.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -3949,11 +3974,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/next": {
|
"node_modules/next": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.30",
|
||||||
"resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/next/-/next-14.2.30.tgz",
|
||||||
"integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
|
"integrity": "sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@next/env": "14.2.3",
|
"@next/env": "14.2.30",
|
||||||
"@swc/helpers": "0.5.5",
|
"@swc/helpers": "0.5.5",
|
||||||
"busboy": "1.6.0",
|
"busboy": "1.6.0",
|
||||||
"caniuse-lite": "^1.0.30001579",
|
"caniuse-lite": "^1.0.30001579",
|
||||||
@ -3968,15 +3994,15 @@
|
|||||||
"node": ">=18.17.0"
|
"node": ">=18.17.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@next/swc-darwin-arm64": "14.2.3",
|
"@next/swc-darwin-arm64": "14.2.30",
|
||||||
"@next/swc-darwin-x64": "14.2.3",
|
"@next/swc-darwin-x64": "14.2.30",
|
||||||
"@next/swc-linux-arm64-gnu": "14.2.3",
|
"@next/swc-linux-arm64-gnu": "14.2.30",
|
||||||
"@next/swc-linux-arm64-musl": "14.2.3",
|
"@next/swc-linux-arm64-musl": "14.2.30",
|
||||||
"@next/swc-linux-x64-gnu": "14.2.3",
|
"@next/swc-linux-x64-gnu": "14.2.30",
|
||||||
"@next/swc-linux-x64-musl": "14.2.3",
|
"@next/swc-linux-x64-musl": "14.2.30",
|
||||||
"@next/swc-win32-arm64-msvc": "14.2.3",
|
"@next/swc-win32-arm64-msvc": "14.2.30",
|
||||||
"@next/swc-win32-ia32-msvc": "14.2.3",
|
"@next/swc-win32-ia32-msvc": "14.2.30",
|
||||||
"@next/swc-win32-x64-msvc": "14.2.3"
|
"@next/swc-win32-x64-msvc": "14.2.30"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@opentelemetry/api": "^1.1.0",
|
"@opentelemetry/api": "^1.1.0",
|
||||||
@ -4490,12 +4516,6 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/regenerator-runtime": {
|
|
||||||
"version": "0.14.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
|
|
||||||
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/regexp.prototype.flags": {
|
"node_modules/regexp.prototype.flags": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
|
||||||
@ -4993,6 +5013,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"is-number": "^7.0.0"
|
"is-number": "^7.0.0"
|
||||||
},
|
},
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
"browserslist": "defaults, not ie <= 11",
|
"browserslist": "defaults, not ie <= 11",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@headlessui/react": "^2.1.0",
|
"@headlessui/react": "^2.1.0",
|
||||||
|
"@heroicons/react": "^2.2.0",
|
||||||
"@tailwindcss/forms": "^0.5.3",
|
"@tailwindcss/forms": "^0.5.3",
|
||||||
"@tailwindcss/postcss": "^4.1.7",
|
"@tailwindcss/postcss": "^4.1.7",
|
||||||
"@types/node": "^20.10.8",
|
"@types/node": "^20.10.8",
|
||||||
|
@ -5,12 +5,15 @@ import { Pricing } from '@/components/Pricing'
|
|||||||
import { PrimaryFeatures } from '@/components/PrimaryFeatures'
|
import { PrimaryFeatures } from '@/components/PrimaryFeatures'
|
||||||
import { Reviews } from '@/components/Reviews'
|
import { Reviews } from '@/components/Reviews'
|
||||||
import { SecondaryFeatures } from '@/components/SecondaryFeatures'
|
import { SecondaryFeatures } from '@/components/SecondaryFeatures'
|
||||||
|
import Tractions from '@/components/Tractions'
|
||||||
|
import Benefits from '@/components/Benefits'
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Hero />
|
<Hero />
|
||||||
<PrimaryFeatures />
|
<Tractions />
|
||||||
|
<Benefits />
|
||||||
<SecondaryFeatures />
|
<SecondaryFeatures />
|
||||||
<CallToAction />
|
<CallToAction />
|
||||||
<Reviews />
|
<Reviews />
|
||||||
|
@ -12,7 +12,7 @@ export default function NotFound() {
|
|||||||
<h1 className="mt-2 text-3xl font-medium tracking-tight text-gray-900">
|
<h1 className="mt-2 text-3xl font-medium tracking-tight text-gray-900">
|
||||||
Page not found
|
Page not found
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-2 text-lg text-gray-600">
|
<p className="mt-2 lg:text-lg text-base text-gray-600">
|
||||||
Sorry, we couldn’t find the page you’re looking for.
|
Sorry, we couldn’t find the page you’re looking for.
|
||||||
</p>
|
</p>
|
||||||
<Button href="/" variant="outline" className="mt-8">
|
<Button href="/" variant="outline" className="mt-8">
|
||||||
|
@ -28,7 +28,7 @@ export function AuthLayout({
|
|||||||
{title}
|
{title}
|
||||||
</h1>
|
</h1>
|
||||||
{subtitle && (
|
{subtitle && (
|
||||||
<p className="mt-3 text-center text-lg text-gray-600">{subtitle}</p>
|
<p className="mt-3 text-center lg:text-lg text-base text-gray-600">{subtitle}</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="-mx-4 mt-10 flex-auto bg-white px-4 py-10 shadow-2xl shadow-gray-900/10 sm:mx-0 sm:flex-none sm:rounded-5xl sm:p-24">
|
<div className="-mx-4 mt-10 flex-auto bg-white px-4 py-10 shadow-2xl shadow-gray-900/10 sm:mx-0 sm:flex-none sm:rounded-5xl sm:p-24">
|
||||||
|
@ -8,7 +8,7 @@ import Benefits4 from '@/images/benefits/benefits4.jpg'
|
|||||||
|
|
||||||
export default function Benefits() {
|
export default function Benefits() {
|
||||||
return (
|
return (
|
||||||
<div className="bg-white lg:py-24 py-12">
|
<div className="bg-white py-12">
|
||||||
<div className="mx-auto max-w-2xl px-6 lg:max-w-7xl lg:px-8">
|
<div className="mx-auto max-w-2xl px-6 lg:max-w-7xl lg:px-8">
|
||||||
<Container>
|
<Container>
|
||||||
<div className="mx-auto max-w-2xl lg:mx-0 lg:max-w-3xl">
|
<div className="mx-auto max-w-2xl lg:mx-0 lg:max-w-3xl">
|
||||||
|
@ -16,7 +16,7 @@ export function CallToAction() {
|
|||||||
<h2 className="text-3xl font-medium tracking-tight text-white sm:text-4xl">
|
<h2 className="text-3xl font-medium tracking-tight text-white sm:text-4xl">
|
||||||
Get your first tips today
|
Get your first tips today
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-4 text-lg text-gray-300">
|
<p className="mt-4 lg:text-lg text-base text-gray-300">
|
||||||
It takes 30 seconds to sign up. Download the app and create an
|
It takes 30 seconds to sign up. Download the app and create an
|
||||||
account today and we’ll send you a tip guaranteed to double your
|
account today and we’ll send you a tip guaranteed to double your
|
||||||
first investment.
|
first investment.
|
||||||
|
@ -69,7 +69,7 @@ export function Faqs() {
|
|||||||
>
|
>
|
||||||
Frequently asked questions
|
Frequently asked questions
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-lg text-gray-600">
|
<p className="mt-2 lg:text-lg text-base text-gray-600">
|
||||||
If you have anything else you want to ask,{' '}
|
If you have anything else you want to ask,{' '}
|
||||||
<a
|
<a
|
||||||
href="mailto:info@example.com"
|
href="mailto:info@example.com"
|
||||||
@ -89,7 +89,7 @@ export function Faqs() {
|
|||||||
<ul role="list" className="space-y-10">
|
<ul role="list" className="space-y-10">
|
||||||
{column.map((faq, faqIndex) => (
|
{column.map((faq, faqIndex) => (
|
||||||
<li key={faqIndex}>
|
<li key={faqIndex}>
|
||||||
<h3 className="text-lg/6 font-semibold text-gray-900">
|
<h3 className="lg:text-lg text-base/6 font-semibold text-gray-900">
|
||||||
{faq.question}
|
{faq.question}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="mt-4 text-sm text-gray-700">{faq.answer}</p>
|
<p className="mt-4 text-sm text-gray-700">{faq.answer}</p>
|
||||||
|
@ -16,7 +16,6 @@ import logoForbes from '@/images/logos/forbes.svg'
|
|||||||
import logoHuffpost from '@/images/logos/huffpost.svg'
|
import logoHuffpost from '@/images/logos/huffpost.svg'
|
||||||
import logoTechcrunch from '@/images/logos/techcrunch.svg'
|
import logoTechcrunch from '@/images/logos/techcrunch.svg'
|
||||||
import logoWired from '@/images/logos/wired.svg'
|
import logoWired from '@/images/logos/wired.svg'
|
||||||
import Benefits from './Benefits'
|
|
||||||
|
|
||||||
function BackgroundIllustration(props: React.ComponentPropsWithoutRef<'div'>) {
|
function BackgroundIllustration(props: React.ComponentPropsWithoutRef<'div'>) {
|
||||||
let id = useId()
|
let id = useId()
|
||||||
@ -106,9 +105,8 @@ function PlayIcon(props: React.ComponentPropsWithoutRef<'svg'>) {
|
|||||||
|
|
||||||
export function Hero() {
|
export function Hero() {
|
||||||
return (
|
return (
|
||||||
<div className="overflow-hidden lg:pt-24 lg:pb-24 pt-12 pb-24">
|
<div className="overflow-hidden lg:pt-24 lg:pb-24 py-12">
|
||||||
<HeroHome />
|
<HeroHome />
|
||||||
<Benefits />
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ export default function HeroHome() {
|
|||||||
<h1 className="text-3xl font-medium tracking-tight text-gray-900 lg:text-5xl">
|
<h1 className="text-3xl font-medium tracking-tight text-gray-900 lg:text-5xl">
|
||||||
Empowering Purpose-Driven Organizations.
|
Empowering Purpose-Driven Organizations.
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-8 lg:text-lg text-base text-gray-600">
|
<p className="mt-8 lg:lg:text-lg text-base text-base text-gray-600">
|
||||||
Welcome to <span className={`font-semibold ${gradientText}`}>Engage OS</span>: the first all-in-one, white-label engagement platform to mobilize communities, engage supporters, scale impact, and fundraise—at a fraction of the cost.
|
Welcome to <span className={`font-semibold ${gradientText}`}>Engage OS</span>: the first all-in-one, white-label engagement platform to mobilize communities, engage supporters, scale impact, and fundraise—at a fraction of the cost.
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-12 flex items-center justify-center gap-x-6 relative z-10">
|
<div className="mt-12 flex items-center justify-center gap-x-6 relative z-10">
|
||||||
|
@ -225,7 +225,7 @@ export function Pricing() {
|
|||||||
>
|
>
|
||||||
Flat pricing, no management fees.
|
Flat pricing, no management fees.
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-lg text-gray-600">
|
<p className="mt-2 lg:text-lg text-base text-gray-600">
|
||||||
Whether you’re one person trying to get ahead or a big firm trying
|
Whether you’re one person trying to get ahead or a big firm trying
|
||||||
to take over the world, we’ve got a plan for you.
|
to take over the world, we’ve got a plan for you.
|
||||||
</p>
|
</p>
|
||||||
|
@ -430,7 +430,7 @@ function FeaturesDesktop() {
|
|||||||
)}
|
)}
|
||||||
<div className="relative z-10 p-8">
|
<div className="relative z-10 p-8">
|
||||||
<feature.icon className="h-8 w-8" />
|
<feature.icon className="h-8 w-8" />
|
||||||
<h3 className="mt-6 text-lg font-semibold text-white">
|
<h3 className="mt-6 lg:text-lg text-base font-semibold text-white">
|
||||||
<Tab className="text-left data-selected:not-data-focus:outline-hidden">
|
<Tab className="text-left data-selected:not-data-focus:outline-hidden">
|
||||||
<span className="absolute inset-0 rounded-2xl" />
|
<span className="absolute inset-0 rounded-2xl" />
|
||||||
{feature.name}
|
{feature.name}
|
||||||
@ -531,7 +531,7 @@ function FeaturesMobile() {
|
|||||||
</PhoneFrame>
|
</PhoneFrame>
|
||||||
<div className="absolute inset-x-0 bottom-0 bg-gray-800/95 p-6 backdrop-blur-sm sm:p-10">
|
<div className="absolute inset-x-0 bottom-0 bg-gray-800/95 p-6 backdrop-blur-sm sm:p-10">
|
||||||
<feature.icon className="h-8 w-8" />
|
<feature.icon className="h-8 w-8" />
|
||||||
<h3 className="mt-6 text-sm font-semibold text-white sm:text-lg">
|
<h3 className="mt-6 text-sm font-semibold text-white sm:lg:text-lg text-base">
|
||||||
{feature.name}
|
{feature.name}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="mt-2 text-sm text-gray-400">
|
<p className="mt-2 text-sm text-gray-400">
|
||||||
@ -579,7 +579,7 @@ export function PrimaryFeatures() {
|
|||||||
<h2 className="text-3xl font-medium tracking-tight text-white">
|
<h2 className="text-3xl font-medium tracking-tight text-white">
|
||||||
Every feature you need to win. Try it for yourself.
|
Every feature you need to win. Try it for yourself.
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-lg text-gray-400">
|
<p className="mt-2 lg:text-lg text-base text-gray-400">
|
||||||
Pocket was built for investors like you who play by their own rules
|
Pocket was built for investors like you who play by their own rules
|
||||||
and aren’t going to let SEC regulations get in the way of their
|
and aren’t going to let SEC regulations get in the way of their
|
||||||
dreams. If other investing tools are afraid to build it, Pocket has
|
dreams. If other investing tools are afraid to build it, Pocket has
|
||||||
|
@ -150,7 +150,7 @@ function Review({
|
|||||||
>
|
>
|
||||||
<blockquote className="text-gray-900">
|
<blockquote className="text-gray-900">
|
||||||
<StarRating rating={rating} />
|
<StarRating rating={rating} />
|
||||||
<p className="mt-4 text-lg/6 font-semibold before:content-['“'] after:content-['”']">
|
<p className="mt-4 lg:text-lg text-base/6 font-semibold before:content-['“'] after:content-['”']">
|
||||||
{title}
|
{title}
|
||||||
</p>
|
</p>
|
||||||
<p className="mt-3 text-base/7">{body}</p>
|
<p className="mt-3 text-base/7">{body}</p>
|
||||||
@ -284,7 +284,7 @@ export function Reviews() {
|
|||||||
>
|
>
|
||||||
Everyone is changing their life with Pocket.
|
Everyone is changing their life with Pocket.
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-lg text-gray-600 sm:text-center">
|
<p className="mt-2 lg:text-lg text-base text-gray-600 sm:text-center">
|
||||||
Thousands of people have doubled their net-worth in the last 30 days.
|
Thousands of people have doubled their net-worth in the last 30 days.
|
||||||
</p>
|
</p>
|
||||||
<ReviewGrid />
|
<ReviewGrid />
|
||||||
|
@ -1,43 +1,47 @@
|
|||||||
import { useId } from 'react'
|
import { useId } from 'react'
|
||||||
|
import { SquaresPlusIcon, BeakerIcon, CurrencyDollarIcon, AdjustmentsVerticalIcon, SparklesIcon, ServerStackIcon } from '@heroicons/react/24/solid'
|
||||||
|
import Image from 'next/image'
|
||||||
|
import AppScreenshot from '@/images/app_screenshot.png'
|
||||||
|
|
||||||
|
|
||||||
import { Container } from '@/components/Container'
|
import { Container } from '@/components/Container'
|
||||||
|
|
||||||
const features = [
|
const features = [
|
||||||
{
|
{
|
||||||
name: 'Invest any amount',
|
name: 'Engage Supporters with Community Tools.',
|
||||||
description:
|
description:
|
||||||
'Whether it’s $1 or $1,000,000, we can put your money to work for you.',
|
'Inspire action through built-in community tools like forums, comments, and stories that spark meaningful participation.',
|
||||||
icon: DeviceArrowIcon,
|
icon: SquaresPlusIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Build a balanced portfolio',
|
name: 'Train with AI-powered Learning Paths.',
|
||||||
description:
|
description:
|
||||||
'Invest in different industries to find the most opportunities to win huge.',
|
'Deliver scalable training with AI-powered learning paths, auto-generated content, and multilingual support.',
|
||||||
icon: DeviceCardsIcon,
|
icon: BeakerIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Trade in real-time',
|
name: 'Fundraise via Peer & Micro-Donations.',
|
||||||
description:
|
description:
|
||||||
'Get insider tips on big stock moves and act on them within seconds.',
|
'Empower supporters to fundraise through peer-to-peer campaigns, micro-donations, and integrated payment solutions.',
|
||||||
icon: DeviceClockIcon,
|
icon: CurrencyDollarIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Profit from your network',
|
name: 'Measure & Optimize Real-World Impact.',
|
||||||
description:
|
description:
|
||||||
'Invite new insiders to get tips faster and beat even other Pocket users.',
|
'Track real impact with dashboards that visualize KPIs, community activity, and field-level data.',
|
||||||
icon: DeviceListIcon,
|
icon: AdjustmentsVerticalIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Encrypted and anonymized',
|
name: 'White-Label Everything.',
|
||||||
description:
|
description:
|
||||||
'Cutting-edge security technology that even the NSA doesn’t know about keeps you hidden.',
|
'Own your brand with a fully customizable platform—your name, your colors, your digital HQ.',
|
||||||
icon: DeviceLockIcon,
|
icon: SparklesIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Portfolio tracking',
|
name: 'Robust & Secure Infrastructure.',
|
||||||
description:
|
description:
|
||||||
'Watch your investments grow exponentially, leaving other investors in the dust.',
|
'Host on your terms via decentralized, privacy-respecting infrastructure built for trust and security.',
|
||||||
icon: DeviceChartIcon,
|
icon: ServerStackIcon,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -191,18 +195,31 @@ export function SecondaryFeatures() {
|
|||||||
<section
|
<section
|
||||||
id="secondary-features"
|
id="secondary-features"
|
||||||
aria-label="Features for building a portfolio"
|
aria-label="Features for building a portfolio"
|
||||||
className="py-20 sm:py-32"
|
className="pt-12 pb-24"
|
||||||
>
|
>
|
||||||
<Container>
|
<Container>
|
||||||
<div className="mx-auto max-w-2xl sm:text-center">
|
<div className="mx-auto max-w-4xl sm:text-center">
|
||||||
<h2 className="text-3xl font-medium tracking-tight text-gray-900">
|
<h2 className="lg:text-4xl text-3xl font-medium tracking-tight text-gray-900">
|
||||||
Now is the time to build your portfolio.
|
The Platform Built for Purpose-driven Organizations
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-lg text-gray-600">
|
<p className="mt-4 lg:text-lg text-base text-gray-600">
|
||||||
With typical market returns, you have to start young to secure your
|
Engage OS is the first plug-and-play engagement infrastructure built for civil society. From Red Cross OS to Montessori OS, any org can launch their own digital headquarters—no tech team needed.
|
||||||
future. With Pocket, it’s never too late to build your nest egg.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="relative overflow-hidden pt-16">
|
||||||
|
<div className="mx-auto max-w-7xl px-6 lg:px-8">
|
||||||
|
<Image
|
||||||
|
alt="App screenshot"
|
||||||
|
src={AppScreenshot}
|
||||||
|
width={2432}
|
||||||
|
height={1442}
|
||||||
|
className="mb-[-12%] rounded-xl shadow-2xl ring-1 ring-gray-900/10"
|
||||||
|
/>
|
||||||
|
<div aria-hidden="true" className="relative">
|
||||||
|
<div className="absolute -inset-x-20 bottom-0 bg-linear-to-t from-white pt-[7%]" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<ul
|
<ul
|
||||||
role="list"
|
role="list"
|
||||||
className="mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-6 text-sm sm:mt-20 sm:grid-cols-2 md:gap-y-10 lg:max-w-none lg:grid-cols-3"
|
className="mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-6 text-sm sm:mt-20 sm:grid-cols-2 md:gap-y-10 lg:max-w-none lg:grid-cols-3"
|
||||||
|
79
src/components/Tractions.tsx
Normal file
79
src/components/Tractions.tsx
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
import Image from "next/image"
|
||||||
|
import Traction from "@/images/tractions/tractions.jpg"
|
||||||
|
import logoForbes from "@/images/logos/forbes.svg"
|
||||||
|
import logoTechcrunch from "@/images/logos/techcrunch.svg"
|
||||||
|
import logoWired from "@/images/logos/wired.svg"
|
||||||
|
import logoCnn from "@/images/logos/cnn.svg"
|
||||||
|
import logoBbc from "@/images/logos/bbc.svg"
|
||||||
|
import logoCbs from "@/images/logos/cbs.svg"
|
||||||
|
import logoFastCompany from "@/images/logos/fast-company.svg"
|
||||||
|
import logoHuffpost from "@/images/logos/huffpost.svg"
|
||||||
|
import clsx from "clsx"
|
||||||
|
|
||||||
|
const stats = [
|
||||||
|
{ id: 1, name: 'Raised in sponsorship.', value: '7M+' },
|
||||||
|
{ id: 2, name: 'Views from educational partners.', value: '3B+' },
|
||||||
|
{ id: 3, name: 'Users deployed.', value: '300K' },
|
||||||
|
{ id: 4, name: 'Revenues paid to NGOs', value: '$70M' },
|
||||||
|
]
|
||||||
|
|
||||||
|
export default function Tractions() {
|
||||||
|
return (
|
||||||
|
<div className="relative bg-white py-12">
|
||||||
|
<div className="mx-auto grid max-w-7xl lg:grid-cols-2">
|
||||||
|
{/* LEFT IMAGE + LOGO */}
|
||||||
|
<div className="flex flex-col items-center lg:items-start gap-8 px-6 pb-12 lg:px-8">
|
||||||
|
<div className="w-full ring-1 ring-black/15 rounded-3xl overflow-hidden max-lg:rounded-t-4xl lg:rounded-tl-4xl">
|
||||||
|
<Image
|
||||||
|
alt=""
|
||||||
|
src={Traction}
|
||||||
|
className="aspect-[3/2] object-cover w-full h-auto"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="w-full pr-6 lg:pr-12">
|
||||||
|
<ul
|
||||||
|
role="list"
|
||||||
|
className="mt-6 flex flex-wrap justify-center gap-x-10 gap-y-8 lg:justify-start"
|
||||||
|
>
|
||||||
|
{[
|
||||||
|
['Forbes', logoForbes],
|
||||||
|
['TechCrunch', logoTechcrunch],
|
||||||
|
['Wired', logoWired],
|
||||||
|
['CNN', logoCnn, 'hidden xl:block'],
|
||||||
|
['BBC', logoBbc],
|
||||||
|
['CBS', logoCbs],
|
||||||
|
['Fast Company', logoFastCompany],
|
||||||
|
['HuffPost', logoHuffpost, 'hidden xl:block'],
|
||||||
|
].map(([name, logo, className]) => (
|
||||||
|
<li key={name} className={clsx('flex', className)}>
|
||||||
|
<Image src={logo} alt={name} className="h-8 w-auto" unoptimized />
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* RIGHT TEXT BLOCK */}
|
||||||
|
<div className="px-6 lg:px-8">
|
||||||
|
<div className="mx-auto max-w-2xl lg:mr-0 lg:max-w-lg">
|
||||||
|
<h2 className="text-base/8 font-semibold text-gray-900">Our track record</h2>
|
||||||
|
<p className="mt-2 text-4xl font-medium tracking-tight text-gray-900 sm:text-5xl">
|
||||||
|
Trusted by thousands of creators worldwide
|
||||||
|
</p>
|
||||||
|
<p className="mt-6 lg:text-lg text-base text-gray-600">
|
||||||
|
Engage OS powers the digital headquarters for over 300,000 users across 50+ countries. From grassroots NGOs to global movements, our platform is built to scale impact, not just numbers.
|
||||||
|
</p>
|
||||||
|
<dl className="mt-16 grid max-w-xl grid-cols-1 gap-8 sm:mt-20 sm:grid-cols-2 xl:mt-16">
|
||||||
|
{stats.map((stat) => (
|
||||||
|
<div key={stat.id} className="flex flex-col gap-y-3 border-l border-gray-900/10 pl-6">
|
||||||
|
<dt className="text-sm/6 text-gray-600">{stat.name}</dt>
|
||||||
|
<dd className="order-first text-3xl font-semibold tracking-tight text-gray-900">{stat.value}</dd>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
BIN
src/images/app_screenshot.png
Normal file
BIN
src/images/app_screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
BIN
src/images/tractions/tractions.jpg
Normal file
BIN
src/images/tractions/tractions.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 311 KiB |
Loading…
Reference in New Issue
Block a user