+
+
+ {/* ---- debug-tool coordinate HUD ---- */}
+
+
+ {t('inventory.sigil.coordLabel', { defaultValue: 'coords' })}
+
+ {hovered ? (
+
+ SLOT {String(hoverSlot).padStart(2, '0')} · θ={slotDegrees(hoverSlot ?? 0, SIGIL_SLOT_COUNT)}°
+ · x={hovered[0].toFixed(3)} y={hovered[1].toFixed(3)}
+
+ ) : (
+
+ {t('inventory.sigil.hoverHint', { defaultValue: 'hover an anchor point' })}
+
+ )}
+
+
+
+ {t('inventory.sigil.pointsLabel', { defaultValue: 'points' })}
+
+
+ {selectedSlots.length}/{SIGIL_MAX_POINTS}
+
+ {lastSlot !== null && (
+
+ {t('inventory.sigil.lastLabel', { defaultValue: 'last' })}: {lastSlot}
+
+ )}
+
+
+
+
+
+ {RUNES.map((r) => (
+
+ ))}
+
+
+
+
setName(e.target.value)}
+ placeholder={t('inventory.sigil.namePlaceholder', { defaultValue: 'untitled sigil' })}
+ />
+
+
+ {status === 'saved' && (
+
+ {t('inventory.sigil.saved', { defaultValue: 'the sigil is bound' })}
+
+ )}
+ {status === 'error' && (
+
+ {t('inventory.sigil.error', { defaultValue: 'the sigil would not hold' })}
+
+ )}
+
+