Commit 6296f97bfa9 for woocommerce

commit 6296f97bfa980f6d6a29775f684775de6edb03b2
Author: Luigi Teschio <gigitux@gmail.com>
Date:   Tue Aug 4 10:13:58 2026 +0200

    Clarify Blocks public and internal package boundaries (#66974)

    * Consolidate Woo blocks editor assets

    * restructure code

    * add documentation

    * improve naming

    * lint code

    * improve performance test

    * fix test

    * fix build configuration

    * re-run test

    * fix css

    * fix build

    * lint code

    * relocate in the right folder

    * fix build

    * fix webpack

    * fix crash build

    * avoid restructuring

    * WIP

    * fix c&c blocks

    * add side effect

    * fix import

    * fix block.json

    * clean up changes

    * clean up changes

    * clean up code

    * fix baseline

    * externalize packages

    * fix warning

    * refresh pnpm-lock

    * improve bundle

    * restore pnpm-lock

    * improve logic

    * update docs

    * restore the previous name for the CSS bundle

    * fix lint

    * avoid redunant get_script_data

    * address feedback

    * fix path for is_built function

    * update changelog

    * use str_starts_with

    * add deprecation warning

    * update comment

    * optimize bundle

    * Restore Blocks shared package bundles

    * deprecate less packages possible

    * implement feature flag

    * clean up code

    * improve CI

    * update webpack configuration

    * clean up code

    * lint code

    * restore changes

    * restore changes

    * improve conf

    * clean up changes

    * simplify webpack conf

    * clean up code

    * improve documentation

    * remove old changelog

    * fix css bundle

    * improve optimization

    * update readme

    * remove declare type

    * improve logic

    * Clarify Blocks package API boundaries

    * Add changelog entry for Blocks package boundaries

    * clean up code

    * update documentation

    * fix deps

    * lint markdown

    * fix path

    * improve structure

    * update folder name

    * fix unit test

    * fix type errors

    * rename folder

    * update readme

    * add documentation

    * fix readme

    * fix import

    * Update plugins/woocommerce/client/blocks/docs/contributors/folder-structure.md

    Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

    * improve documentation

    ---------

    Co-authored-by: Albert Juhé Lluveras <contact@albertjuhe.com>

diff --git a/CODEOWNERS b/CODEOWNERS
index e8fd3690d1f..f344201b062 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -39,12 +39,12 @@
 /plugins/woocommerce/client/blocks/assets/js/blocks/checkout @woocommerce/rubik
 /plugins/woocommerce/client/blocks/assets/js/blocks/mini-cart @woocommerce/rubik
 /plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation @woocommerce/rubik
-/plugins/woocommerce/client/blocks/packages/checkout @woocommerce/rubik
+/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout @woocommerce/rubik

 # Cart and checkout data stores
-/plugins/woocommerce/client/blocks/assets/js/data/cart @woocommerce/rubik
-/plugins/woocommerce/client/blocks/assets/js/data/checkout @woocommerce/rubik
-/plugins/woocommerce/client/blocks/assets/js/data/payment @woocommerce/rubik
+/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart @woocommerce/rubik
+/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout @woocommerce/rubik
+/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment @woocommerce/rubik

 # Order admin page (edit screen, list table, order meta boxes)
 /plugins/woocommerce/src/Internal/Admin/Orders/ @woocommerce/rubik
diff --git a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/README.md b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/README.md
index 5802f824da2..59e0448b3ac 100644
--- a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/README.md
+++ b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/README.md
@@ -100,7 +100,7 @@ You may not need to create a block to get your extension working the way you wan

 In this case, you could remove the block folder from the example block, modify the Webpack config file so it no longer reads from that directory, and include the code you need in the entry JavaScript file.

-More information about how to use filters can be found in the [Filter Registry](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/README.md) and [Available Filters](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/) documents.
+More information about how to use filters can be found in the [Filter Registry](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/README.md) and [Available Filters](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/) documents.

 ### Importing WooCommerce components into your extension

diff --git a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills.md b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills.md
index 25da1833a68..6fbb0464bc4 100644
--- a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills.md
+++ b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills.md
@@ -8,7 +8,7 @@ sidebar_position: 2

 This document presents the list of available Slots that you can use for adding your custom content (Fill).

-If you want to add a new SlotFill component, check the [Checkout - Slot Fill document](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/checkout/slot/README.md). To read more about Slot and Fill, check the [Slot and Fill document](/docs/block-development/reference/slot-fills/).
+If you want to add a new SlotFill component, check the [Checkout - Slot Fill document](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/README.md). To read more about Slot and Fill, check the [Slot and Fill document](/docs/block-development/reference/slot-fills/).

 **Note About Naming:** Slots that are prefixed with `Experimental` are experimental and subject to change or remove. Once they graduate from the experimental stage, the naming would change and the `Experimental` prefix would be dropped. Check the [Feature Gating document](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/internal-developers/blocks/feature-flags-and-experimental-interfaces.md) from more information.

@@ -47,7 +47,7 @@ Checkout:

 ### Passed parameters

--   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.ts)
+-   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.ts)
 -   `extensions`: external data registered by third-party developers using `ExtendSchema`. If you used `ExtendSchema` on `wc/store/cart` you would find your data under your namespace here.
 -   `context`, equal to the name of the Block in which the fill is rendered: `woocommerce/cart` or `woocommerce/checkout`

@@ -89,7 +89,7 @@ Checkout:
 -   `showItems`: `Boolean|undefined` If we should show the content of each package, this is undefined in Cart and Checkout and is left to the actual package logic to decide.
 -   `noResultsMessage`: A React element that you can render if there are no shipping options.
 -   `renderOption`: a render function that takes a rate object and returns a render option.
--   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.ts)
+-   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.ts)
 -   `extensions`: external data registered by third-party developers using `ExtendSchema`, if you used `ExtendSchema` on `wc/store/cart` you would find your data under your namespace here.
 -   `components`: an object containing components you can use to render your own shipping rates, it contains `ShippingRatesControlPackage`.
 -   `context`, equal to the name of the Block in which the fill is rendered: `woocommerce/cart` or `woocommerce/checkout`
@@ -129,7 +129,7 @@ Checkout:
 ### Passed parameters

 -   `renderPickupLocation`: a render function that renders the address details of a local pickup option.
--   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.ts)
+-   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.ts)
 -   `extensions`: external data registered by third-party developers using `ExtendSchema`, if you used `ExtendSchema` on `wc/store/cart` you would find your data under your namespace here.
 -   `components`: an object containing components you can use to render your own pickup rates, it contains `ShippingRatesControlPackage` and `RadioControl`.

@@ -168,6 +168,6 @@ Checkout:

 ### Passed parameters

--   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.ts)
+-   `cart`: `wc/store/cart` data but in `camelCase` instead of `snake_case`. [Object breakdown.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.ts)
 -   `extensions`: external data registered by third-party developers using `ExtendSchema`, if you used `ExtendSchema` on `wc/store/cart` you would find your data under your namespace here.
 -   `context`, equal to the name of the Block in which the fill is rendered: `woocommerce/cart` or `woocommerce/checkout`
diff --git a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events.md b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events.md
index d567b2306ae..b14141645fc 100644
--- a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events.md
+++ b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events.md
@@ -205,7 +205,7 @@ import {

 The helper functions are described below:

--   `isSuccessResponse`, `isErrorResponse` and `isFailResponse`: These are helper functions that receive a value and report via boolean whether the object is a type of response expected. For event emitters that receive responses from registered observers, a `type` property on the returned object from the observer indicates what type of response it is and event emitters will react according to that type. So for instance if an observer returned `{ type: 'success' }` the emitter could feed that to `isSuccessResponse` and it would return `true`. You can see an example of this being implemented for the [payment processing emitted event here](https://github.com/woocommerce/woocommerce/blob/df02d62e2d41e9007da44cb87fea2b7a9551f55c/plugins/woocommerce/client/blocks/assets/js/types/type-guards/observers.ts#L41-L65).
+-   `isSuccessResponse`, `isErrorResponse` and `isFailResponse`: These are helper functions that receive a value and report via boolean whether the object is a type of response expected. For event emitters that receive responses from registered observers, a `type` property on the returned object from the observer indicates what type of response it is and event emitters will react according to that type. So for instance if an observer returned `{ type: 'success' }` the emitter could feed that to `isSuccessResponse` and it would return `true`. You can see an example of this being implemented for the [payment processing emitted event here](https://github.com/woocommerce/woocommerce/blob/df02d62e2d41e9007da44cb87fea2b7a9551f55c/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/observers.ts#L41-L65).
 -   `noticeContexts`: This is an object containing properties referencing areas where notices can be targeted in the checkout. The object has the following properties:
     -   `PAYMENTS`: This is a reference to the notice area in the payment methods step.
     -   `EXPRESS_PAYMENTS`: This is a reference to the notice area in the express payment methods step.
@@ -301,8 +301,8 @@ const successResponse = { type: 'success' };
 When a success response is returned, the payment method context status will be changed to `SUCCESS`. In addition, including any of the additional properties will result in extra actions:

 -   `paymentMethodData`: The contents of this object will be included as the value for `payment_data` when checkout sends a request to the checkout endpoint for processing the order. This is useful if a payment method does additional server side processing.
--   `billingAddress`: This allows payment methods to update any billing data information in the checkout (typically used by Express payment methods) so it's included in the checkout processing request to the server. This data should be in the [shape outlined here](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/settings/shared/default-fields.ts).
--   `shippingAddress`: This allows payment methods to update any shipping data information for the order (typically used by Express payment methods) so it's included in the checkout processing request to the server. This data should be in the [shape outlined here](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/settings/shared/default-fields.ts).
+-   `billingAddress`: This allows payment methods to update any billing data information in the checkout (typically used by Express payment methods) so it's included in the checkout processing request to the server. This data should be in the [shape outlined here](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/settings/default-fields.ts).
+-   `shippingAddress`: This allows payment methods to update any shipping data information for the order (typically used by Express payment methods) so it's included in the checkout processing request to the server. This data should be in the [shape outlined here](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/settings/default-fields.ts).

 If `billingAddress` or `shippingAddress` properties aren't in the response object, then the state for the data is left alone.

diff --git a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration.md b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration.md
index a57d0ade17c..e12778b88a1 100644
--- a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration.md
+++ b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration.md
@@ -259,7 +259,7 @@ registerPaymentMethod( {

 ## Props Fed to Payment Method Nodes

-A big part of the payment method integration is the interface that is exposed for payment methods to use via props when the node provided is cloned and rendered on block mount. While all the props are listed below, you can find more details about what the props reference, their types etc via the [typedefs described in this file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/types/type-defs/payment-method-interface.ts).
+A big part of the payment method integration is the interface that is exposed for payment methods to use via props when the node provided is cloned and rendered on block mount. While all the props are listed below, you can find more details about what the props reference, their types etc via the [typedefs described in this file](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/payment-method-interface.ts).

 | Property | Type | Description |
 | --- | --- | --- |
diff --git a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/README.md b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/README.md
index f1bb51a04d4..68d694034e9 100644
--- a/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/README.md
+++ b/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/README.md
@@ -6,7 +6,7 @@ post_title: Cart and Checkout - Available Filters

 # Available Filters

-This document lists the filters that are currently available to extensions and offers usage information for each one of them. Information on registering filters can be found on the [Checkout - Filter Registry](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/README.md) page.
+This document lists the filters that are currently available to extensions and offers usage information for each one of them. Information on registering filters can be found on the [Checkout - Filter Registry](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/README.md) page.

 ## Cart Line Items filters

diff --git a/docs/block-development/getting-started/extensibility-overview.md b/docs/block-development/getting-started/extensibility-overview.md
index 1eae11c1769..5f8130521c7 100644
--- a/docs/block-development/getting-started/extensibility-overview.md
+++ b/docs/block-development/getting-started/extensibility-overview.md
@@ -26,40 +26,40 @@ See [@woocommerce/dependency-extraction-webpack-plugin](https://www.npmjs.com/pa

 ## Hooks (actions and filters)

-| Document                                                                                                                                               | Description                                                 |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- |
-| [Actions](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/hooks/actions.md)  | Documentation covering action hooks on the server side.     |
-| [Filters](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/hooks/filters.md) | Documentation covering filter hooks on the server side.     |
-| [Migrated Hooks](/docs/block-development/reference/hooks/migrated-hooks/)                                                               | Documentation covering the migrated WooCommerce core hooks. |
+| Document | Description |
+| --- | --- |
+| [Actions](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/hooks/actions.md) | Documentation covering action hooks on the server side. |
+| [Filters](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/hooks/filters.md) | Documentation covering filter hooks on the server side. |
+| [Migrated Hooks](/docs/block-development/reference/hooks/migrated-hooks/) | Documentation covering the migrated WooCommerce core hooks. |

 ## REST API

-| Document                                                                                                                                                                                                                | Description                                                         |
-| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
-| [Exposing your data in the Store API.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-data.md)                 | Explains how you can add additional data to Store API endpoints.    |
-| [Available endpoints to extend with ExtendSchema](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/available-endpoints-to-extend.md) | A list of all available endpoints to extend.                        |
-| [Available Formatters](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-formatters.md)                               | Available `Formatters` to format data for use in the Store API.     |
-| [Updating the cart with the Store API](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-update-cart.md)              | Update the server-side cart following an action from the front-end. |
+| Document | Description |
+| --- | --- |
+| [Exposing your data in the Store API.](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-add-data.md) | Explains how you can add additional data to Store API endpoints. |
+| [Available endpoints to extend with ExtendSchema](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/available-endpoints-to-extend.md) | A list of all available endpoints to extend. |
+| [Available Formatters](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-formatters.md) | Available `Formatters` to format data for use in the Store API. |
+| [Updating the cart with the Store API](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/docs/third-party-developers/extensibility/rest-api/extend-rest-api-update-cart.md) | Update the server-side cart following an action from the front-end. |

 ## Checkout Payment Methods

-| Document                                                                                                                                  | Description                                                                                                 |
-| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
-| [Checkout Flow and Events](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events/)                            | All about the checkout flow in the checkout block and the various emitted events that can be subscribed to. |
-| [Payment Method Integration](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration/) | Information about implementing payment methods.                                                             |
-| [Filtering Payment Methods](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/filtering-payment-methods/)    | Information about filtering the payment methods available in the Checkout Block.                            |
+| Document | Description |
+| --- | --- |
+| [Checkout Flow and Events](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/checkout-flow-and-events/) | All about the checkout flow in the checkout block and the various emitted events that can be subscribed to. |
+| [Payment Method Integration](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/payment-method-integration/) | Information about implementing payment methods. |
+| [Filtering Payment Methods](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/checkout-payment-methods/filtering-payment-methods/) | Information about filtering the payment methods available in the Checkout Block. |

 ## Checkout Block

-In addition to the reference material below, [please see the `block-checkout` package documentation](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/checkout/README.md) which is used to extend checkout with Filters, Slot Fills, and Inner Blocks.
-
-| Document                                                                                                                                         | Description                                                                                                       |
-| ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
-| [How the Checkout Block processes an order](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/how-checkout-processes-an-order/) | The detailed inner workings of the Checkout Flow.                                                                 |
-| [IntegrationInterface](/docs/block-development/reference/integration-interface/)                               | The `IntegrationInterface` class and how to use it to register scripts, styles, and data with WooCommerce Blocks. |
-| [Available Filters](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/)                                 | All about the filters that you may use to change values of certain elements of WooCommerce Blocks.                |
-| [Slots and Fills](/docs/block-development/reference/slot-fills/)                                                       | Explains Slot Fills and how to use them to render your own components in Cart and Checkout.                       |
-| [Available Slot Fills](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills/)                                                | Available Slots that you can use and their positions in Cart and Checkout.                                        |
-| [DOM Events](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/dom-events/)                                                               | A list of DOM Events used by some blocks to communicate between them and with other parts of WooCommerce.         |
-| [Filter Registry](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/README.md)  | The filter registry allows callbacks to be registered to manipulate certain values.                               |
-| [Additional Checkout Fields](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/additional-checkout-fields/)                               | The filter registry allows callbacks to be registered to manipulate certain values.                               |
+In addition to the reference material below, [please see the `block-checkout` package documentation](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/README.md) which is used to extend checkout with Filters, Slot Fills, and Inner Blocks.
+
+| Document | Description |
+| --- | --- |
+| [How the Checkout Block processes an order](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/how-checkout-processes-an-order/) | The detailed inner workings of the Checkout Flow. |
+| [IntegrationInterface](/docs/block-development/reference/integration-interface/) | The `IntegrationInterface` class and how to use it to register scripts, styles, and data with WooCommerce Blocks. |
+| [Available Filters](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/filters-in-cart-and-checkout/) | All about the filters that you may use to change values of certain elements of WooCommerce Blocks. |
+| [Slots and Fills](/docs/block-development/reference/slot-fills/) | Explains Slot Fills and how to use them to render your own components in Cart and Checkout. |
+| [Available Slot Fills](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills/) | Available Slots that you can use and their positions in Cart and Checkout. |
+| [DOM Events](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/dom-events/) | A list of DOM Events used by some blocks to communicate between them and with other parts of WooCommerce. |
+| [Filter Registry](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/README.md) | The filter registry allows callbacks to be registered to manipulate certain values. |
+| [Additional Checkout Fields](/docs/block-development/extensible-blocks/cart-and-checkout-blocks/additional-checkout-fields/) | The filter registry allows callbacks to be registered to manipulate certain values. |
diff --git a/packages/js/components/README.md b/packages/js/components/README.md
index 8daf7e3bcb3..cb6fb053e47 100644
--- a/packages/js/components/README.md
+++ b/packages/js/components/README.md
@@ -39,7 +39,7 @@ If you are using these components in a project that uses Jest for testing, you m
 Cannot find module '@woocommerce/settings' from 'node_modules/@woocommerce/experimental/node_modules/@woocommerce/navigation/build/index.js'
 ```

-To fix this, you will need to mock the `@woocommerce/settings` because it's an alias that points to the `window.wcSettings`, which in turn comes from and is maintained by the [WC Blocks](https://github.com/woocommerce/woocommerce-blocks) package, the front-end code for this is located [here](https://github.com/woocommerce/woocommerce-gutenberg-products-block/tree/trunk/assets/js/settings/shared).
+To fix this, you will need to mock the `@woocommerce/settings` because it's an alias that points to the `window.wcSettings`, which in turn comes from and is maintained by the [WC Blocks](https://github.com/woocommerce/woocommerce-blocks) package, the front-end code for this is located [plugins/woocommerce/client/blocks/packages/public-api/settings](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/client/blocks/packages/public-api/settings).

 This can be done by adding the following to your Jest config:

@@ -60,5 +60,5 @@ module.exports = {

 Then, you will need to create the following files:

-1. Create a new file called woocommerce-settings.js in the ./mock directory. You can find the content for this file [here](https://github.com/woocommerce/woocommerce/blob/trunk/packages/js/internal-js-tests/src/mocks/woocommerce-settings.js#L1).
-2. Next, create a file named setup-globals.js. You can find the content for this file [here](https://github.com/woocommerce/woocommerce/blob/trunk/packages/js/internal-js-tests/src/setup-globals.js#L44). The purpose of this file is to mock the wcSettings global variable.
+1. Create a new file called woocommerce-settings.js in the ./mock directory. You can find the content for this file [packages/js/internal-js-tests/src/mocks/woocommerce-settings.js#L1](https://github.com/woocommerce/woocommerce/blob/trunk/packages/js/internal-js-tests/src/mocks/woocommerce-settings.js#L1).
+2. Next, create a file named setup-globals.js. You can find the content for this file [packages/js/internal-js-tests/src/setup-globals.js#L44](https://github.com/woocommerce/woocommerce/blob/trunk/packages/js/internal-js-tests/src/setup-globals.js#L44). The purpose of this file is to mock the wcSettings global variable.
diff --git a/plugins/woocommerce/client/blocks/CLAUDE.md b/plugins/woocommerce/client/blocks/CLAUDE.md
index 5ad512aaf84..88098e5c923 100644
--- a/plugins/woocommerce/client/blocks/CLAUDE.md
+++ b/plugins/woocommerce/client/blocks/CLAUDE.md
@@ -47,15 +47,17 @@ client/blocks/
 │   ├── atomic/              # Atomic/primitive blocks (product elements)
 │   ├── base/                # Shared components, context, hooks, stores
 │   │   └── stores/woocommerce/  # Interactivity API stores (LOCKED)
-│   ├── data/                # WordPress @data stores (Collections, Query State, Schema)
 │   ├── editor-components/   # 33+ shared editor UI components
 │   ├── extensions/          # Extension integrations
-│   ├── types/               # Shared TypeScript types
 │   └── utils/               # Utility functions
-├── packages/                # Packages exposed as window.wc.* globals (see below)
-│   ├── checkout/            # Checkout registry, slot/fill, filters
-│   ├── components/          # 23+ shared components
-│   └── prices/              # Price formatting and currency
+├── packages/
+│   ├── public-api/          # Supported package-root extension contracts
+│   │   ├── block-data/      # WordPress @data stores
+│   │   ├── blocks-checkout/ # Checkout registry, slot/fill, filters
+│   │   ├── blocks-components/
+│   │   └── ...              # Events, settings, types, and shared APIs
+│   └── internal/
+│       └── entities/        # Runtime-only external; not an extension API
 ├── tests/
 │   └── js/                  # Jest unit tests
 ├── bin/                     # Build scripts (webpack configs, ESLint plugin)
@@ -158,7 +160,12 @@ Block scripts are only enqueued when the block is actually rendered on the page,

 ## Webpack Externals (`window.wc.*`)

-Packages in `packages/` and core modules are built as webpack externals, exposed on `window.wc`. The mapping lives in `bin/webpack-helpers.js` (`wcDepMap`):
+API stability and asset externalization are separate concepts. Supported
+extension contracts live in `packages/public-api/`; runtime-only packages live
+in `packages/internal/`. Both kinds may be built as webpack externals and
+exposed on `window.wc`.
+
+The mapping lives in `bin/webpack-helpers.js` (`wcDepMap`):

 | Import | Global | Script handle |
 | ------ | ------ | ------------- |
@@ -173,9 +180,19 @@ Packages in `packages/` and core modules are built as webpack externals, exposed
 | `@woocommerce/shared-hocs` | `wc.wcBlocksSharedHocs` | `wc-blocks-shared-hocs` |
 | `@woocommerce/types` | `wc.wcTypes` | `wc-types` |

-`@woocommerce/blocks-checkout-events` is a pub/sub event emitter for checkout lifecycle hooks (`onCheckoutValidation`, `onCheckoutSuccess`, `onCheckoutFail`). Third-party extensions use it to run validation or react to checkout outcomes. Source: `assets/js/events/`.
+`@woocommerce/blocks-checkout-events` is a pub/sub event emitter for checkout lifecycle hooks (`onCheckoutValidation`, `onCheckoutSuccess`, `onCheckoutFail`). Third-party extensions use it to run validation or react to checkout outcomes. Source: `packages/public-api/blocks-checkout-events/`.
+
+Third-party extensions consume these as externals. Stable package-root exports
+are public API, so changing them without a deprecation path is a breaking
+change. Deep imports and exports prefixed with `__experimental` or `__unstable`
+are not stable unless separately documented.
+
+`@woocommerce/entities` is externalized as `wc.wcEntities` to share one runtime
+instance, but it remains internal under `packages/internal/entities/`. Its
+externalized build does not make it public API.

-Third-party extensions consume these as externals — changing the public API of these packages is a breaking change.
+The Blocks `package.json` uses `"private": true` to prevent npm publication.
+That field does not determine whether a browser API is public.

 ## Build System

diff --git a/plugins/woocommerce/client/blocks/assets/js/base/README.MD b/plugins/woocommerce/client/blocks/assets/js/base/README.MD
index f7f51087d1d..cc789cbff68 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/README.MD
+++ b/plugins/woocommerce/client/blocks/assets/js/base/README.MD
@@ -2,7 +2,7 @@

 Base components are designed to be used on the frontend of a store. Due to this, we need to avoid using heavy WordPress externals as dependencies (`@wordpress/blocks`, `@wordpress/block-editor`, etc).

-Note 2 exceptions, we do use the `Slot` and `Fill` which we [import and bundle](../../../packages/checkout/slot/index.js) from `@wordpress/components`. Otherwise you should avoid importing anything else from that package.
+Note 2 exceptions, we do use the `Slot` and `Fill` which we [import and bundle](../../../packages/public-api/blocks-checkout/slot/index.js) from `@wordpress/components`. Otherwise you should avoid importing anything else from that package.

 The other exception is the `FormTokenField`, which is used in deprecated blocks and use of [that import](../base/components/form-token-field/) is also deprecated.

diff --git a/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/address-autocomplete/address-autocomplete.tsx b/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/address-autocomplete/address-autocomplete.tsx
index f5b1ac2af89..2c7ee9a5b7f 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/address-autocomplete/address-autocomplete.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/address-autocomplete/address-autocomplete.tsx
@@ -5,6 +5,7 @@ import {
 	ValidatedTextInput,
 	type ValidatedTextInputHandle,
 } from '@woocommerce/blocks-components';
+import type { ValidatedTextInputProps } from '@woocommerce/blocks-components/text-input/types';
 import type {
 	AddressAutocompleteResult,
 	ServerAddressAutocompleteProvider,
@@ -18,7 +19,6 @@ import { useCheckoutAddress } from '@woocommerce/base-context';
 /**
  * Internal dependencies
  */
-import { ValidatedTextInputProps } from '../../../../../../packages/components/text-input/types';
 import './style.scss';
 import { Suggestions } from './suggestions';
 import { useUpdatePreferredAutocompleteProvider } from '../../../hooks/use-update-preferred-autocomplete-provider';
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/totals/discount/test/index.tsx b/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/totals/discount/test/index.tsx
index c9be055f1ea..0f8465f5ba9 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/totals/discount/test/index.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/base/components/cart-checkout/totals/discount/test/index.tsx
@@ -7,12 +7,12 @@ import { applyCheckoutFilter } from '@woocommerce/blocks-checkout';
 import { getSetting } from '@woocommerce/settings';
 import { CartResponseTotalsItem } from '@woocommerce/type-defs/cart-response';
 import type { LoadingMaskProps } from '@woocommerce/base-components/loading-mask';
+import type { RemovableChipProps } from '@woocommerce/blocks-components/chip/removable-chip';
+import type { TotalsItemProps } from '@woocommerce/blocks-components/totals/item';
 /**
  * Internal dependencies
  */
 import TotalsDiscount, { TotalsDiscountProps } from '..';
-import { RemovableChipProps } from '../../../../../../../../packages/components/chip/removable-chip';
-import { TotalsItemProps } from '../../../../../../../../packages/components/totals/item';

 // Mock external dependencies
 jest.mock( '@woocommerce/settings', () => ( {
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/components/load-more-button/index.tsx b/plugins/woocommerce/client/blocks/assets/js/base/components/load-more-button/index.tsx
index 53b5bbe4805..d265afac8fc 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/components/load-more-button/index.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/base/components/load-more-button/index.tsx
@@ -3,12 +3,12 @@
  */
 import { __ } from '@wordpress/i18n';
 import type { MouseEventHandler } from 'react';
+import Label from '@woocommerce/blocks-components/label'; // Import the component directly because the package root also loads data stores.

 /**
  * Internal dependencies
  */
 import './style.scss';
-import Label from '../../../../../packages/components/label'; // Imported like this because importing from the components package loads the data stores unnecessarily - not a problem in the front end but would require a lot of unit test rewrites to prevent breaking tests due to incorrect mocks.

 interface LoadMoreButtonProps {
 	onClick: MouseEventHandler;
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/components/sidebar-layout/style.scss b/plugins/woocommerce/client/blocks/assets/js/base/components/sidebar-layout/style.scss
index 8a87483e33d..4e76035bb64 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/components/sidebar-layout/style.scss
+++ b/plugins/woocommerce/client/blocks/assets/js/base/components/sidebar-layout/style.scss
@@ -53,7 +53,7 @@
 		.wc-block-components-totals-item,
 		.wc-block-components-panel,
 		// Increase specificity to overwrite the rule from the TotalsWrapper component
-		// https://github.com/woocommerce/woocommerce/blob/74e823c0324289cff7361629ff8cc677c45dce0f/plugins/woocommerce/client/blocks/packages/components/totals-wrapper/style.scss#L24
+		// https://github.com/woocommerce/woocommerce/blob/74e823c0324289cff7361629ff8cc677c45dce0f/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/style.scss#L24
 		.slot-wrapper .wc-block-components-panel,
 		.wc-block-components-totals-coupon {
 			padding-left: $gap;
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/cart/test/use-store-cart-item-quantity.js b/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/cart/test/use-store-cart-item-quantity.js
index 84df7c4da17..f91d77e9ba4 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/cart/test/use-store-cart-item-quantity.js
+++ b/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/cart/test/use-store-cart-item-quantity.js
@@ -8,9 +8,9 @@ import { CART_STORE_KEY, CHECKOUT_STORE_KEY } from '@woocommerce/block-data';
 /**
  * Internal dependencies
  */
+import { config as checkoutStoreConfig } from '@woocommerce/block-data/checkout';
 import * as mockUseStoreCart from '../use-store-cart';
 import { useStoreCartItemQuantity } from '../use-store-cart-item-quantity';
-import { config as checkoutStoreConfig } from '../../../../../data/checkout';

 jest.mock( '../use-store-cart', () => ( {
 	useStoreCart: jest.fn(),
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/test/use-checkout-submit.js b/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/test/use-checkout-submit.js
index 13a89e20187..0c8785b533b 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/test/use-checkout-submit.js
+++ b/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/test/use-checkout-submit.js
@@ -7,15 +7,15 @@ import { createRegistry, RegistryProvider } from '@wordpress/data';
 /**
  * Internal dependencies
  */
-import { useCheckoutSubmit } from '../use-checkout-submit';
 import {
 	CHECKOUT_STORE_KEY,
 	config as checkoutStoreConfig,
-} from '../../../../data/checkout';
+} from '@woocommerce/block-data/checkout';
 import {
 	PAYMENT_STORE_KEY,
 	config as paymentDataStoreConfig,
-} from '../../../../data/payment';
+} from '@woocommerce/block-data/payment';
+import { useCheckoutSubmit } from '../use-checkout-submit';

 jest.mock( '../../providers/cart-checkout/checkout-events', () => {
 	const original = jest.requireActual(
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/tsconfig.json b/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/tsconfig.json
index 363ec666e1e..5632d30e948 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/tsconfig.json
+++ b/plugins/woocommerce/client/blocks/assets/js/base/context/hooks/tsconfig.json
@@ -3,9 +3,9 @@
 	"compilerOptions": {},
 	"include": [
 		".",
-		"../../../../../assets/js/events/*",
-		"../../../../../packages/checkout/index.js",
-		"../../../../../packages/prices/index.js",
+		"../../../../../packages/public-api/blocks-checkout-events/*",
+		"../../../../../packages/public-api/blocks-checkout/index.js",
+		"../../../../../packages/public-api/price-format/index.js",
 		"../providers/cart-checkout/checkout-events/index.tsx",
 		"../providers/cart-checkout/payment-events/index.tsx",
 		"../providers/cart-checkout/shipping/index.js",
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/context/providers/cart-checkout/checkout-events/index.tsx b/plugins/woocommerce/client/blocks/assets/js/base/context/providers/cart-checkout/checkout-events/index.tsx
index bf9cd430cf1..8e6881b426c 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/context/providers/cart-checkout/checkout-events/index.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/base/context/providers/cart-checkout/checkout-events/index.tsx
@@ -34,12 +34,12 @@ import {
 /**
  * Internal dependencies
  */
+import type { EventListenerRegistrationFunction } from '@woocommerce/blocks-checkout-events/event-emitter';
 import { reducer as emitReducer } from './event-emit';
 import { emitterCallback, noticeContexts } from '../../../event-emit';
 import { useStoreEvents } from '../../../hooks/use-store-events';

 import { useEditorContext } from '../../editor-context';
-import { EventListenerRegistrationFunction } from '../../../../../events/event-emitter';

 type CheckoutEventsContextType = {
 	// Submits the checkout and begins processing.
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/hooks/test/use-schema-parser.tsx b/plugins/woocommerce/client/blocks/assets/js/base/hooks/test/use-schema-parser.tsx
index 68b60eb5df0..07af4778659 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/hooks/test/use-schema-parser.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/base/hooks/test/use-schema-parser.tsx
@@ -10,10 +10,10 @@ import { WPDataRegistry } from '@wordpress/data/build-types/registry';
 /**
  * Internal dependencies
  */
+import { CheckoutState } from '@woocommerce/block-data/checkout/default-state';
+import { PaymentState } from '@woocommerce/block-data/payment/default-state';
+import { CartState } from '@woocommerce/block-data/cart/default-state';
 import { useSchemaParser, type DocumentObject } from '../use-schema-parser';
-import { CheckoutState } from '../../../data/checkout/default-state';
-import { PaymentState } from '../../../data/payment/default-state';
-import { CartState } from '../../../data/cart/default-state';
 import checkoutSchema from './checkout-document-schema.json';

 // Mock the stores
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/hooks/use-update-preferred-autocomplete-provider.ts b/plugins/woocommerce/client/blocks/assets/js/base/hooks/use-update-preferred-autocomplete-provider.ts
index e2517a117bc..7d8666dab51 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/hooks/use-update-preferred-autocomplete-provider.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/base/hooks/use-update-preferred-autocomplete-provider.ts
@@ -14,8 +14,8 @@ import type {
 /**
  * Internal dependencies
  */
-import { type CheckoutStoreDescriptor } from '../../data/checkout';
-import { type CartStoreDescriptor } from '../../data/cart';
+import { type CheckoutStoreDescriptor } from '@woocommerce/block-data/checkout';
+import { type CartStoreDescriptor } from '@woocommerce/block-data/cart';

 // Get server providers configuration
 const serverProviders = getSettingWithCoercion<
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/stores/woocommerce/shopper-lists.ts b/plugins/woocommerce/client/blocks/assets/js/base/stores/woocommerce/shopper-lists.ts
index 0de36fc4659..656b88f19b4 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/stores/woocommerce/shopper-lists.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/base/stores/woocommerce/shopper-lists.ts
@@ -321,7 +321,7 @@ const { state, actions } = store< Store >(
 // has a TODO about.
 //
 // Keeps the discriminator + payload contract in sync with
-// `assets/js/data/cart/thunks.ts::saveForLater`.
+// `packages/public-api/block-data/cart/thunks.ts::saveForLater`.
 window.addEventListener( 'wc-blocks_store_sync_required', ( event: Event ) => {
 	const detail = ( event as CustomEvent ).detail as
 		| { type?: string; slug?: string; item?: RawShopperListItem }
diff --git a/plugins/woocommerce/client/blocks/assets/js/base/utils/create-notice.ts b/plugins/woocommerce/client/blocks/assets/js/base/utils/create-notice.ts
index ee225edbb02..f5d75c7a45a 100644
--- a/plugins/woocommerce/client/blocks/assets/js/base/utils/create-notice.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/base/utils/create-notice.ts
@@ -12,9 +12,9 @@ import { CurriedSelectorsOf } from '@wordpress/data/build-types/types';
 /**
  * Internal dependencies
  */
+import type { PaymentStoreDescriptor } from '@woocommerce/block-data/payment';
+import type { StoreNoticesStoreDescriptor } from '@woocommerce/block-data/store-notices';
 import { noticeContexts } from '../context/event-emit/utils';
-import type { PaymentStoreDescriptor } from '../../data/payment';
-import type { StoreNoticesStoreDescriptor } from '../../data/store-notices';

 export const DEFAULT_ERROR_MESSAGE = __(
 	'Something went wrong. Please contact us to get assistance.',
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/attribute/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/attribute/edit.tsx
index 47b0aca9890..cc4b06d4e71 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/attribute/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/attribute/edit.tsx
@@ -22,6 +22,8 @@ import { isProductResponseItem } from '@woocommerce/entities';
 import type {
 	AttributeTerm,
 	ProductResponseAttributeItem,
+	SelectableItem,
+	SelectableItemsContext,
 } from '@woocommerce/types';
 import { __ } from '@wordpress/i18n';
 import {
@@ -41,10 +43,6 @@ import { getSetting } from '@woocommerce/settings';
  * Internal dependencies
  */
 import { DEFAULT_ATTRIBUTES, EMPTY_TERM_VISUALS } from './constants';
-import type {
-	SelectableItem,
-	SelectableItemsContext,
-} from '../../../../types/type-defs/selectable-items';
 import type { VisualAttributeTerm } from '../../../../base/utils/visual-attribute-terms';

 const INNER_CHIPS = 'woocommerce/product-filter-chips';
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/frontend.ts
index cd10cf2a5f2..3e0a59efe74 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/add-to-cart-with-options/variation-selector/frontend.ts
@@ -10,7 +10,7 @@ import {
 import { SelectedAttributes } from '@woocommerce/stores/woocommerce/cart';
 import '@woocommerce/stores/woocommerce/products';
 import type { ProductsStore } from '@woocommerce/stores/woocommerce/products';
-import type { ProductResponseItem } from '@woocommerce/types';
+import type { ProductResponseItem, SelectableItem } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -24,7 +24,6 @@ import type {
 	AddToCartWithOptionsStore,
 	Context as AddToCartWithOptionsStoreContext,
 } from '../frontend';
-import type { SelectableItem } from '../../../types/type-defs/selectable-items';
 import type { VisualAttributeTerm } from '../../../base/utils/visual-attribute-terms';

 type VariationOptionItem = {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/block.js b/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/block.js
index a72e8565205..27b83eafe9a 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/block.js
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/block.js
@@ -11,8 +11,8 @@ import { registerCheckoutFilters } from '@woocommerce/blocks-checkout';
 /**
  * Internal dependencies
  */
-import { defaultCartState } from '../../../data/cart/default-state';
-import { allSettings } from '../../../settings/shared/settings-init';
+import { defaultCartState } from '@woocommerce/block-data/cart/default-state';
+import { allSettings } from '@woocommerce/settings';

 import Cart from '../block';

diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/slots.js b/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/slots.js
index d1b7578bfa5..74736a6c25a 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/slots.js
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/cart/test/slots.js
@@ -12,7 +12,7 @@ import { registerPlugin } from '@wordpress/plugins';
 /**
  * Internal dependencies
  */
-import { defaultCartState } from '../../../data/cart/default-state';
+import { defaultCartState } from '@woocommerce/block-data/cart/default-state';

 import Cart from '../block';
 import OrderSummaryBlock from '../inner-blocks/cart-order-summary-block/frontend';
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-order-summary-block/frontend.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-order-summary-block/frontend.tsx
index 8148cee38fc..dee1585f1a4 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-order-summary-block/frontend.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-order-summary-block/frontend.tsx
@@ -8,12 +8,12 @@ import { __ } from '@wordpress/i18n';
 import { Icon, chevronDown, chevronUp } from '@wordpress/icons';
 import { useId, useState } from '@wordpress/element';
 import clsx from 'clsx';
+import { FormattedMonetaryAmount } from '@woocommerce/blocks-components';
 /**
  * Internal dependencies
  */
 import { OrderMetaSlotFill, CheckoutOrderSummaryFill } from './slotfills';
 import { useContainerWidthContext } from '../../../../base/context';
-import { FormattedMonetaryAmount } from '../../../../../../packages/components';
 import { FormStepHeading } from '../../form-step';

 const FrontendBlock = ( {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-shipping-method-block/block.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-shipping-method-block/block.tsx
index 41ecc25c1ae..5d6a50a7321 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-shipping-method-block/block.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-shipping-method-block/block.tsx
@@ -11,6 +11,7 @@ import { useDispatch, useSelect } from '@wordpress/data';
 import { isPackageRateCollectable } from '@woocommerce/base-utils';
 import { getSetting } from '@woocommerce/settings';
 import { Button } from '@ariakit/react';
+import { shippingAddressHasValidationErrors } from '@woocommerce/block-data/cart/utils';

 /**
  * Internal dependencies
@@ -18,7 +19,6 @@ import { Button } from '@ariakit/react';
 import { RatePrice, getLocalPickupPrices, getShippingPrices } from './shared';
 import type { minMaxPrices } from './shared';
 import { defaultLocalPickupText, defaultShippingText } from './constants';
-import { shippingAddressHasValidationErrors } from '../../../../data/cart/utils';

 const SHIPPING_RATE_ERROR = {
 	hidden: true,
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-terms-block/test/frontend.js b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-terms-block/test/frontend.js
index 043dfbfdeb0..4d75e7f082d 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-terms-block/test/frontend.js
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/inner-blocks/checkout-terms-block/test/frontend.js
@@ -17,12 +17,12 @@ import { validationStore } from '@woocommerce/block-data';
 /**
  * Internal dependencies
  */
+import * as actionCreators from '@woocommerce/block-data/validation/actions';
 import FrontendBlock from '../frontend';
-import * as actionCreators from '../../../../../data/validation/actions';

-jest.mock( '../../../../../data/validation/actions', () => {
+jest.mock( '@woocommerce/block-data/validation/actions', () => {
 	const actions = jest.requireActual(
-		'../../../../../data/validation/actions'
+		'@woocommerce/block-data/validation/actions'
 	);
 	return {
 		...actions,
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/test/block.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/test/block.tsx
index b012912a0a8..f0b7fb72688 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/test/block.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/checkout/test/block.tsx
@@ -17,6 +17,7 @@ import { server, http, HttpResponse } from '@woocommerce/test-utils/msw';
 /**
  * Internal dependencies
  */
+import { defaultCartState } from '@woocommerce/block-data/cart/default-state';
 import Fields from '../inner-blocks/checkout-fields-block/frontend';
 import ExpressPayment from '../inner-blocks/checkout-express-payment-block/block';
 import ContactInformation from '../inner-blocks/checkout-contact-information-block/frontend';
@@ -40,11 +41,9 @@ import Fee from '../inner-blocks/checkout-order-summary-fee/frontend';
 import Discount from '../inner-blocks/checkout-order-summary-discount/frontend';
 import Shipping from '../inner-blocks/checkout-order-summary-shipping/frontend';
 import Taxes from '../inner-blocks/checkout-order-summary-taxes/frontend';
-import { defaultCartState } from '../../../data/cart/default-state';
 import Checkout from '../block';

 jest.mock( '@wordpress/data', () =>
-	// eslint-disable-next-line @typescript-eslint/no-var-requires -- Must use require due to Jest mock hoisting
 	require( '@woocommerce/blocks-test-utils/mock-editor-store' ).mockWordPressDataWithEditorStore()
 );

diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/edit.tsx
index ab202a0f39a..0f60b1985f7 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/edit.tsx
@@ -11,7 +11,7 @@ import type { BlockEditProps } from '@wordpress/blocks';
 /**
  * Internal dependencies
  */
-import type { SelectableItemsBlockContext } from '../../types/type-defs/selectable-items';
+import type { SelectableItemsBlockContext } from '@woocommerce/types';
 import './editor.scss';
 import './style.scss';

diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/frontend.ts
index ead8dce0af0..740d48a7ced 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/dropdown/frontend.ts
@@ -6,7 +6,7 @@ import { store, getContext } from '@wordpress/interactivity';
 /**
  * Internal dependencies
  */
-import type { SelectableItem } from '../../types/type-defs/selectable-items';
+import type { SelectableItem } from '@woocommerce/types';

 type DropdownContext = {
 	storeNamespace: string;
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/mini-cart/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/mini-cart/frontend.ts
index b3609ee3126..0bcfa150bca 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/mini-cart/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/mini-cart/frontend.ts
@@ -16,15 +16,15 @@ import type {
 	Store as WooCommerce,
 	WooCommerceConfig,
 } from '@woocommerce/stores/woocommerce/cart';
+import {
+	formatPriceWithCurrency,
+	normalizeCurrencyResponse,
+} from '@woocommerce/price-format/utils/currency';

 /**
  * Internal dependencies
  */
-import {
-	formatPriceWithCurrency,
-	normalizeCurrencyResponse,
-} from '../../../../packages/prices/utils/currency';
-import { CartItem, Currency } from '../../types';
+import type { CartItem, Currency } from '@woocommerce/types';
 import { translateJQueryEventToNative } from '../../base/stores/woocommerce/legacy-events';
 import {
 	getEntryFieldRaw,
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/create-account/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/create-account/edit.tsx
index af08852de22..f376367bf47 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/create-account/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/create-account/edit.tsx
@@ -10,6 +10,7 @@ import {
 	InspectorControls,
 } from '@wordpress/block-editor';
 import { getSetting, ADMIN_URL } from '@woocommerce/settings';
+import { SITE_TITLE } from '@woocommerce/settings/default-constants';
 import {
 	Disabled,
 	PanelBody,
@@ -25,7 +26,6 @@ import {
  * Internal dependencies
  */
 import './style.scss';
-import { SITE_TITLE } from '../../../settings/shared/default-constants';
 import Form from './form';

 const defaultTemplate = [
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-collection/constants.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-collection/constants.ts
index 91e690b7990..c858d443458 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-collection/constants.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-collection/constants.ts
@@ -1,6 +1,6 @@
 /**
  * Purpose of this file:
- * This file defines constants for use in `plugins/woocommerce/client/blocks/assets/js/blocks-registry/product-collection/register-product-collection.tsx`.
+ * This file defines constants for use in `plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/product-collection/register-product-collection.tsx`.
  * By isolating constants here, we avoid loading unnecessary JS file on the frontend (e.g., the /shop page), enhancing site performance.
  *
  * Context: https://github.com/woocommerce/woocommerce/pull/48141#issuecomment-2208770592.
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/frontend.ts
index 7f63f63fe48..06465215a39 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/frontend.ts
@@ -2,12 +2,12 @@
  * External dependencies
  */
 import * as iAPI from '@wordpress/interactivity';
+import type { SelectableItemsParentStore } from '@woocommerce/types';

 /**
  * Internal dependencies
  */
 import { decodeHtmlEntities } from '../../utils/html-entities';
-import type { SelectableItemsParentStore } from '../../types/type-defs/selectable-items';
 import type {
 	ActiveFilterItem,
 	FilterItemFields,
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/edit.tsx
index ef58738d712..75bf981b09f 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/edit.tsx
@@ -6,6 +6,7 @@ import {
 	useInnerBlocksProps,
 	BlockContextProvider,
 } from '@wordpress/block-editor';
+import type { RemovableItemsContext } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -14,7 +15,6 @@ import { InitialDisabled } from '../../components/initial-disabled';
 import { EXCLUDED_BLOCKS } from '../../constants';
 import { getAllowedBlocks } from '../../utils/get-allowed-blocks';
 import { filtersPreview } from './constants';
-import type { RemovableItemsContext } from '../../../../types/type-defs/removable-items';

 const Edit = () => {
 	const { children, ...innerBlocksProps } = useInnerBlocksProps(
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/frontend.ts
index 5d1861f56c7..631a2f74578 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/active-filters/frontend.ts
@@ -2,16 +2,16 @@
  * External dependencies
  */
 import { store, getContext, getConfig } from '@wordpress/interactivity';
+import type {
+	RemovableItem,
+	RemovableItemsParentStore,
+} from '@woocommerce/types';

 /**
  * Internal dependencies
  */
 import type { ProductFiltersContext } from '../../types';
 import type { ProductFiltersStore } from '../../frontend';
-import type {
-	RemovableItem,
-	RemovableItemsParentStore,
-} from '../../../../types/type-defs/removable-items';
 import { PRODUCT_FILTERS_STORE_NAME } from '../../constants';

 type RemovableItemContext = {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/attribute-filter/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/attribute-filter/edit.tsx
index 228a4f43acb..1826cdb0c76 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/attribute-filter/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/attribute-filter/edit.tsx
@@ -19,6 +19,7 @@ import { withSpokenMessages } from '@wordpress/components';
 import { useEffect, useState } from '@wordpress/element';
 import { __ } from '@wordpress/i18n';
 import { getSetting } from '@woocommerce/settings';
+import type { SelectableItemsContext } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -31,7 +32,6 @@ import { getAttributeFromId } from './utils';
 import { getAllowedBlocks } from '../../utils/get-allowed-blocks';
 import { EXCLUDED_BLOCKS } from '../../constants';
 import { FilterOptionItem, FilterItemFields } from '../../types';
-import type { SelectableItemsContext } from '../../../../types/type-defs/selectable-items';
 import { InitialDisabled } from '../../components/initial-disabled';
 import { Notice } from '../../components/notice';
 import { sortFilterOptions } from '../../utils/sort-filter-options';
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/frontend.ts
index 8e702ae4363..e0820352f30 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/frontend.ts
@@ -2,14 +2,14 @@
  * External dependencies
  */
 import { store, getContext } from '@wordpress/interactivity';
+import type {
+	SelectableItem,
+	SelectableItemsParentStore,
+} from '@woocommerce/types';

 /**
  * Internal dependencies
  */
-import type {
-	SelectableItem,
-	SelectableItemsParentStore,
-} from '../../../../types/type-defs/selectable-items';
 import {
 	getVisualAttributeTermStyleString,
 	isVisualAttributeTermEmpty,
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/types.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/types.ts
index 8fa9485778c..a73467eddc8 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/types.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/checkbox-list/types.ts
@@ -6,7 +6,7 @@ import { BlockEditProps } from '@wordpress/blocks';
 /**
  * Internal dependencies
  */
-import type { SelectableItemsBlockContext } from '../../../../types/type-defs/selectable-items';
+import type { SelectableItemsBlockContext } from '@woocommerce/types';
 import type { VisualAttributeTerm } from '../../../../base/utils/visual-attribute-terms';

 export type Color = {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/frontend.ts
index 309910ccfde..0427b31b22d 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/frontend.ts
@@ -2,14 +2,14 @@
  * External dependencies
  */
 import { store, getContext, getElement } from '@wordpress/interactivity';
+import type {
+	SelectableItem,
+	SelectableItemsParentStore,
+} from '@woocommerce/types';

 /**
  * Internal dependencies
  */
-import type {
-	SelectableItem,
-	SelectableItemsParentStore,
-} from '../../../../types/type-defs/selectable-items';
 import {
 	getVisualAttributeTermStyleString,
 	isVisualAttributeTermEmpty,
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/types.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/types.ts
index a75452274a0..9dc993ba64c 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/types.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/chips/types.ts
@@ -6,7 +6,7 @@ import { BlockEditProps } from '@wordpress/blocks';
 /**
  * Internal dependencies
  */
-import type { SelectableItemsBlockContext } from '../../../../types/type-defs/selectable-items';
+import type { SelectableItemsBlockContext } from '@woocommerce/types';
 import type { VisualAttributeTerm } from '../../../../base/utils/visual-attribute-terms';

 export type Color = {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-filter/frontend.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-filter/frontend.ts
index b101b9b1880..6493ab95a19 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-filter/frontend.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-filter/frontend.ts
@@ -3,6 +3,7 @@
  */
 import type { HTMLElementEvent } from '@woocommerce/types';
 import * as iAPI from '@wordpress/interactivity';
+import type { RangeInputParentStore } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -10,7 +11,6 @@ import * as iAPI from '@wordpress/interactivity';
 import type { ProductFiltersContext } from '../../types';
 import type { ProductFiltersStore } from '../../frontend';
 import { formatPrice, getCurrency } from '../../utils/price-currency';
-import type { RangeInputParentStore } from '../../../../types/type-defs/range-input';
 import { PRODUCT_FILTERS_STORE_NAME } from '../../constants';

 const { store, getContext, getServerContext, getConfig } = iAPI;
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-slider/types.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-slider/types.ts
index 7a1daaf8efc..baf09c04257 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-slider/types.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/price-slider/types.ts
@@ -3,10 +3,7 @@
  */
 import type { BlockEditProps } from '@wordpress/blocks';

-/**
- * Internal dependencies
- */
-import type { RangeInputBlockContext } from '../../../../types/type-defs/range-input';
+import type { RangeInputBlockContext } from '@woocommerce/types';

 type Color = {
 	slug?: string;
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/rating-filter/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/rating-filter/edit.tsx
index 7c8988dc62e..6ce977a663d 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/rating-filter/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/rating-filter/edit.tsx
@@ -18,6 +18,7 @@ import { isBoolean } from '@woocommerce/types';
 import { useState, useMemo, useEffect } from '@wordpress/element';
 import { withSpokenMessages } from '@wordpress/components';
 import type { BlockEditProps } from '@wordpress/blocks';
+import type { SelectableItemsContext } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -30,7 +31,6 @@ import { EXCLUDED_BLOCKS } from '../../constants';
 import { Notice } from '../../components/notice';
 import type { Attributes } from './types';
 import type { FilterItemFields } from '../../types';
-import type { SelectableItemsContext } from '../../../../types/type-defs/selectable-items';
 import { InitialDisabled } from '../../components/initial-disabled';
 import RatingStars from './components/rating-stars';

diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/removable-chips/types.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/removable-chips/types.ts
index d7751154d76..e07a2454992 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/removable-chips/types.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/removable-chips/types.ts
@@ -2,11 +2,7 @@
  * External dependencies
  */
 import { BlockEditProps } from '@wordpress/blocks';
-
-/**
- * Internal dependencies
- */
-import type { RemovableItemsBlockContext } from '../../../../types/type-defs/removable-items';
+import type { RemovableItemsBlockContext } from '@woocommerce/types';

 export type Color = {
 	slug?: string;
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/status-filter/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/status-filter/edit.tsx
index 17540cd28b2..8ef910508ef 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/status-filter/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/status-filter/edit.tsx
@@ -10,6 +10,7 @@ import { useCollectionData } from '@woocommerce/base-context/hooks';
 import { __ } from '@wordpress/i18n';
 import { useMemo } from '@wordpress/element';
 import { getSetting } from '@woocommerce/settings';
+import type { SelectableItemsContext } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -18,7 +19,6 @@ import { InitialDisabled } from '../../components/initial-disabled';
 import { Inspector } from './inspector';
 import type { EditProps } from './types';
 import type { FilterItemFields } from '../../types';
-import type { SelectableItemsContext } from '../../../../types/type-defs/selectable-items';

 const Edit = ( props: EditProps ) => {
 	const { showCounts, hideEmpty } = props.attributes;
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/taxonomy-filter/edit.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/taxonomy-filter/edit.tsx
index 8e65383d3c4..f8b535c5423 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/taxonomy-filter/edit.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/inner-blocks/taxonomy-filter/edit.tsx
@@ -13,6 +13,7 @@ import { useSelect } from '@wordpress/data';
 import { store as coreStore } from '@wordpress/core-data';
 import { useCollectionData } from '@woocommerce/base-context/hooks';
 import { objectHasProp } from '@woocommerce/types';
+import type { SelectableItemsContext } from '@woocommerce/types';

 /**
  * Internal dependencies
@@ -23,7 +24,6 @@ import { EditProps } from './types';
 import { getAllowedBlocks } from '../../utils/get-allowed-blocks';
 import { EXCLUDED_BLOCKS } from '../../constants';
 import type { FilterOptionItem, FilterItemFields } from '../../types';
-import type { SelectableItemsContext } from '../../../../types/type-defs/selectable-items';
 import { InitialDisabled } from '../../components/initial-disabled';
 import { Notice } from '../../components/notice';
 import { getTaxonomyLabel } from './utils';
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/types.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/types.ts
index 1dbd7bd1d6d..8bf9e802a2e 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/types.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/types.ts
@@ -6,7 +6,7 @@ import type { BlockEditProps } from '@wordpress/blocks';
 /**
  * Internal dependencies
  */
-import type { SelectableItem } from '../../types/type-defs/selectable-items';
+import type { SelectableItem } from '@woocommerce/types';
 import type { VisualAttributeTerm } from '../../base/utils/visual-attribute-terms';

 // ----------------------------------------
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/utils/price-currency.ts b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/utils/price-currency.ts
index 698f4fbc3e5..c5222bf217d 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/utils/price-currency.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/product-filters/utils/price-currency.ts
@@ -7,15 +7,14 @@ import {
 	type CartShippingPackageShippingRate,
 } from '@woocommerce/types';
 import { getConfig } from '@wordpress/interactivity';
-
-/**
- * Internal dependencies
- */
 import {
 	getCurrencyPrefix,
 	getCurrencySuffix,
-} from '../../../settings/shared/utils';
+} from '@woocommerce/settings/utils';

+/**
+ * Internal dependencies
+ */
 const currencyConfig = getConfig( 'woocommerce' ).currency;

 const siteCurrency: Currency = {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/stock-filter/test/block.tsx b/plugins/woocommerce/client/blocks/assets/js/blocks/stock-filter/test/block.tsx
index a0f47cadcc3..6dee6318cea 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/stock-filter/test/block.tsx
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/stock-filter/test/block.tsx
@@ -15,11 +15,11 @@ import {
 } from '@testing-library/react';
 import userEvent from '@testing-library/user-event';
 import { server } from '@woocommerce/test-utils/msw';
+import { allSettings } from '@woocommerce/settings';

 /**
  * Internal dependencies
  */
-import { allSettings } from '../../../settings/shared/settings-init';
 import Block from '../block';
 import { Attributes } from '../types';

diff --git a/plugins/woocommerce/client/blocks/assets/js/utils/is-widget-editor-page.ts b/plugins/woocommerce/client/blocks/assets/js/utils/is-widget-editor-page.ts
index 2d778c2632a..fea1dd46cc1 100644
--- a/plugins/woocommerce/client/blocks/assets/js/utils/is-widget-editor-page.ts
+++ b/plugins/woocommerce/client/blocks/assets/js/utils/is-widget-editor-page.ts
@@ -1,7 +1,7 @@
 /**
- * Internal dependencies
+ * External dependencies
  */
-import { isObject } from '../types/type-guards';
+import { isObject } from '@woocommerce/types/type-guards';

 export const isWidgetEditorPage = ( store: unknown ): boolean => {
 	if ( isObject( store ) ) {
diff --git a/plugins/woocommerce/client/blocks/bin/add-doc-footer.sh b/plugins/woocommerce/client/blocks/bin/add-doc-footer.sh
index 3fe18def4dd..049436ae966 100755
--- a/plugins/woocommerce/client/blocks/bin/add-doc-footer.sh
+++ b/plugins/woocommerce/client/blocks/bin/add-doc-footer.sh
@@ -23,7 +23,7 @@ find ./docs -name "*.md" ! -path "./docs/examples*"  ! -path "./docs/internal-de
   update_footer $filename
 done

-find ./packages/checkout -name "*.md"|while read filename; do
+find ./packages/public-api/blocks-checkout -name "*.md"|while read filename; do
   update_footer $filename
 done

diff --git a/plugins/woocommerce/client/blocks/bin/webpack-config-block-editor-unified-assets.js b/plugins/woocommerce/client/blocks/bin/webpack-config-block-editor-unified-assets.js
index 1a5edb9cdba..ef3e34d217f 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-config-block-editor-unified-assets.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-config-block-editor-unified-assets.js
@@ -78,22 +78,25 @@ const requestToUnifiedEditorHandle = ( request ) => {
 };

 const getUnifiedEditorPackageAliases = () => ( {
-	'@woocommerce/block-data': path.resolve( __dirname, `../assets/js/data` ),
+	'@woocommerce/block-data': path.resolve(
+		__dirname,
+		`../packages/public-api/block-data`
+	),
 	'@woocommerce/blocks-checkout': path.resolve(
 		__dirname,
-		`../packages/checkout`
+		`../packages/public-api/blocks-checkout`
 	),
 	'@woocommerce/blocks-checkout-events': path.resolve(
 		__dirname,
-		`../assets/js/events`
+		`../packages/public-api/blocks-checkout-events`
 	),
 	'@woocommerce/blocks-components': path.resolve(
 		__dirname,
-		`../packages/components`
+		`../packages/public-api/blocks-components`
 	),
 	'@woocommerce/blocks-registry': path.resolve(
 		__dirname,
-		`../assets/js/blocks-registry`
+		`../packages/public-api/blocks-registry`
 	),
 	'@woocommerce/data': path.resolve(
 		__dirname,
@@ -101,7 +104,7 @@ const getUnifiedEditorPackageAliases = () => ( {
 	),
 	'@woocommerce/price-format': path.resolve(
 		__dirname,
-		`../packages/prices`
+		`../packages/public-api/price-format`
 	),
 	'@woocommerce/sanitize': path.resolve(
 		__dirname,
@@ -109,15 +112,15 @@ const getUnifiedEditorPackageAliases = () => ( {
 	),
 	'@woocommerce/settings': path.resolve(
 		__dirname,
-		`../assets/js/settings/shared`
+		`../packages/public-api/settings`
 	),
 	'@woocommerce/shared-context': path.resolve(
 		__dirname,
-		`../assets/js/shared/context/`
+		`../packages/public-api/shared-context/`
 	),
 	'@woocommerce/shared-hocs': path.resolve(
 		__dirname,
-		`../assets/js/shared/hocs/`
+		`../packages/public-api/shared-hocs/`
 	),
 } );

diff --git a/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js b/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js
index c77c2330e62..47c691ff726 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js
@@ -16,7 +16,7 @@ const {
  * Internal dependencies
  */
 const RemoveFilesPlugin = require( './remove-files-webpack-plugin' );
-const { getResolve } = require( './webpack-helpers' );
+const { getAlias, getResolve } = require( './webpack-helpers' );
 const FilesystemCacheWarningsPlugin = require( './filesystem-cache-warnings-webpack-plugin.js' );
 const { sharedOptimizationConfig } = require( './webpack-shared-config' );
 const {
@@ -73,7 +73,7 @@ module.exports = {
 		module: true,
 	},
 	resolve: {
-		...getResolve(),
+		...getResolve( { alias: getAlias() } ),
 		extensions: [ '.js', '.ts', '.tsx' ],
 	},
 	plugins: [
diff --git a/plugins/woocommerce/client/blocks/bin/webpack-configs.js b/plugins/woocommerce/client/blocks/bin/webpack-configs.js
index 3622b78085f..eae229beb69 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-configs.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-configs.js
@@ -860,7 +860,7 @@ const getCartAndCheckoutFrontendConfig = ( options = {} ) => {
 					},
 					base: {
 						// A refined include blocks and settings that are shared between cart and checkout that produces the smallest possible bundle.
-						test: /assets[\\/]js[\\/](settings|previews|base|data|utils|blocks[\\/]cart-checkout-shared|icons)|packages[\\/](checkout|components)|atomic[\\/]utils/,
+						test: /assets[\\/]js[\\/](settings|previews|base|utils|blocks[\\/]cart-checkout-shared|icons)|packages[\\/]public-api[\\/](block-data|blocks-checkout|blocks-components|settings)[\\/]|atomic[\\/]utils/,
 						name: 'wc-cart-checkout-base',
 						chunks: 'all',
 						enforce: true,
diff --git a/plugins/woocommerce/client/blocks/bin/webpack-entries.js b/plugins/woocommerce/client/blocks/bin/webpack-entries.js
index c32eb5c119c..ab51a5bd5bf 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-entries.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-entries.js
@@ -338,10 +338,13 @@ const blockStylingEntries = getBlockEntries(

 const entries = {
 	styling: {
-		// Packages styles
-		'packages-style': glob.sync( './packages/**/index.{t,j}s', {
-			dotRelative: true,
-		} ),
+		// Package entry points included in the styling build.
+		'packages-style': glob.sync(
+			'./packages/public-api/{price-format,blocks-components,blocks-checkout}/**/index.{t,j}s',
+			{
+				dotRelative: true,
+			}
+		),

 		// Shared blocks code
 		'wc-blocks': './assets/js/index.js',
@@ -353,17 +356,18 @@ const entries = {
 		...blockStylingEntries,
 	},
 	core: {
-		wcBlocksRegistry: './assets/js/blocks-registry/index.js',
-		blocksCheckoutEvents: './assets/js/events/index.ts',
-		wcSettings: './assets/js/settings/shared/index.ts',
-		wcBlocksData: './assets/js/data/index.ts',
+		wcBlocksRegistry: './packages/public-api/blocks-registry/index.js',
+		blocksCheckoutEvents:
+			'./packages/public-api/blocks-checkout-events/index.ts',
+		wcSettings: './packages/public-api/settings/index.ts',
+		wcBlocksData: './packages/public-api/block-data/index.ts',
 		wcBlocksMiddleware: './assets/js/middleware/index.js',
-		wcBlocksSharedContext: './assets/js/shared/context/index.js',
-		wcBlocksSharedHocs: './assets/js/shared/hocs/index.js',
+		wcBlocksSharedContext: './packages/public-api/shared-context/index.js',
+		wcBlocksSharedHocs: './packages/public-api/shared-hocs/index.js',
 		wcSchemaParser: './assets/js/utils/schema-parser/index.ts',
-		priceFormat: './packages/prices/index.js',
-		wcTypes: './assets/js/types/index.ts',
-		wcEntities: './assets/js/entity-registration/index.ts',
+		priceFormat: './packages/public-api/price-format/index.js',
+		wcTypes: './packages/public-api/types/index.ts',
+		wcEntities: './packages/public-api/entity-registration/index.ts',
 	},
 	main: {
 		// Shared blocks code
@@ -398,8 +402,8 @@ const entries = {
 	},
 	cartAndCheckoutFrontend: {
 		...cartAndCheckoutFrontendEntries,
-		blocksCheckout: './packages/checkout/index.js',
-		blocksComponents: './packages/components/index.ts',
+		blocksCheckout: './packages/public-api/blocks-checkout/index.js',
+		blocksComponents: './packages/public-api/blocks-components/index.ts',
 	},
 };

diff --git a/plugins/woocommerce/client/blocks/bin/webpack-helpers.js b/plugins/woocommerce/client/blocks/bin/webpack-helpers.js
index 6d3958d5490..87a88e66c78 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-helpers.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-helpers.js
@@ -81,11 +81,23 @@ const getAlias = ( options = {} ) => {
 		),
 		'@woocommerce/block-data': path.resolve(
 			__dirname,
-			`../assets/js/data`
+			`../packages/public-api/block-data`
+		),
+		'@woocommerce/blocks-checkout': path.resolve(
+			__dirname,
+			`../packages/public-api/blocks-checkout`
+		),
+		'@woocommerce/blocks-checkout-events': path.resolve(
+			__dirname,
+			`../packages/public-api/blocks-checkout-events`
 		),
 		'@woocommerce/blocks-components': path.resolve(
 			__dirname,
-			`../packages/components`
+			`../packages/public-api/blocks-components`
+		),
+		'@woocommerce/blocks-registry': path.resolve(
+			__dirname,
+			`../packages/public-api/blocks-registry`
 		),
 		'@woocommerce/blocks': path.resolve(
 			__dirname,
@@ -108,11 +120,30 @@ const getAlias = ( options = {} ) => {
 			__dirname,
 			`../assets/js/${ pathPart }previews/`
 		),
-		'@woocommerce/types': path.resolve( __dirname, `../assets/js/types/` ),
+		'@woocommerce/price-format': path.resolve(
+			__dirname,
+			`../packages/public-api/price-format`
+		),
+		'@woocommerce/settings': path.resolve(
+			__dirname,
+			`../packages/public-api/settings`
+		),
+		'@woocommerce/shared-context': path.resolve(
+			__dirname,
+			`../packages/public-api/shared-context`
+		),
+		'@woocommerce/shared-hocs': path.resolve(
+			__dirname,
+			`../packages/public-api/shared-hocs`
+		),
+		'@woocommerce/types': path.resolve(
+			__dirname,
+			`../packages/public-api/types/`
+		),
 		'@woocommerce/utils': path.resolve( __dirname, `../assets/js/utils/` ),
 		'@woocommerce/entities': path.resolve(
 			__dirname,
-			`../assets/js/entities/`
+			`../packages/internal/entities/`
 		),
 		'react/jsx-dev-runtime': require.resolve( 'react/jsx-dev-runtime' ),
 		'react/jsx-runtime': require.resolve( 'react/jsx-runtime' ),
diff --git a/plugins/woocommerce/client/blocks/changelog/clarify-blocks-package-api-boundaries b/plugins/woocommerce/client/blocks/changelog/clarify-blocks-package-api-boundaries
new file mode 100644
index 00000000000..6ab74fbbf92
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/changelog/clarify-blocks-package-api-boundaries
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Organize Blocks packages into explicit public API and internal runtime directories without changing existing imports, script handles, or globals.
diff --git a/plugins/woocommerce/client/blocks/docs/README.md b/plugins/woocommerce/client/blocks/docs/README.md
index 270b37c7dda..5c872015e65 100644
--- a/plugins/woocommerce/client/blocks/docs/README.md
+++ b/plugins/woocommerce/client/blocks/docs/README.md
@@ -34,10 +34,10 @@ The WooCommerce Blocks Handbook provides documentation for designers and develop
 -   [Blocks](internal-developers/blocks/README.md)
     -   [Stock Reservation during Checkout](internal-developers/blocks/stock-reservation.md)
     -   [Features Flags and Experimental interfaces](internal-developers/blocks/feature-flags-and-experimental-interfaces.md)
--   [Block Data](../assets/js/data/README.md)
-    -   [Collections Store](../assets/js/data/collections/README.md)
-    -   [Query State Store](../assets/js/data/query-state/README.md)
-    -   [Schema Store](../assets/js/data/schema/README.md)
+-   [Block Data](../packages/public-api/block-data/README.md)
+    -   [Collections Store](../packages/public-api/block-data/collections/README.md)
+    -   [Query State Store](../packages/public-api/block-data/query-state/README.md)
+    -   [Schema Store](../packages/public-api/block-data/schema/README.md)
 -   [Block Client APIs](internal-developers/block-client-apis/README.md)
     -   [Checkout API interface](internal-developers/block-client-apis/checkout/checkout-api.md)
     -   [Notices](internal-developers/block-client-apis/notices.md)
@@ -80,6 +80,8 @@ The WooCommerce Blocks Handbook provides documentation for designers and develop

 > Are you a third-party developer? The following documents explain how to extend the WooCommerce Blocks plugin with your custom extension.

+-   [JavaScript public API packages](../packages/public-api/README.md)
+
 ### Extensibility

 -   Hooks
@@ -94,11 +96,11 @@ The WooCommerce Blocks Handbook provides documentation for designers and develop
 -   Checkout Payment Methods
     -   [Check out more in the WooCommerce Developer Documentation](https://developer.woocommerce.com/docs/category/cart-and-checkout-blocks/payment-methods/)
 -   Cart and Checkout Blocks
-    -   [Blocks Registry](../packages/checkout/blocks-registry/README.md)
-    -   [Components](../packages/checkout/components/README.md)
-    -   [Filter Registry](../packages/checkout/filter-registry/README.md)
-    -   [Slot and Fill](../packages/checkout/slot/README.md)
-    -   [Utilities](../packages/checkout/utils/README.md)
+    -   [Blocks Registry](../packages/public-api/blocks-checkout/blocks-registry/README.md)
+    -   [Components](../packages/public-api/blocks-checkout/components/README.md)
+    -   [Filter Registry](../packages/public-api/blocks-checkout/filter-registry/README.md)
+    -   [Slot and Fill](../packages/public-api/blocks-checkout/slot/README.md)
+    -   [Utilities](../packages/public-api/blocks-checkout/utils/README.md)
     -   [Check out more in WooCommerce Developer Documentation](https://developer.woocommerce.com/docs/category/cart-and-checkout-blocks/)

 ## Designers and theme developers
diff --git a/plugins/woocommerce/client/blocks/docs/contributors/folder-structure.md b/plugins/woocommerce/client/blocks/docs/contributors/folder-structure.md
index b06740db68f..3a4e4b66fd0 100644
--- a/plugins/woocommerce/client/blocks/docs/contributors/folder-structure.md
+++ b/plugins/woocommerce/client/blocks/docs/contributors/folder-structure.md
@@ -94,16 +94,10 @@ The following snippet explains how the WooCommerce Blocks repository is structur
 │ Components placed here avoid loading larger Gutenberg dependencies to
 │ keep client script sizes to a minimum.
 │
-├── assets/js/blocks-registry
-│ Files that allows developers to connect their extensions to this plugin.
-│
 ├── assets/js/blocks
 │ The main blocks of the WooCommerce Blocks plugin such as the Active
 │ Filters Block.
 │
-├── assets/js/data
-│ Functionality to store data using Redux and wp.data.
-│
 ├── assets/js/editor-components
 │ Editor components such as the block-title component.
 │
@@ -135,9 +129,6 @@ The following snippet explains how the WooCommerce Blocks repository is structur
 ├── assets/js/shared
 │ Shared components of the WooCommerce Blocks plugin.
 │
-├── assets/js/types
-│ TypeScript definitions of the WooCommerce Blocks plugin.
-│
 ├── assets/js/utils
 │ Shared utilities of the WooCommerce Blocks plugin.
 │
@@ -151,10 +142,25 @@ The following snippet explains how the WooCommerce Blocks repository is structur
 │ Images for the payment options and the previews.
 │
 ├── packages
-│ Things that are likely to be published as npm packages in the future. Packages can be:
-│ - Production JavaScript scripts and styles loaded on WordPress
-│ and the WooCommerce Blocks plugin or distributed as npm packages.
-│ - Development tools available on npm.
+│ Package-shaped modules used by the Blocks build.
+│
+│ ├── public-api
+│ │ Supported extension contracts. Stable package-root exports require
+│ │ backward-compatibility handling.
+│ │
+│ │ ├── block-data
+│ │ ├── blocks-checkout
+│ │ ├── blocks-checkout-events
+│ │ ├── blocks-components
+│ │ ├── blocks-registry
+│ │ ├── price-format
+│ │ ├── settings
+│ │ ├── shared-context
+│ │ ├── shared-hocs
+│ │ └── types
+│ │
+│ └── internal
+│   Runtime-only packages that are not supported extension APIs.
 │
 ├── patches
 │ Patches for 3rd party scripts applied when installing dependencies.
@@ -192,4 +198,3 @@ This file is inspired by the great work of @JustinyAhin and @gziolo in <https://
 🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./docs/contributors/folder-structure.md)

 <!-- /FEEDBACK -->
-
diff --git a/plugins/woocommerce/client/blocks/docs/contributors/javascript-build-system.md b/plugins/woocommerce/client/blocks/docs/contributors/javascript-build-system.md
index 62dd6b6bc91..d6a033d1efc 100644
--- a/plugins/woocommerce/client/blocks/docs/contributors/javascript-build-system.md
+++ b/plugins/woocommerce/client/blocks/docs/contributors/javascript-build-system.md
@@ -47,7 +47,7 @@ In practice, that means the dependency version is:

 We have an alias to the 14.2.0 version of `@wordpress/components` called `wordpress-components`. This alias was used to import a limited set of components in front-end components. This alias is deprecated and **should no longer be used**. When the `FormTokenField` component is removed from the codebase, the alias will be removed as well.

-We also have one other alias `wordpress-components-slotfill`, used to import the `SlotFill` and `Fill` components from `@wordpress/components`. This alias **should not be used to import any other dependencies from `@wordpress/components`**, and **should not be used outside of the slot fill context** — import it only within the slot fill seam at `packages/checkout/slot`, never directly from other components or blocks.
+We also have one other alias `wordpress-components-slotfill`, used to import the `SlotFill` and `Fill` components from `@wordpress/components`. This alias **should not be used to import any other dependencies from `@wordpress/components`**, and **should not be used outside of the slot fill context** — import it only within the slot fill seam at `packages/public-api/blocks-checkout/slot`, never directly from other components or blocks.

 It is pinned to `@wordpress/components@29.5.4`, matching the version in the `wp-min` catalog in the root `pnpm-workspace.yaml`, so the slot fill resolves to the same `@wordpress/components` the rest of the package already builds against rather than a separate copy. The version is hardcoded because pnpm cannot combine the `catalog:` protocol with an `npm:` alias — re-pin it manually whenever the `wp-min` catalog bumps `@wordpress/components`.

diff --git a/plugins/woocommerce/client/blocks/docs/internal-developers/block-client-apis/checkout/checkout-api.md b/plugins/woocommerce/client/blocks/docs/internal-developers/block-client-apis/checkout/checkout-api.md
index 797ec33b6ae..b45be4d1ff3 100644
--- a/plugins/woocommerce/client/blocks/docs/internal-developers/block-client-apis/checkout/checkout-api.md
+++ b/plugins/woocommerce/client/blocks/docs/internal-developers/block-client-apis/checkout/checkout-api.md
@@ -88,7 +88,7 @@ Please don't use actions listed below, instead relying on suggested alternatives

 Much of the data and api interface for components in the Checkout Block are constructed and exposed via [usage of `React.Context`](https://reactjs.org/docs/context.html). In some cases the context maintains the "tree" state within the context itself (via `useReducer`) and in others it interacts with a global `wp.data` store (for data that communicates with the server).

-You can find type definitions (`typedef`) for contexts in [this file](../../../../assets/js/types/type-defs/contexts.js).
+You can find type definitions (`typedef`) for contexts in [this file](../../../../packages/public-api/types/type-defs/contexts.js).

 ### Shipping Method Data context

@@ -124,7 +124,7 @@ These docs currently don't go into detail for all the hooks as that is fairly st

 ### `usePaymentMethodInterface`

-This hook is used to expose all the interfaces for the registered payment method components to utilize. Essentially the result from this hook is fed in as props on the registered payment components when they are setup by checkout. You can use the typedef ([`PaymentMethodInterface`](../../../../assets/js/types/type-defs/payment-method-interface.ts)) to see what is fed to payment methods as props from this hook.
+This hook is used to expose all the interfaces for the registered payment method components to utilize. Essentially the result from this hook is fed in as props on the registered payment components when they are setup by checkout. You can use the typedef ([`PaymentMethodInterface`](../../../../packages/public-api/types/type-defs/payment-method-interface.ts)) to see what is fed to payment methods as props from this hook.

 _Why don't payment methods just implement this hook_?

diff --git a/plugins/woocommerce/client/blocks/docs/internal-developers/blocks/feature-flags-and-experimental-interfaces.md b/plugins/woocommerce/client/blocks/docs/internal-developers/blocks/feature-flags-and-experimental-interfaces.md
index 3f11e1416fe..70fec879e22 100644
--- a/plugins/woocommerce/client/blocks/docs/internal-developers/blocks/feature-flags-and-experimental-interfaces.md
+++ b/plugins/woocommerce/client/blocks/docs/internal-developers/blocks/feature-flags-and-experimental-interfaces.md
@@ -72,13 +72,13 @@ The checkout-field aliases are implemented in [`functions.php`](https://github.c

 | Interface | Status and purpose |
 | --- | --- |
-| `__experimentalRegisterProductCollection` | Registers a Product Collection collection. It is experimental and can change without notice. See [`register-product-collection.tsx`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/blocks-registry/product-collection/register-product-collection.tsx). |
-| `__experimentalDeRegisterPaymentMethod` | Deregisters a payment method. It is primarily used by tests. See [`registry.ts`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/registry.ts). |
-| `__experimentalDeRegisterExpressPaymentMethod` | Deregisters an express payment method. It is primarily used by tests. See [`registry.ts`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/registry.ts). |
+| `__experimentalRegisterProductCollection` | Registers a Product Collection collection. It is experimental and can change without notice. See [`register-product-collection.tsx`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/product-collection/register-product-collection.tsx). |
+| `__experimentalDeRegisterPaymentMethod` | Deregisters a payment method. It is primarily used by tests. See [`registry.ts`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/registry.ts). |
+| `__experimentalDeRegisterExpressPaymentMethod` | Deregisters an express payment method. It is primarily used by tests. See [`registry.ts`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/registry.ts). |
 | `__experimentalRegisterCheckoutFilters` | Deprecated alias for `registerCheckoutFilters`. |
 | `__experimentalApplyCheckoutFilter` | Deprecated alias for `applyCheckoutFilter`. |

-The deprecated Checkout Filter aliases are implemented in the [`filter-registry`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/index.ts).
+The deprecated Checkout Filter aliases are implemented in the [`filter-registry`](https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/index.ts).

 ### SlotFills

@@ -89,7 +89,7 @@ The deprecated Checkout Filter aliases are implemented in the [`filter-registry`
 | `ExperimentalOrderLocalPickupPackages` | `__experimentalOrderLocalPickupPackages` | Inside the Checkout pickup options. |
 | `ExperimentalDiscountsMeta` | `__experimentalDiscountsMeta` | Below each discount in the Cart and Checkout totals. |

-See the [available SlotFills](https://github.com/woocommerce/woocommerce/blob/trunk/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills.md) and the [checkout components source](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/client/blocks/packages/checkout/components) for their current props and placement.
+See the [available SlotFills](https://github.com/woocommerce/woocommerce/blob/trunk/docs/block-development/extensible-blocks/cart-and-checkout-blocks/available-slot-fills.md) and the [checkout components source](https://github.com/woocommerce/woocommerce/tree/trunk/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components) for their current props and placement.

 ### Store events

diff --git a/plugins/woocommerce/client/blocks/docs/internal-developers/enqueueable-packages/README.md b/plugins/woocommerce/client/blocks/docs/internal-developers/enqueueable-packages/README.md
index 1d3092f9494..36eb553e5df 100644
--- a/plugins/woocommerce/client/blocks/docs/internal-developers/enqueueable-packages/README.md
+++ b/plugins/woocommerce/client/blocks/docs/internal-developers/enqueueable-packages/README.md
@@ -48,7 +48,32 @@ The generated asset file for `wc-block-library` declares packages that remain se
 | `@woocommerce/shared-hocs` | `wc-blocks-shared-hocs` | `wc.wcBlocksSharedHocs` | Shares higher-order components across separately built scripts. |
 | `@woocommerce/types` | `wc-types` | `wc.wcTypes` | Shares runtime type guards used by the external package bundles. |

-This list is defined by `editorExternalPackages` in `bin/webpack-config-block-editor-unified-assets.js`. Other `@woocommerce/*` imports are bundled into `wc-block-library` for the unified editor build. Their standalone handles may still be registered for frontend assets or third-party scripts.
+Local public packages live in `packages/public-api/`. Only exports from a
+package root are stable unless a deep import is documented separately. Exports
+prefixed with `__experimental` or `__unstable` remain unstable.
+
+The `@woocommerce/data` and `@woocommerce/sanitize` packages live in the
+monorepo-level `packages/js` directory because they are independently published
+packages.
+
+### Internal runtime packages
+
+These packages remain external only to preserve a shared runtime instance:
+
+| Package import | Script handle | Global | Why it stays external |
+| --- | --- | --- | --- |
+| `@woocommerce/entities` | `wc-entities` | `wc.wcEntities` | Registers WooCommerce entities once for all editor bundles. It is not a supported extension API. |
+
+Local runtime-only packages live in `packages/internal/`. Their handles and
+globals are implementation details and do not carry a backward-compatibility
+guarantee.
+
+The unified build defines these groups as `publicApiPackages` and
+`internalRuntimePackages` in
+`bin/webpack-config-block-editor-unified-assets.js`. Other `@woocommerce/*`
+imports are bundled into `wc-block-library` for the unified editor build. Their
+standalone handles may still be registered for frontend assets or third-party
+scripts.

 `wc-blocks-middleware` is registered separately and loaded by both `wc-block-library` and `wc-blocks-data-store`. It does not map to an enqueueable `@woocommerce/*` package.

diff --git a/plugins/woocommerce/client/blocks/package.json b/plugins/woocommerce/client/blocks/package.json
index aea75bd65fd..5164810c588 100644
--- a/plugins/woocommerce/client/blocks/package.json
+++ b/plugins/woocommerce/client/blocks/package.json
@@ -22,7 +22,7 @@
 		"./assets/js/atomic/blocks/**",
 		"./assets/js/filters/**",
 		"./assets/js/middleware/**",
-		"./assets/js/types/**",
+		"./packages/public-api/types/**",
 		"./assets/js/blocks/checkout/inner-blocks/**/index.tsx",
 		"./assets/js/blocks/checkout/inner-blocks/register-components.ts",
 		"./assets/js/blocks/cart/inner-blocks/**/index.tsx",
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/index.ts b/plugins/woocommerce/client/blocks/packages/checkout/components/index.ts
deleted file mode 100644
index c39913a27bc..00000000000
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/index.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-export * from '../../components/totals';
-export { default as TotalsWrapper } from '../../components/totals-wrapper';
-export { default as ExperimentalOrderMeta } from './order-meta';
-export { default as ExperimentalDiscountsMeta } from './discounts-meta';
-export { default as ExperimentalOrderShippingPackages } from './order-shipping-packages';
-export { default as ExperimentalOrderLocalPickupPackages } from './order-local-pickup-packages';
-export { default as Panel } from '../../components/panel';
-export { default as Button } from '../../components/button';
-export { default as Label } from './label';
-export { default as StoreNoticesContainer } from '../../components/store-notices-container';
-export { CheckboxControl } from './checkbox-control';
-export {
-	default as ValidatedTextInput,
-	ValidatedTextInputHandle,
-} from '../../components/text-input/validated-text-input';
-export { default as TextInput } from '../../components/text-input/text-input';
-export { default as ValidationInputError } from '../../components/validation-input-error';
-export { default as StoreNotice } from '../../components/store-notice';
-export {
-	commonIcons as paymentMethodCommonIcons,
-	getCommonIconProps,
-} from '../../../assets/js/base/components/cart-checkout/payment-method-icons/common-icons';
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/text-input/index.tsx b/plugins/woocommerce/client/blocks/packages/checkout/components/text-input/index.tsx
deleted file mode 100644
index 23462a105b6..00000000000
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/text-input/index.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-export { default as TextInput } from '../../../components/text-input/text-input';
-export { default as ValidatedTextInput } from '../../../components/text-input/validated-text-input';
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/validation-input-error/index.tsx b/plugins/woocommerce/client/blocks/packages/checkout/components/validation-input-error/index.tsx
deleted file mode 100644
index 7682a7cdf16..00000000000
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/validation-input-error/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { ValidationInputError } from '../../../components/validation-input-error/';
diff --git a/plugins/woocommerce/client/blocks/packages/internal/README.md b/plugins/woocommerce/client/blocks/packages/internal/README.md
new file mode 100644
index 00000000000..c4f74605cf2
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/internal/README.md
@@ -0,0 +1,15 @@
+# WooCommerce Blocks internal packages
+
+This directory contains package-shaped implementation details that are not
+supported extension APIs.
+
+An internal package may remain externalized to preserve a singleton or shared
+runtime instance. Its script handle or browser global is an implementation
+detail and does not provide a backward-compatibility guarantee.
+
+`@woocommerce/entities` currently remains a separate script under the
+`wc-entities` handle and the `wc.wcEntities` global. Extensions should not
+consume it directly.
+
+See the [public API packages](../public-api/README.md) for supported extension
+contracts.
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/README.md b/plugins/woocommerce/client/blocks/packages/internal/entities/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/README.md
rename to plugins/woocommerce/client/blocks/packages/internal/entities/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/index.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/index.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/product/constants.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/product/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/product/constants.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/product/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/product/guards.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/product/guards.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/product/guards.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/product/guards.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/product/hooks.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/product/hooks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/product/hooks.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/product/hooks.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/product/index.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/product/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/product/index.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/product/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/product/types.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/product/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/product/types.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/product/types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/register-entities.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/register-entities.ts
similarity index 94%
rename from plugins/woocommerce/client/blocks/assets/js/entities/register-entities.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/register-entities.ts
index 51f017a9edd..bc2d3ed8803 100644
--- a/plugins/woocommerce/client/blocks/assets/js/entities/register-entities.ts
+++ b/plugins/woocommerce/client/blocks/packages/internal/entities/register-entities.ts
@@ -9,7 +9,7 @@ import deprecated from '@wordpress/deprecated';
 import {
 	registerProductEntity as registerProductEntityInternal,
 	registerSettingsEntity as registerSettingsEntityInternal,
-} from '../entity-registration/register-entities';
+} from '../../public-api/entity-registration/register-entities';

 const deprecationNoticesShown = new Set< string >();

diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/settings/constants.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/settings/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/settings/constants.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/settings/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/settings/index.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/settings/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/settings/index.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/settings/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/settings/types.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/settings/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/settings/types.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/settings/types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/entities/types.ts b/plugins/woocommerce/client/blocks/packages/internal/entities/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/entities/types.ts
rename to plugins/woocommerce/client/blocks/packages/internal/entities/types.ts
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/AGENTS.md b/plugins/woocommerce/client/blocks/packages/public-api/AGENTS.md
new file mode 100644
index 00000000000..a6119201f88
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/public-api/AGENTS.md
@@ -0,0 +1,18 @@
+# Public API package instructions
+
+Files below this directory implement extension-facing JavaScript contracts.
+
+- Preserve stable exports from each `@woocommerce/*` package root.
+- Prefer additive changes. Deprecate existing exports before removing or
+  renaming them.
+- Preserve the package import, WordPress script handle, and `window.wc` global
+  mappings.
+- Treat `__experimental` and `__unstable` exports as unstable, and retain their
+  prefixes until they are intentionally stabilized.
+- Treat deep imports and unexported implementation files as internal unless
+  public developer documentation says otherwise.
+- State the backward-compatibility impact when changing a root export.
+- Check extension usage before changing signatures or runtime behavior.
+
+The Blocks workspace is marked `"private": true` to prevent npm publication.
+That setting does not change the public status of these browser APIs.
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/README.md b/plugins/woocommerce/client/blocks/packages/public-api/README.md
new file mode 100644
index 00000000000..bffdaae096b
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/public-api/README.md
@@ -0,0 +1,46 @@
+# WooCommerce Blocks public API packages
+
+This directory contains JavaScript package entry points that WooCommerce
+extensions may consume. Stable exports from each package root are public
+contracts and require backward-compatibility handling.
+
+## API contract
+
+- Import packages through their `@woocommerce/*` package root.
+- Treat stable root exports as public API.
+- Add new APIs instead of renaming or removing existing APIs.
+- Deprecate an existing API before removing it.
+- Treat exports prefixed with `__experimental` or `__unstable` as unstable.
+- Treat deep imports and files not exported from a package root as internal
+  unless they are documented separately.
+
+The `"private": true` field in the Blocks `package.json` only prevents npm
+publication. It does not make these browser APIs private.
+
+## Packages
+
+| Package | Script handle | Browser global |
+| --- | --- | --- |
+| `@woocommerce/block-data` | `wc-blocks-data-store` | `wc.wcBlocksData` |
+| `@woocommerce/blocks-checkout` | `wc-blocks-checkout` | `wc.blocksCheckout` |
+| `@woocommerce/blocks-checkout-events` | `wc-blocks-checkout-events` | `wc.blocksCheckoutEvents` |
+| `@woocommerce/blocks-components` | `wc-blocks-components` | `wc.blocksComponents` |
+| `@woocommerce/blocks-registry` | `wc-blocks-registry` | `wc.wcBlocksRegistry` |
+| `@woocommerce/price-format` | `wc-price-format` | `wc.priceFormat` |
+| `@woocommerce/settings` | `wc-settings` | `wc.wcSettings` |
+| `@woocommerce/shared-context` | `wc-blocks-shared-context` | `wc.wcBlocksSharedContext` |
+| `@woocommerce/shared-hocs` | `wc-blocks-shared-hocs` | `wc.wcBlocksSharedHocs` |
+| `@woocommerce/types` | `wc-types` | `wc.wcTypes` |
+
+## Loading the scripts
+
+WooCommerce does not guarantee that these scripts will be enqueued on any
+particular page. Any plugin, extension, or custom code that uses these APIs
+must enqueue the corresponding script handle listed above.
+
+The independently published `@woocommerce/data` and `@woocommerce/sanitize`
+packages remain in the monorepo-level `packages/js` directory.
+
+Being externalized is not, by itself, evidence that a package is public. See
+the [internal packages](../internal/README.md) for runtime-only packages that
+also produce separate scripts.
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/action-types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/action-types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/action-types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/action-types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/actions.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/actions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/actions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/actions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/constants.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/constants.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/default-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/default-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/default-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/default-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/notify-errors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/notify-errors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/notify-errors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/notify-errors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/notify-quantity-changes.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/notify-quantity-changes.ts
similarity index 98%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/notify-quantity-changes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/notify-quantity-changes.ts
index baa7fa96767..c1c2df162c9 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/cart/notify-quantity-changes.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/notify-quantity-changes.ts
@@ -13,8 +13,8 @@ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
 /**
  * Internal dependencies
  */
+import type { CartStoreDescriptor } from '@woocommerce/block-data/cart';
 import { STORE_KEY as CART_STORE_KEY } from './constants';
-import type { CartStoreDescriptor } from '../../data/cart';

 export type QuantityChanges = {
 	cartItemsPendingQuantity?: string[] | undefined;
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/persistence-layer.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/persistence-layer.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/persistence-layer.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/persistence-layer.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/push-changes.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/push-changes.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/push-changes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/push-changes.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/reducers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/reducers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/reducers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/reducers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/resolvers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/resolvers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/resolvers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/resolvers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/selectors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/selectors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/selectors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/selectors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/notify-quantity-changes.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/notify-quantity-changes.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/notify-quantity-changes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/notify-quantity-changes.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/push-changes.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/push-changes.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/push-changes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/push-changes.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/resolvers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/resolvers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/resolvers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/resolvers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/test/thunks.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/thunks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/test/thunks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/test/thunks.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/thunks.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/thunks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/thunks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/thunks.ts
index 161cf89cf0e..b1ed802f235 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/cart/thunks.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/thunks.ts
@@ -29,13 +29,13 @@ import { cartStore } from '@woocommerce/block-data';
 /**
  * Internal dependencies
  */
+import { isObject } from '../../types/type-guards/object';
 import {
 	notifyQuantityChanges,
 	QuantityChanges,
 } from './notify-quantity-changes';
 import { updateCartErrorNotices } from './notify-errors';
 import { apiFetchWithHeaders } from '../shared-controls';
-import { isObject } from '../../types/type-guards/object';
 import {
 	getIsCustomerDataDirty,
 	setIsCustomerDataDirty,
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/update-payment-methods.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/update-payment-methods.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/update-payment-methods.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/update-payment-methods.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/cart/utils.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/utils.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/cart/utils.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/cart/utils.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/action-types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/action-types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/action-types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/action-types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/actions.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/actions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/actions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/actions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/constants.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/constants.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/default-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/default-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/default-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/default-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/push-changes.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/push-changes.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/push-changes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/push-changes.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/reducers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/reducers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/reducers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/reducers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/selectors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/selectors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/selectors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/selectors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/test/reducer.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/test/reducer.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/test/reducer.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/test/reducer.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/test/store.tsx b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/test/store.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/test/store.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/test/store.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/thunks.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/thunks.ts
similarity index 98%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/thunks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/thunks.ts
index bdde633af7f..fbf20aa2206 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/checkout/thunks.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/thunks.ts
@@ -23,9 +23,9 @@ import {
 /**
  * Internal dependencies
  */
+import { removeNoticesByStatus } from '../../../../assets/js/utils/notices';
 import { store as paymentStore } from '../payment';
 import type { CheckoutStoreDescriptor } from './index';
-import { removeNoticesByStatus } from '../../utils/notices';
 import {
 	getPaymentResultFromCheckoutResponse,
 	runCheckoutFailObservers,
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/checkout/utils.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/utils.ts
similarity index 98%
rename from plugins/woocommerce/client/blocks/assets/js/data/checkout/utils.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/utils.ts
index 264ada28666..8c39a1cfc06 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/checkout/utils.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/checkout/utils.ts
@@ -33,17 +33,17 @@ import { removeNoticesForField } from '@woocommerce/base-utils';
 /**
  * Internal dependencies
  */
-import { shouldRetry } from '../../base/context/event-emit';
+import { shouldRetry } from '../../../../assets/js/base/context/event-emit';
+import {
+	CONTACT_FORM_KEYS,
+	ORDER_FORM_KEYS,
+} from '../../../../assets/js/settings/blocks/constants';
 import { store as validationStore } from '../validation';
 import {
 	CheckoutAndPaymentNotices,
 	CheckoutAfterProcessingWithErrorEventData,
 	CheckoutPutData,
 } from './types';
-import {
-	CONTACT_FORM_KEYS,
-	ORDER_FORM_KEYS,
-} from '../../settings/blocks/constants';

 /**
  * Based on the given observers, create Error Notices where necessary
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/action-types.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/action-types.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/action-types.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/action-types.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/actions.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/actions.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/actions.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/actions.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/constants.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/constants.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/constants.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/constants.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/index.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/resolvers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/resolvers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/resolvers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/resolvers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/test/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/test/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/test/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/test/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/test/resolvers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/test/resolvers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/test/resolvers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/test/resolvers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/collections/test/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/test/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/collections/test/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/collections/test/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/constants.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/constants.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/action-types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/action-types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/action-types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/action-types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/actions.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/actions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/actions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/actions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/constants.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/constants.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/default-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/default-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/default-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/default-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/reducers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/reducers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/reducers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/reducers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/selectors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/selectors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/selectors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/selectors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/store-config.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/store-config.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/store-config.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/store-config.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/actions.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/actions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/actions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/actions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/check-payment-methods.tsx b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/check-payment-methods.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/check-payment-methods.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/check-payment-methods.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/default-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/default-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/default-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/default-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/selectors.js
similarity index 99%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/selectors.js
index 5bc1b267a0e..dfe54189ca5 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/selectors.js
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/selectors.js
@@ -24,7 +24,7 @@ import { server, http, HttpResponse } from '@woocommerce/test-utils/msw';
 import {
 	CheckoutExpressPayment,
 	SavedPaymentMethodOptions,
-} from '../../../blocks/cart-checkout-shared/payment-methods';
+} from '@woocommerce/blocks/cart-checkout-shared/payment-methods';
 import { defaultCartState } from '../../cart/default-state';
 import {
 	getRegisteredExpressPaymentMethods,
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/set-default-payment-method.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/set-default-payment-method.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/set-default-payment-method.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/set-default-payment-method.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/test/thunks.tsx b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/thunks.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/test/thunks.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/test/thunks.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/thunks.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/thunks.ts
similarity index 97%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/thunks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/thunks.ts
index fde642d480d..9f107a12489 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/payment/thunks.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/thunks.ts
@@ -28,8 +28,8 @@ import { paymentStore } from '@woocommerce/block-data';
 import {
 	emitEventWithAbort,
 	noticeContexts,
-} from '../../base/context/event-emit';
-import { EMIT_TYPES } from '../../base/context/providers/cart-checkout/payment-events/event-emit';
+} from '../../../../assets/js/base/context/event-emit';
+import { EMIT_TYPES } from '../../../../assets/js/base/context/providers/cart-checkout/payment-events/event-emit';
 import type { emitProcessingEventType } from './types';
 import { store as cartStore } from '../cart';
 import {
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/types.ts
similarity index 96%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/types.ts
index 4c76b52c045..063079cbb9c 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/payment/types.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/types.ts
@@ -15,7 +15,7 @@ import { DataRegistry } from '@wordpress/data';
 /**
  * Internal dependencies
  */
-import type { EventObserversType } from '../../base/context/event-emit';
+import type { EventObserversType } from '@woocommerce/base-context/event-emit';
 import type { DispatchFromMap } from '../mapped-types';
 import * as actions from './actions';

diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/utils/check-payment-methods.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/check-payment-methods.ts
similarity index 98%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/utils/check-payment-methods.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/check-payment-methods.ts
index d92e0bd9673..6f597724fe7 100644
--- a/plugins/woocommerce/client/blocks/assets/js/data/payment/utils/check-payment-methods.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/check-payment-methods.ts
@@ -27,17 +27,17 @@ import {
 /**
  * Internal dependencies
  */
-import { STORE_KEY as CART_STORE_KEY } from '../../cart/constants';
-import { STORE_KEY as PAYMENT_STORE_KEY } from '../constants';
-import type { PaymentStoreDescriptor } from '../index';
-import type { CartStoreDescriptor } from '../../cart';
-import { noticeContexts } from '../../../base/context/event-emit';
+import { noticeContexts } from '../../../../../assets/js/base/context/event-emit';
 import {
 	EMPTY_CART_ERRORS,
 	EMPTY_CART_ITEM_ERRORS,
 	EMPTY_EXTENSIONS,
-} from '../../../data/constants';
-import { defaultCartState } from '../../../data/cart/default-state';
+} from '../../constants';
+import { defaultCartState } from '../../cart/default-state';
+import { STORE_KEY as CART_STORE_KEY } from '../../cart/constants';
+import { STORE_KEY as PAYMENT_STORE_KEY } from '../constants';
+import type { PaymentStoreDescriptor } from '../index';
+import type { CartStoreDescriptor } from '../../cart';

 /**
  * Get the argument that will be passed to a payment method's `canMakePayment` method.
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/utils/filter-active-saved-payment-methods.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/filter-active-saved-payment-methods.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/utils/filter-active-saved-payment-methods.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/filter-active-saved-payment-methods.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/payment/utils/set-default-payment-method.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/set-default-payment-method.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/payment/utils/set-default-payment-method.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/payment/utils/set-default-payment-method.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/action-types.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/action-types.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/action-types.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/action-types.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/actions.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/actions.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/actions.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/actions.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/constants.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/constants.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/constants.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/constants.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/index.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/test/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/test/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/test/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/test/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/test/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/test/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/test/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/test/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/query-state/utils.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/utils.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/query-state/utils.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/query-state/utils.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/action-types.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/action-types.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/action-types.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/action-types.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/actions.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/actions.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/actions.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/actions.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/constants.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/constants.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/constants.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/constants.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/index.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/resolvers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/resolvers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/resolvers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/resolvers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/test/reducers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/reducers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/test/reducers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/reducers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/test/resolvers.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/resolvers.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/test/resolvers.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/resolvers.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/test/selectors.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/selectors.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/test/selectors.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/selectors.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/test/utils.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/utils.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/test/utils.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/test/utils.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/schema/utils.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/utils.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/schema/utils.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/schema/utils.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/shared-controls.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/shared-controls.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/shared-controls.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/shared-controls.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/action-types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/action-types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/action-types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/action-types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/actions.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/actions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/actions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/actions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/default-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/default-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/default-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/default-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/reducers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/reducers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/reducers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/reducers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/store-notices/selectors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/selectors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/store-notices/selectors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/store-notices/selectors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/clear-put-requests.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/clear-put-requests.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/clear-put-requests.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/clear-put-requests.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/has-in-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/has-in-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/has-in-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/has-in-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/index.js b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/is-editor.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/is-editor.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/is-editor.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/is-editor.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/process-error-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/process-error-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/process-error-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/process-error-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/test/process-error-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/test/process-error-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/test/process-error-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/test/process-error-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/utils/update-state.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/update-state.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/utils/update-state.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/utils/update-state.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/README.md b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/README.md
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/README.md
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/action-types.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/action-types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/action-types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/action-types.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/actions.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/actions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/actions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/actions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/constants.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/constants.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/reducers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/reducers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/reducers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/reducers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/selectors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/selectors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/selectors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/selectors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/test/reducers.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/test/reducers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/test/reducers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/test/reducers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/data/validation/test/selectors.ts b/plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/test/selectors.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/data/validation/test/selectors.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/block-data/validation/test/selectors.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/events/checkout-events.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/checkout-events.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/events/checkout-events.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/checkout-events.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/events/event-emitter.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/event-emitter.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/events/event-emitter.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/event-emitter.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/events/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/events/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/events/test/checkout-events.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/test/checkout-events.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/events/test/checkout-events.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/test/checkout-events.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/events/test/event-emitter.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/test/event-emitter.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/events/test/event-emitter.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout-events/test/event-emitter.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/README.md
similarity index 98%
rename from plugins/woocommerce/client/blocks/packages/checkout/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/README.md
index 0cfe10fd6c1..88357f434b1 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/README.md
@@ -60,7 +60,7 @@ This package contains the following directories. Navigate to a directory for mor

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/README.md)

 <!-- /FEEDBACK -->

diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/README.md
similarity index 99%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/README.md
index d645a1cc8fb..b9a7325c3ef 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/README.md
@@ -209,6 +209,6 @@ const isValid = hasInnerBlocks( 'woocommerce/checkout-totals-block' ); // true

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/blocks-registry/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/blocks-registry/README.md)

 <!-- /FEEDBACK -->
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/get-registered-blocks.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/get-registered-blocks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/get-registered-blocks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/get-registered-blocks.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/inserter.png b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/inserter.png
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/inserter.png
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/inserter.png
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/register-checkout-block.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/register-checkout-block.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/register-checkout-block.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/register-checkout-block.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/registered-blocks.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/registered-blocks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/registered-blocks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/registered-blocks.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/test/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/test/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/test/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/types.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/utils.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/utils.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/blocks-registry/utils.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/blocks-registry/utils.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/README.md
similarity index 93%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/README.md
index 49932c34872..8c2a840e1ec 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/README.md
@@ -26,6 +26,6 @@ These components are here so they can be consumed by extensions.

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/components/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/components/README.md)

 <!-- /FEEDBACK -->
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/checkbox-control/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/checkbox-control/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/checkbox-control/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/checkbox-control/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/discounts-meta/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/discounts-meta/index.js
similarity index 91%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/discounts-meta/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/discounts-meta/index.js
index 125f50ded0f..1fcae0884ac 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/discounts-meta/index.js
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/discounts-meta/index.js
@@ -7,7 +7,7 @@ import clsx from 'clsx';
  * Internal dependencies
  */
 import { createSlotFill, hasValidFills, useSlotFills } from '../../slot';
-import TotalsWrapper from '../../../components/totals-wrapper';
+import TotalsWrapper from '../../../blocks-components/totals-wrapper';

 const slotName = '__experimentalDiscountsMeta';

diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/discounts-meta/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/discounts-meta/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/discounts-meta/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/discounts-meta/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/error-boundary/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/error-boundary/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/error-boundary/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/error-boundary/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/index.ts
new file mode 100644
index 00000000000..4c5a3307c36
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/index.ts
@@ -0,0 +1,22 @@
+export * from '../../blocks-components/totals';
+export { default as TotalsWrapper } from '../../blocks-components/totals-wrapper';
+export { default as ExperimentalOrderMeta } from './order-meta';
+export { default as ExperimentalDiscountsMeta } from './discounts-meta';
+export { default as ExperimentalOrderShippingPackages } from './order-shipping-packages';
+export { default as ExperimentalOrderLocalPickupPackages } from './order-local-pickup-packages';
+export { default as Panel } from '../../blocks-components/panel';
+export { default as Button } from '../../blocks-components/button';
+export { default as Label } from './label';
+export { default as StoreNoticesContainer } from '../../blocks-components/store-notices-container';
+export { CheckboxControl } from './checkbox-control';
+export {
+	default as ValidatedTextInput,
+	ValidatedTextInputHandle,
+} from '../../blocks-components/text-input/validated-text-input';
+export { default as TextInput } from '../../blocks-components/text-input/text-input';
+export { default as ValidationInputError } from '../../blocks-components/validation-input-error';
+export { default as StoreNotice } from '../../blocks-components/store-notice';
+export {
+	commonIcons as paymentMethodCommonIcons,
+	getCommonIconProps,
+} from '../../../../assets/js/base/components/cart-checkout/payment-method-icons/common-icons';
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/label/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/label/index.ts
similarity index 50%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/label/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/label/index.ts
index b74c7e6df27..6ba6ea219df 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/label/index.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/label/index.ts
@@ -1,6 +1,6 @@
 /**
  * Internal dependencies
  */
-import Label from '../../../components/label';
+import Label from '../../../blocks-components/label';

 export default Label;
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/order-local-pickup-packages/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-local-pickup-packages/index.tsx
similarity index 93%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/order-local-pickup-packages/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-local-pickup-packages/index.tsx
index 4311639cfe2..30ea5d477f8 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/order-local-pickup-packages/index.tsx
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-local-pickup-packages/index.tsx
@@ -12,7 +12,7 @@ import { Component } from '@wordpress/element';
  * Internal dependencies
  */
 import { createSlotFill } from '../../slot';
-import type { RadioControlOption } from '../../../../packages/components/radio-control/types';
+import type { RadioControlOption } from '../../../blocks-components/radio-control/types';

 const slotName = '__experimentalOrderLocalPickupPackages';
 const {
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/order-local-pickup-packages/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-local-pickup-packages/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/order-local-pickup-packages/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-local-pickup-packages/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/order-meta/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-meta/index.js
similarity index 91%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/order-meta/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-meta/index.js
index 6da983955b2..133a13e6898 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/components/order-meta/index.js
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-meta/index.js
@@ -7,7 +7,7 @@ import clsx from 'clsx';
  * Internal dependencies
  */
 import { createSlotFill, hasValidFills, useSlotFills } from '../../slot';
-import TotalsWrapper from '../../../components/totals-wrapper';
+import TotalsWrapper from '../../../blocks-components/totals-wrapper';

 const slotName = '__experimentalOrderMeta';

diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/order-meta/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-meta/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/order-meta/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-meta/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/order-shipping-packages/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-shipping-packages/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/order-shipping-packages/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-shipping-packages/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/order-shipping-packages/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-shipping-packages/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/order-shipping-packages/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/order-shipping-packages/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/components/test/exports.test.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/test/exports.test.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/components/test/exports.test.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/test/exports.test.ts
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/text-input/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/text-input/index.tsx
new file mode 100644
index 00000000000..27ce083069f
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/text-input/index.tsx
@@ -0,0 +1,2 @@
+export { default as TextInput } from '../../../blocks-components/text-input/text-input';
+export { default as ValidatedTextInput } from '../../../blocks-components/text-input/validated-text-input';
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/validation-input-error/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/validation-input-error/index.tsx
new file mode 100644
index 00000000000..43ebf816c78
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/components/validation-input-error/index.tsx
@@ -0,0 +1 @@
+export { ValidationInputError } from '../../../blocks-components/validation-input-error/';
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/README.md
similarity index 98%
rename from plugins/woocommerce/client/blocks/packages/checkout/filter-registry/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/README.md
index 68ce79145de..657a496fa6d 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/README.md
@@ -129,7 +129,7 @@ Filters are implemented throughout the Mini-Cart, Cart and Checkout Blocks, as w

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/filter-registry/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/filter-registry/README.md)

 <!-- /FEEDBACK -->

diff --git a/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/filter-registry/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/test/admin.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/test/admin.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/filter-registry/test/admin.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/test/admin.js
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/filter-registry/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/test/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/filter-registry/test/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/filter-registry/test/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/hooks/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/README.md
similarity index 97%
rename from plugins/woocommerce/client/blocks/packages/checkout/hooks/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/README.md
index 42a100b3eeb..4ff7e509cfb 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/hooks/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/README.md
@@ -63,6 +63,6 @@ The hook returns a function that, when called:

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/hooks/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/hooks/README.md)

 <!-- /FEEDBACK -->
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/hooks/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/hooks/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/hooks/test/use-validate-checkout.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/test/use-validate-checkout.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/hooks/test/use-validate-checkout.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/test/use-validate-checkout.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/hooks/use-validate-checkout.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/use-validate-checkout.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/hooks/use-validate-checkout.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/hooks/use-validate-checkout.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/slot/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/README.md
similarity index 98%
rename from plugins/woocommerce/client/blocks/packages/checkout/slot/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/README.md
index fd4c4d6300c..40bd91d5498 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/slot/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/README.md
@@ -189,7 +189,6 @@ Slot Fills are implemented throughout the Cart and Checkout Blocks, as well as s

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/slot/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/slot/README.md)

 <!-- /FEEDBACK -->
-
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/slot/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/slot/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/slot/test-utils.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/test-utils.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/slot/test-utils.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/slot/test-utils.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/README.md b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/README.md
similarity index 97%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/README.md
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/README.md
index ae0be73bb52..fdf4a00bf64 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/utils/README.md
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/README.md
@@ -82,7 +82,7 @@ What value must contain. If this is not found within `value`, and error will be

 [We're hiring!](https://woocommerce.com/careers/) Come work with us!

-🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/checkout/utils/README.md)
+🐞 Found a mistake, or have a suggestion? [Leave feedback about this document here.](https://github.com/woocommerce/woocommerce/issues/new?assignees=&labels=type%3A+documentation&template=suggestion-for-documentation-improvement-correction.md&title=Feedback%20on%20./packages/public-api/blocks-checkout/utils/README.md)

 <!-- /FEEDBACK -->

diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/extension-cart-update.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/extension-cart-update.ts
similarity index 93%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/extension-cart-update.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/extension-cart-update.ts
index 1ef8b483c09..b0d637ef0b9 100644
--- a/plugins/woocommerce/client/blocks/packages/checkout/utils/extension-cart-update.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/extension-cart-update.ts
@@ -8,7 +8,7 @@ import { processErrorResponse } from '@woocommerce/block-data';
 /**
  * Internal dependencies
  */
-import { STORE_KEY } from '../../../assets/js/data/cart/constants';
+import { STORE_KEY } from '../../block-data/cart/constants';

 /**
  * When executed, this will call the cart/extensions endpoint.
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/get-validity-message-for-input.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/get-validity-message-for-input.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/get-validity-message-for-input.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/get-validity-message-for-input.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/is-postcode.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/is-postcode.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/is-postcode.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/is-postcode.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/must-contain.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/must-contain.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/must-contain.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/must-contain.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/test/is-postcode.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/test/is-postcode.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/test/is-postcode.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/test/is-postcode.ts
diff --git a/plugins/woocommerce/client/blocks/packages/checkout/utils/validation/validate-filter.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/validate-filter.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/checkout/utils/validation/validate-filter.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-checkout/utils/validation/validate-filter.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/button/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/button/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/button/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/button/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-control/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-control/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-control/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-control/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-control/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-control/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-control/validated-checkbox-control.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/validated-checkbox-control.tsx
similarity index 98%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-control/validated-checkbox-control.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/validated-checkbox-control.tsx
index cddb9e4f0c1..9df4083d664 100644
--- a/plugins/woocommerce/client/blocks/packages/components/checkbox-control/validated-checkbox-control.tsx
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-control/validated-checkbox-control.tsx
@@ -21,7 +21,7 @@ import type { InputHTMLAttributes } from 'react';
 import CheckboxControl from './index';
 import './style.scss';
 import { ValidationInputError } from '../validation-input-error';
-import { getValidityMessageForInput } from '../../checkout/utils';
+import { getValidityMessageForInput } from '../../blocks-checkout/utils';

 export interface ValidatedCheckboxControlProps
 	extends Omit< InputHTMLAttributes< HTMLInputElement >, 'onChange' > {
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-list/checkbox-list-option-control.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/checkbox-list-option-control.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-list/checkbox-list-option-control.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/checkbox-list-option-control.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-list/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-list/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-list/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-list/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-list/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-list/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/checkbox-list/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/checkbox-list/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/checkbox-list/types.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/chip.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/chip.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/chip.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/chip.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/removable-chip.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/removable-chip.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/removable-chip.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/removable-chip.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/stories/chip.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/stories/chip.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/stories/chip.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/stories/chip.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/stories/removable-chip.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/stories/removable-chip.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/stories/removable-chip.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/stories/removable-chip.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/test/__snapshots__/index.js.snap b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/test/__snapshots__/index.js.snap
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/test/__snapshots__/index.js.snap
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/test/__snapshots__/index.js.snap
diff --git a/plugins/woocommerce/client/blocks/packages/components/chip/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/test/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/chip/test/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/chip/test/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/components/form-step/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/form-step/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/form-step/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/form-step/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/form-step/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/form-step/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/form-step/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/form-step/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/form-step/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/test/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/formatted-monetary-amount/test/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/formatted-monetary-amount/test/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/components/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/index.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/label/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/label/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/label/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/label/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/label/test/__snapshots__/index.js.snap b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/test/__snapshots__/index.js.snap
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/label/test/__snapshots__/index.js.snap
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/test/__snapshots__/index.js.snap
diff --git a/plugins/woocommerce/client/blocks/packages/components/label/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/test/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/label/test/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/label/test/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/components/panel/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/panel/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/panel/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/panel/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/panel/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/panel/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/panel/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/panel/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/panel/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/panel/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/panel/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/panel/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control-accordion/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control-accordion/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control-accordion/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control-accordion/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control-accordion/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control-accordion/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control-accordion/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control-accordion/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control-accordion/stories/style.stories.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control-accordion/stories/style.stories.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control-accordion/stories/style.stories.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control-accordion/stories/style.stories.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control/option-layout.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/option-layout.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control/option-layout.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/option-layout.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control/option.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/option.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control/option.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/option.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/radio-control/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/radio-control/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/radio-control/types.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/sort-select/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/sort-select/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/sort-select/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/sort-select/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/sort-select/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/sort-select/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/sort-select/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/sort-select/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/sort-select/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/sort-select/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/sort-select/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/sort-select/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/spinner/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/spinner/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/spinner/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/spinner/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/spinner/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/spinner/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/spinner/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/spinner/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/spinner/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/spinner/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/spinner/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/spinner/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notice/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notice/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notice/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notice/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notice/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notice/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notice/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notice/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notices-container/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notices-container/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notices-container/snackbar-notices.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/snackbar-notices.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notices-container/snackbar-notices.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/snackbar-notices.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notices-container/store-notices.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/store-notices.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notices-container/store-notices.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/store-notices.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notices-container/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notices-container/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notices-container/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notices-container/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/store-notices-container/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/store-notices-container/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/store-notices-container/types.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/stories/text-input.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/stories/text-input.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/stories/text-input.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/stories/text-input.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/stories/validated-text-input.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/stories/validated-text-input.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/stories/validated-text-input.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/stories/validated-text-input.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/test/validated-text-input.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/test/validated-text-input.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/test/validated-text-input.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/test/validated-text-input.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/text-input.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/text-input.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/text-input.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/text-input.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/types.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/types.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/types.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/types.ts
diff --git a/plugins/woocommerce/client/blocks/packages/components/text-input/validated-text-input.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/validated-text-input.tsx
similarity index 99%
rename from plugins/woocommerce/client/blocks/packages/components/text-input/validated-text-input.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/validated-text-input.tsx
index ede8a4602fd..424666274c8 100644
--- a/plugins/woocommerce/client/blocks/packages/components/text-input/validated-text-input.tsx
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/text-input/validated-text-input.tsx
@@ -22,7 +22,7 @@ import { useInstanceId } from '@wordpress/compose';
 import TextInput from './text-input';
 import './style.scss';
 import { ValidationInputError } from '../validation-input-error';
-import { getValidityMessageForInput } from '../../checkout/utils';
+import { getValidityMessageForInput } from '../../blocks-checkout/utils';
 import { ValidatedTextInputProps } from './types';

 export type ValidatedTextInputHandle = {
diff --git a/plugins/woocommerce/client/blocks/packages/components/textarea/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/textarea/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/textarea/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/textarea/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/textarea/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/textarea/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/textarea/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/textarea/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/textarea/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/textarea/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/textarea/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/textarea/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/title/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/title/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/title/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/title/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/title/stories/style.stories.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/stories/style.stories.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/title/stories/style.stories.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/stories/style.stories.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/title/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/title/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/title/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals-wrapper/docs/docs.mdx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/docs/docs.mdx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals-wrapper/docs/docs.mdx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/docs/docs.mdx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals-wrapper/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals-wrapper/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals-wrapper/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals-wrapper/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals-wrapper/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals-wrapper/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals-wrapper/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/fees/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/fees/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/fees/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/fees/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/fees/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/fees/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/fees/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/fees/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/item/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/item/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/item/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/item/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/item/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/item/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/style.scss
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/item/test/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/test/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/item/test/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/item/test/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/subtotal/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/subtotal/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/subtotal/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/subtotal/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/subtotal/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/subtotal/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/subtotal/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/subtotal/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/taxes/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/taxes/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/taxes/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/taxes/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/totals/taxes/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/taxes/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/totals/taxes/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/totals/taxes/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/validation-input-error/index.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/validation-input-error/index.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/validation-input-error/index.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/validation-input-error/index.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/validation-input-error/stories/index.stories.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/validation-input-error/stories/index.stories.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/validation-input-error/stories/index.stories.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/validation-input-error/stories/index.stories.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/components/validation-input-error/style.scss b/plugins/woocommerce/client/blocks/packages/public-api/blocks-components/validation-input-error/style.scss
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/components/validation-input-error/style.scss
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-components/validation-input-error/style.scss
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/get-registered-block-components.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/get-registered-block-components.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/get-registered-block-components.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/get-registered-block-components.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/register-block-component.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/register-block-component.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/register-block-component.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/register-block-component.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/registered-block-components-init.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/registered-block-components-init.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/registered-block-components-init.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/registered-block-components-init.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/test/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/test/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/block-components/test/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/block-components/test/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/index.js b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/assertions.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/assertions.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/assertions.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/assertions.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/express-payment-method-config.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/express-payment-method-config.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/express-payment-method-config.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/express-payment-method-config.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/extensions-config.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/extensions-config.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/extensions-config.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/extensions-config.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/payment-method-config-helper.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/payment-method-config-helper.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/payment-method-config-helper.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/payment-method-config-helper.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/payment-method-config.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/payment-method-config.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/payment-method-config.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/payment-method-config.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/registry.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/registry.ts
similarity index 96%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/registry.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/registry.ts
index cdbb9bf2dc8..f65b5c272d9 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/registry.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/registry.ts
@@ -20,11 +20,11 @@ import {
 /**
  * Internal dependencies
  */
+import { STORE_KEY as PAYMENT_STORE_KEY } from '../../block-data/payment/constants';
+import type { PaymentStoreDescriptor } from '../../block-data/payment';
 import { default as PaymentMethodConfig } from './payment-method-config';
 import { default as ExpressPaymentMethodConfig } from './express-payment-method-config';
 import { canMakePaymentExtensionsCallbacks } from './extensions-config';
-import { STORE_KEY as PAYMENT_STORE_KEY } from '../../data/payment/constants';
-import type { PaymentStoreDescriptor } from '../../data/payment';

 type LegacyRegisterPaymentMethodFunction = ( config: unknown ) => unknown;
 type LegacyRegisterExpressPaymentMethodFunction = (
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/test/payment-method-config-helper.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/test/payment-method-config-helper.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/test/payment-method-config-helper.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/test/payment-method-config-helper.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/test/payment-method-config.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/test/payment-method-config.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/test/payment-method-config.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/test/payment-method-config.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/test/registry.ts b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/test/registry.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/payment-methods/test/registry.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/payment-methods/test/registry.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks-registry/product-collection/register-product-collection.tsx b/plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/product-collection/register-product-collection.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/blocks-registry/product-collection/register-product-collection.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/blocks-registry/product-collection/register-product-collection.tsx
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/README.md b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/README.md
new file mode 100644
index 00000000000..84c3666c777
--- /dev/null
+++ b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/README.md
@@ -0,0 +1,32 @@
+# Entity registration compatibility entry
+
+This directory contains the source entry for the `wc-entities` script. Entity
+registration is an internal runtime concern, but this entry remains under
+`public-api` because the generated script preserves an externally exposed
+compatibility surface.
+
+## Why this lives under `public-api`
+
+The `wc-entities` script historically exposed entity helpers through the
+`wc.wcEntities` browser global. Extensions may still depend on that global, so
+moving the implementation does not make it safe to remove or rename its
+exports.
+
+The global and its helper exports are deprecated as of WooCommerce 11.1.0.
+They remain available during the deprecation window and emit a warning when
+called. Keeping the compatibility entry under `public-api` makes that
+backward-compatibility obligation explicit and helps prevent the legacy
+surface from being removed accidentally.
+
+This placement does not make `entity-registration` a new supported package for
+extensions. New code must not import it or use `wc.wcEntities`.
+
+## Internal responsibilities
+
+The entry also registers WooCommerce entities as a side effect when WordPress
+loads the `wc-entities` script. That registration behavior and the pure entity
+helpers under [`packages/internal/entities`](../../internal/entities) remain
+internal implementation details.
+
+Once the deprecated global completes its removal process, the registration
+entry can be reassessed without implying a permanent public API.
diff --git a/plugins/woocommerce/client/blocks/assets/js/entity-registration/deprecated-exports.ts b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/deprecated-exports.ts
similarity index 97%
rename from plugins/woocommerce/client/blocks/assets/js/entity-registration/deprecated-exports.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/entity-registration/deprecated-exports.ts
index 999262f1969..6b5b7149641 100644
--- a/plugins/woocommerce/client/blocks/assets/js/entity-registration/deprecated-exports.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/deprecated-exports.ts
@@ -10,7 +10,7 @@ import {
 	isExternalProduct as isExternalProductInternal,
 	isProductResponseItem as isProductResponseItemInternal,
 	useProduct as useProductInternal,
-} from '../entities';
+} from '../../internal/entities';

 const deprecationNoticesShown = new Set< string >();

diff --git a/plugins/woocommerce/client/blocks/assets/js/entity-registration/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/index.ts
similarity index 75%
rename from plugins/woocommerce/client/blocks/assets/js/entity-registration/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/entity-registration/index.ts
index 89064b8c529..e21e0e26511 100644
--- a/plugins/woocommerce/client/blocks/assets/js/entity-registration/index.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/index.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import { isExperimentalWcRestApiV4Enabled } from '../settings/blocks/feature-flags';
+import { isExperimentalWcRestApiV4Enabled } from '../../../assets/js/settings/blocks/feature-flags';
 import {
 	registerProductEntity,
 	registerSettingsEntity,
diff --git a/plugins/woocommerce/client/blocks/assets/js/entity-registration/register-entities.ts b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/register-entities.ts
similarity index 81%
rename from plugins/woocommerce/client/blocks/assets/js/entity-registration/register-entities.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/entity-registration/register-entities.ts
index f498e3d0110..a1a2c179018 100644
--- a/plugins/woocommerce/client/blocks/assets/js/entity-registration/register-entities.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/entity-registration/register-entities.ts
@@ -7,8 +7,8 @@ import { dispatch } from '@wordpress/data';
 /**
  * Internal dependencies
  */
-import { PRODUCT_ENTITY } from '../entities/product/constants';
-import { SETTINGS_ENTITY } from '../entities/settings/constants';
+import { PRODUCT_ENTITY } from '../../internal/entities/product/constants';
+import { SETTINGS_ENTITY } from '../../internal/entities/settings/constants';

 const registered: string[] = [];

diff --git a/plugins/woocommerce/client/blocks/packages/prices/index.js b/plugins/woocommerce/client/blocks/packages/public-api/price-format/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/prices/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/price-format/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/prices/utils/currency.ts b/plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/currency.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/prices/utils/currency.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/currency.ts
diff --git a/plugins/woocommerce/client/blocks/packages/prices/utils/index.js b/plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/prices/utils/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/index.js
diff --git a/plugins/woocommerce/client/blocks/packages/prices/utils/price.ts b/plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/price.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/prices/utils/price.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/price.ts
diff --git a/plugins/woocommerce/client/blocks/packages/prices/utils/test/price.js b/plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/test/price.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/packages/prices/utils/test/price.js
rename to plugins/woocommerce/client/blocks/packages/public-api/price-format/utils/test/price.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/default-constants.ts b/plugins/woocommerce/client/blocks/packages/public-api/settings/default-constants.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/default-constants.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/default-constants.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/default-fields.ts b/plugins/woocommerce/client/blocks/packages/public-api/settings/default-fields.ts
similarity index 98%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/default-fields.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/default-fields.ts
index 83467928f90..3c848574733 100644
--- a/plugins/woocommerce/client/blocks/assets/js/settings/shared/default-fields.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/settings/default-fields.ts
@@ -9,7 +9,7 @@ import { isFormFields } from '@woocommerce/types';
 /**
  * Internal dependencies
  */
-import { SelectOption } from '../../base/components';
+import type { SelectOption } from '@woocommerce/base-components/select';
 import { getSettingWithCoercion } from './utils';

 // A list of attributes that can be added to a custom field when registering it.
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/settings/index.ts
similarity index 70%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/index.ts
index dc4f1ac52bd..1d16568beb6 100644
--- a/plugins/woocommerce/client/blocks/assets/js/settings/shared/index.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/settings/index.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import '../../filters/exclude-draft-status-from-analytics';
+import '../../../assets/js/filters/exclude-draft-status-from-analytics';

 export * from './default-constants';
 export * from './default-fields';
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/settings-init.ts b/plugins/woocommerce/client/blocks/packages/public-api/settings/settings-init.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/settings-init.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/settings-init.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/test/compare-with-wp-version.js b/plugins/woocommerce/client/blocks/packages/public-api/settings/test/compare-with-wp-version.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/test/compare-with-wp-version.js
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/test/compare-with-wp-version.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/test/get-setting-with-coercion.ts b/plugins/woocommerce/client/blocks/packages/public-api/settings/test/get-setting-with-coercion.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/test/get-setting-with-coercion.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/test/get-setting-with-coercion.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/test/get-setting.js b/plugins/woocommerce/client/blocks/packages/public-api/settings/test/get-setting.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/test/get-setting.js
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/test/get-setting.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/settings/shared/utils.ts b/plugins/woocommerce/client/blocks/packages/public-api/settings/utils.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/settings/shared/utils.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/settings/utils.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/context/custom-data-context.tsx b/plugins/woocommerce/client/blocks/packages/public-api/shared-context/custom-data-context.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/context/custom-data-context.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-context/custom-data-context.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/context/index.js b/plugins/woocommerce/client/blocks/packages/public-api/shared-context/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/context/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-context/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/context/inner-block-layout-context.tsx b/plugins/woocommerce/client/blocks/packages/public-api/shared-context/inner-block-layout-context.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/context/inner-block-layout-context.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-context/inner-block-layout-context.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/context/product-data-context.tsx b/plugins/woocommerce/client/blocks/packages/public-api/shared-context/product-data-context.tsx
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/context/product-data-context.tsx
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-context/product-data-context.tsx
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/hocs/index.js b/plugins/woocommerce/client/blocks/packages/public-api/shared-hocs/index.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/hocs/index.js
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-hocs/index.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/hocs/with-filtered-attributes.js b/plugins/woocommerce/client/blocks/packages/public-api/shared-hocs/with-filtered-attributes.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/hocs/with-filtered-attributes.js
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-hocs/with-filtered-attributes.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/shared/hocs/with-product-data-context.js b/plugins/woocommerce/client/blocks/packages/public-api/shared-hocs/with-product-data-context.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/shared/hocs/with-product-data-context.js
rename to plugins/woocommerce/client/blocks/packages/public-api/shared-hocs/with-product-data-context.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/add-to-cart-form.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/add-to-cart-form.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/add-to-cart-form.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/add-to-cart-form.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/address-autocomplete.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/address-autocomplete.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/address-autocomplete.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/address-autocomplete.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/address-fields.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/address-fields.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/address-fields.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/address-fields.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/api-error-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/api-error-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/api-error-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/api-error-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/api-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/api-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/api-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/api-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/attributes.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/attributes.ts
similarity index 92%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/attributes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/attributes.ts
index 1e34df128ab..67bc309624b 100644
--- a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/attributes.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/attributes.ts
@@ -1,7 +1,7 @@
 /**
  * Internal dependencies
  */
-import type { VisualAttributeTerm } from '../../base/utils/visual-attribute-terms';
+import type { VisualAttributeTerm } from '@woocommerce/base-utils/visual-attribute-terms';

 export interface AttributeSetting {
 	attribute_id: string;
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/billing.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/billing.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/billing.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/billing.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/blocks.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/blocks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/blocks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/blocks.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/cart.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/cart.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/checkout.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/checkout.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/checkout.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/checkout.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/contexts.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/contexts.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/contexts.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/contexts.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/contexts.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/contexts.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/contexts.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/contexts.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/countries.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/countries.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/countries.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/countries.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/currency.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/currency.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/currency.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/currency.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/events.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/events.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/events.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/events.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/hocs.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/hocs.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/hocs.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/hocs.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/hooks.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/hooks.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/hooks.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/hooks.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/hooks.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/hooks.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/hooks.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/hooks.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/index.ts
similarity index 88%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/index.ts
index 34c23016364..45503543700 100644
--- a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/index.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/index.ts
@@ -18,6 +18,9 @@ export * from './payment-method-interface';
 export * from './payments';
 export * from './product-response';
 export * from './product-category-response';
+export * from './range-input';
+export * from './removable-items';
+export * from './selectable-items';
 export * from './shipping';
 export * from './stock-status';
 export * from './taxes';
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/notices.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/notices.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/notices.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/notices.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/objects.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/objects.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/objects.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/objects.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/payment-method-interface.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/payment-method-interface.ts
similarity index 99%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/payment-method-interface.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/payment-method-interface.ts
index f4f77237c38..8a9549f8854 100644
--- a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/payment-method-interface.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/payment-method-interface.ts
@@ -12,13 +12,13 @@ import type { ComponentType } from 'react';
 /**
  * Internal dependencies
  */
-import type { Currency } from './currency';
-import type { CartBillingAddress, CartShippingRate } from './cart';
 import type {
 	emitterCallback,
 	responseTypes,
 	noticeContexts,
-} from '../../base/context/event-emit';
+} from '@woocommerce/base-context/event-emit';
+import type { Currency } from './currency';
+import type { CartBillingAddress, CartShippingRate } from './cart';
 import type {
 	CartResponseShippingAddress,
 	CartResponseCouponItem,
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/payments.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/payments.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/payments.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/payments.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/product-category-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/product-category-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/product-category-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/product-category-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/product-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/product-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/product-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/product-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/range-input.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/range-input.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/range-input.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/range-input.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/removable-items.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/removable-items.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/removable-items.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/removable-items.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/selectable-items.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/selectable-items.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/selectable-items.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/selectable-items.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/settings.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/settings.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/settings.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/settings.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/shipping.js b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/shipping.js
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/shipping.js
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/shipping.js
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/shipping.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/shipping.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/shipping.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/shipping.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/stock-status.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/stock-status.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/stock-status.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/stock-status.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/taxes.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/taxes.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/taxes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/taxes.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/trim-html.d.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/trim-html.d.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/trim-html.d.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/trim-html.d.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/utils.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/utils.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/utils.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/utils.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-defs/validation.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/validation.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-defs/validation.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/validation.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/address.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/address.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/address.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/address.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/api-error-response.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/api-error-response.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/api-error-response.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/api-error-response.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/attributes.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/attributes.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/attributes.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/attributes.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/boolean.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/boolean.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/boolean.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/boolean.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/cart-response-totals.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/cart-response-totals.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/cart-response-totals.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/cart-response-totals.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/empty.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/empty.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/empty.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/empty.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/error.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/error.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/error.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/error.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/form-fields.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/form-fields.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/form-fields.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/form-fields.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/function.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/function.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/function.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/function.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/null.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/null.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/null.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/null.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/number.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/number.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/number.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/number.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/object.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/object.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/object.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/object.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/observers.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/observers.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/observers.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/observers.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/ratings.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/ratings.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/ratings.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/ratings.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/stock-status.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/stock-status.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/stock-status.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/stock-status.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/string.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/string.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/string.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/string.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/empty.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/empty.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/empty.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/empty.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/form-fields.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/form-fields.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/form-fields.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/form-fields.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/index.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/index.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/index.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/index.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/object.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/object.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/object.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/object.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/validation.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/validation.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/test/validation.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/test/validation.ts
diff --git a/plugins/woocommerce/client/blocks/assets/js/types/type-guards/validation.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/validation.ts
similarity index 100%
rename from plugins/woocommerce/client/blocks/assets/js/types/type-guards/validation.ts
rename to plugins/woocommerce/client/blocks/packages/public-api/types/type-guards/validation.ts
diff --git a/plugins/woocommerce/client/blocks/tests/integration/helpers/integration-test-editor.tsx b/plugins/woocommerce/client/blocks/tests/integration/helpers/integration-test-editor.tsx
index 1abbc48c772..4ddc3a2cfa6 100644
--- a/plugins/woocommerce/client/blocks/tests/integration/helpers/integration-test-editor.tsx
+++ b/plugins/woocommerce/client/blocks/tests/integration/helpers/integration-test-editor.tsx
@@ -26,7 +26,7 @@ import {
  */
 import { waitForStoreResolvers } from './wait-for-store-resolvers';
 import { unlock } from '../../utils/lock-unlock';
-import { registerProductEntity } from '../../../assets/js/entity-registration/register-entities';
+import { registerProductEntity } from '../../../packages/public-api/entity-registration/register-entities';

 const { ExperimentalBlockCanvas: BlockCanvas } = unlock(
 	blockEditorPrivateApis
diff --git a/plugins/woocommerce/client/blocks/tests/js/jest.config.js b/plugins/woocommerce/client/blocks/tests/js/jest.config.js
index 7f8d9e7b512..f714f3b5649 100644
--- a/plugins/woocommerce/client/blocks/tests/js/jest.config.js
+++ b/plugins/woocommerce/client/blocks/tests/js/jest.config.js
@@ -59,32 +59,50 @@ module.exports = {
 		'@woocommerce/atomic-blocks': 'assets/js/atomic/blocks',
 		'@woocommerce/atomic-utils': 'assets/js/atomic/utils',
 		'@woocommerce/icons': 'assets/js/icons',
-		'@woocommerce/settings': 'assets/js/settings/shared',
+		'^@woocommerce/settings/(.*)$': 'packages/public-api/settings/$1',
+		'^@woocommerce/settings$': 'packages/public-api/settings',
 		'@woocommerce/blocks/(.*)$': 'assets/js/blocks/$1',
 		'@woocommerce/block-settings': 'assets/js/settings/blocks',
 		'@woocommerce/editor-components(.*)$': 'assets/js/editor-components/$1',
-		'@woocommerce/blocks-registry': 'assets/js/blocks-registry',
-		'@woocommerce/blocks-checkout$': 'packages/checkout',
-		'@woocommerce/blocks-checkout-events': 'assets/js/events',
-		'@woocommerce/blocks-components': 'packages/components',
-		'@woocommerce/price-format': 'packages/prices',
+		'^@woocommerce/blocks-registry/(.*)$':
+			'packages/public-api/blocks-registry/$1',
+		'^@woocommerce/blocks-registry$': 'packages/public-api/blocks-registry',
+		'^@woocommerce/blocks-checkout/(.*)$':
+			'packages/public-api/blocks-checkout/$1',
+		'^@woocommerce/blocks-checkout$': 'packages/public-api/blocks-checkout',
+		'^@woocommerce/blocks-checkout-events/(.*)$':
+			'packages/public-api/blocks-checkout-events/$1',
+		'^@woocommerce/blocks-checkout-events$':
+			'packages/public-api/blocks-checkout-events',
+		'^@woocommerce/blocks-components/(.*)$':
+			'packages/public-api/blocks-components/$1',
+		'^@woocommerce/blocks-components$':
+			'packages/public-api/blocks-components',
+		'^@woocommerce/price-format/(.*)$':
+			'packages/public-api/price-format/$1',
+		'^@woocommerce/price-format$': 'packages/public-api/price-format',
 		'@woocommerce/block-hocs(.*)$': 'assets/js/hocs/$1',
 		'@woocommerce/base-components(.*)$': 'assets/js/base/components/$1',
 		'@woocommerce/base-context(.*)$': 'assets/js/base/context/$1',
 		'@woocommerce/base-hocs(.*)$': 'assets/js/base/hocs/$1',
 		'@woocommerce/base-hooks(.*)$': 'assets/js/base/hooks/$1',
 		'@woocommerce/base-utils(.*)$': 'assets/js/base/utils',
-		'@woocommerce/block-data/(.*)$': 'assets/js/data/$1',
-		'@woocommerce/block-data': 'assets/js/data',
+		'^@woocommerce/block-data/(.*)$': 'packages/public-api/block-data/$1',
+		'^@woocommerce/block-data$': 'packages/public-api/block-data',
 		'@woocommerce/resource-previews': 'assets/js/previews',
-		'@woocommerce/shared-context': 'assets/js/shared/context',
-		'@woocommerce/shared-hocs': 'assets/js/shared/hocs',
+		'^@woocommerce/shared-context/(.*)$':
+			'packages/public-api/shared-context/$1',
+		'^@woocommerce/shared-context$': 'packages/public-api/shared-context',
+		'^@woocommerce/shared-hocs/(.*)$': 'packages/public-api/shared-hocs/$1',
+		'^@woocommerce/shared-hocs$': 'packages/public-api/shared-hocs',
 		'@woocommerce/blocks-test-utils/(.*)$': 'tests/utils/$1',
 		'@woocommerce/blocks-test-utils': 'tests/utils',
-		'@woocommerce/types': 'assets/js/types',
+		'^@woocommerce/types/(.*)$': 'packages/public-api/types/$1',
+		'^@woocommerce/types$': 'packages/public-api/types',
 		'@woocommerce/utils': 'assets/js/utils',
 		'@woocommerce/test-utils/msw': 'tests/js/config/msw-setup.js',
-		'@woocommerce/entities': 'assets/js/entities',
+		'^@woocommerce/entities/(.*)$': 'packages/internal/entities/$1',
+		'^@woocommerce/entities$': 'packages/internal/entities',
 		'@woocommerce/stores/(.*)$': 'assets/js/base/stores/$1',
 		'^react$': '<rootDir>/node_modules/react',
 		'^react-dom$': '<rootDir>/node_modules/react-dom',
diff --git a/plugins/woocommerce/client/blocks/tsconfig.base.json b/plugins/woocommerce/client/blocks/tsconfig.base.json
index 08ee775ad3c..af79e405a2f 100644
--- a/plugins/woocommerce/client/blocks/tsconfig.base.json
+++ b/plugins/woocommerce/client/blocks/tsconfig.base.json
@@ -83,28 +83,43 @@
 				"assets/js/editor-components/*"
 			],
 			"@woocommerce/block-data": [
-				"assets/js/data"
+				"packages/public-api/block-data"
 			],
 			"@woocommerce/block-data/*": [
-				"assets/js/data/*"
+				"packages/public-api/block-data/*"
 			],
 			"@woocommerce/block-hocs": [
 				"assets/js/hocs"
 			],
 			"@woocommerce/blocks-registry": [
-				"assets/js/blocks-registry"
+				"packages/public-api/blocks-registry"
+			],
+			"@woocommerce/blocks-registry/*": [
+				"packages/public-api/blocks-registry/*"
 			],
 			"@woocommerce/blocks-checkout": [
-				"packages/checkout"
+				"packages/public-api/blocks-checkout"
+			],
+			"@woocommerce/blocks-checkout/*": [
+				"packages/public-api/blocks-checkout/*"
 			],
 			"@woocommerce/blocks-checkout-events": [
-				"assets/js/events"
+				"packages/public-api/blocks-checkout-events"
+			],
+			"@woocommerce/blocks-checkout-events/*": [
+				"packages/public-api/blocks-checkout-events/*"
 			],
 			"@woocommerce/blocks-components": [
-				"packages/components"
+				"packages/public-api/blocks-components"
+			],
+			"@woocommerce/blocks-components/*": [
+				"packages/public-api/blocks-components/*"
 			],
 			"@woocommerce/price-format": [
-				"packages/prices"
+				"packages/public-api/price-format"
+			],
+			"@woocommerce/price-format/*": [
+				"packages/public-api/price-format/*"
 			],
 			"@woocommerce/block-settings": [
 				"assets/js/settings/blocks"
@@ -116,13 +131,22 @@
 				"assets/js/previews"
 			],
 			"@woocommerce/settings": [
-				"assets/js/settings/shared"
+				"packages/public-api/settings"
+			],
+			"@woocommerce/settings/*": [
+				"packages/public-api/settings/*"
 			],
 			"@woocommerce/shared-context": [
-				"assets/js/shared/context"
+				"packages/public-api/shared-context"
+			],
+			"@woocommerce/shared-context/*": [
+				"packages/public-api/shared-context/*"
 			],
 			"@woocommerce/shared-hocs": [
-				"assets/js/shared/hocs"
+				"packages/public-api/shared-hocs"
+			],
+			"@woocommerce/shared-hocs/*": [
+				"packages/public-api/shared-hocs/*"
 			],
 			"@woocommerce/stores/store-notices": [
 				"assets/js/base/stores/store-notices"
@@ -137,10 +161,13 @@
 				"assets/js/base/stores/woocommerce/shopper-lists"
 			],
 			"@woocommerce/type-defs/*": [
-				"assets/js/types/type-defs/*"
+				"packages/public-api/types/type-defs/*"
 			],
 			"@woocommerce/types": [
-				"assets/js/types"
+				"packages/public-api/types"
+			],
+			"@woocommerce/types/*": [
+				"packages/public-api/types/*"
 			],
 			"@woocommerce/storybook-controls": [
 				"storybook/custom-controls"
@@ -155,7 +182,10 @@
 				"tests/js/config/msw-setup"
 			],
 			"@woocommerce/entities": [
-				"assets/js/entities"
+				"packages/internal/entities"
+			],
+			"@woocommerce/entities/*": [
+				"packages/internal/entities/*"
 			],
 			"@woocommerce/sanitize": [
 				"node_modules/@woocommerce/sanitize/src/index.ts"
diff --git a/plugins/woocommerce/client/blocks/tsconfig.json b/plugins/woocommerce/client/blocks/tsconfig.json
index 6e2aa1c19c3..079343ebeea 100644
--- a/plugins/woocommerce/client/blocks/tsconfig.json
+++ b/plugins/woocommerce/client/blocks/tsconfig.json
@@ -4,12 +4,8 @@
 		"./typings/**/*",
 		"./assets/js/**/*",
 		"./assets/js/**/*.json",
-		"./assets/js/blocks-registry/**/*",
-		"./packages/checkout/**/*",
-		"./packages/components/**/*",
-		"./assets/js/entities/**/*",
-		"./packages/prices/**/*",
-		"./assets/js/data/**/*",
+		"./packages/public-api/**/*",
+		"./packages/internal/**/*",
 		"./assets/js/middleware/**/*",
 		"./assets/js/blocks/**/block.json",
 		"./assets/js/atomic/blocks/**/block.json",