In my experience quite a lot of programming is thinking, though quite a lot is also communication, if you work in a team
Typing out comments on PRs, reproducing issues, modifying existing code to test hypotheses, discussing engineering options with colleagues, finding edge cases, helping QA other tickets, and so on. I guess this is all "thinking," too, but it often involves a keyboard, typing, and other people
A lower but still significant portion is "overhead." Switching branches, syncing branches, rebasing changes, fixing merge conflicts, setting up feature flags, fixing CI workflows, and so on
Depending on the size of the team, my gut feel for time consumption is:
Communication > Thinking > Writing Code > Overhead