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
@@ -9,20 +9,19 @@ import { Component } from '@wordpress/element';
9
9
  import { __ as alias__ } from '@wordpress/i18n';
10
10
  const __ = alias__;
11
11
  import { Button } from '@wordpress/components';
12
+
12
13
  /**
13
14
  * Internal dependencies
14
15
  */
15
-
16
16
  import { WebPreview } from '../';
17
17
  import './style.scss';
18
+
18
19
  /**
19
20
  * External dependencies
20
21
  */
21
-
22
22
  import classnames from 'classnames';
23
23
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
24
24
  import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
25
-
26
25
  class StyleCard extends Component {
27
26
  /**
28
27
  * Render.
@@ -73,7 +72,5 @@ class StyleCard extends Component {
73
72
  })]
74
73
  });
75
74
  }
76
-
77
75
  }
78
-
79
76
  export default StyleCard;
@@ -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
  }
@@ -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,35 +2,46 @@
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
9
  * Internal dependencies.
9
10
  */
10
-
11
11
  import './style.scss';
12
12
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
13
+ import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
13
14
  const {
14
15
  NavLink,
15
16
  useHistory
16
17
  } = Router;
17
-
18
18
  const TabbedNavigation = _ref => {
19
19
  let {
20
20
  items,
21
21
  className,
22
- disableUpcoming
22
+ disableUpcoming,
23
+ children = null
23
24
  } = _ref;
25
+ const displayedItems = items.filter(item => !item.isHiddenInTabbedNavigation);
24
26
  const {
25
27
  location
26
28
  } = useHistory();
27
- const currentIndex = findIndex(items, ['path', location.pathname]);
28
- return _jsx("div", {
29
+ const currentIndex = findIndex(displayedItems, ['path', location.pathname]);
30
+ return _jsxs("div", {
29
31
  className: classnames('newspack-tabbed-navigation', className),
30
- children: _jsx("ul", {
31
- children: items.map((item, index) => _jsx("li", {
32
+ children: [_jsx("ul", {
33
+ children: displayedItems.map((item, index) => _jsx("li", {
32
34
  children: _jsx(NavLink, {
33
35
  to: item.path,
36
+ isActive: (match, _ref2) => {
37
+ let {
38
+ pathname
39
+ } = _ref2;
40
+ if (item.activeTabPaths) {
41
+ return item.activeTabPaths.includes(pathname);
42
+ }
43
+ return match;
44
+ },
34
45
  exact: true,
35
46
  activeClassName: 'selected',
36
47
  className: classnames({
@@ -39,8 +50,7 @@ const TabbedNavigation = _ref => {
39
50
  children: item.label
40
51
  })
41
52
  }, index))
42
- })
53
+ }), children]
43
54
  });
44
55
  };
45
-
46
56
  export default TabbedNavigation;
@@ -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;
@@ -8,29 +8,26 @@
8
8
  import { TextControl as BaseComponent } from '@wordpress/components';
9
9
  import { Component, createRef } from '@wordpress/element';
10
10
  import { __ as alias__ } from '@wordpress/i18n';
11
+
11
12
  /**
12
13
  * Internal dependencies
13
14
  */
14
-
15
15
  const __ = alias__;
16
16
  import './style.scss';
17
+
17
18
  /**
18
19
  * External dependencies
19
20
  */
20
-
21
21
  import classNames from 'classnames';
22
22
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
23
-
24
23
  class TextControl extends Component {
25
24
  constructor(props) {
26
25
  super(props);
27
26
  this.wrapperRef = createRef();
28
27
  }
29
-
30
28
  componentDidMount() {
31
29
  if (this.wrapperRef.current) {
32
30
  const labelEl = this.wrapperRef.current.querySelector('label');
33
-
34
31
  if (labelEl) {
35
32
  labelEl.setAttribute('data-required-text', __('(required)', 'newspack'));
36
33
  }
@@ -39,8 +36,6 @@ class TextControl extends Component {
39
36
  /**
40
37
  * Render.
41
38
  */
42
-
43
-
44
39
  render() {
45
40
  const {
46
41
  className,
@@ -67,7 +62,5 @@ class TextControl extends Component {
67
62
  ...otherProps
68
63
  });
69
64
  }
70
-
71
65
  }
72
-
73
66
  export default TextControl;
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { ENTER } from '@wordpress/keycodes';
5
5
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
6
-
7
6
  const InteractiveDiv = _ref => {
8
7
  let {
9
8
  style = {},
@@ -20,7 +19,14 @@ const InteractiveDiv = _ref => {
20
19
  ...props
21
20
  });
22
21
  };
23
-
22
+ const confirmAction = message => {
23
+ // eslint-disable-next-line no-alert
24
+ if (confirm(message)) {
25
+ return true;
26
+ }
27
+ return false;
28
+ };
24
29
  export default {
25
- InteractiveDiv
30
+ InteractiveDiv,
31
+ confirmAction
26
32
  };
@@ -7,18 +7,17 @@
7
7
  */
8
8
  import { Component } from '@wordpress/element';
9
9
  import { Spinner } from '@wordpress/components';
10
+
10
11
  /**
11
12
  * Internal dependencies.
12
13
  */
13
-
14
14
  import './style.scss';
15
+
15
16
  /**
16
17
  * External dependencies.
17
18
  */
18
-
19
19
  import classnames from 'classnames';
20
20
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
21
-
22
21
  class Waiting extends Component {
23
22
  /**
24
23
  * Render
@@ -41,7 +40,5 @@ class Waiting extends Component {
41
40
  ...otherProps
42
41
  });
43
42
  }
44
-
45
43
  }
46
-
47
44
  export default Waiting;
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  /**
4
3
  * WordPress dependencies.
5
4
  */
@@ -8,34 +7,35 @@ import { __ as alias__ } from '@wordpress/i18n';
8
7
  const __ = alias__;
9
8
  import { closeSmall, desktop, mobile, tablet } from '@wordpress/icons';
10
9
  import { Button, ButtonGroup } from '@wordpress/components';
10
+
11
11
  /**
12
12
  * Internal dependencies.
13
13
  */
14
-
15
14
  import { Waiting } from '../';
16
15
  import './style.scss';
16
+
17
17
  /**
18
18
  * External dependencies.
19
19
  */
20
-
21
20
  import classnames from 'classnames';
22
21
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
23
22
  import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
24
23
  const PORTAL_PARENT_ID = 'newspack-components-web-preview-wrapper';
24
+
25
25
  /**
26
26
  * Web Preview. A component to preview a website in an iframe, with device sizing options.
27
27
  */
28
-
29
28
  class WebPreview extends Component {
30
29
  constructor(props) {
31
30
  super(props);
32
-
33
31
  _defineProperty(this, "state", {
34
32
  device: 'desktop',
35
33
  loaded: false,
36
34
  isPreviewVisible: false
37
35
  });
38
-
36
+ /**
37
+ * Create JSX for the modal
38
+ */
39
39
  _defineProperty(this, "getWebPreviewModal", () => {
40
40
  const {
41
41
  beforeLoad = () => {},
@@ -47,11 +47,9 @@ class WebPreview extends Component {
47
47
  loaded,
48
48
  isPreviewVisible
49
49
  } = this.state;
50
-
51
50
  if (!this.modalDOMElement || !isPreviewVisible) {
52
51
  return null;
53
52
  }
54
-
55
53
  const classes = classnames('newspack-web-preview', device, loaded && 'is-loaded');
56
54
  beforeLoad();
57
55
  return createPortal(_jsx("div", {
@@ -122,35 +120,30 @@ class WebPreview extends Component {
122
120
  })
123
121
  }), this.modalDOMElement);
124
122
  });
125
-
126
123
  _defineProperty(this, "showPreview", () => {
127
124
  this.setState({
128
125
  isPreviewVisible: true
129
126
  });
130
127
  });
131
-
132
128
  this.iframeRef = createRef();
133
129
  }
130
+
134
131
  /**
135
132
  * If a div with id PORTAL_PARENT_ID exists, assign it to class field.
136
133
  * If not, create it and append to the body.
137
134
  */
138
-
139
-
140
135
  componentDidMount() {
141
136
  const existingDOMElement = document.getElementById(PORTAL_PARENT_ID);
142
137
  this.modalDOMElement = existingDOMElement || document.createElement('div');
143
-
144
138
  if (!existingDOMElement) {
145
139
  this.modalDOMElement.id = PORTAL_PARENT_ID;
146
140
  document.body.appendChild(this.modalDOMElement);
147
141
  }
148
142
  }
143
+
149
144
  /**
150
145
  * Add or remove applicable body classes
151
146
  */
152
-
153
-
154
147
  componentDidUpdate() {
155
148
  if (this.state.isPreviewVisible === true) {
156
149
  document.body.classList.add('newspack-web-preview--open');
@@ -158,11 +151,6 @@ class WebPreview extends Component {
158
151
  document.body.classList.remove('newspack-web-preview--open');
159
152
  }
160
153
  }
161
- /**
162
- * Create JSX for the modal
163
- */
164
-
165
-
166
154
  /**
167
155
  * Render.
168
156
  */
@@ -170,7 +158,6 @@ class WebPreview extends Component {
170
158
  const {
171
159
  label,
172
160
  variant,
173
-
174
161
  /**
175
162
  * Inversion of control - let the caller render
176
163
  * the button that will trigger the modal
@@ -188,11 +175,9 @@ class WebPreview extends Component {
188
175
  }), this.getWebPreviewModal()]
189
176
  });
190
177
  }
191
-
192
178
  }
193
-
194
179
  WebPreview.defaultProps = {
195
- url: '//newspack.pub',
180
+ url: '//newspack.com',
196
181
  label: __('Preview', 'newspack'),
197
182
  onLoad: () => {}
198
183
  };
@@ -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