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,7 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports["default"] = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
12
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
9
13
  var _components = require("@wordpress/components");
10
14
  var _htmlEntities = require("@wordpress/html-entities");
@@ -14,52 +18,69 @@ var _url = require("@wordpress/url");
14
18
  var _ = require("../");
15
19
  require("./style.scss");
16
20
  var _jsxRuntime = require("react/jsx-runtime");
17
- /**
21
+ 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; }
22
+ 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; }
23
+ 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 }; })(); }
24
+ 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
25
  * WordPress dependencies
19
- */
20
-
21
- /**
26
+ */ /**
22
27
  * External dependencies.
23
28
  */
24
-
25
- const AutocompleteWithSuggestions = ({
26
- fetchSavedPosts = false,
27
- // If passed, will use this function to fetch saved data.
28
- fetchSuggestions = false,
29
- // If passed, will use this function to fetch suggestions data.
30
- help = (0, _i18n.__)('Begin typing search term, click autocomplete result to select.', 'newspack-plugin'),
31
- hideHelp = false,
32
- // If true, all help text will be hidden.
33
- label = (0, _i18n.__)('Search', 'newspack-plugin'),
34
- maxItemsToSuggest = 0,
35
- // If passed, will be used to determine "load more" state. Necessary if you want "load more" functionality when using a custom `fetchSuggestions` function.
36
- multiSelect = false,
37
- // If true, component can select multiple values at once.
38
- onChange = false,
39
- // Function to call when selections change.
40
- onPostTypeChange = false,
41
- // Funciton to call when the post type selector is changed.
42
- postTypes = [{
43
- slug: 'post',
44
- label: 'Post'
45
- }],
46
- // If passed, will render a selector to change the post type queried for suggestions.
47
- postTypeLabel = (0, _i18n.__)('item', 'newspack-plugin'),
48
- // String to describe the data being shown.
49
- postTypeLabelPlural = (0, _i18n.__)('items', 'newspack-plugin'),
50
- // Plural string to describe the data being shown.
51
- selectedItems = [],
52
- // Array of saved items.
53
- selectedPost = 0,
54
- // Legacy prop when single-select was the only option.
55
- suggestionsToFetch = 10 // Number of suggestions to fetch per query.
56
- }) => {
57
- const [isLoading, setIsLoading] = (0, _element.useState)(true);
58
- const [isLoadingMore, setIsLoadingMore] = (0, _element.useState)(false);
59
- const [suggestions, setSuggestions] = (0, _element.useState)([]);
60
- const [maxSuggestions, setMaxSuggestions] = (0, _element.useState)(0);
61
- const [postTypeToSearch, setPostTypeToSearch] = (0, _element.useState)(postTypes[0].slug);
62
- const classNames = ['newspack-autocomplete-with-suggestions'];
29
+ var AutocompleteWithSuggestions = function AutocompleteWithSuggestions(_ref) {
30
+ var _ref$fetchSavedPosts = _ref.fetchSavedPosts,
31
+ fetchSavedPosts = _ref$fetchSavedPosts === void 0 ? false : _ref$fetchSavedPosts,
32
+ _ref$fetchSuggestions = _ref.fetchSuggestions,
33
+ fetchSuggestions = _ref$fetchSuggestions === void 0 ? false : _ref$fetchSuggestions,
34
+ _ref$help = _ref.help,
35
+ help = _ref$help === void 0 ? (0, _i18n.__)('Begin typing search term, click autocomplete result to select.', 'newspack-plugin') : _ref$help,
36
+ _ref$hideHelp = _ref.hideHelp,
37
+ hideHelp = _ref$hideHelp === void 0 ? false : _ref$hideHelp,
38
+ _ref$label = _ref.label,
39
+ label = _ref$label === void 0 ? (0, _i18n.__)('Search', 'newspack-plugin') : _ref$label,
40
+ _ref$maxItemsToSugges = _ref.maxItemsToSuggest,
41
+ maxItemsToSuggest = _ref$maxItemsToSugges === void 0 ? 0 : _ref$maxItemsToSugges,
42
+ _ref$multiSelect = _ref.multiSelect,
43
+ multiSelect = _ref$multiSelect === void 0 ? false : _ref$multiSelect,
44
+ _ref$onChange = _ref.onChange,
45
+ onChange = _ref$onChange === void 0 ? false : _ref$onChange,
46
+ _ref$onPostTypeChange = _ref.onPostTypeChange,
47
+ onPostTypeChange = _ref$onPostTypeChange === void 0 ? false : _ref$onPostTypeChange,
48
+ _ref$postTypes = _ref.postTypes,
49
+ postTypes = _ref$postTypes === void 0 ? [{
50
+ slug: 'post',
51
+ label: 'Post'
52
+ }] : _ref$postTypes,
53
+ _ref$postTypeLabel = _ref.postTypeLabel,
54
+ postTypeLabel = _ref$postTypeLabel === void 0 ? (0, _i18n.__)('item', 'newspack-plugin') : _ref$postTypeLabel,
55
+ _ref$postTypeLabelPlu = _ref.postTypeLabelPlural,
56
+ postTypeLabelPlural = _ref$postTypeLabelPlu === void 0 ? (0, _i18n.__)('items', 'newspack-plugin') : _ref$postTypeLabelPlu,
57
+ _ref$selectedItems = _ref.selectedItems,
58
+ selectedItems = _ref$selectedItems === void 0 ? [] : _ref$selectedItems,
59
+ _ref$selectedPost = _ref.selectedPost,
60
+ selectedPost = _ref$selectedPost === void 0 ? 0 : _ref$selectedPost,
61
+ _ref$suggestionsToFet = _ref.suggestionsToFetch,
62
+ suggestionsToFetch = _ref$suggestionsToFet === void 0 ? 10 : _ref$suggestionsToFet;
63
+ var _useState = (0, _element.useState)(true),
64
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
65
+ isLoading = _useState2[0],
66
+ setIsLoading = _useState2[1];
67
+ var _useState3 = (0, _element.useState)(false),
68
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
+ isLoadingMore = _useState4[0],
70
+ setIsLoadingMore = _useState4[1];
71
+ var _useState5 = (0, _element.useState)([]),
72
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
73
+ suggestions = _useState6[0],
74
+ setSuggestions = _useState6[1];
75
+ var _useState7 = (0, _element.useState)(0),
76
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
77
+ maxSuggestions = _useState8[0],
78
+ setMaxSuggestions = _useState8[1];
79
+ var _useState9 = (0, _element.useState)(postTypes[0].slug),
80
+ _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
81
+ postTypeToSearch = _useState0[0],
82
+ setPostTypeToSearch = _useState0[1];
83
+ var classNames = ['newspack-autocomplete-with-suggestions'];
63
84
  if (hideHelp) {
64
85
  classNames.push('hide-help');
65
86
  }
@@ -67,96 +88,143 @@ const AutocompleteWithSuggestions = ({
67
88
  /**
68
89
  * Fetch recent posts to show as suggestions.
69
90
  */
70
- (0, _element.useEffect)(() => {
91
+ (0, _element.useEffect)(function () {
71
92
  if (onPostTypeChange) {
72
93
  onPostTypeChange(postTypeToSearch);
73
94
  }
74
95
  setIsLoading(true);
75
- handleFetchSuggestions(null, 0, postTypeToSearch).then(_suggestions => {
96
+ handleFetchSuggestions(null, 0, postTypeToSearch).then(function (_suggestions) {
76
97
  if (0 < _suggestions.length) {
77
98
  setSuggestions(_suggestions);
78
99
  }
79
- }).finally(() => setIsLoading(false));
100
+ })["finally"](function () {
101
+ return setIsLoading(false);
102
+ });
80
103
  }, [postTypeToSearch]);
81
104
 
82
105
  /**
83
106
  * Fetch more suggestions.
84
107
  */
85
- (0, _element.useEffect)(() => {
108
+ (0, _element.useEffect)(function () {
86
109
  if (isLoadingMore) {
87
- handleFetchSuggestions(null, suggestions.length, postTypeToSearch).then(_suggestions => {
110
+ handleFetchSuggestions(null, suggestions.length, postTypeToSearch).then(function (_suggestions) {
88
111
  if (0 < _suggestions.length) {
89
112
  setSuggestions(suggestions.concat(_suggestions));
90
113
  }
91
- }).finally(() => setIsLoadingMore(false));
114
+ })["finally"](function () {
115
+ return setIsLoadingMore(false);
116
+ });
92
117
  }
93
118
  }, [isLoadingMore]);
94
119
 
95
120
  /**
96
121
  * If passed a `fetchSavedPosts` prop, use that, otherwise, build it based on the selected post type.
97
122
  */
98
- const handleFetchSaved = fetchSavedPosts ? fetchSavedPosts : async (postIds = [], searchSlug = null) => {
99
- const postTypeSlug = searchSlug || postTypeToSearch;
100
- const endpoint = 'post' === postTypeSlug || 'page' === postTypeSlug ? postTypeSlug + 's' // Default post type endpoints are plural.
101
- : postTypeSlug; // Custom post type endpoints are singular.
102
- const posts = await (0, _apiFetch.default)({
103
- path: (0, _url.addQueryArgs)('/wp/v2/' + endpoint, {
104
- per_page: 100,
105
- include: postIds.join(','),
106
- _fields: 'id,title'
107
- })
108
- });
109
- return posts.map(post => ({
110
- value: parseInt(post.id),
111
- label: (0, _htmlEntities.decodeEntities)(post.title) || (0, _i18n.__)('(no title)', 'newspack-plugin')
112
- }));
113
- };
123
+ var handleFetchSaved = fetchSavedPosts ? fetchSavedPosts : /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee() {
124
+ var postIds,
125
+ searchSlug,
126
+ postTypeSlug,
127
+ endpoint,
128
+ posts,
129
+ _args = arguments;
130
+ return _regenerator().w(function (_context) {
131
+ while (1) switch (_context.n) {
132
+ case 0:
133
+ postIds = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
134
+ searchSlug = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
135
+ postTypeSlug = searchSlug || postTypeToSearch;
136
+ endpoint = 'post' === postTypeSlug || 'page' === postTypeSlug ? postTypeSlug + 's' // Default post type endpoints are plural.
137
+ : postTypeSlug; // Custom post type endpoints are singular.
138
+ _context.n = 1;
139
+ return (0, _apiFetch["default"])({
140
+ path: (0, _url.addQueryArgs)('/wp/v2/' + endpoint, {
141
+ per_page: 100,
142
+ include: postIds.join(','),
143
+ _fields: 'id,title'
144
+ })
145
+ });
146
+ case 1:
147
+ posts = _context.v;
148
+ return _context.a(2, posts.map(function (post) {
149
+ return {
150
+ value: parseInt(post.id),
151
+ label: (0, _htmlEntities.decodeEntities)(post.title) || (0, _i18n.__)('(no title)', 'newspack-plugin')
152
+ };
153
+ }));
154
+ }
155
+ }, _callee);
156
+ }));
114
157
 
115
158
  /**
116
159
  * If passed a `fetchSuggestions` prop, use that, otherwise, build it based on the selected post type.
117
160
  */
118
- const handleFetchSuggestions = fetchSuggestions ? fetchSuggestions : async (search = null, offset = 0, searchSlug = null) => {
119
- const postTypeSlug = searchSlug || postTypeToSearch;
120
- const endpoint = 'post' === postTypeSlug || 'page' === postTypeSlug ? postTypeSlug + 's' // Default post type endpoints are plural.
121
- : postTypeSlug; // Custom post type endpoints are singular.
122
- const response = await (0, _apiFetch.default)({
123
- parse: false,
124
- path: (0, _url.addQueryArgs)('/wp/v2/' + endpoint, {
125
- search,
126
- offset,
127
- per_page: suggestionsToFetch,
128
- _fields: 'id,title'
129
- })
130
- });
131
- const total = parseInt(response.headers.get('x-wp-total') || 0);
132
- const posts = await response.json();
133
- setMaxSuggestions(total);
161
+ var handleFetchSuggestions = fetchSuggestions ? fetchSuggestions : /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee2() {
162
+ var search,
163
+ offset,
164
+ searchSlug,
165
+ postTypeSlug,
166
+ endpoint,
167
+ response,
168
+ total,
169
+ posts,
170
+ _args2 = arguments;
171
+ return _regenerator().w(function (_context2) {
172
+ while (1) switch (_context2.n) {
173
+ case 0:
174
+ search = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : null;
175
+ offset = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 0;
176
+ searchSlug = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : null;
177
+ postTypeSlug = searchSlug || postTypeToSearch;
178
+ endpoint = 'post' === postTypeSlug || 'page' === postTypeSlug ? postTypeSlug + 's' // Default post type endpoints are plural.
179
+ : postTypeSlug; // Custom post type endpoints are singular.
180
+ _context2.n = 1;
181
+ return (0, _apiFetch["default"])({
182
+ parse: false,
183
+ path: (0, _url.addQueryArgs)('/wp/v2/' + endpoint, {
184
+ search: search,
185
+ offset: offset,
186
+ per_page: suggestionsToFetch,
187
+ _fields: 'id,title'
188
+ })
189
+ });
190
+ case 1:
191
+ response = _context2.v;
192
+ total = parseInt(response.headers.get('x-wp-total') || 0);
193
+ _context2.n = 2;
194
+ return response.json();
195
+ case 2:
196
+ posts = _context2.v;
197
+ setMaxSuggestions(total);
134
198
 
135
- // Format suggestions for FormTokenField display.
136
- return posts.reduce((acc, post) => {
137
- acc.push({
138
- value: parseInt(post.id),
139
- label: (0, _htmlEntities.decodeEntities)(post?.title.rendered) || (0, _i18n.__)('(no title)', 'newspack-plugin')
140
- });
141
- return acc;
142
- }, []);
143
- };
199
+ // Format suggestions for FormTokenField display.
200
+ return _context2.a(2, posts.reduce(function (acc, post) {
201
+ acc.push({
202
+ value: parseInt(post.id),
203
+ label: (0, _htmlEntities.decodeEntities)(post === null || post === void 0 ? void 0 : post.title.rendered) || (0, _i18n.__)('(no title)', 'newspack-plugin')
204
+ });
205
+ return acc;
206
+ }, []));
207
+ }
208
+ }, _callee2);
209
+ }));
144
210
 
145
211
  /**
146
212
  * Intercept onChange callback so we can decide whether to allow multiple selections.
147
213
  */
148
- const handleOnChange = _selections => {
214
+ var handleOnChange = function handleOnChange(_selections) {
149
215
  // If only allowing one selection, just return the one selected item.
150
216
  if (!multiSelect) {
151
217
  return onChange(_selections);
152
218
  }
153
219
 
154
220
  // Handle legacy `selectedPost` prop.
155
- const selections = selectedPost ? [...selectedItems, selectedPost] : [...selectedItems];
221
+ var selections = selectedPost ? [].concat((0, _toConsumableArray2["default"])(selectedItems), [selectedPost]) : (0, _toConsumableArray2["default"])(selectedItems);
156
222
 
157
223
  // Loop through new selections to determine whether to add or remove them.
158
- _selections.forEach(_selection => {
159
- const existingSelection = selections.findIndex(selection => parseInt(selection.value) === parseInt(_selection.value));
224
+ _selections.forEach(function (_selection) {
225
+ var existingSelection = selections.findIndex(function (selection) {
226
+ return parseInt(selection.value) === parseInt(_selection.value);
227
+ });
160
228
  if (-1 < existingSelection) {
161
229
  // If the selection is already selected, remove it.
162
230
  selections.splice(existingSelection, 1);
@@ -167,19 +235,20 @@ const AutocompleteWithSuggestions = ({
167
235
  });
168
236
 
169
237
  // Include currently selected post type in selection results.
170
- onChange(selections.map(selection => ({
171
- ...selection,
172
- postType: postTypeToSearch
173
- })));
238
+ onChange(selections.map(function (selection) {
239
+ return _objectSpread(_objectSpread({}, selection), {}, {
240
+ postType: postTypeToSearch
241
+ });
242
+ }));
174
243
  };
175
244
 
176
245
  /**
177
246
  * Render selected item(s) for this component. Clicking on a selection deselects it.
178
247
  */
179
- const renderSelections = () => {
248
+ var renderSelections = function renderSelections() {
180
249
  // Handle legacy `selectedPost` prop.
181
- const selections = selectedPost ? [...selectedItems, selectedPost] : selectedItems;
182
- const selectedMessage = multiSelect ? (0, _i18n.sprintf)(
250
+ var selections = selectedPost ? [].concat((0, _toConsumableArray2["default"])(selectedItems), [selectedPost]) : selectedItems;
251
+ var selectedMessage = multiSelect ? (0, _i18n.sprintf)(
183
252
  // Translators: %1: the length of selections. %2: the selection leabel.
184
253
  (0, _i18n.__)('%1$s %2$s selected', 'newspack-plugin'), selections.length, selections.length > 1 ? postTypeLabelPlural : postTypeLabel) : (0, _i18n.sprintf)(
185
254
  // Translators: %s: The label for the selection.
@@ -189,34 +258,46 @@ const AutocompleteWithSuggestions = ({
189
258
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
190
259
  className: "newspack-autocomplete-with-suggestions__label",
191
260
  children: [selectedMessage, 1 < selections.length && (0, _i18n._x)(' – ', 'separator character', 'newspack-plugin'), 1 < selections.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
192
- onClick: () => onChange([]),
261
+ onClick: function onClick() {
262
+ return onChange([]);
263
+ },
193
264
  isLink: true,
194
265
  isDestructive: true,
195
266
  children: (0, _i18n.__)('Clear all', 'newspack-plugin')
196
267
  })]
197
- }), selections.map(selection => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
198
- className: "newspack-autocomplete-with-suggestions__selected-item-button",
199
- isTertiary: true,
200
- onClick: () => onChange(selections.filter(_selection => _selection.value !== selection.value)),
201
- children: selection.label
202
- }, selection.value))]
268
+ }), selections.map(function (selection) {
269
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
270
+ className: "newspack-autocomplete-with-suggestions__selected-item-button",
271
+ isTertiary: true,
272
+ onClick: function onClick() {
273
+ return onChange(selections.filter(function (_selection) {
274
+ return _selection.value !== selection.value;
275
+ }));
276
+ },
277
+ children: selection.label
278
+ }, selection.value);
279
+ })]
203
280
  });
204
281
  };
205
282
 
206
283
  /**
207
284
  * Render post type select dropdown.
208
285
  */
209
- const renderPostTypeSelect = () => {
286
+ var renderPostTypeSelect = function renderPostTypeSelect() {
210
287
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
211
288
  label: (0, _i18n.sprintf)(
212
289
  // Translators: %s: The name of the type.
213
290
  (0, _i18n.__)('%s type', 'newspack-plugin'), postTypeLabel.charAt(0).toUpperCase() + postTypeLabel.slice(1)),
214
291
  value: postTypeToSearch,
215
- options: postTypes.map(postTypeOption => ({
216
- label: postTypeOption.label,
217
- value: postTypeOption.slug
218
- })),
219
- onChange: _postType => setPostTypeToSearch(_postType)
292
+ options: postTypes.map(function (postTypeOption) {
293
+ return {
294
+ label: postTypeOption.label,
295
+ value: postTypeOption.slug
296
+ };
297
+ }),
298
+ onChange: function onChange(_postType) {
299
+ return setPostTypeToSearch(_postType);
300
+ }
220
301
  });
221
302
  };
222
303
 
@@ -225,19 +306,25 @@ const AutocompleteWithSuggestions = ({
225
306
  *
226
307
  * @param {Object} suggestion Suggestion object with value and label keys.
227
308
  */
228
- const renderSuggestion = suggestion => {
309
+ var renderSuggestion = function renderSuggestion(suggestion) {
229
310
  if (multiSelect) {
230
- const selections = selectedPost ? [...selectedItems, selectedPost] : [...selectedItems];
231
- const isSelected = !!selections.find(_selection => parseInt(_selection.value) === parseInt(suggestion.value) && _selection.label === suggestion.label);
311
+ var selections = selectedPost ? [].concat((0, _toConsumableArray2["default"])(selectedItems), [selectedPost]) : (0, _toConsumableArray2["default"])(selectedItems);
312
+ var isSelected = !!selections.find(function (_selection) {
313
+ return parseInt(_selection.value) === parseInt(suggestion.value) && _selection.label === suggestion.label;
314
+ });
232
315
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
233
316
  checked: isSelected,
234
- onChange: () => handleOnChange([suggestion]),
317
+ onChange: function onChange() {
318
+ return handleOnChange([suggestion]);
319
+ },
235
320
  label: suggestion.label
236
321
  }, suggestion.value);
237
322
  }
238
323
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
239
324
  isLink: true,
240
- onClick: () => handleOnChange([suggestion]),
325
+ onClick: function onClick() {
326
+ return handleOnChange([suggestion]);
327
+ },
241
328
  children: suggestion.label
242
329
  }, suggestion.value);
243
330
  };
@@ -245,11 +332,11 @@ const AutocompleteWithSuggestions = ({
245
332
  /**
246
333
  * Render a list of suggestions that can be clicked to select instead of searching by title.
247
334
  */
248
- const renderSuggestions = () => {
335
+ var renderSuggestions = function renderSuggestions() {
249
336
  if (0 === suggestions.length) {
250
337
  return null;
251
338
  }
252
- const className = multiSelect ? 'newspack-autocomplete-with-suggestions__search-suggestions-multiselect' : 'newspack-autocomplete-with-suggestions__search-suggestions';
339
+ var className = multiSelect ? 'newspack-autocomplete-with-suggestions__search-suggestions-multiselect' : 'newspack-autocomplete-with-suggestions__search-suggestions';
253
340
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
254
341
  children: [!hideHelp && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
255
342
  className: "newspack-autocomplete-with-suggestions__label",
@@ -259,7 +346,9 @@ const AutocompleteWithSuggestions = ({
259
346
  children: [suggestions.map(renderSuggestion), suggestions.length < (maxItemsToSuggest || maxSuggestions) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
260
347
  disabled: isLoadingMore,
261
348
  isSecondary: true,
262
- onClick: () => setIsLoadingMore(true),
349
+ onClick: function onClick() {
350
+ return setIsLoadingMore(true);
351
+ },
263
352
  children: isLoadingMore ? (0, _i18n.__)('Loading…', 'newspack-plugin') : (0, _i18n.__)('Load more', 'newspack-plugin')
264
353
  })]
265
354
  })]
@@ -270,8 +359,22 @@ const AutocompleteWithSuggestions = ({
270
359
  children: [0 < selectedItems.length && renderSelections(), 1 < postTypes.length && renderPostTypeSelect(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.AutocompleteTokenField, {
271
360
  tokens: [],
272
361
  onChange: handleOnChange,
273
- fetchSuggestions: async search => handleFetchSuggestions(search, 0, postTypeToSearch),
274
- fetchSavedInfo: postIds => handleFetchSaved(postIds),
362
+ fetchSuggestions: (/*#__PURE__*/function () {
363
+ var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee3(search) {
364
+ return _regenerator().w(function (_context3) {
365
+ while (1) switch (_context3.n) {
366
+ case 0:
367
+ return _context3.a(2, handleFetchSuggestions(search, 0, postTypeToSearch));
368
+ }
369
+ }, _callee3);
370
+ }));
371
+ return function (_x2) {
372
+ return _ref4.apply(this, arguments);
373
+ };
374
+ }()),
375
+ fetchSavedInfo: function fetchSavedInfo(postIds) {
376
+ return handleFetchSaved(postIds);
377
+ },
275
378
  label: label,
276
379
  loading: isLoading,
277
380
  help: !hideHelp && help,
@@ -279,4 +382,4 @@ const AutocompleteWithSuggestions = ({
279
382
  }), renderSuggestions()]
280
383
  });
281
384
  };
282
- var _default = exports.default = AutocompleteWithSuggestions;
385
+ var _default = exports["default"] = AutocompleteWithSuggestions;
@@ -0,0 +1,32 @@
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
+ require("./style.scss");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+
15
+ /**
16
+ * External dependencies
17
+ */
18
+
19
+ /**
20
+ * Badge component
21
+ */
22
+ var Badge = function Badge(_ref) {
23
+ var text = _ref.text,
24
+ _ref$level = _ref.level,
25
+ level = _ref$level === void 0 ? 'default' : _ref$level;
26
+ var classes = (0, _classnames["default"])('newspack-badge', "is-".concat(level));
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
28
+ className: classes,
29
+ children: text
30
+ });
31
+ };
32
+ var _default = exports["default"] = Badge;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Badge
3
+ */
4
+
5
+ @use "~@wordpress/base-styles/colors" as wp-colors;
6
+ @use "../../../colors/colors.module" as colors;
7
+
8
+ $badge-colors: (
9
+ "info": colors.$primary-600,
10
+ "warning": wp-colors.$alert-yellow,
11
+ "error": wp-colors.$alert-red,
12
+ "success": wp-colors.$alert-green,
13
+ );
14
+
15
+ .newspack-badge {
16
+ background-color: color-mix(in srgb, wp-colors.$white 90%, var(--base-color));
17
+ border-radius: 2px;
18
+ color: color-mix(in srgb, wp-colors.$black 50%, var(--base-color));
19
+ display: block;
20
+ flex: 0 0 auto;
21
+ font-size: 12px;
22
+ line-height: 1.5;
23
+ padding: 1px 4px;
24
+
25
+ &:where(.is-default) {
26
+ background-color: wp-colors.$gray-100;
27
+ color: wp-colors.$gray-800;
28
+ }
29
+
30
+ // Generate color variants
31
+ @each $type, $color in $badge-colors {
32
+ &.is-#{$type} {
33
+ --base-color: #{$color};
34
+ }
35
+ }
36
+ }
@@ -1,49 +1,53 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.default = void 0;
7
+ exports["default"] = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
10
  var _color = require("../utils/color");
8
11
  var _jsxRuntime = require("react/jsx-runtime");
12
+ var _excluded = ["hexColor", "isInverted", "children"];
9
13
  /**
10
14
  * Box Contrast
11
15
  *
12
16
  * can be used to dynamically assign black or white color/background-color based on a hex color.
13
17
  * Black/white can be assigned to either text or background-color.
14
18
  */
15
-
16
19
  /**
17
20
  * Dependencies
18
21
  */
19
-
20
22
  /**
21
23
  * Box Contrast component
22
24
  *
23
25
  * @return JSX.Element
24
- */const BoxContrast = ({
25
- hexColor,
26
- isInverted = false,
27
- children,
28
- ...props
29
- }) => {
30
- let contrastColor;
26
+ */
27
+ 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; }
28
+ 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; }
29
+ var BoxContrast = function BoxContrast(_ref) {
30
+ var hexColor = _ref.hexColor,
31
+ _ref$isInverted = _ref.isInverted,
32
+ isInverted = _ref$isInverted === void 0 ? false : _ref$isInverted,
33
+ children = _ref.children,
34
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
35
+ var contrastColor;
31
36
  if (hexColor === '#f0f0f0') {
32
37
  contrastColor = '#1e1e1e';
33
38
  } else {
34
39
  contrastColor = (0, _color.getContrast)(hexColor);
35
40
  }
36
- const style = isInverted ? {
41
+ var style = isInverted ? {
37
42
  color: hexColor,
38
43
  backgoundColor: contrastColor
39
44
  } : {
40
45
  backgroundColor: hexColor,
41
46
  color: contrastColor
42
47
  };
43
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
44
- ...props,
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, props), {}, {
45
49
  style: style,
46
50
  children: children
47
- });
51
+ }));
48
52
  };
49
- var _default = exports.default = BoxContrast;
53
+ var _default = exports["default"] = BoxContrast;