- Added fonts:sync-google command (uses GOOGLE_FONTS_API_KEY, generates /public/fonts/google files, manifest, CSS, cache flush) and
exposed manifest via new GET /api/v1/tenant/fonts endpoint with fallbacks for existing local fonts.
- Imported generated fonts CSS, added API client + font loader hook, and wired branding page font fields to searchable selects (with
custom override) that auto-load selected fonts.
- Invites layout editor now offers font selection per element with runtime font loading for previews/export alignment.
- New tests cover font sync command and font manifest API.
Tests run: php artisan test --filter=Fonts --testsuite=Feature.
Note: repository already has other modified files (e.g., EventPublicController, SettingsStoreRequest, guest components, etc.); left
untouched. Run php artisan fonts:sync-google after setting the API key to populate /public/fonts/google.
36 lines
2.5 KiB
TypeScript
36 lines
2.5 KiB
TypeScript
export const ADMIN_BASE_PATH = '/event-admin';
|
|
|
|
export const adminPath = (suffix = ''): string => `${ADMIN_BASE_PATH}${suffix}`;
|
|
|
|
export const ADMIN_PUBLIC_LANDING_PATH = ADMIN_BASE_PATH;
|
|
export const ADMIN_HOME_PATH = adminPath('/dashboard');
|
|
export const ADMIN_DEFAULT_AFTER_LOGIN_PATH = adminPath('/dashboard');
|
|
export const ADMIN_LOGIN_PATH = adminPath('/login');
|
|
export const ADMIN_LOGIN_START_PATH = adminPath('/start');
|
|
export const ADMIN_AUTH_CALLBACK_PATH = adminPath('/auth/callback');
|
|
export const ADMIN_EVENTS_PATH = adminPath('/events');
|
|
export const ADMIN_SETTINGS_PATH = adminPath('/settings');
|
|
export const ADMIN_PROFILE_PATH = adminPath('/settings/profile');
|
|
export const ADMIN_FAQ_PATH = adminPath('/faq');
|
|
export const ADMIN_ENGAGEMENT_PATH = adminPath('/engagement');
|
|
export const buildEngagementTabPath = (tab: 'tasks' | 'collections' | 'emotions'): string =>
|
|
`${ADMIN_ENGAGEMENT_PATH}?tab=${encodeURIComponent(tab)}`;
|
|
export const ADMIN_BILLING_PATH = adminPath('/billing');
|
|
export const ADMIN_PHOTOS_PATH = adminPath('/photos');
|
|
export const ADMIN_LIVE_PATH = adminPath('/live');
|
|
export const ADMIN_WELCOME_BASE_PATH = adminPath('/welcome');
|
|
export const ADMIN_WELCOME_PACKAGES_PATH = adminPath('/welcome/packages');
|
|
export const ADMIN_WELCOME_SUMMARY_PATH = adminPath('/welcome/summary');
|
|
export const ADMIN_WELCOME_EVENT_PATH = adminPath('/welcome/event');
|
|
export const ADMIN_EVENT_CREATE_PATH = adminPath('/events/new');
|
|
|
|
export const ADMIN_EVENT_VIEW_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}`);
|
|
export const ADMIN_EVENT_EDIT_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/edit`);
|
|
export const ADMIN_EVENT_PHOTOS_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/photos`);
|
|
export const ADMIN_EVENT_MEMBERS_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/members`);
|
|
export const ADMIN_EVENT_TASKS_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/tasks`);
|
|
export const ADMIN_EVENT_INVITES_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/invites`);
|
|
export const ADMIN_EVENT_PHOTOBOOTH_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/photobooth`);
|
|
export const ADMIN_EVENT_RECAP_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/recap`);
|
|
export const ADMIN_EVENT_BRANDING_PATH = (slug: string): string => adminPath(`/events/${encodeURIComponent(slug)}/branding`);
|