From 836665f1ed5093258fe9f47a5bbc38463604bcdc Mon Sep 17 00:00:00 2001 From: Yro Boros Date: Sat, 31 Jan 2026 19:51:16 +1000 Subject: [PATCH] Initial commit --- .gitignore | 39 ++++++ .vscode/extensions.json | 6 + README.md | 57 +++++++++ e2e/vue.spec.js | 8 ++ index.html | 13 ++ jsconfig.json | 8 ++ package-lock.json | 0 package.json | 27 +++++ playwright.config.js | 110 +++++++++++++++++ public/favicon.ico | Bin 0 -> 4286 bytes src/App.vue | 59 +++++++++ src/assets/href.webp | Bin 0 -> 2884 bytes src/assets/logo.svg | 1 + src/assets/main.css | 16 +++ src/components/Authe.vue | 92 ++++++++++++++ src/components/Mob_naw.vue | 48 ++++++++ src/components/My_naw.vue | 53 ++++++++ src/components/Section.vue | 35 ++++++ src/components/Setings.vue | 240 +++++++++++++++++++++++++++++++++++++ src/components/Stat.vue | 106 ++++++++++++++++ src/components/Time.vue | 45 +++++++ src/main.js | 6 + vite.config.js | 15 +++ 23 files changed, 984 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 e2e/vue.spec.js create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 playwright.config.js create mode 100644 public/favicon.ico create mode 100644 src/App.vue create mode 100644 src/assets/href.webp create mode 100644 src/assets/logo.svg create mode 100644 src/assets/main.css create mode 100644 src/components/Authe.vue create mode 100644 src/components/Mob_naw.vue create mode 100644 src/components/My_naw.vue create mode 100644 src/components/Section.vue create mode 100644 src/components/Setings.vue create mode 100644 src/components/Stat.vue create mode 100644 src/components/Time.vue create mode 100644 src/main.js create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7414e0e --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo + +.eslintcache + +# Cypress +/cypress/videos/ +/cypress/screenshots/ + +# Vitest +__screenshots__/ + +test-results/ +playwright-report/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..928458f --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "Vue.volar", + "ms-playwright.playwright" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..12ad275 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# test + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Vue (Official)](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Recommended Browser Setup + +- Chromium-based browsers (Chrome, Edge, Brave, etc.): + - [Vue.js devtools](https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd) + - [Turn on Custom Object Formatter in Chrome DevTools](http://bit.ly/object-formatters) +- Firefox: + - [Vue.js devtools](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/) + - [Turn on Custom Object Formatter in Firefox DevTools](https://fxdx.dev/firefox-devtools-custom-object-formatters/) + +## Customize configuration + +See [Vite Configuration Reference](https://vite.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Compile and Minify for Production + +```sh +npm run build +``` + +### Run End-to-End Tests with [Playwright](https://playwright.dev) + +```sh +# Install browsers for the first run +npx playwright install + +# When testing on CI, must build the project first +npm run build + +# Runs the end-to-end tests +npm run test:e2e +# Runs the tests only on Chromium +npm run test:e2e -- --project=chromium +# Runs the tests of a specific file +npm run test:e2e -- tests/example.spec.ts +# Runs the tests in debug mode +npm run test:e2e -- --debug +``` diff --git a/e2e/vue.spec.js b/e2e/vue.spec.js new file mode 100644 index 0000000..fc116a9 --- /dev/null +++ b/e2e/vue.spec.js @@ -0,0 +1,8 @@ +import { test, expect } from '@playwright/test'; + +// See here how to get started: +// https://playwright.dev/docs/intro +test('visits the app root url', async ({ page }) => { + await page.goto('/'); + await expect(page.locator('h1')).toHaveText('You did it!'); +}) diff --git a/index.html b/index.html new file mode 100644 index 0000000..92673d0 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..5a1f2d2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json new file mode 100644 index 0000000..154cdca --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "test", + "version": "0.0.0", + "private": true, + "type": "module", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "test:e2e": "playwright test" + }, + "dependencies": { + "axios": "^1.13.2", + "tailwindcss": "^4.1.18", + "vue": "^3.5.25" + }, + "devDependencies": { + "@playwright/test": "^1.57.0", + "@tailwindcss/vite": "^4.1.18", + "@vitejs/plugin-vue": "^6.0.2", + "vite": "^7.3.0", + "vite-plugin-vue-devtools": "^8.0.5" + } +} diff --git a/playwright.config.js b/playwright.config.js new file mode 100644 index 0000000..5ece956 --- /dev/null +++ b/playwright.config.js @@ -0,0 +1,110 @@ +import process from 'node:process' +import { defineConfig, devices } from '@playwright/test' + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './e2e', + /* Maximum time one test can run for. */ + timeout: 30 * 1000, + expect: { + /** + * Maximum time expect() should wait for the condition to be met. + * For example in `await expect(locator).toHaveText();` + */ + timeout: 5000, + }, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ + actionTimeout: 0, + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: process.env.CI ? 'http://localhost:4173' : 'http://localhost:5173', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + + /* Only on CI systems run the tests headless */ + headless: !!process.env.CI, + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { + ...devices['Desktop Chrome'], + }, + }, + { + name: 'firefox', + use: { + ...devices['Desktop Firefox'], + }, + }, + { + name: 'webkit', + use: { + ...devices['Desktop Safari'], + }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { + // ...devices['Pixel 5'], + // }, + // }, + // { + // name: 'Mobile Safari', + // use: { + // ...devices['iPhone 12'], + // }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { + // channel: 'msedge', + // }, + // }, + // { + // name: 'Google Chrome', + // use: { + // channel: 'chrome', + // }, + // }, + ], + + /* Folder for test artifacts such as screenshots, videos, traces, etc. */ + // outputDir: 'test-results/', + + /* Run your local dev server before starting the tests */ + webServer: { + /** + * Use the dev server by default for faster feedback loop. + * Use the preview server on CI for more realistic testing. + * Playwright will re-use the local server if there is already a dev-server running. + */ + command: process.env.CI ? 'npm run preview' : 'npm run dev', + port: process.env.CI ? 4173 : 5173, + reuseExistingServer: !process.env.CI, + }, +}) diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..b1f3af1 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,59 @@ + + + + + + diff --git a/src/assets/href.webp b/src/assets/href.webp new file mode 100644 index 0000000000000000000000000000000000000000..31a43a73cb58ef51b838c0ea73a15f9b7c3f6fbe GIT binary patch literal 2884 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/src/assets/main.css b/src/assets/main.css new file mode 100644 index 0000000..b2b3ede --- /dev/null +++ b/src/assets/main.css @@ -0,0 +1,16 @@ +@import "tailwindcss"; + +/* Для темной темы */ +@media (prefers-color-scheme: dark) { + body { + background: #111; + /* другие стили для темной темы */ + } +} + +/* Для светлой темы (по умолчанию или явно) */ +@media (prefers-color-scheme: light) { + body { + background: #ccc; /* или любой другой цвет */ + } +} \ No newline at end of file diff --git a/src/components/Authe.vue b/src/components/Authe.vue new file mode 100644 index 0000000..dee8a8e --- /dev/null +++ b/src/components/Authe.vue @@ -0,0 +1,92 @@ + + + \ No newline at end of file diff --git a/src/components/Mob_naw.vue b/src/components/Mob_naw.vue new file mode 100644 index 0000000..02fe451 --- /dev/null +++ b/src/components/Mob_naw.vue @@ -0,0 +1,48 @@ + + + \ No newline at end of file diff --git a/src/components/My_naw.vue b/src/components/My_naw.vue new file mode 100644 index 0000000..63a26a2 --- /dev/null +++ b/src/components/My_naw.vue @@ -0,0 +1,53 @@ + + + \ No newline at end of file diff --git a/src/components/Section.vue b/src/components/Section.vue new file mode 100644 index 0000000..2321d20 --- /dev/null +++ b/src/components/Section.vue @@ -0,0 +1,35 @@ + + + + diff --git a/src/components/Setings.vue b/src/components/Setings.vue new file mode 100644 index 0000000..11377d0 --- /dev/null +++ b/src/components/Setings.vue @@ -0,0 +1,240 @@ + + + diff --git a/src/components/Stat.vue b/src/components/Stat.vue new file mode 100644 index 0000000..21514a2 --- /dev/null +++ b/src/components/Stat.vue @@ -0,0 +1,106 @@ + + + \ No newline at end of file diff --git a/src/components/Time.vue b/src/components/Time.vue new file mode 100644 index 0000000..dbdf88d --- /dev/null +++ b/src/components/Time.vue @@ -0,0 +1,45 @@ + + + \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..0ac3a5f --- /dev/null +++ b/src/main.js @@ -0,0 +1,6 @@ +import './assets/main.css' + +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..dc70e58 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,15 @@ +import { fileURLToPath, URL } from "node:url"; +import tailwindcss from "@tailwindcss/vite"; +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import vueDevTools from "vite-plugin-vue-devtools"; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue(), vueDevTools(), tailwindcss()], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, +});