diff --git a/index.html b/index.html index beb0d7e..9a4e869 100644 --- a/index.html +++ b/index.html @@ -15,8 +15,6 @@
- - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e414e2a..5dc2754 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,11 +8,12 @@ "name": "rekan-ai-tailwind", "version": "0.0.0", "dependencies": { - "react": "^18.3.1", - "react-dom": "^18.3.1", + "framer-motion": "^12.4.3", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-google-recaptcha": "^3.1.0", - "react-recaptcha": "^2.3.10", - "react-router-dom": "^7.1.3" + "react-intersection-observer": "^9.15.1", + "react-router-dom": "^7.1.5" }, "devDependencies": { "@eslint/js": "^9.17.0", @@ -2864,6 +2865,33 @@ "url": "https://github.com/sponsors/rawify" } }, + "node_modules/framer-motion": { + "version": "12.4.3", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.3.tgz", + "integrity": "sha512-rsMeO7w3dKyNG09o3cGwSH49iHU+VgDmfSSfsX+wfkO3zDA6WWkh4sUsMXd155YROjZP+7FTIhDrBYfgZeHjKQ==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.0.0", + "motion-utils": "^12.0.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3931,6 +3959,21 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/motion-dom": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.0.0.tgz", + "integrity": "sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.0.0" + } + }, + "node_modules/motion-utils": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz", + "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4532,13 +4575,10 @@ "license": "MIT" }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -4557,16 +4597,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-google-recaptcha": { @@ -4582,18 +4621,27 @@ "react": ">=16.4.1" } }, + "node_modules/react-intersection-observer": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.15.1.tgz", + "integrity": "sha512-vGrqYEVWXfH+AGu241uzfUpNK4HAdhCkSAyFdkMb9VWWXs6mxzBLpWCxEy9YcnDNY2g9eO6z7qUtTBdA9hc8pA==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, - "node_modules/react-recaptcha": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/react-recaptcha/-/react-recaptcha-2.3.10.tgz", - "integrity": "sha512-IyanbozsYCuHvTYDuskZTIEcRAMG/sdvAu5b29iQWoC8Kd3Zk9WGCv2oNxh6RfGHvSvgHAyaLjmC6ei/yMsJ7g==", - "license": "BSD" - }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -4605,9 +4653,9 @@ } }, "node_modules/react-router": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", - "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz", + "integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==", "license": "MIT", "dependencies": { "@types/cookie": "^0.6.0", @@ -4629,12 +4677,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz", - "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.5.tgz", + "integrity": "sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ==", "license": "MIT", "dependencies": { - "react-router": "7.1.3" + "react-router": "7.1.5" }, "engines": { "node": ">=20.0.0" @@ -4869,13 +4917,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", @@ -5430,6 +5475,12 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/turbo-stream": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", diff --git a/package.json b/package.json index 1a9d1ad..7cecf80 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,12 @@ "preview": "vite preview" }, "dependencies": { - "react": "^18.3.1", - "react-dom": "^18.3.1", + "framer-motion": "^12.4.3", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-google-recaptcha": "^3.1.0", - "react-recaptcha": "^2.3.10", - "react-router-dom": "^7.1.3" + "react-intersection-observer": "^9.15.1", + "react-router-dom": "^7.1.5" }, "devDependencies": { "@eslint/js": "^9.17.0", diff --git a/src/App.jsx b/src/App.jsx index eb13f86..c6edf53 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,6 +1,7 @@ import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import Contact from "./pages/Contact" import Home from "./pages/Home" +import FormSection from "./components/contact/FormSection" import SolusiPersonal from "./pages/SolusiPersonal" import SolusiStartup from "./pages/SolusiStartup" import SolusiCorporate from "./pages/SolusiCorporate" @@ -11,6 +12,7 @@ function App() { }/> }/> + }/> }/> }/> }/> diff --git a/src/assets/image/Frame 18 (3).png b/src/assets/image/Frame 18 (3).png new file mode 100644 index 0000000..ddbb2b2 Binary files /dev/null and b/src/assets/image/Frame 18 (3).png differ diff --git a/src/assets/image/Frame 18 (4).png b/src/assets/image/Frame 18 (4).png new file mode 100644 index 0000000..579c9e9 Binary files /dev/null and b/src/assets/image/Frame 18 (4).png differ diff --git a/src/assets/image/Frame 18 (5).png b/src/assets/image/Frame 18 (5).png new file mode 100644 index 0000000..74d0a3d Binary files /dev/null and b/src/assets/image/Frame 18 (5).png differ diff --git a/src/assets/image/Frame 18 (6).png b/src/assets/image/Frame 18 (6).png new file mode 100644 index 0000000..0e51d06 Binary files /dev/null and b/src/assets/image/Frame 18 (6).png differ diff --git a/src/assets/index.js b/src/assets/index.js index 6bdae59..fe5e03e 100644 --- a/src/assets/index.js +++ b/src/assets/index.js @@ -2,7 +2,11 @@ import Logo1 from './image/logo.png' import search from './image/search.png'; import IconPersonal from './image/Frame 18.png'; import IconStartup from './image/Frame 18 (1).png'; -import IconCorporate from './image/Frame 18 (2).png' +import IconCorporate from './image/Frame 18 (2).png'; +import ProdukHr from './image/Frame 18 (3).png'; +import ProdukDoku from './image/Frame 18 (4).png'; +import ProdukLlm from './image/Frame 18 (5).png'; +import ProdukVeri from './image/Frame 18 (6).png'; import row from './image/arrow.png'; import row2 from './image/vector.png'; import homeLogo from './image/Component 1.png'; @@ -80,5 +84,5 @@ export{ swipper7,swipper8,swipper9,swipper10,swipper11,swipper12,swipper13,swipper14, swipper15,swipper16,swipper17,swipper18,swipper19,swipper20,swipper21,swipper22, swipper23,swipper24,bgSwiper,imgLeft1,imgLeft2,imgLeft3,imgRight,nvdia,kmn,kominfo, - ojk,facebook,x,instagram,frame,IconPersonal,IconStartup,IconCorporate + ojk,facebook,x,instagram,frame,IconPersonal,IconStartup,IconCorporate,ProdukDoku,ProdukHr,ProdukVeri,ProdukLlm } \ No newline at end of file diff --git a/src/components/beranda/Banner.jsx b/src/components/beranda/Banner.jsx index 77b9080..608a469 100644 --- a/src/components/beranda/Banner.jsx +++ b/src/components/beranda/Banner.jsx @@ -1,10 +1,11 @@ import { waIcon2, L1, L2, L3, L4, R1, R2, R3, R4, bgcBanner } from "../../assets/" +import { Link } from "react-router-dom" function Banner() { return (
Konsultasi Gratis - + + + +
diff --git a/src/components/beranda/Footer.jsx b/src/components/beranda/Footer.jsx index 57248f8..dab4ae7 100644 --- a/src/components/beranda/Footer.jsx +++ b/src/components/beranda/Footer.jsx @@ -1,78 +1,129 @@ -import { nvdia,kmn,kominfo,ojk,x,instagram,facebook,frame, } from "../../assets"; +import { useNavigate, Link } from "react-router-dom" +import { + nvidia, + kmn, + kominfo, + ojk, + facebook, + x, + instagram, + component11, +} from "../contact/asset"; // Gambar logo sebagai partner dan logo medsos dan logo rekanai function Footer() { + const navigate = useNavigate(); return ( -