* Add read-only state to selected items in select control
* Only close menu on focus outside of select control
* Add changelog entry
* Remove errant comment out of onBlur line
* Fix regression of input focus behavior
* Hide input when in read only mode
* Turn off read only mode when focused
* Show select control input on single item dropdowns and when no selections have been made in multiple dropdowns
* Prevent focus loss when removing an item
* Prevent loss of field focus when clicking on selected item tags
* Fix broken assertion with comma separated list
* Add product editor changelog entry
* Remove block selection on summary input blur
* Move block props to wrapper around rich text
* Fix content ID and for label
* Add changelog entry
* Use useInstanceId instead of lodash uniqueId
* Add onFirstTreeItemBack hook
* Fix item not being selected on single mode when it had children
* Remove if statement that prevented items with children from being selected in single mode
* Add storybook example with onFirstTreeItemBack
* Remove onFirstTreeItemBack
* Replace radio button with checkbox
* Update changelog
* Allow disabling of drag and drop within ImageGallery component
* Add changelogs
* Fix onReplace logic for images block
* Fixing linting error
---------
Co-authored-by: Joel <dygerati@gmail.com>
* Add core profiler - welcome to woo page
* Add changelog
* Update checkbox styles
* Update copies
* Add test
* Add enable prop to window.wcTracks type
* Add tracks
* Add explat changelog
* Fix import
* Update default tracking value
* Update copies
* Fix test
* using invoked promise instead of useState
- take advantage of xstate's built ins for side effects instead of useEffect/hooks
- discovered that error result wasn't really handled in original useEffect
- use text labels instead of inline functions so that we can decouple the implementation from the machine model
- todo: can move the invoked function out elsewhere and also tests if needed (not necessary here because it's a simple call)
* use actions.choose instead of branching inside action
- https://stately.ai/docs/xstate/transitions-and-choices/guarded-actions#the-choose-action
- makes it so that the machine model is serializeable
- todo: in the distant future i wonder if it might be tidier to have tracks be its own actor that just receives the same events that this machine does, that way it's just standalone instead of mixing up tracks with the implementation
* use dispatch instead of useDispatch
- decouples the implementation of the handler from the react component
- makes the handler testable on its own if needed
- makes the state machine testable without relying on external dependencies
* decoupled remaining function calls
* Fix lint error
* Fix style lint
* address xstate console warnings
- .withConfig() is a function call that returns a new object every invocation so we need to wrap it in useMemo to keep it stable
* Add optInDataSharing is false test
* Fix lint
---------
Co-authored-by: rjchow <me@rjchow.com>
* Update List price Pricing link on the general tab to navigate to the Pricing tab
* Add changelog files
* Simplify the event name to product_pricing_help_click
* Add modal editor for use in product editor
* Allow title of modal to be modified by consumer
* Add changelog entry
* Remove errant style imports after rebase
* Handle PR feedback
* Migrate ellipsis-menu to TS
* Add changelog
* Remove React.VFC -- it is deprecated in React 18
* Make renderContent props optional
* Allow KeyboardEvent
* Make onToggle optional
* Allow undefined for backward compatibility
* Remove unnecessary @ts-expect-error -- ellipsis menu is now in TS
* Make onToggle required
* Make event e required - backward compatibility
* Use toggleHandlerOverride to make it more readable
* Remove React.VFC -- it is deprecated in React 18
* Allow custom tags and attributes in sanitize html util
* Add ContentPreview component for previewing block content
* Add styling around preview area
* Add changelog entry
* Only show content preview area when content exists
* Track stock quantity for this product should be disabled when Enable stock management within settings is disabled, and enabled otherwise.
* Add changelog files
* Change woocommerce/product-name to woocommerce/product-name-field
* Change woocommerce/product-summary to woocommerce/product-summary-field
* Change woocommerce/product-pricing to woocommerce/product-pricing-field
* Change woocommerce/product-radio to woocommerce/product-radio-field
* Change woocommerce/product-images to woocommerce/product-images-field
* Fix product name block invalid class name
* Move woocommerce/product-section to blocks folder
* Move woocommerce/product-tab to blocks folder
* Move woocommerce/product-collapsible to blocks folder
* Organize block registration, imports and styles
* Add changelog files
* Change woocommerce/product-category to woocommerce/product-category-field
* Change woocommerce/product-checkbox to woocommerce/product-checkbox-field
* Change woocommerce/product-inventory-email to woocommerce/product-inventory-email-field
* Change woocommerce/product-sku to woocommerce/product-sku-field
* Register woocommerce/product-schedule-sale-fields in server side
* Register woocommerce/product-track-inventory-fields in server side
* Fix invalid reference in tabs tests
* Add auto-draft to product statuses
* Record event on draft save
* Record event on product update
* Add changelog entry
* Add data changelog
* Refactor to use shared function for recording product events
* Handle PR feedback
* Add initial category block
* Add changelogs
* Add label to font family for block editor and fix template
* Fix rebase conflict and add content role
* Some styling changes for the category field
* Move category block to blocks folder and fix merge conflict.
* Address some styling issues, and update keywords
* Fix css lint error
* Rewrite the useOptionsHydration hook to not dispatch inside useSelect
* Fix types of Options store to allow startResolution etc actions
* fixed tests and added changelog
---------
Co-authored-by: rjchow <me@rjchow.com>
* Add initial custom meta box for product categories
* Make use of TreeSelectControl
* Update classnames
* Display selected items and sync with most used tab
* Always show placeholder and remove checklist container
* Reactify category metabox tabs
* Add create new category logic
* Remove unused markup
* Fix saving of empty category list
* Add callback when input is cleared as well
* Some small cleanup and refactoring.
* Add changelog
* Fix tree creation and style enqueue
* Auto fix lint errors
* Fix linting errors
* Fix css lint errors
* Add 100 limit, and address some PR feedback
* Fix some styling and warnings
* Remove unused code
* Address PR feedback
* Fix lint error
* Fix lint errors
* Address PR feedback
* Fix lint error
* Minor fixes and add tracking
* Add debounce
* Fix lint error
* Allow custom min filter amount and fix menu not showing after escaping input
* Allow single item to be cleared out of select control
* Fix bug where typed values did not show up
* Fix some styling issues
* Allow parents to be individually selected
* Address PR feedback and add error message
* Add changelogs
* Fix saving issue
* Add client side sorting and stop clearing field upon selection
* Update changelog
* Create feature flag for async product categories dropdown
* Fix lint errors
* Fix linting
* Invert the useValidation hook behavior to return an error instead of a boolean value
* Fix validation logic in schedule-sale and track-inventory blocks
* Add changelog file
* Add validations to product name block
* Fix shipping dimensions validations
* Fix shipping fee validations
* Add i18n error message example to readme.md
* Cover semantic issues
* Move product editor tabs to header
* Update header styles to place tabs on bottom
* Center header title and adjust font size
* Style title and columns on mobile
* Add changelog entry
* Truncate longer titles
* Hide title on smaller viewports
* Truncate via css width instead of character count
* Setting up the Fees & dimensions section
* Create product shipping fee block
* Register product shipping fee block
* Add changelog files
* Fix php linter errors
* Add reusable radio field and move the radio block to the blocks folder
* Remove manually set block className because is autogenerated base on the block name