{"version":3,"file":"FlagConfigurableContext.mjs","sources":["../../../src/lib/contexts/FlagConfigurableContext.ts"],"sourcesContent":["/**\n * @file Flag Configurable Context\n * @description Context for configurable feature flags (Fast Refresh compliant).\n */\n\nimport { createContext, type ReactNode } from 'react';\n\n/**\n * Configuration value\n */\nexport type ConfigurableValue =\n  | string\n  | number\n  | boolean\n  | null\n  | ConfigurableValue[]\n  | { [key: string]: ConfigurableValue };\n\n/**\n * Flag configuration\n */\nexport interface FlagConfiguration {\n  flagKey: string;\n  value: ConfigurableValue;\n  metadata?: Record<string, unknown>;\n}\n\n/**\n * Flag configurable context value\n */\nexport interface FlagConfigurableContextValue {\n  getConfig: (flagKey: string) => ConfigurableValue | undefined;\n  setConfig: (flagKey: string, value: ConfigurableValue) => void;\n  hasConfig: (flagKey: string) => boolean;\n  getAllConfigs: () => FlagConfiguration[];\n  renderVariant: (flagKey: string, variants: Record<string, ReactNode>) => ReactNode;\n}\n\n/**\n * Flag configurable context - extracted for Fast Refresh compliance\n */\nexport const FlagConfigurableContext = createContext<FlagConfigurableContextValue>({\n  getConfig: () => undefined,\n  setConfig: () => {},\n  hasConfig: () => false,\n  getAllConfigs: () => [],\n  renderVariant: () => null,\n});\n\nFlagConfigurableContext.displayName = 'FlagConfigurableContext';\n"],"names":["FlagConfigurableContext","createContext"],"mappings":";AAyCO,MAAMA,IAA0BC,EAA4C;AAAA,EACjF,WAAW,MAAA;AAAA;AAAA,EACX,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,WAAW,MAAM;AAAA,EACjB,eAAe,MAAM,CAAA;AAAA,EACrB,eAAe,MAAM;AACvB,CAAC;AAEDD,EAAwB,cAAc;"}