@automattic/jetpack-components 1.4.11 → 1.4.12

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/components/action-button/index.d.ts +26 -16
  3. package/build/components/action-button/style.module.scss +11 -0
  4. package/build/components/action-popover/styles.module.scss +49 -0
  5. package/build/components/admin-page/style.module.scss +28 -0
  6. package/build/components/admin-section/basic/style.module.scss +3 -0
  7. package/build/components/admin-section/hero/style.module.scss +4 -0
  8. package/build/components/alert/style.module.scss +47 -0
  9. package/build/components/badge/style.module.scss +25 -0
  10. package/build/components/boost-score-bar/style.scss +189 -0
  11. package/build/components/boost-score-graph/style-annotation.scss +76 -0
  12. package/build/components/boost-score-graph/style-tooltip.scss +74 -0
  13. package/build/components/boost-score-graph/style.scss +22 -0
  14. package/build/components/button/style.module.scss +214 -0
  15. package/build/components/chip/style.module.scss +18 -0
  16. package/build/components/contextual-upgrade-trigger/style.module.scss +77 -0
  17. package/build/components/decorative-card/style.scss +116 -0
  18. package/build/components/details-viewer/styles.module.scss +40 -0
  19. package/build/components/dialog/style.module.scss +31 -0
  20. package/build/components/diff-viewer/styles.module.scss +52 -0
  21. package/build/components/donut-meter/style.scss +14 -0
  22. package/build/components/dot-pager/style.scss +78 -0
  23. package/build/components/global-notices/styles.module.scss +24 -0
  24. package/build/components/gridicon/style.scss +16 -0
  25. package/build/components/icon-tooltip/style.scss +124 -0
  26. package/build/components/icons/style.module.scss +71 -0
  27. package/build/components/indeterminate-progress-bar/style.module.scss +30 -0
  28. package/build/components/jetpack-footer/style.scss +120 -0
  29. package/build/components/layout/breakpoints.module.scss +21 -0
  30. package/build/components/layout/col/style.module.scss +30 -0
  31. package/build/components/layout/container/style.module.scss +35 -0
  32. package/build/components/loading-placeholder/style.module.scss +21 -0
  33. package/build/components/marked-lines/styles.module.scss +48 -0
  34. package/build/components/navigator-modal/styles.scss +99 -0
  35. package/build/components/notice/style.module.scss +120 -0
  36. package/build/components/number-control/index.d.ts +22 -5
  37. package/build/components/number-control/index.js +3 -3
  38. package/build/components/number-slider/style.scss +68 -0
  39. package/build/components/popover/style.scss +26 -0
  40. package/build/components/pricing-card/style.scss +113 -0
  41. package/build/components/pricing-table/styles.module.scss +235 -0
  42. package/build/components/product-offer/style.module.scss +93 -0
  43. package/build/components/product-price/style.module.scss +122 -0
  44. package/build/components/progress-bar/style.module.scss +18 -0
  45. package/build/components/radio-control/styles.module.scss +26 -0
  46. package/build/components/record-meter-bar/style.scss +43 -0
  47. package/build/components/spinner/index.d.ts +16 -12
  48. package/build/components/spinner/style.scss +33 -0
  49. package/build/components/split-button/style.module.scss +26 -0
  50. package/build/components/stat-card/style.module.scss +49 -0
  51. package/build/components/status/style.module.scss +82 -0
  52. package/build/components/swipeable/style.scss +34 -0
  53. package/build/components/terms-of-service/styles.scss +9 -0
  54. package/build/components/testimonials/style.scss +128 -0
  55. package/build/components/text/style.module.scss +127 -0
  56. package/build/components/theme-provider/globals.module.scss +7 -0
  57. package/build/components/toggle-control/styles.module.scss +61 -0
  58. package/build/components/upsell-banner/style.scss +92 -0
  59. package/build/index.d.ts +3 -3
  60. package/build/index.js +3 -3
  61. package/components/number-control/index.tsx +45 -0
  62. package/index.ts +3 -3
  63. package/package.json +5 -4
  64. package/tools/copy-scss-to-build.mjs +62 -0
  65. package/components/number-control/index.jsx +0 -23
  66. /package/components/action-button/{index.jsx → index.tsx} +0 -0
  67. /package/components/spinner/{index.jsx → index.tsx} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ### This is a list detailing changes for the Jetpack RNA Components package releases.
4
4
 
5
+ ## [1.4.12] - 2026-02-10
6
+ ### Changed
7
+ - Update package dependencies. [#47002]
8
+
9
+ ### Fixed
10
+ - RNA: Fix build folder extensions and copy SCSS assets. [#46938]
11
+
5
12
  ## [1.4.11] - 2026-02-04
6
13
  ### Changed
7
14
  - NavigatorModal: Prevent scrolling for navigator screen for large content. [#46925]
@@ -1640,6 +1647,7 @@
1640
1647
  ### Changed
1641
1648
  - Update node version requirement to 14.16.1
1642
1649
 
1650
+ [1.4.12]: https://github.com/Automattic/jetpack-components/compare/1.4.11...1.4.12
1643
1651
  [1.4.11]: https://github.com/Automattic/jetpack-components/compare/1.4.10...1.4.11
1644
1652
  [1.4.10]: https://github.com/Automattic/jetpack-components/compare/1.4.9...1.4.10
1645
1653
  [1.4.9]: https://github.com/Automattic/jetpack-components/compare/1.4.8...1.4.9
@@ -1,4 +1,3 @@
1
- export default ActionButton;
2
1
  /**
3
2
  * The Jetpack Action button.
4
3
  *
@@ -9,18 +8,29 @@ export default ActionButton;
9
8
  * @param {object} props - The properties.
10
9
  * @return {import('react').ReactNode} The `ActionButton` component.
11
10
  */
12
- declare function ActionButton(props: object): import("react").ReactNode;
13
- declare namespace ActionButton {
14
- namespace propTypes {
15
- let label: any;
16
- let onClick: any;
17
- let isLoading: any;
18
- let isDisabled: any;
19
- let displayError: any;
20
- let errorMessage: any;
21
- let variant: any;
22
- let isExternalLink: any;
23
- let customClass: any;
24
- let loadingText: any;
25
- }
26
- }
11
+ declare const ActionButton: {
12
+ (props: any): import("react/jsx-runtime").JSX.Element;
13
+ propTypes: {
14
+ /** The button label. */
15
+ label: any;
16
+ /** The callback to be called on click. */
17
+ onClick: any;
18
+ /** Will disable the button and display a spinner if set to true. */
19
+ isLoading: any;
20
+ /** Will disable the button with no spinner. */
21
+ isDisabled: any;
22
+ /** Displays an error message */
23
+ displayError: any;
24
+ /** The error message string */
25
+ errorMessage: any;
26
+ /** The type/variant of button */
27
+ variant: any;
28
+ /** Will display the button as a link with an external icon. */
29
+ isExternalLink: any;
30
+ /** Custom CSS class to apply to the button */
31
+ customClass: any;
32
+ /** Text to display when loading */
33
+ loadingText: any;
34
+ };
35
+ };
36
+ export default ActionButton;
@@ -0,0 +1,11 @@
1
+ .error {
2
+ color: var(--jp-red);
3
+ line-height: 25px;
4
+ padding-left: 25px;
5
+ background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDIwQzE2LjQxODMgMjAgMjAgMTYuNDE4MyAyMCAxMkMyMCA3LjU4MTcyIDE2LjQxODMgNCAxMiA0QzcuNTgxNzIgNCA0IDcuNTgxNzIgNCAxMkM0IDE2LjQxODMgNy41ODE3MiAyMCAxMiAyMFoiIHN0cm9rZT0iI0Q2MzYzOSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHBhdGggZD0iTTEzIDdIMTFWMTNIMTNWN1oiIGZpbGw9IiNENjM2MzkiLz4KPHBhdGggZD0iTTEzIDE1SDExVjE3SDEzVjE1WiIgZmlsbD0iI0Q2MzYzOSIvPgo8L3N2Zz4K) no-repeat 0 0;
6
+ }
7
+
8
+ .button {
9
+ --spacing-base: 8px;
10
+ min-width: 264px;
11
+ }
@@ -0,0 +1,49 @@
1
+ .wrapper {
2
+ width: 304px;
3
+ min-height: 230px;
4
+ padding: calc(var(--spacing-base) * 3); // 24px;
5
+ display: flex;
6
+ flex-direction: column;
7
+
8
+ .header {
9
+ display: flex;
10
+ margin-bottom: calc(var(--spacing-base) * 2); // 16px
11
+ justify-content: space-between;
12
+
13
+ .title {
14
+ max-width: 226px;
15
+ }
16
+
17
+ .close-button {
18
+ height: calc(var(--spacing-base) * 3); // 24px
19
+ width: calc(var(--spacing-base) * 3); // 24px
20
+ min-width: unset;
21
+ color: var(--jp-gray-90);
22
+ background-color: var(--jp-white);
23
+ flex-shrink: 0;
24
+
25
+ &:hover:not(:focus) {
26
+ box-shadow: none;
27
+ }
28
+ }
29
+ }
30
+
31
+ .footer {
32
+ height: calc(var(--spacing-base) * 6); // 48px
33
+ margin-top: calc(var(--spacing-base) * 2); // 16px
34
+ display: flex;
35
+ justify-content: flex-end;
36
+ align-items: flex-end;
37
+ flex-grow: 1;
38
+
39
+ .steps {
40
+ color: var(--jp-gray-60);
41
+ flex-grow: 1;
42
+ margin-bottom: var(--spacing-base);
43
+ }
44
+
45
+ .action-button {
46
+ flex-shrink: 0;
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,28 @@
1
+ .admin-page {
2
+ margin-left: -20px; // to neutralize the padding of #wpcontent.
3
+
4
+ @media (max-width: 782px) {
5
+ margin-left: -10px; // to neutralize the padding of #wpcontent.
6
+ }
7
+
8
+ &.background {
9
+ background-color: var(--jp-white);
10
+ }
11
+
12
+ .admin-page-header {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 8px;
16
+ }
17
+
18
+ .sandbox-domain-badge {
19
+ background: #d63638;
20
+ text-transform: uppercase;
21
+ letter-spacing: 0.2em;
22
+ text-shadow: none;
23
+ font-size: 9px;
24
+ font-weight: 700;
25
+ cursor: pointer;
26
+ color: #fff;
27
+ }
28
+ }
@@ -0,0 +1,3 @@
1
+ .section {
2
+ background-color: var(--jp-white);
3
+ }
@@ -0,0 +1,4 @@
1
+ .section-hero {
2
+ padding-top: 1px; // prevent margin collapse for interior sections
3
+ background: var(--jp-white-off);
4
+ }
@@ -0,0 +1,47 @@
1
+ .container {
2
+ display: flex;
3
+ font-size: var(--font-body);
4
+ line-height: calc(var(--spacing-base) * 3);
5
+ min-height: calc(var(--spacing-base) * 3);
6
+ align-items: center;
7
+ margin: calc(var(--spacing-base) * 2) 0;
8
+ }
9
+
10
+ .icon-wrapper {
11
+ margin-right: calc(var(--spacing-base) / 2);
12
+ width: calc(var(--spacing-base) * 3);
13
+ height: calc(var(--spacing-base) * 3);
14
+ align-self: flex-start;
15
+ }
16
+
17
+ .is-error {
18
+ color: var(--jp-red);
19
+
20
+ .icon {
21
+ fill: var(--jp-red);
22
+ }
23
+ }
24
+
25
+ .is-warning {
26
+ color: var(--jp-yellow-40);
27
+
28
+ .icon {
29
+ fill: var(--jp-yellow-40);
30
+ }
31
+ }
32
+
33
+ .is-info {
34
+ color: var(--jp-blue-40);
35
+
36
+ .icon {
37
+ fill: var(--jp-blue-40);
38
+ }
39
+ }
40
+
41
+ .is-success {
42
+ color: var(--jp-green);
43
+
44
+ .icon {
45
+ fill: var(--jp-green);
46
+ }
47
+ }
@@ -0,0 +1,25 @@
1
+ .badge {
2
+ display: inline-block;
3
+ border-radius: 4px;
4
+ background-color: var(--jp-gray-0);
5
+ color: var(--jp-gray-80);
6
+ padding: 4px 8px;
7
+ font-size: 13px;
8
+ font-weight: 400;
9
+ line-height: 16px;
10
+
11
+ &.is-success {
12
+ background-color: var(--jp-green-5);
13
+ color: var(--jp-green-50);
14
+ }
15
+
16
+ &.is-warning {
17
+ background-color: var(--jp-yellow-5);
18
+ color: var(--jp-yellow-60);
19
+ }
20
+
21
+ &.is-danger {
22
+ background-color: var(--jp-red-5);
23
+ color: var(--jp-red-70);
24
+ }
25
+ }
@@ -0,0 +1,189 @@
1
+ @use "sass:math";
2
+
3
+ $bar_height: 42px;
4
+ $label_z_index: 50;
5
+ $score_pointer_size: 6px;
6
+ $no_boost_score_size: 28px;
7
+
8
+ %score-pill {
9
+ background-color: #fff;
10
+ border-radius: $bar_height;
11
+ height: $bar_height;
12
+ display: flex;
13
+ align-items: center;
14
+ border: 2px solid transparent;
15
+ }
16
+
17
+ .jb-score-bar {
18
+ width: 100%;
19
+ display: flex;
20
+ color: var(--jp-gray-70);
21
+
22
+ &--mobile { // .jb-score-bar--mobile
23
+ margin-bottom: 1.5rem;
24
+ }
25
+
26
+ @media (max-width: 767px) {
27
+ flex-direction: column;
28
+
29
+ &__label {
30
+ background-color: transparent;
31
+ }
32
+ }
33
+
34
+
35
+ &__loading {
36
+
37
+ @extend %score-pill;
38
+ width: $bar_height;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ }
43
+
44
+ &__label {
45
+
46
+ @extend %score-pill;
47
+ display: grid;
48
+ grid-template-columns: 24px 1fr;
49
+ grid-column-gap: 10px;
50
+ justify-content: center;
51
+ font-size: 14px;
52
+ position: relative;
53
+
54
+ @media (min-width: 768px) {
55
+ padding-left: 15px;
56
+ padding-right: 15px;
57
+ width: 200px;
58
+ z-index: $label_z_index;
59
+ }
60
+ }
61
+
62
+ &__score {
63
+
64
+ @extend %score-pill;
65
+ border-radius: 100%;
66
+ font-weight: 700;
67
+ width: $bar_height;
68
+ justify-content: center;
69
+ position: absolute;
70
+ right: -1px;
71
+ height: $bar_height;
72
+ }
73
+
74
+ &__bounds {
75
+ background-color: #f1f1f1;
76
+ border-radius: math.div($bar-height, 2);
77
+ display: flex;
78
+ height: $bar_height;
79
+ width: 100%;
80
+ max-width: 100%;
81
+ position: relative;
82
+ z-index: $label_z_index - 10;
83
+
84
+ @media (min-width: 768px) {
85
+ width: calc(100% + #{math.div($bar-height, 2)});
86
+ margin-left: math.div(-$bar_height, 2);
87
+ }
88
+ }
89
+
90
+ &__filler {
91
+ display: flex;
92
+ min-width: 1px + $bar_height * 2;
93
+ justify-content: flex-end;
94
+ border-radius: 0 $bar_height $bar_height 0;
95
+ transition: width 300ms ease-in-out;
96
+ will-change: width;
97
+ width: 0;
98
+ position: relative;
99
+
100
+ @media (max-width: 767px) {
101
+ min-width: $bar_height + 1px;
102
+ border-radius: inherit;
103
+ }
104
+ }
105
+
106
+ &__no_boost_score {
107
+
108
+ --clearance-space: #{$bar_height + $no_boost_score_size + 4px};
109
+
110
+ position: absolute;
111
+ background: #fff;
112
+ border-radius: 50%;
113
+ padding: 3px;
114
+ top: $score_pointer_size;
115
+ width: $no_boost_score_size;
116
+ height: $no_boost_score_size;
117
+ line-height: 1.625;
118
+ font-size: 0.7em;
119
+ text-align: center;
120
+ cursor: pointer;
121
+ z-index: 2;
122
+ border: 2px solid transparent;
123
+ background-clip: padding-box;
124
+
125
+ &:hover {
126
+ border: 2px solid rgba(255, 255, 255, 0.5);
127
+ }
128
+
129
+ &::after {
130
+ content: " ";
131
+ width: 0;
132
+ height: 0;
133
+ border-left: $score_pointer_size solid transparent;
134
+ border-right: $score_pointer_size solid transparent;
135
+ border-bottom: $score_pointer_size solid #fff;
136
+
137
+ position: absolute;
138
+ top: $bar_height - $score_pointer_size * 2 - 2px;
139
+ left: $score_pointer_size;
140
+ }
141
+ }
142
+
143
+ &__no_boost_score_tooltip {
144
+ box-shadow: 0 0 20px 0 rgb(170 170 170 / 28%);
145
+ position: absolute;
146
+ top: -62px;
147
+ left: -10em;
148
+ width: 20em;
149
+ background: #fff;
150
+ padding: 16px;
151
+ border-radius: 4px;
152
+ margin: 0 16px;
153
+ display: none;
154
+
155
+ &::after {
156
+ content: " ";
157
+ width: 0;
158
+ height: 0;
159
+ border-left: $score_pointer_size solid transparent;
160
+ border-right: $score_pointer_size solid transparent;
161
+ border-top: $score_pointer_size solid #fff;
162
+
163
+ position: absolute;
164
+ bottom: -$score_pointer_size;
165
+ left: 10em;
166
+ margin: 0 -10px;
167
+ }
168
+ }
169
+
170
+ &__no_boost_score:hover &__no_boost_score_tooltip {
171
+ display: block;
172
+ }
173
+
174
+ .fill-loading {
175
+ background-color: var(--jp-white);
176
+ }
177
+
178
+ .fill-good {
179
+ background-color: var(--jp-green);
180
+ }
181
+
182
+ .fill-mediocre {
183
+ background-color: var(--jp-orange-20);
184
+ }
185
+
186
+ .fill-bad {
187
+ background-color: var(--jp-red-50);
188
+ }
189
+ }
@@ -0,0 +1,76 @@
1
+ $black: #101517;
2
+ $white: #fff;
3
+
4
+ .jb-graph-annotations {
5
+ pointer-events: none;
6
+ position: relative;
7
+ left: 0;
8
+ top: 0;
9
+ height: 100%;
10
+ width: 100%;
11
+ overflow: visible;
12
+
13
+ &__line {
14
+ position: absolute;
15
+ height: 100%;
16
+ transform: translateX(-50%);
17
+ pointer-events: all;
18
+ width: 10px;
19
+ z-index: 1;
20
+
21
+ /*
22
+ * The actual line is a pseudo element to create a bigger hover area.
23
+ */
24
+ &::after {
25
+ position: absolute;
26
+ content: "";
27
+ display: block;
28
+ width: 2px;
29
+ height: 100%;
30
+ background: rgba(146, 175, 215, 0.5);
31
+ left: calc(50% - 1px);
32
+ }
33
+
34
+ &:hover {
35
+
36
+ &::after {
37
+ background: rgba(146, 175, 215, 1);
38
+ }
39
+ }
40
+ }
41
+
42
+ &__annotation {
43
+
44
+ &::after {
45
+ content: "";
46
+ width: 0;
47
+ height: 0;
48
+ border-left: 8px solid transparent;
49
+ border-right: 8px solid transparent;
50
+ border-top: 8px solid $black;
51
+ position: absolute;
52
+ bottom: -7px;
53
+ left: 50%;
54
+ transform: translateX(-50%);
55
+ }
56
+
57
+ display: none;
58
+ bottom: 100%;
59
+ background-color: $black;
60
+ color: $white;
61
+ width: fit-content;
62
+ width: 20em;
63
+ padding: 16px 24px;
64
+ border-radius: 4px;
65
+ font-size: 14px;
66
+ position: absolute;
67
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
68
+ text-align: center;
69
+ transform: translateX(-50%);
70
+ z-index: 2;
71
+
72
+ a {
73
+ color: $white !important;
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,74 @@
1
+ $grey: #8e8e8e;
2
+ $black: #101517;
3
+ $white: #fff;
4
+
5
+ .jb-score-tooltips-container {
6
+ width: 100%;
7
+ position: relative;
8
+ pointer-events: none;
9
+
10
+ }
11
+
12
+ .jb-score-tooltip-react-root {
13
+ position: absolute;
14
+ bottom: -20px;
15
+ translate: -50% calc(100% - 20px);
16
+ z-index: 1000;
17
+ pointer-events: auto;
18
+ user-select: text;
19
+ }
20
+
21
+ .jb-score-tooltip {
22
+ background-color: $black;
23
+ color: $white;
24
+ padding: 16px 24px;
25
+ border-radius: 4px;
26
+ font-size: 14px;
27
+ width: 20em;
28
+ position: relative;
29
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
30
+ display: none;
31
+
32
+ .visible &,
33
+ &:hover {
34
+ display: block;
35
+ }
36
+
37
+ hr {
38
+ border-top: 1px solid $grey;
39
+ border-bottom: none;
40
+ border-left: none;
41
+ border-right: none;
42
+ }
43
+
44
+ &__date {
45
+ font-size: 1em;
46
+ font-weight: 600;
47
+ // stylelint-disable-next-line declaration-property-unit-allowed-list -- this should be changed to a unitless value: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/css/#values
48
+ line-height: 1.6em;
49
+ }
50
+
51
+ &__row {
52
+ display: flex;
53
+ flex-direction: row;
54
+ justify-content: space-between;
55
+ margin: 0.9em 0;
56
+
57
+ &--secondary {
58
+ color: $grey;
59
+ margin-left: 1em;
60
+ }
61
+ }
62
+
63
+ &__pointer {
64
+ width: 0;
65
+ height: 0;
66
+ border-left: 8px solid transparent;
67
+ border-right: 8px solid transparent;
68
+ border-bottom: 8px solid $black;
69
+ position: absolute;
70
+ top: -7px;
71
+ left: 50%;
72
+ transform: translateX(-50%);
73
+ }
74
+ }
@@ -0,0 +1,22 @@
1
+ .jb-score-graph {
2
+ height: 300px;
3
+
4
+ &__placeholder {
5
+ overflow: hidden;
6
+ width: 100%;
7
+ height: 100%;
8
+
9
+ svg {
10
+ object-position: right bottom;
11
+ object-fit: cover;
12
+ height: 100%;
13
+ width: 100%;
14
+ }
15
+ }
16
+
17
+ }
18
+
19
+ .boost-uplot-container {
20
+ display: grid;
21
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
22
+ }