cmap functions, email, architecture documentation.

This commit is contained in:
2026-08-18 03:33:10 +02:00
parent 12f1ed2764
commit 63b7ca0853
33 changed files with 3974 additions and 80 deletions
+3 -3
View File
@@ -7,7 +7,7 @@
(() => {
"use strict";
const debugPrefix = "[racket-wiki:cmap 0.2.84]";
const debugPrefix = "[racket-wiki:cmap 0.2.94]";
function debug(message, details) {
if (details === undefined) {
@@ -1207,7 +1207,7 @@
const expanded = [];
for (const item of selected) {
expanded.push(item);
if (item.kind === "submap" && !item.expanded && item !== this.activeMapRoot) {
if (item.kind === "submap" && item !== this.activeMapRoot) {
expanded.push(...this.items.filter((candidate) => this.isDescendantOf(candidate, item)));
}
}
@@ -2081,7 +2081,7 @@
let lastEditor = null;
window.RacketWikiCmap = {
version: "0.2.84",
version: "0.2.94",
createEditor(canvas, options) {
lastEditor = new CmapEditor(canvas, options);
return lastEditor;
+68
View File
@@ -257,6 +257,54 @@ body.cmap-mode #main {
transform-origin: 0 0;
}
.rw-cmap-embed {
display: block;
margin: 1.25rem 0;
overflow: hidden;
border: 1px solid #cbd4dc;
border-radius: 10px;
background: #fff;
cursor: zoom-in;
}
.rw-cmap-embed > header {
display: flex;
justify-content: space-between;
gap: 18px;
align-items: baseline;
padding: 9px 13px;
border-bottom: 1px solid #e1e6eb;
background: #f7f9fa;
}
.rw-cmap-embed > header span {
color: #65717c;
font-size: 0.85rem;
}
.rw-cmap-embed-loading,
.rw-cmap-embed > .error {
margin: 0;
padding: 18px;
}
.rw-cmap-embed-viewport {
position: relative;
width: 100%;
min-height: 180px;
max-height: 520px;
overflow: hidden;
background: #fff;
}
.rw-cmap-embed-canvas {
min-width: 100%;
min-height: 100%;
pointer-events: none;
background: #fff !important;
box-shadow: none !important;
}
.cmap-zoom-controls {
display: flex;
flex: 0 0 auto;
@@ -628,6 +676,26 @@ body.cmap-mode #main {
background: rgb(22 30 44 / 38%);
}
.cmap-history-dialog {
width: min(720px, calc(100vw - 40px));
max-height: calc(100vh - 60px);
padding: 0;
border: 1px solid #aeb7c4;
border-radius: 10px;
box-shadow: 0 16px 48px rgba(22, 32, 51, 0.22);
}
.cmap-history-dialog::backdrop {
background: rgba(25, 32, 45, 0.38);
}
.cmap-history-panel { padding: 22px; }
.cmap-history-panel > header { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.cmap-history-panel h2 { margin: 0; }
#cmap-history-list { max-height: min(520px, 60vh); overflow: auto; }
.cmap-history-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid #dfe3e8; }
.cmap-history-row:last-child { border-bottom: 0; }
.cmap-unsaved-dialog form {
display: grid;
gap: 14px;
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* racket-wiki cmap component 0.2.84
* racket-wiki cmap component 0.2.94
* Based on cmap v0.1.3.
* (c) 2015 iOnStage
* Released under the MIT License.