Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Enable more style options for the Featured Product block #6181

Merged
merged 12 commits into from
Apr 12, 2022

Conversation

sunyatasattva
Copy link
Contributor

@sunyatasattva sunyatasattva commented Apr 1, 2022

This PR adds several style options to the Featured Product block. The current status of features supported and planned for each block can be seen in this spreadsheet.

This PR fixes the following problems:

  • Previously, the overlay of this block was actually rendered as a background. That meant inconsistent behavior in certain circumstances (like when an external padding was added). The overlay is now a separate DOM element.
  • Previously, the overlay color was controlled within the Color section of the sidebar, while its opacity was controlled elsewhere. This PR consolidates the controls under the Overlay section.
  • Previously, the featured product image was rendered as a background. This meant we could not correctly apply things like duotone filters (see Featured Product: Enable global style #5555). The image is now rendered as a separate DOM element.
  • Previously, the featured image was resized constraining it to the block size. This meant that the focal point could only be moved vertically. Now the focal point can be moved correctly (see below: Image fit options).
  • The resizable container handle was not completely visible (it would only show half a circle). This is fixed.
  • The resizable container handle was always visible regardless of the selected status of the block.
  • Previously, if the padding was large enough, the content could be pushed out of the container. Now the block behaves more like the Cover block, in the sense that the padding will scale the container up. This also means that the resizable control is subject to this rule, and can't resize the container lower than a certain minimum (determined by content and size). This is the same behavior as the Cover block.

This PR adds the following features:

  • Support for Duotone: users can now set a duotone filter on the featured product image.
  • Support for gradients: users can now set the overlay color as a gradient.
  • Support for padding: users can now set custom padding for the block. Which element to add the padding to was a bit unclear in the specs and was pending an answer here. While waiting for an answer, I decided to implement it in the way that made most sense to me after some experimentation, following the example of the Cover block. This allows the user to have creative solution like the one screenshotted below. Please @vivialice let me know if you are ok with this decision.
  • Image fit options: The user can now decide how should the image behave on the resizing of the component; it can either scale to always cover the entire container, or remain its original size.

Closes #6150

Screenshots

Screen Shot 2022-04-06 at 00 52 23

Notice how, thanks to the fixed focal point picker and how the padding was implemented, I can set my image on the top right and my text on the bottom left instead of being constricted to everything being centered.

Testing

Automated Tests

  • Changes in this PR are covered by Automated Tests.
    • Unit tests
    • E2E tests

Manual Testing

How to test the changes in this Pull Request:

  1. Use a block theme (such as Twenty Twenty Two)
  2. Add the ”Featured Product” block to a page and select a product.
  3. Make sure that the resizable handle is a shown fully (it should be a full circle), and that is shown only when the block is selected.
  4. Select the block and apply a Duotone filter.
  5. Make sure the overlay color control is under the Overlay section and change the overlay color to a gradient.
  6. Add a padding to the block and make sure the padding is added on the inside of the wrapper (i.e. no white space is created outside of the block).
  7. Move around your image focal point and make sure you can actually move around the entire image and not only constrained on one dimension.
  8. Apply “Image fit > Cover” and notice how the image will scale along with the container. As opposed to point 5 above, now the focal point picker is limited to one dimension.
  9. Increase the padding-top of the block and notice that the content can't get pushed out of the container, but instead the container resizes.
  10. When that's the case, try resizing the block through the handle to a lower height: the handle should move but the container should not resize. When the mouse is lifted, the handle should return to its original position.
  11. For the steps 4–9 above, save the page and check that the styles are applied correctly on the front-end (as the block is rendered statically via PHP).

User Facing Testing

These are steps for user testing (where "user" is someone interacting with this change that is not editing any code).

  • Same as above

❗ Note: Since this PR includes several changes, we agreed that it should have a multi-line changelog. I checked the automation script which creates the changelog, and it seems to be fine with that. There might be some formatting issues with newlines and such, so perhaps, release lead, you might have to adjust a few things before publishing.

Changelog

Enhanced the Featured Product block:

  • Implemented support for duotone.
  • Implemented support for gradients on the overlay.
  • Implemented support for custom inner padding.
  • Implemented image fit options: users can now decide how should the image behave on the resizing of the component; it can either scale to always cover the entire container, or remain its original size.
  • Fixed an inconsistency where the overlay color was controlled by the background color control. It is now moved to the correct section.
  • Fixed the focal point picker, it now works on both axis as long as the image fit (above) is set to none.
  • Fixed an issue with the visibility of the resizing handle.
  • Fixed an issue which would keep the resizing handle always active regardless of block selection status.
  • Changed the behavior of the resizing: the block can't be resized below a minimum height determined by its content plus the padding.

@rubikuserbot rubikuserbot requested review from a team and albarin and removed request for a team April 1, 2022 15:50
@github-actions
Copy link
Contributor

github-actions bot commented Apr 1, 2022

Size Change: +999 B (0%)

Total Size: 862 kB

Filename Size Change
build/all-products.js 33.5 kB -1 B (0%)
build/cart.js 44.3 kB -2 B (0%)
build/featured-product.js 10.5 kB +735 B (+8%) 🔍
build/single-product.js 10.1 kB -4 B (0%)
build/wc-blocks-style-rtl.css 22 kB +135 B (+1%)
build/wc-blocks-style.css 22 kB +136 B (+1%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 5.92 kB
build/active-filters.js 6.59 kB
build/all-products-frontend.js 18.1 kB
build/all-reviews.js 7.78 kB
build/attribute-filter-frontend.js 16.9 kB
build/attribute-filter.js 12.8 kB
build/blocks-checkout.js 17.4 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.16 kB
build/cart-blocks/cart-express-payment-frontend.js 5.23 kB
build/cart-blocks/cart-items-frontend.js 298 B
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.27 kB
build/cart-blocks/cart-line-items-frontend.js 430 B
build/cart-blocks/cart-order-summary-frontend.js 1.1 kB
build/cart-blocks/cart-totals-frontend.js 321 B
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/filled-cart-frontend.js 772 B
build/cart-blocks/order-summary-coupon-form-frontend.js 2.81 kB
build/cart-blocks/order-summary-discount-frontend.js 2.31 kB
build/cart-blocks/order-summary-fee-frontend.js 273 B
build/cart-blocks/order-summary-heading-frontend.js 452 B
build/cart-blocks/order-summary-shipping--checkout-blocks/order-summary-shipping-frontend.js 6.34 kB
build/cart-blocks/order-summary-shipping-frontend.js 427 B
build/cart-blocks/order-summary-subtotal-frontend.js 273 B
build/cart-blocks/order-summary-taxes-frontend.js 432 B
build/cart-blocks/proceed-to-checkout-frontend.js 1.15 kB
build/cart-frontend.js 45.5 kB
build/checkout-blocks/actions-frontend.js 1.41 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.12 kB
build/checkout-blocks/billing-address-frontend.js 893 B
build/checkout-blocks/contact-information-frontend.js 2.83 kB
build/checkout-blocks/express-payment-frontend.js 5.53 kB
build/checkout-blocks/fields-frontend.js 345 B
build/checkout-blocks/order-note-frontend.js 1.08 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.66 kB
build/checkout-blocks/order-summary-coupon-form-frontend.js 2.96 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.43 kB
build/checkout-blocks/order-summary-fee-frontend.js 275 B
build/checkout-blocks/order-summary-frontend.js 1.1 kB
build/checkout-blocks/order-summary-shipping-frontend.js 606 B
build/checkout-blocks/order-summary-subtotal-frontend.js 273 B
build/checkout-blocks/order-summary-taxes-frontend.js 432 B
build/checkout-blocks/payment-frontend.js 7.82 kB
build/checkout-blocks/shipping-address-frontend.js 995 B
build/checkout-blocks/shipping-methods-frontend.js 4.72 kB
build/checkout-blocks/terms-frontend.js 1.22 kB
build/checkout-blocks/totals-frontend.js 326 B
build/checkout-frontend.js 47.7 kB
build/checkout.js 45.6 kB
build/featured-category.js 8.67 kB
build/handpicked-products.js 7.14 kB
build/legacy-template.js 2.19 kB
build/mini-cart-component-frontend.js 16.6 kB
build/mini-cart-contents-block/empty-cart-frontend.js 327 B
build/mini-cart-contents-block/filled-cart-frontend.js 230 B
build/mini-cart-contents-block/footer--mini-cart-contents-block/products-table-frontend.js 4.68 kB
build/mini-cart-contents-block/footer-frontend.js 5.64 kB
build/mini-cart-contents-block/items-frontend.js 226 B
build/mini-cart-contents-block/products-table-frontend.js 288 B
build/mini-cart-contents-block/shopping-button-frontend.js 287 B
build/mini-cart-contents-block/title-frontend.js 367 B
build/mini-cart-contents.js 22.7 kB
build/mini-cart-frontend.js 1.72 kB
build/mini-cart.js 6.1 kB
build/price-filter-frontend.js 12.3 kB
build/price-filter.js 8.4 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-category-list--product-image--product-price--product-r--a0326d00.js 224 B
build/product-add-to-cart--product-button--product-image--product-title.js 2.65 kB
build/product-add-to-cart--product-button.js 565 B
build/product-add-to-cart-frontend.js 6.97 kB
build/product-add-to-cart.js 6.64 kB
build/product-best-sellers.js 7.41 kB
build/product-button--product-category-list--product-image--product-price--product-rating--product-sale-b--e17c7c01.js 501 B
build/product-button-frontend.js 1.84 kB
build/product-button.js 1.08 kB
build/product-categories.js 2.78 kB
build/product-category-list-frontend.js 924 B
build/product-category-list.js 500 B
build/product-category.js 8.52 kB
build/product-image-frontend.js 1.84 kB
build/product-image.js 1.07 kB
build/product-new.js 7.7 kB
build/product-on-sale.js 8.01 kB
build/product-price-frontend.js 1.94 kB
build/product-price.js 1.5 kB
build/product-rating-frontend.js 1.15 kB
build/product-rating.js 735 B
build/product-sale-badge-frontend.js 1.09 kB
build/product-sale-badge.js 679 B
build/product-search.js 2.18 kB
build/product-sku-frontend.js 380 B
build/product-sku.js 382 B
build/product-stock-indicator-frontend.js 1.03 kB
build/product-stock-indicator.js 620 B
build/product-summary-frontend.js 1.33 kB
build/product-summary.js 918 B
build/product-tag-list-frontend.js 918 B
build/product-tag-list.js 495 B
build/product-tag.js 7.83 kB
build/product-title-frontend.js 1.29 kB
build/product-title.js 910 B
build/product-top-rated.js 7.94 kB
build/products-by-attribute.js 8.42 kB
build/reviews-by-category.js 11.2 kB
build/reviews-by-product.js 12.3 kB
build/reviews-frontend.js 7 kB
build/single-product-frontend.js 21.5 kB
build/stock-filter-frontend.js 6.5 kB
build/stock-filter.js 6.56 kB
build/vendors--cart-blocks/cart-line-items--cart-blocks/cart-order-summary--cart-blocks/order-summary-shi--c02aad66-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--5b8feb0b-frontend.js 4.74 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--decc3dc6-frontend.js 20.5 kB
build/vendors--mini-cart-contents-block/footer-frontend.js 6.86 kB
build/vendors--product-add-to-cart-frontend.js 7.53 kB
build/wc-blocks-data.js 9.87 kB
build/wc-blocks-editor-style-rtl.css 4.92 kB
build/wc-blocks-editor-style.css 4.92 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 930 B
build/wc-blocks-registry.js 2.7 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-vendors-style-rtl.css 1.28 kB
build/wc-blocks-vendors-style.css 1.28 kB
build/wc-blocks-vendors.js 71.3 kB
build/wc-blocks.js 2.62 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.61 kB

compressed-size-action

@sunyatasattva sunyatasattva force-pushed the feature/featured-product-block-styles branch from 644e914 to 7b87381 Compare April 5, 2022 22:38
@sunyatasattva sunyatasattva self-assigned this Apr 5, 2022
@sunyatasattva sunyatasattva added type: enhancement The issue is a request for an enhancement. focus: blocks Specific work involving or impacting how blocks behave. block: featured product Issues related to the Featured Product block. focus: global styles Issues that involve styles/css/layout structure. block-type: product Issues related to/affecting all blocks related to products. labels Apr 5, 2022
@sunyatasattva sunyatasattva marked this pull request as ready for review April 5, 2022 23:02
@albarin
Copy link
Contributor

albarin commented Apr 6, 2022

@sunyatasattva While testing and comparing with Cover, I've noticed a couple of things:

  1. In Cover, when you set a padding and hover over the padding size, it shows like an overlay with the size of the padding. In the Featured Product this doesn't happen, do we want to keep the same behavior?
Screen.Capture.on.2022-04-06.at.11-19-15.mp4
  1. The block settings "loses" the applied gradient settings when you open the menu again:
Screen.Capture.on.2022-04-06.at.11-17-32.mp4

},
spacing: {
padding: true,
__experimentalSkipSerialization: true,
Copy link
Contributor

Choose a reason for hiding this comment

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

Given this is __experimental would we want the spacing to be wrapped in isFeaturePluginBuild() below?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Looks like we should! Thanks for the catch, I'm still a bit confused with the whole __experimental thing.

@vivialice
Copy link

👋 Heya! A few comments:

As @albarin mentioned above, it would be nice to keep that overlay behaviour once the padding is implemented!

The image won't fill the background by default with a smaller image. It's obviously not the best regarding image quality, but can we align with the cover block?

Screenshot 2022-04-06 at 12 36 57

I noticed when you put a high number for padding on one side it can push the elements "off" the block. Here's a screenshot where I input the same values for the cover and the featured product block:

Screenshot 2022-04-06 at 12 53 02

@frontdevde
Copy link
Contributor

frontdevde commented Apr 6, 2022

Thinking out loud here: For both the Featured Product/Category blocks we want to add more advanced media control options. From what I hear @vivialice saying is that these capabilities should match the options we have on the Cover block. Instead of reinventing the wheel, could we potentially import/use the actual core/cover block in our blocks?

In an ideal case would be neat if we didn't have to duplicate all the media-related functionality the Cover block already has. If we end up having to duplicate it, I'm wondering if we could achieve it in a way where we can reuse that functionality within Woo Blocks at least. It does seem like we could use it in a number of blocks if it "just works".

Screenshot 2022-04-06 at 16 20 58

@sunyatasattva
Copy link
Contributor Author

@albarin

In Cover, when you set a padding and hover over the padding size, it shows like an overlay with the size of the padding. In the Featured Product this doesn't happen, do we want to keep the same behavior?

Yea, I noticed that. It's really nice and useful feature indeed. I tried to figure out how that's implemented but couldn't manage yet. I posted in #gutenberg to see if anybody can give me pointers. Otherwise I'll do some more research.

The block settings "loses" the applied gradient settings when you open the menu again:

Nice catch! Will look into that!


@vivialice

As @albarin mentioned above, it would be nice to keep that overlay behaviour once the padding is implemented!

Yep, I agree. I'll try my best. Just a clarification: padding is already implemented the same way as in the cover block. It just doesn't show the overlay.

The image won't fill the background by default with a smaller image. It's obviously not the best regarding image quality, but can we align with the cover block?

I've got a little qualm here. My problem is not the image quality, but rather the behavior of the focal point which I mentioned in the OP. If you see in the cover block you can't really set the focal point of your image. You can just scroll it vertically, because the image is contained to the borders of the block (so the UI feels weird and the users can't achieve what they want).

With my implementation, you can actually meaningfully change the focal point as the UI and the result actually match.

focal-point-bug.mov

I think the solution here is to add an option for the user to constrain the image to the borders of the block (i.e. if it's too large, it will scale it down; otherwise, will scale it up). What are your thoughts?

I noticed when you put a high number for padding on one side it can push the elements "off" the block.

Interesting! So, the cover block scales up with the padding, I see. Good catch!


@frontdevde

For both the Featured Product/Category blocks we want to add more advanced media control options. From what I hear @vivialice saying is that these capabilities should match the options we have on the Cover block. Instead of reinventing the wheel, could we potentially import/use the actual core/cover block in our blocks?

Yea, I am trying to reuse as much logic as possible from the existing Gutenberg core APIs. Though pretty much none of them are documented, and I have to do some reverse engineering, if you look at the code, you can see a lot of stuff is imported and reused. The comments from @nerrad on the spreadsheet implied that we should look to move away from custom implementations, and that's what I am trying to do.

Just note, re: media controls, that they are not part of this MVP PR, as mentioned in this comment by @Aljullu.

@sunyatasattva
Copy link
Contributor Author

sunyatasattva commented Apr 10, 2022

So, I pushed a bunch of commits addressing the feedback I got. In the meantime, I also fixed other bugs I found along the way, I'll update the OP so that it's completely reflective of what this PR is currently doing. Regarding the single issues that have been brought up:

  1. All __experimental features are now wrapped in such a way that are only available on feature builds and making sure that support for those feature is available.
  2. As @vivialice requested, now the block behaves more like the Cover block when it comes to padding and height: if the padding is large enough that the content would be pushed down away from the container (and thus hidden), now instead the container resizes as to accommodate the content.

⚠️ However, please note: this means the resizeable controls aren't anymore exactly reflective of reality and might confuse the user. In fact, a user can only resize the block down to the minimum allowed by the container (this is the same behavior as the Cover block).

  1. Speaking of the resizable container, I noticed that the handle was showing only half of the circle (visible in all screenshots above) and was also showing when the block was not selected (which is not consistent with the Cover block). So I fixed that.
  2. I fixed the problem of gradients not persisting in the UI.
  3. Lastly, I added an option for the user to be able to decide how the image should scale and fit the container, as described above, and added some help text to not confuse the users: as pointed out above, if the image always scales up to the entire container, the “focal point picker” is not entirely usable anymore (you can often only shift either the X or Y axis, like in the Cover block). As this doesn't seem to me a very nice UX nor a common use-case, I added this option so that users can decide how should the block behave (I can personally more readily envision a user needing to switch the focal point of the product image to fix better in the design, or around the text, or to highlight a certain feature of the product, than to make extremely oversized featured product blocks).

As @frontdevde is off for a while, @albarin the onus of approving this PR will be on you 😸

@albarin
Copy link
Contributor

albarin commented Apr 11, 2022

@sunyatasattva
Hey, I'm testing locally and seeing some weird behavior, not sure if I have some issue on my end tbh. 🤔

The Focal Point picker rectangle seems too big and there's nothing under the Dimensions section:
dimesions

Tried it also on the Cover block and the same happens on the Focal Point picker, also the Minimum height of cover input has the wrong height.
height

@github-actions github-actions bot added this to the 7.4.0 milestone Apr 11, 2022
@sunyatasattva
Copy link
Contributor Author

Oh, I realize I forgot to mention a really important part of the feedback I had received: the padding indicators!

I had a conversation with people over at Gutenberg, and I wanted to share with people who asked here and whoever comes across this PR. It turns out it's called BoxControlVisualizer and currently I have been heavily discouraged from using it.

cf. this PR: WordPress/gutenberg#40057 where it is mentioned to be in an “unusable state”.

I have been told heavily rework is going on there and we shouldn't touch it until the rework is done. I am following the above mentioned issue so I can see when things are moving.

Cc @vivialice @albarin

The container now resizes if, e.g., padding is increased, and can't be resized down
with the handle to a height lower than it's minimum size determined by content and
padding box.
Previously, `overflow: hidden` was needed because the height constraint and
padding could push the content out of the container. Now this should not be
possible.
@sunyatasattva sunyatasattva force-pushed the feature/featured-product-block-styles branch from 433115b to 8f5ca39 Compare April 11, 2022 19:49
@github-actions
Copy link
Contributor

Script Dependencies Report

The compare-assets action has detected some changed script dependencies between this branch and trunk. Please review and confirm the following are correct before merging.

Script Handle Added Removed
reviews-frontend.js react, wc-settings, wp-a11y, wp-api-fetch, wp-compose, wp-element, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-polyfill ⚠️
all-products-frontend.js lodash, react, wc-blocks-data-store, wc-blocks-registry, wc-blocks-shared-context, wc-blocks-shared-hocs, wc-price-format, wc-settings, wp-a11y, wp-api-fetch, wp-autop, wp-block-editor, wp-blocks, wp-compose, wp-data, wp-deprecated, wp-dom, wp-element, wp-hooks, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-polyfill, wp-primitives, wp-url, wp-warning, wp-wordcount ⚠️
price-filter-frontend.js lodash, react, wc-blocks-data-store, wc-price-format, wc-settings, wp-data, wp-element, wp-i18n, wp-is-shallow-equal, wp-polyfill, wp-url ⚠️
attribute-filter-frontend.js lodash, react, wc-blocks-data-store, wc-settings, wp-a11y, wp-block-editor, wp-blocks, wp-components, wp-data, wp-element, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-polyfill, wp-primitives ⚠️
stock-filter-frontend.js lodash, react, wc-blocks-data-store, wc-settings, wp-a11y, wp-data, wp-element, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-polyfill ⚠️
active-filters-frontend.js lodash, react, wc-blocks-data-store, wc-price-format, wc-settings, wp-data, wp-element, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-polyfill, wp-primitives ⚠️
cart-frontend.js lodash, react, wc-blocks-checkout, wc-blocks-data-store, wc-blocks-registry, wc-blocks-shared-hocs, wc-price-format, wc-settings, wp-a11y, wp-api-fetch, wp-autop, wp-compose, wp-data, wp-deprecated, wp-dom, wp-element, wp-hooks, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-keycodes, wp-plugins, wp-polyfill, wp-primitives, wp-url, wp-warning, wp-wordcount ⚠️
checkout-frontend.js lodash, react, wc-blocks-checkout, wc-blocks-data-store, wc-blocks-registry, wc-blocks-shared-hocs, wc-price-format, wc-settings, wp-a11y, wp-api-fetch, wp-autop, wp-compose, wp-data, wp-deprecated, wp-dom, wp-element, wp-hooks, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-keycodes, wp-plugins, wp-polyfill, wp-primitives, wp-url, wp-warning, wp-wordcount ⚠️
mini-cart-frontend.js wc-settings, wp-polyfill ⚠️
single-product-frontend.js lodash, react, wc-blocks-checkout, wc-blocks-data-store, wc-blocks-registry, wc-blocks-shared-context, wc-blocks-shared-hocs, wc-price-format, wc-settings, wp-a11y, wp-api-fetch, wp-autop, wp-block-editor, wp-blocks, wp-compose, wp-data, wp-deprecated, wp-dom, wp-element, wp-hooks, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-polyfill, wp-primitives, wp-url, wp-warning, wp-wordcount ⚠️
mini-cart-component-frontend.js lodash, react, wc-blocks-checkout, wc-blocks-data-store, wc-blocks-registry, wc-price-format, wc-settings, wp-a11y, wp-autop, wp-components, wp-compose, wp-data, wp-deprecated, wp-dom, wp-element, wp-hooks, wp-html-entities, wp-i18n, wp-is-shallow-equal, wp-keycodes, wp-polyfill, wp-primitives, wp-url, wp-warning, wp-wordcount ⚠️

This comment was automatically generated by the ./github/compare-assets action.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: featured product Issues related to the Featured Product block. block-type: product Issues related to/affecting all blocks related to products. focus: blocks Specific work involving or impacting how blocks behave. focus: global styles Issues that involve styles/css/layout structure. type: enhancement The issue is a request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update the Featured Product block with more styles/options
5 participants