952373fce5
Триггер фазы 2 выполнен — первый коммит в app/resources/js/. Активирует 5 из 6 инструментов фазы 2 (CLAUDE.md §3.3) — без Histoire (отдельно). Tailwind удалён (правило CLAUDE.md §5 п.2). Стек: - vue@3.5, vuetify@3.12, @vitejs/plugin-vue@6 (для Vite 8 совместимости — @vitejs/plugin-vue@5 поддерживает только Vite 5/6), vite-plugin-vuetify@2 (auto-import), sass-embedded - eslint@10 (flat-config), eslint-plugin-vue@10, @vue/eslint-config-typescript@14, eslint-config-prettier, prettier@3.8 - typescript@6, vue-tsc@3.2 - vitest@4.1, @vue/test-utils, jsdom, @vitest/coverage-v8 Конфиги: - app/vite.config.js — vue + vuetify auto-import - app/vitest.config.ts — jsdom + setup file для ResizeObserver/ IntersectionObserver/matchMedia/CSS.supports stubs (без них Vuetify падает в JSDOM) - app/eslint.config.js — flat-config - app/.prettierrc.json, app/tsconfig.json Frontend-структура: - resources/js/app.ts — точка входа - resources/js/plugins/vuetify.ts — палитра Forest (Teal/ivory/теало-нуар из BRANDBOOK_v2 §3) - resources/js/components/AppShell.vue — первый компонент: v-app + v-app-bar + v-card - resources/css/app.css — Inter (UI, opsz axis), JetBrains Mono (.numeric, tnum) - resources/views/welcome.blade.php — упрощён под Vue mount Smoke-тесты Vitest 3/3 за 2.8 сек: - монтируется без ошибок - содержит «Лидерра.» - рендерит chip с фазой 2 Build: 158 модулей за 386 ms (184 KB JS / 295 KB CSS gzipped). npm-scripts: lint:vue, format, format:check, type-check, test:vue. lefthook job #8 (ESLint на staged .ts/.vue) добавлен в pre-commit. Полный type-check (vue-tsc) и Vitest — отдельно вручную (медленно для pre-commit: ~3 сек на каждый). CLAUDE.md v1.16 → v1.17 (фаза 1 → фаза 2 в §6). Реестр Открытые_вопросы v1.25 → v1.26. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
1.7 KiB
Vue
44 lines
1.7 KiB
Vue
<script setup lang="ts">
|
|
/**
|
|
* Корневая Vuetify-обёртка приложения.
|
|
*
|
|
* Пока минимальный layout (app-bar + main + footer-placeholder) — реальные
|
|
* экраны будут отдельными components/views, мапящимися в Vue Router
|
|
* по SPA-маршрутам. На MVP-старт фазы 2 — smoke-test того, что Vue +
|
|
* Vuetify собираются и палитра Forest применяется.
|
|
*
|
|
* Источник дизайна: liderra_v8_handoff/concepts/v8_dashboard.html.
|
|
*/
|
|
import { ref } from 'vue';
|
|
|
|
const product = ref('Лидерра.');
|
|
</script>
|
|
|
|
<template>
|
|
<v-app>
|
|
<v-app-bar color="secondary" :elevation="0">
|
|
<v-app-bar-title class="text-h6">
|
|
{{ product }}
|
|
</v-app-bar-title>
|
|
<template #append>
|
|
<v-chip color="primary" size="small" variant="elevated">phase 2</v-chip>
|
|
</template>
|
|
</v-app-bar>
|
|
|
|
<v-main>
|
|
<v-container>
|
|
<v-card class="pa-6" :max-width="640">
|
|
<h1 class="text-h4 mb-2">Vue 3 + Vuetify 3 — фаза 2 запущена</h1>
|
|
<p class="mb-4">
|
|
Триггер фазы 2 по
|
|
<code>CLAUDE.md §6</code> — первый коммит в <code>resources/js/</code>. Активирует tooling:
|
|
Volar, vue-tsc, ESLint+Prettier+Vue, Vitest, Histoire.
|
|
</p>
|
|
<v-btn color="primary">primary</v-btn>
|
|
<v-btn class="ms-2" color="secondary">secondary</v-btn>
|
|
</v-card>
|
|
</v-container>
|
|
</v-main>
|
|
</v-app>
|
|
</template>
|