newspack-components 4.2.0 → 4.4.0-alpha.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 (316) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/DEVELOPMENT.md +868 -0
  3. package/colors/colors.module.scss +52 -2
  4. package/copy-styles.js +3 -2
  5. package/dist/cjs/accordion/index.js +17 -12
  6. package/dist/cjs/action-card/index.js +186 -140
  7. package/dist/cjs/action-card/style.scss +25 -2
  8. package/dist/cjs/autocomplete-tokenfield/index.js +254 -234
  9. package/dist/cjs/autocomplete-with-latest-posts/index.js +351 -0
  10. package/dist/cjs/autocomplete-with-latest-posts/style.scss +150 -0
  11. package/dist/cjs/autocomplete-with-suggestions/index.js +229 -126
  12. package/dist/cjs/badge/index.js +32 -0
  13. package/dist/cjs/badge/style.scss +36 -0
  14. package/dist/cjs/box-contrast/index.js +19 -15
  15. package/dist/cjs/button/index.js +41 -24
  16. package/dist/cjs/button-props/button-props.js +5 -5
  17. package/dist/cjs/button-props/index.js +2 -2
  18. package/dist/cjs/card/core-card.js +199 -0
  19. package/dist/cjs/card/index.js +75 -35
  20. package/dist/cjs/card/style-core.scss +295 -0
  21. package/dist/cjs/card/style.scss +4 -4
  22. package/dist/cjs/card-feature/index.js +141 -0
  23. package/dist/cjs/card-feature/style.scss +75 -0
  24. package/dist/cjs/card-form/index.js +144 -0
  25. package/dist/cjs/card-form/style.scss +20 -0
  26. package/dist/cjs/card-settings-group/index.js +69 -0
  27. package/dist/cjs/card-settings-group/style.scss +33 -0
  28. package/dist/cjs/card-sortable-list/index.js +426 -0
  29. package/dist/cjs/card-sortable-list/style.scss +48 -0
  30. package/dist/cjs/category-autocomplete/index.js +175 -155
  31. package/dist/cjs/color-picker/index.js +41 -23
  32. package/dist/cjs/color-picker/index.test.js +82 -0
  33. package/dist/cjs/color-picker/style.scss +11 -13
  34. package/dist/cjs/confirm-dialog/index.js +123 -0
  35. package/dist/cjs/consts.js +1 -1
  36. package/dist/cjs/custom-select-control/index.js +39 -28
  37. package/dist/cjs/dataviews/index.js +38 -0
  38. package/dist/cjs/dataviews/style.scss +9 -0
  39. package/dist/cjs/divider/index.js +47 -0
  40. package/dist/cjs/divider/style.scss +51 -0
  41. package/dist/cjs/footer/index.js +36 -30
  42. package/dist/cjs/form-token-field/index.js +51 -40
  43. package/dist/cjs/form-token-field/style.scss +0 -5
  44. package/dist/cjs/global-notices/index.js +5 -5
  45. package/dist/cjs/grid/index.js +25 -18
  46. package/dist/cjs/grid/style.scss +67 -8
  47. package/dist/cjs/handoff/index.js +204 -156
  48. package/dist/cjs/handoff-message/index.js +12 -7
  49. package/dist/cjs/hooks/index.js +10 -8
  50. package/dist/cjs/hooks/use-confirm-dialog.js +79 -0
  51. package/dist/cjs/hooks/use-unsaved-changes-dialog.js +144 -0
  52. package/dist/cjs/hooks/useObjectState.js +21 -12
  53. package/dist/cjs/hooks/useObjectState.test.js +55 -33
  54. package/dist/cjs/hooks/useOnClickOutside.js +6 -6
  55. package/dist/cjs/hooks/usePrompt.js +10 -13
  56. package/dist/cjs/image-upload/index.js +114 -123
  57. package/dist/cjs/image-upload/index.test.js +11 -13
  58. package/dist/cjs/image-upload/style.scss +12 -40
  59. package/dist/cjs/index.js +166 -92
  60. package/dist/cjs/info-button/index.js +43 -32
  61. package/dist/cjs/integration-icons/active-campaign.js +22 -0
  62. package/dist/cjs/integration-icons/constant-contact.js +28 -0
  63. package/dist/cjs/integration-icons/fundraise-up.js +25 -0
  64. package/dist/cjs/integration-icons/index.js +48 -0
  65. package/dist/cjs/integration-icons/mailchimp.js +19 -0
  66. package/dist/cjs/integration-icons/salesforce.js +17 -0
  67. package/dist/cjs/integration-icons/wisepops.js +20 -0
  68. package/dist/cjs/modal/index.js +29 -19
  69. package/dist/cjs/modal/style.scss +47 -13
  70. package/dist/cjs/newspack-icon/index.js +45 -38
  71. package/dist/cjs/newspack-icon/style.scss +5 -3
  72. package/dist/cjs/notice/index.js +64 -55
  73. package/dist/cjs/plugin-installer/index.js +259 -253
  74. package/dist/cjs/plugin-settings/SettingsSection.js +66 -60
  75. package/dist/cjs/plugin-settings/index.js +217 -200
  76. package/dist/cjs/plugin-toggle/index.js +192 -199
  77. package/dist/cjs/popover/index.js +41 -28
  78. package/dist/cjs/position-control/index.js +24 -23
  79. package/dist/cjs/progress-bar/index.js +71 -59
  80. package/dist/cjs/progress-bar/index.test.js +62 -68
  81. package/dist/cjs/proxied-imports/router.js +3 -3
  82. package/dist/cjs/radio-control/index.js +40 -27
  83. package/dist/cjs/section-header/index.js +143 -39
  84. package/dist/cjs/section-header/style.scss +129 -4
  85. package/dist/cjs/select-control/ButtonGroupControl.js +26 -21
  86. package/dist/cjs/select-control/GroupedSelectControl.js +41 -35
  87. package/dist/cjs/select-control/index.js +52 -40
  88. package/dist/cjs/settings/MinMaxSetting.js +30 -20
  89. package/dist/cjs/settings/SettingsCard.js +20 -17
  90. package/dist/cjs/settings/SettingsSection.js +22 -21
  91. package/dist/cjs/settings/index.js +5 -5
  92. package/dist/cjs/sortable-newsletter-list-control/index.js +78 -57
  93. package/dist/cjs/steps-list/index.js +44 -34
  94. package/dist/cjs/steps-list-item/index.js +47 -39
  95. package/dist/cjs/style-card/index.js +70 -63
  96. package/dist/cjs/style.scss +2 -0
  97. package/dist/cjs/tabbed-navigation/index.js +38 -36
  98. package/dist/cjs/text-control/index.js +27 -25
  99. package/dist/cjs/utils/color.js +4 -4
  100. package/dist/cjs/utils/editor-toolbar-back-button.js +61 -0
  101. package/dist/cjs/utils/index.js +31 -19
  102. package/dist/cjs/utils/style.scss +8 -0
  103. package/dist/cjs/waiting/index.js +48 -35
  104. package/dist/cjs/waiting/style.scss +4 -0
  105. package/dist/cjs/web-preview/index.js +219 -154
  106. package/dist/cjs/web-preview/style.scss +20 -53
  107. package/dist/cjs/with-wizard/index.js +362 -364
  108. package/dist/cjs/with-wizard/style.scss +28 -60
  109. package/dist/cjs/with-wizard-screen/index.js +54 -58
  110. package/dist/cjs/with-wizard-screen/style.scss +77 -10
  111. package/dist/cjs/wizard/components/WizardError.js +20 -18
  112. package/dist/cjs/wizard/components/WizardSnackbar.js +73 -0
  113. package/dist/cjs/wizard/components/style.scss +48 -0
  114. package/dist/cjs/wizard/index.js +207 -64
  115. package/dist/cjs/wizard/store/index.js +191 -97
  116. package/dist/cjs/wizard/store/utils.js +13 -8
  117. package/dist/esm/accordion/index.js +14 -9
  118. package/dist/esm/action-card/index.js +178 -124
  119. package/dist/esm/action-card/style.scss +25 -2
  120. package/dist/esm/autocomplete-tokenfield/index.js +248 -222
  121. package/dist/esm/autocomplete-with-latest-posts/index.js +347 -0
  122. package/dist/esm/autocomplete-with-latest-posts/style.scss +150 -0
  123. package/dist/esm/autocomplete-with-suggestions/index.js +226 -119
  124. package/dist/esm/badge/index.js +24 -0
  125. package/dist/esm/badge/style.scss +36 -0
  126. package/dist/esm/box-contrast/index.js +15 -11
  127. package/dist/esm/button/index.js +39 -19
  128. package/dist/esm/button-props/button-props.js +1 -1
  129. package/dist/esm/card/core-card.js +195 -0
  130. package/dist/esm/card/index.js +70 -22
  131. package/dist/esm/card/style-core.scss +295 -0
  132. package/dist/esm/card/style.scss +4 -4
  133. package/dist/esm/card-feature/index.js +131 -0
  134. package/dist/esm/card-feature/style.scss +75 -0
  135. package/dist/esm/card-form/index.js +134 -0
  136. package/dist/esm/card-form/style.scss +20 -0
  137. package/dist/esm/card-settings-group/index.js +61 -0
  138. package/dist/esm/card-settings-group/style.scss +33 -0
  139. package/dist/esm/card-sortable-list/index.js +425 -0
  140. package/dist/esm/card-sortable-list/style.scss +48 -0
  141. package/dist/esm/category-autocomplete/index.js +168 -140
  142. package/dist/esm/color-picker/index.js +39 -21
  143. package/dist/esm/color-picker/index.test.js +78 -0
  144. package/dist/esm/color-picker/style.scss +11 -13
  145. package/dist/esm/confirm-dialog/index.js +116 -0
  146. package/dist/esm/consts.js +1 -1
  147. package/dist/esm/custom-select-control/index.js +34 -15
  148. package/dist/esm/dataviews/index.js +34 -0
  149. package/dist/esm/dataviews/style.scss +9 -0
  150. package/dist/esm/divider/index.js +42 -0
  151. package/dist/esm/divider/style.scss +51 -0
  152. package/dist/esm/footer/index.js +34 -28
  153. package/dist/esm/form-token-field/index.js +46 -27
  154. package/dist/esm/form-token-field/style.scss +0 -5
  155. package/dist/esm/global-notices/index.js +3 -3
  156. package/dist/esm/grid/index.js +23 -13
  157. package/dist/esm/grid/style.scss +67 -8
  158. package/dist/esm/handoff/index.js +199 -143
  159. package/dist/esm/handoff-message/index.js +10 -6
  160. package/dist/esm/hooks/index.js +8 -6
  161. package/dist/esm/hooks/use-confirm-dialog.js +73 -0
  162. package/dist/esm/hooks/use-unsaved-changes-dialog.js +136 -0
  163. package/dist/esm/hooks/useObjectState.js +19 -9
  164. package/dist/esm/hooks/useObjectState.test.js +54 -32
  165. package/dist/esm/hooks/useOnClickOutside.js +4 -4
  166. package/dist/esm/hooks/usePrompt.js +9 -11
  167. package/dist/esm/image-upload/index.js +110 -111
  168. package/dist/esm/image-upload/index.test.js +11 -13
  169. package/dist/esm/image-upload/style.scss +12 -40
  170. package/dist/esm/index.js +13 -1
  171. package/dist/esm/info-button/index.js +38 -19
  172. package/dist/esm/integration-icons/active-campaign.js +16 -0
  173. package/dist/esm/integration-icons/constant-contact.js +22 -0
  174. package/dist/esm/integration-icons/fundraise-up.js +19 -0
  175. package/dist/esm/integration-icons/index.js +6 -0
  176. package/dist/esm/integration-icons/mailchimp.js +13 -0
  177. package/dist/esm/integration-icons/salesforce.js +11 -0
  178. package/dist/esm/integration-icons/wisepops.js +14 -0
  179. package/dist/esm/modal/index.js +27 -13
  180. package/dist/esm/modal/style.scss +47 -13
  181. package/dist/esm/newspack-icon/index.js +40 -25
  182. package/dist/esm/newspack-icon/style.scss +5 -3
  183. package/dist/esm/notice/index.js +59 -42
  184. package/dist/esm/plugin-installer/index.js +255 -243
  185. package/dist/esm/plugin-settings/SettingsSection.js +61 -50
  186. package/dist/esm/plugin-settings/index.js +212 -189
  187. package/dist/esm/plugin-toggle/index.js +187 -190
  188. package/dist/esm/popover/index.js +35 -16
  189. package/dist/esm/position-control/index.js +22 -18
  190. package/dist/esm/progress-bar/index.js +66 -49
  191. package/dist/esm/progress-bar/index.test.js +61 -67
  192. package/dist/esm/radio-control/index.js +34 -15
  193. package/dist/esm/section-header/index.js +140 -38
  194. package/dist/esm/section-header/style.scss +129 -4
  195. package/dist/esm/select-control/ButtonGroupControl.js +23 -18
  196. package/dist/esm/select-control/GroupedSelectControl.js +38 -30
  197. package/dist/esm/select-control/index.js +47 -27
  198. package/dist/esm/settings/MinMaxSetting.js +27 -16
  199. package/dist/esm/settings/SettingsCard.js +18 -13
  200. package/dist/esm/settings/SettingsSection.js +20 -19
  201. package/dist/esm/settings/index.js +3 -3
  202. package/dist/esm/sortable-newsletter-list-control/index.js +74 -53
  203. package/dist/esm/steps-list/index.js +39 -21
  204. package/dist/esm/steps-list-item/index.js +42 -26
  205. package/dist/esm/style-card/index.js +65 -50
  206. package/dist/esm/style.scss +2 -0
  207. package/dist/esm/tabbed-navigation/index.js +35 -33
  208. package/dist/esm/text-control/index.js +25 -19
  209. package/dist/esm/utils/color.js +4 -4
  210. package/dist/esm/utils/editor-toolbar-back-button.js +53 -0
  211. package/dist/esm/utils/index.js +29 -16
  212. package/dist/esm/utils/style.scss +8 -0
  213. package/dist/esm/waiting/index.js +43 -22
  214. package/dist/esm/waiting/style.scss +4 -0
  215. package/dist/esm/web-preview/index.js +218 -147
  216. package/dist/esm/web-preview/style.scss +20 -53
  217. package/dist/esm/with-wizard/index.js +360 -358
  218. package/dist/esm/with-wizard/style.scss +28 -60
  219. package/dist/esm/with-wizard-screen/index.js +48 -46
  220. package/dist/esm/with-wizard-screen/style.scss +77 -10
  221. package/dist/esm/wizard/components/WizardError.js +18 -16
  222. package/dist/esm/wizard/components/WizardSnackbar.js +70 -0
  223. package/dist/esm/wizard/components/style.scss +48 -0
  224. package/dist/esm/wizard/index.js +207 -58
  225. package/dist/esm/wizard/store/index.js +189 -90
  226. package/dist/esm/wizard/store/utils.js +13 -6
  227. package/package.json +30 -17
  228. package/release.config.js +1 -0
  229. package/shared/author-context.js +26 -0
  230. package/shared/hooks/use-coauthors.js +388 -0
  231. package/shared/hooks/use-coauthors.test.js +850 -0
  232. package/shared/hooks/use-custom-byline.js +47 -0
  233. package/shared/hooks/use-custom-byline.test.js +133 -0
  234. package/shared/scss/_mixins.scss +54 -0
  235. package/src/accordion/index.js +8 -7
  236. package/src/action-card/action-card.d.ts +7 -3
  237. package/src/action-card/index.js +39 -12
  238. package/src/action-card/style.scss +25 -2
  239. package/src/autocomplete-tokenfield/index.js +2 -2
  240. package/src/autocomplete-with-latest-posts/index.js +290 -0
  241. package/src/autocomplete-with-latest-posts/style.scss +150 -0
  242. package/src/badge/index.tsx +26 -0
  243. package/src/badge/style.scss +36 -0
  244. package/src/button/index.tsx +3 -2
  245. package/src/card/core-card.js +224 -0
  246. package/src/card/index.js +40 -1
  247. package/src/card/style-core.scss +295 -0
  248. package/src/card/style.scss +4 -4
  249. package/src/card-feature/README.md +188 -0
  250. package/src/card-feature/index.tsx +186 -0
  251. package/src/card-feature/style.scss +75 -0
  252. package/src/card-form/README.md +113 -0
  253. package/src/card-form/index.tsx +128 -0
  254. package/src/card-form/style.scss +20 -0
  255. package/src/card-settings-group/README.md +43 -0
  256. package/src/card-settings-group/index.tsx +78 -0
  257. package/src/card-settings-group/style.scss +33 -0
  258. package/src/card-sortable-list/README.md +51 -0
  259. package/src/card-sortable-list/index.tsx +435 -0
  260. package/src/card-sortable-list/style.scss +48 -0
  261. package/src/color-picker/index.js +15 -8
  262. package/src/color-picker/index.test.js +52 -0
  263. package/src/color-picker/style.scss +11 -13
  264. package/src/confirm-dialog/README.md +128 -0
  265. package/src/confirm-dialog/index.tsx +132 -0
  266. package/src/dataviews/index.tsx +34 -0
  267. package/src/dataviews/style.scss +9 -0
  268. package/src/divider/README.md +25 -0
  269. package/src/divider/index.js +31 -0
  270. package/src/divider/style.scss +51 -0
  271. package/src/form-token-field/style.scss +0 -5
  272. package/src/grid/index.tsx +2 -1
  273. package/src/grid/style.scss +67 -8
  274. package/src/handoff/README.md +93 -0
  275. package/src/handoff/index.js +46 -8
  276. package/src/hooks/index.ts +2 -1
  277. package/src/hooks/use-confirm-dialog.tsx +80 -0
  278. package/src/hooks/use-unsaved-changes-dialog.tsx +140 -0
  279. package/src/image-upload/index.js +10 -15
  280. package/src/image-upload/style.scss +12 -40
  281. package/src/index.js +13 -1
  282. package/src/integration-icons/active-campaign.js +14 -0
  283. package/src/integration-icons/constant-contact.js +22 -0
  284. package/src/integration-icons/fundraise-up.js +18 -0
  285. package/src/integration-icons/index.js +6 -0
  286. package/src/integration-icons/mailchimp.js +10 -0
  287. package/src/integration-icons/salesforce.js +10 -0
  288. package/src/integration-icons/wisepops.js +14 -0
  289. package/src/modal/index.js +12 -3
  290. package/src/modal/style.scss +47 -13
  291. package/src/newspack-icon/style.scss +5 -3
  292. package/src/plugin-installer/index.js +30 -19
  293. package/src/section-header/index.js +105 -14
  294. package/src/section-header/style.scss +129 -4
  295. package/src/select-control/index.js +4 -0
  296. package/src/style.scss +2 -0
  297. package/src/utils/editor-toolbar-back-button.tsx +48 -0
  298. package/src/utils/index.js +6 -0
  299. package/src/utils/style.scss +8 -0
  300. package/src/waiting/index.js +2 -1
  301. package/src/waiting/style.scss +4 -0
  302. package/src/web-preview/index.js +90 -35
  303. package/src/web-preview/style.scss +20 -53
  304. package/src/with-wizard/index.js +1 -1
  305. package/src/with-wizard/style.scss +28 -60
  306. package/src/with-wizard-screen/style.scss +77 -10
  307. package/src/wizard/components/WizardSnackbar.js +58 -0
  308. package/src/wizard/components/style.scss +48 -0
  309. package/src/wizard/index.js +152 -21
  310. package/src/wizard/store/index.js +28 -2
  311. package/dist/cjs/button-card/index.js +0 -72
  312. package/dist/cjs/button-card/style.scss +0 -180
  313. package/dist/esm/button-card/index.js +0 -64
  314. package/dist/esm/button-card/style.scss +0 -180
  315. package/src/button-card/index.js +0 -52
  316. package/src/button-card/style.scss +0 -180
@@ -3,11 +3,21 @@
3
3
  */
4
4
 
5
5
  @use "~@wordpress/base-styles/colors" as wp-colors;
6
+ @use "../../../colors/colors.module" as colors;
6
7
 
7
8
  // Styling for full-page-react Wizards (ignoring admin-header-only wizards).
8
9
  body.newspack-wizard-page:not(.newspack-admin-header) {
9
-
10
- background: white;
10
+ --wp-admin-theme-color: #{colors.$primary-600};
11
+ --wp-admin-theme-color--rgb: #{colors.$primary-600--rgb};
12
+ --wp-admin-theme-color-darker-10: #{colors.$primary-700};
13
+ --wp-admin-theme-color-darker-10--rgb: #{colors.$primary-700--rgb};
14
+ --wp-admin-theme-color-darker-20: #{colors.$primary-800};
15
+ --wp-admin-theme-color-darker-20--rgb: #{colors.$primary-800--rgb};
16
+ --wp-admin-theme-color-lighter-10: #{colors.$primary-000};
17
+ --wp-admin-theme-color-lighter-10--rgb: #{colors.$primary-000--rgb};
18
+ --wp-components-color-accent: #{colors.$primary-600};
19
+
20
+ background: #{wp-colors.$white};
11
21
 
12
22
  // Reset Padding
13
23
  #wpcontent {
@@ -18,6 +28,14 @@ body.newspack-wizard-page:not(.newspack-admin-header) {
18
28
  padding-bottom: 220px;
19
29
  min-height: 100vh;
20
30
 
31
+ @media screen and ( min-width: 600px ) {
32
+ min-height: calc(100vh - 46px);
33
+ }
34
+
35
+ @media screen and ( min-width: 783px ) {
36
+ min-height: calc(100vh - 32px);
37
+ }
38
+
21
39
  // For admin notices directly ">" at top of page above the Wizard header.
22
40
  // PHP code should hide these notices, but just incase add this style.
23
41
  > .notice {
@@ -29,10 +47,14 @@ body.newspack-wizard-page:not(.newspack-admin-header) {
29
47
  padding-bottom: 202px;
30
48
  }
31
49
 
32
- @media screen and ( min-width: 1128px ) {
33
- padding-bottom: 168px;
50
+ @media screen and ( min-width: 1054px ) {
51
+ padding-bottom: 136px;
34
52
  }
35
53
  }
54
+
55
+ .components-popover__content {
56
+ min-width: 192px;
57
+ }
36
58
  }
37
59
 
38
60
  // Styling for wizards that are admin-header-only.
@@ -63,37 +85,6 @@ svg {
63
85
  }
64
86
  }
65
87
 
66
- // Blue Screen
67
- .newspack-wizard__blue {
68
- #wpwrap {
69
- background: var(--wp-admin-theme-color);
70
- }
71
-
72
- .newspack-footer {
73
- background: var(--wp-admin-theme-color);
74
- border-color: var(--wp-admin-theme-color);
75
- justify-content: center;
76
-
77
- &__logo {
78
- background: inherit;
79
- }
80
- }
81
-
82
- #wpfooter {
83
- color: white;
84
-
85
- a {
86
- color: inherit;
87
-
88
- &:active,
89
- &:focus,
90
- &:hover {
91
- opacity: 0.75;
92
- }
93
- }
94
- }
95
- }
96
-
97
88
  // Loading
98
89
  .newspack-wizard__is-loading {
99
90
  background: white;
@@ -134,7 +125,7 @@ svg {
134
125
  0 96px 0 0 wp-colors.$gray-700;
135
126
  height: 24px;
136
127
  margin: 68px auto 0;
137
- max-width: 1040px;
128
+ max-width: 1006px;
138
129
  width: calc(100% - ( 32px * 2 ));
139
130
 
140
131
  @media screen and ( min-width: 744px ) {
@@ -156,29 +147,6 @@ svg {
156
147
  }
157
148
  }
158
149
 
159
- // Blue Screen
160
- .newspack-wizard__blue & {
161
- background: var(--wp-admin-theme-color);
162
-
163
- &::before {
164
- animation: loading-quiet 1.25s ease-in-out infinite;
165
- background: white;
166
- border-radius: 0;
167
- box-shadow: 0;
168
- height: 8px;
169
- left: 0;
170
- margin: 0;
171
- position: absolute;
172
- right: 100%;
173
- top: 0;
174
- width: auto;
175
- }
176
-
177
- &::after {
178
- display: none;
179
- }
180
- }
181
-
182
150
  // Quiet
183
151
  &-quiet {
184
152
  position: relative;
@@ -250,7 +218,7 @@ svg {
250
218
  0 96px 0 0 wp-colors.$gray-700;
251
219
  height: 24px;
252
220
  margin: 0 auto;
253
- max-width: 1040px;
221
+ max-width: 1006px;
254
222
  width: 100%;
255
223
 
256
224
  @media screen and ( min-width: 744px ) {
@@ -4,7 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = withWizardScreen;
7
+ exports["default"] = withWizardScreen;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _i18n = require("@wordpress/i18n");
9
10
  var _icons = require("@wordpress/icons");
10
11
  var _ = require("../");
@@ -12,58 +13,52 @@ var _buttonProps = require("../button-props");
12
13
  require("./style.scss");
13
14
  var _classnames = _interopRequireDefault(require("classnames"));
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
- /**
16
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
16
18
  * WordPress dependencies.
17
- */
18
-
19
- /**
19
+ */ /**
20
20
  * Internal dependencies
21
- */
22
-
23
- /**
21
+ */ /**
24
22
  * External dependencies
25
- */
26
-
27
- /**
23
+ */ /**
28
24
  * Higher-Order Component to provide plugin management and error handling to Newspack Wizards.
29
- */function withWizardScreen(WrappedComponent, {
30
- hidePrimaryButton
31
- } = {}) {
32
- const WrappedWithWizardScreen = props => {
33
- const {
34
- className,
35
- buttonText,
36
- buttonAction,
37
- buttonDisabled,
38
- headerText,
39
- subHeaderText,
40
- tabbedNavigation,
41
- secondaryButtonText,
42
- secondaryButtonAction,
43
- renderAboveContent,
44
- disableUpcomingInTabbedNavigation
45
- } = props;
46
- const retrievedButtonProps = (0, _buttonProps.buttonProps)(buttonAction);
47
- const retrievedSecondaryButtonProps = (0, _buttonProps.buttonProps)(secondaryButtonAction);
48
- const SecondaryCTAComponent = retrievedSecondaryButtonProps.plugin ? _.Handoff : _.Button;
49
- const shouldRenderPrimaryButton = buttonText && buttonAction;
50
- const shouldRenderSecondaryButton = secondaryButtonText && secondaryButtonAction;
51
- const renderPrimaryButton = (overridingProps = {}) => retrievedButtonProps.plugin ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Handoff, {
52
- isPrimary: true,
53
- ...retrievedButtonProps,
54
- ...overridingProps,
55
- children: buttonText
56
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Button, {
57
- isPrimary: !buttonDisabled,
58
- isSecondary: !!buttonDisabled,
59
- disabled: buttonDisabled
60
- // Allow overridingProps to set children.
61
- // eslint-disable-next-line react/no-children-prop
62
- ,
63
- children: buttonText,
64
- ...retrievedButtonProps,
65
- ...overridingProps
66
- });
25
+ */
26
+ function withWizardScreen(WrappedComponent) {
27
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
28
+ hidePrimaryButton = _ref.hidePrimaryButton;
29
+ var WrappedWithWizardScreen = function WrappedWithWizardScreen(props) {
30
+ var className = props.className,
31
+ buttonText = props.buttonText,
32
+ buttonAction = props.buttonAction,
33
+ buttonDisabled = props.buttonDisabled,
34
+ headerText = props.headerText,
35
+ subHeaderText = props.subHeaderText,
36
+ tabbedNavigation = props.tabbedNavigation,
37
+ secondaryButtonText = props.secondaryButtonText,
38
+ secondaryButtonAction = props.secondaryButtonAction,
39
+ renderAboveContent = props.renderAboveContent,
40
+ disableUpcomingInTabbedNavigation = props.disableUpcomingInTabbedNavigation;
41
+ var retrievedButtonProps = (0, _buttonProps.buttonProps)(buttonAction);
42
+ var retrievedSecondaryButtonProps = (0, _buttonProps.buttonProps)(secondaryButtonAction);
43
+ var SecondaryCTAComponent = retrievedSecondaryButtonProps.plugin ? _.Handoff : _.Button;
44
+ var shouldRenderPrimaryButton = buttonText && buttonAction;
45
+ var shouldRenderSecondaryButton = secondaryButtonText && secondaryButtonAction;
46
+ var renderPrimaryButton = function renderPrimaryButton() {
47
+ var overridingProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
48
+ return retrievedButtonProps.plugin ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Handoff, _objectSpread(_objectSpread(_objectSpread({
49
+ isPrimary: true
50
+ }, retrievedButtonProps), overridingProps), {}, {
51
+ children: buttonText
52
+ })) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Button, _objectSpread(_objectSpread({
53
+ isPrimary: !buttonDisabled,
54
+ isSecondary: !!buttonDisabled,
55
+ disabled: buttonDisabled
56
+ // Allow overridingProps to set children.
57
+ // eslint-disable-next-line react/no-children-prop
58
+ ,
59
+ children: buttonText
60
+ }, retrievedButtonProps), overridingProps));
61
+ };
67
62
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
68
63
  children: [newspack_aux_data.is_debug_mode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Notice, {
69
64
  debugMode: true
@@ -94,19 +89,20 @@ var _jsxRuntime = require("react/jsx-runtime");
94
89
  })
95
90
  }), tabbedNavigation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_.TabbedNavigation, {
96
91
  disableUpcoming: disableUpcomingInTabbedNavigation,
97
- items: tabbedNavigation.filter(item => !item.isHiddenInNav)
92
+ items: tabbedNavigation.filter(function (item) {
93
+ return !item.isHiddenInNav;
94
+ })
98
95
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.HandoffMessage, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
99
- className: (0, _classnames.default)('newspack-wizard newspack-wizard__content', className),
100
- children: [typeof renderAboveContent === 'function' ? renderAboveContent() : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
101
- ...props,
96
+ className: (0, _classnames["default"])('newspack-wizard newspack-wizard__content', className),
97
+ children: [typeof renderAboveContent === 'function' ? renderAboveContent() : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, _objectSpread(_objectSpread({}, props), {}, {
102
98
  renderPrimaryButton: renderPrimaryButton
103
- }), (shouldRenderPrimaryButton || shouldRenderSecondaryButton) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
99
+ })), (shouldRenderPrimaryButton || shouldRenderSecondaryButton) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
104
100
  className: "newspack-buttons-card",
105
- children: [shouldRenderPrimaryButton && !hidePrimaryButton && renderPrimaryButton(), shouldRenderSecondaryButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(SecondaryCTAComponent, {
106
- isSecondary: true,
107
- ...retrievedSecondaryButtonProps,
101
+ children: [shouldRenderPrimaryButton && !hidePrimaryButton && renderPrimaryButton(), shouldRenderSecondaryButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(SecondaryCTAComponent, _objectSpread(_objectSpread({
102
+ isSecondary: true
103
+ }, retrievedSecondaryButtonProps), {}, {
108
104
  children: secondaryButtonText
109
- })]
105
+ }))]
110
106
  })]
111
107
  })]
112
108
  });
@@ -13,6 +13,8 @@
13
13
  --wp-admin-theme-color-darker-10--rgb: #{colors.$primary-700--rgb};
14
14
  --wp-admin-theme-color-darker-20: #{colors.$primary-800};
15
15
  --wp-admin-theme-color-darker-20--rgb: #{colors.$primary-800--rgb};
16
+ --wp-admin-theme-color-lighter-10: #{colors.$primary-000};
17
+ --wp-admin-theme-color-lighter-10--rgb: #{colors.$primary-000--rgb};
16
18
 
17
19
  color: wp-colors.$gray-900;
18
20
 
@@ -44,12 +46,59 @@
44
46
  }
45
47
 
46
48
  &__header {
49
+ align-items: center;
47
50
  background: white;
51
+ border-bottom: 1px solid wp-colors.$gray-300;
52
+ display: flex;
53
+ .newspack-wizard__fixed-header & {
54
+ position: sticky;
55
+ top: 0;
56
+ width: 100%;
57
+ z-index: 1000;
58
+ .admin-bar & {
59
+ @media only screen and ( min-width: 601px ) {
60
+ top: 46px;
61
+ }
62
+ @media only screen and ( min-width: 782px ) {
63
+ top: 32px;
64
+ }
65
+ }
66
+ }
67
+ &__inner {
68
+ flex: 1 1 100%;
69
+ }
70
+ &__actions {
71
+ align-items: center;
72
+ display: flex;
73
+ gap: 8px;
74
+ justify-content: flex-end;
75
+ padding: 0 24px 0 0;
76
+ > .newspack-wizard__header__actions__main {
77
+ display: none;
78
+ }
79
+ @media only screen and ( min-width: 782px ) {
80
+ flex: 1 1 auto;
81
+ > .newspack-wizard__header__actions__main {
82
+ display: flex;
83
+ }
84
+ &__more {
85
+ &--primary-only,
86
+ .newspack-wizard__header__actions__more__main {
87
+ display: none;
88
+ }
89
+ }
90
+ }
91
+ }
48
92
  }
49
93
 
94
+ &__main {
95
+ overflow-x: hidden;
96
+ padding-bottom: 1px; /* Prevents borders from being cut off */
97
+ }
98
+
99
+
50
100
  &__title {
51
101
  align-items: center;
52
- border-bottom: 1px solid wp-colors.$gray-300;
53
102
  display: flex;
54
103
 
55
104
  h2 {
@@ -62,7 +111,7 @@
62
111
  display: flex;
63
112
  padding: 0 24px;
64
113
 
65
- span {
114
+ > span {
66
115
  color: wp-colors.$gray-700;
67
116
  display: none;
68
117
  margin-left: 8px;
@@ -119,14 +168,22 @@
119
168
  }
120
169
  }
121
170
 
171
+ &__section-header {
172
+ margin: 0 auto 32px;
173
+ max-width: calc(calc(var(--newspack-wizard-section-space) * 2) + var(--newspack-wizard-section-width));
174
+ &:not(.newspack-section-header--has-primary-action) {
175
+ @media (min-width: 782px) {
176
+ .newspack-section-header__title-container + p {
177
+ max-width: 50%;
178
+ }
179
+ }
180
+ }
181
+ }
182
+
122
183
  &__content {
123
184
  margin: 0 auto;
124
- max-width: 1208px;
125
- padding: 0 16px;
126
-
127
- @media screen and ( min-width: 744px ) {
128
- padding: 40px 84px;
129
- }
185
+ max-width: calc(calc(var(--newspack-wizard-section-space) * 2) + var(--newspack-wizard-section-width));
186
+ padding: calc(var(--newspack-wizard-section-space) * 2) var(--newspack-wizard-section-space) 0;
130
187
 
131
188
  // Typography
132
189
 
@@ -141,16 +198,26 @@
141
198
 
142
199
  // Thematic Break
143
200
 
144
- hr {
201
+ hr:not(.newspack-divider) {
145
202
  background: wp-colors.$gray-300;
146
203
  border: 0;
147
204
  height: 1px;
148
- margin: 48px 0;
205
+ margin: 32px 0;
149
206
 
150
207
  @media screen and ( min-width: 744px ) {
151
208
  margin: 64px 0;
152
209
  }
153
210
  }
211
+ &:not(.newspack-wizard__content--full-width) {
212
+ .newspack-dataviews {
213
+ margin-left: -24px;
214
+ margin-right: -24px;
215
+ @media (min-width: 380px) {
216
+ margin-left: -48px;
217
+ margin-right: -48px;
218
+ }
219
+ }
220
+ }
154
221
  }
155
222
 
156
223
  &__above-header {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports["default"] = void 0;
7
7
  var _i18n = require("@wordpress/i18n");
8
8
  var _data = require("@wordpress/data");
9
9
  var _ = require("../..");
@@ -17,36 +17,38 @@ var _jsxRuntime = require("react/jsx-runtime");
17
17
  * Internal dependencies.
18
18
  */
19
19
 
20
- const parseError = ({
21
- data,
22
- message,
23
- code
24
- }) => {
25
- let level = 'fatal';
20
+ var parseError = function parseError(_ref) {
21
+ var data = _ref.data,
22
+ message = _ref.message,
23
+ code = _ref.code;
24
+ var level = 'fatal';
26
25
  if (!!data && 'level' in data) {
27
26
  level = data.level;
28
27
  } else if ('rest_invalid_param' === code) {
29
28
  level = 'notice';
30
29
  }
31
30
  return {
32
- message,
33
- level
31
+ message: message,
32
+ level: level
34
33
  };
35
34
  };
36
- const WizardError = () => {
37
- const error = (0, _data.useSelect)(select => select(_store.WIZARD_STORE_NAMESPACE).getError());
35
+ var WizardError = function WizardError() {
36
+ var error = (0, _data.useSelect)(function (select) {
37
+ return select(_store.WIZARD_STORE_NAMESPACE).getError();
38
+ });
38
39
  if (!error) {
39
40
  return null;
40
41
  }
41
- const {
42
- level,
43
- message
44
- } = parseError(error);
42
+ var _parseError = parseError(error),
43
+ level = _parseError.level,
44
+ message = _parseError.message;
45
45
  if ('fatal' === level) {
46
- const fallbackURL = typeof newspack_urls !== 'undefined' && newspack_urls.dashboard;
46
+ var fallbackURL = typeof newspack_urls !== 'undefined' && newspack_urls.dashboard;
47
47
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_.Modal, {
48
48
  title: (0, _i18n.__)('Unrecoverable error'),
49
- onRequestClose: fallbackURL ? () => window.location = fallbackURL : undefined,
49
+ onRequestClose: fallbackURL ? function () {
50
+ return window.location = fallbackURL;
51
+ } : undefined,
50
52
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_.Notice, {
51
53
  noticeText: message,
52
54
  isError: true,
@@ -70,4 +72,4 @@ const WizardError = () => {
70
72
  rawHTML: true
71
73
  });
72
74
  };
73
- var _default = exports.default = WizardError;
75
+ var _default = exports["default"] = WizardError;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _components = require("@wordpress/components");
11
+ var _data = require("@wordpress/data");
12
+ var _store = require("../store");
13
+ require("./style.scss");
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _excluded = ["children", "position", "type", "actions"];
17
+ /**
18
+ * Snackbar.
19
+ */
20
+ /**
21
+ * WordPress dependencies.
22
+ */
23
+ /**
24
+ * Internal dependencies.
25
+ */
26
+ /**
27
+ * External dependencies.
28
+ */
29
+ /**
30
+ * WizardSnackbar component.
31
+ *
32
+ * @param {Object} props - The component props.
33
+ * @param {Object[]} props.actions - The actions to display in the snackbar.
34
+ * @param {JSX.Element} props.children - The component children.
35
+ * @param {Object} props.props - The component props. See: https://wordpress.github.io/gutenberg/?path=/docs/components-snackbar--docs
36
+ * @param {string} props.position - The snackbar position.
37
+ * @param {string} props.type - The snackbar type: 'info', 'success', 'warning', or 'error'.
38
+ * @return {JSX.Element} The component.
39
+ */
40
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
42
+ var WizardSnackbar = function WizardSnackbar(_ref) {
43
+ var children = _ref.children,
44
+ _ref$position = _ref.position,
45
+ position = _ref$position === void 0 ? 'bottom-left' : _ref$position,
46
+ _ref$type = _ref.type,
47
+ type = _ref$type === void 0 ? 'info' : _ref$type,
48
+ _ref$actions = _ref.actions,
49
+ actions = _ref$actions === void 0 ? [] : _ref$actions,
50
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
51
+ var className = (0, _classnames["default"])('newspack-wizard__snackbar', props.className, "newspack-wizard__snackbar--".concat(position), "newspack-wizard__snackbar--".concat(type));
52
+ var _useDispatch = (0, _data.useDispatch)(_store.WIZARD_STORE_NAMESPACE),
53
+ removeNotice = _useDispatch.removeNotice,
54
+ resetNotices = _useDispatch.resetNotices;
55
+ var onRemove = function onRemove() {
56
+ if (props.onRemove) {
57
+ props.onRemove();
58
+ }
59
+ if (props.id) {
60
+ removeNotice(props.id);
61
+ } else {
62
+ resetNotices();
63
+ }
64
+ };
65
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Snackbar, _objectSpread(_objectSpread({
66
+ className: className
67
+ }, props), {}, {
68
+ onRemove: onRemove,
69
+ actions: actions,
70
+ children: children
71
+ }));
72
+ };
73
+ var _default = exports["default"] = WizardSnackbar;
@@ -0,0 +1,48 @@
1
+ .newspack-wizard {
2
+ &__snackbar {
3
+ border-bottom: 2px solid transparent;
4
+ bottom: 16px;
5
+ left: 16px;
6
+ max-width: calc(100vw - 32px);
7
+ position: fixed;
8
+ z-index: 99999;
9
+ &--success {
10
+ border-color: var(--newspack-ui-color-success-60);
11
+ }
12
+ &--error {
13
+ border-color: var(--newspack-ui-color-error-60);
14
+ }
15
+ &--warning {
16
+ border-color: var(--newspack-ui-color-warning-40);
17
+ }
18
+ @media screen and ( min-width: 783px ) {
19
+ left: calc(36px + 16px); /* 36px for admin menu bar */
20
+ }
21
+ @media screen and ( min-width: 960px ) {
22
+ left: calc(160px + 16px); /* 160px for admin menu bar */
23
+ }
24
+ &.newspack-wizard__snackbar--bottom-right,
25
+ &.newspack-wizard__snackbar--top-right {
26
+ left: auto;
27
+ right: calc(16px);
28
+ }
29
+ &.newspack-wizard__snackbar--top-left,
30
+ &.newspack-wizard__snackbar--top-right {
31
+ bottom: auto;
32
+ top: calc(16px + 46px); /* 46px for admin bar */
33
+ @media screen and ( min-width: 783px ) {
34
+ top: calc(16px + 32px); /* 32px for admin bar */
35
+ }
36
+ }
37
+ a,
38
+ .components-button.is-link {
39
+ color: var(--newspack-ui-color-neutral-0);
40
+ cursor: pointer;
41
+ margin-left: 16px;
42
+ &:hover,
43
+ &:focus {
44
+ color: var(--newspack-ui-color-neutral-10);
45
+ }
46
+ }
47
+ }
48
+ }