#!/usr/bin/env python3
"""컨셉 #11 JSX 선언적 템플릿 배너 렌더링 스크립트"""

from pathlib import Path
from playwright.sync_api import sync_playwright

HTML_PATH = Path("/home/jay/workspace/output/meta-ads/concept-catalog/11-jsx-declarative/template.html")
OUTPUT_PATH = Path("/home/jay/workspace/output/meta-ads/concept-catalog/11-jsx-declarative/sample.png")

def render():
    with sync_playwright() as p:
        browser = p.chromium.launch()
        try:
            page = browser.new_page(viewport={"width": 1080, "height": 1080})
            page.goto(f"file://{HTML_PATH.resolve()}", wait_until="networkidle")
            # 폰트 로딩 대기
            page.wait_for_timeout(2000)
            OUTPUT_PATH.parent.mkdir(parents=True, exist_ok=True)
            page.screenshot(path=str(OUTPUT_PATH), type="png", clip={"x": 0, "y": 0, "width": 1080, "height": 1080})
            size_kb = OUTPUT_PATH.stat().st_size / 1024
            print(f"[완료] {OUTPUT_PATH} ({size_kb:.0f} KB)")
        finally:
            browser.close()

if __name__ == "__main__":
    render()
