newspack-components 4.2.0 → 4.4.0-epic-editor-refactor.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 (315) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/DEVELOPMENT.md +868 -0
  3. package/copy-styles.js +3 -2
  4. package/dist/cjs/accordion/index.js +17 -12
  5. package/dist/cjs/action-card/index.js +186 -140
  6. package/dist/cjs/action-card/style.scss +25 -2
  7. package/dist/cjs/autocomplete-tokenfield/index.js +254 -234
  8. package/dist/cjs/autocomplete-with-latest-posts/index.js +351 -0
  9. package/dist/cjs/autocomplete-with-latest-posts/style.scss +150 -0
  10. package/dist/cjs/autocomplete-with-suggestions/index.js +229 -126
  11. package/dist/cjs/badge/index.js +32 -0
  12. package/dist/cjs/badge/style.scss +36 -0
  13. package/dist/cjs/box-contrast/index.js +19 -15
  14. package/dist/cjs/button/index.js +41 -24
  15. package/dist/cjs/button-props/button-props.js +5 -5
  16. package/dist/cjs/button-props/index.js +2 -2
  17. package/dist/cjs/card/core-card.js +199 -0
  18. package/dist/cjs/card/index.js +75 -35
  19. package/dist/cjs/card/style-core.scss +295 -0
  20. package/dist/cjs/card/style.scss +4 -4
  21. package/dist/cjs/card-feature/index.js +141 -0
  22. package/dist/cjs/card-feature/style.scss +75 -0
  23. package/dist/cjs/card-form/index.js +144 -0
  24. package/dist/cjs/card-form/style.scss +20 -0
  25. package/dist/cjs/card-settings-group/index.js +69 -0
  26. package/dist/cjs/card-settings-group/style.scss +33 -0
  27. package/dist/cjs/card-sortable-list/index.js +426 -0
  28. package/dist/cjs/card-sortable-list/style.scss +48 -0
  29. package/dist/cjs/category-autocomplete/index.js +175 -155
  30. package/dist/cjs/color-picker/index.js +41 -23
  31. package/dist/cjs/color-picker/index.test.js +82 -0
  32. package/dist/cjs/color-picker/style.scss +11 -13
  33. package/dist/cjs/confirm-dialog/index.js +123 -0
  34. package/dist/cjs/consts.js +1 -1
  35. package/dist/cjs/custom-select-control/index.js +39 -28
  36. package/dist/cjs/dataviews/index.js +38 -0
  37. package/dist/cjs/dataviews/style.scss +9 -0
  38. package/dist/cjs/divider/index.js +47 -0
  39. package/dist/cjs/divider/style.scss +51 -0
  40. package/dist/cjs/footer/index.js +36 -30
  41. package/dist/cjs/form-token-field/index.js +51 -40
  42. package/dist/cjs/form-token-field/style.scss +0 -5
  43. package/dist/cjs/global-notices/index.js +5 -5
  44. package/dist/cjs/grid/index.js +25 -18
  45. package/dist/cjs/grid/style.scss +67 -8
  46. package/dist/cjs/handoff/index.js +204 -156
  47. package/dist/cjs/handoff-message/index.js +12 -7
  48. package/dist/cjs/hooks/index.js +10 -8
  49. package/dist/cjs/hooks/use-confirm-dialog.js +79 -0
  50. package/dist/cjs/hooks/use-unsaved-changes-dialog.js +144 -0
  51. package/dist/cjs/hooks/useObjectState.js +21 -12
  52. package/dist/cjs/hooks/useObjectState.test.js +55 -33
  53. package/dist/cjs/hooks/useOnClickOutside.js +6 -6
  54. package/dist/cjs/hooks/usePrompt.js +10 -13
  55. package/dist/cjs/image-upload/index.js +114 -123
  56. package/dist/cjs/image-upload/index.test.js +11 -13
  57. package/dist/cjs/image-upload/style.scss +12 -40
  58. package/dist/cjs/index.js +166 -92
  59. package/dist/cjs/info-button/index.js +43 -32
  60. package/dist/cjs/integration-icons/active-campaign.js +22 -0
  61. package/dist/cjs/integration-icons/constant-contact.js +28 -0
  62. package/dist/cjs/integration-icons/fundraise-up.js +25 -0
  63. package/dist/cjs/integration-icons/index.js +48 -0
  64. package/dist/cjs/integration-icons/mailchimp.js +19 -0
  65. package/dist/cjs/integration-icons/salesforce.js +17 -0
  66. package/dist/cjs/integration-icons/wisepops.js +20 -0
  67. package/dist/cjs/modal/index.js +29 -19
  68. package/dist/cjs/modal/style.scss +47 -13
  69. package/dist/cjs/newspack-icon/index.js +45 -38
  70. package/dist/cjs/newspack-icon/style.scss +5 -3
  71. package/dist/cjs/notice/index.js +64 -55
  72. package/dist/cjs/plugin-installer/index.js +259 -253
  73. package/dist/cjs/plugin-settings/SettingsSection.js +66 -60
  74. package/dist/cjs/plugin-settings/index.js +217 -200
  75. package/dist/cjs/plugin-toggle/index.js +192 -199
  76. package/dist/cjs/popover/index.js +41 -28
  77. package/dist/cjs/position-control/index.js +24 -23
  78. package/dist/cjs/progress-bar/index.js +71 -59
  79. package/dist/cjs/progress-bar/index.test.js +62 -68
  80. package/dist/cjs/proxied-imports/router.js +3 -3
  81. package/dist/cjs/radio-control/index.js +40 -27
  82. package/dist/cjs/section-header/index.js +143 -39
  83. package/dist/cjs/section-header/style.scss +129 -4
  84. package/dist/cjs/select-control/ButtonGroupControl.js +26 -21
  85. package/dist/cjs/select-control/GroupedSelectControl.js +41 -35
  86. package/dist/cjs/select-control/index.js +52 -40
  87. package/dist/cjs/settings/MinMaxSetting.js +30 -20
  88. package/dist/cjs/settings/SettingsCard.js +20 -17
  89. package/dist/cjs/settings/SettingsSection.js +22 -21
  90. package/dist/cjs/settings/index.js +5 -5
  91. package/dist/cjs/sortable-newsletter-list-control/index.js +78 -57
  92. package/dist/cjs/steps-list/index.js +44 -34
  93. package/dist/cjs/steps-list-item/index.js +47 -39
  94. package/dist/cjs/style-card/index.js +70 -63
  95. package/dist/cjs/style.scss +2 -0
  96. package/dist/cjs/tabbed-navigation/index.js +38 -36
  97. package/dist/cjs/text-control/index.js +27 -25
  98. package/dist/cjs/utils/color.js +4 -4
  99. package/dist/cjs/utils/editor-toolbar-back-button.js +61 -0
  100. package/dist/cjs/utils/index.js +31 -19
  101. package/dist/cjs/utils/style.scss +8 -0
  102. package/dist/cjs/waiting/index.js +48 -35
  103. package/dist/cjs/waiting/style.scss +4 -0
  104. package/dist/cjs/web-preview/index.js +219 -154
  105. package/dist/cjs/web-preview/style.scss +20 -53
  106. package/dist/cjs/with-wizard/index.js +362 -364
  107. package/dist/cjs/with-wizard/style.scss +28 -60
  108. package/dist/cjs/with-wizard-screen/index.js +54 -58
  109. package/dist/cjs/with-wizard-screen/style.scss +77 -10
  110. package/dist/cjs/wizard/components/WizardError.js +20 -18
  111. package/dist/cjs/wizard/components/WizardSnackbar.js +73 -0
  112. package/dist/cjs/wizard/components/style.scss +48 -0
  113. package/dist/cjs/wizard/index.js +207 -64
  114. package/dist/cjs/wizard/store/index.js +191 -97
  115. package/dist/cjs/wizard/store/utils.js +13 -8
  116. package/dist/esm/accordion/index.js +14 -9
  117. package/dist/esm/action-card/index.js +178 -124
  118. package/dist/esm/action-card/style.scss +25 -2
  119. package/dist/esm/autocomplete-tokenfield/index.js +248 -222
  120. package/dist/esm/autocomplete-with-latest-posts/index.js +347 -0
  121. package/dist/esm/autocomplete-with-latest-posts/style.scss +150 -0
  122. package/dist/esm/autocomplete-with-suggestions/index.js +226 -119
  123. package/dist/esm/badge/index.js +24 -0
  124. package/dist/esm/badge/style.scss +36 -0
  125. package/dist/esm/box-contrast/index.js +15 -11
  126. package/dist/esm/button/index.js +39 -19
  127. package/dist/esm/button-props/button-props.js +1 -1
  128. package/dist/esm/card/core-card.js +195 -0
  129. package/dist/esm/card/index.js +70 -22
  130. package/dist/esm/card/style-core.scss +295 -0
  131. package/dist/esm/card/style.scss +4 -4
  132. package/dist/esm/card-feature/index.js +131 -0
  133. package/dist/esm/card-feature/style.scss +75 -0
  134. package/dist/esm/card-form/index.js +134 -0
  135. package/dist/esm/card-form/style.scss +20 -0
  136. package/dist/esm/card-settings-group/index.js +61 -0
  137. package/dist/esm/card-settings-group/style.scss +33 -0
  138. package/dist/esm/card-sortable-list/index.js +425 -0
  139. package/dist/esm/card-sortable-list/style.scss +48 -0
  140. package/dist/esm/category-autocomplete/index.js +168 -140
  141. package/dist/esm/color-picker/index.js +39 -21
  142. package/dist/esm/color-picker/index.test.js +78 -0
  143. package/dist/esm/color-picker/style.scss +11 -13
  144. package/dist/esm/confirm-dialog/index.js +116 -0
  145. package/dist/esm/consts.js +1 -1
  146. package/dist/esm/custom-select-control/index.js +34 -15
  147. package/dist/esm/dataviews/index.js +34 -0
  148. package/dist/esm/dataviews/style.scss +9 -0
  149. package/dist/esm/divider/index.js +42 -0
  150. package/dist/esm/divider/style.scss +51 -0
  151. package/dist/esm/footer/index.js +34 -28
  152. package/dist/esm/form-token-field/index.js +46 -27
  153. package/dist/esm/form-token-field/style.scss +0 -5
  154. package/dist/esm/global-notices/index.js +3 -3
  155. package/dist/esm/grid/index.js +23 -13
  156. package/dist/esm/grid/style.scss +67 -8
  157. package/dist/esm/handoff/index.js +199 -143
  158. package/dist/esm/handoff-message/index.js +10 -6
  159. package/dist/esm/hooks/index.js +8 -6
  160. package/dist/esm/hooks/use-confirm-dialog.js +73 -0
  161. package/dist/esm/hooks/use-unsaved-changes-dialog.js +136 -0
  162. package/dist/esm/hooks/useObjectState.js +19 -9
  163. package/dist/esm/hooks/useObjectState.test.js +54 -32
  164. package/dist/esm/hooks/useOnClickOutside.js +4 -4
  165. package/dist/esm/hooks/usePrompt.js +9 -11
  166. package/dist/esm/image-upload/index.js +110 -111
  167. package/dist/esm/image-upload/index.test.js +11 -13
  168. package/dist/esm/image-upload/style.scss +12 -40
  169. package/dist/esm/index.js +13 -1
  170. package/dist/esm/info-button/index.js +38 -19
  171. package/dist/esm/integration-icons/active-campaign.js +16 -0
  172. package/dist/esm/integration-icons/constant-contact.js +22 -0
  173. package/dist/esm/integration-icons/fundraise-up.js +19 -0
  174. package/dist/esm/integration-icons/index.js +6 -0
  175. package/dist/esm/integration-icons/mailchimp.js +13 -0
  176. package/dist/esm/integration-icons/salesforce.js +11 -0
  177. package/dist/esm/integration-icons/wisepops.js +14 -0
  178. package/dist/esm/modal/index.js +27 -13
  179. package/dist/esm/modal/style.scss +47 -13
  180. package/dist/esm/newspack-icon/index.js +40 -25
  181. package/dist/esm/newspack-icon/style.scss +5 -3
  182. package/dist/esm/notice/index.js +59 -42
  183. package/dist/esm/plugin-installer/index.js +255 -243
  184. package/dist/esm/plugin-settings/SettingsSection.js +61 -50
  185. package/dist/esm/plugin-settings/index.js +212 -189
  186. package/dist/esm/plugin-toggle/index.js +187 -190
  187. package/dist/esm/popover/index.js +35 -16
  188. package/dist/esm/position-control/index.js +22 -18
  189. package/dist/esm/progress-bar/index.js +66 -49
  190. package/dist/esm/progress-bar/index.test.js +61 -67
  191. package/dist/esm/radio-control/index.js +34 -15
  192. package/dist/esm/section-header/index.js +140 -38
  193. package/dist/esm/section-header/style.scss +129 -4
  194. package/dist/esm/select-control/ButtonGroupControl.js +23 -18
  195. package/dist/esm/select-control/GroupedSelectControl.js +38 -30
  196. package/dist/esm/select-control/index.js +47 -27
  197. package/dist/esm/settings/MinMaxSetting.js +27 -16
  198. package/dist/esm/settings/SettingsCard.js +18 -13
  199. package/dist/esm/settings/SettingsSection.js +20 -19
  200. package/dist/esm/settings/index.js +3 -3
  201. package/dist/esm/sortable-newsletter-list-control/index.js +74 -53
  202. package/dist/esm/steps-list/index.js +39 -21
  203. package/dist/esm/steps-list-item/index.js +42 -26
  204. package/dist/esm/style-card/index.js +65 -50
  205. package/dist/esm/style.scss +2 -0
  206. package/dist/esm/tabbed-navigation/index.js +35 -33
  207. package/dist/esm/text-control/index.js +25 -19
  208. package/dist/esm/utils/color.js +4 -4
  209. package/dist/esm/utils/editor-toolbar-back-button.js +53 -0
  210. package/dist/esm/utils/index.js +29 -16
  211. package/dist/esm/utils/style.scss +8 -0
  212. package/dist/esm/waiting/index.js +43 -22
  213. package/dist/esm/waiting/style.scss +4 -0
  214. package/dist/esm/web-preview/index.js +218 -147
  215. package/dist/esm/web-preview/style.scss +20 -53
  216. package/dist/esm/with-wizard/index.js +360 -358
  217. package/dist/esm/with-wizard/style.scss +28 -60
  218. package/dist/esm/with-wizard-screen/index.js +48 -46
  219. package/dist/esm/with-wizard-screen/style.scss +77 -10
  220. package/dist/esm/wizard/components/WizardError.js +18 -16
  221. package/dist/esm/wizard/components/WizardSnackbar.js +70 -0
  222. package/dist/esm/wizard/components/style.scss +48 -0
  223. package/dist/esm/wizard/index.js +207 -58
  224. package/dist/esm/wizard/store/index.js +189 -90
  225. package/dist/esm/wizard/store/utils.js +13 -6
  226. package/package.json +30 -17
  227. package/release.config.js +1 -0
  228. package/shared/author-context.js +26 -0
  229. package/shared/hooks/use-coauthors.js +388 -0
  230. package/shared/hooks/use-coauthors.test.js +850 -0
  231. package/shared/hooks/use-custom-byline.js +47 -0
  232. package/shared/hooks/use-custom-byline.test.js +133 -0
  233. package/shared/scss/_mixins.scss +54 -0
  234. package/src/accordion/index.js +8 -7
  235. package/src/action-card/action-card.d.ts +7 -3
  236. package/src/action-card/index.js +39 -12
  237. package/src/action-card/style.scss +25 -2
  238. package/src/autocomplete-tokenfield/index.js +2 -2
  239. package/src/autocomplete-with-latest-posts/index.js +290 -0
  240. package/src/autocomplete-with-latest-posts/style.scss +150 -0
  241. package/src/badge/index.tsx +26 -0
  242. package/src/badge/style.scss +36 -0
  243. package/src/button/index.tsx +3 -2
  244. package/src/card/core-card.js +224 -0
  245. package/src/card/index.js +40 -1
  246. package/src/card/style-core.scss +295 -0
  247. package/src/card/style.scss +4 -4
  248. package/src/card-feature/README.md +188 -0
  249. package/src/card-feature/index.tsx +186 -0
  250. package/src/card-feature/style.scss +75 -0
  251. package/src/card-form/README.md +113 -0
  252. package/src/card-form/index.tsx +128 -0
  253. package/src/card-form/style.scss +20 -0
  254. package/src/card-settings-group/README.md +43 -0
  255. package/src/card-settings-group/index.tsx +78 -0
  256. package/src/card-settings-group/style.scss +33 -0
  257. package/src/card-sortable-list/README.md +51 -0
  258. package/src/card-sortable-list/index.tsx +435 -0
  259. package/src/card-sortable-list/style.scss +48 -0
  260. package/src/color-picker/index.js +15 -8
  261. package/src/color-picker/index.test.js +52 -0
  262. package/src/color-picker/style.scss +11 -13
  263. package/src/confirm-dialog/README.md +128 -0
  264. package/src/confirm-dialog/index.tsx +132 -0
  265. package/src/dataviews/index.tsx +34 -0
  266. package/src/dataviews/style.scss +9 -0
  267. package/src/divider/README.md +25 -0
  268. package/src/divider/index.js +31 -0
  269. package/src/divider/style.scss +51 -0
  270. package/src/form-token-field/style.scss +0 -5
  271. package/src/grid/index.tsx +2 -1
  272. package/src/grid/style.scss +67 -8
  273. package/src/handoff/README.md +93 -0
  274. package/src/handoff/index.js +46 -8
  275. package/src/hooks/index.ts +2 -1
  276. package/src/hooks/use-confirm-dialog.tsx +80 -0
  277. package/src/hooks/use-unsaved-changes-dialog.tsx +140 -0
  278. package/src/image-upload/index.js +10 -15
  279. package/src/image-upload/style.scss +12 -40
  280. package/src/index.js +13 -1
  281. package/src/integration-icons/active-campaign.js +14 -0
  282. package/src/integration-icons/constant-contact.js +22 -0
  283. package/src/integration-icons/fundraise-up.js +18 -0
  284. package/src/integration-icons/index.js +6 -0
  285. package/src/integration-icons/mailchimp.js +10 -0
  286. package/src/integration-icons/salesforce.js +10 -0
  287. package/src/integration-icons/wisepops.js +14 -0
  288. package/src/modal/index.js +12 -3
  289. package/src/modal/style.scss +47 -13
  290. package/src/newspack-icon/style.scss +5 -3
  291. package/src/plugin-installer/index.js +30 -19
  292. package/src/section-header/index.js +105 -14
  293. package/src/section-header/style.scss +129 -4
  294. package/src/select-control/index.js +4 -0
  295. package/src/style.scss +2 -0
  296. package/src/utils/editor-toolbar-back-button.tsx +48 -0
  297. package/src/utils/index.js +6 -0
  298. package/src/utils/style.scss +8 -0
  299. package/src/waiting/index.js +2 -1
  300. package/src/waiting/style.scss +4 -0
  301. package/src/web-preview/index.js +90 -35
  302. package/src/web-preview/style.scss +20 -53
  303. package/src/with-wizard/index.js +1 -1
  304. package/src/with-wizard/style.scss +28 -60
  305. package/src/with-wizard-screen/style.scss +77 -10
  306. package/src/wizard/components/WizardSnackbar.js +58 -0
  307. package/src/wizard/components/style.scss +48 -0
  308. package/src/wizard/index.js +152 -21
  309. package/src/wizard/store/index.js +28 -2
  310. package/dist/cjs/button-card/index.js +0 -72
  311. package/dist/cjs/button-card/style.scss +0 -180
  312. package/dist/esm/button-card/index.js +0 -64
  313. package/dist/esm/button-card/style.scss +0 -180
  314. package/src/button-card/index.js +0 -52
  315. 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 ) {
@@ -1,3 +1,6 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ 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; }
3
+ 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) { _defineProperty(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; }
1
4
  /**
2
5
  * WordPress dependencies.
3
6
  */
@@ -20,44 +23,42 @@ import classnames from 'classnames';
20
23
  * Higher-Order Component to provide plugin management and error handling to Newspack Wizards.
21
24
  */
22
25
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
23
- export default function withWizardScreen(WrappedComponent, {
24
- hidePrimaryButton
25
- } = {}) {
26
- const WrappedWithWizardScreen = props => {
27
- const {
28
- className,
29
- buttonText,
30
- buttonAction,
31
- buttonDisabled,
32
- headerText,
33
- subHeaderText,
34
- tabbedNavigation,
35
- secondaryButtonText,
36
- secondaryButtonAction,
37
- renderAboveContent,
38
- disableUpcomingInTabbedNavigation
39
- } = props;
40
- const retrievedButtonProps = buttonProps(buttonAction);
41
- const retrievedSecondaryButtonProps = buttonProps(secondaryButtonAction);
42
- const SecondaryCTAComponent = retrievedSecondaryButtonProps.plugin ? Handoff : Button;
43
- const shouldRenderPrimaryButton = buttonText && buttonAction;
44
- const shouldRenderSecondaryButton = secondaryButtonText && secondaryButtonAction;
45
- const renderPrimaryButton = (overridingProps = {}) => retrievedButtonProps.plugin ? /*#__PURE__*/_jsx(Handoff, {
46
- isPrimary: true,
47
- ...retrievedButtonProps,
48
- ...overridingProps,
49
- children: buttonText
50
- }) : /*#__PURE__*/_jsx(Button, {
51
- isPrimary: !buttonDisabled,
52
- isSecondary: !!buttonDisabled,
53
- disabled: buttonDisabled
54
- // Allow overridingProps to set children.
55
- // eslint-disable-next-line react/no-children-prop
56
- ,
57
- children: buttonText,
58
- ...retrievedButtonProps,
59
- ...overridingProps
60
- });
26
+ export default 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 = buttonProps(buttonAction);
42
+ var retrievedSecondaryButtonProps = 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__*/_jsx(Handoff, _objectSpread(_objectSpread(_objectSpread({
49
+ isPrimary: true
50
+ }, retrievedButtonProps), overridingProps), {}, {
51
+ children: buttonText
52
+ })) : /*#__PURE__*/_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
+ };
61
62
  return /*#__PURE__*/_jsxs(_Fragment, {
62
63
  children: [newspack_aux_data.is_debug_mode && /*#__PURE__*/_jsx(Notice, {
63
64
  debugMode: true
@@ -88,19 +89,20 @@ export default function withWizardScreen(WrappedComponent, {
88
89
  })
89
90
  }), tabbedNavigation && /*#__PURE__*/_jsx(TabbedNavigation, {
90
91
  disableUpcoming: disableUpcomingInTabbedNavigation,
91
- items: tabbedNavigation.filter(item => !item.isHiddenInNav)
92
+ items: tabbedNavigation.filter(function (item) {
93
+ return !item.isHiddenInNav;
94
+ })
92
95
  }), /*#__PURE__*/_jsx(HandoffMessage, {}), /*#__PURE__*/_jsxs("div", {
93
96
  className: classnames('newspack-wizard newspack-wizard__content', className),
94
- children: [typeof renderAboveContent === 'function' ? renderAboveContent() : null, /*#__PURE__*/_jsx(WrappedComponent, {
95
- ...props,
97
+ children: [typeof renderAboveContent === 'function' ? renderAboveContent() : null, /*#__PURE__*/_jsx(WrappedComponent, _objectSpread(_objectSpread({}, props), {}, {
96
98
  renderPrimaryButton: renderPrimaryButton
97
- }), (shouldRenderPrimaryButton || shouldRenderSecondaryButton) && /*#__PURE__*/_jsxs("div", {
99
+ })), (shouldRenderPrimaryButton || shouldRenderSecondaryButton) && /*#__PURE__*/_jsxs("div", {
98
100
  className: "newspack-buttons-card",
99
- children: [shouldRenderPrimaryButton && !hidePrimaryButton && renderPrimaryButton(), shouldRenderSecondaryButton && /*#__PURE__*/_jsx(SecondaryCTAComponent, {
100
- isSecondary: true,
101
- ...retrievedSecondaryButtonProps,
101
+ children: [shouldRenderPrimaryButton && !hidePrimaryButton && renderPrimaryButton(), shouldRenderSecondaryButton && /*#__PURE__*/_jsx(SecondaryCTAComponent, _objectSpread(_objectSpread({
102
+ isSecondary: true
103
+ }, retrievedSecondaryButtonProps), {}, {
102
104
  children: secondaryButtonText
103
- })]
105
+ }))]
104
106
  })]
105
107
  })]
106
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 {
@@ -10,36 +10,38 @@ import { useSelect } from '@wordpress/data';
10
10
  import { Button, Card, Modal, Notice } from '../..';
11
11
  import { WIZARD_STORE_NAMESPACE } from '../store';
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- const parseError = ({
14
- data,
15
- message,
16
- code
17
- }) => {
18
- let level = 'fatal';
13
+ var parseError = function parseError(_ref) {
14
+ var data = _ref.data,
15
+ message = _ref.message,
16
+ code = _ref.code;
17
+ var level = 'fatal';
19
18
  if (!!data && 'level' in data) {
20
19
  level = data.level;
21
20
  } else if ('rest_invalid_param' === code) {
22
21
  level = 'notice';
23
22
  }
24
23
  return {
25
- message,
26
- level
24
+ message: message,
25
+ level: level
27
26
  };
28
27
  };
29
- const WizardError = () => {
30
- const error = useSelect(select => select(WIZARD_STORE_NAMESPACE).getError());
28
+ var WizardError = function WizardError() {
29
+ var error = useSelect(function (select) {
30
+ return select(WIZARD_STORE_NAMESPACE).getError();
31
+ });
31
32
  if (!error) {
32
33
  return null;
33
34
  }
34
- const {
35
- level,
36
- message
37
- } = parseError(error);
35
+ var _parseError = parseError(error),
36
+ level = _parseError.level,
37
+ message = _parseError.message;
38
38
  if ('fatal' === level) {
39
- const fallbackURL = typeof newspack_urls !== 'undefined' && newspack_urls.dashboard;
39
+ var fallbackURL = typeof newspack_urls !== 'undefined' && newspack_urls.dashboard;
40
40
  return /*#__PURE__*/_jsxs(Modal, {
41
41
  title: __('Unrecoverable error'),
42
- onRequestClose: fallbackURL ? () => window.location = fallbackURL : undefined,
42
+ onRequestClose: fallbackURL ? function () {
43
+ return window.location = fallbackURL;
44
+ } : undefined,
43
45
  children: [/*#__PURE__*/_jsx(Notice, {
44
46
  noticeText: message,
45
47
  isError: true,
@@ -0,0 +1,70 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["children", "position", "type", "actions"];
4
+ 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; }
5
+ 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) { _defineProperty(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; }
6
+ /**
7
+ * Snackbar.
8
+ */
9
+
10
+ /**
11
+ * WordPress dependencies.
12
+ */
13
+ import { Snackbar as BaseComponent } from '@wordpress/components';
14
+ import { useDispatch } from '@wordpress/data';
15
+
16
+ /**
17
+ * Internal dependencies.
18
+ */
19
+ import { WIZARD_STORE_NAMESPACE } from '../store';
20
+ import './style.scss';
21
+
22
+ /**
23
+ * External dependencies.
24
+ */
25
+ import classnames from 'classnames';
26
+
27
+ /**
28
+ * WizardSnackbar component.
29
+ *
30
+ * @param {Object} props - The component props.
31
+ * @param {Object[]} props.actions - The actions to display in the snackbar.
32
+ * @param {JSX.Element} props.children - The component children.
33
+ * @param {Object} props.props - The component props. See: https://wordpress.github.io/gutenberg/?path=/docs/components-snackbar--docs
34
+ * @param {string} props.position - The snackbar position.
35
+ * @param {string} props.type - The snackbar type: 'info', 'success', 'warning', or 'error'.
36
+ * @return {JSX.Element} The component.
37
+ */
38
+ import { jsx as _jsx } from "react/jsx-runtime";
39
+ var WizardSnackbar = function WizardSnackbar(_ref) {
40
+ var children = _ref.children,
41
+ _ref$position = _ref.position,
42
+ position = _ref$position === void 0 ? 'bottom-left' : _ref$position,
43
+ _ref$type = _ref.type,
44
+ type = _ref$type === void 0 ? 'info' : _ref$type,
45
+ _ref$actions = _ref.actions,
46
+ actions = _ref$actions === void 0 ? [] : _ref$actions,
47
+ props = _objectWithoutProperties(_ref, _excluded);
48
+ var className = classnames('newspack-wizard__snackbar', props.className, "newspack-wizard__snackbar--".concat(position), "newspack-wizard__snackbar--".concat(type));
49
+ var _useDispatch = useDispatch(WIZARD_STORE_NAMESPACE),
50
+ removeNotice = _useDispatch.removeNotice,
51
+ resetNotices = _useDispatch.resetNotices;
52
+ var onRemove = function onRemove() {
53
+ if (props.onRemove) {
54
+ props.onRemove();
55
+ }
56
+ if (props.id) {
57
+ removeNotice(props.id);
58
+ } else {
59
+ resetNotices();
60
+ }
61
+ };
62
+ return /*#__PURE__*/_jsx(BaseComponent, _objectSpread(_objectSpread({
63
+ className: className
64
+ }, props), {}, {
65
+ onRemove: onRemove,
66
+ actions: actions,
67
+ children: children
68
+ }));
69
+ };
70
+ export 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
+ }