<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Sketch Print Test</title>
    <style>
      body {
        font-family:
          system-ui,
          -apple-system,
          sans-serif;
        margin: 0;
        padding: 20px;
        background: #f5f5f5;
      }

      .container {
        max-width: 800px;
        margin: 0 auto;
        background: white;
        padding: 20px;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
      }

      .chat-container {
        height: 400px;
        overflow-y: auto;
        border: 1px solid #ddd;
        padding: 10px;
        margin: 20px 0;
      }

      .message {
        margin: 10px 0;
        padding: 10px;
        border-radius: 6px;
      }

      .user-message {
        background: #e3f2fd;
        border-left: 4px solid #2196f3;
      }

      .agent-message {
        background: #f3e5f5;
        border-left: 4px solid #9c27b0;
      }

      .print-button {
        background: #4caf50;
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 4px;
        cursor: pointer;
        font-size: 16px;
      }

      .print-button:hover {
        background: #45a049;
      }

      /* Print styles */
      @media print {
        body {
          background: white !important;
          padding: 0 !important;
        }

        .container {
          max-width: none !important;
          margin: 0 !important;
          padding: 0 !important;
          box-shadow: none !important;
          border-radius: 0 !important;
        }

        .chat-container {
          height: auto !important;
          max-height: none !important;
          overflow: visible !important;
          border: none !important;
          padding: 0 !important;
          margin: 0 !important;
        }

        .print-button {
          display: none !important;
        }

        .message {
          page-break-inside: avoid;
          margin: 8px 0;
        }

        h1,
        h2,
        h3 {
          page-break-after: avoid;
        }
      }
    </style>
  </head>
  <body>
    <div class="container">
      <h1>Sketch Print Test</h1>
      <p>
        This page tests the print functionality for sketch chat. Use Ctrl+P (or
        Cmd+P on Mac) to print.
      </p>

      <button class="print-button" onclick="window.print()">Print Test</button>

      <div class="chat-container">
        <div class="message user-message">
          <strong>User:</strong> Hello, can you help me with some code?
        </div>

        <div class="message agent-message">
          <strong>Agent:</strong> Of course! I'd be happy to help you with your
          code. What specific programming language or problem are you working
          on?
        </div>

        <div class="message user-message">
          <strong>User:</strong> I need to fix a CSS issue with printing. The
          content gets cut off when printing.
        </div>

        <div class="message agent-message">
          <strong>Agent:</strong> That's a common issue with web applications.
          The problem usually occurs when:
          <ul>
            <li>Container elements have fixed heights</li>
            <li>Overflow properties are set to 'auto' or 'hidden'</li>
            <li>Flexbox layouts don't expand properly for print</li>
          </ul>

          <p>Here's how to fix it:</p>

          <pre><code>@media print {
  .container {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  
  .scrollable-content {
    height: auto !important;
    overflow: visible !important;
  }
}</code></pre>
        </div>

        <div class="message user-message">
          <strong>User:</strong> That makes sense! Should I also hide
          interactive elements during print?
        </div>

        <div class="message agent-message">
          <strong>Agent:</strong> Absolutely! Interactive elements like buttons,
          form inputs, and navigation menus should typically be hidden during
          print since they're not functional on paper. You can do this with:

          <pre><code>@media print {
  .button, .interactive-element {
    display: none !important;
  }
}</code></pre>

          <p>Also consider:</p>
          <ul>
            <li>
              Use <code>page-break-inside: avoid</code> on important content
              blocks
            </li>
            <li>
              Remove shadows, borders, and background colors that waste ink
            </li>
            <li>Ensure text is black on white for better readability</li>
            <li>Adjust margins and padding for better paper layout</li>
          </ul>
        </div>

        <div class="message user-message">
          <strong>User:</strong> Perfect! This should solve my printing issues.
          Thank you!
        </div>

        <div class="message agent-message">
          <strong>Agent:</strong> You're welcome! The key is to remember that
          print styles should make content flow naturally on paper rather than
          being constrained by screen dimensions. Always test your print styles
          by using your browser's print preview feature.
        </div>
      </div>

      <p>
        <strong>Instructions:</strong> Click the "Print Test" button or use
        Ctrl+P to test the print functionality. The chat should print across
        multiple pages if needed, with proper page breaks.
      </p>
    </div>
  </body>
</html>
