feat: doc templating & cleanup of routes (#4411)

* feat: clean up route structure

* feat: install html-pdf-node-ts

* fea

* feat: use @ceereals/vue-pdf (react-pdf)

* feat: remove pdf

* feat: hide cc

* feat: shared template

* feat: payment statement document & redirect for emails

* feat: layout tweaks

* fix: lint issues

* fix: robots.txt

* feat: remove letterhead

* Delete .claude/settings.local.json

Signed-off-by: Calum H. <contact@cal.engineer>

---------

Signed-off-by: Calum H. <contact@cal.engineer>
This commit is contained in:
Calum H.
2025-10-07 11:47:59 +01:00
committed by GitHub
parent 59e48ea2b1
commit cb5600ad45
38 changed files with 681 additions and 325 deletions
@@ -0,0 +1,36 @@
import type { Component } from 'vue'
export default {
// Account
'auth-method-added': () => import('./account/AuthenticationMethodAdded.vue'),
'auth-method-removed': () => import('./account/AuthenticationMethodRemoved.vue'),
'email-changed': () => import('./account/EmailChanged.vue'),
'password-changed': () => import('./account/PasswordChanged.vue'),
'password-removed': () => import('./account/PasswordRemoved.vue'),
'payment-failed': () => import('./account/PaymentFailed.vue'),
'reset-password': () => import('./account/ResetPassword.vue'),
'two-factor-added': () => import('./account/TwoFactorAdded.vue'),
'two-factor-removed': () => import('./account/TwoFactorRemoved.vue'),
'verify-email': () => import('./account/VerifyEmail.vue'),
'login-new-device': () => import('./account/LoginNewDevice.vue'),
'payout-available': () => import('./account/PayoutAvailable.vue'),
'personal-access-token-created': () => import('./account/PATCreated.vue'),
// Subscriptions
'subscription-tax-change': () => import('./account/SubscriptionTaxChange.vue'),
// Moderation
'report-submitted': () => import('./moderation/ReportSubmitted.vue'),
'report-status-updated': () => import('./moderation/ReportStatusUpdated.vue'),
'moderation-thread-message-received': () =>
import('./moderation/ModerationThreadMessageReceived.vue'),
// Project
'project-status-updated-neutral': () => import('./project/ProjectStatusUpdatedNeutral.vue'),
'project-status-approved': () => import('./project/ProjectStatusApproved.vue'),
'project-invited': () => import('./project/ProjectInvited.vue'),
'project-transferred': () => import('./project/ProjectTransferred.vue'),
// Organization
'organization-invited': () => import('./organization/OrganizationInvited.vue'),
} as Record<string, () => Promise<{ default: Component }>>