UNPKG

wgp-next-shop-ui-lib

Version:

Библиотека UI-компонентов для Next-Shop с поддержкой e-commerce функций

161 lines (145 loc) 3.53 kB
// События export const EVENTS = { CART_UPDATED: 'cartUpdated', USER_LOGIN: 'userLogin', USER_LOGOUT: 'userLogout', SEARCH_PERFORMED: 'searchPerformed', FILTER_CHANGED: 'filterChanged' }; // Ключи localStorage export const STORAGE_KEYS = { CART: 'wgp-shop-cart', USER: 'wgp-shop-user', FAVORITES: 'wgp-shop-favorites', RECENT_SEARCHES: 'wgp-shop-recent-searches', FILTERS: 'wgp-shop-filters' }; // Статусы товаров export const PRODUCT_STATUS = { IN_STOCK: 'in_stock', OUT_OF_STOCK: 'out_of_stock', LIMITED_STOCK: 'limited_stock', PRE_ORDER: 'pre_order' }; // Типы бейджей export const BADGE_TYPES = { SALE: 'sale', NEW: 'new', HOT: 'hot', LIMITED: 'limited', BESTSELLER: 'bestseller' }; // Типы сортировки export const SORT_OPTIONS = { POPULARITY: 'popularity', PRICE_LOW_TO_HIGH: 'price_asc', PRICE_HIGH_TO_LOW: 'price_desc', NEWEST: 'newest', RATING: 'rating', NAME_A_TO_Z: 'name_asc', NAME_Z_TO_A: 'name_desc' }; // Размеры для изображений export const IMAGE_SIZES = { THUMBNAIL: { width: 150, height: 150 }, SMALL: { width: 300, height: 300 }, MEDIUM: { width: 600, height: 600 }, LARGE: { width: 1200, height: 1200 } }; // Размеры компонентов export const COMPONENT_SIZES = { SMALL: 'sm', MEDIUM: 'md', LARGE: 'lg', EXTRA_LARGE: 'xl' }; // Варианты цветов export const COLOR_VARIANTS = { PRIMARY: 'primary', SECONDARY: 'secondary', SUCCESS: 'success', DANGER: 'danger', WARNING: 'warning', INFO: 'info', LIGHT: 'light', DARK: 'dark' }; // Типы уведомлений export const NOTIFICATION_TYPES = { SUCCESS: 'success', ERROR: 'error', WARNING: 'warning', INFO: 'info' }; // Брейкпоинты export const BREAKPOINTS = { SM: 640, MD: 768, LG: 1024, XL: 1280, '2XL': 1536 }; // Дефолтные настройки пагинации export const PAGINATION_DEFAULTS = { PAGE_SIZE: 20, MAX_VISIBLE_PAGES: 5 }; // Дефолтные настройки слайдера export const SLIDER_DEFAULTS = { AUTOPLAY_INTERVAL: 3000, TRANSITION_DURATION: 500 }; // Валидационные правила export const VALIDATION_RULES = { EMAIL: /^[^\s@]+@[^\s@]+\.[^\s@]+$/, PHONE: /^[\+]?[1-9][\d]{0,15}$/, PASSWORD_MIN_LENGTH: 6 }; // API endpoints (базовые) export const API_ENDPOINTS = { PRODUCTS: '/api/products', CATEGORIES: '/api/categories', SEARCH: '/api/search', CART: '/api/cart', USER: '/api/user', ORDERS: '/api/orders' }; // Состояния загрузки export const LOADING_STATES = { IDLE: 'idle', LOADING: 'loading', SUCCESS: 'success', ERROR: 'error' }; // Форматы валют export const CURRENCY_FORMATS = { RUB: { symbol: '₽', position: 'after', // before | after separator: ' ', decimals: 0 }, USD: { symbol: '$', position: 'before', separator: '', decimals: 2 }, EUR: { symbol: '€', position: 'after', separator: ' ', decimals: 2 } }; // Дефолтные тексты export const DEFAULT_TEXTS = { ADD_TO_CART: 'В корзину', OUT_OF_STOCK: 'Нет в наличии', LOADING: 'Загрузка...', ERROR: 'Произошла ошибка', NO_RESULTS: 'Ничего не найдено', SHOW_MORE: 'Показать ещё', SEARCH_PLACEHOLDER: 'Поиск товаров...', EMPTY_CART: 'Корзина пуста' };