Compare and edit two versions of a document.

by Ryan Allison

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>ACORD25 Diff Tool</title>
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js" defer></script>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-50 p-6">

  <div x-data="diffTool()" class="max-w-5xl mx-auto bg-white shadow rounded p-4 space-y-4">
    <h2 class="text-2xl font-bold mb-4">ACORD25 Diff Comparison</h2>

    <button @click="showUnchanged = !showUnchanged"
            class="mb-4 bg-blue-500 text-white px-4 py-2 rounded">
      <span x-text="showUnchanged ? 'Hide' : 'Show'"></span> Unchanged Rows
    </button>

    <template x-for="(field, index) in fields" :key="index">
      <div x-show="showUnchanged || field.prev !== field.curr"
           class="grid grid-cols-3 gap-4 p-2 border rounded"
           :class="field.prev !== field.curr ? 'bg-yellow-100 border-yellow-400' : 'bg-white border-gray-300'">
        
        <!-- Previous Value -->
        <div class="flex flex-col">
          <label class="text-sm font-medium text-gray-700">Previous</label>
          <div class="flex items-center justify-between">
            <span x-text="field.prev" class="text-gray-800"></span>
            <button @click="field.curr = field.prev"
                    class="text-sm text-blue-500 hover:underline ml-2">
              Restore
            </button>
          </div>
        </div>

        <!-- Editable Current Value -->
        <div class="flex flex-col">
          <label class="text-sm font-medium text-gray-700">Current</label>
          <input type="text" x-model="field.curr"
                 class="border rounded px-2 py-1" />
        </div>

        <!-- OCR’d New Value -->
        <div class="flex flex-col">
          <label class="text-sm font-medium text-gray-700">OCR’d</label>
          <span...