Files
website/website/resources/js/Components/NavLink.vue
Claude Dev 26704f9721 Implement Phase 1: Foundation & Core Setup
Complete foundation for the EZSCALE billing platform replacing WHMCS:

- Install Composer deps (Fortify, Passport, Cashier, PayPal, Spatie Permissions, Inertia)
- Install Vue 3 + Inertia.js with Vite, 3 layouts (App, Auth, Admin)
- Configure subdomain routing (marketing, account, admin) with domain-based route files
- Create 30 database migrations (15 custom tables + package defaults)
- Create 14 Eloquent models with relationships, factories, and encrypted casts
- Set up Fortify auth with 7 Vue pages (Login, Register, ForgotPassword, ResetPassword, VerifyEmail, ConfirmPassword, TwoFactorChallenge)
- Add 2FA TOTP setup page with QR code and recovery codes
- Configure middleware (Inertia, Spatie roles/permissions, EnsureUserNotSuspended)
- Create seeders for roles/permissions, sample plans, and admin user
- Build dashboard controllers and Vue pages for customer and admin panels
- Add 4 shared Vue components (Card, Button, NavLink, FlashMessages)
- Generate Passport OAuth2 keys for future SSO/API use
- Write 24 Pest tests (auth, role-based access, models) — all passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 02:50:46 -05:00

23 lines
436 B
Vue

<script setup>
import { Link } from '@inertiajs/vue3';
defineProps({
href: String,
active: Boolean,
});
</script>
<template>
<Link
:href="href"
:class="[
'px-3 py-2 rounded-md text-sm font-medium',
active
? 'bg-gray-100 text-gray-900'
: 'text-gray-700 hover:text-gray-900 hover:bg-gray-100',
]"
>
<slot />
</Link>
</template>