* Install prettier
* Reformat all files
* Add prettier to precommit hook
* Update prettier settings to match Gutenberg code standards
* Reformat files with new settings
* Improve legibility in some line breaks
* Add inline settings script later than init
* Rename to shared-settings for clarity - other extensions filter these
* Implement block settings
* tweak used hooks
* update comment
* Shared settings should be dependency
* Make Webpack output shared and block settings (https://github.com/woocommerce/woocommerce-blocks/pull/918)
* export new @woocommerce/settings external on `wc.blockSettings` global
- This handles reading data from the dom and assigning it to the global used in all packages dependent on `@woocommerce/settings` which is registered as an external pointing to the global.
- ensures that server data is only loaded on a route if needed.
* switch all direct imports of constants to use new `@woocommerce/settings` external
* enqueu new `wc-block-settings` script and attach inline data to it.
* fix test configuration and adjust test to use new external
* fix bad merge resolution after rebase
* switch constants import to `@woocommerce/settings` external after rebase
* reorder imports for convention
* improve method name
* Reset 'loaded' state in Featured Product and Category blocks
* Minor code improvements
* Remove state from ApiErrorPlaceholder
* Move getProduct to a HOC
* Undo changes in Featured Category
* Update proptypes
* Move error messages to <ApiErrorPlaceholder>
* Reorder props
* Move lifecycle methods to HOC
* Make <FeaturedProduct> component presentational
* Move withProduct to js/hocs
* Create NAMESPACE constant in utils
* Create getProduct util function
* Set 'error' and 'product' state to null instead of 'false' when they have no value
* Prevent getImageSrcFromProduct and getImageIdFromProduct returning an error when 'product' is not an object
* Add HOC tests
* Use 'toBe' and 'toBeNull' jest expect methods instead of 'toEqual' when possible
* Export HOCs from index
* Move mock implementation to beforeEach
* Introduced WGPB_Extend_Core class to modify shortcodes and API requests of core
* Require the new class
* WC_REST_Blocks_Products_Controller_V2 to override the wc-blocks API to support new tags properties
* Register new products by tag block type
* Modify utils to support tags and tag_operators
* Add ProductTagControl to handle tag searching
* Add the actual products by tag block
* Set limitTags to 100
* Create Package class and use in main plugin file
* Move and refactor library class - split asset methods into new Assets class.
* Add jetpack autoloader dependency
* fix tests
* Update from master
* AbstractBlock class for general block registration
* remove test autoloader so tests do not break
* Create AbstractProductGrid
* FeaturedProduct
* HandpickedProducts
* ProductBestSellers
* ProductCategory
* ProductNew
* ProductOnSale
* ProductTopRated
* ProductsByAttribute
* Remove old base and render functions
* Allow non-dynamic blocks and register category block
* Fix products-by-attribute due to wrong naming
* Remove no dev
* test phpunit dir
* Update testing framework
* Update with new abstract classes and build in API
* Undo edit to attribute block
* Move edit mode
* No need to support shortcodes
* correct linting errors
* Update tests/bootstrap.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Update code comment to make more sense.
* Correct test package
* docblock
* Fix cancel button class
* Fix classname schema
* Set loading state so spinner is shown
* Add placeholder element when no tags are selected
* No tags placeholder
* Update rest endpoints
* Duplicate SearchListControl into ProductSearchListControl component
* Undo control copy; it's not needed
* Variation search + counts showing
* Dropdown styling (also fixed SVG icon markup in SCSS file)
* Style the variation count
* Handle variation display on frontend and backend
* Fixed selection callbacks hooray
* Extend v3 api to return name. Use v3 API for featured product block.
* Switch description based on type
* Fix isSelected check
* Define a11yProps
* Variations rest endpoint
* Remove isTertiary
* REST endpoints with variation handling
* Handle variation data frontend
* Handle variation data in editor
* renamed description schema
* tweak variation display
* Update assets/js/components/product-control/style.scss
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Flip icon direction
* Use classnames
* fix isSingle warning
* standards
* Only try to load variations if product has them
* remove php insertion of block category
* Add an SVG icon for the woo logo
* Add block-category.js to import into blocks
This creates the category icon complete with a Woo SVG icon
* Import block-category to all blocks that use it
* Style woocommerce blocks in woo purple
* Lint error
* fillRule case
* Update propTypes
* Use foreground prop instead of css
* Convert Woo Logo to ICON type component
* Add shared blocks.js to house the category code
* Calculate width from height
* Add FocalPointPicker to featured product block
* Disable the media icon if no product is selected
* Use the focal point on the frontend display
* Check for `FocalPointPicker` before using it (compat for WP 5.1)
* Check if focalPoint attribue is an array before trying to use it
* Fix html in preview of product titles
Previously the html wasn't rendered in the preview for product titles.
This renders the html.
* Update test snapshot
* Also decode html for featured preview name.
* Un-escape HTML for featured post title render
* Split apart editor and frontend styles
* Remove the empty JS files after each build
* Pull out editor and style CSS files into two single, separate files
Rename products-grid CSS, add a “global” front end stylesheet
* Update style registration to use these two new global CSS files
* Merge style JS files into vendors before deleting them
* Remove empty file to fix lint error
* Check for file before reading from it
When watching, not all the file stubs are created, so this errors out.
* Try using Button block for the product button
* Use the permalink for the selected product
* Fix use of templateLock prop
* Fix button component alignment
* Add ResizeableBox wrapper to component to adjust height
* Use the fixed height on the front end display of the block
* Fix display of resize handle
* Allow the default & min featured product heights to be customized by setting a new theme support keyword, `featured_block`.
* Use `min-height` on the front end display, so content is not clipped on smaller screens
* Add a wrapper div to the content, to prevent it from breaking out of the block display
* Update the translation file with strings in new JS files
* Automatically build the translation files when building the JS files
* Reorganize script+style registration so that all files for each block are grouped together
* Bundle the finished translations into the plugin
* Fix untranslated strings
* Remove the edit-blocks dependency from featured product CSS file (https://github.com/woocommerce/woocommerce-blocks/pull/342)
* Add media icon to toolbar, save selected media ID and src as attributes
* Use the selected image instead of the product image, if set
* Unset the selected image when a new product is selected
* Update search list item padding
* Fix search list item radio alignment
* Star icon: Material -> Dashicons
* Featured product min height
* placeholder icon + explanation of explicit height value
* Fix linter errors
* Remove unnecessary Icon from block registration
* Remove the star icon
* Add classnames package
* Add background image & initial styles
* Only show inspector controls when not in edit-mode
* Add overlay color + opacity controls
* Add content alignment
* Fix display of content
* Add content toggles
* Update styles from feedback
* Display the "Featured Product" block on the frontend (https://github.com/woocommerce/woocommerce-blocks/pull/310)
* Add render_callback to dynamically render product
* Set a size for the product description
* Remove fallback placeholder image
* Reset the background color for the placeholder component
Previously this was overriding storefront's custom background color CSS
* Update nested conditional
* Remove unnecessary style
* "Featured Product" Block: Add link to the product to the block (https://github.com/woocommerce/woocommerce-blocks/pull/311)
* Featured Product Block: Add link to the product to the block
* Add a better link label for screen reader users
* Match core button styles, fix alignment of button-link
* Add a prop to turn on “single choice” mode
* Create new ProductControl to select a single product
* Remove align from shared attributes
This is given to us by default for using supports.align
* Add Featured Product block
* Fix spelling mistake & copy-paste issue
* Fix lint warning
* Add featured product script to build process, register block in PHP