{"version":3,"file":"ProgressiveEnhancementContext.mjs","sources":["../../../src/lib/contexts/ProgressiveEnhancementContext.ts"],"sourcesContent":["/**\n * @file Progressive Enhancement Context\n * @description Context for progressive enhancement system (Fast Refresh compliant).\n */\n\nimport { createContext } from 'react';\n\n/**\n * Feature capability levels\n */\nexport type CapabilityLevel = 'full' | 'partial' | 'fallback' | 'none';\n\n/**\n * Browser feature capabilities\n */\nexport interface BrowserCapabilities {\n  esModules: boolean;\n  asyncAwait: boolean;\n  webGL: boolean;\n  webGL2: boolean;\n  webP: boolean;\n  avif: boolean;\n  serviceWorker: boolean;\n  webWorker: boolean;\n  sharedArrayBuffer: boolean;\n  intersectionObserver: boolean;\n  resizeObserver: boolean;\n  cssGrid: boolean;\n  containerQueries: boolean;\n  cssHas: boolean;\n  viewTransitions: boolean;\n  navigationAPI: boolean;\n  popoverAPI: boolean;\n  webAnimations: boolean;\n  idleCallback: boolean;\n  intl: boolean;\n}\n\n/**\n * Feature status\n */\nexport interface FeatureStatus {\n  id: string;\n  level: CapabilityLevel;\n  loaded: boolean;\n  loading: boolean;\n  error: Error | null;\n  module: unknown;\n}\n\n/**\n * Feature definition\n */\nexport interface FeatureDefinition {\n  id: string;\n  name: string;\n  requires: Array<keyof BrowserCapabilities>;\n  enhancedBy?: Array<keyof BrowserCapabilities>;\n  loader: () => Promise<unknown>;\n  fallbackLoader?: () => Promise<unknown>;\n  polyfills?: Array<() => Promise<void>>;\n  priority?: number;\n}\n\n/**\n * Progressive enhancement context value\n */\nexport interface ProgressiveEnhancementContextValue {\n  capabilities: BrowserCapabilities;\n  features: Map<string, FeatureStatus>;\n  hasCapability: (capability: keyof BrowserCapabilities) => boolean;\n  getFeatureLevel: (featureId: string) => CapabilityLevel;\n  loadFeature: (featureId: string) => Promise<unknown>;\n  registerFeature: (definition: FeatureDefinition) => void;\n}\n\n/**\n * Progressive enhancement context - extracted for Fast Refresh compliance\n */\nexport const ProgressiveEnhancementContext =\n  createContext<ProgressiveEnhancementContextValue | null>(null);\n"],"names":["ProgressiveEnhancementContext","createContext"],"mappings":";AA+EO,MAAMA,IACXC,EAAyD,IAAI;"}