various ui improvements, including a new sequence nav component and a new kabbalah detail view

This commit is contained in:
2026-05-28 18:19:13 -07:00
parent c423f1191d
commit 1433ec1495
17 changed files with 2274 additions and 120 deletions
+61 -3
View File
@@ -309,6 +309,62 @@
return card;
}
function renderWorldLayerDetail(context) {
const { worldLayer, tree, elements } = context;
if (!worldLayer || !elements?.detailBodyEl) {
return;
}
elements.detailNameEl.textContent = String(worldLayer.world || "Qabalistic World");
elements.detailSubEl.textContent = [
worldLayer.slot ? `${worldLayer.slot}: ${worldLayer.letterChar || ""}`.trim() : "",
worldLayer.soulLayer
].filter(Boolean).join(" · ");
elements.detailBodyEl.innerHTML = "";
elements.detailBodyEl.appendChild(metaCard(
"World Layer",
`${worldLayer.worldLayer || "—"}${worldLayer.worldDescription ? ` · ${worldLayer.worldDescription}` : ""}`,
true
));
elements.detailBodyEl.appendChild(metaCard(
"Soul Layer",
`${worldLayer.soulLayer || "—"}${worldLayer.soulTitle ? `${worldLayer.soulTitle}` : ""}${worldLayer.soulDescription ? `: ${worldLayer.soulDescription}` : ""}`,
true
));
const linkedParts = [];
const hebrewLetterId = context.resolveHebrewLetterId(worldLayer.hebrewToken);
if (hebrewLetterId) {
linkedParts.push(createInlineEventLink(
`${worldLayer.letterChar || ""} ${worldLayer.hebrewToken || ""}`.replace(/\s+/g, " ").trim(),
"nav:alphabet",
{
alphabet: "hebrew",
hebrewLetterId
}
));
}
const linkedPath = context.findPathByHebrewToken(tree, worldLayer.hebrewToken);
if (linkedPath?.pathNumber != null) {
if (linkedParts.length) {
linkedParts.push(" · ");
}
linkedParts.push(createInlineEventLink(
`Path ${linkedPath.pathNumber}`,
"nav:kabbalah-path",
{ pathNo: Number(linkedPath.pathNumber) }
));
}
if (linkedParts.length) {
elements.detailBodyEl.appendChild(metaCard("Linked Attributions", inlineValue(linkedParts)));
}
elements.detailBodyEl.appendChild(buildFourWorldsCard(tree, worldLayer.hebrewToken, context));
}
function splitCorrespondenceNames(value) {
return String(value || "")
.split(/,|;|·|\/|\bor\b|\band\b|\+/i)
@@ -419,12 +475,14 @@
function renderSephiraDetail(context) {
const { seph, tree, elements } = context;
elements.detailNameEl.textContent = `${seph.number} · ${seph.name}`;
const displayNumber = String(seph.displayNumber || seph.number || "").trim();
elements.detailNameEl.textContent = displayNumber
? `${displayNumber} · ${seph.name}`
: `${seph.name}`;
elements.detailSubEl.textContent =
[seph.nameHebrew, seph.translation, seph.planet].filter(Boolean).join(" · ");
elements.detailBodyEl.innerHTML = "";
elements.detailBodyEl.appendChild(buildFourWorldsCard(tree, "", context));
elements.detailBodyEl.appendChild(buildPlanetLuminaryCard(seph.planet, context));
elements.detailBodyEl.appendChild(metaCard("Intelligence", seph.intelligence));
elements.detailBodyEl.appendChild(buildTarotAttributionCard(seph.tarot));
@@ -484,7 +542,6 @@
elements.detailSubEl.textContent = [path.tarot?.card, astro].filter(Boolean).join(" · ");
elements.detailBodyEl.innerHTML = "";
elements.detailBodyEl.appendChild(buildFourWorldsCard(tree, context.activeHebrewToken, context));
elements.detailBodyEl.appendChild(buildConnectsCard(path, fromName, toName));
elements.detailBodyEl.appendChild(buildHebrewLetterCard(letter, context));
elements.detailBodyEl.appendChild(buildAstrologyCard(path.astrology, context));
@@ -543,6 +600,7 @@
}
window.KabbalahDetailUi = {
renderWorldLayerDetail,
renderSephiraDetail,
renderPathDetail,
renderRoseLandingIntro