{"version":3,"sources":["../src/core/smart-defaults.ts"],"names":["SMART_DEFAULTS","PRESETS","getPreset","presetName","mergePreset","overrides","getSmartDefaults"],"mappings":"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","file":"chunk-MPPIOBSA.cjs","sourcesContent":["import type { ThemeConfig } from \"../types\";\r\n\r\n/**\r\n * Smart Defaults & Presets for Smart Dropzone\r\n *\r\n * Based on research of what 80% of developers actually need\r\n * These defaults provide excellent UX out of the box\r\n */\r\n\r\nexport interface SmartDefaults {\r\n  // File handling\r\n  maxFiles: number;\r\n  maxFileSize: number;\r\n  allowedTypes: readonly string[];\r\n\r\n  // Preview & UI\r\n  showPreview: boolean;\r\n  showProgress: boolean;\r\n  showFileSize: boolean;\r\n  showFileType: boolean;\r\n\r\n  // Advanced features (disabled by default)\r\n  enableReorder: boolean;\r\n  enableResume: boolean;\r\n  enableI18n: boolean;\r\n\r\n  // Accessibility (always enabled)\r\n  accessibility: boolean;\r\n\r\n  // Theme & styling - compatible with SmartDropzoneProps\r\n  theme: ThemeConfig | \"light\" | \"dark\" | \"custom\";\r\n  variant: \"outlined\" | \"filled\" | \"minimal\";\r\n  size: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\n/**\r\n * Research-based smart defaults\r\n * Covers 80% of common use cases\r\n */\r\nexport const SMART_DEFAULTS: SmartDefaults = {\r\n  // File handling - optimized for most use cases\r\n  maxFiles: 10,\r\n  maxFileSize: 10 * 1024 * 1024, // 10MB\r\n  allowedTypes: [\"image/*\", \"application/pdf\"],\r\n\r\n  // Preview & UI - what users expect\r\n  showPreview: true,\r\n  showProgress: true,\r\n  showFileSize: true,\r\n  showFileType: true,\r\n\r\n  // Advanced features - disabled by default\r\n  enableReorder: false,\r\n  enableResume: false,\r\n  enableI18n: false,\r\n\r\n  // Accessibility - always enabled\r\n  accessibility: true,\r\n\r\n  // Theme - clean, professional look\r\n  theme: \"light\",\r\n  variant: \"outlined\",\r\n  size: \"md\",\r\n};\r\n\r\n/**\r\n * Preset configurations for common use cases\r\n */\r\nexport const PRESETS = {\r\n  // Simple upload (blog, contact form, basic apps)\r\n  simple: {\r\n    maxFiles: 5,\r\n    maxFileSize: 5 * 1024 * 1024,\r\n    allowedTypes: [\"image/*\"],\r\n    showPreview: true,\r\n    showProgress: true,\r\n    showFileSize: true,\r\n    showFileType: false,\r\n    enableReorder: false,\r\n    enableResume: false,\r\n    enableI18n: false,\r\n    accessibility: true,\r\n    theme: \"light\" as const,\r\n    variant: \"outlined\" as const,\r\n    size: \"md\" as const,\r\n  },\r\n\r\n  // Gallery upload (portfolio, social media, photo apps)\r\n  gallery: {\r\n    maxFiles: 20,\r\n    maxFileSize: 15 * 1024 * 1024,\r\n    allowedTypes: [\"image/*\", \"video/*\"],\r\n    showPreview: true,\r\n    showProgress: true,\r\n    showFileSize: true,\r\n    showFileType: true,\r\n    enableReorder: true,\r\n    enableResume: false,\r\n    enableI18n: false,\r\n    accessibility: true,\r\n    theme: \"light\" as const,\r\n    variant: \"outlined\" as const,\r\n    size: \"md\" as const,\r\n  },\r\n\r\n  // Document upload (business, legal, enterprise)\r\n  documents: {\r\n    maxFiles: 10,\r\n    maxFileSize: 25 * 1024 * 1024,\r\n    allowedTypes: [\"application/pdf\", \"text/*\", \"application/*\"],\r\n    showPreview: false,\r\n    showProgress: true,\r\n    showFileSize: true,\r\n    showFileType: true,\r\n    enableReorder: false,\r\n    enableResume: true,\r\n    enableI18n: false,\r\n    accessibility: true,\r\n    theme: \"light\" as const,\r\n    variant: \"minimal\" as const,\r\n    size: \"md\" as const,\r\n  },\r\n\r\n  // Media upload (content creation, video platforms)\r\n  media: {\r\n    maxFiles: 50,\r\n    maxFileSize: 100 * 1024 * 1024,\r\n    allowedTypes: [\"image/*\", \"video/*\", \"audio/*\"],\r\n    showPreview: true,\r\n    showProgress: true,\r\n    showFileSize: true,\r\n    showFileType: true,\r\n    enableReorder: true,\r\n    enableResume: true,\r\n    enableI18n: false,\r\n    accessibility: true,\r\n    theme: \"light\" as const,\r\n    variant: \"outlined\" as const,\r\n    size: \"lg\" as const,\r\n  },\r\n\r\n  // Enterprise (large scale, business critical)\r\n  enterprise: {\r\n    maxFiles: 100,\r\n    maxFileSize: 500 * 1024 * 1024,\r\n    allowedTypes: [\"*/*\"],\r\n    showPreview: true,\r\n    showProgress: true,\r\n    showFileSize: true,\r\n    showFileType: true,\r\n    enableReorder: true,\r\n    enableResume: true,\r\n    enableI18n: true,\r\n    accessibility: true,\r\n    theme: \"light\" as const,\r\n    variant: \"filled\" as const,\r\n    size: \"lg\" as const,\r\n  },\r\n} as const;\r\n\r\nexport type PresetName = keyof typeof PRESETS;\r\n\r\n/**\r\n * Get preset configuration\r\n */\r\nexport function getPreset(presetName: PresetName): SmartDefaults {\r\n  return PRESETS[presetName];\r\n}\r\n\r\n/**\r\n * Merge preset with custom overrides\r\n */\r\nexport function mergePreset(\r\n  presetName: PresetName,\r\n  overrides: Partial<SmartDefaults>\r\n): SmartDefaults {\r\n  const preset = getPreset(presetName);\r\n  return { ...preset, ...overrides };\r\n}\r\n\r\n/**\r\n * Get smart defaults with custom overrides\r\n */\r\nexport function getSmartDefaults(\r\n  overrides: Partial<SmartDefaults> = {}\r\n): SmartDefaults {\r\n  return { ...SMART_DEFAULTS, ...overrides };\r\n}\r\n"]}