Skip to content

Conversation

@simison
Copy link
Member

@simison simison commented Dec 9, 2022

Adding new fonts for better global support.

An alternative to #27751

Related to adding & deprecating other fonts: #27441

See design discussion p9Jlb4-5Dj-p2

image

Changes proposed in this Pull Request:

  • Adds a way to filter Global Styles to provide different name from "font family". Google fonts expects Noto Sans fonts to be requested with font family such as "Noto Serif TC" instead of "Noto Serif (Traditional Chinese)". wp_register_webfonts() does not support passing the name, although Global Style Schema does support the name and it thus works in the UI once provided via filter. Once the support for "name" is added, we can go via simpler approach implemented in Add fonts for better i18n #27751 instead.

  • Moves font list to a getter function to be able to:

    • Translate new font names
    • Filter the list for both functions where the list is now used
  • Adds new fonts at the end of the fonts list:

    'Alexandria'           => 'Alexandria (Arabic)',
    'IBM Plex Sans Arabic' => 'IBM Plex Sans (Arabic)',
    'Noto Sans Hebrew'     => 'Noto Sans (Hebrew)',
    'Noto Sans HK'         => 'Noto Sans (Hong Kong)',
    'Noto Sans JP'         => 'Noto Sans (Japanese)',
    'Noto Sans KR'         => 'Noto Sans (Korean)',
    'Noto Sans SC'         => 'Noto Sans (Simplified Chinese)',
    'Noto Sans TC'         => 'Noto Sans (Traditional Chinese)',
    'Noto Sans Telugu'     => 'Noto Sans (Telugu)',
    'Noto Serif Hebrew'    => 'Noto Serif (Hebrew)',
    'Noto Serif HK'        => 'Noto Serif (Hong Kong)',
    'Noto Serif JP'        => 'Noto Serif (Japanese)',
    'Noto Serif KR'        => 'Noto Serif (Korean)',
    'Noto Serif SC'        => 'Noto Serif (Simplified Chinese)',
    'Noto Serif TC'        => 'Noto Serif (Traditional Chinese)',
    

Mukta, which is present in the screenshot above, is missing from the list since it wasn't available at Google Fonts.

Other information:

  • Have you written new tests for your changes, if applicable?
  • Have you checked the E2E test CI results, and verified that your changes do not break them?

Jetpack product discussion

p9Jlb4-5Dj-p2

Does this pull request change what data or activity we track or use?

Nope.

Testing instructions:

  • Test using non-blockbase theme (including child themes) because blockbase disables Jetpack fonts. Alternatively test using the upcoming change in blockbase.

  • Ensure "Google fonts" module is enabled when testing with standalone Jetpack. At .com it is enabled already.

  • Go to Appearance → Editor → Press "edit" on newer Gutenberg.

  • Navigate to Styles panel and change fonts for the text or headings. See all the fonts in the dropdown:

    image Screenshot 2022-12-09 at 14 07 08
  • Have some Japanese, Arabic, Chinese etc texts to test with and observe how specific fonts support these scripts beautifully.

    Screenshot 2022-12-09 at 14 08 03 Screenshot 2022-12-09 at 14 08 09
  • Note also difference between Noto Sans and Noto Serif in the language you're testing, here's Japanese:

    Screenshot 2022-12-15 at 13 44 05 Screenshot 2022-12-15 at 13 44 14
  • Ensure frontend of the site works, too.

  • Observe how values are different from the actual names in the dropdown list:
    Screenshot 2022-12-09 at 14 07 34

@simison simison added [Status] Needs Review This PR is ready for review. [Focus] i18n Internationalization / i18n, adaptation to different languages [Feature] Google Fonts labels Dec 9, 2022
@simison simison self-assigned this Dec 9, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2022

Are you an Automattician? You can now test your Pull Request on WordPress.com. On your sandbox, run bin/jetpack-downloader test jetpack update/fonts-i18n-filter to get started. More details: p9dueE-5Nn-p2

@github-actions github-actions bot added the [Plugin] Jetpack Issues about the Jetpack plugin. https://wordpress.org/plugins/jetpack/ label Dec 9, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2022

Thank you for your PR!

When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:

  • ✅ Include a description of your PR changes.
  • ⚠️ All commits were linted before commit.
  • ✅ Add a "[Status]" label (In Progress, Needs Team Review, ...).
  • ✅ Add testing instructions.
  • ✅ Specify whether this PR includes any changes to data or privacy.
  • ✅ Add changelog entries to affected projects

This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖


The e2e test report can be found here. Please note that it can take a few minutes after the e2e tests checks are complete for the report to be available.


Once your PR is ready for review, check one last time that all required checks (other than "Required review") appearing at the bottom of this PR are passing or skipped.
Then, add the "[Status] Needs Team review" label and ask someone from your team review the code.
Once you’ve done so, switch to the "[Status] Needs Review" label; someone from Jetpack Crew will then review this PR and merge it to be included in the next Jetpack release.


Jetpack plugin:

  • Next scheduled release: January 3, 2023.
  • Scheduled code freeze: December 26, 2022.

@simison simison mentioned this pull request Dec 9, 2022
2 tasks
@simison simison requested a review from pbking December 9, 2022 13:39
Copy link
Member

@obenland obenland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The font dropdown doesn't show the translated font names for me with either Twenty Twenty-Two or Twenty-Three. Is there a theme that has these Noto Sans variants in its theme.json that I should be testing with?

image

@sdixon194 sdixon194 added [Status] Needs Author Reply We need more details from you. This label will be auto-added until the PR meets all requirements. and removed [Status] Needs Review This PR is ready for review. labels Dec 12, 2022
@simison simison force-pushed the update/fonts-i18n-filter branch from 932e167 to 973e3cf Compare December 15, 2022 11:46
@simison simison requested a review from obenland December 15, 2022 11:47
@simison simison added [Status] Needs Review This PR is ready for review. and removed [Status] Needs Author Reply We need more details from you. This label will be auto-added until the PR meets all requirements. labels Dec 15, 2022
'Noto Serif JP' => _x( 'Noto Serif (Japanese)', 'Font name', 'jetpack' ),
'Noto Serif KR' => _x( 'Noto Serif (Korean)', 'Font name', 'jetpack' ),
'Noto Serif SC' => _x( 'Noto Serif (Simplified Chinese)', 'Font name', 'jetpack' ),
'Noto Serif TC' => _x( 'Noto Serif (Traditional Chinese)', 'Font name', 'jetpack' ),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Automattic/i18n Any difference to do above or use sprintf:

$renamed_fonts = array(
    'Alexandria'           => sprintf( _x( '%s (Arabic)', 'Font name (font script)', 'jetpack' ), 'Alexandria'),
    'IBM Plex Sans Arabic' => sprintf( _x( '%s (Arabic)', 'Font name (font script)', 'jetpack' ), 'IBM Plex Sans'),
    'Noto Sans Hebrew'     => sprintf( _x( '%s (Hebrew)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Sans HK'         => sprintf( _x( '%s (Hong Kong)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Sans JP'         => sprintf( _x( '%s (Japanese)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Sans KR'         => sprintf( _x( '%s (Korean)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Sans SC'         => sprintf( _x( '%s (Simplified Chinese)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Sans TC'         => sprintf( _x( '%s (Traditional Chinese)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Sans Telugu'     => sprintf( _x( '%s (Telugu)', 'Font name (font script)', 'jetpack' ), 'Noto Sans'),
    'Noto Serif Hebrew'    => sprintf( _x( '%s (Hebrew)', 'Font name (font script)', 'jetpack' ), 'Noto Serif'),
    'Noto Serif HK'        => sprintf( _x( '%s (Hong Kong)', 'Font name (font script)', 'jetpack' ), 'Noto Serif'),
    'Noto Serif JP'        => sprintf( _x( '%s (Japanese)', 'Font name (font script)', 'jetpack' ), 'Noto Serif'),
    'Noto Serif KR'        => sprintf( _x( '%s (Korean)', 'Font name (font script)', 'jetpack' ), 'Noto Serif'),
    'Noto Serif SC'        => sprintf( _x( '%s (Simplified Chinese)', 'Font name (font script)', 'jetpack' ), 'Noto Serif'),
    'Noto Serif TC'        => sprintf( _x( '%s (Traditional Chinese)', 'Font name (font script)', 'jetpack' ), 'Noto Serif'),
);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current approach (without sprintf) should be better for localization and would allow translating the font name in some locales.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the font name itself ever needs translating, only the part in brackets. Could be wrong tho!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While some Wiki articles translate the 'Noto' family (Arabic, Korean), the actual font name is displayed in English and most of translated versions of Google Fonts FAQ also use the English name for the font. The ones which do translate Noto (Hindi and Bengali) are not part of Mag-16 and have low translation rates on WordPress.com and Jetpack.

It should be safe to have the font names wrapped in translate calls and let the translators handle it, but since all of Mag-16 don't translate them and keeping it separate would allow to easily update the fonts, the sprintf approach looks better.

Copy link
Member Author

@simison simison Dec 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Used sprintf instead in 42ff3e8

Less work for translators and end result will be equally good, methinks.

*/
function jetpack_rename_google_font_names( $theme_json ) {
$raw_data = $theme_json->get_data();
$font_families = $raw_data['settings']['typography']['fontFamilies']['theme'];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do all block themes have all of these keys defined? If not it might make sense to return early if an isset() returns false.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will JETPACK_GOOGLE_FONTS_LIST be part of $font_families? Or is $font_families the static representation of that theme json data?

Copy link
Member Author

@simison simison Dec 16, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are always defined because before this filter we registered the fonts, and they end up to theme style object when registered with with wp_register_webfonts() — even from a plugin. A bit confusing. :-)

That said, something that could in theory happen is that all Jetpack fonts or typography settings get filtered out or shortcirquitted by some plugin or theme. The shape of the data could also change later on in Gutenberg. $theme_json->update_with() takes care of versioning later on but here we don't have that safeguard. I'll add a check!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a few checks;

  • tests if array keys exist
  • Skip renaming entirely for non wp-admin/rest API requests.

@simison simison force-pushed the update/fonts-i18n-filter branch from 82c36f5 to ca8e73a Compare December 16, 2022 11:23
@obenland
Copy link
Member

I have a hard time testing this one, the fonts don't show up for me in the site editor.
Neither syncing it to my sandbox (Stewart theme) nor checking out the branch with Jetpack Beta on a WoA site (Russell theme) worked.

Is there an additional step I should take?

@simison simison force-pushed the update/fonts-i18n-filter branch from ca8e73a to 42ff3e8 Compare December 19, 2022 10:17
@simison
Copy link
Member Author

simison commented Dec 19, 2022

checking out the branch with Jetpack Beta on a WoA site (Russell theme) worked.

@obenland Ah, sorry I think I didn't clarify this; you need to test using non-blockbase theme, including its child themes like Russell. Blockbase disables Jetpack fonts
so none of this works with Blockbase on Jetpack nor on WP.com for now. until that is changed, hopefully soon.

Stewart on .com should work though, so I'll double check what's up with that. Stewart on Jetpack site seems to work.

@simison simison force-pushed the update/fonts-i18n-filter branch from 42ff3e8 to 6ca77fd Compare December 19, 2022 10:52
@simison
Copy link
Member Author

simison commented Dec 20, 2022

Stewart on .com should work though, so I'll double check what's up with that. Stewart on Jetpack site seems to work.

@obenland The PR with Stewart theme and other themes do work on .com for me. Not quite sure what you're missing. Double sure you are sandboxed and applied the right branch? #27854 (comment)

Maybe you also have luck replicaing the issue in this PR which I cannot. :-D

Feel free to invite me to a test site where the issue is, might be able to find the problem that way.

@obenland
Copy link
Member

I'll take another look today!

@obenland
Copy link
Member

Yeah I don't know what's going on. This is my sandbox output: 2e8e4-pb/#plain

Twenty Twenty Two
Screenshot 2022-12-20 at 4 04 35 PM

Twenty Twenty Three
Screenshot 2022-12-20 at 4 09 45 PM

Stewart
Screenshot 2022-12-20 at 4 12 01 PM

What are themes it should work with on Simple?

@simison
Copy link
Member Author

simison commented Dec 21, 2022

Even the regular set of fonts doesn't appear for you on simple sites. 😱 TT* themes are great for testing this. Let's take convo out of PR to have a deeper look.

Copy link
Member

@jeherve jeherve left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good and works well for me, on a WoA site as well as on a WordPress.com simple site.

I've updated the branch so it can be ready to merge whenever you're ready.

Screenshot 2022-12-21 at 12 32 34

Screenshot 2022-12-21 at 12 32 19

Screenshot 2022-12-21 at 12 29 07

@jeherve jeherve added [Status] Ready to Merge Go ahead, you can push that green button! and removed [Status] Needs Review This PR is ready for review. labels Dec 21, 2022
@simison simison merged commit a3b8bf9 into trunk Dec 22, 2022
@simison simison deleted the update/fonts-i18n-filter branch December 22, 2022 12:26
@github-actions github-actions bot removed the [Status] Ready to Merge Go ahead, you can push that green button! label Dec 22, 2022
@coder-karen coder-karen added this to the Jetpack 11.7 milestone Dec 22, 2022
simison added a commit that referenced this pull request Dec 30, 2022
romarioraffington added a commit that referenced this pull request Jan 4, 2023
* Boost: Fix regenerate admin notice (#28012)

* Show regenerate notice only if Critical CSS module is active

* changelog

* Boost: Add image guide package (#27952)

* Add package image-guide

* [not verified] Attempt to use the image-guide package

* changelog

* Specify a main file in package.json

* Two step build

* Use simpler type syntax since prettier... doesn't like it?

* Build image-guide on boost e2e tests

* changelog

* Setup tests

* Attempt to fix imports

* Change main file

* Fixed monorepo package dependencies

* changelog

* Update package.lock

* Update boost pnpm packages

* Attempt to fix monorepo package version refs

* changelog

* Another attempt to fix failed checks

* changelog

* Update boost packages

* Revert main in package.json

* Change main file

* Fix type imports

* [not verified] Revert "Fix type imports"

This reverts commit 66c2eadf0bb452121c45e7ef1887f632a977d09e.

* Allow heart-of-team to approve PRs for image-guide js package

* Specify main and types files separately

* Import types differently

Co-authored-by: Mark George <thingalon@gmail.com>

* Premium Content / Subscriptions: introduce Paid Newsletter functionality (#26417)

Co-authored-by: brent <brent@n3f.com>
Co-authored-by: Fabien MILLERAND <fab@millerf.com>
Co-authored-by: Brent Nef <nef@a8c.com>
Co-authored-by: Romario <romarioraff@gmail.com>
Co-authored-by: Matías Ventura <mv@matiasventura.com>
Co-authored-by: Matias Ventura <matias@automattic.com>
Co-authored-by: MILLER/F <millerf@automattic.com>
Co-authored-by: Kuba Birecki <kuba.birecki@crystalplanet.io>
Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>
Co-authored-by: Brandon Kraft <public@brandonkraft.com>

* Add/auto publish for image guide (#28032)

Co-authored-by: Mark George <thingalon@gmail.com>

* Gifting toggle: Update default value based on plan expiration date (#27987)

Co-authored-by: Candy Tsai <candy02058912@gmail.com>

* Fix out-of-bounds menus on the admin (#27958)

* [not verified] Fix the out-of-bounds menu. It also caused the menu to flicker if you positioned the mouse in a specific position

* [not verified] Add the listener in the init funciton

* [not verified] Fix the arrow display

* [not verified] Fix missing spaces and changelog text

* [not verified] Prevent code from running twice

* [not verified] Add explanation for using a fallback for the viewport check

* [not verified] Remove the focus when leave the main element

* [not verified] Use the link height instead of hardcoding it

* [not verified] Checking if the site is atomic through a global variable instead of using a class to do it

Co-authored-by: Valter Lorran <valter.lorran@automattic.com>

* Contact Form: Adjust Form placeholder footer links styles (#28008)

* Adjust Form placeholder footer links style

* changelog

* Internationalization: fix context for translated product name. (#28035)

* Removing box-sizing:border-box from Base Styles (#28024)

* Jetpack: Add responses export modal (#27821)

Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>

* Allow supporting merge PRs with changelogger. (#27881)

* [not verified] Allow supporting merge PRs with changelogger.

* [not verified] Add changelog.

* [not verified] Update version number for CLI.

* [not verified] Upgrade changelogger reference in all plugins.

* [not verified] Add changelogs.

* [not verified] Also add support for default merge message from GH.

* [not verified] Add unit test for supporting merge in changelogger.

* [not verified] Remove unneeded capturing groups and added anchoring.

* [not verified] Apply coding standards.

* [not verified] Remove redundant test.

* VideoPress: Add videopress embed shortcode (#27842)

* [not verified] add jetpack_videopress shortcode

* [not verified] move width and height out of poster data

* [not verified] add generated jetpack_videopress shortcode to video details component

* [not verified] changelog

* [not verified] specify the video block

* [not verified] improve shortcode markup

* [not verified] read guid as first unnamed argument

* change shortcode to videopress and override jetpack shortcode

* [not verified] change generated shortcode

* changelog

* fix video url on block by id

* fix versions

* simplify existing shortcode check

* add cover attribute

* Blocks: switch to new shared, extracted implementation of Tracks (#27940)

Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>

* Blogging Prompts: Don't display within app webviews (#28023)

If a block is unsupported in the mobile app, a user can still edit it via a web view (known as the "Unsupported Block Editor" or "UBE"). Since the introduction of the blogging/writing prompts on WordPress.com, the block no longer loads within the UBE. The prompts display instead.

This PR fixes that issue by preventing the prompts from displaying if it's detected that the editor is loading from the mobile app.

* Fix layout visual issues (#28055)

* my-jetpack: fix Product card layout issue

* fix product card detail layout issue

* fix VideoPress seach layout issue

* fix VideoPress detail input layout issue

* changelog

* fix VideoPress clipboard button layout issue

* bump My Jetpack version

* CLI: Cleanup release command next messages (#28041)

* Add new i18n fonts and rename them via filter (#27854)

* VideoPress: improve blocks building process (#28025)

* Add copy-webpack-plugin dep

* changelog

* re-organize building blocks folders

* copy block.json files when building

* point to buld when registering blocks

* fix file paths in video block def

* fix file paths Video Chapters block def

* exclude src/client files in prod

* Copy extensions index file JSON file to the build directory

* Reference correct extensions index JSON file

* use Assets lib to regiters extensions

* refactor extensions. Add helpers.

* move copy-webpack-plugin to dev deps

* load scritps to handle extendd blocks

* debug() unregistering core/embed videopress

* update deps

Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>

* Contact Form: Update child blocks icons (#28047)

* Update Form child blocks icons

* changelog

* Admin page: avoid warning when disconnecting Jetpack (#28003)

* Payment blocks: Fix upgrade nudge in the site editor (#27909)

* Payment blocks: Fix upgrade nudge in the site editor.

* Pass only "ref" from blockProps

* VideoPress: remove video editor.js unused file (#28060)

* remove unused editor.js file

* changelog

* Revue block: Part 1 of retiring the block - adding a placeholder message. (#27961)

* Subscribe Block: ensure custom button spacing is correct (#28057)

* Shortcode: Update Mixcloud oEmbed url and fix up typos (#28061)

Co-authored-by: Derek Smart <smart@automattic.com>

* Add review prompt for social plugin (#27917)

* Initial placement of review prompt in post publish panel

* Add ability to dismiss review prompt

* Update the permission check function name

* changelog

* Update conditions for showing the review prompt

* Fix project versions

* Add analytics to review prompt

* Swap out typed URL

* Conditionally load the connection state

* Updates based on feedback, performance improvements

* Fix connection package JS error

* move analytics functionality into an existing hook, fix logic error

* changelog

* Refine conditions for when the review request should show

* Allow review prompt to be disabled via filter, add check for post already shared

* Change method for checking whether post is already shared

* changelog

* Fix meta default for already shared

* version management

* Clean up Image-Guide (#28053)

* Add the image-guide to exclusions from the Jetpack and packages list

* Mark it as non-private for npm publishing

* Remove eslint file, to let the standard monorepo rules in the door

* changelog

* Clean up linting complaints

Co-authored-by: Mark George <thingalon@gmail.com>

* Boost/ignore analytics failures (#28051)

* Do not allow analytics errors to break other things

* changelog

Co-authored-by: Mark George <thingalon@gmail.com>

* Boost: Add image guide tracks (#28056)

* Track image-guide ui toggle

* Track image guide images and page

Signed-off-by: Adnan Haque <adnan007.id@gmail.com>

* Add initial state and page impact tracking to image guide

Signed-off-by: Adnan Haque <adnan007.id@gmail.com>

* changelog

* Fix build issues

Signed-off-by: Adnan Haque <adnan007.id@gmail.com>

* Revert "Add review prompt for social plugin (#27917)" (#28066)

This reverts commit 09d067639a48fbdf29389d95fe2bb876ee8c3ba9.

* Admin: use minimzed CSS for stats widget (#27788)

* Sync: Add an option key to WooCommerce whitelist (#27988)

* [not verified] Sync: Add more option keys to Woo whitelist

These are some additional options for WooCommerce that should probably
be synced

Co-authored-by: Brandon Kraft <public@brandonkraft.com>

* Stats: Update dependencies for stats admin bundle (#28065)

* [not verified] load dependencies for stats bundle

* [not verified] changelog

* fix versions

* Blocks: iterate on the design of the Promote post-publish panel (#27960)

* Blocks: add a new Analytics hook

This should be used in the Jetpack plugin instead of the currently hardcoded analytics pulled from the React dashboard.
We can then leverage it in other plugins as well.

* Fix imports

* Get connection data from conn. package instead of Jetpack data

This should prove easier to use by other standalone plugins, which do not have the same data passed to JavaScript via Jetpack_Editor_Initial_State.
Grabbing the data from the connection package should consequently be easier.

* Expand docs

* Blocks: switch to new shared, extracted implementation of Tracks

This is a follow-up to #27937.

* Blocks: update Promote button in post-publish panel

Let's turn the simple link into a button so it is more visible. This also follows the pattern already in use in the Anchor post-publish panel.

This also updates tracking for this button click to use the new tool introduced in #27937

* Update the icon

See https://github.com/Automattic/jetpack/pull/27960#issuecomment-1362793951

* Rename tracks event

Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>
Co-authored-by: Derek Smart <smart@automattic.com>

* Blaze: move plugin out of the Jetpack plugin and into package (#28062)

* Blocks: add a new Analytics hook

This should be used in the Jetpack plugin instead of the currently hardcoded analytics pulled from the React dashboard.
We can then leverage it in other plugins as well.

* Fix imports

* Get connection data from conn. package instead of Jetpack data

This should prove easier to use by other standalone plugins, which do not have the same data passed to JavaScript via Jetpack_Editor_Initial_State.
Grabbing the data from the connection package should consequently be easier.

* Expand docs

* Blocks: switch to new shared, extracted implementation of Tracks

This is a follow-up to #27937.

* Blocks: update Promote button in post-publish panel

Let's turn the simple link into a button so it is more visible. This also follows the pattern already in use in the Anchor post-publish panel.

This also updates tracking for this button click to use the new tool introduced in #27937

* Update the icon

See https://github.com/Automattic/jetpack/pull/27960#issuecomment-1362793951

* Blaze: move plugin out of the Jetpack plugin and into package

This is a follow-up to the following PRs:

- #27928 introducing the panel
- #27960 changing the panel's design.

This commit brings in:
- The panel's code from the Jetpack plugin.
    - We change the way we register the panel, so it can be registered outside of the Jetpack plugin; it shouldn't rely on the list of enabled extensions that is managed by the Jetpack plugin.
- The tooling to build the JavaScript bundle in the package.
- The dependencies for it.
- We then enqueue that bundle in the block editor.

* Fix build errors: process sass

* Add watch command for building the client.

* update lock files

Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>

* Site Settings API: Expose `show_on_front` and `page_on_front` options (#28042)

* [not verified] Site Settings API: expose  and  options

* [not verified] changelog

* [not verified] Improve validation for updating of both option values

* [not verified] Remove invalid update case

* [not verified] Add test case

* Add  settings api test case

* Add options to test endpoint

* WAF: Check if rule files exist before requiring them (#28050)

* Promote Posts: Rename package to Blaze (#28073)

* Promote Posts: Rename to Blaze

* changelog

* update composer dependency in Jetpack

* remove testing code

* Rename descriptions too

* Uppercase, and bump things for new repos

* Update lock

* Fix bug label

* try composer lock again

* Apply suggestions from code review

Co-authored-by: Karen Attfield <karenlattfield@gmail.com>

* fix linting errors caused by committing suggestions from review.

Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>
Co-authored-by: Karen Attfield <karenlattfield@gmail.com>

* Contact Form: Adjust Form placeholder colors (#28044)

* Protect: Hide WAF screen on unsupported platforms (#27939)

* My Jetpack: Move VaultPress Backup out of hybrid concept (#28022)

* My Jetpack: Move Social out of hybrid concept (#28074)

* Image guide: Updating the package version and changelogger (#28071)

* Updating the image guide package version and changelogger

* Updating package.json version

* Image Guide: Fix image guide package (#28080)

* Remove prepare script

* changelog

* Add a release branch prefix to independently release image-guide

* Image Guide: Remove release branch prefix (#28081)

* Remove imageg-guide branch prefix

* changelog

* Image Guide: Update versions (#28082)

* Update changelog

* Remove release branch prefix from image-guide

* Bump version number

* Init 11.7-a.10 plus changelogs (#28086)

* Jetpack 11.7-a.9: Updating the Jetpack plugin changelog and readme. (#28089)

* VideoPress: Shortcode adjustments (#28083)

* add muted attribute to video shortcode override

* fix active standalone plugin check

* add aspect ratio and default cover as false

* fix cover attribute on jetpack videopress player

* disable cover for video shortcode override

* changelog

* bump version

* My Jetpack: Move VideoPress out of hybrid concept (#28097)

* My Jetpack: Move VideoPress extends from Hybrid to Product

* My Jetpack: Add tests for VideoPress Product

* Changelog

* Bump version

* Rollback phpcsstandards updates to fix trunk test failures. (#28099)

* Rolled back PHPCS utils updates that cause breaking tests.

* Changelog.

* Project versions.

* Fix `Linting / ESLint (non-excluded files only)` test (#28103)

* Revert "Premium Content / Subscriptions: introduce Paid Newsletter functionality (#28102)

* Revert "Premium Content / Subscriptions: introduce Paid Newsletter functionality (#26417)"

This reverts commit ab1665d12cc8baaff91e3dffa2b5089762674f7e.

* changelog

* My Jetpack: Manage Connection modal layout fix (#28101)

* fix box-sizing on manage connections modal footer

* changelog

* fix versions

Co-authored-by: Alvaro Vega <alvaro.vega@automattic.com>

* Creating new release (#28110)

* [Package] My Jetpack: Add connection support + manage links and append Owner word to connection owner (#28095)

* [not verified] Add learn more and manage links

* [not verified] changelog

* [not verified] Append (Owner) to the name when owned by user

* [not verified] Update tests

* [not verified] Remove empty space if not owner, modify logic for space after connectionInfoText

* Blaze: Enable in Jetpack by default (#28077)

Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>
Co-authored-by: Karen Attfield <karenlattfield@gmail.com>

* Protect: Add scan progress bar (#27171)

* Initialize add/scan-in-protect feature branch

* Protect: Formalize status, extension, and threat data with model classes (#25426)

* Protect: Update use of 'vulnerability' naming to more generic 'threat' convention (#25445)

* Protect: Update vulnerability list designs (#26448)

* Rebase to add/scan-in-protect - Implement Protect threat item CTA design changes, changelog entry

* Minor spacing adjustment

* Protect: Update footer designs (#26399)

* Rebase to add/scan-in-protect - Implement Protect admin footer designs, changelog entry

* Minor spacing adjustment

* Reduce spacing to match designs

* Add siteSuffix to jetpackProtectInitialState and update footer links accordingly

* Add placeholder and TODO comment for remaining missing Cloud learn more link

* Remove Learn more button from Cloud product section until an appropriate link is available

* Protect: Update pricing page (#26210)

* Changelog entry

* Update Admin component

* Update Interstitial component

* Add PricingTable component

* Minor spacing adjustment

* Remove feature item tooltip icon and popover details until we have content available for them

* Introduce a Plan class for extracting plan data from the WPcom public API, to ensure we can access pricing details regardless of cxn status

* Protect: Add Scan API as the data source for users with a scan plan (#26119)

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* Fix sample vulnerability type

* changelog

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* [not verified] Fix sample vulnerability type

* [not verified] changelog

* [not verified] Update use of 'vulnerability' naming to more generic 'threat' convention

* [not verified] Update additional uses of 'vulnerability' naming to more generic 'threat' convention

* [not verified] changelog

* [not verified] Fix property name capitalization

* [not verified] Add Scan API as a data source in Protect

* Default checked to true for Scan API results, for now

* Fix PHPDoc for class property

* changelogs

* Move cache functionality to parent Status class, and cache Scan_Status API calls

* Fix implementation of Jetpack_Plan class

* Ensure Jetpack_Plan class exists before calling static supports() method

* Add REST API endpoint to remotely clear the Scan API cache

* Reduce cache duration to 5 minutes for the Scan API data source

* Add scan results to Protect debug helper module

* Fix: filename threat property name

* Fix: add missing threat count incrementations

* Fix: check for filename instead of file property

* Restore use of constants instead of class properties

* add permission callback for Protect cache clear endpoint

* Fix tests

* Fix test serialization issue

* Add serialization to the other status class just in case

* Fix linting error

* Fix linting violations

* Protect: Add support for displaying file and database threats (#26418)

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* Add file and database threats to the Protect UI

* Changelog

* Add overflow-x to filename class

* Add overflow-x to .threat-filename

* Update styles.module.scss

Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>

* Protect: add the ability to ignore threats for paid plan users (#26571)

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* Add file and database threats to the Protect UI

* Changelog

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* [not verified] Add file and database threats to the Protect UI

* [not verified] Changelog

* [not verified] Add the ability to ignore threats to Protect

* Update ignore threat warning message

* Changelog

* Add permission callback to ignore threat endpoint

Co-authored-by: Miguel Xavier Penha Neto <miguel.neto@automattic.com>

Co-authored-by: Miguel Xavier Penha Neto <miguel.neto@automattic.com>
Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>

* Protect: Update product upgrade (#26570)

* Update Protect upgrade product from Security Bundle to Scan and add temporary footer content

* Changelog entry

* Update new threat item CTA to use Scan as upgrade product

* Update Interstitial stories mock data from securityBundle to jetpackScan

* Update remaining securityBundle instances

* Update new pricing page to use Scan as upgrade product

* Update remaining securityBundle instances

* Update Plan class default to use Scan

* Use Plan class in primary Jetpack_Protect class

* Add AdminSectionHero component to pricing page

* Update ThreatsNavigation component to use Scan in hasRequiredPlan check

* Add temporary conditional logic for threat item CTA display

* Use Scan class has_required_plan() method to accurately detect the presence of the Scan module

* Protect: Add paid UI using Scan API data source (#26533)

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* Fix sample vulnerability type

* changelog

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* [not verified] Fix sample vulnerability type

* [not verified] changelog

* [not verified] Update use of 'vulnerability' naming to more generic 'threat' convention

* [not verified] Update additional uses of 'vulnerability' naming to more generic 'threat' convention

* [not verified] changelog

* [not verified] Fix property name capitalization

* [not verified] Add Scan API as a data source in Protect

* Default checked to true for Scan API results, for now

* Fix PHPDoc for class property

* changelogs

* Move cache functionality to parent Status class, and cache Scan_Status API calls

* Fix implementation of Jetpack_Plan class

* Ensure Jetpack_Plan class exists before calling static supports() method

* Add REST API endpoint to remotely clear the Scan API cache

* Reduce cache duration to 5 minutes for the Scan API data source

* Add scan results to Protect debug helper module

* Fix: filename threat property name

* Fix: add missing threat count incrementations

* Fix: check for filename instead of file property

* Introduce separation between free and paid threats-lists components

* Update ThreatsList components to apply conditional UI changes based on plan requirements

* Correct path for useThreatsList import

* Reverse logic on required plan check

* Changelog entry

* Optimize ThreatSeverityBadge component functions

* Resolve build issues with optimizations breaking translations

* Update sprintf comment accordingly

* Update PaidList to include source property

* Restore use of constants instead of class properties

* Hook up Scan API data source and fix minor styling and wording issues

* Display fixer buttons conditionally based on fixable property presence, update Auto fix all button to display fixableCount

* Fix Icon span display in mobile when threat is not fixable

* add permission callback for Protect cache clear endpoint

* Update threat header and footer class names

* Update button spacing

* Fix tests

* Add ThreatSeverityBadge component to ignore threat modal

* Improve naming consistency

* Fix threats-list component styling issues

* Add and import dedicated stylesheet for free-accordion component

* Remove addressed to-do comments

* Remove unneeded free-accordion component styles

* Use flexbox for threat list header (#26860)

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Protect: Add ability to manually enqueue scans (#26793)

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* Fix sample vulnerability type

* changelog

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* [not verified] Fix sample vulnerability type

* [not verified] changelog

* [not verified] Update use of 'vulnerability' naming to more generic 'threat' convention

* [not verified] Update additional uses of 'vulnerability' naming to more generic 'threat' convention

* [not verified] changelog

* [not verified] Fix property name capitalization

* [not verified] Add Scan API as a data source in Protect

* Default checked to true for Scan API results, for now

* Fix PHPDoc for class property

* changelogs

* Move cache functionality to parent Status class, and cache Scan_Status API calls

* Fix implementation of Jetpack_Plan class

* Ensure Jetpack_Plan class exists before calling static supports() method

* Add REST API endpoint to remotely clear the Scan API cache

* Reduce cache duration to 5 minutes for the Scan API data source

* Add scan results to Protect debug helper module

* Fix: filename threat property name

* Fix: add missing threat count incrementations

* Fix: check for filename instead of file property

* Introduce separation between free and paid threats-lists components

* Update ThreatsList components to apply conditional UI changes based on plan requirements

* Correct path for useThreatsList import

* Reverse logic on required plan check

* Changelog entry

* Optimize ThreatSeverityBadge component functions

* Resolve build issues with optimizations breaking translations

* Update sprintf comment accordingly

* Update PaidList to include source property

* Restore use of constants instead of class properties

* Hook up Scan API data source and fix minor styling and wording issues

* Display fixer buttons conditionally based on fixable property presence, update Auto fix all button to display fixableCount

* Fix Icon span display in mobile when threat is not fixable

* add permission callback for Protect cache clear endpoint

* Update threat header and footer class names

* Update button spacing

* Fix tests

* Add ThreatSeverityBadge component to ignore threat modal

* Improve naming consistency

* Add manual scan functionality

* Changelogger entry

* Update Client wpcom request to blog specific method and remove scan modal

* Fix manualScan link CSS sudo class effects

* Add a scanIsEnqueuing state for the isLoading property of the Scan now button

* Change up manual scan action flow - click, scan enqueuing state true, success notice, refresh status, catch error, scan enqueuing state false

* Fix threats-list component styling issues

* Add and import dedicated stylesheet for free-accordion component

* Remove addressed to-do comments

* Remove unneeded free-accordion component styles

* Use flexbox for threat list header (#26860)

* Address review feedback

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Protect: Add ability to auto-fix threats (#26686)

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* Fix sample vulnerability type

* changelog

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* [not verified] Fix sample vulnerability type

* [not verified] changelog

* [not verified] Update use of 'vulnerability' naming to more generic 'threat' convention

* [not verified] Update additional uses of 'vulnerability' naming to more generic 'threat' convention

* [not verified] changelog

* [not verified] Fix property name capitalization

* [not verified] Add Scan API as a data source in Protect

* Default checked to true for Scan API results, for now

* Fix PHPDoc for class property

* changelogs

* Move cache functionality to parent Status class, and cache Scan_Status API calls

* Fix implementation of Jetpack_Plan class

* Ensure Jetpack_Plan class exists before calling static supports() method

* Add REST API endpoint to remotely clear the Scan API cache

* Reduce cache duration to 5 minutes for the Scan API data source

* Add scan results to Protect debug helper module

* Fix: filename threat property name

* Fix: add missing threat count incrementations

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* Add file and database threats to the Protect UI

* Changelog

* Fix: check for filename instead of file property

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* [not verified] Add file and database threats to the Protect UI

* [not verified] Changelog

* Introduce separation between free and paid threats-lists components

* Update ThreatsList components to apply conditional UI changes based on plan requirements

* Correct path for useThreatsList import

* Reverse logic on required plan check

* Changelog entry

* Optimize ThreatSeverityBadge component functions

* Resolve build issues with optimizations breaking translations

* Update sprintf comment accordingly

* Update PaidList to include source property

* Restore use of constants instead of class properties

* Hook up Scan API data source and fix minor styling and wording issues

* Display fixer buttons conditionally based on fixable property presence, update Auto fix all button to display fixableCount

* Fix Icon span display in mobile when threat is not fixable

* add permission callback for Protect cache clear endpoint

* [not verified] Add the ability to ignore threats to Protect

* Update threat header and footer class names

* Update button spacing

* Fix tests

* Update ignore threat warning message

* Changelog

* Fix test serialization issue

* Add serialization to the other status class just in case

* Fix linting error

* Fix linting violations

* Protect: Add support for displaying file and database threats (#26418)

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* Add file and database threats to the Protect UI

* Changelog

* Add overflow-x to filename class

* Add overflow-x to .threat-filename

* Update styles.module.scss

Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>

* Add permission callback to ignore threat endpoint

* [not verified] Add initial server side functionality for fixing threats

* [not verified] Add ability to fix individual threats on the front end

* Add permission callback for fix threat api

* Fix fix_threat action

* Add ThreatSeverityBadge component to ignore threat modal

* Improve naming consistency

* Show modal asking for credentials when trying to fix if no credential is set

* Implement fix all modal

* Fix styling

* Remove duplicated siteSuffix

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Return false if response parsing fails

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Fix wrong docblock

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Add second parameter to useEffect dependency array

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Change return to boolean for consistency sake

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Fix syntax

* Fix passing of threatList props to modal, and add JSDoc block for setModal action

* Fix error from resolving merge conflicts

* Remove duplicate fixer and scan buttons left over from merge conflict

* Add credentials loading handling and indicator to fix all threats modal.

* Move credentials checks into a reusable component

* Poll for fixer status after triggering an auto-fix

* use async promise for fixer status check

* Fix missing dispatch call

* Decode response from fix threats endpoint

* Adjust styling of threat fix headers

* Add API endpoint to send a GET request to WPCOM fixer endpoint

* Use new fix-threats-status endpoint in getFixThreatsStatus()

* Fix button position in case of long threat header title

* Fix PHPCS linting issues

* Do not resolve in progress threats promise to prevent status refresh before threats are fixed

* Include 'unavailable' credentials status in the credentials needed check

* Add scan button to summary when no threat list is shown

* Add mobile styles for scan button in summary

* Remove use of data param from GET apiFetch request

* SCSS syntax error fix

* Fix button width on desktop

* Add threat IDs via the query string when sending a GET request

* Add success message when threats have been fixed

* Remove hard-coded threat count amount

* Clear the cache after checking for threat fix status

* Add a ?hard-refresh option to the status API endpoint, so the app can request fresh data

* [not verified] Revert "Add a ?hard-refresh option to the status API endpoint, so the app can request fresh data"

This reverts commit 94bd744308fa6dd3a5d6fe3739be90e848f9b0f8.

* Fix button styles

* Poll status until scanning begins after triggering a manual scan

* Poll credentials as long as the credentials-needed-modal is open

* Poll for credentials while the credentials-needed modal is open

* Poll for credentials while the credentials-needed modal is open

* Add key prop to mapped ThreatFixHeader

* Validate that all threats were fixed in getFixThreatsStatus()

* Move useCredentialState() hook into the AdminPage so it doesn't run when disconnected

* Hard reload (no cache) status when polling until scanning

* Hard reload (no cache) status when polling

* Remove 'in_progress' from scanning check, as that is only applicable to the Protect Status data source

* Show loading spinner when an auto-fix is in progress

Co-authored-by: dkmyta <dkmyta10@gmail.com>
Co-authored-by: Miguel Xavier Penha Neto <miguel.neto@automattic.com>
Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>

* Clear both protect and scan cache on ?hard_refresh status requests

* Fix credentials polling

* Add READMEs for CredentialsGate, Modal, and Notice components

* Continue polling status until lastChecked has a value

* Protect: Add user connection gate for applicable actions (#26909)

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* Fix sample vulnerability type

* changelog

* [not verified] Add data models for the status and its related extensions and threats

* [not verified] changelog

* [not verified] Fix: use core information from status when generating

* [not verified] Remove extension property from Threat_Model

* [not verified] Remove 'fixer' property from Threat_Model and update 'fixable' property to include fixer information

* [not verified] Minor adjustments to Status_Model properties

* [not verified] Add tests for extension and threat models

* [not verified] Make set_vulnerabilities a public method so it can be useful in implementation

* [not verified] Fix sample vulnerability type

* [not verified] changelog

* [not verified] Update use of 'vulnerability' naming to more generic 'threat' convention

* [not verified] Update additional uses of 'vulnerability' naming to more generic 'threat' convention

* [not verified] changelog

* [not verified] Fix property name capitalization

* [not verified] Add Scan API as a data source in Protect

* Default checked to true for Scan API results, for now

* Fix PHPDoc for class property

* changelogs

* Move cache functionality to parent Status class, and cache Scan_Status API calls

* Fix implementation of Jetpack_Plan class

* Ensure Jetpack_Plan class exists before calling static supports() method

* Add REST API endpoint to remotely clear the Scan API cache

* Reduce cache duration to 5 minutes for the Scan API data source

* Add scan results to Protect debug helper module

* Fix: filename threat property name

* Fix: add missing threat count incrementations

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* Add file and database threats to the Protect UI

* Changelog

* Fix: check for filename instead of file property

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* [not verified] Add file and database threats to the Protect UI

* [not verified] Changelog

* Introduce separation between free and paid threats-lists components

* Update ThreatsList components to apply conditional UI changes based on plan requirements

* Correct path for useThreatsList import

* Reverse logic on required plan check

* Changelog entry

* Optimize ThreatSeverityBadge component functions

* Resolve build issues with optimizations breaking translations

* Update sprintf comment accordingly

* Update PaidList to include source property

* Restore use of constants instead of class properties

* Hook up Scan API data source and fix minor styling and wording issues

* Display fixer buttons conditionally based on fixable property presence, update Auto fix all button to display fixableCount

* Fix Icon span display in mobile when threat is not fixable

* add permission callback for Protect cache clear endpoint

* [not verified] Add the ability to ignore threats to Protect

* Update threat header and footer class names

* Update button spacing

* Fix tests

* Update ignore threat warning message

* Changelog

* Fix test serialization issue

* Add serialization to the other status class just in case

* Fix linting error

* Fix linting violations

* Protect: Add support for displaying file and database threats (#26418)

* [not verified] Add DiffViewer component

* [not verified] Add MarkedLines component

* Add file and database threats to the Protect UI

* Changelog

* Add overflow-x to filename class

* Add overflow-x to .threat-filename

* Update styles.module.scss

Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>

* Add permission callback to ignore threat endpoint

* [not verified] Add initial server side functionality for fixing threats

* [not verified] Add ability to fix individual threats on the front end

* Add permission callback for fix threat api

* Fix fix_threat action

* Add ThreatSeverityBadge component to ignore threat modal

* Improve naming consistency

* Show modal asking for credentials when trying to fix if no credential is set

* Implement fix all modal

* Fix styling

* Remove duplicated siteSuffix

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Return false if response parsing fails

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Fix wrong docblock

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Add second parameter to useEffect dependency array

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Change return to boolean for consistency sake

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Fix syntax

* Fix passing of threatList props to modal, and add JSDoc block for setModal action

* Fix error from resolving merge conflicts

* Remove duplicate fixer and scan buttons left over from merge conflict

* Add credentials loading handling and indicator to fix all threats modal.

* Move credentials checks into a reusable component

* Poll for fixer status after triggering an auto-fix

* use async promise for fixer status check

* Fix missing dispatch call

* Decode response from fix threats endpoint

* Adjust styling of threat fix headers

* Add API endpoint to send a GET request to WPCOM fixer endpoint

* Use new fix-threats-status endpoint in getFixThreatsStatus()

* Fix button position in case of long threat header title

* Fix PHPCS linting issues

* Do not resolve in progress threats promise to prevent status refresh before threats are fixed

* Include 'unavailable' credentials status in the credentials needed check

* Add scan button to summary when no threat list is shown

* Add mobile styles for scan button in summary

* Remove use of data param from GET apiFetch request

* SCSS syntax error fix

* Fix button width on desktop

* Add threat IDs via the query string when sending a GET request

* Add success message when threats have been fixed

* Remove hard-coded threat count amount

* Clear the cache after checking for threat fix status

* Add a ?hard-refresh option to the status API endpoint, so the app can request fresh data

* [not verified] Revert "Add a ?hard-refresh option to the status API endpoint, so the app can request fresh data"

This reverts commit 94bd744308fa6dd3a5d6fe3739be90e848f9b0f8.

* Fix button styles

* Poll status until scanning begins after triggering a manual scan

* Poll credentials as long as the credentials-needed-modal is open

* Poll for credentials while the credentials-needed modal is open

* Poll for credentials while the credentials-needed modal is open

* Introduce and apply a user connection gate to all actions that require it

* Changelogger entry

* Add key prop to mapped ThreatFixHeader

* Validate that all threats were fixed in getFixThreatsStatus()

* Move useCredentialState() hook into the AdminPage so it doesn't run when disconnected

* Hard reload (no cache) status when polling until scanning

* Hard reload (no cache) status when polling

* Remove 'in_progress' from scanning check, as that is only applicable to the Protect Status data source

* Show loading spinner when an auto-fix is in progress

* Update key prop for mapped ThreatFixHeader

* Remove unused CSS

* Fix regression in wording

Co-authored-by: Nate Weller <nate.weller@automattic.com>
Co-authored-by: Miguel Xavier Penha Neto <miguel.neto@automattic.com>
Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>

* Protect: Update "Don't worry about a thing" messaging when no threats are known (#26954)

* Change credentials check to use the /scan endpoint and verify the credentials array (#26944)

* Change credentials check to use the /scan endpoint and verify the credentials array

* Update logic in the credentials-needed-modal

* Fix names and change default selector type

* Ensure credentials array is not empty when validating if credentials exist

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Protect: Sync user data (#26966)

* Include the Users sync module in the initial sync

* Changelogger entry

* Add siteProductAvailabilityHandler() to checkout flow hook

* Protect: Calculate threat counts on the client side (#27011)

* Add action for clearing notices

* Protect: Check for required plan after site connection during upgrade flow (#27031)

* Add siteProductAvailabilityHandler() to checkout flow hook
* Fix redirect url used by useProductCheckoutWorkflow

* Add SCAN_STARTED action and update manual scan flow

* Remove unneeded status polling function, and update state status property

* Remove lastChecked property to immediately trigger in-progress display

* Rename action for better understanding, add timeouts so success notice is rendered and dismissed before further actions are taken

* Add action for clearing notices (#27036)

* Adjust START_SCAN_OPTIMISTICALLY action to no longer change lastChecked prop, and update in-progress display conditional to additionally consider status

* Use null as a default value for credentials so we can determine if they have been fetched yet (#27074)

* Remove outdated TO DO comment

* Introduce a current scan progress bar within the in-progress display

* Protect: Refresh plan data after returning from checkout (#27041)

* Protect: Improve manual scan flow (#27042)

* Fix build string literal translation optimization issues

* Manually reset automatic changes to classnames and prop-types package versions set in main pnpm-lock.yaml

* Update comments and CSS class names

* Update ProgressBar component import path

* Use src directory for ProgressBar component import

* Revert previous changes to component import path

* Protect: Update and use ThemeProvider colors instead of hex values (#27174)

* Abandon @automattic/components ProgressBar in favor of a custom Protect component

* Add progress transition animation

* Protect: Use --spacing-base property for layout and positioning styles (#27175)

* Update pnpm-lock.yaml

* Add component stories

* Add aria attributes for accessibility and set upper value limitations

* Update ProtectProgressBar component property names

* Generalize component naming

* Add spacing variable comments

* Delete add-protect-theme-provider-colors

* Delete add-protect-model-classes

* Delete add-ignore-threats

* Delete add-protect-file-database-threats

* Delete add-protect-manual-scans

* Delete add-protect-model-classes

* Delete add-protect-paid-ui

* Delete add-protect-scan-api-data-source

* Delete add-protect-sync-user-data

* Delete add-protect-user-connection-gate

* Delete update-protect-footer-designs

* Delete update-protect-pricing-page

* Delete update-protect-product-upgrade

* Delete update-protect-vulnerability-list-cta

* Delete update-protect-vulnerability-vs-threat-naming

* Remove outdated comment

* Fix typo

* Update ProgressBar check to consider null

Co-authored-by: Nate Weller <nate.weller@automattic.com>

* Fix errors

* Remove conditional spinner text

* Add and apply setStatusProgress action within useStatusPolling when a scan remains scheduled or in progress

* Update startScanOptimistically action to set currentProgress to 0 so progress bar renders immediately

* changelog

* Fix project version

* Minor adjustments to Progress Bar component

Co-authored-by: Nate Weller <nate.weller@automattic.com>
Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>
Co-authored-by: Miguel Xavier Penha Neto <miguel.neto@automattic.com>

* Stats: Make Odyssey Stats toggle visible for all (#28105)

* My Jetpack: modify secondary admin view (#28114)

* Add connection owner line and remove site connection manage link

* changelog

* update tests

* remove unused onclick and actiontext

* My Jetpack: Move Search out of hybrid concept (#28113)

* My Jetpack: Move search out of hybrid and include tests

* My Jetpack: Mark Hybrid_Product class as deprecated

* changelog

* My Jetpack: Update comment on hybrid_product

* Revert Revert Add review prompt for social plugin (#28072)

Co-authored-by: CodeyGuyDylan <dylan.munson@automattic.com>

* Revert "Add new i18n fonts and rename them via filter" (#28122)

Co-authored-by: Samiff <samiff@users.noreply.github.com>

* Jetpack 11.7 testing instructions (#28098)

Co-authored-by: Yaroslav Kukharuk <i.kukharuk@gmail.com>

* Jetpack/Backup/Social: Init new cycles and backport changelogs (#28136)

* Backup: Updating Backup readme for 1.4.3-beta release (#28137)

* Social: Updating Social readme for 1.6.0-beta release (#28138)

* CLI: Update Jetpack Package Generate Command (#27918)

Co-authored-by: Samiff <samiff@users.noreply.github.com>

* WAF: Move rule files directory to the WAF wp-content directory (#28049)

* Protect: Remove unused productData state variable (#28092)

* Protect: Fix success message grammar when only one threat was fixed (#28091)

* Site Settings API: Expose `page_for_posts` option (#28096)

* [not verified] Settings API: Expose 'page_for_posts' option

* [not verified] changelog

* Blaze: Only show promote in post list for published posts. (#28139)

* Blaze: Only show promote post row on published posts.

* changelog

* fix changelog version

Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>

* VideoPress: re implement useResumableUploader(). Avoid unneeded jwt-upload request (#28135)

* [not verified] initial refactoring

* [not verified] rename data with uploadingData

* [not verified] types

* [not verified] populate data with id, guid and src once uploaded

* [not verified] expose video media data

* [not verified] check isDone when onProgress

* [not verified] fix checking initial status

* [not verified] add upload-jwt option to getMediaToken lib

* [not verified] use getMediaToken(). Get rid of getJWT()

* [not verified] enum uploading status

* [not verified] better error hanlding when getting media token

* improve useResumableUploader() using async/await

* [not verified] simplify getting upload tokens

* [not verified] rollback using typs instead of enum for status

* [not verified] tidy types. set resumable object actions

* [not verified] videopress-upload use useResumableUploader() hook

* [not verified] fix GUID import

* [not verified] fix useVideoData() types

* [not verified] changelog

* rename types for VideoId and VideoGuid

* fix default value of media data

* move and create resumableFileUploader() helper

* VideoGUID > VideoGuid (do not change on this PR)

* rollbackl usinf debug() in getMediaToken()

* update changelog

* Update projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/index.js

Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>

* fix importing resumable hook. Fix var typo

* bump new version

* Update projects/packages/videopress/src/client/hooks/use-resumable-uploader/index.ts

Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>

* Update projects/packages/videopress/src/client/hooks/use-resumable-uploader/index.ts

Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>

* Update projects/packages/videopress/src/client/hooks/use-resumable-uploader/index.ts

Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>

* fix var name typo bug

Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>

* Releasing new version of Blaze package (#28148)

* Fix export modal connect link (#28147)

* oEmbed: Add iCloud Keynote URL scheme (#28067)

* [not verified] oEmbed: Add new URL scheme for iCloud Keynote

* [not verified] changelog

* [not verified] Shortcodes: Increase timeout for new Apple oEmbed to 10 seconds

* [not verified] Shortcodes: Removed oEmbed todo comment to just above filter call

* [not verified] Shortcodes: Add test for new http request timeout for iCloud embed

* Shortcodes: Add test for new http request timeout for iCloud embed

* Jetpack: Fix export modal nonces (#28152)

* Blaze: update wording for the Post list link (#28155)

Co-authored-by: Derek Smart <smart@automattic.com>

* Remove Jetpack Blocks section from At a Glance page (#28153)

* Remove Jetpack Blocks section from At A Glance

* changelog

* VideoPress: Fix minors TS issues in use video data hooks (#28143)

* [not verified] ts enhancements in useSyncMedia hooks

* [not verified] improve readme doc

* changelog

* Licensing: Fix issue in activate license key button not working. (#28014)

* Remove useEffect in ActivationScreen component that sets the JP Rest API root and nonce.

* changelog

* Bump Licensing package version.

* Releasing second new version of Blaze package during 11.7 beta period (#28161)

* VideoPress: update libs used to upload a video in the dashboard context (#28163)

* update libs to upload a video in dashboard

* changelog

* rename instance to handle uploading file

* VideoPress: add Replace control video block (#28162)

* [not verified] Add replace control - first approach

* [not verified] connect replace control with uploader component

* [not verified] register ajax admin types

* fix getting guid when selecting from library

* minor debug() log changes

* export AdminAjaxQueryAttachmentsResponseItemProps

* changelog

* Update dependency @testing-library/dom to v8.19.1 (#28128)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Update dependency @types/jest to v29.2.5 (#28129)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

Signed-off-by: Adnan Haque <adnan007.id@gmail.com>
Co-authored-by: Adnan Haque <eAdnan007@users.noreply.github.com>
Co-authored-by: Mark George <thingalon@gmail.com>
Co-authored-by: Artur Piszek <artur.piszek@automattic.com>
Co-authored-by: brent <brent@n3f.com>
Co-authored-by: Fabien MILLERAND <fab@millerf.com>
Co-authored-by: Brent Nef <nef@a8c.com>
Co-authored-by: Matías Ventura <mv@matiasventura.com>
Co-authored-by: Matias Ventura <matias@automattic.com>
Co-authored-by: MILLER/F <millerf@automattic.com>
Co-authored-by: Kuba Birecki <kuba.birecki@crystalplanet.io>
Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>
Co-authored-by: Brandon Kraft <public@brandonkraft.com>
Co-authored-by: thingalon <mark@thingalon.com>
Co-authored-by: Gabriel Demichelis <gabrieldemichelis@gmail.com>
Co-authored-by: Candy Tsai <candy02058912@gmail.com>
Co-authored-by: valterlorran <valterlorran@hotmail.com>
Co-authored-by: Valter Lorran <valter.lorran@automattic.com>
Co-authored-by: jcheringer <jcheringer@users.noreply.github.com>
Co-authored-by: Karen Attfield <karenlattfield@gmail.com>
Co-authored-by: Christian Gastrell <cgastrell@gmail.com>
Co-authored-by: Vedanshu Jain <vedanshu.jain.2012@gmail.com>
Co-authored-by: Douglas Henri <dhasilva@users.noreply.github.com>
Co-authored-by: Derek Smart <dsmart@dsmart-mbp.lan>
Co-authored-by: Siobhan Bamber <siobhan@automattic.com>
Co-authored-by: Damián Suárez <rdsuarez@gmail.com>
Co-authored-by: Steve D <33553323+sdixon194@users.noreply.github.com>
Co-authored-by: Mikael Korpela <mikael@ihminen.org>
Co-authored-by: Luiz Kowalski <lhkowalski@gmail.com>
Co-authored-by: Bogdan Ungureanu <bogdanungureanu21@gmail.com>
Co-authored-by: Mat Clayton <mat@mixcloud.com>
Co-authored-by: Derek Smart <smart@automattic.com>
Co-authored-by: jboland88 <18016357+jboland88@users.noreply.github.com>
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
Co-authored-by: Jasper Kang <jasper.kang@automattic.com>
Co-authored-by: Maciej Grabowski <mashikag@users.noreply.github.com>
Co-authored-by: Nate Weller <nate.weller@automattic.com>
Co-authored-by: Renato Augusto Gama dos Santos <renato_0603@hotmail.com>
Co-authored-by: Igor Zinovyev <zinigor@gmail.com>
Co-authored-by: Dylan Munson <65001528+CodeyGuyDylan@users.noreply.github.com>
Co-authored-by: Alvaro Vega <alvaro.vega@automattic.com>
Co-authored-by: dkmyta <43220201+dkmyta@users.noreply.github.com>
Co-authored-by: Miguel Xavier Penha Neto <miguelxpn2@gmail.com>
Co-authored-by: Miguel Xavier Penha Neto <miguel.neto@automattic.com>
Co-authored-by: Jason Moon <4044428+jsnmoon@users.noreply.github.com>
Co-authored-by: CodeyGuyDylan <dylan.munson@automattic.com>
Co-authored-by: Samiff <samiff@users.noreply.github.com>
Co-authored-by: Yaroslav Kukharuk <i.kukharuk@gmail.com>
Co-authored-by: Eric Binnion <ericbinnion@gmail.com>
Co-authored-by: James Kenneth Guidaven <jkguidaven@gmail.com>
Co-authored-by: Calypso Bot <sysops+ghmatticbot@automattic.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Feature] Google Fonts [Focus] i18n Internationalization / i18n, adaptation to different languages [Plugin] Jetpack Issues about the Jetpack plugin. https://wordpress.org/plugins/jetpack/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants