claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
50 lines (49 loc) • 1.25 kB
JavaScript
// Responsive breakpoints for grid sizing
export const GALLERY_BREAKPOINTS = {
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
'2xl': '1536px'
};
// Default grid sizes per breakpoint
export const DEFAULT_GRID_SIZES = {
sm: 1,
md: 2,
lg: 3,
xl: 4,
'2xl': 5
};
// Content type icons mapping
export const CONTENT_TYPE_ICONS = {
image: '🖼️',
document: '📄',
block: '🧱',
card: '🗃️',
video: '🎥',
audio: '🎵',
folder: '📁'
};
// File size formatting helper
export const formatFileSize = (bytes) => {
if (bytes === 0)
return '0 B';
const k = 1024;
const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
};
// Date formatting helper
export const formatDate = (date) => {
return new Intl.DateTimeFormat('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit'
}).format(date);
};
// Generate unique IDs for items
export const generateItemId = (item) => {
return typeof item.id === 'string' ? item.id : item.id.toString();
};