Удалены демо данные и подключен рабочий API BotFactory v2.2

Этот коммит содержится в:
2026-05-25 03:08:22 +09:00
родитель 33f4eabe80
Коммит 07d4314f1d
10 изменённых файлов: 2802 добавлений и 1321 удалений
Разница между файлами не показана из-за своего большого размера Загрузить разницу
Разница между файлами не показана из-за своего большого размера Загрузить разницу
+4 -8
Просмотреть файл
@@ -1,9 +1,5 @@
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import React from "react";
import { createRoot } from "react-dom/client";
import App from "./App.jsx";
ReactDOM.createRoot(document.getElementById('root')).render(
<React.StrictMode>
<App />
</React.StrictMode>
)
createRoot(document.getElementById("root")).render(<App />);
+1
Просмотреть файл
@@ -0,0 +1 @@
:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#08090d;color:#eef1f6}*{box-sizing:border-box}body{margin:0}.app{min-height:100vh;display:grid;grid-template-columns:280px 1fr;background:radial-gradient(circle at top left,#16213e 0,#08090d 42%)}aside{border-right:1px solid #202331;background:#0c0e14cc;backdrop-filter:blur(18px);padding:18px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#5d7cff,#8e54ff);display:grid;place-items:center;font-weight:900}.brand b{display:block;font-size:18px}.brand span,small{display:block;color:#8a90a3;font-size:12px;margin-top:4px}aside button,header button,.actions button,.primary{width:100%;border:1px solid #252a38;background:#11141d;color:#eef1f6;border-radius:12px;padding:11px 12px;margin-bottom:8px;text-align:left;cursor:pointer;font-weight:650}aside button.active,aside button:hover{border-color:#5d7cff;background:#17213d}.ghost{opacity:.75}main{padding:26px;min-width:0}header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px}header p{margin:0 0 5px;color:#8a90a3;text-transform:uppercase;letter-spacing:.1em;font-size:11px}h1{margin:0;font-size:32px}h2{margin:26px 0 14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.card,.empty{border:1px solid #222638;background:#11141dcc;border-radius:18px;padding:18px;box-shadow:0 20px 70px #0006}.card span,.empty span{display:block;color:#8a90a3;font-size:13px}.card b{display:block;font-size:27px;margin-top:8px}.card.warn{border-color:#c99d34}.empty{padding:30px}.empty b{display:block;font-size:20px;margin-bottom:8px}.tableWrap{overflow:auto;border:1px solid #222638;border-radius:18px;background:#0f121a}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #202433;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7f869a;background:#11141d;position:sticky;top:0}td{font-size:14px}td b{display:block}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#242937;color:#cbd1df;font-size:12px;font-weight:800}.badge.green{background:#143826;color:#74f3ad}.badge.red{background:#3b1717;color:#ff8989}.badge.yellow{background:#3d3315;color:#ffd36c}.badge.purple{background:#2b1840;color:#dba5ff}.actions{white-space:nowrap}.actions button{display:inline-block;width:auto;margin:0 6px 6px 0;padding:8px 10px}.modalBack{position:fixed;inset:0;background:#000b;display:grid;place-items:center;z-index:20;padding:16px}.modal{width:min(680px,100%);max-height:92vh;overflow:auto;background:#10131b;border:1px solid #2a3040;border-radius:20px;box-shadow:0 20px 80px #000}.modalHead{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #252a38}.modalHead button{width:auto;background:transparent;border:0;color:white;font-size:28px;cursor:pointer}.form{padding:20px}.field{display:block;margin-bottom:14px}.field span{display:block;margin-bottom:7px;color:#9ca3b7;font-size:13px}input,select,textarea{width:100%;border:1px solid #282e3f;background:#0b0d13;color:white;border-radius:12px;padding:12px;font:inherit}textarea{min-height:92px}.primary{text-align:center;background:#5d7cff;border-color:#6d87ff;color:white;margin-top:10px}.primary:disabled{opacity:.6}.toast{position:fixed;right:22px;bottom:22px;background:#5d7cff;color:white;padding:14px 18px;border-radius:14px;font-weight:800;box-shadow:0 12px 40px #0008;animation:toast 3s forwards}@keyframes toast{0%,80%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(14px)}}@media(max-width:900px){.app{display:block}aside{height:auto;position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px}aside .brand{grid-column:1/-1}aside button{margin:0}main{padding:16px}header{align-items:flex-start;flex-direction:column}header button{width:auto}h1{font-size:25px}.stats{grid-template-columns:1fr 1fr}table{min-width:760px}}