Add PF2e equipment display with detail popovers in stat blocks
CI / check (push) Successful in 2m31s
CI / build-image (push) Successful in 17s

Extract shared DetailPopover shell from spell popovers. Normalize
weapon/consumable/equipment/armor items from Foundry data into
mundane (Items line) and detailed (Equipment section with clickable
popovers). Scrolls/wands show embedded spell info. Bump IDB cache v7.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lukas
2026-04-10 21:11:54 +02:00
co-authored by Claude Opus 4.6
parent e2e8297c95
commit 1eaeecad32
16 changed files with 943 additions and 158 deletions
+9 -6
View File
@@ -3,6 +3,7 @@ import type {
TraitBlock,
TraitSegment,
} from "@initiative/domain";
import { RichDescription } from "./rich-description.js";
export function PropertyLine({
label,
@@ -39,20 +40,22 @@ function TraitSegments({
{segments.map((seg, i) => {
if (seg.type === "text") {
return (
<span key={segmentKey(seg)}>
{i === 0 ? ` ${seg.value}` : seg.value}
</span>
<RichDescription
key={segmentKey(seg)}
text={i === 0 ? ` ${seg.value}` : seg.value}
className="inline whitespace-pre-line"
/>
);
}
return (
<div key={segmentKey(seg)} className="mt-1 space-y-0.5">
{seg.items.map((item) => (
<p key={item.label ?? item.text}>
<div key={item.label ?? item.text}>
{item.label != null && (
<span className="font-semibold">{item.label}. </span>
)}
{item.text}
</p>
<RichDescription text={item.text} className="inline" />
</div>
))}
</div>
);