@automattic/jetpack-components 1.4.11 → 1.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/build/components/action-button/index.d.ts +26 -16
- package/build/components/action-button/style.module.scss +11 -0
- package/build/components/action-popover/styles.module.scss +49 -0
- package/build/components/admin-page/style.module.scss +28 -0
- package/build/components/admin-section/basic/style.module.scss +3 -0
- package/build/components/admin-section/hero/style.module.scss +4 -0
- package/build/components/alert/style.module.scss +47 -0
- package/build/components/badge/style.module.scss +25 -0
- package/build/components/boost-score-bar/style.scss +189 -0
- package/build/components/boost-score-graph/style-annotation.scss +76 -0
- package/build/components/boost-score-graph/style-tooltip.scss +74 -0
- package/build/components/boost-score-graph/style.scss +22 -0
- package/build/components/button/style.module.scss +214 -0
- package/build/components/chip/style.module.scss +18 -0
- package/build/components/contextual-upgrade-trigger/style.module.scss +77 -0
- package/build/components/decorative-card/style.scss +116 -0
- package/build/components/details-viewer/styles.module.scss +40 -0
- package/build/components/dialog/style.module.scss +31 -0
- package/build/components/diff-viewer/styles.module.scss +52 -0
- package/build/components/donut-meter/style.scss +14 -0
- package/build/components/dot-pager/style.scss +78 -0
- package/build/components/global-notices/styles.module.scss +24 -0
- package/build/components/gridicon/style.scss +16 -0
- package/build/components/icon-tooltip/style.scss +124 -0
- package/build/components/icons/style.module.scss +71 -0
- package/build/components/indeterminate-progress-bar/style.module.scss +30 -0
- package/build/components/jetpack-footer/style.scss +119 -0
- package/build/components/layout/breakpoints.module.scss +21 -0
- package/build/components/layout/col/style.module.scss +30 -0
- package/build/components/layout/container/style.module.scss +35 -0
- package/build/components/loading-placeholder/style.module.scss +21 -0
- package/build/components/marked-lines/styles.module.scss +48 -0
- package/build/components/navigator-modal/styles.scss +99 -0
- package/build/components/notice/style.module.scss +120 -0
- package/build/components/number-control/index.d.ts +22 -5
- package/build/components/number-control/index.js +3 -3
- package/build/components/number-slider/style.scss +68 -0
- package/build/components/popover/style.scss +26 -0
- package/build/components/pricing-card/style.scss +113 -0
- package/build/components/pricing-table/styles.module.scss +235 -0
- package/build/components/product-offer/style.module.scss +93 -0
- package/build/components/product-price/style.module.scss +122 -0
- package/build/components/progress-bar/style.module.scss +18 -0
- package/build/components/radio-control/styles.module.scss +26 -0
- package/build/components/record-meter-bar/style.scss +43 -0
- package/build/components/spinner/index.d.ts +16 -12
- package/build/components/spinner/style.scss +33 -0
- package/build/components/split-button/style.module.scss +26 -0
- package/build/components/stat-card/style.module.scss +49 -0
- package/build/components/status/style.module.scss +82 -0
- package/build/components/swipeable/style.scss +34 -0
- package/build/components/terms-of-service/styles.scss +9 -0
- package/build/components/testimonials/style.scss +128 -0
- package/build/components/text/style.module.scss +127 -0
- package/build/components/theme-provider/globals.module.scss +7 -0
- package/build/components/toggle-control/styles.module.scss +61 -0
- package/build/components/upsell-banner/style.scss +92 -0
- package/build/index.d.ts +3 -3
- package/build/index.js +3 -3
- package/components/boost-score-bar/style.scss +1 -1
- package/components/jetpack-footer/style.scss +0 -1
- package/components/number-control/index.tsx +45 -0
- package/components/pricing-table/styles.module.scss +1 -1
- package/components/product-price/style.module.scss +1 -1
- package/index.ts +3 -3
- package/package.json +10 -9
- package/tools/copy-scss-to-build.mjs +62 -0
- package/components/number-control/index.jsx +0 -23
- /package/components/action-button/{index.jsx → index.tsx} +0 -0
- /package/components/spinner/{index.jsx → index.tsx} +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
.components-surface.components-card {
|
|
2
|
+
border-radius: var(--jp-border-radius-rna);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.upsell-banner {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
|
|
9
|
+
background: rgb(249, 249, 246);
|
|
10
|
+
background: linear-gradient(133deg, rgb(206, 217, 242) 0%, rgb(249, 249, 246) 10%, rgb(249, 249, 246) 80%, rgb(245, 230, 179) 100%);
|
|
11
|
+
|
|
12
|
+
@media screen and (min-width: 660px) {
|
|
13
|
+
flex-direction: row;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&.components-card__body.components-card-body {
|
|
17
|
+
border-radius: var(--jp-border-radius-rna);
|
|
18
|
+
padding: 36px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.upsell-banner--icon {
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: flex-start;
|
|
24
|
+
margin-bottom: 16px;
|
|
25
|
+
margin-right: 0;
|
|
26
|
+
margin-top: 16px;
|
|
27
|
+
|
|
28
|
+
@media screen and (min-width: 660px) {
|
|
29
|
+
align-items: center;
|
|
30
|
+
margin-bottom: 0;
|
|
31
|
+
margin-right: 28px;
|
|
32
|
+
margin-top: 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.upsell-banner--content {
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: column;
|
|
39
|
+
flex: 1;
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
|
|
42
|
+
@media screen and (min-width: 660px) {
|
|
43
|
+
flex-direction: row;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.upsell-banner--content-info {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
|
|
50
|
+
h3 {
|
|
51
|
+
font-size: 1.5rem;
|
|
52
|
+
line-height: 32px;
|
|
53
|
+
font-weight: 500;
|
|
54
|
+
margin: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
p {
|
|
58
|
+
font-size: 1rem;
|
|
59
|
+
margin: 8px 0 0 0;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.upsell-banner--content-cta {
|
|
64
|
+
display: flex;
|
|
65
|
+
flex-direction: row;
|
|
66
|
+
align-items: center;
|
|
67
|
+
margin-top: 16px;
|
|
68
|
+
margin-left: 0;
|
|
69
|
+
|
|
70
|
+
@media screen and (min-width: 660px) {
|
|
71
|
+
margin-top: 0;
|
|
72
|
+
margin-left: 16px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.upsell-banner--content-cta-button {
|
|
76
|
+
white-space: nowrap;
|
|
77
|
+
box-shadow: inset 0 0 0 1.5px rgb(0, 0, 0);
|
|
78
|
+
font-weight: 400;
|
|
79
|
+
padding: 8px 16px;
|
|
80
|
+
|
|
81
|
+
&.secondary {
|
|
82
|
+
background-color: var(--jp-white);
|
|
83
|
+
color: var(--jp-black);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&.primary {
|
|
87
|
+
margin-left: 8px;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
package/build/index.d.ts
CHANGED
|
@@ -10,10 +10,10 @@ export { default as AutomatticBylineLogo } from './components/automattic-byline-
|
|
|
10
10
|
export { default as AutomatticIconLogo } from './components/automattic-icon-logo/index.tsx';
|
|
11
11
|
export { default as AutomatticForAgenciesLogo } from './components/automattic-for-agencies-logo/index.tsx';
|
|
12
12
|
export { default as JetpackFooter } from './components/jetpack-footer/index.tsx';
|
|
13
|
-
export { default as Spinner } from './components/spinner/index.
|
|
13
|
+
export { default as Spinner } from './components/spinner/index.tsx';
|
|
14
14
|
export { default as Gridicon } from './components/gridicon/index.tsx';
|
|
15
15
|
export { default as IconTooltip } from './components/icon-tooltip/index.tsx';
|
|
16
|
-
export { default as ActionButton } from './components/action-button/index.
|
|
16
|
+
export { default as ActionButton } from './components/action-button/index.tsx';
|
|
17
17
|
export { default as PricingCard } from './components/pricing-card/index.tsx';
|
|
18
18
|
export { default as NumberSlider } from './components/number-slider/index.tsx';
|
|
19
19
|
export { default as AdminSection } from './components/admin-section/basic/index.tsx';
|
|
@@ -30,7 +30,7 @@ export { default as SplitButton } from './components/split-button/index.tsx';
|
|
|
30
30
|
export { default as ThemeProvider } from './components/theme-provider/index.tsx';
|
|
31
31
|
export { default as Text, H2, H3, Title } from './components/text/index.tsx';
|
|
32
32
|
export { default as ToggleControl } from './components/toggle-control/index.tsx';
|
|
33
|
-
export { default as NumberControl } from './components/number-control/index.
|
|
33
|
+
export { default as NumberControl } from './components/number-control/index.tsx';
|
|
34
34
|
export { default as QRCode } from './components/qr-code/index.tsx';
|
|
35
35
|
export { default as Button } from './components/button/index.tsx';
|
|
36
36
|
export type { ButtonProps } from './components/button/types.ts';
|
package/build/index.js
CHANGED
|
@@ -24,10 +24,10 @@ export { default as AutomatticBylineLogo } from "./components/automattic-byline-
|
|
|
24
24
|
export { default as AutomatticIconLogo } from "./components/automattic-icon-logo/index.js";
|
|
25
25
|
export { default as AutomatticForAgenciesLogo } from "./components/automattic-for-agencies-logo/index.js";
|
|
26
26
|
export { default as JetpackFooter } from "./components/jetpack-footer/index.js";
|
|
27
|
-
export { default as Spinner } from
|
|
27
|
+
export { default as Spinner } from "./components/spinner/index.js";
|
|
28
28
|
export { default as Gridicon } from "./components/gridicon/index.js";
|
|
29
29
|
export { default as IconTooltip } from "./components/icon-tooltip/index.js";
|
|
30
|
-
export { default as ActionButton } from
|
|
30
|
+
export { default as ActionButton } from "./components/action-button/index.js";
|
|
31
31
|
export { default as PricingCard } from "./components/pricing-card/index.js";
|
|
32
32
|
export { default as NumberSlider } from "./components/number-slider/index.js";
|
|
33
33
|
export { default as AdminSection } from "./components/admin-section/basic/index.js";
|
|
@@ -44,7 +44,7 @@ export { default as SplitButton } from "./components/split-button/index.js";
|
|
|
44
44
|
export { default as ThemeProvider } from "./components/theme-provider/index.js";
|
|
45
45
|
export { default as Text, H2, H3, Title } from "./components/text/index.js";
|
|
46
46
|
export { default as ToggleControl } from "./components/toggle-control/index.js";
|
|
47
|
-
export { default as NumberControl } from
|
|
47
|
+
export { default as NumberControl } from "./components/number-control/index.js";
|
|
48
48
|
export { default as QRCode } from "./components/qr-code/index.js";
|
|
49
49
|
export { default as Button } from "./components/button/index.js";
|
|
50
50
|
export { default as LoadingPlaceholder } from "./components/loading-placeholder/index.js";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__experimentalNumberControl as ExperimentalNumberControl, // eslint-disable-line @wordpress/no-unsafe-wp-apis
|
|
3
|
+
TextControl,
|
|
4
|
+
} from '@wordpress/components';
|
|
5
|
+
import type { ComponentType, InputHTMLAttributes, ReactNode } from 'react';
|
|
6
|
+
|
|
7
|
+
export type NumberControlProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Matches common `@wordpress/components` control props without importing their internal types.
|
|
10
|
+
*/
|
|
11
|
+
label?: ReactNode;
|
|
12
|
+
help?: ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
hideLabelFromVision?: boolean;
|
|
15
|
+
__nextHasNoMarginBottom?: boolean;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* TextControl-style signature. (The experimental NumberControl can accept this too.)
|
|
19
|
+
*/
|
|
20
|
+
onChange: ( value: string ) => void;
|
|
21
|
+
value: string | number;
|
|
22
|
+
__next40pxDefaultSize?: boolean;
|
|
23
|
+
} & Omit<
|
|
24
|
+
InputHTMLAttributes< HTMLInputElement >,
|
|
25
|
+
'onChange' | 'value' | 'className' | 'type' | 'children'
|
|
26
|
+
>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* This uses the experimental NumberControl from the block
|
|
30
|
+
* editor where available, otherwise it falls back to a
|
|
31
|
+
* standard TextControl, limited to numbers.
|
|
32
|
+
* @type {ComponentType<NumberControlProps>}
|
|
33
|
+
*
|
|
34
|
+
* @param {NumberControlProps} props - the NumberControl component props
|
|
35
|
+
* @return {ReactNode} - NumberControl component
|
|
36
|
+
*/
|
|
37
|
+
const NumberControl: ComponentType< NumberControlProps > =
|
|
38
|
+
( ExperimentalNumberControl as unknown as ComponentType< NumberControlProps > | undefined ) ||
|
|
39
|
+
function CustomNumberControl( props: NumberControlProps ) {
|
|
40
|
+
return (
|
|
41
|
+
<TextControl type="number" inputMode="numeric" { ...props } __next40pxDefaultSize={ true } />
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default NumberControl;
|
package/index.ts
CHANGED
|
@@ -25,10 +25,10 @@ export { default as AutomatticBylineLogo } from './components/automattic-byline-
|
|
|
25
25
|
export { default as AutomatticIconLogo } from './components/automattic-icon-logo/index.tsx';
|
|
26
26
|
export { default as AutomatticForAgenciesLogo } from './components/automattic-for-agencies-logo/index.tsx';
|
|
27
27
|
export { default as JetpackFooter } from './components/jetpack-footer/index.tsx';
|
|
28
|
-
export { default as Spinner } from './components/spinner/index.
|
|
28
|
+
export { default as Spinner } from './components/spinner/index.tsx';
|
|
29
29
|
export { default as Gridicon } from './components/gridicon/index.tsx';
|
|
30
30
|
export { default as IconTooltip } from './components/icon-tooltip/index.tsx';
|
|
31
|
-
export { default as ActionButton } from './components/action-button/index.
|
|
31
|
+
export { default as ActionButton } from './components/action-button/index.tsx';
|
|
32
32
|
export { default as PricingCard } from './components/pricing-card/index.tsx';
|
|
33
33
|
export { default as NumberSlider } from './components/number-slider/index.tsx';
|
|
34
34
|
export { default as AdminSection } from './components/admin-section/basic/index.tsx';
|
|
@@ -45,7 +45,7 @@ export { default as SplitButton } from './components/split-button/index.tsx';
|
|
|
45
45
|
export { default as ThemeProvider } from './components/theme-provider/index.tsx';
|
|
46
46
|
export { default as Text, H2, H3, Title } from './components/text/index.tsx';
|
|
47
47
|
export { default as ToggleControl } from './components/toggle-control/index.tsx';
|
|
48
|
-
export { default as NumberControl } from './components/number-control/index.
|
|
48
|
+
export { default as NumberControl } from './components/number-control/index.tsx';
|
|
49
49
|
export { default as QRCode } from './components/qr-code/index.tsx';
|
|
50
50
|
export { default as Button } from './components/button/index.tsx';
|
|
51
51
|
export type { ButtonProps } from './components/button/types.ts';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automattic/jetpack-components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.13",
|
|
4
4
|
"description": "Jetpack Components Package",
|
|
5
5
|
"homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/components/#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -33,9 +33,10 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
|
-
"build": "pnpm run clean && pnpm run compile-ts",
|
|
36
|
+
"build": "pnpm run clean && pnpm run compile-ts && pnpm run copy-scss",
|
|
37
37
|
"clean": "rm -rf build/",
|
|
38
38
|
"compile-ts": "tsc --pretty --project tsconfig.build.json",
|
|
39
|
+
"copy-scss": "node ./tools/copy-scss-to-build.mjs",
|
|
39
40
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
|
40
41
|
"test-coverage": "pnpm run test --coverage",
|
|
41
42
|
"typecheck": "tsc --noEmit"
|
|
@@ -46,9 +47,9 @@
|
|
|
46
47
|
"dependencies": {
|
|
47
48
|
"@automattic/format-currency": "1.0.1",
|
|
48
49
|
"@automattic/jetpack-api": "^1.0.16",
|
|
49
|
-
"@automattic/jetpack-boost-score-api": "^1.0.
|
|
50
|
+
"@automattic/jetpack-boost-score-api": "^1.0.29",
|
|
50
51
|
"@automattic/jetpack-script-data": "^0.5.4",
|
|
51
|
-
"@automattic/number-formatters": "^1.0.
|
|
52
|
+
"@automattic/number-formatters": "^1.0.17",
|
|
52
53
|
"@babel/runtime": "^7",
|
|
53
54
|
"@wordpress/browserslist-config": "6.39.0",
|
|
54
55
|
"@wordpress/components": "32.1.0",
|
|
@@ -63,14 +64,14 @@
|
|
|
63
64
|
"prop-types": "^15.7.2",
|
|
64
65
|
"qrcode.react": "4.2.0",
|
|
65
66
|
"react-slider": "2.0.5",
|
|
66
|
-
"social-logos": "^3.3.
|
|
67
|
+
"social-logos": "^3.3.7",
|
|
67
68
|
"uplot": "1.6.31",
|
|
68
69
|
"uplot-react": "1.1.4"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
|
-
"@automattic/jetpack-base-styles": "^1.0.
|
|
72
|
-
"@babel/core": "7.
|
|
73
|
-
"@babel/preset-react": "7.
|
|
72
|
+
"@automattic/jetpack-base-styles": "^1.0.16",
|
|
73
|
+
"@babel/core": "7.29.0",
|
|
74
|
+
"@babel/preset-react": "7.28.5",
|
|
74
75
|
"@jest/globals": "30.2.0",
|
|
75
76
|
"@storybook/addon-docs": "10.2.3",
|
|
76
77
|
"@storybook/react": "10.2.3",
|
|
@@ -88,7 +89,7 @@
|
|
|
88
89
|
"storybook": "10.2.3",
|
|
89
90
|
"ts-dedent": "2.2.0",
|
|
90
91
|
"typescript": "5.9.3",
|
|
91
|
-
"webpack": "5.
|
|
92
|
+
"webpack": "5.104.1",
|
|
92
93
|
"webpack-cli": "6.0.1"
|
|
93
94
|
},
|
|
94
95
|
"peerDependencies": {
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
|
|
5
|
+
const __filename = fileURLToPath( import.meta.url );
|
|
6
|
+
const __dirname = path.dirname( __filename );
|
|
7
|
+
|
|
8
|
+
// `tools/` -> package root.
|
|
9
|
+
const packageRoot = path.resolve( __dirname, '..' );
|
|
10
|
+
const buildRoot = path.join( packageRoot, 'build' );
|
|
11
|
+
|
|
12
|
+
const IGNORED_DIRS = new Set( [ 'build', 'node_modules', '.git' ] );
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Check if a path exists.
|
|
16
|
+
* @param {string} p - The path to check.
|
|
17
|
+
* @return {Promise<boolean>} - True if the path exists, false otherwise.
|
|
18
|
+
*/
|
|
19
|
+
async function pathExists( p ) {
|
|
20
|
+
try {
|
|
21
|
+
await fs.access( p );
|
|
22
|
+
|
|
23
|
+
return true;
|
|
24
|
+
} catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Copy a file preserving the relative path.
|
|
31
|
+
* @param {string} srcFile - The path to the source file.
|
|
32
|
+
* @return {Promise<void>} - A promise that resolves when the file is copied.
|
|
33
|
+
*/
|
|
34
|
+
async function copyFilePreservingRelativePath( srcFile ) {
|
|
35
|
+
const relative = path.relative( packageRoot, srcFile );
|
|
36
|
+
const destFile = path.join( buildRoot, relative );
|
|
37
|
+
const destDir = path.dirname( destFile );
|
|
38
|
+
|
|
39
|
+
await fs.mkdir( destDir, { recursive: true } );
|
|
40
|
+
await fs.copyFile( srcFile, destFile );
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Main function.
|
|
45
|
+
* @return {Promise<void>} - A promise that resolves when the files are copied.
|
|
46
|
+
*/
|
|
47
|
+
async function main() {
|
|
48
|
+
// If build didn't run (or output path changed), don't do anything.
|
|
49
|
+
if ( ! ( await pathExists( buildRoot ) ) ) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
for await ( const filePath of fs.glob( '**/*.scss', {
|
|
54
|
+
cwd: packageRoot,
|
|
55
|
+
exclude: Array.from( IGNORED_DIRS, dir => `**/${ dir }/**` ),
|
|
56
|
+
} ) ) {
|
|
57
|
+
const absolutePath = path.resolve( packageRoot, filePath );
|
|
58
|
+
await copyFilePreservingRelativePath( absolutePath );
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
await main();
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__experimentalNumberControl as ExperimentalNumberControl, // eslint-disable-line @wordpress/no-unsafe-wp-apis
|
|
3
|
-
TextControl,
|
|
4
|
-
} from '@wordpress/components';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This uses the experimental NumberControl from the block
|
|
8
|
-
* editor where available, otherwise it falls back to a
|
|
9
|
-
* standard TextControl, limited to numbers.
|
|
10
|
-
* @type {import('react').ComponentType<any>}
|
|
11
|
-
*
|
|
12
|
-
* @param {any} props - the NumberControl component props
|
|
13
|
-
* @return {import('react').ReactNode} - NumberControl component
|
|
14
|
-
*/
|
|
15
|
-
const NumberControl =
|
|
16
|
-
ExperimentalNumberControl ||
|
|
17
|
-
function CustomNumberControl( props ) {
|
|
18
|
-
return (
|
|
19
|
-
<TextControl type="number" inputMode="numeric" { ...props } __next40pxDefaultSize={ true } />
|
|
20
|
-
);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export default NumberControl;
|
|
File without changes
|
|
File without changes
|