All checks were successful
Testar e publicar imagem Docker / publish (push) Successful in 44s
1757 lines
28 KiB
CSS
1757 lines
28 KiB
CSS
@font-face {
|
|
font-family: "Public Sans";
|
|
src: url("/fonts/public-sans.ttf") format("truetype");
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
}
|
|
:root {
|
|
color-scheme: dark;
|
|
--bg: #25293c;
|
|
--surface: #2f3349;
|
|
--purple: #7367f0;
|
|
--text: #cfcde4;
|
|
--muted: #9c99b1;
|
|
--line: #454961;
|
|
--green: #28c76f;
|
|
--cyan: #00cfe8;
|
|
--orange: #ff9f43;
|
|
--red: #ea5455;
|
|
font-size: 14px;
|
|
}
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
body {
|
|
margin: 0;
|
|
background: var(--bg);
|
|
color: var(--text);
|
|
font-family: "Public Sans", Arial, sans-serif;
|
|
}
|
|
button,
|
|
input,
|
|
select,
|
|
textarea {
|
|
font: inherit;
|
|
}
|
|
button {
|
|
color: inherit;
|
|
cursor: pointer;
|
|
}
|
|
button:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.45;
|
|
}
|
|
button:focus-visible,
|
|
a:focus-visible {
|
|
outline: 2px solid #b5acff;
|
|
outline-offset: 3px;
|
|
}
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
p {
|
|
line-height: 1.65;
|
|
color: var(--muted);
|
|
margin: 8px 0 14px;
|
|
}
|
|
h1,
|
|
h2,
|
|
h3 {
|
|
color: #e4e2f0;
|
|
margin: 0;
|
|
line-height: 1.35;
|
|
}
|
|
h1 {
|
|
font-size: 25px;
|
|
letter-spacing: -0.55px;
|
|
font-weight: 600;
|
|
}
|
|
h2 {
|
|
font-size: 16px;
|
|
font-weight: 600;
|
|
}
|
|
h3 {
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
}
|
|
.icon {
|
|
width: 20px;
|
|
height: 20px;
|
|
flex-shrink: 0;
|
|
}
|
|
.button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 9px;
|
|
border: 1px solid transparent;
|
|
border-radius: 6px;
|
|
padding: 10px 15px;
|
|
min-height: 39px;
|
|
font-size: 13px;
|
|
white-space: nowrap;
|
|
}
|
|
.primary {
|
|
background: var(--purple);
|
|
color: #fff;
|
|
}
|
|
.primary:hover:enabled {
|
|
background: #8479f5;
|
|
}
|
|
.secondary {
|
|
background: #7367f010;
|
|
border-color: #50516e;
|
|
color: #d0caff;
|
|
}
|
|
.secondary:hover:enabled {
|
|
background: #7367f02b;
|
|
}
|
|
.icon-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 34px;
|
|
height: 34px;
|
|
border: 0;
|
|
background: transparent;
|
|
border-radius: 5px;
|
|
color: var(--muted);
|
|
padding: 6px;
|
|
}
|
|
.icon-button:hover:enabled {
|
|
background: #ffffff0a;
|
|
}
|
|
.bordered {
|
|
border: 1px solid #50516e;
|
|
}
|
|
.danger {
|
|
color: #ed7276;
|
|
}
|
|
.text-button {
|
|
border: 0;
|
|
background: transparent;
|
|
color: #b3aaff;
|
|
font-size: 12px;
|
|
padding: 6px 0;
|
|
}
|
|
.logo {
|
|
width: 177px;
|
|
height: auto;
|
|
display: block;
|
|
}
|
|
.overline {
|
|
font-size: 10px;
|
|
letter-spacing: 1.1px;
|
|
color: #9591ab;
|
|
display: block;
|
|
margin-bottom: 12px;
|
|
}
|
|
.shell {
|
|
display: grid;
|
|
grid-template-columns: 224px minmax(0, 1fr);
|
|
min-height: 100vh;
|
|
}
|
|
.sidebar {
|
|
position: sticky;
|
|
top: 0;
|
|
height: 100vh;
|
|
background: var(--surface);
|
|
padding: 27px 15px 18px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.brand {
|
|
padding: 0 8px;
|
|
display: block;
|
|
margin-bottom: 43px;
|
|
}
|
|
.sidebar > .overline {
|
|
padding: 0 13px;
|
|
}
|
|
.nav {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
text-align: left;
|
|
background: transparent;
|
|
border: 0;
|
|
padding: 12px 14px;
|
|
border-radius: 6px;
|
|
margin: 3px 0;
|
|
font-size: 13px;
|
|
color: #b8b5cd;
|
|
}
|
|
.nav .icon {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
.nav:hover {
|
|
background: #ffffff06;
|
|
}
|
|
.nav.active {
|
|
background: var(--purple);
|
|
color: #fff;
|
|
box-shadow: 0 3px 8px #7367f025;
|
|
}
|
|
.sidebar-bottom {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
margin-top: auto;
|
|
border-top: 1px solid #ffffff08;
|
|
padding: 22px 10px 0;
|
|
font-size: 12px;
|
|
}
|
|
.sidebar-bottom small {
|
|
display: block;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
margin-top: 5px;
|
|
}
|
|
.sidebar-bottom > small {
|
|
margin-left: auto;
|
|
}
|
|
.status-dot {
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 50%;
|
|
background: var(--green);
|
|
}
|
|
.workspace {
|
|
min-width: 0;
|
|
width: 100%;
|
|
max-width: 1660px;
|
|
margin: 0 auto;
|
|
padding: 22px 30px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-self: start;
|
|
min-height: 100vh;
|
|
}
|
|
.topbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
background: var(--surface);
|
|
min-height: 66px;
|
|
padding: 12px 20px;
|
|
border-radius: 8px;
|
|
margin-bottom: 27px;
|
|
gap: 20px;
|
|
}
|
|
.breadcrumb {
|
|
display: flex;
|
|
gap: 15px;
|
|
align-items: center;
|
|
font-size: 12px;
|
|
color: var(--muted);
|
|
}
|
|
.breadcrumb strong {
|
|
color: var(--text);
|
|
font-weight: 500;
|
|
}
|
|
.topbar-right {
|
|
display: flex;
|
|
gap: 12px;
|
|
align-items: center;
|
|
}
|
|
.topbar-right select {
|
|
min-width: 180px;
|
|
font-size: 12px;
|
|
background: #353950;
|
|
padding: 9px 11px;
|
|
}
|
|
.divider {
|
|
height: 26px;
|
|
width: 1px;
|
|
background: var(--line);
|
|
margin: 0 2px;
|
|
}
|
|
.avatar {
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: 50%;
|
|
background: var(--purple);
|
|
display: grid;
|
|
place-items: center;
|
|
color: white;
|
|
font-size: 14px;
|
|
}
|
|
.avatar.large {
|
|
width: 52px;
|
|
height: 52px;
|
|
font-size: 20px;
|
|
}
|
|
.user-info strong {
|
|
display: block;
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
}
|
|
.user-info small {
|
|
display: block;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
margin-top: 3px;
|
|
}
|
|
#content {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
.page-heading {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 20px;
|
|
margin-bottom: 25px;
|
|
}
|
|
.page-heading p {
|
|
font-size: 13px;
|
|
margin: 6px 0 0;
|
|
}
|
|
.heading-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
.card {
|
|
background: var(--surface);
|
|
border-radius: 8px;
|
|
padding: 22px;
|
|
border: 1px solid #ffffff03;
|
|
}
|
|
.stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 20px;
|
|
margin-bottom: 30px;
|
|
}
|
|
.stat {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding: 21px;
|
|
}
|
|
.stat > div > span {
|
|
font-size: 12px;
|
|
color: #b5b1c8;
|
|
}
|
|
.stat strong {
|
|
display: block;
|
|
font-size: 26px;
|
|
margin-top: 8px;
|
|
font-weight: 600;
|
|
color: #e9e7f4;
|
|
}
|
|
.icon-tile {
|
|
width: 43px;
|
|
height: 43px;
|
|
border-radius: 7px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: #7367f01a;
|
|
color: var(--purple);
|
|
flex-shrink: 0;
|
|
}
|
|
.icon-tile .icon {
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
.green {
|
|
color: var(--green);
|
|
--accent: var(--green);
|
|
}
|
|
.red {
|
|
color: var(--red);
|
|
--accent: var(--red);
|
|
}
|
|
.cyan {
|
|
color: var(--cyan);
|
|
--accent: var(--cyan);
|
|
}
|
|
.orange {
|
|
color: var(--orange);
|
|
--accent: var(--orange);
|
|
}
|
|
.purple {
|
|
color: #a194ff;
|
|
--accent: var(--purple);
|
|
}
|
|
.gray {
|
|
color: #aaa5bc;
|
|
--accent: #aaa5bc;
|
|
}
|
|
.icon-tile.green,
|
|
.badge.green,
|
|
.execution-status.green {
|
|
background: #28c76f18;
|
|
}
|
|
.icon-tile.red,
|
|
.badge.red,
|
|
.execution-status.red {
|
|
background: #ea545518;
|
|
}
|
|
.icon-tile.cyan,
|
|
.badge.cyan {
|
|
background: #00cfe818;
|
|
}
|
|
.icon-tile.orange {
|
|
background: #ff9f4318;
|
|
}
|
|
.badge.purple {
|
|
background: #7367f018;
|
|
}
|
|
.badge.gray {
|
|
background: #ffffff08;
|
|
}
|
|
.badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
font-size: 10px;
|
|
line-height: 1.2;
|
|
width: max-content;
|
|
}
|
|
.section-heading {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 15px;
|
|
margin-bottom: 17px;
|
|
}
|
|
.bot-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 20px;
|
|
}
|
|
.bot-card-top {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
.bot-card-title {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
flex: 1;
|
|
}
|
|
.bot-card h2 {
|
|
font-size: 15px;
|
|
}
|
|
.bot-description {
|
|
font-size: 12px;
|
|
min-height: 40px;
|
|
margin: 13px 0 18px 55px;
|
|
}
|
|
.switch {
|
|
width: 38px;
|
|
height: 21px;
|
|
border: 0;
|
|
border-radius: 20px;
|
|
background: #545365;
|
|
margin-left: auto;
|
|
position: relative;
|
|
flex-shrink: 0;
|
|
}
|
|
.switch:after {
|
|
content: "";
|
|
position: absolute;
|
|
width: 15px;
|
|
height: 15px;
|
|
top: 3px;
|
|
left: 3px;
|
|
background: #b9b6c9;
|
|
border-radius: 50%;
|
|
}
|
|
.switch.on {
|
|
background: var(--purple);
|
|
}
|
|
.switch.on:after {
|
|
background: white;
|
|
transform: translateX(17px);
|
|
}
|
|
.bot-meta {
|
|
display: flex;
|
|
gap: 19px;
|
|
font-size: 11px;
|
|
color: #aba6c2;
|
|
margin: 0 0 18px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.bot-meta span {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
.bot-meta .icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
.bot-actions {
|
|
display: flex;
|
|
gap: 9px;
|
|
}
|
|
.bot-actions .button {
|
|
flex: 1;
|
|
min-height: 35px;
|
|
padding: 7px;
|
|
font-size: 12px;
|
|
}
|
|
.dashboard-bottom {
|
|
display: grid;
|
|
grid-template-columns: 1.6fr 1fr;
|
|
gap: 20px;
|
|
margin-top: 26px;
|
|
}
|
|
.quick-start {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
padding: 25px;
|
|
}
|
|
.quick-start h2 {
|
|
margin-top: 17px;
|
|
}
|
|
.quick-start p {
|
|
font-size: 12px;
|
|
max-width: 360px;
|
|
}
|
|
.quick-start .button {
|
|
margin-top: auto;
|
|
}
|
|
.empty {
|
|
padding: 34px 20px;
|
|
text-align: center;
|
|
width: 100%;
|
|
}
|
|
.empty .icon-tile {
|
|
margin-bottom: 15px;
|
|
}
|
|
.empty p {
|
|
font-size: 12px;
|
|
max-width: 380px;
|
|
margin: 8px auto 0;
|
|
}
|
|
.muted {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
footer {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 15px;
|
|
margin-top: 27px;
|
|
padding: 0 2px;
|
|
font-size: 11px;
|
|
color: #8e89a3;
|
|
}
|
|
.filterbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 20px;
|
|
margin-bottom: 22px;
|
|
}
|
|
.filterbar input {
|
|
max-width: 350px;
|
|
}
|
|
.templates-heading {
|
|
margin-top: 36px;
|
|
}
|
|
.template-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 16px;
|
|
}
|
|
.template-card {
|
|
text-align: left;
|
|
background: var(--surface);
|
|
border: 1px solid var(--line);
|
|
border-radius: 8px;
|
|
padding: 20px;
|
|
}
|
|
.template-card strong {
|
|
display: block;
|
|
margin-top: 15px;
|
|
font-size: 14px;
|
|
}
|
|
.template-card p {
|
|
font-size: 12px;
|
|
min-height: 40px;
|
|
}
|
|
.template-card > span:last-child {
|
|
font-size: 11px;
|
|
color: #b3aaff;
|
|
}
|
|
.template-card:hover:enabled {
|
|
border-color: var(--purple);
|
|
}
|
|
input,
|
|
select,
|
|
textarea {
|
|
background: #292d41;
|
|
color: var(--text);
|
|
border: 1px solid #484b62;
|
|
border-radius: 5px;
|
|
padding: 10px 12px;
|
|
width: 100%;
|
|
outline: none;
|
|
font-size: 13px;
|
|
min-width: 0;
|
|
}
|
|
input:focus,
|
|
textarea:focus,
|
|
select:focus {
|
|
border-color: var(--purple);
|
|
}
|
|
input::placeholder,
|
|
textarea::placeholder {
|
|
color: #817d96;
|
|
}
|
|
textarea {
|
|
min-height: 110px;
|
|
resize: vertical;
|
|
line-height: 1.55;
|
|
}
|
|
select {
|
|
width: auto;
|
|
}
|
|
label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 7px;
|
|
font-size: 12px;
|
|
margin-bottom: 16px;
|
|
color: #aaa5be;
|
|
}
|
|
label select {
|
|
width: 100%;
|
|
}
|
|
.form-help {
|
|
font-size: 11px;
|
|
line-height: 1.7;
|
|
}
|
|
.notice {
|
|
padding: 14px 17px;
|
|
background: #ff9f430d;
|
|
border: 1px solid #ff9f4325;
|
|
border-radius: 6px;
|
|
font-size: 12px;
|
|
color: #ddbca0;
|
|
line-height: 1.6;
|
|
}
|
|
.notice.error {
|
|
background: #ea545518;
|
|
color: #f79797;
|
|
}
|
|
code {
|
|
font-family: Consolas, monospace;
|
|
font-size: 11px;
|
|
color: #b8aff9;
|
|
}
|
|
dialog {
|
|
background: var(--surface);
|
|
color: var(--text);
|
|
border: 1px solid #4d4f68;
|
|
border-radius: 10px;
|
|
padding: 25px;
|
|
width: min(560px, calc(100vw - 32px));
|
|
max-height: 85vh;
|
|
box-shadow: 0 15px 65px #090b2040;
|
|
}
|
|
dialog::backdrop {
|
|
background: #11132290;
|
|
backdrop-filter: blur(3px);
|
|
}
|
|
.modal-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 25px;
|
|
}
|
|
.modal-heading h2 {
|
|
font-size: 18px;
|
|
}
|
|
.modal-actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
border-top: 1px solid var(--line);
|
|
padding-top: 18px;
|
|
margin-top: 20px;
|
|
}
|
|
.config-tabs {
|
|
display: flex;
|
|
gap: 25px;
|
|
border-bottom: 1px solid var(--line);
|
|
margin-bottom: 20px;
|
|
font-size: 12px;
|
|
}
|
|
.config-tabs > * {
|
|
padding: 0 0 12px;
|
|
border: 0;
|
|
background: transparent;
|
|
}
|
|
.config-tabs .active {
|
|
color: #b3aaff;
|
|
border-bottom: 2px solid var(--purple);
|
|
}
|
|
.toast {
|
|
position: fixed;
|
|
bottom: 26px;
|
|
right: 26px;
|
|
z-index: 1000;
|
|
background: #393d58;
|
|
border: 1px solid #7367f070;
|
|
color: #e4e0ff;
|
|
padding: 15px 20px;
|
|
border-radius: 8px;
|
|
max-width: 440px;
|
|
box-shadow: 0 8px 25px #11132250;
|
|
font-size: 13px;
|
|
}
|
|
.toast.error {
|
|
border-color: #ea545560;
|
|
color: #ffc0c0;
|
|
}
|
|
.editor {
|
|
display: grid;
|
|
grid-template-columns: 185px minmax(0, 1fr) 280px;
|
|
gap: 15px;
|
|
min-height: 640px;
|
|
height: calc(100vh - 215px);
|
|
}
|
|
.editor:fullscreen {
|
|
background: var(--bg);
|
|
padding: 15px;
|
|
height: 100vh;
|
|
}
|
|
.editor-workspace {
|
|
max-width: none;
|
|
padding: 18px 24px;
|
|
}
|
|
.palette,
|
|
.inspector {
|
|
background: var(--surface);
|
|
border-radius: 7px;
|
|
min-height: 0;
|
|
overflow: auto;
|
|
}
|
|
.palette {
|
|
padding: 15px 12px;
|
|
}
|
|
.panel-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
color: #dedbeb;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
margin-bottom: 18px;
|
|
}
|
|
.panel-heading .icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
.palette > input {
|
|
padding: 8px;
|
|
font-size: 11px;
|
|
margin-bottom: 10px;
|
|
}
|
|
.palette-group {
|
|
margin: 15px 0 21px;
|
|
}
|
|
.palette-group .overline {
|
|
font-size: 9px;
|
|
margin: 0 0 10px 3px;
|
|
}
|
|
.palette-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
border: 1px solid #4b4865;
|
|
background: #7367f009;
|
|
border-radius: 5px;
|
|
width: 100%;
|
|
margin: 7px 0;
|
|
padding: 10px 8px;
|
|
text-align: left;
|
|
font-size: 10px;
|
|
line-height: 1.35;
|
|
color: var(--accent);
|
|
min-height: 39px;
|
|
}
|
|
.palette-item .icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
.palette-item span {
|
|
flex: 1;
|
|
}
|
|
.palette-item .icon:last-child {
|
|
width: 12px;
|
|
}
|
|
.palette-item[hidden] {
|
|
display: none;
|
|
}
|
|
.canvas-column {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
border: 1px solid #3c4057;
|
|
border-radius: 7px;
|
|
overflow: hidden;
|
|
}
|
|
.canvas-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 11px 15px;
|
|
background: var(--surface);
|
|
min-height: 52px;
|
|
font-size: 11px;
|
|
gap: 10px;
|
|
}
|
|
.canvas-toolbar > div {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
.canvas-toolbar strong {
|
|
font-size: 12px;
|
|
}
|
|
.canvas-toolbar #save-state {
|
|
color: #918da5;
|
|
font-size: 10px;
|
|
}
|
|
.canvas-toolbar #save-state.unsaved {
|
|
color: var(--orange);
|
|
}
|
|
.canvas-toolbar .icon-button {
|
|
width: 25px;
|
|
height: 25px;
|
|
font-size: 18px;
|
|
}
|
|
.canvas {
|
|
flex: 1;
|
|
overflow: auto;
|
|
position: relative;
|
|
background-color: #262a3c;
|
|
background-image: radial-gradient(#66617c60 0.8px, transparent 0.8px);
|
|
background-size: 20px 20px;
|
|
min-height: 400px;
|
|
}
|
|
.world {
|
|
position: relative;
|
|
transform-origin: 0 0;
|
|
width: 1000px;
|
|
height: 1000px;
|
|
}
|
|
#edges {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
overflow: visible;
|
|
}
|
|
.edge {
|
|
fill: none;
|
|
stroke: #9290b880;
|
|
stroke-width: 1.5;
|
|
}
|
|
.edge.true {
|
|
stroke: #28c76f80;
|
|
}
|
|
.edge.false {
|
|
stroke: #ea545580;
|
|
}
|
|
.flow-node {
|
|
position: absolute;
|
|
width: 230px;
|
|
min-height: 76px;
|
|
background: #32364d;
|
|
border: 1px solid var(--accent);
|
|
border-radius: 6px;
|
|
box-shadow: 0 4px 10px #191c3330;
|
|
color: var(--text);
|
|
touch-action: none;
|
|
cursor: grab;
|
|
user-select: none;
|
|
}
|
|
.flow-node.selected {
|
|
outline: 2px solid #9b8fff40;
|
|
box-shadow: 0 0 18px #7367f01c;
|
|
}
|
|
.node-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 12px 14px 8px;
|
|
color: var(--accent);
|
|
}
|
|
.node-head .icon {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
.node-head strong {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.node-subtitle {
|
|
font-size: 10px;
|
|
color: #9d98b0;
|
|
padding: 0 14px 12px 42px;
|
|
}
|
|
.port {
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
width: 10px;
|
|
height: 10px;
|
|
padding: 0;
|
|
border: 2px solid #777287;
|
|
background: #33364d;
|
|
z-index: 2;
|
|
}
|
|
.port.input {
|
|
left: -6px;
|
|
top: 33px;
|
|
}
|
|
.port.output {
|
|
right: -6px;
|
|
transform: translateY(-50%);
|
|
border-color: var(--accent);
|
|
}
|
|
.port.true {
|
|
background: var(--green);
|
|
border-color: var(--green);
|
|
}
|
|
.port.false {
|
|
background: var(--red);
|
|
border-color: var(--red);
|
|
}
|
|
.port:hover:enabled {
|
|
outline: 4px solid #7367f050;
|
|
}
|
|
.canvas-footer {
|
|
background: var(--surface);
|
|
padding: 9px 12px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
font-size: 9px;
|
|
color: #9691ab;
|
|
min-height: 32px;
|
|
}
|
|
.inspector {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.inspector .panel-heading {
|
|
padding: 15px;
|
|
border-bottom: 1px solid #46475e;
|
|
margin: 0;
|
|
}
|
|
.inspector .panel-heading > span {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
}
|
|
.inspector-body {
|
|
padding: 18px 15px;
|
|
}
|
|
.inspector-body label {
|
|
font-size: 10px;
|
|
gap: 7px;
|
|
margin-bottom: 15px;
|
|
}
|
|
.inspector-body input,
|
|
.inspector-body select,
|
|
.inspector-body textarea {
|
|
font-size: 11px;
|
|
padding: 9px;
|
|
}
|
|
.inspector-body textarea {
|
|
min-height: 140px;
|
|
}
|
|
.inspector-body .badge {
|
|
margin-bottom: 20px;
|
|
}
|
|
.inspector-body .overline {
|
|
font-size: 9px;
|
|
margin-top: 17px;
|
|
}
|
|
.connection-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
font-size: 10px;
|
|
margin-bottom: 9px;
|
|
gap: 8px;
|
|
}
|
|
.connection-row small {
|
|
display: block;
|
|
color: var(--muted);
|
|
font-size: 9px;
|
|
margin-top: 4px;
|
|
}
|
|
.connection-row .icon {
|
|
width: 13px;
|
|
}
|
|
.inspector-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
padding: 15px;
|
|
border-top: 1px solid #46475e;
|
|
margin-top: auto;
|
|
}
|
|
.inspector-actions .button {
|
|
flex: 1;
|
|
font-size: 11px;
|
|
padding: 9px 6px;
|
|
}
|
|
.inspector-actions .button .icon {
|
|
width: 15px;
|
|
}
|
|
.inspector-actions .text-button {
|
|
width: 100%;
|
|
text-align: center;
|
|
font-size: 10px;
|
|
}
|
|
.executions-layout {
|
|
display: grid;
|
|
grid-template-columns: 350px minmax(0, 1fr);
|
|
gap: 20px;
|
|
}
|
|
.execution-list {
|
|
padding: 19px 15px;
|
|
}
|
|
.execution-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
background: transparent;
|
|
border: 0;
|
|
border-bottom: 1px solid #ffffff07;
|
|
width: 100%;
|
|
text-align: left;
|
|
padding: 14px 5px;
|
|
}
|
|
.execution-row:hover,
|
|
.execution-row.selected {
|
|
background: #7367f014;
|
|
border-radius: 5px;
|
|
}
|
|
.execution-status {
|
|
width: 24px;
|
|
height: 24px;
|
|
display: grid;
|
|
place-items: center;
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
}
|
|
.execution-status .icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
.execution-row > span:nth-child(2) {
|
|
flex: 1;
|
|
}
|
|
.execution-row strong {
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
}
|
|
.execution-row small {
|
|
display: block;
|
|
margin-top: 5px;
|
|
color: #aaa4be;
|
|
font-size: 10px;
|
|
}
|
|
.execution-row time {
|
|
color: #918ba4;
|
|
font-size: 9px;
|
|
}
|
|
.execution-summary {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 14px;
|
|
margin: 25px 0;
|
|
}
|
|
.execution-summary div {
|
|
background: #262a3d;
|
|
padding: 14px;
|
|
border-radius: 5px;
|
|
}
|
|
.execution-summary span {
|
|
display: block;
|
|
color: var(--muted);
|
|
font-size: 10px;
|
|
margin-bottom: 7px;
|
|
}
|
|
.execution-summary strong {
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
}
|
|
.timeline {
|
|
margin: 20px 0;
|
|
}
|
|
.timeline-step {
|
|
display: flex;
|
|
gap: 12px;
|
|
align-items: flex-start;
|
|
position: relative;
|
|
padding-bottom: 24px;
|
|
}
|
|
.timeline-step:before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 11px;
|
|
top: 24px;
|
|
width: 1px;
|
|
bottom: 0;
|
|
background: #565068;
|
|
}
|
|
.timeline-step:last-child:before {
|
|
display: none;
|
|
}
|
|
.timeline-step > div {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
.timeline-step strong {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
}
|
|
.timeline-step p {
|
|
font-size: 11px;
|
|
margin: 6px 0 0;
|
|
white-space: pre-wrap;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.timeline-step time {
|
|
font-size: 9px;
|
|
color: var(--muted);
|
|
}
|
|
pre {
|
|
background: #242738;
|
|
border: 1px solid #41445e;
|
|
border-radius: 5px;
|
|
padding: 16px;
|
|
white-space: pre-wrap;
|
|
font-family: Consolas, monospace;
|
|
font-size: 11px;
|
|
line-height: 1.6;
|
|
overflow-wrap: anywhere;
|
|
max-height: 300px;
|
|
overflow: auto;
|
|
}
|
|
.table-heading,
|
|
.variable-row {
|
|
display: grid;
|
|
grid-template-columns: 1fr 2fr 35px;
|
|
gap: 12px;
|
|
align-items: center;
|
|
margin-bottom: 12px;
|
|
}
|
|
.table-heading {
|
|
font-size: 11px;
|
|
color: var(--muted);
|
|
margin-top: 22px;
|
|
}
|
|
.form-actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
border-top: 1px solid var(--line);
|
|
padding-top: 20px;
|
|
margin-top: 25px;
|
|
}
|
|
.connection-grid,
|
|
.settings-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 20px;
|
|
}
|
|
.connection-url {
|
|
font-size: 12px;
|
|
color: #c6bfdc;
|
|
margin: 24px 0;
|
|
}
|
|
.connection-actions {
|
|
display: flex;
|
|
gap: 10px;
|
|
}
|
|
.connection-actions .button {
|
|
font-size: 11px;
|
|
}
|
|
.connection-tip {
|
|
margin-top: 25px;
|
|
}
|
|
.profile-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 15px;
|
|
margin: 25px 0;
|
|
}
|
|
.profile-card h3 {
|
|
margin-bottom: 8px;
|
|
}
|
|
.details {
|
|
display: grid;
|
|
gap: 17px;
|
|
font-size: 12px;
|
|
margin: 25px 0;
|
|
}
|
|
.details div {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
}
|
|
.details span {
|
|
color: var(--muted);
|
|
}
|
|
.details strong {
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
text-align: right;
|
|
}
|
|
.login {
|
|
min-height: 100vh;
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 25px;
|
|
}
|
|
.login-card {
|
|
width: min(460px, 100%);
|
|
padding: 42px;
|
|
background: var(--surface);
|
|
border-radius: 10px;
|
|
box-shadow: 0 10px 40px #11132325;
|
|
}
|
|
.login-card .logo {
|
|
width: 192px;
|
|
margin-bottom: 37px;
|
|
}
|
|
.login-card .button {
|
|
width: 100%;
|
|
margin-top: 18px;
|
|
}
|
|
.login-card p {
|
|
font-size: 13px;
|
|
}
|
|
.login-card .muted {
|
|
font-size: 11px;
|
|
margin-top: 22px;
|
|
}
|
|
@media (min-width: 1600px) {
|
|
.workspace {
|
|
padding: 25px 40px;
|
|
}
|
|
.editor {
|
|
grid-template-columns: 205px minmax(0, 1fr) 300px;
|
|
}
|
|
.editor-workspace {
|
|
padding: 20px 28px;
|
|
}
|
|
}
|
|
@media (max-width: 1200px) {
|
|
.shell {
|
|
grid-template-columns: 195px minmax(0, 1fr);
|
|
}
|
|
.sidebar .logo {
|
|
width: 160px;
|
|
}
|
|
.workspace {
|
|
padding: 20px;
|
|
}
|
|
.stats {
|
|
gap: 12px;
|
|
}
|
|
.stat {
|
|
padding: 15px;
|
|
gap: 10px;
|
|
}
|
|
.stat .icon-tile {
|
|
width: 34px;
|
|
height: 34px;
|
|
}
|
|
.bot-meta {
|
|
gap: 12px;
|
|
}
|
|
.editor {
|
|
grid-template-columns: 165px minmax(0, 1fr) 240px;
|
|
gap: 10px;
|
|
}
|
|
.executions-layout {
|
|
grid-template-columns: 280px minmax(0, 1fr);
|
|
}
|
|
.template-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
@media (max-width: 950px) {
|
|
.shell {
|
|
grid-template-columns: 75px minmax(0, 1fr);
|
|
}
|
|
.sidebar {
|
|
padding: 20px 10px;
|
|
}
|
|
.brand {
|
|
overflow: hidden;
|
|
width: 48px;
|
|
padding: 0;
|
|
margin-bottom: 30px;
|
|
}
|
|
.sidebar .logo {
|
|
width: 170px;
|
|
max-width: none;
|
|
}
|
|
.sidebar > .overline,
|
|
.nav span,
|
|
.sidebar-bottom {
|
|
display: none;
|
|
}
|
|
.nav {
|
|
justify-content: center;
|
|
padding: 13px;
|
|
}
|
|
.workspace {
|
|
padding: 18px;
|
|
}
|
|
.topbar {
|
|
padding: 12px 15px;
|
|
}
|
|
.topbar-right select {
|
|
min-width: 135px;
|
|
max-width: 160px;
|
|
}
|
|
.stats {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
.bot-card {
|
|
padding: 17px;
|
|
}
|
|
.bot-description {
|
|
margin-left: 0;
|
|
}
|
|
.bot-meta {
|
|
gap: 10px;
|
|
}
|
|
.bot-grid {
|
|
gap: 15px;
|
|
}
|
|
.editor {
|
|
grid-template-columns: 135px minmax(0, 1fr) 220px;
|
|
gap: 8px;
|
|
}
|
|
.palette {
|
|
padding: 12px 8px;
|
|
}
|
|
.palette-item {
|
|
font-size: 9px;
|
|
gap: 5px;
|
|
}
|
|
.palette-item .icon:last-child {
|
|
display: none;
|
|
}
|
|
.canvas-toolbar #save-state {
|
|
display: none;
|
|
}
|
|
.executions-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.connection-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
@media (max-width: 700px) {
|
|
.shell {
|
|
display: block;
|
|
}
|
|
.sidebar {
|
|
position: relative;
|
|
height: auto;
|
|
padding: 15px;
|
|
}
|
|
.brand {
|
|
width: auto;
|
|
margin-bottom: 17px;
|
|
}
|
|
.sidebar .logo {
|
|
width: 150px;
|
|
}
|
|
.sidebar nav {
|
|
display: flex;
|
|
overflow: auto;
|
|
gap: 5px;
|
|
}
|
|
.nav {
|
|
width: auto;
|
|
padding: 10px;
|
|
}
|
|
.nav span {
|
|
display: block;
|
|
font-size: 10px;
|
|
}
|
|
.nav .icon {
|
|
width: 15px;
|
|
}
|
|
.workspace {
|
|
padding: 15px;
|
|
}
|
|
.breadcrumb {
|
|
display: none;
|
|
}
|
|
.topbar-right {
|
|
width: 100%;
|
|
gap: 9px;
|
|
}
|
|
.topbar-right select {
|
|
flex: 1;
|
|
max-width: none;
|
|
min-width: 0;
|
|
}
|
|
.user-info,
|
|
.divider {
|
|
display: none;
|
|
}
|
|
.page-heading {
|
|
align-items: flex-start;
|
|
flex-wrap: wrap;
|
|
gap: 15px;
|
|
}
|
|
h1 {
|
|
font-size: 23px;
|
|
}
|
|
.bot-grid,
|
|
.dashboard-bottom,
|
|
.settings-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.editor {
|
|
grid-template-columns: 1fr;
|
|
height: auto;
|
|
min-height: 0;
|
|
}
|
|
.palette {
|
|
max-height: 170px;
|
|
overflow: auto;
|
|
}
|
|
.palette-group {
|
|
display: inline-block;
|
|
vertical-align: top;
|
|
margin: 0 10px;
|
|
width: 150px;
|
|
}
|
|
.palette > input {
|
|
display: none;
|
|
}
|
|
.canvas-column {
|
|
height: 550px;
|
|
}
|
|
.inspector {
|
|
max-height: none;
|
|
}
|
|
.inspector-body {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 10px;
|
|
}
|
|
.inspector-body textarea {
|
|
min-height: 80px;
|
|
}
|
|
.template-grid {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
.filterbar {
|
|
flex-wrap: wrap;
|
|
}
|
|
footer {
|
|
font-size: 9px;
|
|
}
|
|
.execution-summary {
|
|
gap: 8px;
|
|
}
|
|
.toast {
|
|
right: 15px;
|
|
left: 15px;
|
|
bottom: 15px;
|
|
max-width: none;
|
|
}
|
|
.connection-actions {
|
|
flex-wrap: wrap;
|
|
}
|
|
.variable-row,
|
|
.table-heading {
|
|
grid-template-columns: 1fr 1fr 30px;
|
|
}
|
|
.heading-actions {
|
|
flex-wrap: wrap;
|
|
}
|
|
.connection-row {
|
|
grid-column: span 2;
|
|
}
|
|
}
|
|
|
|
[hidden] {
|
|
display: none !important;
|
|
}
|
|
.bot-management,
|
|
.execution-filters {
|
|
display: flex;
|
|
gap: 12px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
margin: 18px 0;
|
|
}
|
|
.execution-filters select {
|
|
min-width: 170px;
|
|
}
|
|
.form-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 14px;
|
|
}
|
|
summary {
|
|
cursor: pointer;
|
|
font-size: 11px;
|
|
color: #b3aaff;
|
|
margin: 8px 0 15px;
|
|
}
|
|
.variable-help {
|
|
margin: 15px 0;
|
|
}
|
|
.variable-help code {
|
|
font-size: 10px;
|
|
}
|
|
.variable-help p {
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.editor-context {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 15px;
|
|
padding: 9px 14px;
|
|
background: var(--surface);
|
|
border-top: 1px solid var(--line);
|
|
border-bottom: 1px solid var(--line);
|
|
}
|
|
.editor-context label {
|
|
margin: 0;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 10px;
|
|
}
|
|
.editor-context select {
|
|
font-size: 10px;
|
|
padding: 6px;
|
|
max-width: 220px;
|
|
}
|
|
.editor-context .text-button {
|
|
margin-left: auto;
|
|
font-size: 10px;
|
|
text-align: right;
|
|
}
|
|
.canvas-toolbar {
|
|
flex-wrap: wrap;
|
|
padding: 9px 12px;
|
|
gap: 6px;
|
|
}
|
|
.canvas-toolbar .editor-tools {
|
|
gap: 3px;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-end;
|
|
}
|
|
.canvas-toolbar strong {
|
|
max-width: 190px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.canvas {
|
|
min-height: 300px;
|
|
}
|
|
.world {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
}
|
|
#world-space {
|
|
position: relative;
|
|
}
|
|
.node-head {
|
|
padding-right: 48px;
|
|
}
|
|
.node-subtitle {
|
|
padding: 0 42px 12px 14px;
|
|
max-width: 205px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.port-label {
|
|
position: absolute;
|
|
right: 12px;
|
|
font-size: 9px;
|
|
color: #aaa5bc;
|
|
pointer-events: none;
|
|
}
|
|
.port-label.error,
|
|
.edge.error {
|
|
color: var(--red);
|
|
stroke: #ea545580;
|
|
}
|
|
.port.error {
|
|
border-color: var(--red);
|
|
background: var(--red);
|
|
}
|
|
.port.each {
|
|
border-color: var(--cyan);
|
|
background: var(--cyan);
|
|
}
|
|
.edge.each {
|
|
stroke: #00cfe890;
|
|
}
|
|
.port.done {
|
|
border-color: var(--green);
|
|
background: var(--green);
|
|
}
|
|
.inspector {
|
|
overflow: hidden;
|
|
}
|
|
.inspector #node-properties {
|
|
min-height: 0;
|
|
overflow: auto;
|
|
flex: 1;
|
|
}
|
|
.inspector-actions {
|
|
flex-shrink: 0;
|
|
margin-top: 0;
|
|
}
|
|
.trigger-picker {
|
|
width: 100%;
|
|
font-size: 10px;
|
|
margin: 0 0 3px;
|
|
}
|
|
.trigger-picker select {
|
|
width: 100%;
|
|
font-size: 10px;
|
|
padding: 7px;
|
|
}
|
|
.inspector-body textarea[data-json] {
|
|
min-height: 95px;
|
|
font-family: Consolas, monospace;
|
|
}
|
|
.execution-status.orange,
|
|
.badge.orange {
|
|
background: #ff9f4318;
|
|
}
|
|
.execution-status.cyan {
|
|
background: #00cfe818;
|
|
}
|
|
.execution-status.gray {
|
|
background: #ffffff08;
|
|
}
|
|
.timeline-step small {
|
|
display: block;
|
|
margin-top: 4px;
|
|
font-size: 9px;
|
|
}
|
|
.form-help {
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.notice {
|
|
overflow-wrap: anywhere;
|
|
}
|
|
.execution-list {
|
|
max-height: 700px;
|
|
overflow: auto;
|
|
}
|
|
dialog[open] {
|
|
overflow: auto;
|
|
}
|
|
.inspector-actions .danger {
|
|
color: var(--red);
|
|
}
|
|
@media (max-width: 1100px) {
|
|
.editor-context {
|
|
align-items: flex-start;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.editor-context .text-button {
|
|
margin-left: 0;
|
|
}
|
|
.canvas-toolbar strong {
|
|
max-width: 150px;
|
|
}
|
|
.editor-tools #fullscreen {
|
|
display: none;
|
|
}
|
|
}
|
|
@media (max-width: 700px) {
|
|
.inspector {
|
|
max-height: 750px;
|
|
}
|
|
.inspector-body {
|
|
display: block;
|
|
}
|
|
.inspector #node-properties {
|
|
max-height: 510px;
|
|
}
|
|
.editor-context label {
|
|
flex: 1;
|
|
}
|
|
.editor-context select {
|
|
max-width: 100%;
|
|
}
|
|
.canvas-column {
|
|
height: 550px;
|
|
}
|
|
.form-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.execution-filters select {
|
|
flex: 1;
|
|
}
|
|
.canvas-toolbar .editor-tools {
|
|
justify-content: flex-start;
|
|
}
|
|
.editor-context .text-button {
|
|
font-size: 9px;
|
|
}
|
|
}
|
|
|
|
.table-heading,
|
|
.variable-row {
|
|
grid-template-columns: 1fr 110px 2fr 35px;
|
|
}
|
|
.variable-row select {
|
|
width: 100%;
|
|
padding: 10px 6px;
|
|
}
|
|
.inspector-actions #test-data {
|
|
margin: 0;
|
|
text-align: left;
|
|
}
|
|
#test-event {
|
|
min-height: 220px;
|
|
font-family: Consolas, monospace;
|
|
}
|
|
@media (max-width: 700px) {
|
|
.variable-row,
|
|
.table-heading {
|
|
grid-template-columns: minmax(0, 1fr) 90px minmax(0, 1fr) 30px;
|
|
}
|
|
}
|