* Focus tab shows focus style
* Tabbing when inside the tabs takes you to the first focusable element inside the current tab's tab panel
* Users can press the left and right arrow keys to move between tabs
* When a tab is focused and the Home key is pressed the first tab in the list should be focused. When the End key is pressed the last tab should be focused
* Add changelog file
* Fix e2e tests
* Add changelog file
* Get last tab by index
* Fix linter errors
* Explicitly check whether the only block is a paragraph
* Update comment
* Move handling of empty block array into clearDescriptionIfEmpty
* Add areBlocksEmpty util function
* Check for empty block inside iframe editor
* Remove check for empty block from description block
* Add unit tests for areBlocksEmpty
* Changelog
* Update comment to clarify
* Lazy load the PluginArea and the ModalEditor
* Remove repeated product request when editing a specific product
* Fix linter errors
* Add changelog files
* Fix linter errors
* Refactor the block editor to remove some extra rerenders
* Defer the publish button processing
* Defer the tab content render 500ms to reduce the total blocking time
* Fix linter errors
* Fix unit test and tabs unexpected rerender
* Fix linter errors
* Reduce the defered time to 300ms
* Fix get product url when the product has been duplicated since the new copy does not have permalink
* Fix the invalid unregistration of wc-admin-more-menu in the product page
* Fix compilation errors
* Don't use NavigableToolbar for header
* Rename CSS styles for header
* Put document tools in NavigableToolbar
* Fix alignment of inserter button
* Switch non-toolbar items to regular buttons
* Remove unused const
* Use same CSS styling as core for document tools
* Clean up errant change while rebasing
* Changelog
* Add workflow_call event
* Add tests-daily-run.yml
* Remove workflow version
* Update input value
* Remove secrets from caller workflow
* Rename job
* Check context
* Check context
* Check workflow_call inputs
* Override github.event_name with inputs.trigger
* Fix input name
* Add config for daily e2e tests with Gutenberg
* Update env commands for Gutenberg run
* Add disableHpos env variable in ci-utils
* Revert the trigger to push
* Revert the env variable setting in ci-jobs
* Revert the env variable setting in ci-jobs
* Rebuild utils
* Update test env start command
* Define the Gutenberg Playwright project
* Use path relative to workspace root
* Update events for test projects
* Update events for test projects
* Add changelogs
* Remove the e2e tests with Gutenberg tests from daily runs
* Set the schedule and workflow_dispatch triggers
* Add --project default flag to only run the default tests in CI
* Renamed snapshots to match the new Playwright project name
* Rename appendEdit function to appendToEditorHistory
* Don't append to editor history onInput
* Changelog
* Move onChange and onInput handles to named functions
* Debounce appendEdit
* Change undo and redo to useCallback
* Update debounce time to feel closer to post editor
* Move debounce of appendEdit into useEditorHistory
* Make sure debounced appendEdit is flushed before undo/redo
* Remove console.log() statement
* Add undo shortcut support
* Add redo shortcut support
* Add document overview shortcut support
* Move keyboard shortcuts to after interface store is registered in subregistry
* Move settings sidebar identifier to a constant
* Add settings sidebar shortcut support
* Changelog
* Update to pnpm 9.1 and fix a mini css bug
* Add changefile(s) from automation for the following project(s): @woocommerce/tracks, @woocommerce/product-editor, @woocommerce/onboarding, @woocommerce/number, @woocommerce/notices, @woocommerce/navigation, @woocommerce/internal-js-tests, @woocommerce/extend-cart-checkout-block, @woocommerce/expression-evaluation, @woocommerce/explat, @woocommerce/experimental, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/date, @woocommerce/data, @woocommerce/customer-effort-score, @woocommerce/currency, @woocommerce/csv-export, @woocommerce/create-woo-extension, @woocommerce/create-product-editor-block, @woocommerce/components, @woocommerce/api, @woocommerce/ai, @woocommerce/admin-e2e-tests, woocommerce-blocks, woocommerce-beta-tester, woocommerce, woo-ai
* temporarily disable swallowing build output to diagnose issue with perf workflow
* Ignore some type issues that commonly resurface when deps slightly change
* Fix persistent type issues that have recurred many times
* Add more ignores
* Fix lint issue
* Revert change to swallow build error
* Improve access of the config that needs updated build dir.
---------
Co-authored-by: github-actions <github-actions@github.com>
* fisrt approach
* do not clear same selected term
* tweak token field component
* chage the attributes type
* filter attributes already taken
* set instanceNumber for each combobox instance
* implement remove attribute
* final first approach
* update onRemove type
* rename edit VariationItemsBlockEdit
* handle local attributes
* rollback unrelated issue
* changelog
* remove unused component
* remove test
* add border color when disabled
* Use min and max values if provided when sanitizing values
* Pass min and max attributes to NumberControl
* Use 'min' and 'max' values when incrementing through + and - buttons
* Add changelog
* Handle increment when pressing buttons
* Show + and - buttons disabled when max/min has been reached
* Prevent suffix from being selected
* iframe editor PluginSidebar
* iframe editor PluginArea and ComplementaryArea
* iframe editor PinnedItems
* Try ComplementaryArea slot
* Update scope name
* Only render ComplementaryArea.Slot when right sidebar is open
* Register interface store in sub registry
* Move block inspector to complementary area
* Remove hardcoded inspector toggle button from header
* Remove debug statement
* Remove unused isSidebarOpened context
* Set settings sidebar to be active by default
* Don't allow unpinning of settings sidebar
* Organize sidebar components under folder
* Add plugin more menu item
* Remove width for sidebar
* Update PluginArea scope name
* Pull out small viewport support for pinned items (incomplete)
* Move sidebar complementary area scope to a const
* Update sidebar complementary area scope name
* Update PluginSidebar export name
* Provide comments to clarify sidebar props settings
* Add comment about why this icon was copied
* Remove unnecessary wrapper div around complementary area
* Changelog
* Set BlockEditorProvider's value to temporalBlocks
* Remove unnecessary code
* Set initial blocks in editor history, so that the first edit on an existing description can be undone
* Changelog
* Increment ProductVariationImage type
* Allow adding images to variations from the main product screen through a button
* Add changelog
* Add changelog
* Change showSuccess parameter to optional
* Add 'placeholder' attribute to taxonomy block and add 'placeholder' attribute to category field in Simple Product Template
* Only show placeholder when nothing is selected
* Remove suffix from function parameters
* Add changelog for component
* fix unit tests
* Avoid requesting product with id -1
* Add changelog
* Move changelog
* Add options to useEntityRecord type
* Fix editedRecord
* Add comment
* Undo early return
* Avoid making a request for product if it isn't already loaded
* Avoid making a request for product if it isn't already loaded
* Add typing for useEntityId
* Rework header to avoid requesting product unless we have a product ID
* Avoid requesting product when getting productTemplateId and blocks
* Remove unused import (fix lint error)
---------
Co-authored-by: Matt Sherman <matt@jam123.com>
* rename type for item of attribuite input field
* options is not part of the input item
* update type of getProductAttributeObject
* update types
* changelog
* fix eslint issue
* fix test
* move the logic to pull attribute to modal cmp
* changelog
* remove options from item props
* rename TS prop name
* save unsaved change
* rename type for item of attribuite input field
* options is not part of the input item
* update type of getProductAttributeObject
* update types
* changelog
* fix eslint issue
* fix test
* tweak optimisticQueryUpdate type
* sort items optimistically
* update attributes list optimistically
* do not invalidate when creating a new attribute
* changelog
* changelog
* update tests
* update options param in test
* wait for the promise when creating new attribute
* fix the rest of tests
* Add apiFetch middleware to add X-Wc-Product-Editor header to all requests from product editor
* Use productEditorHeaderApiFetchMiddleware
* Update name of header
* Utility function to check header
* Changelog
* Changelog
* Show validation message in the field that lost the focus
* Add unique validation for custom field names and trim values
* Let edit custom fields when creating a new product
* Add changelog file
* Allow saving a product as a draft when hitting ctrl/cmd + S
* Increment logic to keep product published/scheduled after it is published when using shortcut
* add a CustomActionDispatchers for createProductAttribute action
* add optional options to createItem() fn
* update items object when optimisticQueryUpdate is defined
* reduce itemsCount when creating a new item
* polish TS types
* update reducer tests
* clean unused type
* clean dirty code
* add optimisticQueryUpdate test
* changelog
* minor improvement
* options could be undefined
* compute items and itemsCount based on data
* fix TS error
* changelog
* Use editedRecord instead of record
* Always use productTemplateId when available
* Change private methods to protected in ProductVariationTemplate
* Use editedRecord in hook useEntityRecord
* Update changelogs
* Restore attribute renamed by mistake
* Change useProductTemplate unit test
* Add selectable attribute in product template to allow creation of product templates that do not appear on the "Change product type" UI
* Always use productTemplateId when available, otherwise fallback to standard-product-template
* Rename attribute
* Use editedRecord in hook useEntityRecord
* Revert "Always use productTemplateId when available, otherwise fallback to standard-product-template"
This reverts commit 2960fcd520.
* Revert "Use editedRecord in hook useEntityRecord"
This reverts commit c28e005e7b.
* Add changelogs
* Fix unit tests
* Increment changelog
* Add meta_data parameter in generateProductVariations
* Apply filter to get meta_data to generate variations
* Add meta_data parameter in generate variations endpoint
* Update name and add documentation
* Fix useEntityRecord in blockEditor
* Add aria-labelledby attribute to rich text component
* Handle label click to focus rich text
* Remove unneeded ts-ignore
* Pass in label ID explicitly instead of hardcoding knowledge of its naming pattern
* Changelog
* Add tooltip attribute to block.json
* Focus text area when clicking on label
* Remove Label id... not needed
* Set text area labelled by to label
* Add aria-required to rich text
* Hide required asterisks from aria
* Only send edited properties
* Changelog
* Rename const to match previous code
* Remove all the logic to look up the entity key... we know it is 'id' for products
* Disable woocommerce/product-regular-price-field when product type is variable
* Disable woocommerce/product-sale-price-field when product type is variable
* Disable woocommerce/product-sku-field when product type is variable
* Disable Track stock quantity toggle when product type is variable
* Disable woocommerce/product-radio-field when product type is variable
* Disable woocommerce/product-shipping-class-field when product type is variable
* Disable woocommerce/product-shipping-dimensions-fields when product type is variable
* Add changelog files
* Fix php linter
* register the `metadata` attribute for all blocks
* bind value attribute with the nane product entity
* changelog
* add a ToDo note
* rename edit component fn to NameBlockEdit
* changelog
* restore @ts-export line
* fix eslint issue
* fix eslint issue
* Show Scheduled product header tag when the product is been scheduled
* Fix the pre publish modal header message when to say scheduled when the product has a date in the future
* Add changelog file
* Create and register the woocommerce/product-select-field block
* Replace the tax class radio group block by woocommerce/product-select-field block
* Hide tax fields when taxes are disabled
* Hide tax fields when taxes are disabled in product variations
* Add changelog files
* Fix linter errors
* Match template based on different attributes besides product types
* Do not hard-code postType
* Refactor code
* Handle isResolving from useEntityRecord
* Refactor useProductTemplate
* Handle null value in `useProductTemplate`