xpeditis2.0/apps/frontend/src/lib/assets.ts
2025-11-04 07:30:15 +01:00

77 lines
2.0 KiB
TypeScript

/**
* Asset Path Utilities
*
* Type-safe helpers for accessing static assets
*/
/**
* Asset categories
*/
export const AssetPaths = {
images: '/assets/images',
logos: '/assets/logos',
icons: '/assets/icons',
} as const;
/**
* Get full path to an image asset
* @param filename - The image filename (e.g., 'hero-banner.jpg')
* @returns Full path to the image
*/
export function getImagePath(filename: string): string {
return `${AssetPaths.images}/${filename}`;
}
/**
* Get full path to a logo asset
* @param filename - The logo filename (e.g., 'xpeditis-logo.svg')
* @returns Full path to the logo
*/
export function getLogoPath(filename: string): string {
return `${AssetPaths.logos}/${filename}`;
}
/**
* Get full path to an icon asset
* @param filename - The icon filename (e.g., 'shipping-icon.svg')
* @returns Full path to the icon
*/
export function getIconPath(filename: string): string {
return `${AssetPaths.icons}/${filename}`;
}
/**
* Predefined asset paths for common images
*/
export const Images = {
// Add your common images here as they are added to the project
// Example:
// heroBanner: getImagePath('hero-banner.jpg'),
// shippingContainer: getImagePath('shipping-container.png'),
} as const;
/**
* Predefined asset paths for logos
*/
export const Logos = {
// Add your logos here as they are added to the project
// Example:
// main: getLogoPath('xpeditis-logo.svg'),
// dark: getLogoPath('xpeditis-logo-dark.svg'),
// light: getLogoPath('xpeditis-logo-light.svg'),
// icon: getLogoPath('xpeditis-icon.svg'),
} as const;
/**
* Predefined asset paths for icons
*/
export const Icons = {
// Add your icons here as they are added to the project
// Example:
// shipping: getIconPath('shipping-icon.svg'),
// tracking: getIconPath('tracking-icon.svg'),
// booking: getIconPath('booking-icon.svg'),
// dashboard: getIconPath('dashboard-icon.svg'),
// notification: getIconPath('notification-icon.svg'),
} as const;