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
@@ -4,26 +4,37 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.WIZARD_STORE_NAMESPACE = void 0;
7
+ exports["default"] = exports.WIZARD_STORE_NAMESPACE = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
10
  var _set = _interopRequireDefault(require("lodash/set"));
9
11
  var _get = _interopRequireDefault(require("lodash/get"));
10
12
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
11
13
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
12
14
  var _data = require("@wordpress/data");
13
15
  var _utils = require("./utils.js");
14
- /**
16
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
17
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
18
+ 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; }
19
+ 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; } /**
15
20
  * External dependencies.
16
- */
17
-
18
- /**
21
+ */ /**
19
22
  * WordPress dependencies.
20
23
  */
21
-
22
- const WIZARD_STORE_NAMESPACE = exports.WIZARD_STORE_NAMESPACE = 'newspack/wizards';
23
- const DEFAULT_STATE = {
24
+ var WIZARD_STORE_NAMESPACE = exports.WIZARD_STORE_NAMESPACE = 'newspack/wizards';
25
+ var DEFAULT_STATE = {
26
+ headerData: {
27
+ actions: [],
28
+ backNav: '',
29
+ badges: [],
30
+ sectionDescription: '',
31
+ sectionName: '',
32
+ sectionTitle: ''
33
+ },
24
34
  isLoading: false,
25
35
  isQuietLoading: false,
26
36
  apiData: {},
37
+ notices: [],
27
38
  error: null
28
39
  };
29
40
 
@@ -32,141 +43,224 @@ const DEFAULT_STATE = {
32
43
  * on deep state change (via lodash's set function)
33
44
  * unless the state was cloned first.
34
45
  */
35
- const clone = objectToClone => JSON.parse(JSON.stringify(objectToClone));
36
- const reducer = (state = DEFAULT_STATE, {
37
- type,
38
- payload = {}
39
- }) => {
46
+ var clone = function clone(objectToClone) {
47
+ return JSON.parse(JSON.stringify(objectToClone));
48
+ };
49
+ var reducer = function reducer() {
50
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATE;
51
+ var _ref = arguments.length > 1 ? arguments[1] : undefined,
52
+ type = _ref.type,
53
+ _ref$payload = _ref.payload,
54
+ payload = _ref$payload === void 0 ? {} : _ref$payload;
40
55
  switch (type) {
56
+ case 'SET_HEADER_DATA':
57
+ return _objectSpread(_objectSpread({}, state), {}, {
58
+ headerData: _objectSpread(_objectSpread({}, state.headerData), payload)
59
+ });
60
+ case 'RESET_HEADER_DATA':
61
+ return _objectSpread(_objectSpread({}, state), {}, {
62
+ headerData: _objectSpread({}, DEFAULT_STATE.headerData)
63
+ });
41
64
  case 'START_LOADING_DATA':
42
65
  if (payload.isQuietLoading) {
43
- return {
44
- ...state,
66
+ return _objectSpread(_objectSpread({}, state), {}, {
45
67
  isQuietLoading: true
46
- };
68
+ });
47
69
  }
48
- return {
49
- ...state,
70
+ return _objectSpread(_objectSpread({}, state), {}, {
50
71
  isLoading: true
51
- };
72
+ });
52
73
  case 'FINISH_LOADING_DATA':
53
- return {
54
- ...state,
74
+ return _objectSpread(_objectSpread({}, state), {}, {
55
75
  isLoading: false,
56
76
  isQuietLoading: false
57
- };
77
+ });
58
78
  case 'SET_API_DATA':
59
- return (0, _set.default)(clone(state), ['apiData', payload.slug], payload.data);
79
+ return _objectSpread(_objectSpread({}, state), {}, {
80
+ apiData: (0, _set["default"])(clone(state.apiData), [payload.slug], payload.data)
81
+ });
60
82
  case 'UPDATE_WIZARD_SETTINGS':
61
- return (0, _set.default)(clone(state), ['apiData', payload.slug, ...payload.path], payload.value);
83
+ return _objectSpread(_objectSpread({}, state), {}, {
84
+ apiData: (0, _set["default"])(clone(state.apiData), [payload.slug].concat((0, _toConsumableArray2["default"])(payload.path)), payload.value)
85
+ });
86
+ case 'ADD_NOTICE':
87
+ return _objectSpread(_objectSpread({}, state), {}, {
88
+ notices: [].concat((0, _toConsumableArray2["default"])(state.notices), [payload])
89
+ });
90
+ case 'REMOVE_NOTICE':
91
+ return _objectSpread(_objectSpread({}, state), {}, {
92
+ notices: state.notices.filter(function (notice) {
93
+ return notice.id !== payload;
94
+ })
95
+ });
62
96
  case 'SET_ERROR':
63
- return {
64
- ...state,
97
+ return _objectSpread(_objectSpread({}, state), {}, {
65
98
  error: payload
66
- };
99
+ });
100
+ case 'RESET_NOTICES':
101
+ return _objectSpread(_objectSpread({}, state), {}, {
102
+ notices: DEFAULT_STATE.notices
103
+ });
67
104
  default:
68
105
  return state;
69
106
  }
70
107
  };
71
- const actions = {
108
+ var actions = {
72
109
  // Regular actions.
110
+ setHeaderData: (0, _utils.createAction)('SET_HEADER_DATA'),
111
+ resetHeaderData: (0, _utils.createAction)('RESET_HEADER_DATA'),
73
112
  startLoadingData: (0, _utils.createAction)('START_LOADING_DATA'),
74
113
  finishLoadingData: (0, _utils.createAction)('FINISH_LOADING_DATA'),
75
114
  fetchFromAPI: (0, _utils.createAction)('FETCH_FROM_API'),
76
115
  setAPIDataForWizard: (0, _utils.createAction)('SET_API_DATA'),
77
116
  updateWizardSettings: (0, _utils.createAction)('UPDATE_WIZARD_SETTINGS'),
117
+ addNotice: (0, _utils.createAction)('ADD_NOTICE'),
118
+ removeNotice: (0, _utils.createAction)('REMOVE_NOTICE'),
119
+ resetNotices: (0, _utils.createAction)('RESET_NOTICES'),
78
120
  setError: (0, _utils.createAction)('SET_ERROR'),
79
121
  // Async actions. These will not show up in Redux devtools.
80
- *saveWizardSettings({
81
- slug,
82
- section = '',
83
- payloadPath = false,
84
- auxData = {},
85
- updatePayload = null
86
- }) {
87
- // Optionally data can be updated before saving - an immediate update case
88
- // (without an explicit "save" action).
89
- if (updatePayload) {
90
- yield actions.updateWizardSettings({
91
- slug,
92
- ...updatePayload
93
- });
94
- }
95
- const wizardState = (0, _data.select)(WIZARD_STORE_NAMESPACE).getWizardAPIData(slug);
96
- const data = payloadPath ? (0, _get.default)(wizardState, payloadPath) : wizardState;
97
- const updatedData = yield actions.fetchFromAPI({
98
- path: `/newspack/v1/wizard/${slug}/${section}`,
99
- method: 'POST',
100
- data: {
101
- ...data,
102
- ...auxData
103
- },
104
- isQuietFetch: true
105
- });
106
- if (!(0, _isEmpty.default)(updatedData) && !updatedData.error) {
107
- return actions.setAPIDataForWizard({
108
- slug,
109
- data: updatedData
110
- });
111
- }
122
+ saveWizardSettings: function saveWizardSettings(_ref2) {
123
+ var slug = _ref2.slug,
124
+ _ref2$section = _ref2.section,
125
+ section = _ref2$section === void 0 ? '' : _ref2$section,
126
+ _ref2$payloadPath = _ref2.payloadPath,
127
+ payloadPath = _ref2$payloadPath === void 0 ? false : _ref2$payloadPath,
128
+ _ref2$auxData = _ref2.auxData,
129
+ auxData = _ref2$auxData === void 0 ? {} : _ref2$auxData,
130
+ _ref2$updatePayload = _ref2.updatePayload,
131
+ updatePayload = _ref2$updatePayload === void 0 ? null : _ref2$updatePayload;
132
+ return /*#__PURE__*/_regenerator().m(function _callee() {
133
+ var wizardState, data, updatedData;
134
+ return _regenerator().w(function (_context) {
135
+ while (1) switch (_context.n) {
136
+ case 0:
137
+ if (!updatePayload) {
138
+ _context.n = 1;
139
+ break;
140
+ }
141
+ _context.n = 1;
142
+ return actions.updateWizardSettings(_objectSpread({
143
+ slug: slug
144
+ }, updatePayload));
145
+ case 1:
146
+ wizardState = (0, _data.select)(WIZARD_STORE_NAMESPACE).getWizardAPIData(slug);
147
+ data = payloadPath ? (0, _get["default"])(wizardState, payloadPath) : wizardState;
148
+ _context.n = 2;
149
+ return actions.fetchFromAPI({
150
+ path: "/newspack/v1/wizard/".concat(slug, "/").concat(section),
151
+ method: 'POST',
152
+ data: _objectSpread(_objectSpread({}, data), auxData),
153
+ isQuietFetch: true
154
+ });
155
+ case 2:
156
+ updatedData = _context.v;
157
+ if (!(!(0, _isEmpty["default"])(updatedData) && !updatedData.error)) {
158
+ _context.n = 3;
159
+ break;
160
+ }
161
+ return _context.a(2, actions.setAPIDataForWizard({
162
+ slug: slug,
163
+ data: updatedData
164
+ }));
165
+ case 3:
166
+ return _context.a(2);
167
+ }
168
+ }, _callee);
169
+ })();
112
170
  },
113
- *wizardApiFetch(fetchConfig) {
114
- // Just a proxy to fetchFromAPI, but it has to be a generator.
115
- const result = yield actions.fetchFromAPI(fetchConfig);
116
- return result;
117
- }
171
+ wizardApiFetch: /*#__PURE__*/_regenerator().m(function wizardApiFetch(fetchConfig) {
172
+ var result;
173
+ return _regenerator().w(function (_context2) {
174
+ while (1) switch (_context2.n) {
175
+ case 0:
176
+ _context2.n = 1;
177
+ return actions.fetchFromAPI(fetchConfig);
178
+ case 1:
179
+ result = _context2.v;
180
+ return _context2.a(2, result);
181
+ }
182
+ }, wizardApiFetch);
183
+ })
118
184
  };
119
- const selectors = {
120
- isLoading: state => state.isLoading,
121
- isQuietLoading: state => state.isQuietLoading,
122
- getWizardAPIData: (state, slug) => state.apiData[slug] || {},
123
- getWizardData: (state, slug) => {
185
+ var selectors = {
186
+ getHeaderData: function getHeaderData(state) {
187
+ return state.headerData;
188
+ },
189
+ isLoading: function isLoading(state) {
190
+ return state.isLoading;
191
+ },
192
+ isQuietLoading: function isQuietLoading(state) {
193
+ return state.isQuietLoading;
194
+ },
195
+ getWizardAPIData: function getWizardAPIData(state, slug) {
196
+ return state.apiData[slug] || {};
197
+ },
198
+ getWizardData: function getWizardData(state, slug) {
124
199
  var _state$apiData$slug;
125
200
  return (_state$apiData$slug = state.apiData[slug]) !== null && _state$apiData$slug !== void 0 ? _state$apiData$slug : {};
126
201
  },
127
- getError: state => state.error
202
+ getNotices: function getNotices(state) {
203
+ return state.notices;
204
+ },
205
+ getError: function getError(state) {
206
+ return state.error;
207
+ }
128
208
  };
129
- const store = (0, _data.createReduxStore)(WIZARD_STORE_NAMESPACE, {
130
- reducer,
131
- actions,
132
- selectors,
209
+ var store = (0, _data.createReduxStore)(WIZARD_STORE_NAMESPACE, {
210
+ reducer: reducer,
211
+ actions: actions,
212
+ selectors: selectors,
133
213
  controls: {
134
- FETCH_FROM_API: action => {
135
- const {
136
- isLocalError = false,
137
- isQuietFetch = false
138
- } = action.payload;
214
+ FETCH_FROM_API: function FETCH_FROM_API(action) {
215
+ var _action$payload = action.payload,
216
+ _action$payload$isLoc = _action$payload.isLocalError,
217
+ isLocalError = _action$payload$isLoc === void 0 ? false : _action$payload$isLoc,
218
+ _action$payload$isQui = _action$payload.isQuietFetch,
219
+ isQuietFetch = _action$payload$isQui === void 0 ? false : _action$payload$isQui;
139
220
  (0, _data.dispatch)(WIZARD_STORE_NAMESPACE).startLoadingData({
140
221
  isQuietLoading: Boolean(isQuietFetch)
141
222
  });
142
- return (0, _apiFetch.default)(action.payload).then(data => {
223
+ return (0, _apiFetch["default"])(action.payload).then(function (data) {
143
224
  (0, _data.dispatch)(WIZARD_STORE_NAMESPACE).setError(null);
144
225
  return data;
145
- }).catch(error => {
226
+ })["catch"](function (error) {
146
227
  if (isLocalError) {
147
228
  throw error;
148
229
  }
149
230
  (0, _data.dispatch)(WIZARD_STORE_NAMESPACE).setError(error);
150
- }).finally(result => {
231
+ })["finally"](function (result) {
151
232
  (0, _data.dispatch)(WIZARD_STORE_NAMESPACE).finishLoadingData();
152
233
  return result;
153
234
  });
154
235
  }
155
236
  },
156
237
  resolvers: {
157
- *getWizardAPIData(slug) {
158
- if (slug) {
159
- const data = yield actions.fetchFromAPI({
160
- path: `/newspack/v1/wizard/${slug}`
161
- });
162
- return actions.setAPIDataForWizard({
163
- slug,
164
- data
165
- });
166
- }
167
- return actions.finishLoadingData();
168
- }
238
+ getWizardAPIData: /*#__PURE__*/_regenerator().m(function getWizardAPIData(slug) {
239
+ var data;
240
+ return _regenerator().w(function (_context3) {
241
+ while (1) switch (_context3.n) {
242
+ case 0:
243
+ if (!slug) {
244
+ _context3.n = 2;
245
+ break;
246
+ }
247
+ _context3.n = 1;
248
+ return actions.fetchFromAPI({
249
+ path: "/newspack/v1/wizard/".concat(slug)
250
+ });
251
+ case 1:
252
+ data = _context3.v;
253
+ return _context3.a(2, actions.setAPIDataForWizard({
254
+ slug: slug,
255
+ data: data
256
+ }));
257
+ case 2:
258
+ return _context3.a(2, actions.finishLoadingData());
259
+ }
260
+ }, getWizardAPIData);
261
+ })
169
262
  }
170
263
  });
171
- var _default = () => (0, _data.register)(store);
172
- exports.default = _default;
264
+ var _default = exports["default"] = function _default() {
265
+ return (0, _data.register)(store);
266
+ };
@@ -14,12 +14,17 @@ var _ = require(".");
14
14
  * Internal dependencies
15
15
  */
16
16
 
17
- const createAction = type => payload => ({
18
- type,
19
- payload
20
- });
21
- exports.createAction = createAction;
22
- const useWizardData = (wizardName, defaultValue = {}) => {
23
- return (0, _data.useSelect)(select => select(_.WIZARD_STORE_NAMESPACE).getWizardAPIData(wizardName)) || defaultValue;
17
+ var createAction = exports.createAction = function createAction(type) {
18
+ return function (payload) {
19
+ return {
20
+ type: type,
21
+ payload: payload
22
+ };
23
+ };
24
24
  };
25
- exports.useWizardData = useWizardData;
25
+ var useWizardData = exports.useWizardData = function useWizardData(wizardName) {
26
+ var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
27
+ return (0, _data.useSelect)(function (select) {
28
+ return select(_.WIZARD_STORE_NAMESPACE).getWizardAPIData(wizardName);
29
+ }) || defaultValue;
30
+ };
@@ -1,6 +1,4 @@
1
- /* eslint-disable jsx-a11y/click-events-have-key-events */
2
- /* eslint-disable jsx-a11y/no-static-element-interactions */
3
-
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
2
  /**
5
3
  * WordPress dependencies
6
4
  */
@@ -17,17 +15,24 @@ import classNames from 'classnames';
17
15
  */
18
16
  import './style.scss';
19
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- const Accordion = ({
21
- children,
22
- title
23
- }) => {
24
- const [isOpen, setIsOpen] = useState(false);
18
+ var Accordion = function Accordion(_ref) {
19
+ var children = _ref.children,
20
+ title = _ref.title,
21
+ _ref$defaultOpen = _ref.defaultOpen,
22
+ defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen;
23
+ var _useState = useState(defaultOpen),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ isOpen = _useState2[0],
26
+ setIsOpen = _useState2[1];
25
27
  return /*#__PURE__*/_jsxs("details", {
26
28
  className: classNames('newspack-accordion', {
27
29
  'newspack-accordion--is-open': isOpen
28
30
  }),
31
+ open: isOpen,
32
+ onToggle: function onToggle(e) {
33
+ return setIsOpen(e.currentTarget.open);
34
+ },
29
35
  children: [/*#__PURE__*/_jsxs("summary", {
30
- onClick: () => setIsOpen(!isOpen),
31
36
  children: [title, /*#__PURE__*/_jsx(Icon, {
32
37
  className: "newspack-accordion__icon",
33
38
  icon: chevronRight,