An Angular application is built from components, each a TypeScript class for the logic plus an HTML template for one part of the screen. Other blocks support them:
Services hold logic not tied to a view. With dependency injection, Angular creates a service and passes it to each component that asks.
Directives add behavior to DOM elements.
Pipes transform data for display.
Guards control navigation and access to routes.
Interceptors read or change HTTP requests and responses.
NgModules can still group code, but components are standalone by default, so NgModules are optional.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.