import json

GAP_THRESHOLD_PT = 15  # gap in points between cells that signals a new field group

for pnum in (1, 2, 3):
    rows = json.load(open(f"boxes_page{pnum}.json"))
    print(f"\n=== PAGE {pnum} ===")
    for ri, row in enumerate(rows):
        cells = row["cells"]
        clusters = [[cells[0]]]
        for c in cells[1:]:
            prev = clusters[-1][-1]
            gap = c["x"] - (prev["x"] + prev["w"])
            if gap > GAP_THRESHOLD_PT:
                clusters.append([c])
            else:
                clusters[-1].append(c)
        sizes = [len(cl) for cl in clusters]
        first_x = [round(cl[0]["x"],1) for cl in clusters]
        y = cells[0]["y"]
        print(f"R{ri}: y={y:.1f} total={len(cells)} clusters(sizes)={sizes} start_x={first_x}")
