{"version":3,"sources":["../packages/domain/preset/src/defaultPreset.ts","../packages/domain/preset/src/presetExtension.ts"],"sourcesContent":["/**\n * tailwind-styled-v4 — Default Preset\n *\n * Tailwind config built-in yang dipakai ketika developer tidak punya\n * tailwind.config.ts / tailwind.config.js di project mereka.\n *\n * Developer tidak perlu setup apapun:\n *   npm install tailwind-styled-v4\n *   → langsung bisa tw.div`p-4 bg-blue-500`\n *\n * Preset ini juga menyediakan design tokens yang consistent\n * untuk semua project yang pakai tailwind-styled-v4.\n *\n * Override per-project:\n *   // tailwind.config.ts\n *   import { defaultPreset } from \"tailwind-styled-v4/preset\"\n *   export default { presets: [defaultPreset], theme: { extend: {...} } }\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Content paths — auto-detect berdasarkan project structure\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst STANDARD_CONTENT_PATHS = [\n  // Next.js App Router\n  \"./src/**/*.{tsx,ts,jsx,js,mdx}\",\n  \"./app/**/*.{tsx,ts,jsx,js,mdx}\",\n  \"./pages/**/*.{tsx,ts,jsx,js,mdx}\",\n  \"./components/**/*.{tsx,ts,jsx,js,mdx}\",\n  // Vite / React\n  \"./src/**/*.{tsx,ts,jsx,js}\",\n  \"./index.html\",\n  // Monorepo\n  \"../../packages/**/src/**/*.{tsx,ts,jsx,js}\",\n]\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Design tokens — consistent across all tailwind-styled-v4 projects\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const designTokens = {\n  colors: {\n    primary: { DEFAULT: \"#3b82f6\", hover: \"#2563eb\", active: \"#1d4ed8\", foreground: \"#ffffff\" },\n    secondary: { DEFAULT: \"#6366f1\", hover: \"#4f46e5\", active: \"#4338ca\", foreground: \"#ffffff\" },\n    accent: { DEFAULT: \"#f59e0b\", hover: \"#d97706\", active: \"#b45309\", foreground: \"#000000\" },\n    success: { DEFAULT: \"#10b981\", foreground: \"#ffffff\" },\n    warning: { DEFAULT: \"#f59e0b\", foreground: \"#000000\" },\n    danger: { DEFAULT: \"#ef4444\", foreground: \"#ffffff\" },\n    info: { DEFAULT: \"#3b82f6\", foreground: \"#ffffff\" },\n    surface: \"#18181b\",\n    border: \"#27272a\",\n    muted: \"#71717a\",\n    subtle: \"#3f3f46\",\n  },\n\n  spacing: {\n    1: \"0.25rem\",\n    2: \"0.5rem\",\n    3: \"0.75rem\",\n    4: \"1rem\",\n    5: \"1.25rem\",\n    6: \"1.5rem\",\n    8: \"2rem\",\n    10: \"2.5rem\",\n    12: \"3rem\",\n    16: \"4rem\",\n  },\n\n  breakpoints: {\n    sm: \"40rem\",\n    md: \"48rem\",\n    lg: \"64rem\",\n    xl: \"80rem\",\n    \"2xl\": \"96rem\",\n  },\n\n  fontWeight: {\n    normal: \"400\",\n    medium: \"500\",\n    semibold: \"600\",\n    bold: \"700\",\n  },\n\n  fontFamily: {\n    sans: [\"InterVariable\", \"Inter\", \"system-ui\", \"sans-serif\"],\n    mono: [\"JetBrains Mono\", \"Fira Code\", \"Consolas\", \"monospace\"],\n  },\n\n  borderRadius: {\n    sm: \"0.25rem\",\n    DEFAULT: \"0.5rem\",\n    md: \"0.5rem\",\n    lg: \"0.75rem\",\n    xl: \"1rem\",\n    \"2xl\": \"1.5rem\",\n    full: \"9999px\",\n  },\n\n  animation: {\n    \"fade-in\": \"fadeIn 0.2s ease-out\",\n    \"fade-out\": \"fadeOut 0.2s ease-in\",\n    \"slide-up\": \"slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1)\",\n    \"slide-down\": \"slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1)\",\n    \"scale-in\": \"scaleIn 0.2s ease-out\",\n  },\n\n  keyframes: {\n    fadeIn: { from: { opacity: \"0\" }, to: { opacity: \"1\" } },\n    fadeOut: { from: { opacity: \"1\" }, to: { opacity: \"0\" } },\n    slideUp: {\n      from: { transform: \"translateY(8px)\", opacity: \"0\" },\n      to: { transform: \"translateY(0)\", opacity: \"1\" },\n    },\n    slideDown: {\n      from: { transform: \"translateY(-8px)\", opacity: \"0\" },\n      to: { transform: \"translateY(0)\", opacity: \"1\" },\n    },\n    scaleIn: {\n      from: { transform: \"scale(0.95)\", opacity: \"0\" },\n      to: { transform: \"scale(1)\", opacity: \"1\" },\n    },\n  },\n} as const\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Default Tailwind Config — dipakai sebagai fallback + preset\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const defaultPreset = {\n  content: STANDARD_CONTENT_PATHS,\n\n  darkMode: \"class\" as const,\n\n  theme: {\n    extend: {\n      colors: designTokens.colors,\n      fontFamily: designTokens.fontFamily,\n      borderRadius: designTokens.borderRadius,\n      animation: designTokens.animation,\n      keyframes: designTokens.keyframes,\n    },\n  },\n\n  plugins: [],\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Default Theme CSS — Tailwind v4 @theme block\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const defaultThemeCss = `@import \"tailwindcss\";\n\n@theme {\n  /* colors */\n  --color-primary: #3b82f6;\n  --color-primary-hover: #2563eb;\n  --color-primary-active: #1d4ed8;\n  --color-primary-foreground: #ffffff;\n  --color-secondary: #6366f1;\n  --color-secondary-hover: #4f46e5;\n  --color-secondary-active: #4338ca;\n  --color-secondary-foreground: #ffffff;\n  --color-accent: #f59e0b;\n  --color-accent-hover: #d97706;\n  --color-accent-active: #b45309;\n  --color-accent-foreground: #000000;\n  --color-success: #10b981;\n  --color-success-foreground: #ffffff;\n  --color-warning: #f59e0b;\n  --color-warning-foreground: #000000;\n  --color-danger: #ef4444;\n  --color-danger-foreground: #ffffff;\n  --color-info: #3b82f6;\n  --color-info-foreground: #ffffff;\n  --color-surface: #18181b;\n  --color-border: #27272a;\n  --color-muted: #71717a;\n  --color-subtle: #3f3f46;\n\n  /* fonts */\n  --font-sans: InterVariable, Inter, system-ui, sans-serif;\n  --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;\n\n  /* spacing */\n  --spacing-1: 0.25rem;\n  --spacing-2: 0.5rem;\n  --spacing-3: 0.75rem;\n  --spacing-4: 1rem;\n  --spacing-5: 1.25rem;\n  --spacing-6: 1.5rem;\n  --spacing-8: 2rem;\n  --spacing-10: 2.5rem;\n  --spacing-12: 3rem;\n  --spacing-16: 4rem;\n\n  /* breakpoints */\n  --breakpoint-sm: 40rem;\n  --breakpoint-md: 48rem;\n  --breakpoint-lg: 64rem;\n  --breakpoint-xl: 80rem;\n  --breakpoint-2xl: 96rem;\n\n  /* border radius */\n  --radius-sm: 0.25rem;\n  --radius-md: 0.5rem;\n  --radius-lg: 0.75rem;\n  --radius-xl: 1rem;\n  --radius-2xl: 1.5rem;\n  --radius-full: 9999px;\n\n  /* animations */\n  --animate-fade-in: fadeIn 0.2s ease-out;\n  --animate-fade-out: fadeOut 0.2s ease-in;\n  --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n  --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n  --animate-scale-in: scaleIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n  from { opacity: 0; }\n  to { opacity: 1; }\n}\n@keyframes fadeOut {\n  from { opacity: 1; }\n  to { opacity: 0; }\n}\n@keyframes slideUp {\n  from { transform: translateY(8px); opacity: 0; }\n  to { transform: translateY(0); opacity: 1; }\n}\n@keyframes slideDown {\n  from { transform: translateY(-8px); opacity: 0; }\n  to { transform: translateY(0); opacity: 1; }\n}\n@keyframes scaleIn {\n  from { transform: scale(0.95); opacity: 0; }\n  to { transform: scale(1); opacity: 1; }\n}`\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Zero-config globals.css — tidak perlu @tailwind base dll\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const defaultGlobalCss = `@import \"tailwindcss\";\n\n@theme {\n  /* colors */\n  --color-primary: #3b82f6;\n  --color-primary-hover: #2563eb;\n  --color-primary-active: #1d4ed8;\n  --color-primary-foreground: #ffffff;\n  --color-secondary: #6366f1;\n  --color-secondary-hover: #4f46e5;\n  --color-secondary-active: #4338ca;\n  --color-secondary-foreground: #ffffff;\n  --color-accent: #f59e0b;\n  --color-accent-hover: #d97706;\n  --color-accent-active: #b45309;\n  --color-accent-foreground: #000000;\n  --color-success: #10b981;\n  --color-success-foreground: #ffffff;\n  --color-warning: #f59e0b;\n  --color-warning-foreground: #000000;\n  --color-danger: #ef4444;\n  --color-danger-foreground: #ffffff;\n  --color-info: #3b82f6;\n  --color-info-foreground: #ffffff;\n  --color-surface: #18181b;\n  --color-border: #27272a;\n  --color-muted: #71717a;\n  --color-subtle: #3f3f46;\n\n  /* fonts */\n  --font-sans: InterVariable, Inter, system-ui, sans-serif;\n  --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;\n\n  /* spacing */\n  --spacing-1: 0.25rem;\n  --spacing-2: 0.5rem;\n  --spacing-3: 0.75rem;\n  --spacing-4: 1rem;\n  --spacing-5: 1.25rem;\n  --spacing-6: 1.5rem;\n  --spacing-8: 2rem;\n  --spacing-10: 2.5rem;\n  --spacing-12: 3rem;\n  --spacing-16: 4rem;\n\n  /* breakpoints */\n  --breakpoint-sm: 40rem;\n  --breakpoint-md: 48rem;\n  --breakpoint-lg: 64rem;\n  --breakpoint-xl: 80rem;\n  --breakpoint-2xl: 96rem;\n\n  /* border radius */\n  --radius-sm: 0.25rem;\n  --radius-md: 0.5rem;\n  --radius-lg: 0.75rem;\n  --radius-xl: 1rem;\n  --radius-2xl: 1.5rem;\n  --radius-full: 9999px;\n\n  /* animations */\n  --animate-fade-in: fadeIn 0.2s ease-out;\n  --animate-fade-out: fadeOut 0.2s ease-in;\n  --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n  --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n  --animate-scale-in: scaleIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n  from { opacity: 0; }\n  to { opacity: 1; }\n}\n@keyframes fadeOut {\n  from { opacity: 1; }\n  to { opacity: 0; }\n}\n@keyframes slideUp {\n  from { transform: translateY(8px); opacity: 0; }\n  to { transform: translateY(0); opacity: 1; }\n}\n@keyframes slideDown {\n  from { transform: translateY(-8px); opacity: 0; }\n  to { transform: translateY(0); opacity: 1; }\n}\n@keyframes scaleIn {\n  from { transform: scale(0.95); opacity: 0; }\n  to { transform: scale(1); opacity: 1; }\n}\n\n/* tailwind-styled-v4 — zero-config base styles */\n*, *::before, *::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  text-rendering: optimizeLegibility;\n}\n\nbody {\n  margin: 0;\n  font-family: var(--font-sans, system-ui, sans-serif);\n  background: var(--color-surface, #18181b);\n  color: var(--color-foreground, #fafafa);\n}\n`\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Zero-config Tailwind v4 CSS generator\n// Dipakai oleh CLI dan withTailwindStyled saat tidak ada user config\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function generateTailwindCss(contentPaths = STANDARD_CONTENT_PATHS): string {\n  return `@import \"tailwindcss\";\n\n@theme {\n  /* colors */\n  --color-primary: #3b82f6;\n  --color-primary-hover: #2563eb;\n  --color-primary-active: #1d4ed8;\n  --color-primary-foreground: #ffffff;\n  --color-secondary: #6366f1;\n  --color-secondary-hover: #4f46e5;\n  --color-secondary-active: #4338ca;\n  --color-secondary-foreground: #ffffff;\n  --color-accent: #f59e0b;\n  --color-accent-hover: #d97706;\n  --color-accent-active: #b45309;\n  --color-accent-foreground: #000000;\n  --color-success: #10b981;\n  --color-success-foreground: #ffffff;\n  --color-warning: #f59e0b;\n  --color-warning-foreground: #000000;\n  --color-danger: #ef4444;\n  --color-danger-foreground: #ffffff;\n  --color-info: #3b82f6;\n  --color-info-foreground: #ffffff;\n  --color-surface: #18181b;\n  --color-border: #27272a;\n  --color-muted: #71717a;\n  --color-subtle: #3f3f46;\n\n  /* fonts */\n  --font-sans: InterVariable, Inter, system-ui, sans-serif;\n  --font-mono: JetBrains Mono, Fira Code, Consolas, monospace;\n\n  /* spacing */\n  --spacing-1: 0.25rem;\n  --spacing-2: 0.5rem;\n  --spacing-3: 0.75rem;\n  --spacing-4: 1rem;\n  --spacing-5: 1.25rem;\n  --spacing-6: 1.5rem;\n  --spacing-8: 2rem;\n  --spacing-10: 2.5rem;\n  --spacing-12: 3rem;\n  --spacing-16: 4rem;\n\n  /* breakpoints */\n  --breakpoint-sm: 40rem;\n  --breakpoint-md: 48rem;\n  --breakpoint-lg: 64rem;\n  --breakpoint-xl: 80rem;\n  --breakpoint-2xl: 96rem;\n\n  /* border radius */\n  --radius-sm: 0.25rem;\n  --radius-md: 0.5rem;\n  --radius-lg: 0.75rem;\n  --radius-xl: 1rem;\n  --radius-2xl: 1.5rem;\n  --radius-full: 9999px;\n\n  /* animations */\n  --animate-fade-in: fadeIn 0.2s ease-out;\n  --animate-fade-out: fadeOut 0.2s ease-in;\n  --animate-slide-up: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n  --animate-slide-down: slideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n  --animate-scale-in: scaleIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n  from { opacity: 0; }\n  to { opacity: 1; }\n}\n@keyframes fadeOut {\n  from { opacity: 1; }\n  to { opacity: 0; }\n}\n@keyframes slideUp {\n  from { transform: translateY(8px); opacity: 0; }\n  to { transform: translateY(0); opacity: 1; }\n}\n@keyframes slideDown {\n  from { transform: translateY(-8px); opacity: 0; }\n  to { transform: translateY(0); opacity: 1; }\n}\n@keyframes scaleIn {\n  from { transform: scale(0.95); opacity: 0; }\n  to { transform: scale(1); opacity: 1; }\n}\n\n@source ${contentPaths.join(\"\\n@source \")}\n`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Zero-config tailwind.config.ts generator\n// DEPRECATED: Use generateTailwindCss for Tailwind v4 instead\n// Dipakai oleh CLI dan withTailwindStyled saat tidak ada user config\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function generateTailwindConfig(\n  safelistPath = \".tailwind-styled-safelist.json\",\n  contentPaths = STANDARD_CONTENT_PATHS\n): string {\n  return `import type { Config } from \"tailwindcss\"\nimport { defaultPreset } from \"tailwind-styled-v4/preset\"\n\n// Auto-generated safelist dari tailwind-styled-v4 compiler\nconst safelist = (() => {\n  try { return require(${JSON.stringify(safelistPath)}) as string[] }\n  catch { return [] }\n})()\n\nexport default {\n  presets: [defaultPreset],\n  content: ${JSON.stringify(contentPaths, null, 2)},\n  safelist,\n} satisfies Config\n`\n}\n","/**\n * Preset extension API — jalur ekspansi untuk custom presets.\n * Dari monorepo checklist: \"Siapkan jalur ekspansi preset tanpa memaksa perubahan compiler besar\"\n *\n * Pattern: buat preset custom dengan extend/merge tanpa menyentuh compiler.\n */\nimport { defaultPreset, designTokens } from \"./defaultPreset\"\n\n// Keep preset typing local so preset does not depend on core-only component contracts.\nexport interface PresetComponentConfig {\n  readonly base?: string\n  readonly variants?: Record<string, Record<string, string>>\n  readonly defaultVariants?: Record<string, string>\n  readonly compoundVariants?: Array<{ class: string; [key: string]: string }>\n  readonly state?: Record<string, Record<string, string>>\n  readonly container?: Record<string, string>\n  readonly containerName?: string\n}\n\nexport interface PresetExtension {\n  /** Token tambahan (akan di-merge dengan defaultPreset tokens) */\n  tokens?: Record<string, string>\n  /** Component configs default yang bisa di-override */\n  components?: Record<string, PresetComponentConfig>\n  /** CSS tambahan yang di-inject setelah @theme default */\n  additionalCss?: string\n  /** Override dark mode strategy */\n  darkMode?: \"class\" | \"media\"\n  /** Plugin tambahan untuk Tailwind config */\n  plugins?: unknown[]\n  /** Extend content paths */\n  content?: string[]\n}\n\nexport interface PresetOptions {\n  /** Nama preset (untuk debugging) */\n  name?: string\n  /** Override dark mode dari default */\n  darkMode?: \"class\" | \"media\"\n  /** Custom content paths (merged dengan default) */\n  content?: string[]\n}\n\n/** Buat preset custom dari scratch */\nexport function createPreset(\n  extension: PresetExtension,\n  opts: PresetOptions = {}\n): typeof defaultPreset {\n  const { name = \"custom-preset\", darkMode, content = [] } = opts\n\n  const mergedTokens = {\n    ...designTokens,\n    ...extension.tokens,\n  }\n\n  const base = defaultPreset as Record<string, unknown>\n  const baseTheme = (base.theme as Record<string, unknown>) ?? {}\n  const baseExtend = (baseTheme.extend as Record<string, unknown>) ?? {}\n\n  return {\n    ...defaultPreset,\n    darkMode: darkMode ?? defaultPreset.darkMode,\n    content: [...(defaultPreset.content as string[]), ...content],\n    theme: {\n      ...baseTheme,\n      extend: {\n        ...baseExtend,\n        colors: {\n          ...(baseExtend.colors as Record<string, unknown>),\n          ...(extension.tokens\n            ? Object.fromEntries(\n                Object.entries(extension.tokens).map(([k, v]) => [k, v])\n              )\n            : {}),\n        },\n      },\n    },\n    plugins: [...((defaultPreset.plugins as unknown[]) ?? []), ...(extension.plugins ?? [])],\n  } as typeof defaultPreset\n}\n\n/**\n * Extend existing preset dengan tokens/components tambahan.\n * Tidak memerlukan perubahan compiler — semua di Tailwind config layer.\n *\n * @example\n * const myPreset = extendPreset(defaultPreset, {\n *   tokens: { \"brand-blue\": \"#1d4ed8\", \"brand-red\": \"#dc2626\" },\n *   additionalCss: \".btn { @apply px-4 py-2 rounded; }\",\n * })\n */\nexport function extendPreset(\n  base: typeof defaultPreset,\n  extension: PresetExtension\n): typeof defaultPreset {\n  const baseObj = base as Record<string, unknown>\n  const baseTheme = (baseObj.theme as Record<string, unknown>) ?? {}\n  const baseExtend = (baseTheme.extend as Record<string, unknown>) ?? {}\n\n  return {\n    ...base,\n    content: [\n      ...((base.content as string[]) ?? []),\n      ...(extension.content ?? []),\n    ],\n    darkMode: extension.darkMode ?? base.darkMode,\n    theme: {\n      ...baseTheme,\n      extend: {\n        ...baseExtend,\n        colors: {\n          ...(baseExtend.colors as Record<string, unknown>),\n          ...(extension.tokens ?? {}),\n        },\n      },\n    },\n    plugins: [...((base.plugins as unknown[]) ?? []), ...(extension.plugins ?? [])],\n  } as typeof defaultPreset\n}\n\n/**\n * Merge dua atau lebih presets — tokens, plugins, dan content di-merge.\n * Preset terakhir menang untuk keys yang konflik.\n */\nexport function mergePresets(...presets: Array<typeof defaultPreset>): typeof defaultPreset {\n  return presets.reduce((acc, preset) => extendPreset(acc, {\n    content: (preset.content as string[]) ?? [],\n    plugins: (preset.plugins as unknown[]) ?? [],\n  }))\n}\n"],"mappings":"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","names":[]}