Add new `@woocommerce/product-editor` JS package (#36600)

* Bootstrap product-editor package

* Move product section components over to product editor package

* Add changelogs

* Remove unused import leftover from rebase
This commit is contained in:
louwie17 2023-01-31 09:38:28 -04:00 committed by GitHub
parent c080886262
commit 5f0572664f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 852 additions and 68 deletions

View File

@ -0,0 +1,4 @@
Significance: minor
Type: update
Move experimental product section components to @woocommerce/product-editor package.

View File

@ -88,10 +88,6 @@ export { createOrderedChildren, sortFillsByOrder } from './utils';
export { WooProductFieldItem as __experimentalWooProductFieldItem } from './woo-product-field-item';
export { WooProductSectionItem as __experimentalWooProductSectionItem } from './woo-product-section-item';
export { WooProductTabItem as __experimentalWooProductTabItem } from './woo-product-tab-item';
export {
ProductSectionLayout as __experimentalProductSectionLayout,
ProductFieldSection as __experimentalProductFieldSection,
} from './product-section-layout';
export * from './product-fields';
export {
SlotContextProvider,

View File

@ -56,5 +56,4 @@
@import 'tour-kit/style.scss';
@import 'collapsible-content/style.scss';
@import 'form/style.scss';
@import 'product-section-layout/style.scss';
@import 'experimental-tree-control/tree.scss';

View File

@ -14,6 +14,7 @@ module.exports = [
'@woocommerce/navigation',
'@woocommerce/notices',
'@woocommerce/number',
'@woocommerce/product-editor',
'@woocommerce/tracks',
// wc-blocks packages
'@woocommerce/blocks-checkout',

View File

@ -0,0 +1,4 @@
Significance: minor
Type: add
Add @woocommerce/product-editor package to the packages list.

View File

@ -0,0 +1 @@
package-lock=false

View File

@ -0,0 +1,11 @@
# Product Editor
A collection of WooCommerce Admin product editor components and utilities.
## Installation
Install the module
```bash
pnpm install @woocommerce/product-editor --save
```

View File

@ -0,0 +1,4 @@
Significance: minor
Type: add
Adding initial build/package files for brand new package: @woocommere/product-editor.

View File

@ -0,0 +1,32 @@
{
"name": "woocommerce/product-editor",
"description": "WooCommerce Admin product editor component library",
"type": "library",
"license": "GPL-3.0-or-later",
"minimum-stability": "dev",
"require-dev": {
"automattic/jetpack-changelogger": "3.3.0"
},
"config": {
"platform": {
"php": "7.2"
}
},
"extra": {
"changelogger": {
"formatter": {
"filename": "../../../tools/changelogger/class-package-formatter.php"
},
"types": {
"fix": "Fixes an existing bug",
"add": "Adds functionality",
"update": "Update existing functionality",
"dev": "Development related task",
"tweak": "A minor adjustment to the codebase",
"performance": "Address performance issues",
"enhancement": "Improve existing functionality"
},
"changelog": "CHANGELOG.md"
}
}
}

483
packages/js/product-editor/composer.lock generated Normal file
View File

@ -0,0 +1,483 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "36c31d66fa022c27e5bb2bf5db177a6b",
"packages": [],
"packages-dev": [
{
"name": "automattic/jetpack-changelogger",
"version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/Automattic/jetpack-changelogger.git",
"reference": "8f63c829b8d1b0d7b1d5de93510d78523ed18959"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Automattic/jetpack-changelogger/zipball/8f63c829b8d1b0d7b1d5de93510d78523ed18959",
"reference": "8f63c829b8d1b0d7b1d5de93510d78523ed18959",
"shasum": ""
},
"require": {
"php": ">=5.6",
"symfony/console": "^3.4 || ^5.2 || ^6.0",
"symfony/process": "^3.4 || ^5.2 || ^6.0",
"wikimedia/at-ease": "^1.2 || ^2.0"
},
"require-dev": {
"wikimedia/testing-access-wrapper": "^1.0 || ^2.0",
"yoast/phpunit-polyfills": "1.0.4"
},
"bin": [
"bin/changelogger"
],
"type": "project",
"extra": {
"autotagger": true,
"branch-alias": {
"dev-trunk": "3.3.x-dev"
},
"mirror-repo": "Automattic/jetpack-changelogger",
"version-constants": {
"::VERSION": "src/Application.php"
},
"changelogger": {
"link-template": "https://github.com/Automattic/jetpack-changelogger/compare/${old}...${new}"
}
},
"autoload": {
"psr-4": {
"Automattic\\Jetpack\\Changelog\\": "lib",
"Automattic\\Jetpack\\Changelogger\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0-or-later"
],
"description": "Jetpack Changelogger tool. Allows for managing changelogs by dropping change files into a changelog directory with each PR.",
"support": {
"source": "https://github.com/Automattic/jetpack-changelogger/tree/v3.3.0"
},
"time": "2022-12-26T13:49:01+00:00"
},
{
"name": "psr/log",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.4"
},
"time": "2021-05-03T11:20:27+00:00"
},
{
"name": "symfony/console",
"version": "3.4.x-dev",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81",
"reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8",
"symfony/debug": "~2.8|~3.0|~4.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"symfony/dependency-injection": "<3.4",
"symfony/process": "<3.3"
},
"provide": {
"psr/log-implementation": "1.0"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~3.3|~4.0",
"symfony/dependency-injection": "~3.4|~4.0",
"symfony/event-dispatcher": "~2.8|~3.0|~4.0",
"symfony/lock": "~3.4|~4.0",
"symfony/process": "~3.3|~4.0"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/lock": "",
"symfony/process": ""
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Console\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/console/tree/3.4"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "symfony/debug",
"version": "4.4.x-dev",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "1a692492190773c5310bc7877cb590c04c2f05be"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be",
"reference": "1a692492190773c5310bc7877cb590c04c2f05be",
"shasum": ""
},
"require": {
"php": ">=7.1.3",
"psr/log": "^1|^2|^3"
},
"conflict": {
"symfony/http-kernel": "<3.4"
},
"require-dev": {
"symfony/http-kernel": "^3.4|^4.0|^5.0"
},
"default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Debug\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Provides tools to ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/debug/tree/v4.4.44"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"abandoned": "symfony/error-handler",
"time": "2022-07-28T16:29:46+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "dev-main",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"provide": {
"ext-mbstring": "*"
},
"suggest": {
"ext-mbstring": "For best performance"
},
"default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Mbstring\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/process",
"version": "3.4.x-dev",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/b8648cf1d5af12a44a51d07ef9bf980921f15fca",
"reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca",
"shasum": ""
},
"require": {
"php": "^5.5.9|>=7.0.8"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Process\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/3.4"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "wikimedia/at-ease",
"version": "v2.0.0",
"source": {
"type": "git",
"url": "https://github.com/wikimedia/at-ease.git",
"reference": "013ac61929797839c80a111a3f1a4710d8248e7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/wikimedia/at-ease/zipball/013ac61929797839c80a111a3f1a4710d8248e7a",
"reference": "013ac61929797839c80a111a3f1a4710d8248e7a",
"shasum": ""
},
"require": {
"php": ">=5.6.99"
},
"require-dev": {
"jakub-onderka/php-console-highlighter": "0.3.2",
"jakub-onderka/php-parallel-lint": "1.0.0",
"mediawiki/mediawiki-codesniffer": "22.0.0",
"mediawiki/minus-x": "0.3.1",
"ockcyp/covers-validator": "0.5.1 || 0.6.1",
"phpunit/phpunit": "4.8.36 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/Wikimedia/Functions.php"
],
"psr-4": {
"Wikimedia\\AtEase\\": "src/Wikimedia/AtEase/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0-or-later"
],
"authors": [
{
"name": "Tim Starling",
"email": "tstarling@wikimedia.org"
},
{
"name": "MediaWiki developers",
"email": "wikitech-l@lists.wikimedia.org"
}
],
"description": "Safe replacement to @ for suppressing warnings.",
"homepage": "https://www.mediawiki.org/wiki/at-ease",
"support": {
"source": "https://github.com/wikimedia/at-ease/tree/master"
},
"time": "2018-10-10T15:39:06+00:00"
}
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
"platform-overrides": {
"php": "7.2"
},
"plugin-api-version": "2.3.0"
}

View File

@ -0,0 +1,64 @@
{
"name": "@woocommerce/product-editor",
"version": "1.0.0-beta.0",
"description": "React components for the WooCommerce admin product editor.",
"author": "Automattic",
"license": "GPL-2.0-or-later",
"keywords": [
"wordpress",
"woocommerce"
],
"homepage": "https://github.com/woocommerce/woocommerce/tree/trunk/packages/js/product-editor/README.md",
"repository": {
"type": "git",
"url": "https://github.com/woocommerce/woocommerce.git"
},
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
"main": "build/index.js",
"module": "build-module/index.js",
"types": "build-types",
"react-native": "src/index",
"sideEffects": [
"build-style/**",
"src/**/*.scss"
],
"publishConfig": {
"access": "public"
},
"dependencies": {
"@woocommerce/components": "workspace:*",
"@wordpress/components": "^19.5.0",
"@wordpress/element": "^4.1.1"
},
"devDependencies": {
"@types/wordpress__components": "^19.10.1",
"@woocommerce/eslint-plugin": "workspace:*",
"@woocommerce/internal-style-build": "workspace:*",
"@wordpress/browserslist-config": "^4.1.1",
"css-loader": "^3.6.0",
"eslint": "^8.12.0",
"jest": "^27.5.1",
"jest-cli": "^27.5.1",
"postcss-loader": "^3.0.0",
"sass-loader": "^10.2.1",
"ts-jest": "^27.1.3",
"typescript": "^4.8.3",
"webpack": "^5.70.0",
"webpack-cli": "^3.3.12"
},
"scripts": {
"turbo:build": "pnpm run build:js && pnpm run build:css",
"prepare": "composer install",
"changelog": "composer exec -- changelogger",
"clean": "pnpm exec rimraf tsconfig.tsbuildinfo build build-*",
"build": "pnpm -w exec turbo run turbo:build --filter=$npm_package_name",
"lint": "eslint src",
"build:js": "tsc --build ./tsconfig.json ./tsconfig-cjs.json",
"build:css": "webpack",
"start": "concurrently \"tsc --build --watch\" \"webpack --watch\"",
"prepack": "pnpm run clean && pnpm run build",
"lint:fix": "eslint src --fix"
}
}

View File

@ -0,0 +1,4 @@
export {
ProductSectionLayout as __experimentalProductSectionLayout,
ProductFieldSection as __experimentalProductFieldSection,
} from './product-section-layout';

View File

@ -3,12 +3,12 @@
*/
import { createElement } from '@wordpress/element';
import { Card, CardBody } from '@wordpress/components';
import { __experimentalWooProductFieldItem as WooProductFieldItem } from '@woocommerce/components';
/**
* Internal dependencies
*/
import { ProductSectionLayout } from './product-section-layout';
import { WooProductFieldItem } from '../woo-product-field-item';
type ProductFieldSectionProps = {
id: string;

View File

@ -2,11 +2,7 @@
* External dependencies
*/
import { Children, isValidElement, createElement } from '@wordpress/element';
/**
* Internal dependencies
*/
import { FormSection } from '../form-section';
import { FormSection } from '@woocommerce/components';
type ProductSectionLayoutProps = {
title: string;

View File

@ -0,0 +1 @@
@import 'product-section-layout/style.scss';

View File

@ -0,0 +1,6 @@
{
"extends": "../tsconfig-cjs",
"compilerOptions": {
"outDir": "build"
}
}

View File

@ -0,0 +1,10 @@
{
"extends": "../tsconfig",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
"declaration": true,
"declarationMap": true,
"declarationDir": "./build-types"
}
}

View File

@ -0,0 +1,18 @@
/**
* Internal dependencies
*/
const { webpackConfig } = require( '@woocommerce/internal-style-build' );
module.exports = {
mode: process.env.NODE_ENV || 'development',
entry: {
'build-style': __dirname + '/src/style.scss',
},
output: {
path: __dirname,
},
module: {
rules: webpackConfig.rules,
},
plugins: webpackConfig.plugins,
};

View File

@ -5,9 +5,9 @@ import { __ } from '@wordpress/i18n';
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalWooProductFieldItem as WooProductFieldItem,
__experimentalProductSectionLayout as ProductSectionLayout,
Link,
} from '@woocommerce/components';
import { __experimentalProductSectionLayout as ProductSectionLayout } from '@woocommerce/product-editor';
import { recordEvent } from '@woocommerce/tracks';
/**

View File

@ -5,8 +5,8 @@ import { __ } from '@wordpress/i18n';
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalWooProductFieldItem as WooProductFieldItem,
__experimentalProductFieldSection as ProductFieldSection,
} from '@woocommerce/components';
import { __experimentalProductFieldSection as ProductFieldSection } from '@woocommerce/product-editor';
/**
* Internal dependencies

View File

@ -5,9 +5,9 @@ import { __ } from '@wordpress/i18n';
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalWooProductFieldItem as WooProductFieldItem,
__experimentalProductFieldSection as ProductFieldSection,
Link,
} from '@woocommerce/components';
import { __experimentalProductFieldSection as ProductFieldSection } from '@woocommerce/product-editor';
import { recordEvent } from '@woocommerce/tracks';
/**

View File

@ -5,11 +5,11 @@ import { __ } from '@wordpress/i18n';
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalWooProductFieldItem as WooProductFieldItem,
__experimentalProductSectionLayout as ProductSectionLayout,
Link,
useFormContext,
CollapsibleContent,
} from '@woocommerce/components';
import { __experimentalProductSectionLayout as ProductSectionLayout } from '@woocommerce/product-editor';
import { Card, CardBody } from '@wordpress/components';
import { recordEvent } from '@woocommerce/tracks';
import { getAdminLink } from '@woocommerce/settings';

View File

@ -5,11 +5,11 @@ import { __ } from '@wordpress/i18n';
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalWooProductFieldItem as WooProductFieldItem,
__experimentalProductSectionLayout as ProductSectionLayout,
Link,
useFormContext,
CollapsibleContent,
} from '@woocommerce/components';
import { __experimentalProductSectionLayout as ProductSectionLayout } from '@woocommerce/product-editor';
import { recordEvent } from '@woocommerce/tracks';
import { Product } from '@woocommerce/data';
import { useContext } from '@wordpress/element';

View File

@ -1,10 +1,9 @@
/**
* External dependencies
*/
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalProductFieldSection as ProductFieldSection,
} from '@woocommerce/components';
import { __ } from '@wordpress/i18n';
import { __experimentalWooProductSectionItem as WooProductSectionItem } from '@woocommerce/components';
import { __experimentalProductFieldSection as ProductFieldSection } from '@woocommerce/product-editor';
import { ProductFormSection } from '@woocommerce/data';
export const Sections: React.FC< { sections: ProductFormSection[] } > = ( {

View File

@ -5,8 +5,8 @@ import { __ } from '@wordpress/i18n';
import {
__experimentalWooProductSectionItem as WooProductSectionItem,
__experimentalWooProductFieldItem as WooProductFieldItem,
__experimentalProductSectionLayout as ProductSectionLayout,
} from '@woocommerce/components';
import { __experimentalProductSectionLayout as ProductSectionLayout } from '@woocommerce/product-editor';
import { PartialProduct, OPTIONS_STORE_NAME } from '@woocommerce/data';
import { useSelect } from '@wordpress/data';
import { useState } from '@wordpress/element';

View File

@ -151,6 +151,7 @@
"@woocommerce/navigation": "workspace:*",
"@woocommerce/notices": "workspace:*",
"@woocommerce/number": "workspace:*",
"@woocommerce/product-editor": "workspace:*",
"@woocommerce/onboarding": "workspace:*",
"@woocommerce/tracks": "workspace:*",
"@wordpress/babel-preset-default": "^6.5.1",

View File

@ -36,6 +36,7 @@ const wcAdminPackages = [
'data',
'tracks',
'onboarding',
'product-editor',
];
// wpAdminScripts are loaded on wp-admin pages outside the context of WooCommerce Admin
// See ./client/wp-admin-scripts/README.md for more details

View File

@ -0,0 +1,4 @@
Significance: minor
Type: add
Add @woocommerce/product-editor dependency and change dependency of ProductSectionLayout component.

View File

@ -263,6 +263,7 @@ class WCAdminAssets {
'wc-store-data',
'wc-currency',
'wc-navigation',
'wc-product-editor',
);
$scripts_map = array(
@ -311,6 +312,14 @@ class WCAdminAssets {
);
wp_style_add_data( 'wc-components', 'rtl', 'replace' );
wp_register_style(
'wc-product-editor',
self::get_url( 'product-editor/style', 'css' ),
array(),
$css_file_version
);
wp_style_add_data( 'wc-product-editor', 'rtl', 'replace' );
wp_register_style(
'wc-customer-effort-score',
self::get_url( 'customer-effort-score/style', 'css' ),
@ -339,7 +348,7 @@ class WCAdminAssets {
wp_register_style(
WC_ADMIN_APP,
self::get_url( 'app/style', 'css' ),
array( 'wc-components', 'wc-customer-effort-score', 'wp-components', 'wc-experimental' ),
array( 'wc-components', 'wc-customer-effort-score', 'wc-product-editor', 'wp-components', 'wc-experimental' ),
$css_file_version
);
wp_style_add_data( WC_ADMIN_APP, 'rtl', 'replace' );
@ -370,6 +379,7 @@ class WCAdminAssets {
'wc-date',
'wc-components',
'wc-tracks',
'wc-product-editor',
];
foreach ( $handles_for_injection as $handle ) {
$script = wp_scripts()->query( $handle, 'registered' );

View File

@ -1289,6 +1289,45 @@ importers:
webpack: 5.70.0_webpack-cli@3.3.12
webpack-cli: 3.3.12_webpack@5.70.0
packages/js/product-editor:
specifiers:
'@types/wordpress__components': ^19.10.1
'@woocommerce/components': workspace:*
'@woocommerce/eslint-plugin': workspace:*
'@woocommerce/internal-style-build': workspace:*
'@wordpress/browserslist-config': ^4.1.1
'@wordpress/components': ^19.5.0
'@wordpress/element': ^4.1.1
css-loader: ^3.6.0
eslint: ^8.12.0
jest: ^27.5.1
jest-cli: ^27.5.1
postcss-loader: ^3.0.0
sass-loader: ^10.2.1
ts-jest: ^27.1.3
typescript: ^4.8.3
webpack: ^5.70.0
webpack-cli: ^3.3.12
dependencies:
'@woocommerce/components': link:../components
'@wordpress/components': 19.12.0_rysvg2ttzfworbkpz2ftlx73d4
'@wordpress/element': 4.20.0
devDependencies:
'@types/wordpress__components': 19.10.1_prpqlkd37azqwypxturxi7uyci
'@woocommerce/eslint-plugin': link:../eslint-plugin
'@woocommerce/internal-style-build': link:../internal-style-build
'@wordpress/browserslist-config': 4.1.3
css-loader: 3.6.0_webpack@5.70.0
eslint: 8.28.0
jest: 27.5.1
jest-cli: 27.5.1
postcss-loader: 3.0.0
sass-loader: 10.2.1_webpack@5.70.0
ts-jest: 27.1.3_77oryishcckaigojnzbhxsiona
typescript: 4.8.4
webpack: 5.70.0_webpack-cli@3.3.12
webpack-cli: 3.3.12_webpack@5.70.0
packages/js/tracks:
specifiers:
'@babel/core': ^7.17.5
@ -1474,6 +1513,7 @@ importers:
'@woocommerce/notices': workspace:*
'@woocommerce/number': workspace:*
'@woocommerce/onboarding': workspace:*
'@woocommerce/product-editor': workspace:*
'@woocommerce/tracks': workspace:*
'@wordpress/a11y': ^3.5.0
'@wordpress/api-fetch': ^6.0.1
@ -1689,6 +1729,7 @@ importers:
'@woocommerce/notices': link:../../packages/js/notices
'@woocommerce/number': link:../../packages/js/number
'@woocommerce/onboarding': link:../../packages/js/onboarding
'@woocommerce/product-editor': link:../../packages/js/product-editor
'@woocommerce/tracks': link:../../packages/js/tracks
'@wordpress/babel-preset-default': 6.6.1
'@wordpress/block-editor': 9.8.0_vcke6catv4iqpjdw24uwvlzyyi
@ -4094,7 +4135,7 @@ packages:
'@babel/core': 7.12.9
'@babel/helper-annotate-as-pure': 7.16.7
'@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.12.9
'@babel/helper-plugin-utils': 7.19.0
'@babel/helper-plugin-utils': 7.18.9
'@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.12.9
transitivePeerDependencies:
- supports-color
@ -4109,7 +4150,7 @@ packages:
'@babel/core': 7.16.12
'@babel/helper-annotate-as-pure': 7.16.7
'@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.16.12
'@babel/helper-plugin-utils': 7.19.0
'@babel/helper-plugin-utils': 7.18.9
'@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.16.12
transitivePeerDependencies:
- supports-color
@ -7495,7 +7536,7 @@ packages:
resolution: {integrity: sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==}
dependencies:
'@emotion/memoize': 0.7.5
'@emotion/sheet': 1.1.0
'@emotion/sheet': 1.2.1
'@emotion/utils': 1.2.0
'@emotion/weak-memoize': 0.2.5
stylis: 4.0.13
@ -7533,7 +7574,7 @@ packages:
'@emotion/babel-plugin': 11.10.5_@babel+core@7.17.8
'@emotion/cache': 11.10.5
'@emotion/serialize': 1.1.1
'@emotion/sheet': 1.1.0
'@emotion/sheet': 1.2.1
'@emotion/utils': 1.2.0
/@emotion/hash/0.8.0:
@ -7664,9 +7705,6 @@ packages:
/@emotion/sheet/0.9.4:
resolution: {integrity: sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==}
/@emotion/sheet/1.1.0:
resolution: {integrity: sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==}
/@emotion/sheet/1.2.1:
resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==}
@ -7812,8 +7850,8 @@ packages:
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.4.0
globals: 13.17.0
espree: 9.4.1
globals: 13.18.0
ignore: 4.0.6
import-fresh: 3.3.0
js-yaml: 4.1.0
@ -7829,8 +7867,8 @@ packages:
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.4.0
globals: 13.17.0
espree: 9.4.1
globals: 13.18.0
ignore: 5.2.0
import-fresh: 3.3.0
js-yaml: 4.1.0
@ -7896,6 +7934,20 @@ packages:
- '@types/react'
dev: false
/@floating-ui/react-dom/0.6.3_prpqlkd37azqwypxturxi7uyci:
resolution: {integrity: sha512-hC+pS5D6AgS2wWjbmSQ6UR6Kpy+drvWGJIri6e1EDGADTPsCaa4KzCgmCczHrQeInx9tqs81EyDmbKJYY2swKg==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
'@floating-ui/dom': 0.4.5
react: 17.0.2
react-dom: 16.14.0_react@17.0.2
use-isomorphic-layout-effect: 1.1.1_react@17.0.2
transitivePeerDependencies:
- '@types/react'
dev: false
/@floating-ui/react-dom/1.0.0_sfoxds7t5ydpegc3knd667wn6m:
resolution: {integrity: sha512-uiOalFKPG937UCLm42RxjESTWUVpbbatvlphQAU6bsv+ence6IoVG8JOUZcy8eW81NkU+Idiwvx10WFLmR4MIg==}
peerDependencies:
@ -8206,7 +8258,7 @@ packages:
'@jest/test-result': 27.5.1
'@jest/transform': 27.5.1
'@jest/types': 27.5.1
'@types/node': 17.0.21
'@types/node': 18.11.18
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.8.1
@ -8792,7 +8844,7 @@ packages:
dependencies:
'@types/istanbul-lib-coverage': 2.0.3
'@types/istanbul-reports': 3.0.1
'@types/node': 17.0.21
'@types/node': 18.11.18
'@types/yargs': 16.0.4
chalk: 4.1.2
@ -15473,6 +15525,60 @@ packages:
- react-with-direction
dev: false
/@wordpress/components/19.12.0_rysvg2ttzfworbkpz2ftlx73d4:
resolution: {integrity: sha512-Ac1+aIMM7NDgN3G7i5kcaETSvZfeqB4U6PubApPmM6FdBF5VfkYUZeqNcC7cuJdveyokRrqHg11/l+DcJGA7/g==}
engines: {node: '>=12'}
peerDependencies:
react: ^17.0.0
react-dom: ^17.0.0
dependencies:
'@babel/runtime': 7.19.0
'@emotion/cache': 11.10.5
'@emotion/css': 11.7.1_@babel+core@7.17.8
'@emotion/react': 11.10.5_mcptgafjogap2nfvnfqvfwh6uu
'@emotion/serialize': 1.1.1
'@emotion/styled': 11.8.1_c2qm47vaialpqni522adyu6za4
'@emotion/utils': 1.0.0
'@floating-ui/react-dom': 0.6.3_prpqlkd37azqwypxturxi7uyci
'@use-gesture/react': 10.2.10_react@17.0.2
'@wordpress/a11y': 3.19.0
'@wordpress/compose': 5.17.0_react@17.0.2
'@wordpress/date': 4.19.0
'@wordpress/deprecated': 3.19.0
'@wordpress/dom': 3.19.0
'@wordpress/element': 4.20.0
'@wordpress/escape-html': 2.22.0
'@wordpress/hooks': 3.19.0
'@wordpress/i18n': 4.19.0
'@wordpress/icons': 9.10.0
'@wordpress/is-shallow-equal': 4.19.0
'@wordpress/keycodes': 3.19.0
'@wordpress/primitives': 3.17.0
'@wordpress/rich-text': 5.17.0_react@17.0.2
'@wordpress/warning': 2.19.0
classnames: 2.3.1
colord: 2.9.2
dom-scroll-into-view: 1.2.1
downshift: 6.1.12_react@17.0.2
framer-motion: 6.2.8_prpqlkd37azqwypxturxi7uyci
gradient-parser: 0.1.5
highlight-words-core: 1.2.2
lodash: 4.17.21
memize: 1.1.0
moment: 2.29.1
re-resizable: 6.9.5_prpqlkd37azqwypxturxi7uyci
react: 17.0.2
react-colorful: 5.5.1_prpqlkd37azqwypxturxi7uyci
react-dates: 21.8.0_itvjtpkzdblwka3tnmrs5t5e6y
react-dom: 16.14.0_react@17.0.2
reakit: 1.3.11_prpqlkd37azqwypxturxi7uyci
uuid: 8.3.2
transitivePeerDependencies:
- '@babel/core'
- '@types/react'
- react-with-direction
dev: false
/@wordpress/components/19.12.0_tufdcic6wklrwyy3rhbsbktylu:
resolution: {integrity: sha512-Ac1+aIMM7NDgN3G7i5kcaETSvZfeqB4U6PubApPmM6FdBF5VfkYUZeqNcC7cuJdveyokRrqHg11/l+DcJGA7/g==}
engines: {node: '>=12'}
@ -16302,7 +16408,7 @@ packages:
'@babel/runtime': 7.19.0
'@types/react': 16.14.31
'@types/react-dom': 16.9.16
'@wordpress/escape-html': 2.19.0
'@wordpress/escape-html': 2.22.0
lodash: 4.17.21
react: 17.0.2
react-dom: 17.0.2_react@17.0.2
@ -16366,12 +16472,6 @@ packages:
'@babel/runtime': 7.19.0
dev: false
/@wordpress/escape-html/2.19.0:
resolution: {integrity: sha512-pBMuDDaV15SGXNu4cSu1pYiavkcx1rCBOuzGTSJ/WYLAC+K6PK+1lacPsPajVqnm2LLeKkNG4b9yn3PSZlbCww==}
engines: {node: '>=12'}
dependencies:
'@babel/runtime': 7.19.0
/@wordpress/escape-html/2.22.0:
resolution: {integrity: sha512-GUo6VLugIZxen1rdYuotvz6Vqa+5fNtVelNjXLwDqRu0iY2RXeoTux9V5bZWXPnGb54ryqfYmR4gH6F8xZhWzQ==}
engines: {node: '>=12'}
@ -17226,7 +17326,7 @@ packages:
'@wordpress/compose': 5.17.0_react@17.0.2
'@wordpress/data': 6.15.0_react@17.0.2
'@wordpress/element': 4.20.0
'@wordpress/escape-html': 2.19.0
'@wordpress/escape-html': 2.22.0
'@wordpress/i18n': 4.19.0
'@wordpress/keycodes': 3.19.0
lodash: 4.17.21
@ -17745,13 +17845,6 @@ packages:
acorn: 8.7.0
dev: true
/acorn-jsx/5.3.2_acorn@8.8.0:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
acorn: 8.8.0
/acorn-jsx/5.3.2_acorn@8.8.1:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@ -17792,11 +17885,6 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
/acorn/8.8.0:
resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==}
engines: {node: '>=0.4.0'}
hasBin: true
/acorn/8.8.1:
resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
engines: {node: '>=0.4.0'}
@ -24083,8 +24171,8 @@ packages:
resolution: {integrity: sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.8.0
acorn-jsx: 5.3.2_acorn@8.8.0
acorn: 8.8.1
acorn-jsx: 5.3.2_acorn@8.8.1
eslint-visitor-keys: 3.3.0
/espree/9.4.1:
@ -25944,7 +26032,7 @@ packages:
dev: true
/good-listener/1.2.2:
resolution: {integrity: sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=}
resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==}
dependencies:
delegate: 3.2.0
@ -26965,7 +27053,7 @@ packages:
dev: true
/import-cwd/2.1.0:
resolution: {integrity: sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=}
resolution: {integrity: sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==}
engines: {node: '>=4'}
dependencies:
import-from: 2.1.0
@ -26985,7 +27073,7 @@ packages:
resolve-from: 4.0.0
/import-from/2.1.0:
resolution: {integrity: sha1-M1238qev/VOqpHHUuAId7ja387E=}
resolution: {integrity: sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==}
engines: {node: '>=4'}
dependencies:
resolve-from: 3.0.0
@ -27514,7 +27602,7 @@ packages:
dev: true
/is-path-inside/1.0.1:
resolution: {integrity: sha1-jvW33lBDej/cprToZe96pVy0gDY=}
resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==}
engines: {node: '>=0.10.0'}
dependencies:
path-is-inside: 1.0.2
@ -31187,11 +31275,11 @@ packages:
dev: true
/memory-fs/0.2.0:
resolution: {integrity: sha1-8rslNovBIeORwlIN6Slpyu4KApA=}
resolution: {integrity: sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==}
dev: true
/memory-fs/0.4.1:
resolution: {integrity: sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=}
resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==}
dependencies:
errno: 0.1.8
readable-stream: 2.3.7
@ -34665,7 +34753,7 @@ packages:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
/prr/1.0.1:
resolution: {integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=}
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
/pseudomap/1.0.2:
resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=}
@ -35129,6 +35217,36 @@ packages:
react-with-styles-interface-css: 6.0.0_u5gvwsivijvqc4cln26hqg7igq
dev: false
/react-dates/21.8.0_itvjtpkzdblwka3tnmrs5t5e6y:
resolution: {integrity: sha512-PPriGqi30CtzZmoHiGdhlA++YPYPYGCZrhydYmXXQ6RAvAsaONcPtYgXRTLozIOrsQ5mSo40+DiA5eOFHnZ6xw==}
peerDependencies:
'@babel/runtime': ^7.0.0
moment: ^2.18.1
react: ^0.14 || ^15.5.4 || ^16.1.1
react-dom: ^0.14 || ^15.5.4 || ^16.1.1
react-with-direction: ^1.3.1
dependencies:
'@babel/runtime': 7.19.0
airbnb-prop-types: 2.16.0_react@17.0.2
consolidated-events: 2.0.2
enzyme-shallow-equal: 1.0.4
is-touch-device: 1.0.1
lodash: 4.17.21
moment: 2.29.1
object.assign: 4.1.4
object.values: 1.1.5
prop-types: 15.8.1
raf: 3.4.1
react: 17.0.2
react-dom: 16.14.0_react@17.0.2
react-moment-proptypes: 1.8.1_moment@2.29.1
react-outside-click-handler: 1.3.0_prpqlkd37azqwypxturxi7uyci
react-portal: 4.2.1_prpqlkd37azqwypxturxi7uyci
react-with-direction: 1.4.0_prpqlkd37azqwypxturxi7uyci
react-with-styles: 4.2.0_tzgwoaxjvs23ve2qhnwxwqxt3e
react-with-styles-interface-css: 6.0.0_sjrqpgd5uboanyy2xkv2xcu6vm
dev: false
/react-dates/21.8.0_ruqm5uqcpfavftrrblmrkdsf44:
resolution: {integrity: sha512-PPriGqi30CtzZmoHiGdhlA++YPYPYGCZrhydYmXXQ6RAvAsaONcPtYgXRTLozIOrsQ5mSo40+DiA5eOFHnZ6xw==}
peerDependencies:
@ -35145,7 +35263,7 @@ packages:
is-touch-device: 1.0.1
lodash: 4.17.21
moment: 2.29.1
object.assign: 4.1.2
object.assign: 4.1.4
object.values: 1.1.5
prop-types: 15.8.1
raf: 3.4.1
@ -35755,6 +35873,24 @@ packages:
react-dom: 17.0.2_react@17.0.2
dev: false
/react-with-direction/1.4.0_prpqlkd37azqwypxturxi7uyci:
resolution: {integrity: sha512-ybHNPiAmaJpoWwugwqry9Hd1Irl2hnNXlo/2SXQBwbLn/jGMauMS2y9jw+ydyX5V9ICryCqObNSthNt5R94xpg==}
peerDependencies:
react: ^0.14 || ^15 || ^16
react-dom: ^0.14 || ^15 || ^16
dependencies:
airbnb-prop-types: 2.16.0_react@17.0.2
brcast: 2.0.2
deepmerge: 1.5.2
direction: 1.0.4
hoist-non-react-statics: 3.3.2
object.assign: 4.1.4
object.values: 1.1.5
prop-types: 15.8.1
react: 17.0.2
react-dom: 16.14.0_react@17.0.2
dev: false
/react-with-direction/1.4.0_sfoxds7t5ydpegc3knd667wn6m:
resolution: {integrity: sha512-ybHNPiAmaJpoWwugwqry9Hd1Irl2hnNXlo/2SXQBwbLn/jGMauMS2y9jw+ydyX5V9ICryCqObNSthNt5R94xpg==}
peerDependencies:
@ -35833,7 +35969,7 @@ packages:
object.assign: 4.1.4
prop-types: 15.8.1
react: 17.0.2
react-with-direction: 1.4.0_sfoxds7t5ydpegc3knd667wn6m
react-with-direction: 1.4.0_prpqlkd37azqwypxturxi7uyci
dev: false
/react-with-styles/4.2.0_vnnik6nzwz6bu5mwl5zhriyd4i:
@ -37039,7 +37175,7 @@ packages:
dev: false
/select/1.1.2:
resolution: {integrity: sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=}
resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
/semver-diff/2.1.0:
resolution: {integrity: sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=}
@ -40145,7 +40281,6 @@ packages:
optional: true
dependencies:
react: 17.0.2
dev: true
/use-latest/1.2.0_pxzommwrsowkd4kgag6q3sluym:
resolution: {integrity: sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==}