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:
+56
-10
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user