edit en landing

main
حسین معصومی پور 2024-09-16 01:49:19 +03:30
parent ca07c0c151
commit fa518facfa
19 changed files with 264 additions and 3978 deletions

View File

@ -42,12 +42,12 @@ const ActivityCardFake = ({ data }) => {
const handleUndoneResone = () => {
setConditionTask(4);
CTX.UnDoneActivity(data.id, undoneResone);
// CTX.UnDoneActivity(data.id, undoneResone);
};
const handleDone = () => {
setConditionTask(3);
CTX.DoneActivity(data.id);
// CTX.DoneActivity(data.id);
};
return (
@ -102,12 +102,12 @@ const ActivityCardFake = ({ data }) => {
<div
className={`w-[40px] h-[35px] border-[2px] rounded-full ml-3 tr03 ${
conditionTask == 1
? "animate-spin-slow duration-700 border-gray-400 border-dashed"
? " border-gray-400 border-dashed animate-spin-slow duration-700"
: conditionTask == 2 || conditionTask == 4 || data?.status == 4
? "border-red-600"
: conditionTask == 3 || data?.status == 2 || data?.status == 3
? "border-primary-200"
: "border-gray-500 border-dashed"
: "border-gray-500 border-dashed animate-spin-slow duration-700"
}`}
onClick={() => handleConditionTaskCircle()}
>

View File

@ -81,14 +81,14 @@ const ExperienceCard = ({ experience }) => {
};
const Experience = () => {
const [number, setNumber] = useState(2001);
const [prevNumber, setPrevNumber] = useState(2001);
const [number, setNumber] = useState(4521);
const [prevNumber, setPrevNumber] = useState(4521);
useEffect(() => {
const interval = setInterval(() => {
setPrevNumber(number);
setNumber((prev) => prev + 1);
}, 3000);
}, 15000);
return () => clearInterval(interval);
}, [number]);

View File

@ -5,10 +5,26 @@ import Link from "next/link";
const Footer = () => {
return (
<div className="bg-[#060c0a] p-10">
<div className="bg-hero-pattern-footer ">
<div className="w-7/12 mx-auto py-20">
<div className="flex justify-center">
<div className="flex"></div>
<div className="text-center w-full">
<p className="mb-0 text-white text-center mt-10 font-bold lg:text-[70px] xs:text-[30px] lg:leading-[60px] w-fit">
<small className="text-primary-300">"</small>
Briz, Harmonious routine
</p>
<p className=" text-white text-center mb-10 font-bold lg:text-[70px] xs:text-[30px] lg:leading-[60px] w-fit">
management
<small className=" text-primary-300">"</small>
</p>
</div>
</div>
</div>
<div className="flex justify-center">
<div>
<div className="w-full">
<div className="w-full mb-5">
<Image src={logo2} className="w-[90px] mx-auto" />
</div>
<p className="mb-0 text-sm text-gray-400 w-full text-center opacity-30 ">
@ -17,7 +33,7 @@ const Footer = () => {
{process.env.NEXT_PUBLIC_VERSION}
</p>
<div className="flex justify-center w-full mt-4 ">
<div className="flex justify-center w-full my-5 ">
<Link href={`/pricing`}>
<p className="mb-0 text-gray-400 mx-4">pricing</p>
</Link>

View File

@ -72,7 +72,7 @@ const Navbar = () => {
</div>
<div className="flex">
<Link href="/login">
<Link href="/app/login">
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
Get started
</button>

View File

@ -1,6 +1,10 @@
import React from "react";
import Link from "next/link";
import React, { useState } from "react";
const PricingHero = () => {
const [oneMonth, setOneMonth] = useState(0);
const [threeMonth, setThreeMonth] = useState(0);
const [oneYear, setOneYear] = useState(0);
return (
<div className="min-h-[100vh]">
<div className="flex justify-center lg:pt-[150px] xs:pt-[100px] lg:ml-0">
@ -16,37 +20,177 @@ const PricingHero = () => {
</p>
</div>
</div>
<div className="grid lg:flex lg:justify-center xs:px-10 lg:px-[120px] mt-20">
<div className="p-5 text-center lg:mx-10">
<p className="mb-0 text-white text-[30px] font-thin bg-primary-300 w-fit mx-auto px-4 rounded-full">
per Month
</p>
<div className="grid xs:grid-cols-1 lg:grid-cols-3 gap-10 xs:px-[20px] lg:px-[100px] mt-10">
<div className=" p-3 flex">
<div className="w-4/12 ">
<div
className={`bg-[#132420] p-4 rounded-l-3xl cursor-pointer tr03 ${
oneMonth == 0 ? " " : "opacity-50"
} `}
onClick={() => setOneMonth(0)}
>
<p className="mb-0 text-center text-white text-xl">up 10 user</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
oneMonth == 1 ? " " : "opacity-50"
} `}
onClick={() => setOneMonth(1)}
>
<p className="mb-0 text-center text-white text-xl">up 25 user</p>
</div>
<p className="mb-0 text-[100px] font-bold text-white mt-10">46 </p>
</div>
<div className="p-5 text-center lg:mx-10">
<p className="mb-0 text-white text-[30px] font-thin bg-primary-300 w-fit mx-auto px-4 rounded-full">
3 Months
</p>
<div className="flex justify-center">
<del className="mb-0 text-[30px] text-white absolute mt-[15px]">
138
</del>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
oneMonth == 2 ? " " : "opacity-50"
} `}
onClick={() => setOneMonth(2)}
>
<p className="mb-0 text-center text-white text-xl">up 50 user</p>
</div>
</div>
<p className="mb-0 text-[100px] font-bold text-white mt-10">110 </p>
</div>
<div className="p-5 text-center lg:mx-10">
<p className="mb-0 text-white text-[30px] font-thin bg-primary-300 w-fit mx-auto px-4 rounded-full">
12 Months
</p>
<div className="flex justify-center">
<del className="mb-0 text-[30px] text-white absolute mt-[15px]">
552
</del>
<div className="w-8/12 bg-[#132420] p-10 rounded-r-3xl rounded-bl-3xl">
<h2 className="mb-0 text-center font-bold text-[25px] text-gray-400">
1 Mounth
</h2>
<p className="mb-0 text-center text-white text-[33px] font-bold">
{oneMonth == 0
? " 15,000,000 R"
: oneMonth == 1
? " 24,000,000 R"
: oneMonth == 2
? " 29,500,000 R"
: " 15,000,000 R"}
</p>
<p className="mb-0 text-center text-gray-400 text-sm">
It could be the best package for you, so feel free to use the
14-day free trial
</p>
<div className="flex justify-center mt-10">
<Link href="/app/login">
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
Get started
</button>
</Link>
</div>
</div>
</div>
<div className=" p-3 flex">
<div className="w-4/12 ">
<div
className={`bg-[#132420] p-4 rounded-l-3xl cursor-pointer tr03 ${
threeMonth == 0 ? " " : "opacity-50"
} `}
onClick={() => setThreeMonth(0)}
>
<p className="mb-0 text-center text-white text-xl">up 10 user</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
threeMonth == 1 ? " " : "opacity-50"
} `}
onClick={() => setThreeMonth(1)}
>
<p className="mb-0 text-center text-white text-xl">up 25 user</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
threeMonth == 2 ? " " : "opacity-50"
} `}
onClick={() => setThreeMonth(2)}
>
<p className="mb-0 text-center text-white text-xl">up 50 user</p>
</div>
</div>
<div className="w-8/12 bg-[#132420] p-10 rounded-r-3xl rounded-bl-3xl">
<h2 className="mb-0 text-center font-bold text-[25px] text-gray-400">
3 Mounth
</h2>
<p className="mb-0 text-center text-white text-[33px] font-bold">
{threeMonth == 0
? " 36,000,000 R"
: threeMonth == 1
? " 57,600,000 R"
: threeMonth == 2
? " 70,800,000 R"
: " 36,000,000 R"}{" "}
</p>
<p className="mb-0 text-center text-gray-400 text-sm">
It could be the best package for you, so feel free to use the
14-day free trial
</p>
<div className="flex justify-center mt-10">
<Link href="/app/login">
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
Get started
</button>
</Link>
</div>
</div>
</div>
<div className=" p-3 flex">
<div className="w-4/12 ">
<div
className={`bg-[#132420] p-4 rounded-l-3xl cursor-pointer tr03 ${
oneYear == 0 ? " " : "opacity-50"
} `}
onClick={() => setOneYear(0)}
>
<p className="mb-0 text-center text-white text-xl">up 10 user</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
oneYear == 1 ? " " : "opacity-50"
} `}
onClick={() => setOneYear(1)}
>
<p className="mb-0 text-center text-white text-xl">up 25 user</p>
</div>
<div
className={`bg-[#132420] p-4 rounded-l-3xl mt-3 cursor-pointer tr03 ${
oneYear == 2 ? " " : "opacity-50"
} `}
onClick={() => setOneYear(2)}
>
<p className="mb-0 text-center text-white text-xl">up 50 user</p>
</div>
</div>
<div className="w-8/12 bg-[#132420] p-10 rounded-r-3xl rounded-bl-3xl">
<h2 className="mb-0 text-center font-bold text-[25px] text-gray-400">
12 Mounth
</h2>
<p className="mb-0 text-center text-white text-[33px] font-bold">
{oneYear == 0
? " 108,000,000 R"
: oneYear == 1
? " 172,800,000 R"
: oneYear == 2
? " 212,400,000 R"
: " 108,000,000 R"}{" "}
</p>
<p className="mb-0 text-center text-gray-400 text-sm">
It could be the best package for you, so feel free to use the
14-day free trial
</p>
<div className="flex justify-center mt-10">
<Link href="/app/login">
<button className=" btn btn-primary px-10 rounded-full py-2 xs:hidden lg:block">
Get started
</button>
</Link>
</div>
</div>
<p className="mb-0 text-[100px] font-bold text-white mt-10">390 </p>
</div>
</div>
</div>

View File

@ -861,10 +861,6 @@ const StepProduct = ({}) => {
</div>
</div>
</div>
<p className="mb-0 text-white text-center my-10 pb-8 font-bold lg:text-[100px] xs:text-[30px] lg:leading-[60px]">
Briz, Harmonious routine management
</p>
</div>
);
};

View File

@ -1,4 +1,4 @@
import React from "react";
import React, { useState } from "react";
import { Tilt } from "react-tilt";
import { motion } from "framer-motion";
@ -8,6 +8,8 @@ import { styles } from "src/style";
import { SectionWrapper } from "src/hoc";
import Image from "next/image";
import vector1 from "@img/Vector1.png";
import validateIranPhone from "plugins/IranPhoneRegex";
import { toast } from "react-toastify";
const ServiceCard = ({ index, title, icon }) => (
<Tilt className=" w-full mt-5">
@ -48,6 +50,24 @@ const ServiceCard = ({ index, title, icon }) => (
);
const StressTest = () => {
const [subscribe, setSubscribe] = useState(false);
const [subscribeNumber, setSubscribeNumber] = useState("");
const handleSubscribeNumber = () => {
if (
subscribeNumber &&
subscribeNumber.trim() !== "" &&
validateIranPhone(subscribeNumber.trim())
) {
setSubscribe(true);
} else {
toast.error(`contact number is not acceptable`, {
position: "bottom-right",
closeOnClick: true,
});
}
};
return (
<div className="xs:mt-20 ">
<motion.div variants={textVariant()}>
@ -67,16 +87,31 @@ const StressTest = () => {
</motion.p>
<motion.div variants={fadeIn("", "", 0.1, 1)}>
<div className="flex flex-col sm:flex-row mt-5 items-center sm:items-start">
<input
type="text"
className="form-control !w-full sm:!w-6/12 mb-4 sm:mb-0"
placeholder="Enter your email"
/>
<button className="btn btn-primary rounded-2xl sm:ml-3 w-full p-4 sm:w-auto">
Subscribe
</button>
</div>
{subscribe ? (
<div>
<h2
className={`text-white md:text-[20px] sm:text-[20px] xs:text-[18px] text-[30px] text-left mt-10`}
>
Thank you for your trust, we will contact you
</h2>
</div>
) : (
<div className="flex flex-col sm:flex-row mt-5 items-center sm:items-start">
<input
type="number"
className="form-control !w-full sm:!w-6/12 mb-4 sm:mb-0"
placeholder="Enter your number"
onChange={(e) => setSubscribeNumber(e.target.value)}
value={subscribeNumber}
/>
<button
className="btn btn-primary rounded-2xl sm:ml-3 w-full p-4 sm:w-auto"
onClick={() => handleSubscribeNumber(true)}
>
Subscribe
</button>
</div>
)}
</motion.div>
<div className="mt-10 xs:block lg:flex xs:justify-center lg:justify-start gap-5 sm:gap-10">

View File

@ -0,0 +1 @@
self.fallback=async e=>{let{destination:a,url:n}=e,o={document:"/offline",image:!1,audio:!1,video:!1,font:!1}[a];return o?caches.match(o,{ignoreSearch:!0}):Response.error()};

View File

@ -1,102 +0,0 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@ducanh2912/next-pwa/dist/fallback.js":
/*!************************************************************!*\
!*** ./node_modules/@ducanh2912/next-pwa/dist/fallback.js ***!
\************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.fallback = async (_)=>{\n let { destination: e, url: A } = _, s = {\n document: \"/offline\",\n image: false,\n audio: false,\n video: false,\n font: false\n }[e];\n return s ? caches.match(s, {\n ignoreSearch: !0\n }) : \"\" === e && false && 0 ? 0 : Response.error();\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQSxVQUFVLHlCQUF5QjtBQUNuQyxrQkFBa0IsVUFBcUM7QUFDdkQsZUFBZSxLQUFrQztBQUNqRCxlQUFlLEtBQWtDO0FBQ2pELGVBQWUsS0FBa0M7QUFDakQsY0FBYyxLQUFpQztBQUMvQyxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUssZ0JBQWdCLEtBQWlDLElBQUksQ0FBd0MsR0FBRyxDQUUvRjtBQUNOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9AZHVjYW5oMjkxMi9uZXh0LXB3YS9kaXN0L2ZhbGxiYWNrLmpzP2NlNGIiXSwic291cmNlc0NvbnRlbnQiOlsic2VsZi5mYWxsYmFjayA9IGFzeW5jIChfKT0+e1xuICAgIGxldCB7IGRlc3RpbmF0aW9uOiBlLCB1cmw6IEEgfSA9IF8sIHMgPSB7XG4gICAgICAgIGRvY3VtZW50OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19ET0NVTUVOVF9fLFxuICAgICAgICBpbWFnZTogcHJvY2Vzcy5lbnYuX19QV0FfRkFMTEJBQ0tfSU1BR0VfXyxcbiAgICAgICAgYXVkaW86IHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0FVRElPX18sXG4gICAgICAgIHZpZGVvOiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19WSURFT19fLFxuICAgICAgICBmb250OiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19GT05UX19cbiAgICB9W2VdO1xuICAgIHJldHVybiBzID8gY2FjaGVzLm1hdGNoKHMsIHtcbiAgICAgICAgaWdub3JlU2VhcmNoOiAhMFxuICAgIH0pIDogXCJcIiA9PT0gZSAmJiBwcm9jZXNzLmVudi5fX1BXQV9GQUxMQkFDS19EQVRBX18gJiYgQS5tYXRjaCgvXFwvX25leHRcXC9kYXRhXFwvLitcXC8uK1xcLmpzb24kL2kpID8gY2FjaGVzLm1hdGNoKHByb2Nlc3MuZW52Ll9fUFdBX0ZBTExCQUNLX0RBVEFfXywge1xuICAgICAgICBpZ25vcmVTZWFyY2g6ICEwXG4gICAgfSkgOiBSZXNwb25zZS5lcnJvcigpO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/fallback.js\n"));
/***/ })
/******/ });
/************************************************************************/
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types policy */
/******/ !function() {
/******/ var policy;
/******/ __webpack_require__.tt = function() {
/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.
/******/ if (policy === undefined) {
/******/ policy = {
/******/ createScript: function(script) { return script; }
/******/ };
/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) {
/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy);
/******/ }
/******/ }
/******/ return policy;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types script */
/******/ !function() {
/******/ __webpack_require__.ts = function(script) { return __webpack_require__.tt().createScript(script); };
/******/ }();
/******/
/******/ /* webpack/runtime/react refresh */
/******/ !function() {
/******/ if (__webpack_require__.i) {
/******/ __webpack_require__.i.push(function(options) {
/******/ var originalFactory = options.factory;
/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) {
/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$;
/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {};
/******/ try {
/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire);
/******/ } finally {
/******/ cleanup();
/******/ }
/******/ }
/******/ })
/******/ }
/******/ }();
/******/
/******/ /* webpack/runtime/compat */
/******/
/******/
/******/ // noop fns to prevent runtime errors during initialization
/******/ if (typeof self !== "undefined") {
/******/ self.$RefreshReg$ = function () {};
/******/ self.$RefreshSig$ = function () {
/******/ return function (type) {
/******/ return type;
/******/ };
/******/ };
/******/ }
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./node_modules/@ducanh2912/next-pwa/dist/fallback.js"](0, __webpack_exports__, __webpack_require__);
/******/
/******/ })()
;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
self.onmessage=async e=>{switch(e.data.type){case"__START_URL_CACHE__":{let t=e.data.url,a=await fetch(t);if(!a.redirected)return(await caches.open("start-url")).put(t,a);return Promise.resolve()}case"__FRONTEND_NAV_CACHE__":{let t=e.data.url,a=await caches.open("pages");if(await a.match(t,{ignoreSearch:!0}))return;let s=await fetch(t);if(!s.ok)return;if(a.put(t,s.clone()),e.data.shouldCacheAggressively&&s.headers.get("Content-Type")?.includes("text/html"))try{let e=await s.text(),t=[],a=await caches.open("static-style-assets"),r=await caches.open("next-static-js-assets"),c=await caches.open("static-js-assets");for(let[s,r]of e.matchAll(/<link.*?href=['"](.*?)['"].*?>/g))/rel=['"]stylesheet['"]/.test(s)&&t.push(a.match(r).then(e=>e?Promise.resolve():a.add(r)));for(let[,a]of e.matchAll(/<script.*?src=['"](.*?)['"].*?>/g)){let e=/\/_next\/static.+\.js$/i.test(a)?r:c;t.push(e.match(a).then(t=>t?Promise.resolve():e.add(a)))}return await Promise.all(t)}catch{}return Promise.resolve()}default:return Promise.resolve()}};

View File

@ -1,102 +0,0 @@
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js":
/*!*******************************************************************!*\
!*** ./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\nself.onmessage = async (e)=>{\n switch(e.data.type){\n case \"__START_URL_CACHE__\":\n {\n let t = e.data.url, a = await fetch(t);\n if (!a.redirected) return (await caches.open(\"start-url\")).put(t, a);\n return Promise.resolve();\n }\n case \"__FRONTEND_NAV_CACHE__\":\n {\n let t = e.data.url, a = await caches.open(\"pages\");\n if (await a.match(t, {\n ignoreSearch: !0\n })) return;\n let s = await fetch(t);\n if (!s.ok) return;\n if (a.put(t, s.clone()), e.data.shouldCacheAggressively && s.headers.get(\"Content-Type\")?.includes(\"text/html\")) try {\n let e = await s.text(), t = [], a = await caches.open(\"static-style-assets\"), r = await caches.open(\"next-static-js-assets\"), c = await caches.open(\"static-js-assets\");\n for (let [s, r] of e.matchAll(/<link.*?href=['\"](.*?)['\"].*?>/g))/rel=['\"]stylesheet['\"]/.test(s) && t.push(a.match(r).then((e)=>e ? Promise.resolve() : a.add(r)));\n for (let [, a] of e.matchAll(/<script.*?src=['\"](.*?)['\"].*?>/g)){\n let e = /\\/_next\\/static.+\\.js$/i.test(a) ? r : c;\n t.push(e.match(a).then((t)=>t ? Promise.resolve() : e.add(a)));\n }\n return await Promise.all(t);\n } catch {}\n return Promise.resolve();\n }\n default:\n return Promise.resolve();\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanMiLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQGR1Y2FuaDI5MTIvbmV4dC1wd2EvZGlzdC9zdy1lbnRyeS13b3JrZXIuanM/NmM4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChlKT0+e1xuICAgIHN3aXRjaChlLmRhdGEudHlwZSl7XG4gICAgICAgIGNhc2UgXCJfX1NUQVJUX1VSTF9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhLnJlZGlyZWN0ZWQpIHJldHVybiAoYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGFydC11cmxcIikpLnB1dCh0LCBhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJfX0ZST05URU5EX05BVl9DQUNIRV9fXCI6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IHQgPSBlLmRhdGEudXJsLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJwYWdlc1wiKTtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgYS5tYXRjaCh0LCB7XG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZVNlYXJjaDogITBcbiAgICAgICAgICAgICAgICB9KSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCBzID0gYXdhaXQgZmV0Y2godCk7XG4gICAgICAgICAgICAgICAgaWYgKCFzLm9rKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKGEucHV0KHQsIHMuY2xvbmUoKSksIGUuZGF0YS5zaG91bGRDYWNoZUFnZ3Jlc3NpdmVseSAmJiBzLmhlYWRlcnMuZ2V0KFwiQ29udGVudC1UeXBlXCIpPy5pbmNsdWRlcyhcInRleHQvaHRtbFwiKSkgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSBhd2FpdCBzLnRleHQoKSwgdCA9IFtdLCBhID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJzdGF0aWMtc3R5bGUtYXNzZXRzXCIpLCByID0gYXdhaXQgY2FjaGVzLm9wZW4oXCJuZXh0LXN0YXRpYy1qcy1hc3NldHNcIiksIGMgPSBhd2FpdCBjYWNoZXMub3BlbihcInN0YXRpYy1qcy1hc3NldHNcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IFtzLCByXSBvZiBlLm1hdGNoQWxsKC88bGluay4qP2hyZWY9WydcIl0oLio/KVsnXCJdLio/Pi9nKSkvcmVsPVsnXCJdc3R5bGVzaGVldFsnXCJdLy50ZXN0KHMpICYmIHQucHVzaChhLm1hdGNoKHIpLnRoZW4oKGUpPT5lID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBhLmFkZChyKSkpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBbLCBhXSBvZiBlLm1hdGNoQWxsKC88c2NyaXB0Lio/c3JjPVsnXCJdKC4qPylbJ1wiXS4qPz4vZykpe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAvXFwvX25leHRcXC9zdGF0aWMuK1xcLmpzJC9pLnRlc3QoYSkgPyByIDogYztcbiAgICAgICAgICAgICAgICAgICAgICAgIHQucHVzaChlLm1hdGNoKGEpLnRoZW4oKHQpPT50ID8gUHJvbWlzZS5yZXNvbHZlKCkgOiBlLmFkZChhKSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG59OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js\n"));
/***/ })
/******/ });
/************************************************************************/
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types policy */
/******/ !function() {
/******/ var policy;
/******/ __webpack_require__.tt = function() {
/******/ // Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.
/******/ if (policy === undefined) {
/******/ policy = {
/******/ createScript: function(script) { return script; }
/******/ };
/******/ if (typeof trustedTypes !== "undefined" && trustedTypes.createPolicy) {
/******/ policy = trustedTypes.createPolicy("nextjs#bundler", policy);
/******/ }
/******/ }
/******/ return policy;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/trusted types script */
/******/ !function() {
/******/ __webpack_require__.ts = function(script) { return __webpack_require__.tt().createScript(script); };
/******/ }();
/******/
/******/ /* webpack/runtime/react refresh */
/******/ !function() {
/******/ if (__webpack_require__.i) {
/******/ __webpack_require__.i.push(function(options) {
/******/ var originalFactory = options.factory;
/******/ options.factory = function(moduleObject, moduleExports, webpackRequire) {
/******/ var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$;
/******/ var cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : function() {};
/******/ try {
/******/ originalFactory.call(this, moduleObject, moduleExports, webpackRequire);
/******/ } finally {
/******/ cleanup();
/******/ }
/******/ }
/******/ })
/******/ }
/******/ }();
/******/
/******/ /* webpack/runtime/compat */
/******/
/******/
/******/ // noop fns to prevent runtime errors during initialization
/******/ if (typeof self !== "undefined") {
/******/ self.$RefreshReg$ = function () {};
/******/ self.$RefreshSig$ = function () {
/******/ return function (type) {
/******/ return type;
/******/ };
/******/ };
/******/ }
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./node_modules/@ducanh2912/next-pwa/dist/sw-entry-worker.js"](0, __webpack_exports__, __webpack_require__);
/******/
/******/ })()
;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@ const AboutUs = () => {
<AboutUsHero />
</div>
<div className="xs:px-[20px] lg:px-[120px] my-20">
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 font-thin">
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 ">
At Briz, we envision each coffee shop as a symphony, with every
element from the espresso shot to the customer service playing in
perfect harmony. Our journey began with the coming together of two
@ -26,10 +26,10 @@ const AboutUs = () => {
experience and passion for coffee shop excellence are the foundation
of Briz.
</p>
<h2 className="text-white font-semibold md:text-[20px] sm:text-[20px] xs:text-[20px] text-[18px] mt-4">
<h2 className="text-white font-bold md:text-[30px] sm:text-[20px] xs:text-[20px] text-[18px] mt-4">
Our Team's Heritage
</h2>
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 font-thin">
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 ">
Our team consists of six dedicated members, each bringing a unique
blend of expertise and innovation from our roots in 'Tuk Coffee' and
'Igarson.' We are baristas, managers, tech enthusiasts, and, above
@ -38,11 +38,11 @@ const AboutUs = () => {
commitment to making Briz the ace of your coffee shop orchestr
</p>
<h2 className="text-white font-semibold md:text-[20px] sm:text-[20px] xs:text-[20px] text-[18px] mt-4">
<h2 className="text-white font-bold md:text-[30px] sm:text-[20px] xs:text-[20px] text-[18px] mt-4">
Our Team's Heritage
</h2>
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 font-thin">
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 ">
We believe in the power of an efficiently managed coffee shop - where
every task, every role, and every shift contributes to the delightful
crescendo of customer satisfaction. Briz is not just an app; it's your
@ -52,11 +52,11 @@ const AboutUs = () => {
performing.
</p>
<h2 className="text-white font-semibold md:text-[20px] sm:text-[20px] xs:text-[20px] text-[18px] mt-4">
<h2 className="text-white font-bold md:text-[30px] sm:text-[20px] xs:text-[20px] text-[18px] mt-4">
Our Commitment to Your Coffee Shop{" "}
</h2>
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 font-thin">
<p className="mb-0 sm:text-[20px] xs:text-[20px] lg:text-justify xs:text-left text-secondary tracking-wider text-gray-300 ">
Our mission is simple yet ambitious: to empower coffee shops to manage
their spaces with unprecedented efficiency and insight. Whether it's
the bustling rush of the morning crowd or the relaxed ambiance of late
@ -65,9 +65,9 @@ const AboutUs = () => {
run a coffee shop, and let's make every cup of coffee an experience to
remember.
</p>
<div className="flex justify-end my-10 ">
<div className="mt-3">
<Image src={tuk} className="w-[100px]" />
<div className="flex justify-center my-10 ">
<div className="">
<Image src={tuk} className="w-[50px]" />
</div>
<div>
<Image src={ig} className="w-[120px]" />

View File

@ -461,6 +461,11 @@ body {
background-image: url(../public/images/bg.png);
}
.bg-hero-pattern-footer {
background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
url(../public/images/bg.png);
}
.bg-dahs-chart {
background-image: radial-gradient(
circle,