various ui improvements, including a new sequence nav component and a new kabbalah detail view
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user