Themes: Add internal-only theme.json's webfonts handler (stopgap).
Adds _wp_theme_json_webfonts_handler() for handling fontFace declarations in a theme's theme.json file to generate the @font-face styles for both the editor and front-end.
Design notes:
- It is not a public API, but rather an internal, Core-only handler.
- It is a stopgap implementation that will be replaced when the public Webfonts API is introduced in Core.
- The code design is intentional, albeit funky, with the purpose of avoiding backwards-compatibility issues when the public Webfonts API is introduced in Core.
- It hides the inter-workings.
- Does not exposing API ins and outs for external consumption.
- Only works for
theme.json.
- Does not provide registration or enqueuing access for plugins.
For more context on the decision to include this stopgap and the Webfonts API, see:
Props aristath, hellofromTonya, peterwilsoncc, costdev, jffng, zieladam, gziolo, bph, jonoaldersonwp, desrosj.
See #55567, #46370.