Files
chatballs/apps/web-chat/public/demo.html
T
AndreyandClaude Fable 5.1 a891947016 🧹 chore!: продукт без привязок к вендору — домены, почта, продукты, скоупы, события виджета
- нет зашитых доменов: help-домен по умолчанию localhost (задаёт установщик через
  CHATBALLS_HELP_BASE_DOMAIN), фронт определяет портал помощи пробой /api/v1/help/,
  ALLOWED_HOSTS без вендорских хостов, CI environment url — из CHATBALLS_APP_DOMAIN
- DEFAULT_FROM_EMAIL по умолчанию no-reply@localhost; JWT-аудитория support-токена
  chatballs.support; загрузчик виджета: window.ChatballsChat, события chatballs-chat-*
- «Контакты»: продукты берутся из данных организации ({code, name}), цвет —
  детерминированно по коду; зашитый список продуктов вендора убран
- npm-скоупы @chatballs/*, тема chatballsTheme/buildTheme
- тестовый bootstrap: организация demo, сотрудник staff.member@example.org,
  продукты site/app; фикстуры на example.com
- убрана мёртвая привязка Shell к e-mail сотрудника вендора

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:33:22 +03:00

36 lines
2.1 KiB
HTML

<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Demo · Chatballs Web Chat</title>
<style>
* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; color: #1f1f1f; background: #fbfbfc; }
nav { height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; border-bottom: 1px solid #f0f0f0; background: #fff; }
.brand { display: flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 700; }
.brand span { width: 28px; height: 28px; border-radius: 8px; background: #1f1f1f; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.hero { padding: 72px 40px; max-width: 680px; }
.hero h1 { font-size: 42px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.08; margin: 0; }
.hero p { margin: 20px 0 0; font-size: 16px; color: #6b6b6b; line-height: 1.55; max-width: 480px; }
.note { margin: 28px 40px; padding: 14px 16px; background: #fff; border: 1px dashed #d9d9d9; border-radius: 10px; font-size: 13px; color: #595959; max-width: 680px; }
code { background: #f5f5f5; padding: 1px 6px; border-radius: 5px; }
</style>
</head>
<body>
<nav>
<div class="brand"><span>E</span>Demo site</div>
<div style="font-size:13px;color:#595959;">Возможности · Тарифы · Контакты</div>
</nav>
<div class="hero">
<h1>Демо-страница для виджета Chatballs</h1>
<p>Это фейковый сайт для проверки web-чата. Виджет подключён одним тегом снизу — launcher в правом нижнем углу.</p>
</div>
<div class="note">
Встраивание: <code>&lt;script src="/chat-widget.js" data-channel="demo" async&gt;&lt;/script&gt;</code>
</div>
<script src="/chat-widget.js" data-channel="demo" async></script>
</body>
</html>