| <!doctype html> |
| <html> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width" /> |
| <title>My static Space</title> |
| <link rel="stylesheet" href="style.css" /> |
| |
| <style> |
| .chat-fab { |
| position: fixed; |
| right: 20px; |
| bottom: 20px; |
| width: 56px; |
| height: 56px; |
| border-radius: 50%; |
| border: none; |
| cursor: pointer; |
| background: #111; |
| color: #fff; |
| font-size: 24px; |
| box-shadow: 0 6px 15px rgba(0,0,0,0.25); |
| z-index: 10000; |
| } |
| |
| .chat-panel { |
| position: fixed; |
| right: 20px; |
| bottom: 90px; |
| width: 400px; |
| height: 600px; |
| max-width: calc(100% - 40px); |
| transform: translateY(20px); |
| opacity: 0; |
| pointer-events: none; |
| transition: opacity .2s ease, transform .2s ease; |
| border-radius: 12px; |
| overflow: hidden; |
| box-shadow: 0 12px 30px rgba(0,0,0,.25); |
| background: #fff; |
| z-index: 10000; |
| } |
| |
| .chat-panel.open { |
| opacity: 1; |
| transform: translateY(0); |
| pointer-events: auto; |
| } |
| |
| .chat-header { |
| height: 44px; |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: 0 12px; |
| background: #111; |
| color: #fff; |
| font: 14px/1.2 system-ui, sans-serif; |
| } |
| |
| .chat-iframe { |
| border: 0; |
| width: 100%; |
| height: calc(100% - 44px); |
| display: block; |
| } |
| |
| .chat-close { |
| background: none; |
| border: 0; |
| color: #fff; |
| font-size: 18px; |
| cursor: pointer; |
| } |
| </style> |
| |
| <script> |
| document.addEventListener('DOMContentLoaded', function () { |
| const fab = document.createElement('button'); |
| fab.className = 'chat-fab'; |
| fab.textContent = '💬'; |
| fab.setAttribute('aria-label', 'Open chat'); |
| |
| const panel = document.createElement('div'); |
| panel.className = 'chat-panel'; |
| panel.setAttribute('aria-hidden', 'true'); |
| |
| const header = document.createElement('div'); |
| header.className = 'chat-header'; |
| header.innerHTML = `<span>Chatbot</span>`; |
| |
| const closeBtn = document.createElement('button'); |
| closeBtn.className = 'chat-close'; |
| closeBtn.textContent = '✕'; |
| closeBtn.setAttribute('aria-label', 'Close chat'); |
| |
| closeBtn.addEventListener('click', () => { |
| panel.classList.remove('open'); |
| panel.setAttribute('aria-hidden', 'true'); |
| }); |
| |
| const iframe = document.createElement('iframe'); |
| iframe.className = 'chat-iframe'; |
| iframe.src = 'https://openai-chatkit-starter-app-mocha.vercel.app'; |
| iframe.allow = 'clipboard-write; microphone; camera'; |
| iframe.referrerPolicy = 'strict-origin-when-cross-origin'; |
| |
| header.appendChild(closeBtn); |
| panel.appendChild(header); |
| panel.appendChild(iframe); |
| document.body.appendChild(fab); |
| document.body.appendChild(panel); |
| |
| fab.addEventListener('click', () => { |
| panel.classList.add('open'); |
| panel.setAttribute('aria-hidden', 'false'); |
| }); |
| }); |
| </script> |
| |
| </head> |
| <body> |
| <div class="card"> |
| <h1>Welcome to your static Space!</h1> |
| <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p> |
| <p> |
| To start an OpenAI Agent Builder Chat, click the speech bubble icon on the bottom right of the page. |
| Type in a subject, and the model will give you an interesting fact on it, then tell you a "dad joke" about it |
| </p> |
| </div> |
| </body> |
| </html> |
|
|