This commit is contained in:
2026-06-09 12:37:54 +03:30
parent b824f98328
commit 6dfa63f8e9
44 changed files with 3388 additions and 1 deletions

25
.gitignore vendored Normal file
View File

@@ -0,0 +1,25 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

4
.prettierignore Normal file
View File

@@ -0,0 +1,4 @@
dist/
node_modules/
public/
*.min.js

13
.prettierrc.json Normal file
View File

@@ -0,0 +1,13 @@
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "lf",
"embeddedLanguageFormatting": "auto",
"htmlWhitespaceSensitivity": "css"
}

4
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"recommendations": ["esbenp.prettier-vscode"],
"unwantedRecommendations": []
}

19
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,19 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.tabSize": 2,
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"files.associations": {
"*.xml": "html",
"*.svg": "html"
}
}

View File

@@ -1,2 +1,32 @@
# final-header-inova # Inova - Frontend
فرانت‌اند قالب وردپرس پروژه Inova
## درباره پروژه
این ریپوزیتوری بخش فرانت‌اند قالب وردپرس پروژه اصلی است. اینجا تمام طراحی‌ها، کامپوننت‌ها و assetها با استفاده از Vite توسعه داده می‌شود.
## نحوه راه‌اندازی پروژه
### پیش‌نیازها
- Node.js نسخه 18 یا بالاتر (نسخه 22 پیشنهاد میشه)
- ادیتور Vs Code
- نصب بودن اکستنشن prettier روی vs code
- نصب بودن git روی سیستم عامل
### نصب و اجرا
```bash
# کلون کردن پروژه
git clone https://dev.novindiyar.com/Inova-Agency/inova-frontend.git
# ورود به پوشه
cd inova-frontend
# نصب وابستگی‌ها
npm install
# اجرای محیط توسعه
npm run dev
```

350
footer.html Normal file
View File

@@ -0,0 +1,350 @@
<!doctype html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./src/core/stylesheet/core.css" />
<link rel="stylesheet" href="./src/assets/css/footer.css" />
<link rel="stylesheet" href="./src/assets/css/footer-responsive.css" />
<script type="module" src="./src/assets/js/header.js" defer></script>
<title></title>
</head>
<body>
<div id="root">
<header class="header">
<div class="header-container">
<!-- Logo -->
<div class="header-logo">
<svg aria-hidden="true" width="150px" height="50px">
<use href="./src/assets/icons/portfolioP.svg#inova-logo-en"></use>
</svg>
</div>
<!-- Desktop Menu -->
<nav class="header-nav">
<ul class="header-menu">
<li><a href="">خدمات</a></li>
<li><a href="">نمونه کارها</a></li>
<li><a href="">درباره ما</a></li>
<li><a href="">تماس با ما</a></li>
</ul>
</nav>
<!-- Desktop number -->
<div class="header-left">
<a href="tel:+989121234567" class="header-phone">
<span>021-91096311</span>
<svg aria-hidden="true" width="24px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#phone2"></use>
</svg>
</a>
<button class="header-user-btn" aria-label="User">
<svg aria-hidden="true" width="48px" height="48px">
<use href="./src/assets/icons/portfolioP.svg#profile-icon"></use>
</svg>
</button>
</div>
<!-- Mobile Hamburger -->
<button class="header-menu-toggle" aria-label="Open Menu">
<span></span>
<span></span>
<span></span>
</button>
</div>
<!-- Mobile Menu -->
<div class="header-mobile-menu">
<div class="header-mobile-top">
<button class="header-mobile-close">
<svg aria-hidden="true" width="48px" height="48px">
<use href="./src/assets/icons/portfolioP.svg#closemenu"></use>
</svg>
</button>
<div class="header-mobile-logo">
<svg aria-hidden="true" width="48px" height="48px">
<use href="./src/assets/icons/portfolioP.svg#inova-logo3"></use>
</svg>
</div>
<button class="header-user-btn" aria-label="User">
<svg aria-hidden="true" width="48px" height="48px">
<use href="./src/assets/icons/portfolioP.svg#profile-icon"></use>
</svg>
</button>
</div>
<!-- Menu -->
<nav class="header-mobile-nav">
<a href="#">
<div class="header-mobile-nav-hover">
<svg class="menuicon phoneicon" aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#housemenu"></use>
</svg>
<span class="header-mobile-item"> خانه </span>
</div>
<svg aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#chevron-left"></use>
</svg>
</a>
<a href="#">
<div class="header-mobile-nav-hover">
<svg class="menuicon phoneicon" aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#foldermenu"></use>
</svg>
<span class="header-mobile-item"> نمونه کارها </span>
</div>
<svg aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#chevron-left"></use>
</svg>
</a>
<a href="#">
<div class="header-mobile-nav-hover">
<svg class="menuicon phoneicon" aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#usermenu"></use>
</svg>
<span class="header-mobile-item"> درباره ما </span>
</div>
<svg aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#chevron-left"></use>
</svg>
</a>
<a href="#">
<div class="header-mobile-nav-hover">
<svg class="menuicon phoneicon" aria-hidden="true" width="20px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#phone3"></use>
</svg>
<span class="header-mobile-item"> تماس با ما </span>
</div>
<svg aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#chevron-left"></use>
</svg>
</a>
</nav>
<!-- CTA -->
<a href="#" class="header-mobile-consultation"> درخواست مشاوره </a>
<!-- Footer -->
<div class="header-mobile-footer">
<a href="tel:+9891291096311" class="header-mobile-phone">
<svg aria-hidden="true" width="20px" height="20px">
<use href="./src/assets/icons/portfolioP.svg#headphone"></use>
</svg>
<span>021-91096311</span>
</a>
<div class="header-mobile-socials">
<div class="social-links">
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#instagram1"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#telegram1"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#linkedin1"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#twitter1"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#youtube1"></use>
</svg>
</a>
</div>
</div>
</div>
</div>
</header>
<footer class="footer">
<div class="footer-bottom-line"></div>
<div class="container">
<div class="footer-cta">
<div class="footer-cta-content">
<img class="footer-imga" src="./public/images/Group.png" alt="footer" />
<img class="footer-imgb" src="./public/images/Ñëîé_10.png" alt="footer" />
<img class="footer-imgc" src="./public/images/Vector (1).png" alt="footer" />
<img class="footer-imgd" src="./public/images/Vector.png" alt="footer" />
<div class="footer-cta-txt">
<h2>برای شروع آماده‌اید؟</h2>
<p>خلاقیت و نوآوری منتظر شماست. برای رشد برند خود اکنون اقدام کنید.</p>
</div>
<a href="/consultation" class="footer-cta-btn">
<span>درخواست جلسه مشاوره </span>
<svg aria-hidden="true" width="20px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#phone"></use>
</svg>
</a>
</div>
</div>
<div class="footer-container">
<div class="footer-column footer-one">
<svg aria-hidden="true" width="140px" height="60px">
<use href="./src/assets/icons/portfolioP.svg#inova-logo"></use>
</svg>
<p class="footer-column-txt">
آژانس بازاریابی اینوا، جایی برای هموار کردن مسیر رشد برند شما با استراتژی‌های
نوآورانه و طراحی‌های هوشمندانه است.
</p>
<div class="social-links">
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#instagram"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#telegram"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#linkedin"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#twitter"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#youtube"></use>
</svg>
</a>
<a href="" target="_blank">
<svg aria-hidden="true" width="32px" height="32px">
<use href="./src/assets/icons/portfolioP.svg#aparat"></use>
</svg>
</a>
</div>
</div>
<div class="footer-column footer-column-two">
<h3>ارتباط با ما</h3>
<ul>
<li class="footer-icon-two">
<svg aria-hidden="true" width="20px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#phone"></use>
</svg>
<span>تلفن :</span>
<a href="tel:02191096311"> 91096311-021</a>
</li>
<li class="footer-icon-two">
<svg aria-hidden="true" width="20px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#email"></use>
</svg>
<span>ایمیل:</span>
<a href="Info@inova-agency.net"> Info@inova-agency.net </a>
</li>
<li class="footer-icon-two">
<svg aria-hidden="true" width="20px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#codeposti"></use>
</svg>
<div>کد پستی: 1518633969</div>
</li>
<li class="footer-icon-two">
<svg aria-hidden="true" width="20px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#location"></use>
</svg>
<div>
تهران، بلوار نلسون ماندلا (جردن)، پایین تر از جهان کودک، خیابان ناوک، پلاک 12،
طبقه سوم، واحد 8
</div>
</li>
</ul>
</div>
<div class="footer-column footer-column-three">
<h3>دسترسی های سریع</h3>
<ul>
<li><a href="">صفحه اصلی</a></li>
<li><a href="">نمونه کارها</a></li>
<li><a href="">درباره ما</a></li>
<li><a href="">تماس با ما</a></li>
</ul>
</div>
<div class="footer-column footer-column-four">
<h3>مجوزها</h3>
<ul>
<li class="footer-icon-three">
<svg aria-hidden="true" width="30px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#mojavez2"></use>
</svg>
<a href="" target="_blank"> دارای مجوز رسمی از نظام صنفی رایانه‌ای </a>
</li>
<li class="footer-icon-three">
<svg aria-hidden="true" width="30px" height="24px">
<use href="./src/assets/icons/portfolioP.svg#mojavez3"></use>
</svg>
<a href="" target="_blank"> عضو انجمن صنفی کسب‌وکارهای اینترنتی </a>
</li>
<li class="footer-icon-three">
<img
class="ershad-logo"
src="./public/images/DigitalPublish 1.png"
alt="ershad"
/>
<a href="" target="_blank"> دارای مجوز نشر برخط از وزارت ارشاد اسلامی </a>
</li>
</ul>
</div>
</div>
<div class="footer-bottom">
© کلیه حقوق مادی و معنوی این وب‌سایت متعلق به
<span>شرکت پردازشگران بینش‌ساز نگاه نو</span>
می‌باشد
</div>
</div>
</footer>
</div>
</body>
</html>

14
index.html Normal file
View File

@@ -0,0 +1,14 @@
<!doctype html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./src/core/stylesheet/core.css" />
<title>Inova</title>
</head>
<body>
<main>
<h1>سلام دنیا</h1>
</main>
</body>
</html>

889
package-lock.json generated Normal file
View File

@@ -0,0 +1,889 @@
{
"name": "inova-frontend",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "inova-frontend",
"version": "0.0.0",
"devDependencies": {
"prettier": "^3.8.3",
"vite": "^8.0.4"
}
},
"node_modules/@emnapi/core": {
"version": "1.9.2",
"resolved": "https://registry.npmmirror.com/@emnapi/core/-/core-1.9.2.tgz",
"integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/wasi-threads": "1.2.1",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
"version": "1.9.2",
"resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.9.2.tgz",
"integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/wasi-threads": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
"integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
"integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@tybys/wasm-util": "^0.10.1"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
},
"peerDependencies": {
"@emnapi/core": "^1.7.1",
"@emnapi/runtime": "^1.7.1"
}
},
"node_modules/@oxc-project/types": {
"version": "0.124.0",
"resolved": "https://registry.npmmirror.com/@oxc-project/types/-/types-0.124.0.tgz",
"integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Boshen"
}
},
"node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz",
"integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-darwin-arm64": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz",
"integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-darwin-x64": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz",
"integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-freebsd-x64": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz",
"integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz",
"integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm64-gnu": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz",
"integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-arm64-musl": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz",
"integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz",
"integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-s390x-gnu": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz",
"integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==",
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-x64-gnu": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz",
"integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz",
"integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-openharmony-arm64": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz",
"integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-wasm32-wasi": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz",
"integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==",
"cpu": [
"wasm32"
],
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"@emnapi/core": "1.9.2",
"@emnapi/runtime": "1.9.2",
"@napi-rs/wasm-runtime": "^1.1.3"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@rolldown/binding-win32-arm64-msvc": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz",
"integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-win32-x64-msvc": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz",
"integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz",
"integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==",
"dev": true,
"license": "MIT"
},
"node_modules/@tybys/wasm-util": {
"version": "0.10.1",
"resolved": "https://registry.npmmirror.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">=8"
}
},
"node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
"picomatch": {
"optional": true
}
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/lightningcss": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.32.0.tgz",
"integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
"dev": true,
"license": "MPL-2.0",
"dependencies": {
"detect-libc": "^2.0.3"
},
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
"lightningcss-android-arm64": "1.32.0",
"lightningcss-darwin-arm64": "1.32.0",
"lightningcss-darwin-x64": "1.32.0",
"lightningcss-freebsd-x64": "1.32.0",
"lightningcss-linux-arm-gnueabihf": "1.32.0",
"lightningcss-linux-arm64-gnu": "1.32.0",
"lightningcss-linux-arm64-musl": "1.32.0",
"lightningcss-linux-x64-gnu": "1.32.0",
"lightningcss-linux-x64-musl": "1.32.0",
"lightningcss-win32-arm64-msvc": "1.32.0",
"lightningcss-win32-x64-msvc": "1.32.0"
}
},
"node_modules/lightningcss-android-arm64": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
"integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-darwin-arm64": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
"integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-darwin-x64": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
"integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-freebsd-x64": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
"integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm-gnueabihf": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
"integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
"cpu": [
"arm"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm64-gnu": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
"integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm64-musl": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
"integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-x64-gnu": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
"integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-x64-musl": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
"integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-arm64-msvc": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
"integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-x64-msvc": {
"version": "1.32.0",
"resolved": "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
"integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
"cpu": [
"x64"
],
"dev": true,
"license": "MPL-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true,
"license": "ISC"
},
"node_modules/picomatch": {
"version": "4.0.4",
"resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/postcss": {
"version": "8.5.10",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.10.tgz",
"integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/prettier": {
"version": "3.8.3",
"resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.8.3.tgz",
"integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==",
"dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/rolldown": {
"version": "1.0.0-rc.15",
"resolved": "https://registry.npmmirror.com/rolldown/-/rolldown-1.0.0-rc.15.tgz",
"integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@oxc-project/types": "=0.124.0",
"@rolldown/pluginutils": "1.0.0-rc.15"
},
"bin": {
"rolldown": "bin/cli.mjs"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
"@rolldown/binding-android-arm64": "1.0.0-rc.15",
"@rolldown/binding-darwin-arm64": "1.0.0-rc.15",
"@rolldown/binding-darwin-x64": "1.0.0-rc.15",
"@rolldown/binding-freebsd-x64": "1.0.0-rc.15",
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15",
"@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15",
"@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15",
"@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15",
"@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15",
"@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15",
"@rolldown/binding-linux-x64-musl": "1.0.0-rc.15",
"@rolldown/binding-openharmony-arm64": "1.0.0-rc.15",
"@rolldown/binding-wasm32-wasi": "1.0.0-rc.15",
"@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15",
"@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15"
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/tinyglobby": {
"version": "0.2.16",
"resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz",
"integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
"dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
"picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"dev": true,
"license": "0BSD",
"optional": true
},
"node_modules/vite": {
"version": "8.0.8",
"resolved": "https://registry.npmmirror.com/vite/-/vite-8.0.8.tgz",
"integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==",
"dev": true,
"license": "MIT",
"dependencies": {
"lightningcss": "^1.32.0",
"picomatch": "^4.0.4",
"postcss": "^8.5.8",
"rolldown": "1.0.0-rc.15",
"tinyglobby": "^0.2.15"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
"fsevents": "~2.3.3"
},
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
"@vitejs/devtools": "^0.1.0",
"esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
"sass": "^1.70.0",
"sass-embedded": "^1.70.0",
"stylus": ">=0.54.8",
"sugarss": "^5.0.0",
"terser": "^5.16.0",
"tsx": "^4.8.1",
"yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
"@vitejs/devtools": {
"optional": true
},
"esbuild": {
"optional": true
},
"jiti": {
"optional": true
},
"less": {
"optional": true
},
"sass": {
"optional": true
},
"sass-embedded": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"terser": {
"optional": true
},
"tsx": {
"optional": true
},
"yaml": {
"optional": true
}
}
}
}
}

15
package.json Normal file
View File

@@ -0,0 +1,15 @@
{
"name": "inova-frontend",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"prettier": "^3.8.3",
"vite": "^8.0.4"
}
}

0
public/.gitkeep Normal file
View File

0
public/images/.gitkeep Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 B

BIN
public/images/Group.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
public/images/Vector.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

View File

@@ -0,0 +1,107 @@
@media screen and (max-width: 1400px) {
}
@media screen and (max-width: 1200px) {
}
@media screen and (max-width: 992px) {
.footer-container {
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: flex-start;
margin-bottom: 24px;
}
.footer-cta {
bottom: 93%;
left: 90px;
right: 90px;
}
}
@media screen and (max-width: 768px) {
.header-container {
position: relative;
padding: 14px 16px;
display: flex;
justify-content: center;
align-items: center;
}
.header-logo {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.header-logo img {
height: 36px;
}
.header-left {
position: absolute;
left: 16px;
}
.header-phone {
display: none;
}
.header-menu-toggle {
display: flex;
position: absolute;
right: 16px;
}
.header-nav {
display: none;
}
.footer-imgb,
.footer-imga {
display: none;
}
.footer-imgd {
display: block;
position: absolute;
top: 0;
left: 0;
}
.footer-imgc {
display: block;
position: absolute;
bottom: 0;
right: 0;
}
.footer-cta-content {
border-radius: 10px;
padding: 24px 16px;
display: flex;
align-items: center;
flex-direction: column;
justify-content: space-between;
gap: 24px;
}
.footer-cta-txt h2 {
margin-bottom: 16px;
font-size: 22px;
font-weight: 700;
align-self: center;
}
.footer-cta-txt p {
font-size: 14px;
text-align: center;
line-height: 1.8;
}
}
@media screen and (max-width: 576px) {
.footer-cta {
left: 20px;
right: 20px;
}
.footer {
padding-top: 129px;
}
.footer-bottom-line {
margin-bottom: 92px;
}
}

434
src/assets/css/footer.css Normal file
View File

@@ -0,0 +1,434 @@
/* ===== Header ===== */
.header {
position: relative;
width: 100%;
background: #fff;
border-bottom: 1px solid #eee;
z-index: 1000;
}
.header-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
height: 84px;
display: flex;
align-items: center;
}
/* ===== Left Section ===== */
.header-left {
display: flex;
align-items: center;
gap: 16px;
}
.header-phone:hover svg,
.header-phone:hover span {
color: #03aeff;
fill: #03aeff;
}
.header-phone {
display: flex;
align-items: center;
gap: 4px;
text-decoration: none;
color: #0a8ed8;
font-size: 13px;
font-weight: 400;
line-height: 1.8;
}
.header-user-btn {
display: flex;
align-items: center;
justify-content: center;
background: transparent;
border: none;
cursor: pointer;
}
/* ===== Menu ===== */
.header-nav {
margin-left: auto;
margin-right: 48px;
}
.header-menu {
display: flex;
align-items: center;
gap: 30px;
list-style: none;
margin: 0;
padding: 0;
}
.header-menu a {
text-decoration: none;
color: var(--color-title);
font-size: 15px;
font-weight: 400;
}
.header-menu a:hover {
color: var(--color-primary);
}
/* ===== Logo ===== */
.header-logo img {
display: block;
height: 42px;
}
.header-logo {
flex-shrink: 0;
display: flex;
align-items: center;
}
/* ===== Hamburger ===== */
.header-menu-toggle {
display: none;
width: 48px;
height: 48px;
border: none;
background: transparent;
cursor: pointer;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 4px;
}
.header-menu-toggle span {
width: 16px;
height: 2px;
background: var(--color-text);
border-radius: 50px;
}
/* ===== Mobile Menu ===== */
.header-mobile-menu {
position: fixed;
inset: 0;
background: #ffffff;
display: none;
flex-direction: column;
z-index: 900;
}
.header-mobile-menu.active {
display: flex;
}
.header-mobile-top {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px;
}
.header-mobile-logo img {
height: 60px;
}
.header-mobile-close {
border: none;
background: transparent;
font-size: 34px;
cursor: pointer;
}
.header-mobile-nav {
display: flex;
flex-direction: column;
gap: 24px;
padding: 20px 24px;
}
.header-mobile-nav a {
display: flex;
align-items: center;
text-decoration: none;
color: var(--color-text);
}
.header-mobile-nav-hover {
display: flex;
margin-left: auto;
}
.header-mobile-item {
display: flex;
align-items: center;
font-size: 15px;
font-weight: bold;
color: var(--color-text);
}
.header-mobile-item :hover {
color: var(--color-primary);
}
.header-mobile-arrow {
font-size: 30px;
}
.header-mobile-consultation {
padding: 8px 12px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
text-decoration: none;
background: var(--color-primary);
color: #fff;
font-weight: bold;
font-size: 15px;
line-height: 1.7;
margin: 24px 20px;
}
.header-mobile-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
}
.header-mobile-socials {
display: flex;
gap: 18px;
}
.header-mobile-phone {
display: flex;
align-items: center;
gap: 8px;
text-decoration: none;
color: #444;
}
.menuicon {
margin-left: 8px;
}
.phoneicon use {
stroke: #505068;
}
.header-mobile-nav-hover:hover .header-mobile-item,
.header-mobile-nav-hover:hover .phoneicon use {
color: #0274b3;
stroke: var(--color-primary);
}
/* =========================================footer==================================== */
footer > .container {
max-width: 1240px;
padding: 0 20px;
margin: 0 auto;
}
.footer {
margin-top: 183px;
background: #0d1222;
color: #9ea0a7;
position: relative;
padding-top: 141px;
z-index:1000;
}
.footer-cta {
position: absolute;
bottom: 88%;
left: 120px;
right: 120px;
}
.footer-cta-content {
background: #0274b2;
border-radius: 10px;
padding: 37px 48px;
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
}
.footer-cta-txt {
display: flex;
flex-direction: column;
}
.footer-cta-txt h2 {
color: #ffffff;
margin-bottom: 8px;
font-size: 24px;
font-weight: bold;
line-height: 1.5;
}
.footer-cta-txt p {
color: #ffffff;
font-size: 15px;
font-weight: 400;
line-height: 1.7;
}
.footer-cta-btn {
background: #fff;
color: var(--color-primary);
text-decoration: none;
padding: 7px 16px 7px 12px;
border-radius: 10px;
display: flex;
gap: 8px;
z-index: 1;
}
.footer-cta-btn span {
font-size: 15px;
line-height: 1.7;
font-weight: 600;
}
.footer-cta-btn svg {
width: 24px;
height: 24px;
}
.footer-imga {
position: absolute;
bottom: 0;
left: 277px;
}
.footer-imgb {
position: absolute;
top: 0;
left: 0;
}
.footer-imgc,
.footer-imgd {
display: none;
}
.footer-container {
display: flex;
justify-content: center;
gap: 28px;
padding-bottom: 40px;
}
.footer-one {
max-width: 347px;
display: flex;
flex-direction: column;
gap: 16px;
}
.footer-icon-two,
.footer-icon-three {
display: flex;
gap: 8px;
}
.footer-icon-two svg {
width: 20px;
height: 24px;
flex-shrink: 0;
}
.footer-column-two {
max-width: 304px;
}
.footer-column-three {
min-width: 161px;
}
.footer-column-four {
min-width: 252px;
}
.footer-icon-three svg {
width: 30px;
height: 24px;
flex-shrink: 0;
}
.ershad-logo {
width: 24px;
height: 24px;
}
.footer-column h3 {
margin-bottom: 24px;
color: #fff;
position: relative;
font-size: 18px;
}
.footer-column h3::after {
content: '';
position: absolute;
bottom: -8px;
right: 0;
width: 48px;
height: 1.5px;
background: #03aeff;
}
.footer-column ul {
list-style: none;
}
.footer-column ul li {
margin-bottom: 12px;
line-height: 1.8;
color: #9ea0a7;
}
.footer-column a {
text-decoration: none;
color: #9ea0a7;
font-size: 15px;
font-weight: 400;
}
.footer-column div {
font-size: 15px;
font-weight: 400;
}
.footer-column a:hover {
color: var(--color-primary);
}
.footer-logo {
width: 150px;
margin-bottom: 20px;
}
.footer-column-txt {
color: #9ea0a7;
font-size: 15px;
font-weight: 400;
line-height: 1.8;
}
.social-links {
display: flex;
gap: 8px;
}
.social-links a {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
transition: 0.3s;
}
.social-links SVG {
width: 32px;
height: 32px;
}
.footer-bottom {
text-align: right;
padding: 16px 0 24px 0;
color: #9ea0a7;
font-size: 12px;
font-weight: 400;
line-height: 1.8;
}
.footer-bottom span {
color: #cfd0d3;
}
.footer-bottom-line {
position: absolute;
bottom: 0;
margin-bottom: 62px;
width: 100%;
height: 1px;
background: #3d414e;
}

View File

@@ -0,0 +1,77 @@
<svg>
<symbol id="expand" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M28 28L20 20M21.6 28H28V21.6M10.4 28H4V21.6M4 28L12 20M21.6 4H28V10.4M28 4L20 12M10.4 4H4V10.4M4 4L12 12"
stroke="#1A1A2E"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
<symbol id="eye" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M2.06202 12.348C1.97868 12.1235 1.97868 11.8765 2.06202 11.652C2.87372 9.68385 4.25153 8.00103 6.02079 6.81689C7.79004 5.63275 9.87106 5.00061 12 5.00061C14.129 5.00061 16.21 5.63275 17.9792 6.81689C19.7485 8.00103 21.1263 9.68385 21.938 11.652C22.0214 11.8765 22.0214 12.1235 21.938 12.348C21.1263 14.3161 19.7485 15.999 17.9792 17.1831C16.21 18.3672 14.129 18.9994 12 18.9994C9.87106 18.9994 7.79004 18.3672 6.02079 17.1831C4.25153 15.999 2.87372 14.3161 2.06202 12.348Z"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
<path
d="M12 15C13.6569 15 15 13.6568 15 12C15 10.3431 13.6569 8.99999 12 8.99999C10.3432 8.99999 9.00002 10.3431 9.00002 12C9.00002 13.6568 10.3432 15 12 15Z"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
<symbol id="play" viewBox="0 0 11 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M0.75001 2.12914C0.749322 1.88513 0.809349 1.64531 0.92393 1.43432C1.03851 1.22332 1.20352 1.04874 1.40201 0.928505C1.6005 0.808269 1.82533 0.746706 2.05341 0.750136C2.2815 0.753566 2.50462 0.821866 2.69987 0.948024L9.12272 5.06888C9.31394 5.19079 9.47227 5.36374 9.58223 5.57079C9.69219 5.77783 9.75 6.01187 9.75 6.25C9.75 6.48812 9.69219 6.72217 9.58223 6.92921C9.47227 7.13626 9.31394 7.3092 9.12272 7.43112L2.69987 11.552C2.50453 11.6782 2.28129 11.7465 2.05309 11.7499C1.8249 11.7532 1.59998 11.6916 1.40145 11.5712C1.20291 11.4508 1.03793 11.276 0.923441 11.0648C0.808953 10.8536 0.749093 10.6136 0.75001 10.3695V2.12914Z"
fill="white"
stroke="white"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
<symbol id="t-blank" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M17 7H7V17M7 7L17 17"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" id="pause" viewBox="0 0 24 24">
<path d="M6.5,0A3.5,3.5,0,0,0,3,3.5v17a3.5,3.5,0,0,0,7,0V3.5A3.5,3.5,0,0,0,6.5,0Z" />
<path d="M17.5,0A3.5,3.5,0,0,0,14,3.5v17a3.5,3.5,0,0,0,7,0V3.5A3.5,3.5,0,0,0,17.5,0Z" />
</symbol>
<symbol id="left" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 12L6 8L10 4" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="chevrons-left" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.33333 11.3332L4 7.99984L7.33333 4.6665M12 11.3332L8.66667 7.99984L12 4.6665"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
<symbol id="chevrons-right" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M4 11.3332L7.33333 7.99984L4 4.6665M8.66667 11.3332L12 7.99984L8.66667 4.6665"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
<symbol id="right" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 12L10 8L6 4" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="arrow-left" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M10.0001 4.16675L4.16675 10.0001L10.0001 15.8334M4.16675 10.0001H15.8334"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</symbol>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 66 KiB

View File

14
src/assets/js/header.js Normal file
View File

@@ -0,0 +1,14 @@
console.log('test');
const headerMenuBtn = document.querySelector('.header-menu-toggle');
const headerMobileMenu = document.querySelector('.header-mobile-menu');
headerMenuBtn.addEventListener('click', () => {
headerMobileMenu.classList.toggle('active');
});
const headerCloseBtn = document.querySelector('.header-mobile-close');
headerCloseBtn.addEventListener('click', () => {
headerMobileMenu.classList.remove('active');
});

0
src/components/.gitkeep Normal file
View File

View File

View File

@@ -0,0 +1,232 @@
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: 100;
src:
url('../fonts/yekanbakhpro/woff/YekanBakhFaNum-thin.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/YekanBakhFaNum-thin.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: 300;
src:
url('../fonts/yekanbakhpro/woff/YekanBakhFaNum-Light.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/YekanBakhFaNum-Light.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: normal;
src:
url('../fonts/yekanbakhpro/woff/YekanBakhFaNum-Regular.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/YekanBakhFaNum-Regular.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: 600;
src:
url('../fonts/yekanbakhpro/woff/YekanBakhFaNum-SemiBold.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/YekanBakhFaNum-SemiBold.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: bold;
src:
url('../fonts/yekanbakhpro/woff/YekanBakhFaNum-Bold.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/YekanBakhFaNum-Bold.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: 800;
src:
url('../fonts/yekanbakhpro/woff/Yekan Bakh FaNum-ExtraBold.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/Yekan Bakh FaNum-ExtraBold.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: 900;
src:
url('../fonts/yekanbakhpro/woff/Yekan Bakh FaNum-Black.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/Yekan Bakh FaNum-Black.woff2') format('woff2');
}
@font-face {
font-family: Yekan Bakh FaNum;
font-style: normal;
font-weight: 950;
src:
url('../fonts/yekanbakhpro/woff/Yekan Bakh FaNum-ExtraBlack.woff') format('woff'),
url('../fonts/yekanbakhpro/woff2/Yekan Bakh FaNum-ExtraBlack.woff2') format('woff2');
}
:root {
--color-primary: #0274b3;
--color-title: #1a1a2e;
--color-text: #505068;
--color-body-text: #6a6a6a;
--bg-gray: #f9f9f9;
--color-pastel-main: #c5d7ec;
--blue-50: #eaf7ff;
--blue-100: #c5eaff;
--blue-150: #a1ddff;
--blue-200: #7cd0ff;
--blue-300: #57c3ff;
--blue-400: #32b6ff;
--blue-500: #1796dc;
--blue-600: #0274b3; /* همان primary */
--blue-700: #00598a;
--blue-800: #003f61;
/* Breakpoints */
/* --breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--breakpoint-xxl: 1400px; */
}
* {
margin: 0;
padding: 0;
direction: rtl;
box-sizing: border-box;
font-family: 'Yekan Bakh FaNum', sans-serif;
font-weight: normal;
}
html {
scroll-behavior: smooth;
/* scrollbar-gutter: stable; */
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: bold;
line-height: 1.5;
color: var(--color-title);
}
h1 {
font-size: 36px;
}
h2 {
font-size: 24px;
}
h3 {
font-size: 22px;
}
h4 {
font-size: 20px;
}
h5 {
font-size: 15px;
}
p {
line-height: 1.75;
font-size: 15px;
color: var(--color-text);
}
a {
text-decoration: none;
line-height: 1.75;
color: var(--blue-500);
}
div,
span,
button,
a,
li {
line-height: inherit;
}
i {
font-style: normal;
}
/* برای Chrome، Edge و Safari */
@media (max-width: 767px) {
h1 {
font-size: 24px;
}
h2 {
font-size: 22px;
}
h3 {
font-size: 18px;
}
h4 {
font-size: 16px;
}
h5 {
font-size: 14px;
}
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
*::-webkit-scrollbar {
width: 10px;
}
*::-webkit-scrollbar-track {
background: #fff;
}
*::-webkit-scrollbar-thumb {
background-color: var(--color-primary);
border-radius: 10px;
border: 3px solid #fff;
}
}
/* برای Firefox */
@-moz-document url-prefix() {
* {
scrollbar-width: thin;
scrollbar-color: var(--color-primary) #fff;
}
}
::selection {
background: var(--color-primary);
color: #fff;
}
/* Hide number arrows */
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type='number'] {
-moz-appearance: textfield;
}
button {
border: none;
outline: none;
background: none;
cursor: pointer;
}
/* Hide scrollbar for Chrome, Safari and Opera */
.no-scrollbar::-webkit-scrollbar {
display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
.no-scrollbar {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}

0
src/templates/.gitkeep Normal file
View File

28
vite.config.js Normal file
View File

@@ -0,0 +1,28 @@
import { defineConfig } from 'vite';
import { resolve } from 'path';
export default defineConfig({
resolve: {
alias: {
'@': resolve(__dirname, 'src'), // @ → src/
'@core': resolve(__dirname, 'src/core'),
'@components': resolve(__dirname, 'src/components'),
},
},
build: {
rollupOptions: {
input: {
main: resolve(__dirname, 'index.html'),
footer: resolve(__dirname, 'footer.html'),
},
},
manifest: true,
cssCodeSplit: true,
},
server: {
open: true,
port: 5173,
},
});