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
@@ -1,3 +1,7 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ 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; }
4
+ 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
5
  /**
2
6
  * Action Card
3
7
  */
@@ -27,86 +31,118 @@ import classnames from 'classnames';
27
31
  * @return {JSX.Element} ActionCard component.
28
32
  */
29
33
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
30
- const ActionCard = ({
31
- badge,
32
- badgeLevel = 'info',
33
- className,
34
- checkbox,
35
- children,
36
- collapse,
37
- disabled,
38
- title,
39
- description,
40
- handoff,
41
- editLink,
42
- href,
43
- notification,
44
- notificationLevel,
45
- notificationHTML,
46
- actionContent,
47
- actionText,
48
- secondaryActionText,
49
- secondaryDestructive,
50
- id,
51
- image,
52
- imageLink,
53
- indent,
54
- isSmall,
55
- isMedium,
56
- simple,
57
- onClick,
58
- onSecondaryActionClick,
59
- isWaiting,
60
- titleLink,
61
- toggleChecked = false,
62
- toggleOnChange,
63
- hasGreyHeader,
64
- hasWhiteHeader,
65
- noBorder,
66
- isPending,
67
- expandable = false,
68
- isButtonEnabled = false,
69
- // Draggable props. All are required to enable drag sorting.
70
- draggable = false,
71
- dragIndex,
72
- dragWrapperRef,
73
- onDragCallback
74
- }) => {
75
- const [expanded, setExpanded] = useState(false);
76
- const [dragging, setDragging] = useState(false);
77
- const [targetIndex, setTargetIndex] = useState(null);
78
- const [dragRef, setDragRef] = useState(null);
79
- useEffect(() => {
34
+ var ActionCard = function ActionCard(_ref) {
35
+ var badge = _ref.badge,
36
+ badgeLevel = _ref.badgeLevel,
37
+ className = _ref.className,
38
+ checkbox = _ref.checkbox,
39
+ children = _ref.children,
40
+ collapse = _ref.collapse,
41
+ disabled = _ref.disabled,
42
+ title = _ref.title,
43
+ _ref$heading = _ref.heading,
44
+ heading = _ref$heading === void 0 ? 2 : _ref$heading,
45
+ description = _ref.description,
46
+ handoff = _ref.handoff,
47
+ handoffUrl = _ref.handoffUrl,
48
+ bannerText = _ref.bannerText,
49
+ bannerButtonText = _ref.bannerButtonText,
50
+ editLink = _ref.editLink,
51
+ href = _ref.href,
52
+ notification = _ref.notification,
53
+ notificationLevel = _ref.notificationLevel,
54
+ notificationHTML = _ref.notificationHTML,
55
+ actionContent = _ref.actionContent,
56
+ actionText = _ref.actionText,
57
+ secondaryActionText = _ref.secondaryActionText,
58
+ secondaryDestructive = _ref.secondaryDestructive,
59
+ id = _ref.id,
60
+ image = _ref.image,
61
+ imageLink = _ref.imageLink,
62
+ indent = _ref.indent,
63
+ isSmall = _ref.isSmall,
64
+ isMedium = _ref.isMedium,
65
+ simple = _ref.simple,
66
+ onClick = _ref.onClick,
67
+ onSecondaryActionClick = _ref.onSecondaryActionClick,
68
+ isWaiting = _ref.isWaiting,
69
+ titleLink = _ref.titleLink,
70
+ _ref$toggleChecked = _ref.toggleChecked,
71
+ toggleChecked = _ref$toggleChecked === void 0 ? false : _ref$toggleChecked,
72
+ toggleOnChange = _ref.toggleOnChange,
73
+ _ref$togglePosition = _ref.togglePosition,
74
+ togglePosition = _ref$togglePosition === void 0 ? 'leading' : _ref$togglePosition,
75
+ hasGreyHeader = _ref.hasGreyHeader,
76
+ hasWhiteHeader = _ref.hasWhiteHeader,
77
+ noBorder = _ref.noBorder,
78
+ isPending = _ref.isPending,
79
+ _ref$expandable = _ref.expandable,
80
+ expandable = _ref$expandable === void 0 ? false : _ref$expandable,
81
+ isExpanded = _ref.isExpanded,
82
+ _ref$isButtonEnabled = _ref.isButtonEnabled,
83
+ isButtonEnabled = _ref$isButtonEnabled === void 0 ? false : _ref$isButtonEnabled,
84
+ _ref$draggable = _ref.draggable,
85
+ draggable = _ref$draggable === void 0 ? false : _ref$draggable,
86
+ dragIndex = _ref.dragIndex,
87
+ dragWrapperRef = _ref.dragWrapperRef,
88
+ onDragCallback = _ref.onDragCallback;
89
+ var _useState = useState(Boolean(isExpanded)),
90
+ _useState2 = _slicedToArray(_useState, 2),
91
+ expanded = _useState2[0],
92
+ setExpanded = _useState2[1];
93
+ var _useState3 = useState(false),
94
+ _useState4 = _slicedToArray(_useState3, 2),
95
+ dragging = _useState4[0],
96
+ setDragging = _useState4[1];
97
+ var _useState5 = useState(null),
98
+ _useState6 = _slicedToArray(_useState5, 2),
99
+ targetIndex = _useState6[0],
100
+ setTargetIndex = _useState6[1];
101
+ var _useState7 = useState(null),
102
+ _useState8 = _slicedToArray(_useState7, 2),
103
+ dragRef = _useState8[0],
104
+ setDragRef = _useState8[1];
105
+ useEffect(function () {
106
+ if (typeof isExpanded === 'boolean') {
107
+ setExpanded(isExpanded);
108
+ }
109
+ }, [isExpanded]);
110
+ useEffect(function () {
80
111
  if (dragWrapperRef && !dragRef) {
81
112
  setDragRef(dragWrapperRef);
82
113
  }
83
- }, [dragWrapperRef?.current]);
84
- useEffect(() => {
114
+ }, [dragWrapperRef === null || dragWrapperRef === void 0 ? void 0 : dragWrapperRef.current]);
115
+ useEffect(function () {
85
116
  if (collapse && expanded) {
86
117
  setExpanded(false);
87
118
  }
88
119
  }, [collapse]);
89
- const hasChildren = notification || children;
90
- const classes = classnames('newspack-action-card', simple && 'newspack-card--is-clickable', hasGreyHeader && 'newspack-card--has-grey-header', hasWhiteHeader && 'newspack-card--has-white-header', hasChildren && 'newspack-card--has-children', indent && 'newspack-card--indent', isSmall && 'is-small', isMedium && 'is-medium', checkbox && 'has-checkbox', expandable && 'is-expandable', draggable && 'is-draggable', actionContent && 'has-action-content', className);
91
- const backgroundImageStyles = url => {
120
+ var hasChildren = notification || children;
121
+ var classes = classnames('newspack-action-card', simple && 'newspack-card--is-clickable', hasGreyHeader && 'newspack-card--has-grey-header', hasWhiteHeader && 'newspack-card--has-white-header', hasChildren && 'newspack-card--has-children', indent && 'newspack-card--indent', isSmall && 'is-small', isMedium && 'is-medium', checkbox && 'has-checkbox', expandable && 'is-expandable', draggable && 'is-draggable', actionContent && 'has-action-content', className);
122
+ var backgroundImageStyles = function backgroundImageStyles(url) {
92
123
  return url ? {
93
- backgroundImage: `url(${url})`
124
+ backgroundImage: "url(".concat(url, ")")
94
125
  } : {};
95
126
  };
96
- const titleProps = toggleOnChange && !titleLink && !disabled ? {
97
- onClick: () => toggleOnChange(!toggleChecked),
127
+ var titleProps = toggleOnChange && !titleLink && !disabled ? {
128
+ onClick: function onClick() {
129
+ return toggleOnChange(!toggleChecked);
130
+ },
98
131
  tabIndex: '0'
99
132
  } : {};
100
- const hasInternalLink = href && href.indexOf('http') !== 0;
101
- const isDisplayingSecondaryAction = secondaryActionText && onSecondaryActionClick;
102
- const badges = !Array.isArray(badge) && badge ? [badge] : badge;
103
- const Component = () => /*#__PURE__*/_jsxs(_Fragment, {
133
+ var togglePositionClass = togglePosition === 'trailing' ? 'is-toggle-trailing' : 'is-toggle-leading';
134
+ var hasInternalLink = href && href.indexOf('http') !== 0;
135
+ var isDisplayingSecondaryAction = secondaryActionText && onSecondaryActionClick;
136
+ var badges = !Array.isArray(badge) && badge ? [badge] : badge;
137
+ var HeadingTag = "h".concat(heading);
138
+ var cardContent = /*#__PURE__*/_jsxs(_Fragment, {
104
139
  children: [/*#__PURE__*/_jsxs("div", {
105
140
  className: "newspack-action-card__region newspack-action-card__region-top",
106
141
  children: [toggleOnChange && /*#__PURE__*/_jsx(ToggleControl, {
107
142
  checked: toggleChecked,
108
143
  onChange: toggleOnChange,
109
- disabled: disabled
144
+ disabled: disabled,
145
+ className: togglePositionClass
110
146
  }), image && !toggleOnChange && /*#__PURE__*/_jsx("div", {
111
147
  className: "newspack-action-card__region newspack-action-card__region-left",
112
148
  children: /*#__PURE__*/_jsx("a", {
@@ -130,22 +166,26 @@ const ActionCard = ({
130
166
  columns: 1,
131
167
  gutter: 8,
132
168
  noMargin: true,
133
- children: [/*#__PURE__*/_jsxs("h2", {
134
- children: [/*#__PURE__*/_jsxs("span", {
135
- className: "newspack-action-card__title",
136
- ...titleProps,
169
+ children: [/*#__PURE__*/_jsxs(HeadingTag, {
170
+ children: [/*#__PURE__*/_jsxs("span", _objectSpread(_objectSpread({
171
+ className: "newspack-action-card__title"
172
+ }, titleProps), {}, {
137
173
  children: [titleLink && /*#__PURE__*/_jsx("a", {
138
174
  href: titleLink,
139
175
  children: title
140
176
  }), !titleLink && expandable && /*#__PURE__*/_jsx(Button, {
141
177
  isLink: true,
142
- onClick: () => setExpanded(!expanded),
178
+ onClick: function onClick() {
179
+ return setExpanded(!expanded);
180
+ },
143
181
  children: title
144
182
  }), !titleLink && !expandable && title]
145
- }), badges?.length && badges.map((badgeText, i) => /*#__PURE__*/_jsx("span", {
146
- className: `newspack-action-card__badge newspack-action-card__badge-level-${badgeLevel}`,
147
- children: badgeText
148
- }, `badge-${i}`))]
183
+ })), (badges === null || badges === void 0 ? void 0 : badges.length) && badges.map(function (badgeText, i) {
184
+ return /*#__PURE__*/_jsx("span", {
185
+ className: "newspack-action-card__badge newspack-action-card__badge-level-".concat(badgeLevel),
186
+ children: badgeText
187
+ }, "badge-".concat(i));
188
+ })]
149
189
  }), description && /*#__PURE__*/_jsxs("p", {
150
190
  children: [typeof description === 'string' && description, typeof description === 'function' && description()]
151
191
  })]
@@ -155,6 +195,15 @@ const ActionCard = ({
155
195
  children: [actionContent && actionContent, actionText && (handoff ? /*#__PURE__*/_jsx(Handoff, {
156
196
  plugin: handoff,
157
197
  editLink: editLink,
198
+ bannerText: bannerText,
199
+ bannerButtonText: bannerButtonText,
200
+ compact: true,
201
+ isLink: true,
202
+ children: actionText
203
+ }) : handoffUrl ? /*#__PURE__*/_jsx(Handoff, {
204
+ url: handoffUrl,
205
+ bannerText: bannerText,
206
+ bannerButtonText: bannerButtonText,
158
207
  compact: true,
159
208
  isLink: true,
160
209
  children: actionText
@@ -182,7 +231,9 @@ const ActionCard = ({
182
231
  children: secondaryActionText
183
232
  })]
184
233
  }), expandable && /*#__PURE__*/_jsx(Button, {
185
- onClick: () => setExpanded(!expanded),
234
+ onClick: function onClick() {
235
+ return setExpanded(!expanded);
236
+ },
186
237
  children: /*#__PURE__*/_jsx(Icon, {
187
238
  icon: expanded ? chevronUp : chevronDown,
188
239
  height: 24,
@@ -207,17 +258,17 @@ const ActionCard = ({
207
258
  isWarning: true,
208
259
  rawHTML: notificationHTML
209
260
  })]
210
- }), children && (expandable && expanded || !expandable) && /*#__PURE__*/_jsx("div", {
261
+ }), children && (expandable && expanded || !expandable) ? /*#__PURE__*/_jsx("div", {
211
262
  className: "newspack-action-card__region-children",
212
263
  children: children
213
- })]
264
+ }) : null]
214
265
  });
215
- if (draggable && dragRef?.current && typeof dragIndex === 'number' && onDragCallback && id) {
216
- let wrapperRect = dragRef.current.getBoundingClientRect();
217
- let draggableCards = Array.prototype.slice.call(dragRef.current.querySelectorAll('.newspack-action-card__draggable-wrapper'));
218
- const isFirstTarget = dragIndex === 0;
219
- const isLastTarget = dragIndex === draggableCards.length - 1;
220
- const handleDragStart = () => {
266
+ if (draggable && dragRef !== null && dragRef !== void 0 && dragRef.current && typeof dragIndex === 'number' && onDragCallback && id) {
267
+ var wrapperRect = dragRef.current.getBoundingClientRect();
268
+ var draggableCards = Array.prototype.slice.call(dragRef.current.querySelectorAll('.newspack-action-card__draggable-wrapper'));
269
+ var isFirstTarget = dragIndex === 0;
270
+ var isLastTarget = dragIndex === draggableCards.length - 1;
271
+ var handleDragStart = function handleDragStart() {
221
272
  draggableCards = Array.prototype.slice.call(dragRef.current.querySelectorAll('.newspack-action-card__draggable-wrapper'));
222
273
  wrapperRect = dragRef.current.getBoundingClientRect();
223
274
  if (dragging) {
@@ -226,17 +277,17 @@ const ActionCard = ({
226
277
  setTargetIndex(dragIndex);
227
278
  setDragging(true);
228
279
  };
229
- const handleDragEnd = () => {
280
+ var handleDragEnd = function handleDragEnd() {
230
281
  if (targetIndex !== null && targetIndex !== dragIndex) {
231
282
  onDragCallback(targetIndex);
232
283
  }
233
284
  setTargetIndex(null);
234
285
  setDragging(false);
235
286
  };
236
- const handleDragOver = e => {
237
- const isDraggingToTop = e.pageY <= wrapperRect.top + window.scrollY;
238
- const isDraggingToBottom = e.pageY >= wrapperRect.bottom + window.scrollY;
239
- const target = e.target.closest('.newspack-action-card__draggable-wrapper');
287
+ var handleDragOver = function handleDragOver(e) {
288
+ var isDraggingToTop = e.pageY <= wrapperRect.top + window.scrollY;
289
+ var isDraggingToBottom = e.pageY >= wrapperRect.bottom + window.scrollY;
290
+ var target = e.target.closest('.newspack-action-card__draggable-wrapper');
240
291
  if (isDraggingToTop || isDraggingToBottom || target) {
241
292
  setTargetIndex(draggableCards.indexOf(target));
242
293
 
@@ -258,49 +309,52 @@ const ActionCard = ({
258
309
  };
259
310
  return /*#__PURE__*/_jsx("div", {
260
311
  className: 'newspack-action-card__draggable-wrapper' + (dragging ? ' is-dragging' : ''),
261
- id: `draggable-card-${id}`,
312
+ id: "draggable-card-".concat(id),
262
313
  children: /*#__PURE__*/_jsx(Draggable, {
263
- elementId: `draggable-card-${id}`,
314
+ elementId: "draggable-card-".concat(id),
264
315
  transferData: {},
265
316
  onDragStart: handleDragStart,
266
317
  onDragEnd: handleDragEnd,
267
318
  onDragOver: handleDragOver,
268
- children: ({
269
- onDraggableStart,
270
- onDraggableEnd
271
- }) => /*#__PURE__*/_jsxs(Card, {
272
- className: classes,
273
- onClick: simple && onClick,
274
- id: id !== null && id !== void 0 ? id : null,
275
- noBorder: noBorder,
276
- children: [/*#__PURE__*/_jsxs("div", {
277
- className: "newspack-action-card__draggable-controls",
278
- children: [/*#__PURE__*/_jsx("div", {
279
- className: "drag-handle",
280
- draggable: true,
281
- onDragStart: onDraggableStart,
282
- onDragEnd: onDraggableEnd,
283
- children: /*#__PURE__*/_jsx(Icon, {
284
- icon: dragHandle,
285
- height: 18,
286
- width: 18
287
- })
288
- }), /*#__PURE__*/_jsxs("div", {
289
- className: "movers",
290
- children: [/*#__PURE__*/_jsx(Button, {
291
- icon: chevronUp,
292
- onClick: () => onDragCallback(dragIndex - 1),
293
- disabled: isFirstTarget,
294
- label: __('Move one position up', 'newspack-plugin')
295
- }), /*#__PURE__*/_jsx(Button, {
296
- icon: chevronDown,
297
- onClick: () => onDragCallback(dragIndex + 1),
298
- disabled: isLastTarget,
299
- label: __('Move one position down', 'newspack-plugin')
319
+ children: function children(_ref2) {
320
+ var onDraggableStart = _ref2.onDraggableStart,
321
+ onDraggableEnd = _ref2.onDraggableEnd;
322
+ return /*#__PURE__*/_jsxs(Card, {
323
+ className: classes,
324
+ onClick: simple && onClick,
325
+ id: id !== null && id !== void 0 ? id : null,
326
+ noBorder: noBorder,
327
+ children: [/*#__PURE__*/_jsxs("div", {
328
+ className: "newspack-action-card__draggable-controls",
329
+ children: [/*#__PURE__*/_jsx("div", {
330
+ className: "drag-handle",
331
+ draggable: true,
332
+ onDragStart: onDraggableStart,
333
+ onDragEnd: onDraggableEnd,
334
+ children: /*#__PURE__*/_jsx(Icon, {
335
+ icon: dragHandle
336
+ })
337
+ }), /*#__PURE__*/_jsxs("div", {
338
+ className: "movers",
339
+ children: [/*#__PURE__*/_jsx(Button, {
340
+ icon: chevronUp,
341
+ onClick: function onClick() {
342
+ return onDragCallback(dragIndex - 1);
343
+ },
344
+ disabled: isFirstTarget,
345
+ label: __('Move one position up', 'newspack-plugin')
346
+ }), /*#__PURE__*/_jsx(Button, {
347
+ icon: chevronDown,
348
+ onClick: function onClick() {
349
+ return onDragCallback(dragIndex + 1);
350
+ },
351
+ disabled: isLastTarget,
352
+ label: __('Move one position down', 'newspack-plugin')
353
+ })]
300
354
  })]
301
- })]
302
- }), /*#__PURE__*/_jsx(Component, {})]
303
- })
355
+ }), cardContent]
356
+ });
357
+ }
304
358
  })
305
359
  });
306
360
  }
@@ -309,7 +363,7 @@ const ActionCard = ({
309
363
  onClick: simple && onClick,
310
364
  id: id !== null && id !== void 0 ? id : null,
311
365
  noBorder: noBorder,
312
- children: /*#__PURE__*/_jsx(Component, {})
366
+ children: cardContent
313
367
  });
314
368
  };
315
369
  export default ActionCard;
@@ -260,6 +260,16 @@
260
260
  @media screen and (min-width: 744px) {
261
261
  margin-bottom: 0;
262
262
  margin-right: 24px;
263
+
264
+ &.is-toggle-trailing {
265
+ margin-left: 24px;
266
+ margin-right: 0;
267
+ order: 999;
268
+ }
269
+ }
270
+
271
+ label {
272
+ display: none;
263
273
  }
264
274
 
265
275
  .components-base-control__field {
@@ -433,13 +443,21 @@
433
443
  text-decoration: inherit;
434
444
  }
435
445
 
436
- .newspack-action-card__region-children {
437
- border-top: 1px solid wp-colors.$gray-100;
446
+ > .newspack-action-card__region-children {
447
+ border-top: 1px solid wp-colors.$gray-300;
438
448
  padding-top: 24px;
439
449
 
440
450
  + .newspack-action-card__region-children {
441
451
  border-top: none;
442
452
  }
453
+
454
+ > * + * {
455
+ margin-top: 24px !important;
456
+ }
457
+
458
+ .newspack-action-card__region-children:has(> div:not(:empty)) {
459
+ margin-top: 16px;
460
+ }
443
461
  }
444
462
 
445
463
  &.is-medium .newspack-action-card__region-children {
@@ -469,6 +487,11 @@
469
487
  margin-left: 8px;
470
488
  }
471
489
  }
490
+
491
+ hr:not(.newspack-divider) {
492
+ background: wp-colors.$gray-100;
493
+ margin: 0;
494
+ }
472
495
  }
473
496
 
474
497
  .newspack-card {