added mermaid and a lot of cmap changes

This commit is contained in:
2026-08-27 13:13:39 +02:00
parent 20c1584016
commit 2215d1d04a
35 changed files with 6442 additions and 350 deletions
+301 -17
View File
@@ -280,16 +280,86 @@ body.cmap-mode #main {
.cmap-workspace {
position: relative;
z-index: 0;
display: flex;
align-items: flex-start;
isolation: isolate;
width: 100%;
}
.cmap-selection-toolbar {
position: sticky;
z-index: 120;
top: 82px;
left: 0;
display: grid;
flex: 0 0 82px;
grid-template-columns: 1fr;
gap: 5px;
box-sizing: border-box;
width: 82px;
max-height: calc(100vh - 96px);
margin: 5px 8px 0 0;
padding: 7px;
overflow: auto;
border: 1px solid #c6ccd3;
border-radius: 7px;
background: #f2f4f6;
box-shadow: 0 3px 12px rgb(35 45 55 / 14%);
}
.cmap-selection-tool-group {
display: grid;
grid-template-columns: repeat(2, 30px);
gap: 5px;
}
.cmap-selection-tool-group button {
display: grid;
box-sizing: border-box;
width: 30px;
height: 30px;
padding: 5px;
place-items: center;
border: 1px solid #aeb7c1;
border-radius: 4px;
background: #fff;
color: #344454;
cursor: pointer;
}
.cmap-selection-tool-group button:hover:not(:disabled),
.cmap-selection-tool-group button:focus-visible {
border-color: #64788c;
background: #e4ebf2;
color: #172b3e;
}
.cmap-selection-tool-group button:disabled {
border-color: #d6dade;
background: #f7f8f9;
color: #aeb5bc;
cursor: default;
}
.cmap-selection-tool-group button svg,
.cmap-selection-tool-group button i {
width: 17px;
height: 17px;
}
.cmap-selection-tool-separator {
height: 1px;
margin: 1px 2px;
background: #cbd1d7;
}
.cmap-canvas {
--cmap-a4-width: 1123px;
--cmap-a4-height: 794px;
position: relative;
flex: 1 0 auto;
width: max-content;
min-width: max(760px, 100%);
min-width: max(760px, calc(100% - 90px));
min-height: 794px;
overflow: visible;
border: 0;
@@ -518,7 +588,8 @@ body.cmap-mode #main {
.cmap-description-tooltip .markdown-body > :first-child { margin-top: 0; }
.cmap-description-tooltip .markdown-body > :last-child { margin-bottom: 0; }
.rw-cmap-open-linked {
.rw-cmap-open-linked,
.rw-cmap-open-external {
position: absolute;
z-index: 46;
top: 3px;
@@ -536,15 +607,35 @@ body.cmap-mode #main {
font: 700 12px/1 Arial, Helvetica, sans-serif;
}
.rw-cmap-open-external {
position: absolute;
right: 3px;
border-color: #4479a1;
color: #245f8c;
}
.rw-cmap-open-linked + .rw-cmap-open-external {
right: 27px;
}
.cmap-card-submap .rw-cmap-open-external {
right: 52px;
}
.rw-cmap-view-description + .cmap-card-image,
.rw-cmap-view-description ~ .cmap-card-title {
padding-left: 16px;
}
.rw-cmap-open-linked ~ .cmap-card-title {
.rw-cmap-open-linked ~ .cmap-card-title,
.rw-cmap-open-external ~ .cmap-card-title {
padding-right: 16px;
}
.rw-cmap-open-linked + .rw-cmap-open-external ~ .cmap-card-title {
padding-right: 40px;
}
.cmap-card-title {
margin-bottom: .3rem;
font-size: 1em;
@@ -567,6 +658,24 @@ body.cmap-mode #main {
margin: 0 0 .35rem;
}
.cmap-card-people {
display: inline-flex;
max-width: 100%;
align-items: center;
gap: 3px;
margin-top: 4px;
padding: 2px 6px;
overflow: hidden;
border: 1px solid #8b6aa8;
border-radius: 999px;
background: #f1e9f7;
color: #4e3266;
font-size: 0.76em;
font-weight: 600;
text-overflow: ellipsis;
white-space: nowrap;
}
.cmap-card-aspect {
padding: 1px 5px;
border: 1px solid color-mix(in srgb, currentColor 35%, transparent);
@@ -682,6 +791,11 @@ body.cmap-mode #main {
box-shadow: 0 0 0 5px rgb(132 126 255 / 28%);
}
.rw-cmap-submap-frame-selected-primary {
outline-color: #2473c7;
box-shadow: 0 0 0 5px rgb(36 115 199 / 32%);
}
.rw-cmap-submap-frame-toggle {
position: absolute;
top: 50%;
@@ -737,13 +851,19 @@ body.cmap-mode #main {
}
.rw-cmap-selected {
z-index: 20 !important;
z-index: 300000 !important;
outline: 3px solid #9994ff !important;
outline-offset: 2px;
box-shadow: 0 0 0 1px rgb(255 255 255 / 95%),
0 0 0 5px rgb(132 126 255 / 38%) !important;
}
.rw-cmap-selected-primary {
outline-color: #2473c7 !important;
box-shadow: 0 0 0 1px rgb(255 255 255 / 95%),
0 0 0 5px rgb(36 115 199 / 42%) !important;
}
.rw-cmap-marquee {
position: absolute;
z-index: 10000;
@@ -887,7 +1007,8 @@ body.cmap-mode #main {
}
#cmap-concept-dialog {
width: min(780px, calc(100vw - 32px));
width: min(860px, calc(100vw - 32px));
height: min(760px, calc(100vh - 32px));
max-height: calc(100vh - 32px);
}
@@ -947,20 +1068,88 @@ body.cmap-mode #main {
}
#cmap-concept-form {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 11px 14px;
max-height: calc(100vh - 34px);
overflow: auto;
padding: 18px;
grid-template-rows: auto auto minmax(0, 1fr) auto;
gap: 0;
height: 100%;
max-height: none;
overflow: hidden;
padding: 0;
}
#cmap-concept-form > h2,
#cmap-concept-form > .cmap-dialog-wide,
#cmap-concept-form > .cmap-submap-style-fields,
#cmap-concept-form > .cmap-concept-dialog-actions {
#cmap-concept-form > h2 {
padding: 18px 20px 10px;
}
.cmap-concept-tabs {
display: flex;
gap: 4px;
padding: 0 20px;
border-bottom: 1px solid #cbd2da;
}
.cmap-concept-tabs button {
margin-bottom: -1px;
padding: 9px 14px;
border: 1px solid transparent;
border-bottom-color: #cbd2da;
border-radius: 5px 5px 0 0;
background: transparent;
cursor: pointer;
}
.cmap-concept-tabs button[aria-selected="true"] {
border-color: #cbd2da;
border-bottom-color: #fff;
background: #fff;
color: #173b57;
font-weight: 700;
}
.cmap-concept-dialog-body {
min-height: 0;
overflow: auto;
padding: 16px 20px;
}
.cmap-concept-panel {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 13px 16px;
}
.cmap-concept-panel.hidden {
display: none;
}
.cmap-concept-panel > .cmap-dialog-wide,
.cmap-concept-panel > .cmap-submap-style-fields {
grid-column: 1 / -1;
}
.cmap-style-manager {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 8px 12px;
align-items: end;
padding: 11px 12px;
border: 1px solid #b9c7d3;
border-radius: 5px;
background: #f3f7fa;
}
.cmap-style-manager-actions {
display: flex;
gap: 7px;
}
.cmap-style-manager small {
grid-column: 1 / -1;
}
.cmap-quick-style-field {
align-content: start;
}
.cmap-concept-dialog h2 {
margin: 0 0 2px;
}
@@ -973,6 +1162,7 @@ body.cmap-mode #main {
.cmap-concept-dialog input[type="text"],
.cmap-concept-dialog input[type="search"],
.cmap-concept-dialog input[type="url"],
.cmap-concept-dialog input[type="number"],
.cmap-concept-dialog select,
.cmap-concept-dialog textarea {
@@ -1105,6 +1295,89 @@ body.cmap-mode #main {
.cmap-check-label input { margin: 0; }
#cmap-export-form .cmap-check-label {
display: flex;
grid-template-columns: none;
flex-direction: row;
align-items: center;
gap: 8px;
}
.cmap-person-tags-field small {
font-weight: 400;
}
.cmap-concept-panel small {
font-weight: 400;
}
.cmap-person-picker {
position: relative;
font-weight: 400;
}
.cmap-person-picker > summary {
padding: 8px 10px;
border: 1px solid #aab2bd;
border-radius: 4px;
background: #fff;
cursor: pointer;
}
.cmap-person-picker[open] {
padding: 0 9px 9px;
border: 1px solid #aab2bd;
border-radius: 4px;
background: #fff;
}
.cmap-person-picker[open] > summary {
margin: 0 -9px 8px;
border: 0;
border-bottom: 1px solid #d3d7dc;
border-radius: 0;
}
.cmap-person-tag-options,
.cmap-people-list {
display: grid;
gap: 6px;
max-height: 240px;
overflow: auto;
}
.cmap-person-tag-option {
display: flex !important;
grid-template-columns: none !important;
flex-direction: row;
align-items: center;
gap: 7px !important;
font-weight: 400 !important;
}
.cmap-person-add-row,
.cmap-person-admin-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 8px;
align-items: center;
margin-top: 9px;
}
.cmap-person-admin-row {
grid-template-columns: minmax(180px, 1fr) auto auto;
margin: 0;
}
.cmap-person-admin-row label {
display: flex;
grid-template-columns: none;
flex-direction: row;
align-items: center;
gap: 6px;
font-weight: 400;
}
.cmap-submap-style-fields legend {
grid-column: 1 / -1;
}
@@ -1160,21 +1433,32 @@ body.cmap-mode #main {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 4px;
margin: 0;
padding: 12px 20px;
border-top: 1px solid #cbd2da;
background: #fff;
}
@media (max-width: 720px) {
#cmap-concept-form,
.cmap-concept-panel,
.cmap-appearance-fields,
.cmap-typography-fields {
grid-template-columns: 1fr;
}
#cmap-concept-form > *,
.cmap-concept-panel > *,
.cmap-appearance-fields > *,
.cmap-typography-fields > * {
grid-column: 1;
}
.cmap-style-manager {
grid-template-columns: 1fr;
}
.cmap-style-manager small {
grid-column: 1;
}
}
@media (max-width: 1100px) {