updated relationship display in cycle details to use inline links instead of alpha nav buttons, and added related cycle links to planet details; added element display to astrology alphabet details; updated decan range display in calendar detail panels; updated tarot card detail script to latest version; added element script to index.html

This commit is contained in:
2026-04-24 04:25:27 -07:00
parent e18ec31cf9
commit 7cdcdb4456
12 changed files with 473 additions and 109 deletions
+56 -10
View File
@@ -90,6 +90,18 @@
.join(" ");
}
function resolveHebrewLetterId(letterName) {
const token = normalize(letterName).replace(/[^a-z]/g, "");
if (!token) {
return "";
}
if (token === "yod") return "yod";
if (token === "vav") return "vav";
if (token === "heh") return "he";
return token;
}
function appendInlineParts(target, parts) {
(Array.isArray(parts) ? parts : []).forEach((part) => {
if (part instanceof Node) {
@@ -171,6 +183,7 @@
const aceCardName = ACE_BY_ELEMENT_ID[id] || "";
const hebrewLetter = HEBREW_LETTER_CHAR_BY_ELEMENT_ID[id] || "";
const hebrewLetterName = HEBREW_LETTER_NAME_BY_ELEMENT_ID[id] || "";
const hebrewLetterId = resolveHebrewLetterId(hebrewLetterName);
const courtRank = COURT_RANK_BY_ELEMENT_ID[id] || "";
const courtCardNames = courtRank
? COURT_SUITS.map((suit) => `${courtRank} of ${suit}`)
@@ -187,6 +200,7 @@
aceCardName,
hebrewLetter,
hebrewLetterName,
hebrewLetterId,
courtRank,
courtCardNames,
smallCardGroups,
@@ -267,16 +281,48 @@
const detailsCard = document.createElement("div");
detailsCard.className = "planet-meta-card";
detailsCard.innerHTML = `
<strong>Element Details</strong>
<dl class="alpha-dl">
<dt>Name</dt><dd>${entry.name}</dd>
<dt>Symbol</dt><dd>${entry.symbol || "--"}</dd>
<dt>Hebrew Letter</dt><dd>${entry.hebrewLetter || "--"}</dd>
<dt>Court Rank</dt><dd>${entry.courtRank || "--"}</dd>
<dt>ID</dt><dd>${entry.id}</dd>
</dl>
`;
const detailsTitle = document.createElement("strong");
detailsTitle.textContent = "Element Details";
const detailsList = document.createElement("dl");
detailsList.className = "alpha-dl";
function appendDetailRow(label, value) {
const term = document.createElement("dt");
term.textContent = label;
const detail = document.createElement("dd");
if (value instanceof Node) {
detail.appendChild(value);
} else {
detail.textContent = String(value || "--");
}
detailsList.append(term, detail);
}
appendDetailRow("Name", entry.name);
appendDetailRow("Symbol", entry.symbol || "--");
const hebrewLetterLabel = `${entry.hebrewLetter || ""} ${entry.hebrewLetterName || ""}`.trim() || "--";
appendDetailRow(
"Hebrew Letter",
entry.hebrewLetterId
? createInlineButton(hebrewLetterLabel, () => {
document.dispatchEvent(new CustomEvent("nav:alphabet", {
detail: {
alphabet: "hebrew",
hebrewLetterId: entry.hebrewLetterId
}
}));
})
: hebrewLetterLabel
);
appendDetailRow("Court Rank", entry.courtRank || "--");
appendDetailRow("ID", entry.id);
detailsCard.append(detailsTitle, detailsList);
const tarotCard = document.createElement("div");
tarotCard.className = "planet-meta-card";