{"version":3,"sources":["../node_modules/tsup/assets/esm_shims.js","../packages/domain/shared/src/index.ts","../src/umbrella/animate.ts","../packages/domain/animate/src/index.ts","../packages/domain/animate/src/binding.ts","../packages/domain/animate/src/preset.ts","../packages/domain/animate/src/registry.ts","../packages/domain/analyzer/src/index.ts","../packages/domain/analyzer/src/binding.ts","../packages/domain/analyzer/src/utils.ts","../packages/domain/analyzer/src/schemas.ts","../packages/domain/analyzer/src/classToCss.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import { createHash } from \"node:crypto\"\nimport fs from \"node:fs\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { createRequire } from \"node:module\"\n\n// Native-only: Node.js is always available. No browser fallback.\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type TokenMap = Record<string, string>\n\nexport type VariantValue = string | number | boolean | undefined\n\nexport type VariantProps = Record<string, VariantValue>\n\nexport type HtmlTagName = keyof HTMLElementTagNameMap\n\nexport type CompoundCondition = Record<string, string | number | boolean>\n\nexport type VariantMatrix = Record<string, Array<string | number | boolean>>\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Logging\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface Logger {\n  warn(...args: unknown[]): void\n  debug(...args: unknown[]): void\n  error(...args: unknown[]): void\n  log(...args: unknown[]): void\n}\n\nexport function createLogger(namespace: string): Logger {\n  const prefix = `[${namespace}]`\n  return {\n    warn(...args: unknown[]) {\n      process.stderr.write(`${prefix} ${args.map(a => typeof a === \"string\" ? a : String(a)).join(\" \")}\\n`)\n    },\n    debug(...args: unknown[]) {\n      process.stderr.write(`${prefix} ${args.map(a => typeof a === \"string\" ? a : String(a)).join(\" \")}\\n`)\n    },\n    error(...args: unknown[]) {\n      process.stderr.write(`${prefix} ${args.map(a => typeof a === \"string\" ? a : String(a)).join(\" \")}\\n`)\n    },\n    log(...args: unknown[]) {\n      process.stderr.write(`${prefix} ${args.map(a => typeof a === \"string\" ? a : String(a)).join(\" \")}\\n`)\n    },\n  }\n}\n\nexport function createDebugLogger(namespace: string, label?: string): (msg: string) => void {\n  const prefix = label ? `[${namespace}:${label}]` : `[${namespace}]`\n  return (msg: string) => {\n    if (process.env.DEBUG?.includes(namespace) || process.env.TW_DEBUG) {\n      console.debug(prefix, msg)\n    }\n  }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Error handling\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type ErrorSource = \"rust\" | \"validation\" | \"compile\" | \"io\" | \"config\" | \"unknown\"\n\ntype ZodLikeIssue = {\n  path?: readonly PropertyKey[]\n  message?: string\n}\n\nfunction formatIssuePath(path?: readonly PropertyKey[]): string {\n  if (!path || path.length === 0) return \"(root)\"\n  return path\n    .map((segment) =>\n      typeof segment === \"symbol\" ? segment.description ?? segment.toString() : String(segment)\n    )\n    .join(\".\")\n}\n\nexport class TwError extends Error {\n  /** @deprecated Gunakan source */\n  public readonly domain: string\n  public readonly source: ErrorSource\n  public readonly code: string\n  public readonly originalCause?: unknown\n\n  constructor(domainOrSource: string, code: string, message: string, cause?: unknown) {\n    super(message)\n    this.name = \"TwError\"\n    this.domain = domainOrSource\n    this.source = domainOrSource as ErrorSource\n    this.code = code\n    this.originalCause = cause\n    if (Error.captureStackTrace) Error.captureStackTrace(this, TwError)\n  }\n\n  static fromIo(code: string, message: string): TwError {\n    return new TwError(\"io\", code, message)\n  }\n\n  static fromCompile(code: string, message: string): TwError {\n    return new TwError(\"compile\", code, message)\n  }\n\n  static fromRust(err: { code?: string; message?: string } | Error | unknown): TwError {\n    if (err instanceof TwError) return err\n    if (err instanceof Error) return new TwError(\"rust\", \"RUST_ERROR\", err.message, err)\n    if (err && typeof err === \"object\") {\n      const e = err as { code?: string; message?: string }\n      return new TwError(\"rust\", e.code ?? \"RUST_ERROR\", e.message ?? String(err), err)\n    }\n    return new TwError(\"rust\", \"RUST_ERROR\", String(err), err)\n  }\n\n  /** Buat TwError dari ZodError — dukung shape Zod v3 (`errors`) dan v4 (`issues`). */\n  static fromZod(err: { issues?: ZodLikeIssue[]; errors?: ZodLikeIssue[] }): TwError {\n    const first = err.issues?.[0] ?? err.errors?.[0]\n    const path = formatIssuePath(first?.path)\n    const message = first ? `${path}: ${first.message}` : \"Schema validation failed\"\n    return new TwError(\"validation\", \"SCHEMA_VALIDATION_FAILED\", message, err)\n  }\n\n  static wrap(source: string, code: string, err: unknown): TwError {\n    if (err instanceof TwError) return err\n    if (err instanceof Error) return new TwError(source, code, err.message, err)\n    return new TwError(source, code, String(err), err)\n  }\n\n  override toString(): string {\n    return `TwError [${this.source}:${this.code}] ${this.message}`\n  }\n\n  toJSON(): { name: string; source: string; code: string; message: string } {\n    return { name: this.name, source: this.source, code: this.code, message: this.message }\n  }\n\n  toCliMessage(): string {\n    return `[${this.source.toUpperCase()}:${this.code}] ${this.message}`\n  }\n}\n\nexport function wrapUnknownError(domain: string, code: string, error: unknown): TwError {\n  return TwError.wrap(domain, code, error)\n}\n\nexport function isTwError(err: unknown): err is TwError {\n  return err instanceof TwError\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Native binding resolution\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface LoadNativeBindingOptions<T> {\n  runtimeDir: string\n  candidates: string[]\n  isValid: (module: unknown) => module is T\n  invalidExportMessage: string\n}\n\nexport interface LoadNativeBindingResult<T> {\n  binding: T | null\n  loadErrors: Array<{ path: string; message: string }>\n  loadedPath?: string\n}\n\nexport function loadNativeBinding<T>(options: LoadNativeBindingOptions<T>): LoadNativeBindingResult<T> {\n  const { runtimeDir, candidates, isValid } = options\n  const loadErrors: Array<{ path: string; message: string }> = []\n\n  for (const candidate of candidates) {\n    const candidatePath = path.resolve(runtimeDir, candidate)\n    try {\n      if (!fs.existsSync(candidatePath) && !fs.existsSync(candidatePath + \".node\")) {\n        continue\n      }\n      const mod = requireNativeModule(candidatePath)\n      if (mod && isValid(mod)) {\n        return { binding: mod, loadErrors, loadedPath: candidatePath }\n      }\n      loadErrors.push({ path: candidatePath, message: options.invalidExportMessage })\n    } catch (e) {\n      loadErrors.push({ path: candidatePath, message: e instanceof Error ? e.message : String(e) })\n    }\n  }\n\n  return { binding: null, loadErrors }\n}\n\nconst _require = createRequire(\n  typeof __filename !== \"undefined\"\n    ? `file://${__filename}`\n    : (import.meta.url ?? \"file://unknown\")\n)\n\nfunction requireNativeModule(p: string): unknown {\n  return _require(p)\n}\n\nexport interface ResolveCandidatesOptions {\n  runtimeDir?: string\n  envVarNames?: string[]\n  includeDefaultCandidates?: boolean\n  enforceNodeExtensionForEnvPath?: boolean\n  /** @deprecated — ignored, kept for backward compat */\n  packageName?: string\n}\n\nexport function resolveNativeBindingCandidates(options: ResolveCandidatesOptions): string[] {\n  const {\n    envVarNames = [\"TW_NATIVE_PATH\", \"TWS_NATIVE_PATH\"],\n    includeDefaultCandidates = true,\n    enforceNodeExtensionForEnvPath = false,\n  } = options\n  // Default ke cwd kalau runtimeDir tidak disediakan\n  const runtimeDir = options.runtimeDir || process.cwd()\n  const candidates: string[] = []\n\n  for (const envVar of envVarNames) {\n    const envPath = process.env[envVar]\n    if (envPath) {\n      candidates.push(enforceNodeExtensionForEnvPath && !envPath.endsWith(\".node\") ? envPath + \".node\" : envPath)\n    }\n  }\n\n  if (!includeDefaultCandidates) return candidates\n\n  if (fs.existsSync(runtimeDir)) {\n    try {\n      for (const entry of fs.readdirSync(runtimeDir)) {\n        if (entry.endsWith(\".node\")) candidates.push(entry)\n      }\n    } catch { /* ignore read errors */ }\n  }\n\n  const BINARY_NAMES = [\"tailwind-styled-native\", \"tailwind_styled_parser\"]\n  const napiPlatform = process.platform === \"linux\" && process.arch === \"x64\" ? \"linux-x64-gnu\"\n    : process.platform === \"linux\" && process.arch === \"arm64\" ? \"linux-arm64-gnu\"\n      : `${process.platform}-${process.arch}`\n\n  for (const bin of BINARY_NAMES) {\n    candidates.push(path.resolve(runtimeDir, `${bin}.node`))\n    candidates.push(path.resolve(runtimeDir, `${bin}.${napiPlatform}.node`))\n    // 1 level: dist/ → package-root/native/ (published npm package)\n    candidates.push(path.resolve(runtimeDir, \"..\", \"native\", `${bin}.node`))\n    candidates.push(path.resolve(runtimeDir, \"..\", \"native\", `${bin}.${napiPlatform}.node`))\n    // cwd fallback (user project root)\n    candidates.push(path.resolve(process.cwd(), \"native\", `${bin}.node`))\n    candidates.push(path.resolve(process.cwd(), \"native\", `${bin}.${napiPlatform}.node`))\n    // 4 level: dist/ → package/ → domain/ → packages/ → repo-root/ (monorepo dev)\n    candidates.push(path.resolve(runtimeDir, \"..\", \"..\", \"..\", \"..\", \"native\", `${bin}.node`))\n    candidates.push(path.resolve(runtimeDir, \"..\", \"..\", \"..\", \"..\", \"native\", `${bin}.${napiPlatform}.node`))\n    // 3 level fallback\n    candidates.push(path.resolve(runtimeDir, \"..\", \"..\", \"..\", \"native\", `${bin}.node`))\n  }\n\n  return Array.from(new Set(candidates))\n}\n\nexport function resolveRuntimeDir(dir: string | undefined, importMetaUrl: string): string {\n  if (dir) return path.resolve(dir)\n  try {\n    return path.dirname(fileURLToPath(importMetaUrl))\n  } catch {\n    return process.cwd()\n  }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Hashing\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function hashContent(content: string, algorithm: string = \"md5\", length?: number): string {\n  const hash = createHash(algorithm).update(content).digest(\"hex\")\n  return length ? hash.slice(0, length) : hash\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Error formatting\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function formatErrorMessage(error: unknown): string {\n  if (error instanceof TwError) return error.toString()\n  if (error instanceof Error) return error.message\n  return String(error)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// LRU Cache\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport class LRUCache<K, V> {\n  private capacity: number\n  private cache: Map<K, V>\n\n  constructor(capacity: number) {\n    this.capacity = capacity\n    this.cache = new Map()\n  }\n\n  get(key: K): V | undefined {\n    if (!this.cache.has(key)) return undefined\n    const value = this.cache.get(key)!\n    this.cache.delete(key)\n    this.cache.set(key, value)\n    return value\n  }\n\n  set(key: K, value: V): void {\n    if (this.cache.has(key)) {\n      this.cache.delete(key)\n    } else if (this.cache.size >= this.capacity) {\n      const firstKey = this.cache.keys().next().value\n      if (firstKey !== undefined) {\n        this.cache.delete(firstKey)\n      }\n    }\n    this.cache.set(key, value)\n  }\n\n  delete(key: K): boolean {\n    return this.cache.delete(key)\n  }\n\n  has(key: K): boolean {\n    return this.cache.has(key)\n  }\n\n  clear(): void {\n    this.cache.clear()\n  }\n\n  entries(): IterableIterator<[K, V]> {\n    return this.cache.entries()\n  }\n\n  get size(): number {\n    return this.cache.size\n  }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Trace Utilities\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type { TraceSnapshot, TraceSummary } from \"./trace\"\nexport {\n  getHealthColor,\n  getModeColor,\n  formatMemory,\n  formatDuration,\n  calculateHealth,\n  getBuildTimeColor,\n  getMemoryColor,\n  createTraceSnapshot,\n  getPipelinePercentages,\n} from \"./trace\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Performance Telemetry\n// ─────────────────────────────────────────────────────────────────────────────\n\n\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Error Codes\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type { ErrorCode } from \"./error-codes\"\nexport { ERROR_CODES, getSuggestion, formatErrorCode } from \"./error-codes\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Tailwind Compatibility\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type { TailwindInfo } from \"./compatibility\"\nexport { detectTailwind, assertTailwindV4, getTailwindVersion, isTailwindV4 } from \"./compatibility\"\n\n// ── Native binding schemas (Zod boundary validation)\nexport {\n  NativeScanFileSchema, NativeScanResultSchema,\n  NativeAnalyzerReportSchema, NativeTransformResultSchema,\n  NativeCssCompileResultSchema, NativeWatchResultSchema,\n  NativeCacheEntrySchema, NativeCacheReadResultSchema,\n  safeParseNative, parseNative,\n} from './native-schemas'\n\n// ── ESM-safe runtime helpers ──────────────────────────────────────────────\nexport {\n  createEsmRequire,\n  getDirname,\n  getFilename,\n  resolveFromRoot,\n  tryRequire,\n  resolveNativeNodePath,\n} from \"./esmHelpers\"\n\n// ── Performance telemetry ────────────────────────────────────────────────────\nexport {\n  TelemetryCollector,\n  getGlobalTelemetry,\n  resetGlobalTelemetry,\n  createBuildTimer,\n  type BuildTelemetry,\n  type TelemetrySummary,\n  type BuildPhases,\n} from \"./telemetry\"\n\n// ── Config/JSON schema validation ─────────────────────────────────────────────\nexport {\n  ScanCacheSchema,\n  ScanCacheClassEntrySchema,\n  TailwindConfigSchema,\n  RegistryPluginEntrySchema,\n  RegistryFileSchema,\n  PackageJsonSchema,\n  parseJsonWithSchema,\n  parseJsonFileWithSchema,\n  type ScanCache,\n  type ScanCacheClassEntry,\n  type TailwindConfig,\n  type RegistryPluginEntry,\n  type RegistryFile,\n  type PackageJson,\n} from \"./configSchemas\"\n\n// ── Worker/bootstrap path resolution ─────────────────────────────────────────\nexport {\n  resolveWorkerPath,\n  resolveLoaderPath,\n  type WorkerPathOptions,\n  type WorkerPathResult,\n} from \"./workerResolver\"\n\n// ── Codegen helpers ───────────────────────────────────────────────────────────\nexport {\n  generateComponentCode,\n  generateStorybookStory,\n  generateClassRenameCodemod,\n  generateBarrelFile,\n  type ComponentCodegenOptions,\n} from \"./codegen\"\n\n// ── Native binary resolution (QA #1) ─────────────────────────────────────────\nexport {\n  resolveNativeBinary,\n  formatNativeNotFoundError,\n  type NativeResolutionResult,\n} from \"./native-resolution\"\n\n// ── Shared observability contract ────────────────────────────────────────────\nexport {\n  createObservabilityClient,\n  type ClassInspection,\n  type ClassProperty,\n  type ClassUsageLocation,\n  type BuildTrace,\n  type BuildPhaseTrace,\n  type DashboardMetrics,\n  type DashboardSummary,\n  type ObservabilityClient,\n} from \"./observability\"\n\nexport {\n  TW_STATE_STATIC_FILENAME,\n  extractStaticStateCss,\n  appendStaticStateCssToSafelist,\n  type TwStateConfigEntry,\n  type StaticStateCssInput,\n  type GeneratedStateRule,\n  type StaticStateExtractionResult,\n} from \"./staticStateExtractor\"\nexport { setGlobalLogFile } from \"./logger\"","export * from \"@tailwind-styled/animate\"\n","import { initAnimate as initAnimateBackend } from \"./binding\"\nimport { createAnimationPresets } from \"./preset\"\nimport { type AnimationRegistry, createAnimationRegistry } from \"./registry\"\nimport type { AnimateOptions, CompiledAnimation, KeyframesDefinition } from \"./types\"\n\nexport type {\n  AnimateOptions,\n  AnimationRegistryOptions,\n  CompiledAnimation,\n  CSSDirection,\n  CSSEasing,\n  CSSFillMode,\n  CSSIterationCount,\n  CubicBezierEasing,\n  KeyframesDefinition,\n  PresetEasing,\n  StepsEasing,\n} from \"./types\"\n\nconst defaultRegistry = createAnimationRegistry()\n\nexport async function initAnimate(): Promise<void> {\n  await initAnimateBackend()\n}\n\nexport function getDefaultAnimationRegistry(): AnimationRegistry {\n  return defaultRegistry\n}\n\nexport async function compileAnimation(\n  optsOrName: AnimateOptions | string,\n  secondArg?: AnimationRegistry | Partial<AnimateOptions>\n): Promise<CompiledAnimation> {\n  // Overload: compileAnimation(name, partialOpts?)\n  if (typeof optsOrName === \"string\") {\n    const partialOpts =\n      secondArg && typeof (secondArg as AnimationRegistry).compileAnimation !== \"function\"\n        ? (secondArg as Partial<AnimateOptions>)\n        : {}\n    const opts: AnimateOptions = { from: \"\", to: \"\", ...partialOpts, name: optsOrName }\n    return defaultRegistry.compileAnimation(opts)\n  }\n  // Original: compileAnimation(opts, registry?)\n  const registry =\n    secondArg && typeof (secondArg as AnimationRegistry).compileAnimation === \"function\"\n      ? (secondArg as AnimationRegistry)\n      : defaultRegistry\n  return registry.compileAnimation(optsOrName)\n}\n\nexport async function compileKeyframes(\n  name: string,\n  stops: KeyframesDefinition,\n  registry: AnimationRegistry = defaultRegistry\n): Promise<CompiledAnimation> {\n  return registry.compileKeyframes(name, stops)\n}\n\nexport async function animate(\n  opts: AnimateOptions,\n  registry: AnimationRegistry = defaultRegistry\n): Promise<string> {\n  return (await registry.compileAnimation(opts)).className\n}\n\nexport async function keyframes(\n  name: string,\n  stops: KeyframesDefinition,\n  registry: AnimationRegistry = defaultRegistry\n): Promise<string> {\n  return (await registry.compileKeyframes(name, stops)).className\n}\n\nexport function extractAnimationCss(registry: AnimationRegistry = defaultRegistry): string {\n  return registry.extractCss()\n}\n\nexport function resetAnimationRegistry(registry: AnimationRegistry = defaultRegistry): void {\n  registry.reset()\n}\n\nexport interface InjectAnimationCssOptions {\n  document?: Document\n  styleId?: string\n  silent?: boolean\n}\n\nexport function injectAnimationCss(\n  registry: AnimationRegistry = defaultRegistry,\n  options: InjectAnimationCssOptions = {}\n): void {\n  const targetDocument =\n    options.document ?? (typeof document !== \"undefined\" ? document : undefined)\n\n  if (!targetDocument) {\n    if (options.silent) return\n    throw new Error(\"injectAnimationCss requires a browser Document.\")\n  }\n\n  const styleId = options.styleId ?? \"__tw_animate_styles__\"\n\n  // Check if style element already exists\n  const existingStyleEl = targetDocument.getElementById(styleId) as HTMLStyleElement | null\n\n  // Use existing or create new\n  const styleEl = (() => {\n    if (existingStyleEl) return existingStyleEl\n\n    if (!targetDocument.head) {\n      if (options.silent) return null\n      throw new Error(\"injectAnimationCss requires document.head to exist.\")\n    }\n\n    const newStyleEl = targetDocument.createElement(\"style\")\n    newStyleEl.id = styleId\n    targetDocument.head.appendChild(newStyleEl)\n    return newStyleEl\n  })()\n\n  if (!styleEl) return\n\n  styleEl.textContent = registry.extractCss()\n}\n\nexport { createAnimationRegistry } from \"./registry\"\n\n// Export createAnimationRegistry as AnimationRegistry for consumers that use\n// `new AnimationRegistry()` or import { AnimationRegistry } as a value\nexport { createAnimationRegistry as AnimationRegistry } from \"./registry\"\n\n// Re-export the type separately for type-only imports\nexport type { AnimationRegistry as AnimationRegistryType } from \"./registry\"\n\nexport const animations = createAnimationPresets(defaultRegistry)","import {\n  createDebugLogger,\n  loadNativeBinding,\n  resolveNativeBindingCandidates,\n  resolveRuntimeDir,\n} from \"@tailwind-styled/shared\"\n\nimport type { NativeAnimateBinding } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────\n// Native Animate Binding - Factory Pattern (no let!)\n// ─────────────────────────────────────────────────────────────────────────\n\nconst createAnimateBindingLoader = () => {\n  const _state = { bindingPromise: null as Promise<NativeAnimateBinding> | null }\n\n  const loadAnimateBinding = (): NativeAnimateBinding => {\n    const runtimeDir = resolveRuntimeDir(\n      typeof __dirname === \"string\" ? __dirname : undefined,\n      import.meta.url\n    )\n    const candidates = resolveBindingCandidates(runtimeDir)\n    const { binding, loadErrors, loadedPath } = loadNativeBinding<NativeAnimateBinding>({\n      runtimeDir,\n      candidates,\n      isValid: isAnimateModule,\n      invalidExportMessage: \"Module loaded but missing compileAnimation/compileKeyframes exports.\",\n    })\n\n    if (binding) {\n      debugLog(`native animate binding loaded from: ${loadedPath}`)\n      return binding\n    }\n\n    if (loadErrors.length > 0) {\n      debugLog(\n        `native animate binding load failed for ${loadErrors.length} candidate(s): ${loadErrors\n          .map((entry) => `${entry.path} (${entry.message})`)\n          .join(\"; \")}`\n      )\n    } else {\n      debugLog(\"native animate binding not found in any candidate path\")\n    }\n\n    const lines = [\n      \"Native animate backend not found. Ensure `tailwind_styled_parser.node` is built.\",\n      \"Checked paths:\",\n      ...candidates.map((candidate) => `- ${candidate}`),\n    ]\n    if (loadErrors.length > 0) {\n      lines.push(\"Load errors:\")\n      for (const error of loadErrors) lines.push(`- ${error.path}: ${error.message}`)\n    }\n    throw new Error(lines.join(\"\\n\"))\n  }\n\n  return {\n    get: (): Promise<NativeAnimateBinding> => {\n      if (!_state.bindingPromise) {\n        _state.bindingPromise = Promise.resolve().then(loadAnimateBinding)\n      }\n      return _state.bindingPromise\n    },\n    reset: (): void => {\n      _state.bindingPromise = null\n    },\n  }\n}\n\nconst animateBindingLoader = createAnimateBindingLoader()\n\nconst DEBUG_NAMESPACE = \"tailwind-styled:animate\"\nconst debugLog = createDebugLogger(DEBUG_NAMESPACE, \"tailwind-styled/animate\")\n\nfunction isAnimateModule(module: unknown): module is NativeAnimateBinding {\n  const candidate = module as Partial<NativeAnimateBinding> | null | undefined\n  return (\n    typeof candidate?.compileAnimation === \"function\" &&\n    typeof candidate?.compileKeyframes === \"function\"\n  )\n}\n\nfunction resolveBindingCandidates(runtimeDir: string): string[] {\n  return resolveNativeBindingCandidates({\n    runtimeDir,\n    envVarNames: [\"TWS_ANIMATE_NATIVE_PATH\", \"TWS_NATIVE_PATH\"],\n    enforceNodeExtensionForEnvPath: true,\n  })\n}\n\nexport async function getAnimateBinding(): Promise<NativeAnimateBinding> {\n  return animateBindingLoader.get()\n}\n\nexport async function initAnimate(): Promise<void> {\n  await getAnimateBinding()\n}\n","import { LRUCache } from \"@tailwind-styled/shared\"\n\nimport type { AnimationRegistry } from \"./registry\"\n\nconst DEFAULT_PRESET_CACHE_LIMIT = 32\n\nexport function createAnimationPresets(registry: AnimationRegistry) {\n  const cache = new LRUCache<string, Promise<string>>(DEFAULT_PRESET_CACHE_LIMIT)\n\n  const withCache =\n    (cacheKey: string, factory: () => Promise<string>): (() => Promise<string>) =>\n    async () => {\n      const cached = cache.get(cacheKey)\n      if (cached) {\n        const className = await cached\n        if (registry.has(className)) return className\n        cache.delete(cacheKey)\n      }\n\n      const pending = factory()\n      cache.set(cacheKey, pending)\n      try {\n        return await pending\n      } catch (error) {\n        cache.delete(cacheKey)\n        throw error\n      }\n    }\n\n  return {\n    fadeIn: withCache(\n      \"fadeIn\",\n      async () =>\n        (await registry.compileAnimation({ from: \"opacity-0\", to: \"opacity-100\", duration: 200 }))\n          .className\n    ),\n    fadeOut: withCache(\n      \"fadeOut\",\n      async () =>\n        (await registry.compileAnimation({ from: \"opacity-100\", to: \"opacity-0\", duration: 200 }))\n          .className\n    ),\n    slideUp: withCache(\n      \"slideUp\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 translate-y-4\",\n            to: \"opacity-100 translate-y-0\",\n            duration: 300,\n          })\n        ).className\n    ),\n    slideDown: withCache(\n      \"slideDown\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 -translate-y-4\",\n            to: \"opacity-100 translate-y-0\",\n            duration: 300,\n          })\n        ).className\n    ),\n    slideLeft: withCache(\n      \"slideLeft\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 translate-x-4\",\n            to: \"opacity-100 translate-x-0\",\n            duration: 300,\n          })\n        ).className\n    ),\n    slideRight: withCache(\n      \"slideRight\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 -translate-x-4\",\n            to: \"opacity-100 translate-x-0\",\n            duration: 300,\n          })\n        ).className\n    ),\n    scaleIn: withCache(\n      \"scaleIn\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 scale-95\",\n            to: \"opacity-100 scale-100\",\n            duration: 200,\n            easing: \"cubic-bezier(0.16,1,0.3,1)\",\n          })\n        ).className\n    ),\n    scaleOut: withCache(\n      \"scaleOut\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-100 scale-100\",\n            to: \"opacity-0 scale-95\",\n            duration: 150,\n          })\n        ).className\n    ),\n    blurIn: withCache(\n      \"blurIn\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 blur-sm\",\n            to: \"opacity-100 blur-none\",\n            duration: 300,\n          })\n        ).className\n    ),\n    bounceIn: withCache(\n      \"bounceIn\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 scale-50\",\n            to: \"opacity-100 scale-100\",\n            duration: 400,\n            easing: \"cubic-bezier(0.34,1.56,0.64,1)\",\n          })\n        ).className\n    ),\n    spinIn: withCache(\n      \"spinIn\",\n      async () =>\n        (\n          await registry.compileAnimation({\n            from: \"opacity-0 rotate-180 scale-50\",\n            to: \"opacity-100 rotate-0 scale-100\",\n            duration: 400,\n            easing: \"cubic-bezier(0.16,1,0.3,1)\",\n          })\n        ).className\n    ),\n  } as const\n}\n","import { classToCss } from \"@tailwind-styled/analyzer\"\nimport { formatErrorMessage, LRUCache } from \"@tailwind-styled/shared\"\n\nimport { getAnimateBinding } from \"./binding\"\nimport type {\n  AnimateOptions,\n  AnimationRegistryOptions,\n  CompiledAnimation,\n  KeyframesDefinition,\n} from \"./types\"\n\nconst DEFAULT_DURATION = 300\nconst DEFAULT_EASING = \"ease-out\"\nconst DEFAULT_DELAY = 0\nconst DEFAULT_FILL = \"both\"\nconst DEFAULT_ITERATIONS = 1\nconst DEFAULT_DIRECTION = \"normal\"\nconst DEFAULT_CACHE_LIMIT = 512\n\nfunction normalizeNumber(value: number | undefined, fallback: number): number {\n  if (!Number.isFinite(value)) return fallback\n  return Math.max(0, Math.trunc(value as number))\n}\n\nfunction normalizeCacheLimit(value: number | undefined): number {\n  if (!Number.isFinite(value)) return DEFAULT_CACHE_LIMIT\n  return Math.max(1, Math.trunc(value as number))\n}\n\nfunction normalizeIterations(value: AnimateOptions[\"iterations\"]): string {\n  if (value === \"infinite\") return \"infinite\"\n  if (!Number.isFinite(value)) return String(DEFAULT_ITERATIONS)\n  return String(Math.max(0, Math.trunc(value as number)))\n}\n\nfunction stableKeyframesEntries(\n  stops: KeyframesDefinition\n): Array<{ offset: string; classes: string }> {\n  return Object.entries(stops)\n    .map(([offset, classes]) => ({ offset, classes }))\n    .sort((left, right) => left.offset.localeCompare(right.offset))\n}\n\nfunction animationCacheKey(opts: AnimateOptions): string {\n  const normalized = {\n    from: (opts.from ?? \"\").trim(),\n    to: (opts.to ?? \"\").trim(),\n    duration: normalizeNumber(opts.duration as number | undefined, DEFAULT_DURATION),\n    easing: (opts.easing ?? DEFAULT_EASING).trim(),\n    delay: normalizeNumber(opts.delay as number | undefined, DEFAULT_DELAY),\n    fill: opts.fill ?? DEFAULT_FILL,\n    iterations: normalizeIterations(opts.iterations),\n    direction: opts.direction ?? DEFAULT_DIRECTION,\n    name: opts.name ?? \"\",\n  }\n  return JSON.stringify(normalized)\n}\n\nfunction keyframesCacheKey(name: string, stops: KeyframesDefinition): string {\n  return `${name}::${JSON.stringify(stableKeyframesEntries(stops))}`\n}\n\n/**\n * Split class list string → individual tokens.\n *\n * Native-first: `splitAnimateClasses` di Rust pakai `split_whitespace()` —\n * satu pass, tanpa RegExp overhead, tanpa `.map(trim).filter(len>0)`.\n *\n * JS fallback: behavior identik, dipakai kalau binding belum load.\n *\n * Catatan: binding di-pass sebagai parameter untuk menghindari await\n * (fungsi ini dipanggil dalam konteks sync setelah binding sudah resolve).\n */\nfunction splitClasses(classList: string, binding: { splitAnimateClasses?: (s: string) => string[] }): string[] {\n  if (!binding.splitAnimateClasses) {\n    throw new Error(\"FATAL: Native binding 'splitAnimateClasses' is required but not available.\")\n  }\n  return binding.splitAnimateClasses(classList)\n}\n\nasync function validateTailwindClasses(\n  entries: Array<{ classList: string; context: string }>\n): Promise<void> {\n  const binding = await getAnimateBinding()\n  const unknownByContext = new Map<string, Set<string>>()\n  const failures: string[] = []\n\n  for (const entry of entries) {\n    const classes = splitClasses(entry.classList, binding)\n    if (classes.length === 0) continue\n\n    const result = await classToCss(classes)\n    if (result.unknownClasses.length > 0) {\n      unknownByContext.set(entry.context, new Set(result.unknownClasses))\n    }\n  }\n\n  for (const [context, unknownSet] of unknownByContext.entries()) {\n    failures.push(`[${context}] unknown classes: ${Array.from(unknownSet).join(\", \")}`)\n  }\n\n  if (failures.length > 0) {\n    throw new Error(`Animation validation failed:\\n${failures.join(\"\\n\")}`)\n  }\n}\n\nexport interface AnimationRegistry {\n  compileAnimation(opts: AnimateOptions): Promise<CompiledAnimation>\n  compileKeyframes(name: string, stops: KeyframesDefinition): Promise<CompiledAnimation>\n  extractCss(): string\n  reset(): void\n  /** Check apakah className sudah terdaftar di registry */\n  has(className: string): boolean\n  /** Expand animation to include browser-specific prefixes using native Rust optimization */\n  expandAnimation(css: string): Promise<string>\n  /** Transform animation for better compatibility */\n  transformAnimationForCompatibility(css: string): Promise<string>\n}\n\nexport function createAnimationRegistry(\n  options: AnimationRegistryOptions = {}\n): AnimationRegistry {\n  const cacheLimit = normalizeCacheLimit(options.cacheLimit)\n  const cache = new LRUCache<string, CompiledAnimation>(cacheLimit)\n  const cssChunks: string[] = []\n  const classNames = new Set<string>()\n\n  return {\n    async compileAnimation(opts: AnimateOptions): Promise<CompiledAnimation> {\n      const key = animationCacheKey(opts)\n      const cached = cache.get(key)\n      if (cached) return cached\n\n      const binding = await getAnimateBinding()\n\n      // Only validate if from/to are non-empty strings\n      const classesToValidate = [\n        { classList: opts.from ?? \"\", context: \"from\" },\n        { classList: opts.to ?? \"\", context: \"to\" },\n      ].filter((entry) => entry.classList.trim().length > 0)\n\n      if (classesToValidate.length > 0) {\n        await validateTailwindClasses(classesToValidate)\n      }\n\n      if (!binding.compileAnimation) {\n        throw new Error(\"FATAL: Native binding 'compileAnimation' is required but not available.\")\n      }\n\n      const result = binding.compileAnimation(\n        opts.from,\n        opts.to,\n        opts.name ?? null,\n        normalizeNumber(opts.duration, DEFAULT_DURATION),\n        (opts.easing ?? DEFAULT_EASING) as string,\n        normalizeNumber(opts.delay, DEFAULT_DELAY),\n        opts.fill ?? DEFAULT_FILL,\n        normalizeIterations(opts.iterations),\n        opts.direction ?? DEFAULT_DIRECTION\n      )\n\n      if (!result) {\n        throw new Error(`compileAnimation returned null for opts: ${JSON.stringify(opts)}`)\n      }\n\n      const compiled: CompiledAnimation = {\n        className: result.className,\n        keyframesCss: result.keyframesCss,\n        animationCss: result.animationCss,\n      }\n\n      cache.set(key, compiled)\n      if (result.keyframesCss) cssChunks.push(result.keyframesCss)\n      if (result.animationCss) cssChunks.push(result.animationCss)\n\n      return compiled\n    },\n\n    async compileKeyframes(name: string, stops: KeyframesDefinition): Promise<CompiledAnimation> {\n      const key = keyframesCacheKey(name, stops)\n      const cached = cache.get(key)\n      if (cached) return cached\n\n      const binding = await getAnimateBinding()\n      const stopsJson = JSON.stringify(stableKeyframesEntries(stops))\n\n      if (!binding.compileKeyframes) {\n        throw new Error(\"FATAL: Native binding 'compileKeyframes' is required but not available.\")\n      }\n\n      const result = binding.compileKeyframes(name, stopsJson)\n\n      if (!result) {\n        throw new Error(`compileKeyframes returned null for name: ${name}`)\n      }\n\n      const compiled: CompiledAnimation = {\n        className: result.className,\n        keyframesCss: result.keyframesCss,\n        animationCss: result.animationCss,\n      }\n\n      cache.set(key, compiled)\n      if (result.keyframesCss) cssChunks.push(result.keyframesCss)\n      if (result.animationCss) cssChunks.push(result.animationCss)\n\n      return compiled\n    },\n\n    extractCss(): string {\n      return cssChunks.join(\"\\n\")\n    },\n\n    reset(): void {\n      cache.clear?.()\n      cssChunks.length = 0\n      classNames.clear()\n    },\n\n    has(className: string): boolean {\n      return classNames.has(className)\n    },\n\n    async expandAnimation(css: string): Promise<string> {\n      const binding = await getAnimateBinding()\n      // Use native expandAnimationNapi to add browser prefixes\n      if (binding.expandAnimationNapi) {\n        try {\n          return binding.expandAnimationNapi(css) || css\n        } catch {\n          return css // Fallback to original CSS\n        }\n      }\n      return css\n    },\n\n    async transformAnimationForCompatibility(css: string): Promise<string> {\n      const binding = await getAnimateBinding()\n      // Use native transformAnimation for compatibility optimizations\n      if (binding.transformAnimation) {\n        try {\n          return binding.transformAnimation(css) || css\n        } catch {\n          return css // Fallback to original CSS\n        }\n      }\n      return css\n    },\n  }\n}","/**\n * @tailwind-styled/analyzer v5\n *\n * Native-first async analyzer with semantic reporting.\n */\n\nimport { analyzeWorkspace, buildDistribution, collectClassCounts } from \"./analyzeWorkspace\"\nimport { classToCss, normalizeClassInput } from \"./classToCss\"\nimport {\n  parseAnalyzerOptions,\n  parseClassToCssOptions,\n  parseNativeCssCompileResult,\n  parseNativeReport,\n} from \"./schemas\"\nimport { resolveConflictGroup, splitVariantAndBase, utilityPrefix } from \"./semantic\"\n\nexport type {\n  AnalyzerOptions,\n  AnalyzerReport,\n  AnalyzerSemanticReport,\n  ClassConflict,\n  ClassToCssOptions,\n  ClassToCssResult,\n  ClassUsage,\n} from \"./types\"\n\nexport { analyzeWorkspace, classToCss }\n\n export const __internal = {\n   normalizeClassInput,\n   splitVariantAndBase,\n   resolveConflictGroup,\n   collectClassCounts,\n   buildDistribution,\n   utilityPrefix,\n   parseAnalyzerOptions,\n   parseClassToCssOptions,\n   parseNativeReport,\n   parseNativeCssCompileResult,\n }\n","import {\n  loadNativeBinding,\n  resolveNativeBindingCandidates,\n  resolveRuntimeDir,\n} from \"@tailwind-styled/shared\"\n\nimport type { NativeAnalyzerBinding, NativeCssCompilerBinding } from \"./types\"\nimport { debugLog } from \"./utils\"\n\nconst isAnalyzerModule = (module: unknown): module is NativeAnalyzerBinding => {\n  const candidate = module as Partial<NativeAnalyzerBinding> | null | undefined\n  return typeof candidate?.analyzeClasses === \"function\" || typeof candidate?.analyzeClassesWorkspace === \"function\"\n}\n\n// ─────────────────────────────────────────────────────────────────────────\n// Native Analyzer Binding - Factory Pattern (no let!)\n// ─────────────────────────────────────────────────────────────────────────\n\nconst createAnalyzerBindingLoader = () => {\n  const _state = { bindingPromise: null as Promise<NativeAnalyzerBinding | null> | null }\n\n  const getBindingPromise = (): Promise<NativeAnalyzerBinding | null> => {\n    if (_state.bindingPromise) return _state.bindingPromise\n\n    _state.bindingPromise = (async (): Promise<NativeAnalyzerBinding | null> => {\n      const runtimeDir = resolveRuntimeDir(\n        typeof __dirname === \"string\" ? __dirname : undefined,\n        import.meta.url\n      )\n      const candidates = resolveNativeBindingCandidates({\n        runtimeDir,\n        envVarNames: [\"TWS_NATIVE_PATH\"],\n      })\n\n      const { binding, loadErrors, loadedPath } = await loadNativeBinding<NativeAnalyzerBinding>({\n        runtimeDir,\n        candidates,\n        isValid: isAnalyzerModule,\n        invalidExportMessage: \"Module loaded but missing `analyzeClasses` or `analyzeClassesWorkspace` export.\",\n      })\n\n      if (binding) {\n        debugLog(`native binding loaded from: ${loadedPath}`)\n        return binding\n      }\n\n      if (loadErrors.length > 0) {\n        debugLog(\n          `native binding load failed for ${loadErrors.length} candidate(s): ${loadErrors\n            .map((entry) => `${entry.path} (${entry.message})`)\n            .join(\"; \")}`\n        )\n      } else {\n        debugLog(\"native binding not found in any candidate path\")\n      }\n\n      return null\n    })()\n\n    return _state.bindingPromise\n  }\n\n  return {\n    get: getBindingPromise,\n    reset: (): void => {\n      _state.bindingPromise = null\n    },\n  }\n}\n\nconst analyzerBindingLoader = createAnalyzerBindingLoader()\n\nexport async function getNativeBinding(): Promise<NativeAnalyzerBinding | null> {\n  return analyzerBindingLoader.get()\n}\n\nexport async function requireNativeBinding(): Promise<NativeAnalyzerBinding> {\n  const binding = await analyzerBindingLoader.get()\n  if (binding?.analyzeClasses) return binding\n\n  // Untuk error reporting, kita perlu akses ke candidates dan loadErrors\n  // Tapi karena async, kita perlu load ulang atau simpan state\n  const runtimeDir = resolveRuntimeDir(\n    typeof __dirname === \"string\" ? __dirname : undefined,\n    import.meta.url\n  )\n  const candidates = resolveNativeBindingCandidates({\n    runtimeDir,\n    envVarNames: [\"TWS_NATIVE_PATH\"],\n  })\n\n  const { loadErrors } = await loadNativeBinding<NativeAnalyzerBinding>({\n    runtimeDir,\n    candidates,\n    isValid: isAnalyzerModule,\n    invalidExportMessage: \"Module loaded but missing `analyzeClasses` or `analyzeClassesWorkspace` export.\",\n  })\n\n  const lines = [\n    \"Native analyzer binding not found. Ensure `tailwind_styled_parser.node` is built.\",\n  ]\n\n  lines.push(\"Checked paths:\")\n  for (const candidate of candidates) lines.push(`- ${candidate}`)\n  if (loadErrors.length > 0) {\n    lines.push(\"Load errors:\")\n    for (const failure of loadErrors) {\n      lines.push(`- ${failure.path}: ${failure.message}`)\n    }\n  }\n\n  throw new Error(lines.join(\"\\n\"))\n}\n\nexport async function requireNativeCssCompiler(): Promise<NativeCssCompilerBinding> {\n  const binding = await requireNativeBinding()\n  if (typeof binding.compileCss === \"function\") return binding as NativeCssCompilerBinding\n\n  throw new Error(`Native analyzer compileCss binding is missing.`)\n}\n","import fs from \"node:fs\"\nimport { createDebugLogger } from \"@tailwind-styled/shared\"\n\nexport const DEFAULT_TOP_LIMIT = 10\nexport const DEFAULT_FREQUENT_THRESHOLD = 2\nexport const DEBUG_NAMESPACE = \"tailwind-styled:analyzer\"\n\nexport function formatErrorMessage(error: unknown): string {\n  return error instanceof Error ? error.message : String(error)\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n  if (!value || typeof value !== \"object\" || Array.isArray(value)) return false\n  const proto = Object.getPrototypeOf(value)\n  return proto === Object.prototype || proto === null\n}\n\nexport async function pathExists(filePath: string): Promise<boolean> {\n  try {\n    await fs.promises.access(filePath, fs.constants.F_OK)\n    return true\n  } catch {\n    return false\n  }\n}\n\nexport const debugLog = createDebugLogger(DEBUG_NAMESPACE, \"tailwind-styled/analyzer\")\n\nexport function sanitizeTopLimit(value: number | undefined): number {\n  if (!Number.isFinite(value)) return DEFAULT_TOP_LIMIT\n  return Math.max(1, Math.trunc(value as number))\n}\n\nexport function sanitizeFrequentThreshold(value: number | undefined): number {\n  if (!Number.isFinite(value)) return DEFAULT_FREQUENT_THRESHOLD\n  return Math.max(1, Math.trunc(value as number))\n}\n","import { TwError } from \"@tailwind-styled/shared\"\nimport type { ScanWorkspaceOptions } from \"@tailwind-styled/scanner\"\nimport { z } from \"zod\"\n\nconst formatIssuePath = (path: readonly PropertyKey[]): string =>\n  path.length > 0\n    ? path\n        .map((segment) =>\n          typeof segment === \"symbol\" ? segment.description ?? segment.toString() : String(segment)\n        )\n        .join(\".\")\n    : \"<root>\"\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n  if (!value || typeof value !== \"object\" || Array.isArray(value)) return false\n  const proto = Object.getPrototypeOf(value)\n  return proto === Object.prototype || proto === null\n}\n\nconst formatIssues = (error: z.ZodError): string =>\n  error.issues\n    .map((issue) => {\n      const path = formatIssuePath(issue.path)\n      return `${path}: ${issue.message}`\n    })\n    .join(\"; \")\n\nconst parseWithSchema = <T>(schema: z.ZodType<T>, data: unknown, label: string): T => {\n  const parsed = schema.safeParse(data)\n  if (parsed.success) return parsed.data\n  const details = formatIssues(parsed.error)\n  throw new TwError(\n    \"validation\",\n    \"SCHEMA_VALIDATION_FAILED\",\n    details ? `${label}: ${details}` : label,\n    parsed.error\n  )\n}\n\nconst CountSchema = z.number().int().min(0)\n\nexport const ClassUsageSchema = z.object({\n  name: z.string(),\n  count: CountSchema,\n  isUnused: z.boolean().optional(),\n  isConflict: z.boolean().optional(),\n})\n\nexport const ClassConflictSchema = z.object({\n  className: z.string(),\n  variants: z.array(z.string()),\n  classes: z.array(z.string()),\n  message: z.string(),\n})\n\nconst ClassCountSchema = z.object({\n  name: z.string(),\n  count: CountSchema,\n})\n\nexport const NativeReportSchema = z.object({\n  root: z.string(),\n  totalFiles: CountSchema,\n  uniqueClassCount: CountSchema,\n  totalClassOccurrences: CountSchema,\n  topClasses: z.array(ClassCountSchema),\n  duplicateCandidates: z.array(ClassCountSchema),\n  safelist: z.array(z.string()),\n})\n\nexport const NativeCssCompileResultSchema = z.object({\n  css: z.string(),\n  resolvedClasses: z.array(z.string()),\n  unknownClasses: z.array(z.string()),\n  sizeBytes: CountSchema,\n})\n\nconst AnalyzerClassStatsSchema = z.object({\n  top: z\n    .number({\n      error: \"analyzeWorkspace options.classStats.top must be a number when provided.\",\n    })\n    .finite()\n    .optional(),\n  frequentThreshold: z\n    .number({\n      error:\n        \"analyzeWorkspace options.classStats.frequentThreshold must be a number when provided.\",\n    })\n    .finite()\n    .optional(),\n})\n\nconst AnalyzerSemanticOptionsSchema = z.object({\n  tailwindConfigPath: z\n    .string({\n      error:\n        \"analyzeWorkspace options.semantic.tailwindConfigPath must be a non-empty string when provided.\",\n    })\n    .min(\n      1,\n      \"analyzeWorkspace options.semantic.tailwindConfigPath must be a non-empty string when provided.\"\n    )\n    .optional(),\n})\n\nexport const AnalyzerOptionsSchema = z.object({\n  scanner: z\n    .custom<ScanWorkspaceOptions>(\n      (value) => isPlainObject(value),\n      \"analyzeWorkspace options.scanner must be an object when provided.\"\n    )\n    .optional(),\n  classStats: AnalyzerClassStatsSchema.optional(),\n  semantic: z\n    .union([\n      z.boolean({\n        error: \"analyzeWorkspace options.semantic must be a boolean or an object when provided.\",\n      }),\n      AnalyzerSemanticOptionsSchema,\n    ])\n    .optional(),\n  includeClass: z\n    .custom<(className: string) => boolean>(\n      (value) => typeof value === \"function\",\n      \"analyzeWorkspace options.includeClass must be a function when provided.\"\n    )\n    .optional(),\n})\n\nexport const ClassToCssOptionsSchema = z.object({\n  prefix: z\n    .union([z.string(), z.null()], {\n      error: \"classToCss options.prefix must be a string or null when provided.\",\n    })\n    .optional(),\n  strict: z\n    .boolean({\n      error: \"classToCss options.strict must be a boolean when provided.\",\n    })\n    .optional(),\n})\n\nexport const parseAnalyzerOptions = (options: unknown) =>\n  parseWithSchema(AnalyzerOptionsSchema, options ?? {}, \"analyzeWorkspace options are invalid\")\n\nexport const parseNativeReport = (report: unknown) =>\n  parseWithSchema(NativeReportSchema, report, \"Native analyzer report is invalid\")\n\nexport const parseNativeCssCompileResult = (result: unknown, className?: string) =>\n  parseWithSchema(\n    NativeCssCompileResultSchema,\n    result,\n    className\n      ? `Native CSS compile result is invalid for class \"${className}\"`\n      : \"Native CSS compile result is invalid\"\n  )\n\nexport const parseClassToCssOptions = (options: unknown) =>\n  parseWithSchema(ClassToCssOptionsSchema, options ?? {}, \"classToCss options are invalid\")\n","import { requireNativeCssCompiler } from \"./binding\"\nimport { parseClassToCssOptions, parseNativeCssCompileResult } from \"./schemas\"\nimport type { ClassToCssOptions, ClassToCssResult } from \"./types\"\nimport { formatErrorMessage } from \"./utils\"\n\nexport const normalizeClassInput = (input: string | string[], binding: { normalizeClassInput?: (s: string) => string[] }): string[] => {\n  if (typeof input === \"string\") {\n    if (!binding.normalizeClassInput) {\n      throw new Error(\"FATAL: Native binding 'normalizeClassInput' is required but not available.\")\n    }\n    return binding.normalizeClassInput(input)\n  }\n\n  if (!Array.isArray(input)) {\n    throw new TypeError(\"classToCss input must be a string or an array of strings.\")\n  }\n\n  const out: string[] = []\n  for (const item of input) {\n    if (typeof item !== \"string\") {\n      throw new TypeError(\"classToCss input array must contain only strings.\")\n    }\n    const value = item.trim()\n    if (value.length > 0) out.push(value)\n  }\n  return out\n}\n\nconst normalizeClassToCssOptions = (\n  options: ClassToCssOptions\n): {\n  prefix: string | null\n  strict: boolean\n} => {\n  const parsed = parseClassToCssOptions(options)\n  const strict = parsed.strict ?? false\n  const prefix = parsed.prefix ?? null\n\n  return { prefix, strict }\n}\n\nconst mergeDeclarationMap = (\n  target: Map<string, string>,\n  css: string,\n  binding: { parseCssRules?: (css: string) => Array<{ property: string; value: string; isImportant: boolean }> }\n): void => {\n  if (!binding.parseCssRules) {\n    throw new Error(\"FATAL: Native binding 'parseCssRules' is required but not available.\")\n  }\n  const rules = binding.parseCssRules(css)\n  for (const rule of rules) {\n    if (target.has(rule.property)) target.delete(rule.property)\n    target.set(rule.property, rule.isImportant ? `${rule.value} !important` : rule.value)\n  }\n}\n\nconst declarationMapToString = (\n  declarationMap: Map<string, string>,\n  binding: { declarationMapToString?: (entries: Array<{ property: string; value: string }>) => string }\n): string => {\n  if (!binding.declarationMapToString) {\n    throw new Error(\"FATAL: Native binding 'declarationMapToString' is required but not available.\")\n  }\n  const entries = Array.from(declarationMap.entries()).map(([property, value]) => ({ property, value }))\n  return binding.declarationMapToString(entries)\n}\n\n/**\n * Convert Tailwind class input into atomic CSS output via native binding.\n * @example\n * const css = await classToCss(\"opacity-0 translate-y-2\", { strict: true })\n */\nexport const classToCss = async (\n  input: string | string[],\n  options: ClassToCssOptions = {}\n): Promise<ClassToCssResult> => {\n  const binding = await requireNativeCssCompiler()\n  const inputClasses = normalizeClassInput(input, binding)\n  const normalizedOptions = normalizeClassToCssOptions(options)\n\n  if (inputClasses.length === 0) {\n    return {\n      inputClasses: [],\n      css: \"\",\n      declarations: \"\",\n      resolvedClasses: [],\n      unknownClasses: [],\n      sizeBytes: 0,\n    }\n  }\n\n  const prefix = normalizedOptions.prefix\n\n  const results = await Promise.all(\n    inputClasses.map(async (className) => {\n      const compiled = (() => {\n        try {\n          return binding.compileCss([className], prefix)\n        } catch (error) {\n          throw new Error(\n            `Native analyzer failed while compiling class \"${className}\": ${formatErrorMessage(error)}`,\n            { cause: error }\n          )\n        }\n      })()\n\n      if (!compiled) {\n        throw new Error(`Native analyzer returned no result for class \"${className}\".`)\n      }\n\n      const validated = parseNativeCssCompileResult(compiled, className)\n\n      return {\n        className,\n        css: validated.css,\n        resolvedClasses: validated.resolvedClasses,\n        unknownClasses: validated.unknownClasses,\n        sizeBytes: validated.sizeBytes,\n      }\n    })\n  )\n\n  const cssChunks = results.map((r) => r.css)\n  const resolvedClasses = results.flatMap((r) => r.resolvedClasses)\n  const unknownClasses = results.flatMap((r) => r.unknownClasses)\n  const sizeBytes = results.reduce((sum, r) => sum + r.sizeBytes, 0)\n\n  const declarationMap = new Map<string, string>()\n  for (const result of results) {\n    mergeDeclarationMap(declarationMap, result.css, binding)\n  }\n\n  const uniqueUnknown = Array.from(new Set(unknownClasses))\n  if (normalizedOptions.strict && uniqueUnknown.length > 0) {\n    throw new Error(`Unknown Tailwind classes: ${uniqueUnknown.join(\", \")}`)\n  }\n\n  return {\n    inputClasses,\n    css: cssChunks.filter((chunk) => chunk.length > 0).join(\"\\n\"),\n    declarations: declarationMapToString(declarationMap, binding),\n    resolvedClasses: Array.from(new Set(resolvedClasses)),\n    unknownClasses: uniqueUnknown,\n    sizeBytes,\n  }\n}"],"mappings":"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","names":["path","fileURLToPath","fs","DEBUG_NAMESPACE","debugLog","DEBUG_NAMESPACE","debugLog","formatIssuePath","path","initAnimate"]}