init
25
.gitignore
vendored
Normal 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
@@ -0,0 +1,4 @@
|
|||||||
|
dist/
|
||||||
|
node_modules/
|
||||||
|
public/
|
||||||
|
*.min.js
|
||||||
13
.prettierrc.json
Normal 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
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["esbenp.prettier-vscode"],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
||||||
19
.vscode/settings.json
vendored
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
32
README.md
@@ -1,2 +1,32 @@
|
|||||||
# homepage
|
# 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
|
||||||
|
```
|
||||||
|
|||||||
1251
homepage.html
Normal file
14
index.html
Normal 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
@@ -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
@@ -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
0
public/images/.gitkeep
Normal file
BIN
public/images/1.png
Normal file
|
After Width: | Height: | Size: 253 KiB |
BIN
public/images/2.png
Normal file
|
After Width: | Height: | Size: 199 KiB |
BIN
public/images/CTA-pic.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/images/DigitalPublish 1.png
Normal file
|
After Width: | Height: | Size: 738 B |
BIN
public/images/Group.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
public/images/Vector (1).png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/images/Vector.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/images/bishp 1.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/images/blure-effect 1.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/images/hamkaran.png
Normal file
|
After Width: | Height: | Size: 890 B |
BIN
public/images/hesabdari.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/images/images 1.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/images/ipka.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
public/images/king 1.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/images/nil.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/petboom.png
Normal file
|
After Width: | Height: | Size: 1016 B |
BIN
public/images/prof.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
public/images/sepidar.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/snap.png
Normal file
|
After Width: | Height: | Size: 862 B |
BIN
public/images/soldier 1.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
public/images/soldier 2.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
public/images/thumb.png
Normal file
|
After Width: | Height: | Size: 473 KiB |
BIN
public/images/videotest.mp4
Normal file
BIN
public/images/zabanmehr (1).png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
public/images/zabanmehr (3).png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/images/zarin.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
public/images/Ñëîé_10.png
Normal file
|
After Width: | Height: | Size: 770 B |
390
src/assets/css/homepage-responsive.css
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
@media screen and (max-width: 1400px) {
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 1200px) {
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 992px) {
|
||||||
|
.services-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
.text-content h3 {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
.service-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
.comments-section-wrapper {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
.about-content {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 25px;
|
||||||
|
}
|
||||||
|
.video-wrapper {
|
||||||
|
order: 1;
|
||||||
|
}
|
||||||
|
.content-wrapper {
|
||||||
|
order: 2;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.content-wrapper h2 {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
.badge {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.piece-1 {
|
||||||
|
position: absolute;
|
||||||
|
width: 312px;
|
||||||
|
left: 152px;
|
||||||
|
top: 21%;
|
||||||
|
}
|
||||||
|
.piece-2 {
|
||||||
|
position: absolute;
|
||||||
|
width: 482px;
|
||||||
|
left: 160px;
|
||||||
|
bottom: -144px;
|
||||||
|
}
|
||||||
|
.piece-4 {
|
||||||
|
position: absolute;
|
||||||
|
width: 472px;
|
||||||
|
right: -305px;
|
||||||
|
top: 32%;
|
||||||
|
}
|
||||||
|
.piece-5 {
|
||||||
|
position: absolute;
|
||||||
|
width: 290px;
|
||||||
|
right: -127px;
|
||||||
|
bottom: -92px;
|
||||||
|
}
|
||||||
|
.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) {
|
||||||
|
.related-boxes {
|
||||||
|
grid-template-columns: repeat(1, minmax(326px, 350px));
|
||||||
|
}
|
||||||
|
.related-title {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
.related-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.related-button-mobile {
|
||||||
|
display: flex;
|
||||||
|
gap: 8px;
|
||||||
|
height: 40px;
|
||||||
|
padding: 0px 12px 0px 10px;
|
||||||
|
background-color: var(--color-primary);
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #ffffff;
|
||||||
|
align-items: center;
|
||||||
|
align-self: center;
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
|
.related-button-mobile span {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.services-horizontal {
|
||||||
|
padding: 30px 14px;
|
||||||
|
border-radius: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.services-header {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.services-header h2 {
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.services-header p {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.services-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-content {
|
||||||
|
min-height: 72px;
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-bubble {
|
||||||
|
width: 46px;
|
||||||
|
height: 46px;
|
||||||
|
min-width: 46px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-content h3 {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-content p {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.container-service-section {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.service-section > .container-service-section {
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
.service-section {
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-header {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-heading {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-tagline {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-content {
|
||||||
|
min-height: 72px;
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-icon {
|
||||||
|
width: 46px;
|
||||||
|
height: 46px;
|
||||||
|
min-width: 46px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-title {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-description {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
.related-under-box {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.consultation-title {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.consultation-title-phone {
|
||||||
|
display: block;
|
||||||
|
color: var(--color-primary);
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
.consultation-text {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.desktop1 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mobile-stat {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 576px) {
|
||||||
|
.hero-bg-word {
|
||||||
|
font-size: 257px;
|
||||||
|
|
||||||
|
top: 57%;
|
||||||
|
left: 50%;
|
||||||
|
|
||||||
|
transform: translate(-50%, -50%) rotate(90deg) !important;
|
||||||
|
|
||||||
|
transform-origin: center;
|
||||||
|
}
|
||||||
|
.comments-section-brand-card {
|
||||||
|
position: relative;
|
||||||
|
height: 117px;
|
||||||
|
border: 1px solid #dfdfdf;
|
||||||
|
border-radius: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.comments-section-brands {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
.comments-section-title {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
.consultation-container {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.consultation-box {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
.piece-4 {
|
||||||
|
width: 258px;
|
||||||
|
right: -236px;
|
||||||
|
top: 18%;
|
||||||
|
}
|
||||||
|
.piece-2 {
|
||||||
|
width: 304px;
|
||||||
|
left: 45px;
|
||||||
|
bottom: -15%;
|
||||||
|
}
|
||||||
|
.piece-3 {
|
||||||
|
width: 641px;
|
||||||
|
}
|
||||||
|
.piece-5 {
|
||||||
|
width: 206px;
|
||||||
|
right: -180px;
|
||||||
|
bottom: -10%;
|
||||||
|
}
|
||||||
|
.piece-1 {
|
||||||
|
width: 172px;
|
||||||
|
left: 22px;
|
||||||
|
top: 18%;
|
||||||
|
}
|
||||||
|
.h-txt1 {
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
.h-txt2 {
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
.word {
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-text-hero {
|
||||||
|
color: var(--color-primary);
|
||||||
|
font-size: 30px;
|
||||||
|
width: 153px;
|
||||||
|
}
|
||||||
|
.hero-actions {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.hero-btn-primary,
|
||||||
|
.hero-btn-secondary {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.hero-content p {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
.footer-cta {
|
||||||
|
left: 20px;
|
||||||
|
right: 20px;
|
||||||
|
}
|
||||||
|
.footer {
|
||||||
|
padding-top: 129px;
|
||||||
|
}
|
||||||
|
.footer-bottom-line {
|
||||||
|
margin-bottom: 92px;
|
||||||
|
}
|
||||||
|
.video-title {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.play-btn-about svg {
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
.arrow-btn-about svg {
|
||||||
|
width: 72px;
|
||||||
|
height: 70px;
|
||||||
|
}
|
||||||
|
}
|
||||||
1617
src/assets/css/homepage.css
Normal file
77
src/assets/icons/portfolioGallery.svg
Normal 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 |
1426
src/assets/icons/portfolioP.svg
Normal file
|
After Width: | Height: | Size: 84 KiB |
0
src/assets/images/.gitkeep
Normal file
BIN
src/assets/images/CTA-pic.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
392
src/assets/js/homepage.js
Normal file
@@ -0,0 +1,392 @@
|
|||||||
|
// ====================================هدر===========================
|
||||||
|
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');
|
||||||
|
});
|
||||||
|
|
||||||
|
// ==========================هیروسکشن===================================
|
||||||
|
|
||||||
|
window.addEventListener('load', () => {
|
||||||
|
const bgWord = document.querySelector('.hero-bg-word');
|
||||||
|
const header = document.querySelector('.hero-header');
|
||||||
|
const content = document.querySelector('.hero-content');
|
||||||
|
const pieces = document.querySelectorAll('.piece');
|
||||||
|
|
||||||
|
const heroSection = document.querySelector('.hero-section');
|
||||||
|
|
||||||
|
const observer = new IntersectionObserver(
|
||||||
|
([entry]) => {
|
||||||
|
if (!entry.isIntersecting) {
|
||||||
|
header.classList.add('sticky');
|
||||||
|
} else {
|
||||||
|
header.classList.remove('sticky');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
threshold: 0.05,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
observer.observe(heroSection);
|
||||||
|
const inovaDuration = 2800;
|
||||||
|
const pauseAfterInova = 600;
|
||||||
|
|
||||||
|
const headerDuration = 800;
|
||||||
|
const contentDuration = 600;
|
||||||
|
|
||||||
|
const pauseAfterContent = 600;
|
||||||
|
|
||||||
|
const piecesDuration = 1000;
|
||||||
|
|
||||||
|
// STEP 1
|
||||||
|
setTimeout(() => {
|
||||||
|
bgWord.style.animation = 'revealInova 500ms ease-out 150ms forwards';
|
||||||
|
}, 0);
|
||||||
|
|
||||||
|
// STEP 2
|
||||||
|
setTimeout(() => {
|
||||||
|
header.style.animation = 'showHeader .8s ease forwards';
|
||||||
|
|
||||||
|
content.style.animation = 'showContent .6s ease forwards';
|
||||||
|
}, 1200);
|
||||||
|
|
||||||
|
// STEP 3
|
||||||
|
setTimeout(() => {
|
||||||
|
pieces.forEach((piece) => {
|
||||||
|
piece.style.animation = `risePiece 1200ms ease-in-out forwards`;
|
||||||
|
});
|
||||||
|
}, 1800);
|
||||||
|
|
||||||
|
// STEP 4
|
||||||
|
setTimeout(() => {
|
||||||
|
pieces.forEach((piece, index) => {
|
||||||
|
piece.style.animation += `,
|
||||||
|
floating ${4 + index}s ease-in-out 2000ms infinite`;
|
||||||
|
});
|
||||||
|
}, 2400);
|
||||||
|
});
|
||||||
|
|
||||||
|
const wrapper = document.querySelector('.words-wrapper');
|
||||||
|
|
||||||
|
let index = 0;
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
index = (index + 1) % 3;
|
||||||
|
|
||||||
|
wrapper.style.transform = `translateY(-${index * 50}px)`;
|
||||||
|
}, 1400);
|
||||||
|
|
||||||
|
// =============== جدیدترین نمونه کارها ======================================
|
||||||
|
function initRelatedSection(section) {
|
||||||
|
const cards = section.querySelectorAll('.related-card');
|
||||||
|
|
||||||
|
cards.forEach((card) => {
|
||||||
|
const container = card.querySelector('.media-container');
|
||||||
|
|
||||||
|
if (!container) return;
|
||||||
|
if (container.dataset.initialized === 'true') return;
|
||||||
|
container.dataset.initialized = 'true';
|
||||||
|
|
||||||
|
const progressCircle = card.querySelector('.progress-circle');
|
||||||
|
const type = container.dataset.type;
|
||||||
|
const src = container.dataset.src;
|
||||||
|
|
||||||
|
if (!type || !src) return;
|
||||||
|
|
||||||
|
card.classList.add(type === 'video' ? 'is-video' : 'is-image');
|
||||||
|
if (type === 'video') {
|
||||||
|
const ext = src.split('.').pop().toLowerCase();
|
||||||
|
const video = document.createElement('video');
|
||||||
|
video.muted = true;
|
||||||
|
video.playsInline = true;
|
||||||
|
video.preload = 'metadata';
|
||||||
|
|
||||||
|
const source = document.createElement('source');
|
||||||
|
source.src = src;
|
||||||
|
source.type = `video/${ext}`;
|
||||||
|
|
||||||
|
video.appendChild(source);
|
||||||
|
container.appendChild(video);
|
||||||
|
|
||||||
|
if (!progressCircle) return;
|
||||||
|
const radius = progressCircle.r.baseVal.value;
|
||||||
|
const circumference = 2 * Math.PI * radius;
|
||||||
|
progressCircle.style.strokeDasharray = circumference;
|
||||||
|
progressCircle.style.strokeDashoffset = circumference;
|
||||||
|
|
||||||
|
let stopTimeout;
|
||||||
|
|
||||||
|
card.addEventListener('mouseenter', async () => {
|
||||||
|
clearTimeout(stopTimeout);
|
||||||
|
|
||||||
|
try {
|
||||||
|
video.currentTime = 0;
|
||||||
|
|
||||||
|
await video.play();
|
||||||
|
|
||||||
|
progressCircle.style.transition = 'none';
|
||||||
|
progressCircle.style.strokeDashoffset = circumference;
|
||||||
|
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
progressCircle.style.transition = 'stroke-dashoffset 5s linear';
|
||||||
|
|
||||||
|
progressCircle.style.strokeDashoffset = 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
stopTimeout = setTimeout(() => {
|
||||||
|
video.pause();
|
||||||
|
video.currentTime = 0;
|
||||||
|
|
||||||
|
progressCircle.style.transition = 'none';
|
||||||
|
progressCircle.style.strokeDashoffset = circumference;
|
||||||
|
}, 5000);
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
card.addEventListener('mouseleave', () => {
|
||||||
|
clearTimeout(stopTimeout);
|
||||||
|
|
||||||
|
video.pause();
|
||||||
|
video.currentTime = 0;
|
||||||
|
|
||||||
|
progressCircle.style.transition = 'none';
|
||||||
|
progressCircle.style.strokeDashoffset = circumference;
|
||||||
|
});
|
||||||
|
card.addEventListener('click', () => {
|
||||||
|
if (type === 'video') {
|
||||||
|
openVideoPopup(src);
|
||||||
|
} else {
|
||||||
|
openImagePopup(src);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (type === 'image') {
|
||||||
|
const img = document.createElement('img');
|
||||||
|
img.src = src;
|
||||||
|
img.alt = 'portfolio';
|
||||||
|
|
||||||
|
container.appendChild(img);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function initGalleryFilter(section) {
|
||||||
|
const tabs = section.querySelectorAll('.tabs button');
|
||||||
|
const cards = section.querySelectorAll('.related-card');
|
||||||
|
|
||||||
|
tabs.forEach((tab) => {
|
||||||
|
tab.addEventListener('click', () => {
|
||||||
|
tabs.forEach((btn) => {
|
||||||
|
btn.classList.remove('current');
|
||||||
|
});
|
||||||
|
|
||||||
|
tab.classList.add('current');
|
||||||
|
|
||||||
|
const text = tab.querySelector('.txt')?.textContent.trim();
|
||||||
|
cards.forEach((card) => {
|
||||||
|
const media = card.querySelector('.media-container');
|
||||||
|
if (!media) return;
|
||||||
|
|
||||||
|
const type = media.dataset.type;
|
||||||
|
if (text === 'همه') {
|
||||||
|
card.style.display = '';
|
||||||
|
} else if (text === 'ویدیو') {
|
||||||
|
if (type === 'video') {
|
||||||
|
card.style.display = '';
|
||||||
|
} else {
|
||||||
|
card.style.display = 'none';
|
||||||
|
}
|
||||||
|
} else if (text === 'تصاویر') {
|
||||||
|
if (type === 'image') {
|
||||||
|
card.style.display = '';
|
||||||
|
} else {
|
||||||
|
card.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('.related-content p').forEach((item) => {
|
||||||
|
item.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
document.querySelectorAll('[data-related-section]').forEach((section) => {
|
||||||
|
initRelatedSection(section);
|
||||||
|
initGalleryFilter(section);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// relatedCards.forEach((card, index) => {
|
||||||
|
// card.addEventListener('click', (e) => {
|
||||||
|
// if (e.target.closest('.play-btn')) return;
|
||||||
|
|
||||||
|
// openPopupByIndex(index + 1);
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
|
const revealElements = document.querySelectorAll('.reveal-top');
|
||||||
|
|
||||||
|
const observer = new IntersectionObserver(
|
||||||
|
(entries) => {
|
||||||
|
entries.forEach((entry) => {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
entry.target.classList.add('active');
|
||||||
|
observer.unobserve(entry.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
{
|
||||||
|
threshold: 0.2,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
revealElements.forEach((el) => observer.observe(el));
|
||||||
|
// =========================================== 300پروژه ================================================
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const stats = [
|
||||||
|
{ number: '1.5X', text: 'افزایش رشد/فروش' },
|
||||||
|
{ number: '45+', text: 'تعداد مشتریان' },
|
||||||
|
{ number: '91%', text: 'رضایت کارفرمایان' },
|
||||||
|
{ number: '300+', text: 'پروژه موفق' },
|
||||||
|
];
|
||||||
|
|
||||||
|
const numberEl = document.getElementById('mobileNumber');
|
||||||
|
const textEl = document.getElementById('mobileText');
|
||||||
|
const content = document.querySelector('.mobile-content');
|
||||||
|
|
||||||
|
let index = 0;
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
content.classList.add('fade-out');
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
index = (index + 1) % stats.length;
|
||||||
|
|
||||||
|
numberEl.textContent = stats[index].number;
|
||||||
|
textEl.textContent = stats[index].text;
|
||||||
|
|
||||||
|
content.classList.remove('fade-out');
|
||||||
|
}, 500);
|
||||||
|
}, 3000);
|
||||||
|
});
|
||||||
|
|
||||||
|
const slider = document.querySelector('.op-box');
|
||||||
|
const cards = document.querySelectorAll('.op-card');
|
||||||
|
const pagination = document.querySelector('.op-pagination');
|
||||||
|
|
||||||
|
let cardWidth;
|
||||||
|
let cardsPerPage;
|
||||||
|
let totalPages;
|
||||||
|
|
||||||
|
function setupSlider() {
|
||||||
|
const style = window.getComputedStyle(slider);
|
||||||
|
const gap = parseInt(style.gap) || 0;
|
||||||
|
|
||||||
|
cardWidth = cards[0].offsetWidth + gap;
|
||||||
|
|
||||||
|
cardsPerPage = Math.round(slider.offsetWidth / cardWidth);
|
||||||
|
if (cardsPerPage < 1) cardsPerPage = 1;
|
||||||
|
|
||||||
|
totalPages = Math.ceil(cards.length / cardsPerPage);
|
||||||
|
|
||||||
|
pagination.innerHTML = '';
|
||||||
|
|
||||||
|
for (let i = 0; i < totalPages; i++) {
|
||||||
|
const dot = document.createElement('div');
|
||||||
|
dot.classList.add('op-dot');
|
||||||
|
|
||||||
|
if (i === 0) dot.classList.add('active');
|
||||||
|
|
||||||
|
dot.addEventListener('click', () => {
|
||||||
|
const scrollPosition = i * cardsPerPage * cardWidth;
|
||||||
|
|
||||||
|
slider.scrollTo({
|
||||||
|
left: scrollPosition,
|
||||||
|
behavior: 'smooth',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
pagination.appendChild(dot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setupSlider();
|
||||||
|
|
||||||
|
window.addEventListener('resize', setupSlider);
|
||||||
|
|
||||||
|
slider.addEventListener('scroll', () => {
|
||||||
|
const index = Math.round(Math.abs(slider.scrollLeft) / cardWidth);
|
||||||
|
const page = Math.floor(index / cardsPerPage);
|
||||||
|
|
||||||
|
const dots = document.querySelectorAll('.op-dot');
|
||||||
|
|
||||||
|
dots.forEach((d) => d.classList.remove('active'));
|
||||||
|
|
||||||
|
if (dots[page]) {
|
||||||
|
dots[page].classList.add('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let isDown = false;
|
||||||
|
let startX;
|
||||||
|
let scrollLeft;
|
||||||
|
|
||||||
|
slider.addEventListener('mousedown', (e) => {
|
||||||
|
isDown = true;
|
||||||
|
slider.classList.add('active');
|
||||||
|
startX = e.pageX - slider.offsetLeft;
|
||||||
|
scrollLeft = slider.scrollLeft;
|
||||||
|
|
||||||
|
slider.style.cursor = 'grabbing';
|
||||||
|
});
|
||||||
|
|
||||||
|
slider.addEventListener('mouseleave', () => {
|
||||||
|
isDown = false;
|
||||||
|
slider.style.cursor = 'grab';
|
||||||
|
});
|
||||||
|
|
||||||
|
slider.addEventListener('mouseup', () => {
|
||||||
|
isDown = false;
|
||||||
|
slider.style.cursor = 'grab';
|
||||||
|
});
|
||||||
|
|
||||||
|
slider.addEventListener('mousemove', (e) => {
|
||||||
|
if (!isDown) return;
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
const x = e.pageX - slider.offsetLeft;
|
||||||
|
const walk = (x - startX) * 2;
|
||||||
|
slider.scrollLeft = scrollLeft - walk;
|
||||||
|
});
|
||||||
|
slider.style.cursor = 'grab';
|
||||||
|
|
||||||
|
// ========================================
|
||||||
|
|
||||||
|
document.querySelectorAll('.slider-track').forEach((track) => {
|
||||||
|
const items = Array.from(track.children);
|
||||||
|
items.forEach((item) => track.appendChild(item.cloneNode(true)));
|
||||||
|
});
|
||||||
|
|
||||||
|
// ================================درباره اینوا=============================
|
||||||
|
const thumbnail = document.getElementById('videoThumbnail');
|
||||||
|
const video = document.getElementById('aboutVideo');
|
||||||
|
|
||||||
|
thumbnail.addEventListener('click', () => {
|
||||||
|
thumbnail.style.display = 'none';
|
||||||
|
|
||||||
|
video.style.display = 'block';
|
||||||
|
|
||||||
|
video.play();
|
||||||
|
});
|
||||||
0
src/components/.gitkeep
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-Black.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-Bold.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-ExtraBlack.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-ExtraBold.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-Light.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-Regular.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-SemiBold.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff/YekanBakhFaNum-Thin.woff
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-Black.woff2
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-Bold.woff2
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-ExtraBold.woff2
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-Light.woff2
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-Regular.woff2
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-SemiBold.woff2
Normal file
BIN
src/core/fonts/yekanbakhpro/woff2/YekanBakhFaNum-Thin.woff2
Normal file
0
src/core/javascript/core.js
Normal file
232
src/core/stylesheet/core.css
Normal 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
28
vite.config.js
Normal 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, 'homepage.html'),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
manifest: true,
|
||||||
|
cssCodeSplit: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
server: {
|
||||||
|
open: true,
|
||||||
|
port: 5173,
|
||||||
|
},
|
||||||
|
});
|
||||||