newspack-components 2.1.0 → 2.2.1

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 (268) hide show
  1. package/dist/cjs/accordion/index.js +46 -0
  2. package/dist/cjs/accordion/style.scss +27 -0
  3. package/dist/cjs/action-card/index.js +48 -25
  4. package/dist/cjs/action-card/style.scss +100 -23
  5. package/dist/cjs/autocomplete-tokenfield/index.js +13 -41
  6. package/dist/cjs/autocomplete-tokenfield/style.scss +2 -2
  7. package/dist/cjs/autocomplete-with-suggestions/index.js +30 -51
  8. package/dist/cjs/autocomplete-with-suggestions/style.scss +16 -15
  9. package/dist/cjs/button/index.js +5 -13
  10. package/dist/cjs/button-card/index.js +1 -10
  11. package/dist/cjs/button-card/style.scss +13 -13
  12. package/dist/cjs/card/index.js +1 -8
  13. package/dist/cjs/card/style.scss +25 -8
  14. package/dist/cjs/category-autocomplete/index.js +18 -38
  15. package/dist/cjs/category-autocomplete/style.scss +0 -2
  16. package/dist/cjs/color-picker/index.js +1 -15
  17. package/dist/cjs/color-picker/style.scss +0 -3
  18. package/dist/cjs/consts.js +5 -3
  19. package/dist/cjs/custom-select-control/index.js +1 -9
  20. package/dist/cjs/custom-select-control/style.scss +6 -7
  21. package/dist/cjs/date-range-picker/index.js +1 -10
  22. package/dist/cjs/date-range-picker/style.scss +12 -12
  23. package/dist/cjs/footer/index.js +5 -17
  24. package/dist/cjs/footer/style.scss +5 -5
  25. package/dist/cjs/form-token-field/index.js +1 -9
  26. package/dist/cjs/form-token-field/style.scss +2 -3
  27. package/dist/cjs/global-notices/index.js +1 -8
  28. package/dist/cjs/grid/index.js +1 -8
  29. package/dist/cjs/grid/style.scss +5 -5
  30. package/dist/cjs/handoff/index.js +8 -17
  31. package/dist/cjs/handoff-message/index.js +50 -0
  32. package/dist/cjs/hooks/index.js +1 -7
  33. package/dist/cjs/hooks/useObjectState.js +7 -13
  34. package/dist/cjs/hooks/useObjectState.test.js +0 -14
  35. package/dist/cjs/hooks/useOnClickOutside.js +3 -6
  36. package/dist/cjs/hooks/usePrompt.js +1 -13
  37. package/dist/cjs/image-upload/index.js +21 -19
  38. package/dist/cjs/image-upload/index.test.js +0 -5
  39. package/dist/cjs/image-upload/style.scss +5 -9
  40. package/dist/cjs/index.js +28 -44
  41. package/dist/cjs/info-button/index.js +3 -11
  42. package/dist/cjs/info-button/style.scss +1 -3
  43. package/dist/cjs/modal/index.js +1 -9
  44. package/dist/cjs/modal/style.scss +8 -8
  45. package/dist/cjs/newspack-icon/index.js +1 -9
  46. package/dist/cjs/newspack-icon/style.scss +4 -4
  47. package/dist/cjs/newspack-logo/index.js +1 -9
  48. package/dist/cjs/newspack-logo/style.scss +3 -3
  49. package/dist/cjs/notice/index.js +8 -15
  50. package/dist/cjs/notice/style.scss +28 -15
  51. package/dist/cjs/patrons-logo/index.js +3 -11
  52. package/dist/cjs/plugin-installer/index.js +36 -36
  53. package/dist/cjs/plugin-installer/style.scss +5 -5
  54. package/dist/cjs/plugin-settings/SettingsSection.js +9 -28
  55. package/dist/cjs/plugin-settings/index.js +39 -22
  56. package/dist/cjs/plugin-toggle/index.js +40 -33
  57. package/dist/cjs/plugin-toggle/style.scss +2 -2
  58. package/dist/cjs/popover/index.js +1 -11
  59. package/dist/cjs/popover/style.scss +19 -16
  60. package/dist/cjs/position-control/index.js +113 -0
  61. package/dist/cjs/position-control/style.scss +66 -0
  62. package/dist/cjs/progress-bar/index.js +2 -9
  63. package/dist/cjs/progress-bar/index.test.js +2 -7
  64. package/dist/cjs/progress-bar/style.scss +4 -4
  65. package/dist/cjs/proxied-imports/router.js +0 -3
  66. package/dist/cjs/radio-control/index.js +1 -11
  67. package/dist/cjs/radio-control/style.scss +9 -9
  68. package/dist/cjs/section-header/index.js +44 -29
  69. package/dist/cjs/section-header/style.scss +2 -2
  70. package/dist/cjs/select-control/ButtonGroupControl.js +4 -13
  71. package/dist/cjs/select-control/GroupedSelectControl.js +9 -15
  72. package/dist/cjs/select-control/index.js +5 -12
  73. package/dist/cjs/select-control/style.scss +2 -2
  74. package/dist/cjs/settings/MinMaxSetting.js +3 -7
  75. package/dist/cjs/settings/SettingsCard.js +3 -7
  76. package/dist/cjs/settings/SettingsSection.js +1 -4
  77. package/dist/cjs/settings/index.js +0 -6
  78. package/dist/cjs/settings/style.scss +1 -1
  79. package/dist/cjs/steps-list/index.js +52 -0
  80. package/dist/cjs/steps-list/style.scss +11 -0
  81. package/dist/cjs/steps-list-item/index.js +56 -0
  82. package/dist/cjs/steps-list-item/style.scss +47 -0
  83. package/dist/cjs/style-card/index.js +6 -13
  84. package/dist/cjs/style-card/style.scss +9 -12
  85. package/dist/cjs/style.scss +5 -6
  86. package/dist/cjs/tabbed-navigation/index.js +19 -16
  87. package/dist/cjs/tabbed-navigation/style.scss +3 -4
  88. package/dist/cjs/text-control/index.js +6 -16
  89. package/dist/cjs/utils/index.js +10 -5
  90. package/dist/cjs/waiting/index.js +1 -9
  91. package/dist/cjs/web-preview/index.js +13 -28
  92. package/dist/cjs/web-preview/style.scss +14 -14
  93. package/dist/cjs/with-wizard/index.js +51 -31
  94. package/dist/cjs/with-wizard/style.scss +35 -37
  95. package/dist/cjs/with-wizard-screen/index.js +11 -17
  96. package/dist/cjs/with-wizard-screen/style.scss +14 -17
  97. package/dist/cjs/wizard/components/WizardError.js +3 -15
  98. package/dist/cjs/wizard/index.js +10 -24
  99. package/dist/cjs/wizard/store/index.js +42 -55
  100. package/dist/cjs/wizard/store/utils.js +1 -6
  101. package/dist/esm/accordion/index.js +38 -0
  102. package/dist/esm/accordion/style.scss +27 -0
  103. package/dist/esm/action-card/index.js +50 -21
  104. package/dist/esm/action-card/style.scss +100 -23
  105. package/dist/esm/autocomplete-tokenfield/index.js +14 -37
  106. package/dist/esm/autocomplete-tokenfield/style.scss +2 -2
  107. package/dist/esm/autocomplete-with-suggestions/index.js +28 -41
  108. package/dist/esm/autocomplete-with-suggestions/style.scss +16 -15
  109. package/dist/esm/button/index.js +5 -7
  110. package/dist/esm/button-card/index.js +2 -5
  111. package/dist/esm/button-card/style.scss +13 -13
  112. package/dist/esm/card/index.js +2 -5
  113. package/dist/esm/card/style.scss +25 -8
  114. package/dist/esm/category-autocomplete/index.js +17 -30
  115. package/dist/esm/category-autocomplete/style.scss +0 -2
  116. package/dist/esm/color-picker/index.js +2 -4
  117. package/dist/esm/color-picker/style.scss +0 -3
  118. package/dist/esm/consts.js +3 -2
  119. package/dist/esm/custom-select-control/index.js +2 -5
  120. package/dist/esm/custom-select-control/style.scss +6 -7
  121. package/dist/esm/date-range-picker/index.js +1 -3
  122. package/dist/esm/date-range-picker/style.scss +12 -12
  123. package/dist/esm/footer/index.js +3 -11
  124. package/dist/esm/footer/style.scss +5 -5
  125. package/dist/esm/form-token-field/index.js +2 -5
  126. package/dist/esm/form-token-field/style.scss +2 -3
  127. package/dist/esm/global-notices/index.js +1 -6
  128. package/dist/esm/grid/index.js +2 -5
  129. package/dist/esm/grid/style.scss +5 -5
  130. package/dist/esm/handoff/index.js +3 -14
  131. package/dist/esm/handoff-message/index.js +45 -0
  132. package/dist/esm/hooks/index.js +0 -2
  133. package/dist/esm/hooks/useObjectState.js +3 -8
  134. package/dist/esm/hooks/useObjectState.test.js +0 -3
  135. package/dist/esm/hooks/useOnClickOutside.js +2 -5
  136. package/dist/esm/hooks/usePrompt.js +1 -8
  137. package/dist/esm/image-upload/index.js +17 -16
  138. package/dist/esm/image-upload/style.scss +5 -9
  139. package/dist/esm/index.js +4 -0
  140. package/dist/esm/info-button/index.js +4 -6
  141. package/dist/esm/info-button/style.scss +1 -3
  142. package/dist/esm/modal/index.js +2 -5
  143. package/dist/esm/modal/style.scss +8 -8
  144. package/dist/esm/newspack-icon/index.js +2 -5
  145. package/dist/esm/newspack-icon/style.scss +4 -4
  146. package/dist/esm/newspack-logo/index.js +2 -5
  147. package/dist/esm/newspack-logo/style.scss +3 -3
  148. package/dist/esm/notice/index.js +4 -8
  149. package/dist/esm/notice/style.scss +28 -15
  150. package/dist/esm/patrons-logo/index.js +3 -5
  151. package/dist/esm/plugin-installer/index.js +35 -39
  152. package/dist/esm/plugin-installer/style.scss +5 -5
  153. package/dist/esm/plugin-settings/SettingsSection.js +8 -21
  154. package/dist/esm/plugin-settings/index.js +38 -24
  155. package/dist/esm/plugin-toggle/index.js +39 -36
  156. package/dist/esm/plugin-toggle/style.scss +2 -2
  157. package/dist/esm/popover/index.js +3 -6
  158. package/dist/esm/popover/style.scss +19 -16
  159. package/dist/esm/position-control/index.js +109 -0
  160. package/dist/esm/position-control/style.scss +66 -0
  161. package/dist/esm/progress-bar/index.js +2 -7
  162. package/dist/esm/progress-bar/index.test.js +2 -1
  163. package/dist/esm/progress-bar/style.scss +4 -4
  164. package/dist/esm/proxied-imports/router.js +1 -0
  165. package/dist/esm/radio-control/index.js +3 -6
  166. package/dist/esm/radio-control/style.scss +9 -9
  167. package/dist/esm/section-header/index.js +44 -25
  168. package/dist/esm/section-header/style.scss +2 -2
  169. package/dist/esm/select-control/ButtonGroupControl.js +5 -7
  170. package/dist/esm/select-control/GroupedSelectControl.js +5 -6
  171. package/dist/esm/select-control/index.js +6 -6
  172. package/dist/esm/select-control/style.scss +2 -2
  173. package/dist/esm/settings/MinMaxSetting.js +1 -3
  174. package/dist/esm/settings/SettingsCard.js +3 -4
  175. package/dist/esm/settings/SettingsSection.js +0 -2
  176. package/dist/esm/settings/style.scss +1 -1
  177. package/dist/esm/steps-list/index.js +43 -0
  178. package/dist/esm/steps-list/style.scss +11 -0
  179. package/dist/esm/steps-list-item/index.js +48 -0
  180. package/dist/esm/steps-list-item/style.scss +47 -0
  181. package/dist/esm/style-card/index.js +2 -5
  182. package/dist/esm/style-card/style.scss +9 -12
  183. package/dist/esm/style.scss +5 -6
  184. package/dist/esm/tabbed-navigation/index.js +20 -10
  185. package/dist/esm/tabbed-navigation/style.scss +3 -4
  186. package/dist/esm/text-control/index.js +2 -9
  187. package/dist/esm/utils/index.js +9 -3
  188. package/dist/esm/waiting/index.js +2 -5
  189. package/dist/esm/web-preview/index.js +9 -24
  190. package/dist/esm/web-preview/style.scss +14 -14
  191. package/dist/esm/with-wizard/index.js +49 -34
  192. package/dist/esm/with-wizard/style.scss +35 -37
  193. package/dist/esm/with-wizard-screen/index.js +9 -11
  194. package/dist/esm/with-wizard-screen/style.scss +14 -17
  195. package/dist/esm/wizard/components/WizardError.js +1 -10
  196. package/dist/esm/wizard/index.js +10 -12
  197. package/dist/esm/wizard/store/index.js +40 -46
  198. package/dist/esm/wizard/store/utils.js +1 -1
  199. package/package.json +4 -4
  200. package/shared/js/button-props.js +3 -1
  201. package/shared/scss/_mixins.scss +12 -0
  202. package/src/accordion/index.js +32 -0
  203. package/src/accordion/style.scss +27 -0
  204. package/src/action-card/index.js +43 -8
  205. package/src/action-card/style.scss +100 -23
  206. package/src/autocomplete-tokenfield/index.js +1 -1
  207. package/src/autocomplete-tokenfield/style.scss +2 -2
  208. package/src/autocomplete-with-suggestions/style.scss +16 -15
  209. package/src/button-card/style.scss +13 -13
  210. package/src/card/style.scss +25 -8
  211. package/src/category-autocomplete/index.js +3 -1
  212. package/src/category-autocomplete/style.scss +0 -2
  213. package/src/color-picker/style.scss +0 -3
  214. package/src/consts.js +2 -1
  215. package/src/custom-select-control/style.scss +6 -7
  216. package/src/date-range-picker/style.scss +12 -12
  217. package/src/footer/index.js +2 -2
  218. package/src/footer/style.scss +5 -5
  219. package/src/form-token-field/index.js +2 -7
  220. package/src/form-token-field/style.scss +2 -3
  221. package/src/grid/style.scss +5 -5
  222. package/src/handoff/index.js +3 -8
  223. package/src/handoff-message/index.js +39 -0
  224. package/src/hooks/useObjectState.js +2 -1
  225. package/src/image-upload/index.js +9 -3
  226. package/src/image-upload/style.scss +5 -9
  227. package/src/index.js +4 -0
  228. package/src/info-button/style.scss +1 -3
  229. package/src/modal/style.scss +8 -8
  230. package/src/newspack-icon/style.scss +4 -4
  231. package/src/newspack-logo/style.scss +3 -3
  232. package/src/notice/index.js +2 -0
  233. package/src/notice/style.scss +28 -15
  234. package/src/plugin-installer/index.js +15 -2
  235. package/src/plugin-installer/style.scss +5 -5
  236. package/src/plugin-settings/SettingsSection.js +7 -13
  237. package/src/plugin-settings/index.js +7 -2
  238. package/src/plugin-toggle/index.js +2 -3
  239. package/src/plugin-toggle/style.scss +2 -2
  240. package/src/popover/style.scss +19 -16
  241. package/src/position-control/index.js +122 -0
  242. package/src/position-control/style.scss +66 -0
  243. package/src/progress-bar/style.scss +4 -4
  244. package/src/radio-control/style.scss +9 -9
  245. package/src/section-header/index.js +32 -15
  246. package/src/section-header/style.scss +2 -2
  247. package/src/select-control/ButtonGroupControl.js +3 -0
  248. package/src/select-control/GroupedSelectControl.js +2 -1
  249. package/src/select-control/index.js +6 -2
  250. package/src/select-control/style.scss +2 -2
  251. package/src/settings/style.scss +1 -1
  252. package/src/steps-list/index.js +39 -0
  253. package/src/steps-list/style.scss +11 -0
  254. package/src/steps-list-item/index.js +40 -0
  255. package/src/steps-list-item/style.scss +47 -0
  256. package/src/style-card/index.js +2 -11
  257. package/src/style-card/style.scss +9 -12
  258. package/src/style.scss +5 -6
  259. package/src/tabbed-navigation/index.js +12 -4
  260. package/src/tabbed-navigation/style.scss +3 -4
  261. package/src/utils/index.js +9 -0
  262. package/src/web-preview/index.js +1 -1
  263. package/src/web-preview/style.scss +14 -14
  264. package/src/with-wizard/style.scss +35 -37
  265. package/src/with-wizard-screen/index.js +4 -1
  266. package/src/with-wizard-screen/style.scss +14 -17
  267. package/src/wizard/index.js +15 -3
  268. package/src/wizard/store/index.js +8 -2
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Steps List Item
3
+ */
4
+
5
+ /**
6
+ * WordPress dependencies.
7
+ */
8
+ import { Component } from '@wordpress/element';
9
+
10
+ /**
11
+ * Internal dependencies.
12
+ */
13
+ import './style.scss';
14
+
15
+ /**
16
+ * External dependencies.
17
+ */
18
+ import classnames from 'classnames';
19
+
20
+ class StepsListItem extends Component {
21
+ /**
22
+ * Render
23
+ */
24
+ render() {
25
+ const { className, listItemCount, listItemText, style = {} } = this.props;
26
+ const classes = classnames( 'steps-list-item', className );
27
+
28
+ return (
29
+ <div className={ classes } style={ style }>
30
+ <div className="steps-list-item__number">{ listItemCount }</div>
31
+ <div
32
+ className="steps-list-item__content"
33
+ dangerouslySetInnerHTML={ { __html: listItemText } }
34
+ />
35
+ </div>
36
+ );
37
+ }
38
+ }
39
+
40
+ export default StepsListItem;
@@ -0,0 +1,47 @@
1
+ @use '../../../shared/scss/colors';
2
+ @use '~@wordpress/base-styles/colors' as wp-colors;
3
+
4
+ .steps-list-item {
5
+ align-items: center;
6
+ display: grid;
7
+ grid-template-columns: 28px auto;
8
+ gap: 24px;
9
+ position: relative;
10
+
11
+ &::before {
12
+ border: 1px solid #F0F0F0;
13
+ bottom: -16px;
14
+ content: '';
15
+ display: block;
16
+ left: 14px;
17
+ position: absolute;
18
+ top: -16px;
19
+ }
20
+
21
+ &:first-child::before {
22
+ top: 50%;
23
+ }
24
+
25
+ &:last-child::before {
26
+ bottom: 50%;
27
+ }
28
+
29
+ + .steps-list-item {
30
+ margin-top: 32px;
31
+ }
32
+
33
+ &__number {
34
+ align-items: center;
35
+ background: #fff;
36
+ border: 1px solid currentcolor;
37
+ border-radius: 100%;
38
+ color: colors.$primary-500;
39
+ display: flex;
40
+ height: 28px;
41
+ justify-content: center;
42
+ outline: 8px solid #fff;
43
+ position: relative;
44
+ width: 28px;
45
+ z-index: 2;
46
+ }
47
+ }
@@ -25,17 +25,8 @@ class StyleCard extends Component {
25
25
  * Render.
26
26
  */
27
27
  render() {
28
- const {
29
- ariaLabel,
30
- className,
31
- cardTitle,
32
- url,
33
- image,
34
- imageType,
35
- isActive,
36
- onClick,
37
- id,
38
- } = this.props;
28
+ const { ariaLabel, className, cardTitle, url, image, imageType, isActive, onClick, id } =
29
+ this.props;
39
30
  const classes = classnames(
40
31
  'newspack-style-card',
41
32
  isActive && 'newspack-style-card__is-active',
@@ -2,8 +2,8 @@
2
2
  * Style Card
3
3
  */
4
4
 
5
- @import '../../../shared/scss/colors';
6
- @import '~@wordpress/base-styles/colors';
5
+ @use '../../../shared/scss/colors';
6
+ @use '~@wordpress/base-styles/colors' as wp-colors;
7
7
 
8
8
  .newspack-style-card {
9
9
  margin: 32px 0;
@@ -15,13 +15,13 @@
15
15
  text-align: center;
16
16
 
17
17
  .newspack-style-card__is-active & {
18
- color: $primary-500;
18
+ color: colors.$primary-500;
19
19
  }
20
20
  }
21
21
 
22
22
  // Image
23
23
  &__image {
24
- border: 1px solid $gray-300;
24
+ border: 1px solid wp-colors.$gray-300;
25
25
  border-radius: 2px;
26
26
  overflow: hidden;
27
27
  position: relative;
@@ -43,13 +43,13 @@
43
43
  }
44
44
 
45
45
  svg {
46
- fill: $gray-600;
46
+ fill: wp-colors.$gray-600;
47
47
  margin: 8px;
48
48
  }
49
49
 
50
50
  .newspack-style-card__is-active & {
51
- border-color: $primary-500;
52
- box-shadow: inset 0 0 0 1px $primary-500;
51
+ border-color: colors.$primary-500;
52
+ box-shadow: inset 0 0 0 1px colors.$primary-500;
53
53
 
54
54
  img {
55
55
  position: relative;
@@ -62,16 +62,13 @@
62
62
  &__actions {
63
63
  align-items: center;
64
64
  background: rgba( white, 0.9 );
65
- bottom: 0;
66
65
  display: flex;
67
66
  flex-direction: column;
68
67
  justify-content: center;
69
- left: 0;
68
+ inset: 0;
70
69
  opacity: 0;
71
70
  padding: 16px;
72
71
  position: absolute;
73
- right: 0;
74
- top: 0;
75
72
  transition: opacity 125ms ease-in-out;
76
73
 
77
74
  &:empty {
@@ -91,7 +88,7 @@
91
88
  }
92
89
 
93
90
  .newspack-style-card__is-active & {
94
- box-shadow: inset 0 0 0 1px $primary-500;
91
+ box-shadow: inset 0 0 0 1px colors.$primary-500;
95
92
  }
96
93
  }
97
94
  }
package/src/style.scss CHANGED
@@ -1,5 +1,4 @@
1
- @import '~@wordpress/base-styles/colors';
2
- @import '../../shared/scss/colors';
1
+ @use '~@wordpress/base-styles/colors' as wp-colors;
3
2
 
4
3
  // Buttons Card
5
4
 
@@ -21,17 +20,17 @@
21
20
  .newspack-checkbox-icon {
22
21
  background: white;
23
22
  border-radius: 50%;
24
- box-shadow: inset 0 0 0 1px $gray-300;
23
+ box-shadow: inset 0 0 0 1px wp-colors.$gray-300;
25
24
  display: block;
26
25
  height: 24px;
27
26
  width: 24px;
28
27
 
29
28
  svg {
30
- fill: $gray-700;
29
+ fill: wp-colors.$gray-700;
31
30
  }
32
31
 
33
32
  &--checked {
34
- background: $alert-green;
33
+ background: wp-colors.$alert-green;
35
34
  box-shadow: none;
36
35
 
37
36
  svg {
@@ -39,6 +38,6 @@
39
38
  }
40
39
  }
41
40
  &--pending {
42
- background: $alert-yellow;
41
+ background: wp-colors.$alert-yellow;
43
42
  }
44
43
  }
@@ -2,7 +2,7 @@
2
2
  * External dependencies.
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { findIndex } from 'lodash';
5
+ import findIndex from 'lodash/findIndex';
6
6
  import Router from '../proxied-imports/router';
7
7
 
8
8
  /**
@@ -12,16 +12,23 @@ import './style.scss';
12
12
 
13
13
  const { NavLink, useHistory } = Router;
14
14
 
15
- const TabbedNavigation = ( { items, className, disableUpcoming } ) => {
15
+ const TabbedNavigation = ( { items, className, disableUpcoming, children = null } ) => {
16
+ const displayedItems = items.filter( item => ! item.isHiddenInTabbedNavigation );
16
17
  const { location } = useHistory();
17
- const currentIndex = findIndex( items, [ 'path', location.pathname ] );
18
+ const currentIndex = findIndex( displayedItems, [ 'path', location.pathname ] );
18
19
  return (
19
20
  <div className={ classnames( 'newspack-tabbed-navigation', className ) }>
20
21
  <ul>
21
- { items.map( ( item, index ) => (
22
+ { displayedItems.map( ( item, index ) => (
22
23
  <li key={ index }>
23
24
  <NavLink
24
25
  to={ item.path }
26
+ isActive={ ( match, { pathname } ) => {
27
+ if ( item.activeTabPaths ) {
28
+ return item.activeTabPaths.includes( pathname );
29
+ }
30
+ return match;
31
+ } }
25
32
  exact
26
33
  activeClassName={ 'selected' }
27
34
  className={ classnames( {
@@ -33,6 +40,7 @@ const TabbedNavigation = ( { items, className, disableUpcoming } ) => {
33
40
  </li>
34
41
  ) ) }
35
42
  </ul>
43
+ { children }
36
44
  </div>
37
45
  );
38
46
  };
@@ -2,8 +2,7 @@
2
2
  * Tabbed Navigation
3
3
  */
4
4
 
5
- @import '~@wordpress/base-styles/colors';
6
- @import '../../../shared/scss/colors';
5
+ @use '~@wordpress/base-styles/colors' as wp-colors;
7
6
 
8
7
  .newspack-tabbed-navigation {
9
8
  background: white;
@@ -20,7 +19,7 @@
20
19
  }
21
20
 
22
21
  ul {
23
- box-shadow: 0 -1px 0 inset $gray-300;
22
+ box-shadow: 0 -1px 0 inset wp-colors.$gray-300;
24
23
  display: flex;
25
24
  flex-wrap: wrap;
26
25
  margin: 0;
@@ -36,7 +35,7 @@
36
35
 
37
36
  a {
38
37
  align-items: center;
39
- color: $gray-900;
38
+ color: wp-colors.$gray-900;
40
39
  display: flex;
41
40
  font-weight: bold;
42
41
  height: 48px;
@@ -13,6 +13,15 @@ const InteractiveDiv = ( { style = {}, ...props } ) => (
13
13
  />
14
14
  );
15
15
 
16
+ const confirmAction = message => {
17
+ // eslint-disable-next-line no-alert
18
+ if ( confirm( message ) ) {
19
+ return true;
20
+ }
21
+ return false;
22
+ };
23
+
16
24
  export default {
17
25
  InteractiveDiv,
26
+ confirmAction,
18
27
  };
@@ -165,7 +165,7 @@ class WebPreview extends Component {
165
165
  }
166
166
 
167
167
  WebPreview.defaultProps = {
168
- url: '//newspack.pub',
168
+ url: '//newspack.com',
169
169
  label: __( 'Preview', 'newspack' ),
170
170
  onLoad: () => {},
171
171
  };
@@ -2,17 +2,17 @@
2
2
  * Web Preview
3
3
  */
4
4
 
5
- @import '../../../shared/scss/colors';
6
- @import '~@wordpress/base-styles/colors';
5
+ @use '../../../shared/scss/colors';
6
+ @use '~@wordpress/base-styles/colors' as wp-colors;
7
7
 
8
8
  .newspack-web-preview {
9
9
  // Color
10
- --wp-admin-theme-color: #{$primary-500};
11
- --wp-admin-theme-color--rgb: #{$primary-500--rgb};
12
- --wp-admin-theme-color-darker-10: #{$primary-600};
13
- --wp-admin-theme-color-darker-10--rgb: #{$primary-600--rgb};
14
- --wp-admin-theme-color-darker-20: #{$primary-700};
15
- --wp-admin-theme-color-darker-20--rgb: #{$primary-700--rgb};
10
+ --wp-admin-theme-color: #{colors.$primary-500};
11
+ --wp-admin-theme-color--rgb: #{colors.$primary-500--rgb};
12
+ --wp-admin-theme-color-darker-10: #{colors.$primary-600};
13
+ --wp-admin-theme-color-darker-10--rgb: #{colors.$primary-600--rgb};
14
+ --wp-admin-theme-color-darker-20: #{colors.$primary-700};
15
+ --wp-admin-theme-color-darker-20--rgb: #{colors.$primary-700--rgb};
16
16
 
17
17
  background: rgba( black, 0.7 );
18
18
  box-sizing: border-box;
@@ -53,7 +53,7 @@
53
53
  }
54
54
 
55
55
  &__content {
56
- background: $gray-100;
56
+ background: wp-colors.$gray-100;
57
57
  height: calc( 100% - 49px );
58
58
  -webkit-overflow-scrolling: touch;
59
59
  overflow-x: hidden;
@@ -66,7 +66,7 @@
66
66
  margin: 0 auto;
67
67
  max-width: 100%;
68
68
  opacity: 0;
69
- outline: 1px solid $gray-300;
69
+ outline: 1px solid wp-colors.$gray-300;
70
70
  padding: 0;
71
71
  pointer-events: all;
72
72
  transition: max-width 125ms ease-in-out, opacity 250ms ease-in-out;
@@ -78,14 +78,14 @@
78
78
  align-items: center;
79
79
  display: flex;
80
80
  left: 50%;
81
- margin: -12px 0 0 0;
81
+ margin: -12px 0 0;
82
82
  position: absolute;
83
83
  top: 50%;
84
84
  transform: translateX( -50% );
85
85
  }
86
86
 
87
87
  &__toolbar {
88
- border-bottom: 1px solid $gray-300;
88
+ border-bottom: 1px solid wp-colors.$gray-300;
89
89
  display: flex;
90
90
  padding: 6px;
91
91
 
@@ -102,7 +102,7 @@
102
102
  padding: 0 !important;
103
103
 
104
104
  &.is-selected {
105
- background: $primary-500;
105
+ background: colors.$primary-500;
106
106
  color: white;
107
107
 
108
108
  &:active,
@@ -114,7 +114,7 @@
114
114
  }
115
115
 
116
116
  &:focus {
117
- box-shadow: inset 0 0 0 1px $primary-500, inset 0 0 0 3px white !important;
117
+ box-shadow: inset 0 0 0 1px colors.$primary-500, inset 0 0 0 3px white !important;
118
118
  }
119
119
  }
120
120
 
@@ -2,8 +2,8 @@
2
2
  * With Wizard
3
3
  */
4
4
 
5
- @import '~@wordpress/base-styles/colors';
6
- @import '../../../shared/scss/colors';
5
+ @use '~@wordpress/base-styles/colors' as wp-colors;
6
+ @use '../../../shared/scss/colors';
7
7
 
8
8
  // Reset Padding of the Admin Page
9
9
 
@@ -32,11 +32,11 @@ body[class*='admin_page_newspack-'] {
32
32
 
33
33
  svg {
34
34
  &.newspack--error {
35
- fill: $alert-red;
35
+ fill: wp-colors.$alert-red;
36
36
  transform: rotate( 180deg );
37
37
  }
38
38
  &.newspack--success {
39
- fill: $alert-green;
39
+ fill: wp-colors.$alert-green;
40
40
  }
41
41
  }
42
42
 
@@ -44,12 +44,12 @@ svg {
44
44
 
45
45
  .newspack-wizard__blue {
46
46
  #wpwrap {
47
- background: $primary-500;
47
+ background: colors.$primary-500;
48
48
  }
49
49
 
50
50
  .newspack-footer {
51
- background: $primary-500;
52
- border-color: $primary-500;
51
+ background: colors.$primary-500;
52
+ border-color: colors.$primary-500;
53
53
  justify-content: center;
54
54
 
55
55
  &__logo {
@@ -76,12 +76,9 @@ svg {
76
76
 
77
77
  .newspack-wizard__is-loading {
78
78
  background: white;
79
- bottom: 0;
80
79
  cursor: wait;
81
- left: 0;
80
+ inset: 0;
82
81
  position: absolute;
83
- right: 0;
84
- top: 0;
85
82
 
86
83
  > * {
87
84
  display: none !important;
@@ -95,38 +92,39 @@ svg {
95
92
  }
96
93
 
97
94
  &::before {
98
- background: $primary-500;
99
- box-shadow: 24px 0 0 white, 69px 0 0 -15px $gray-900, 99px 0 0 -15px $gray-900,
100
- 129px 0 0 -15px $gray-900, 159px 0 0 -15px $gray-900, 189px 0 0 -15px $gray-900;
95
+ background: colors.$primary-500;
96
+ box-shadow: 24px 0 0 white, 69px 0 0 -15px wp-colors.$gray-900,
97
+ 99px 0 0 -15px wp-colors.$gray-900, 129px 0 0 -15px wp-colors.$gray-900,
98
+ 159px 0 0 -15px wp-colors.$gray-900, 189px 0 0 -15px wp-colors.$gray-900;
101
99
  height: 60px;
102
100
  width: 60px;
103
101
  }
104
102
 
105
103
  &::after {
106
- background: $gray-900;
107
- box-shadow: inset -40vw 0 0 0 white, 0 64px 0 0 $gray-700, 40vw 96px 0 0 white,
108
- 0 96px 0 0 $gray-700;
104
+ background: wp-colors.$gray-900;
105
+ box-shadow: inset -40vw 0 0 0 white, 0 64px 0 0 wp-colors.$gray-700, 40vw 96px 0 0 white,
106
+ 0 96px 0 0 wp-colors.$gray-700;
109
107
  height: 24px;
110
108
  margin: 68px auto 0;
111
109
  max-width: 1040px;
112
110
  width: calc( 100% - ( 32px * 2 ) );
113
111
 
114
112
  @media screen and ( min-width: 744px ) {
115
- box-shadow: inset -400px 0 0 0 white, 0 64px 0 0 $gray-700, 200px 96px 0 0 white,
116
- 0 96px 0 0 $gray-700;
113
+ box-shadow: inset -400px 0 0 0 white, 0 64px 0 0 wp-colors.$gray-700, 200px 96px 0 0 white,
114
+ 0 96px 0 0 wp-colors.$gray-700;
117
115
  width: calc( 100% - ( 64px * 2 ) );
118
116
  }
119
117
 
120
118
  @media screen and ( min-width: 1224px ) {
121
- box-shadow: inset -600px 0 0 0 white, 0 64px 0 0 $gray-700, 512px 96px 0 0 white,
122
- 0 96px 0 0 $gray-700;
119
+ box-shadow: inset -600px 0 0 0 white, 0 64px 0 0 wp-colors.$gray-700, 512px 96px 0 0 white,
120
+ 0 96px 0 0 wp-colors.$gray-700;
123
121
  width: calc( 100% - ( 64px * 2 ) );
124
122
  }
125
123
  }
126
124
 
127
125
  // Blue Screen
128
126
  .newspack-wizard__blue & {
129
- background: $primary-500;
127
+ background: colors.$primary-500;
130
128
 
131
129
  &::before {
132
130
  animation: loading-quiet 1.25s ease-in-out infinite;
@@ -182,7 +180,7 @@ svg {
182
180
 
183
181
  &::before {
184
182
  animation: loading-quiet 1.25s ease-in-out infinite;
185
- background: $primary-500;
183
+ background: colors.$primary-500;
186
184
  height: 8px;
187
185
  right: 100%;
188
186
  z-index: 9999;
@@ -210,42 +208,42 @@ svg {
210
208
  animation: loading 2s ease-in-out infinite;
211
209
  content: '';
212
210
  display: block;
213
- background: $gray-900;
214
- box-shadow: inset -40vw 0 0 0 white, 0 64px 0 0 $gray-700, 40vw 96px 0 0 white,
215
- 0 96px 0 0 $gray-700;
211
+ background: wp-colors.$gray-900;
212
+ box-shadow: inset -40vw 0 0 0 white, 0 64px 0 0 wp-colors.$gray-700, 40vw 96px 0 0 white,
213
+ 0 96px 0 0 wp-colors.$gray-700;
216
214
  height: 24px;
217
215
  margin: 0 auto;
218
216
  max-width: 1040px;
219
217
  width: 100%;
220
218
 
221
219
  @media screen and ( min-width: 744px ) {
222
- box-shadow: inset -400px 0 0 0 white, 0 64px 0 0 $gray-700, 200px 96px 0 0 white,
223
- 0 96px 0 0 $gray-700;
220
+ box-shadow: inset -400px 0 0 0 white, 0 64px 0 0 wp-colors.$gray-700, 200px 96px 0 0 white,
221
+ 0 96px 0 0 wp-colors.$gray-700;
224
222
  }
225
223
 
226
224
  @media screen and ( min-width: 1224px ) {
227
- box-shadow: inset -600px 0 0 0 white, 0 64px 0 0 $gray-700, 520px 96px 0 0 white,
228
- 0 96px 0 0 $gray-700;
225
+ box-shadow: inset -600px 0 0 0 white, 0 64px 0 0 wp-colors.$gray-700, 520px 96px 0 0 white,
226
+ 0 96px 0 0 wp-colors.$gray-700;
229
227
  }
230
228
  }
231
229
  }
232
230
 
233
231
  @keyframes loading {
234
- from {
235
- opacity: 100%;
232
+ 0% {
233
+ opacity: 1;
236
234
  }
237
235
 
238
236
  50% {
239
- opacity: 10%;
237
+ opacity: 0.1;
240
238
  }
241
239
 
242
- to {
243
- opacity: 100%;
240
+ 100% {
241
+ opacity: 1;
244
242
  }
245
243
  }
246
244
 
247
245
  @keyframes loading-quiet {
248
- from {
246
+ 0% {
249
247
  left: 0;
250
248
  right: 100%;
251
249
  }
@@ -255,7 +253,7 @@ svg {
255
253
  right: 0;
256
254
  }
257
255
 
258
- to {
256
+ 100% {
259
257
  left: 100%;
260
258
  right: 0;
261
259
  }
@@ -7,7 +7,7 @@ import { category } from '@wordpress/icons';
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
- import { Button, Handoff, NewspackIcon, Notice, TabbedNavigation } from '../';
10
+ import { Button, Handoff, NewspackIcon, Notice, HandoffMessage, TabbedNavigation } from '../';
11
11
  import { buttonProps } from '../../../shared/js/';
12
12
  import './style.scss';
13
13
 
@@ -34,6 +34,7 @@ export default function withWizardScreen( WrappedComponent, { hidePrimaryButton
34
34
  renderAboveContent,
35
35
  disableUpcomingInTabbedNavigation,
36
36
  } = props;
37
+
37
38
  const retrievedButtonProps = buttonProps( buttonAction );
38
39
  const retrievedSecondaryButtonProps = buttonProps( secondaryButtonAction );
39
40
  const SecondaryCTAComponent = retrievedSecondaryButtonProps.plugin ? Handoff : Button;
@@ -87,6 +88,8 @@ export default function withWizardScreen( WrappedComponent, { hidePrimaryButton
87
88
  />
88
89
  ) }
89
90
 
91
+ <HandoffMessage />
92
+
90
93
  <div className={ classnames( 'newspack-wizard newspack-wizard__content', className ) }>
91
94
  { typeof renderAboveContent === 'function' ? renderAboveContent() : null }
92
95
  { <WrappedComponent { ...props } renderPrimaryButton={ renderPrimaryButton } /> }
@@ -2,19 +2,19 @@
2
2
  * With Wizard Screen
3
3
  */
4
4
 
5
- @import '~@wordpress/base-styles/colors';
6
- @import '../../../shared/scss/colors';
5
+ @use '~@wordpress/base-styles/colors' as wp-colors;
6
+ @use '../../../shared/scss/colors';
7
7
 
8
8
  .newspack-wizard {
9
9
  // Color
10
- --wp-admin-theme-color: #{$primary-500};
11
- --wp-admin-theme-color--rgb: #{$primary-500--rgb};
12
- --wp-admin-theme-color-darker-10: #{$primary-600};
13
- --wp-admin-theme-color-darker-10--rgb: #{$primary-600--rgb};
14
- --wp-admin-theme-color-darker-20: #{$primary-700};
15
- --wp-admin-theme-color-darker-20--rgb: #{$primary-700--rgb};
10
+ --wp-admin-theme-color: #{colors.$primary-500};
11
+ --wp-admin-theme-color--rgb: #{colors.$primary-500--rgb};
12
+ --wp-admin-theme-color-darker-10: #{colors.$primary-600};
13
+ --wp-admin-theme-color-darker-10--rgb: #{colors.$primary-600--rgb};
14
+ --wp-admin-theme-color-darker-20: #{colors.$primary-700};
15
+ --wp-admin-theme-color-darker-20--rgb: #{colors.$primary-700--rgb};
16
16
 
17
- color: $gray-900;
17
+ color: wp-colors.$gray-900;
18
18
 
19
19
  // Headings
20
20
  h1,
@@ -49,7 +49,7 @@
49
49
 
50
50
  &__title {
51
51
  align-items: center;
52
- border-bottom: 1px solid $gray-300;
52
+ border-bottom: 1px solid wp-colors.$gray-300;
53
53
  display: flex;
54
54
 
55
55
  h2 {
@@ -63,7 +63,7 @@
63
63
  padding: 0 24px;
64
64
 
65
65
  span {
66
- color: $gray-700;
66
+ color: wp-colors.$gray-700;
67
67
  display: none;
68
68
  margin-left: 8px;
69
69
 
@@ -83,7 +83,7 @@
83
83
  }
84
84
 
85
85
  &:not( .newspack-icon ) {
86
- background: $primary-500;
86
+ background: colors.$primary-500;
87
87
  left: 50%;
88
88
  margin: -28px 0 0 -28px !important;
89
89
  opacity: 0;
@@ -110,13 +110,10 @@
110
110
  &::before {
111
111
  border: 2px solid white;
112
112
  border-radius: 2px;
113
- bottom: 5px;
114
113
  content: '';
115
114
  display: block;
116
- left: 6px;
115
+ inset: 6px 6px 5px;
117
116
  position: absolute;
118
- right: 6px;
119
- top: 6px;
120
117
  }
121
118
  }
122
119
  }
@@ -145,7 +142,7 @@
145
142
  // Thematic Break
146
143
 
147
144
  hr {
148
- background: $gray-300;
145
+ background: wp-colors.$gray-300;
149
146
  border: 0;
150
147
  height: 1px;
151
148
  margin: 48px 0;