newspack-components 4.3.0 → 4.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/DEVELOPMENT.md +868 -0
  3. package/colors/colors.module.scss +52 -2
  4. package/copy-styles.js +3 -2
  5. package/dist/cjs/accordion/index.js +17 -12
  6. package/dist/cjs/action-card/index.js +176 -139
  7. package/dist/cjs/autocomplete-tokenfield/index.js +254 -234
  8. package/dist/cjs/autocomplete-with-latest-posts/index.js +172 -110
  9. package/dist/cjs/autocomplete-with-suggestions/index.js +229 -126
  10. package/dist/cjs/badge/index.js +7 -7
  11. package/dist/cjs/box-contrast/index.js +19 -15
  12. package/dist/cjs/button/index.js +41 -26
  13. package/dist/cjs/button-props/button-props.js +5 -5
  14. package/dist/cjs/button-props/index.js +2 -2
  15. package/dist/cjs/card/core-card.js +110 -52
  16. package/dist/cjs/card/index.js +74 -67
  17. package/dist/cjs/card/style-core.scss +93 -25
  18. package/dist/cjs/card/style.scss +2 -2
  19. package/dist/cjs/card-feature/index.js +141 -0
  20. package/dist/cjs/card-feature/style.scss +75 -0
  21. package/dist/cjs/card-form/index.js +144 -0
  22. package/dist/cjs/card-form/style.scss +20 -0
  23. package/dist/cjs/card-settings-group/index.js +36 -16
  24. package/dist/cjs/card-sortable-list/index.js +176 -140
  25. package/dist/cjs/category-autocomplete/index.js +175 -155
  26. package/dist/cjs/color-picker/index.js +41 -23
  27. package/dist/cjs/color-picker/index.test.js +82 -0
  28. package/dist/cjs/color-picker/style.scss +11 -13
  29. package/dist/cjs/confirm-dialog/index.js +86 -22
  30. package/dist/cjs/consts.js +1 -1
  31. package/dist/cjs/custom-select-control/index.js +39 -28
  32. package/dist/cjs/dataviews/index.js +38 -0
  33. package/dist/cjs/dataviews/style.scss +9 -0
  34. package/dist/cjs/divider/index.js +26 -21
  35. package/dist/cjs/footer/index.js +36 -30
  36. package/dist/cjs/form-token-field/index.js +51 -40
  37. package/dist/cjs/global-notices/index.js +5 -5
  38. package/dist/cjs/grid/index.js +25 -19
  39. package/dist/cjs/grid/style.scss +6 -1
  40. package/dist/cjs/handoff/index.js +204 -156
  41. package/dist/cjs/handoff-message/index.js +12 -7
  42. package/dist/cjs/hooks/index.js +10 -8
  43. package/dist/cjs/hooks/use-confirm-dialog.js +79 -0
  44. package/dist/cjs/hooks/use-unsaved-changes-dialog.js +144 -0
  45. package/dist/cjs/hooks/useObjectState.js +21 -12
  46. package/dist/cjs/hooks/useObjectState.test.js +55 -33
  47. package/dist/cjs/hooks/useOnClickOutside.js +6 -6
  48. package/dist/cjs/hooks/usePrompt.js +10 -13
  49. package/dist/cjs/image-upload/index.js +114 -123
  50. package/dist/cjs/image-upload/index.test.js +11 -13
  51. package/dist/cjs/image-upload/style.scss +12 -40
  52. package/dist/cjs/index.js +136 -104
  53. package/dist/cjs/info-button/index.js +43 -32
  54. package/dist/cjs/integration-icons/active-campaign.js +22 -0
  55. package/dist/cjs/integration-icons/constant-contact.js +28 -0
  56. package/dist/cjs/integration-icons/fundraise-up.js +25 -0
  57. package/dist/cjs/integration-icons/index.js +48 -0
  58. package/dist/cjs/integration-icons/mailchimp.js +19 -0
  59. package/dist/cjs/integration-icons/salesforce.js +17 -0
  60. package/dist/cjs/integration-icons/wisepops.js +20 -0
  61. package/dist/cjs/modal/index.js +22 -19
  62. package/dist/cjs/modal/style.scss +4 -0
  63. package/dist/cjs/newspack-icon/index.js +45 -38
  64. package/dist/cjs/notice/index.js +64 -55
  65. package/dist/cjs/plugin-installer/index.js +259 -253
  66. package/dist/cjs/plugin-settings/SettingsSection.js +66 -60
  67. package/dist/cjs/plugin-settings/index.js +217 -200
  68. package/dist/cjs/plugin-toggle/index.js +192 -199
  69. package/dist/cjs/popover/index.js +41 -28
  70. package/dist/cjs/position-control/index.js +24 -23
  71. package/dist/cjs/progress-bar/index.js +71 -59
  72. package/dist/cjs/progress-bar/index.test.js +62 -68
  73. package/dist/cjs/proxied-imports/router.js +3 -3
  74. package/dist/cjs/radio-control/index.js +40 -27
  75. package/dist/cjs/section-header/index.js +103 -58
  76. package/dist/cjs/section-header/style.scss +31 -11
  77. package/dist/cjs/select-control/ButtonGroupControl.js +26 -21
  78. package/dist/cjs/select-control/GroupedSelectControl.js +41 -35
  79. package/dist/cjs/select-control/index.js +52 -40
  80. package/dist/cjs/settings/MinMaxSetting.js +30 -20
  81. package/dist/cjs/settings/SettingsCard.js +20 -17
  82. package/dist/cjs/settings/SettingsSection.js +22 -21
  83. package/dist/cjs/settings/index.js +5 -5
  84. package/dist/cjs/sortable-newsletter-list-control/index.js +78 -57
  85. package/dist/cjs/steps-list/index.js +44 -34
  86. package/dist/cjs/steps-list-item/index.js +47 -39
  87. package/dist/cjs/style-card/index.js +70 -63
  88. package/dist/cjs/tabbed-navigation/index.js +38 -36
  89. package/dist/cjs/text-control/index.js +27 -25
  90. package/dist/cjs/utils/color.js +4 -4
  91. package/dist/cjs/utils/editor-toolbar-back-button.js +61 -0
  92. package/dist/cjs/utils/index.js +31 -19
  93. package/dist/cjs/utils/style.scss +8 -0
  94. package/dist/cjs/waiting/index.js +48 -37
  95. package/dist/cjs/web-preview/index.js +217 -211
  96. package/dist/cjs/with-wizard/index.js +362 -364
  97. package/dist/cjs/with-wizard/style.scss +4 -54
  98. package/dist/cjs/with-wizard-screen/index.js +54 -58
  99. package/dist/cjs/with-wizard-screen/style.scss +41 -3
  100. package/dist/cjs/wizard/components/WizardError.js +20 -18
  101. package/dist/cjs/wizard/components/WizardSnackbar.js +26 -23
  102. package/dist/cjs/wizard/index.js +176 -114
  103. package/dist/cjs/wizard/store/index.js +171 -123
  104. package/dist/cjs/wizard/store/utils.js +13 -8
  105. package/dist/esm/accordion/index.js +14 -9
  106. package/dist/esm/action-card/index.js +168 -123
  107. package/dist/esm/autocomplete-tokenfield/index.js +248 -222
  108. package/dist/esm/autocomplete-with-latest-posts/index.js +169 -103
  109. package/dist/esm/autocomplete-with-suggestions/index.js +226 -119
  110. package/dist/esm/badge/index.js +5 -5
  111. package/dist/esm/box-contrast/index.js +15 -11
  112. package/dist/esm/button/index.js +39 -21
  113. package/dist/esm/button-props/button-props.js +1 -1
  114. package/dist/esm/card/core-card.js +109 -47
  115. package/dist/esm/card/index.js +69 -54
  116. package/dist/esm/card/style-core.scss +93 -25
  117. package/dist/esm/card/style.scss +2 -2
  118. package/dist/esm/card-feature/index.js +131 -0
  119. package/dist/esm/card-feature/style.scss +75 -0
  120. package/dist/esm/card-form/index.js +134 -0
  121. package/dist/esm/card-form/style.scss +20 -0
  122. package/dist/esm/card-settings-group/index.js +33 -14
  123. package/dist/esm/card-sortable-list/index.js +170 -126
  124. package/dist/esm/category-autocomplete/index.js +168 -140
  125. package/dist/esm/color-picker/index.js +39 -21
  126. package/dist/esm/color-picker/index.test.js +78 -0
  127. package/dist/esm/color-picker/style.scss +11 -13
  128. package/dist/esm/confirm-dialog/index.js +85 -18
  129. package/dist/esm/consts.js +1 -1
  130. package/dist/esm/custom-select-control/index.js +34 -15
  131. package/dist/esm/dataviews/index.js +34 -0
  132. package/dist/esm/dataviews/style.scss +9 -0
  133. package/dist/esm/divider/index.js +24 -16
  134. package/dist/esm/footer/index.js +34 -28
  135. package/dist/esm/form-token-field/index.js +46 -27
  136. package/dist/esm/global-notices/index.js +3 -3
  137. package/dist/esm/grid/index.js +23 -14
  138. package/dist/esm/grid/style.scss +6 -1
  139. package/dist/esm/handoff/index.js +199 -143
  140. package/dist/esm/handoff-message/index.js +10 -6
  141. package/dist/esm/hooks/index.js +8 -6
  142. package/dist/esm/hooks/use-confirm-dialog.js +73 -0
  143. package/dist/esm/hooks/use-unsaved-changes-dialog.js +136 -0
  144. package/dist/esm/hooks/useObjectState.js +19 -9
  145. package/dist/esm/hooks/useObjectState.test.js +54 -32
  146. package/dist/esm/hooks/useOnClickOutside.js +4 -4
  147. package/dist/esm/hooks/usePrompt.js +9 -11
  148. package/dist/esm/image-upload/index.js +110 -111
  149. package/dist/esm/image-upload/index.test.js +11 -13
  150. package/dist/esm/image-upload/style.scss +12 -40
  151. package/dist/esm/index.js +7 -1
  152. package/dist/esm/info-button/index.js +38 -19
  153. package/dist/esm/integration-icons/active-campaign.js +16 -0
  154. package/dist/esm/integration-icons/constant-contact.js +22 -0
  155. package/dist/esm/integration-icons/fundraise-up.js +19 -0
  156. package/dist/esm/integration-icons/index.js +6 -0
  157. package/dist/esm/integration-icons/mailchimp.js +13 -0
  158. package/dist/esm/integration-icons/salesforce.js +11 -0
  159. package/dist/esm/integration-icons/wisepops.js +14 -0
  160. package/dist/esm/modal/index.js +20 -13
  161. package/dist/esm/modal/style.scss +4 -0
  162. package/dist/esm/newspack-icon/index.js +40 -25
  163. package/dist/esm/notice/index.js +59 -42
  164. package/dist/esm/plugin-installer/index.js +255 -243
  165. package/dist/esm/plugin-settings/SettingsSection.js +61 -50
  166. package/dist/esm/plugin-settings/index.js +212 -189
  167. package/dist/esm/plugin-toggle/index.js +187 -190
  168. package/dist/esm/popover/index.js +35 -16
  169. package/dist/esm/position-control/index.js +22 -18
  170. package/dist/esm/progress-bar/index.js +66 -49
  171. package/dist/esm/progress-bar/index.test.js +61 -67
  172. package/dist/esm/radio-control/index.js +34 -15
  173. package/dist/esm/section-header/index.js +102 -57
  174. package/dist/esm/section-header/style.scss +31 -11
  175. package/dist/esm/select-control/ButtonGroupControl.js +23 -18
  176. package/dist/esm/select-control/GroupedSelectControl.js +38 -30
  177. package/dist/esm/select-control/index.js +47 -27
  178. package/dist/esm/settings/MinMaxSetting.js +27 -16
  179. package/dist/esm/settings/SettingsCard.js +18 -13
  180. package/dist/esm/settings/SettingsSection.js +20 -19
  181. package/dist/esm/settings/index.js +3 -3
  182. package/dist/esm/sortable-newsletter-list-control/index.js +74 -53
  183. package/dist/esm/steps-list/index.js +39 -21
  184. package/dist/esm/steps-list-item/index.js +42 -26
  185. package/dist/esm/style-card/index.js +65 -50
  186. package/dist/esm/tabbed-navigation/index.js +35 -33
  187. package/dist/esm/text-control/index.js +25 -19
  188. package/dist/esm/utils/color.js +4 -4
  189. package/dist/esm/utils/editor-toolbar-back-button.js +53 -0
  190. package/dist/esm/utils/index.js +29 -16
  191. package/dist/esm/utils/style.scss +8 -0
  192. package/dist/esm/waiting/index.js +43 -24
  193. package/dist/esm/web-preview/index.js +213 -201
  194. package/dist/esm/with-wizard/index.js +360 -358
  195. package/dist/esm/with-wizard/style.scss +4 -54
  196. package/dist/esm/with-wizard-screen/index.js +48 -46
  197. package/dist/esm/with-wizard-screen/style.scss +41 -3
  198. package/dist/esm/wizard/components/WizardError.js +18 -16
  199. package/dist/esm/wizard/components/WizardSnackbar.js +23 -17
  200. package/dist/esm/wizard/index.js +171 -103
  201. package/dist/esm/wizard/store/index.js +169 -116
  202. package/dist/esm/wizard/store/utils.js +13 -6
  203. package/package.json +30 -16
  204. package/release.config.js +1 -0
  205. package/shared/hooks/use-coauthors.js +195 -27
  206. package/shared/hooks/use-coauthors.test.js +232 -6
  207. package/shared/scss/_mixins.scss +13 -5
  208. package/src/accordion/index.js +8 -7
  209. package/src/action-card/index.js +15 -1
  210. package/src/badge/index.tsx +3 -1
  211. package/src/card/core-card.js +95 -18
  212. package/src/card/index.js +1 -0
  213. package/src/card/style-core.scss +93 -25
  214. package/src/card/style.scss +2 -2
  215. package/src/card-feature/README.md +188 -0
  216. package/src/card-feature/index.tsx +186 -0
  217. package/src/card-feature/style.scss +75 -0
  218. package/src/card-form/README.md +113 -0
  219. package/src/card-form/index.tsx +128 -0
  220. package/src/card-form/style.scss +20 -0
  221. package/src/card-settings-group/index.tsx +28 -3
  222. package/src/card-sortable-list/index.tsx +27 -4
  223. package/src/color-picker/index.js +15 -8
  224. package/src/color-picker/index.test.js +52 -0
  225. package/src/color-picker/style.scss +11 -13
  226. package/src/confirm-dialog/README.md +128 -0
  227. package/src/confirm-dialog/index.tsx +74 -6
  228. package/src/dataviews/index.tsx +34 -0
  229. package/src/dataviews/style.scss +9 -0
  230. package/src/grid/style.scss +6 -1
  231. package/src/handoff/README.md +93 -0
  232. package/src/handoff/index.js +46 -8
  233. package/src/hooks/index.ts +2 -1
  234. package/src/hooks/use-confirm-dialog.tsx +80 -0
  235. package/src/hooks/use-unsaved-changes-dialog.tsx +140 -0
  236. package/src/image-upload/index.js +10 -15
  237. package/src/image-upload/style.scss +12 -40
  238. package/src/index.js +7 -1
  239. package/src/integration-icons/active-campaign.js +14 -0
  240. package/src/integration-icons/constant-contact.js +22 -0
  241. package/src/integration-icons/fundraise-up.js +18 -0
  242. package/src/integration-icons/index.js +6 -0
  243. package/src/integration-icons/mailchimp.js +10 -0
  244. package/src/integration-icons/salesforce.js +10 -0
  245. package/src/integration-icons/wisepops.js +14 -0
  246. package/src/modal/style.scss +4 -0
  247. package/src/plugin-installer/index.js +30 -19
  248. package/src/section-header/index.js +56 -24
  249. package/src/section-header/style.scss +31 -11
  250. package/src/select-control/index.js +4 -0
  251. package/src/utils/editor-toolbar-back-button.tsx +48 -0
  252. package/src/utils/index.js +6 -0
  253. package/src/utils/style.scss +8 -0
  254. package/src/with-wizard/style.scss +4 -54
  255. package/src/with-wizard-screen/style.scss +41 -3
  256. package/src/wizard/index.js +90 -53
  257. package/src/wizard/store/index.js +2 -2
  258. package/dist/cjs/button-card/index.js +0 -72
  259. package/dist/cjs/button-card/style.scss +0 -180
  260. package/dist/esm/button-card/index.js +0 -64
  261. package/dist/esm/button-card/style.scss +0 -180
  262. package/src/button-card/index.js +0 -52
  263. package/src/button-card/style.scss +0 -180
@@ -1,3 +1,10 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
7
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1
8
  /**
2
9
  * Style Card
3
10
  */
@@ -20,56 +27,64 @@ import './style.scss';
20
27
  */
21
28
  import classnames from 'classnames';
22
29
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
- class StyleCard extends Component {
24
- /**
25
- * Render.
26
- */
27
- render() {
28
- const {
29
- ariaLabel,
30
- className,
31
- cardTitle,
32
- url,
33
- image,
34
- imageType,
35
- isActive,
36
- onClick,
37
- id
38
- } = this.props;
39
- const classes = classnames('newspack-style-card', isActive && 'newspack-style-card__is-active', className);
40
- return /*#__PURE__*/_jsxs("div", {
41
- className: classes,
42
- id: id,
43
- children: [/*#__PURE__*/_jsxs("div", {
44
- className: "newspack-style-card__image",
45
- children: [imageType === 'html' ? /*#__PURE__*/_jsx("div", {
46
- className: "newspack-style-card__image-html",
47
- dangerouslySetInnerHTML: image
48
- }) : /*#__PURE__*/_jsx("img", {
49
- src: image,
50
- alt: cardTitle + ' ' + __('Thumbnail', 'newspack-plugin')
51
- }), /*#__PURE__*/_jsxs("div", {
52
- className: "newspack-style-card__actions",
53
- children: [isActive ? /*#__PURE__*/_jsx("span", {
54
- className: "newspack-style-card__actions__badge",
55
- children: __('Selected', 'newspack-plugin')
56
- }) : /*#__PURE__*/_jsx(Button, {
57
- variant: "link",
58
- onClick: onClick,
59
- "aria-label": ariaLabel ? ariaLabel : __('Select', 'newspack-plugin') + ' ' + cardTitle,
60
- tabIndex: "0",
61
- children: __('Select', 'newspack-plugin')
62
- }), url && /*#__PURE__*/_jsx(WebPreview, {
63
- url: url,
64
- label: __('View Demo', 'newspack-plugin'),
65
- variant: "link"
30
+ var StyleCard = /*#__PURE__*/function (_Component) {
31
+ function StyleCard() {
32
+ _classCallCheck(this, StyleCard);
33
+ return _callSuper(this, StyleCard, arguments);
34
+ }
35
+ _inherits(StyleCard, _Component);
36
+ return _createClass(StyleCard, [{
37
+ key: "render",
38
+ value:
39
+ /**
40
+ * Render.
41
+ */
42
+ function render() {
43
+ var _this$props = this.props,
44
+ ariaLabel = _this$props.ariaLabel,
45
+ className = _this$props.className,
46
+ cardTitle = _this$props.cardTitle,
47
+ url = _this$props.url,
48
+ image = _this$props.image,
49
+ imageType = _this$props.imageType,
50
+ isActive = _this$props.isActive,
51
+ onClick = _this$props.onClick,
52
+ id = _this$props.id;
53
+ var classes = classnames('newspack-style-card', isActive && 'newspack-style-card__is-active', className);
54
+ return /*#__PURE__*/_jsxs("div", {
55
+ className: classes,
56
+ id: id,
57
+ children: [/*#__PURE__*/_jsxs("div", {
58
+ className: "newspack-style-card__image",
59
+ children: [imageType === 'html' ? /*#__PURE__*/_jsx("div", {
60
+ className: "newspack-style-card__image-html",
61
+ dangerouslySetInnerHTML: image
62
+ }) : /*#__PURE__*/_jsx("img", {
63
+ src: image,
64
+ alt: cardTitle + ' ' + __('Thumbnail', 'newspack-plugin')
65
+ }), /*#__PURE__*/_jsxs("div", {
66
+ className: "newspack-style-card__actions",
67
+ children: [isActive ? /*#__PURE__*/_jsx("span", {
68
+ className: "newspack-style-card__actions__badge",
69
+ children: __('Selected', 'newspack-plugin')
70
+ }) : /*#__PURE__*/_jsx(Button, {
71
+ variant: "link",
72
+ onClick: onClick,
73
+ "aria-label": ariaLabel ? ariaLabel : __('Select', 'newspack-plugin') + ' ' + cardTitle,
74
+ tabIndex: "0",
75
+ children: __('Select', 'newspack-plugin')
76
+ }), url && /*#__PURE__*/_jsx(WebPreview, {
77
+ url: url,
78
+ label: __('View Demo', 'newspack-plugin'),
79
+ variant: "link"
80
+ })]
66
81
  })]
82
+ }), cardTitle && /*#__PURE__*/_jsx("div", {
83
+ className: "newspack-style-card__title",
84
+ children: cardTitle
67
85
  })]
68
- }), cardTitle && /*#__PURE__*/_jsx("div", {
69
- className: "newspack-style-card__title",
70
- children: cardTitle
71
- })]
72
- });
73
- }
74
- }
86
+ });
87
+ }
88
+ }]);
89
+ }(Component);
75
90
  export default StyleCard;
@@ -10,29 +10,28 @@ import Router from '../proxied-imports/router';
10
10
  */
11
11
  import './style.scss';
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- const {
14
- NavLink,
15
- useHistory
16
- } = Router;
17
- const TabbedNavigation = ({
18
- items,
19
- className,
20
- disableUpcoming,
21
- children = null
22
- }) => {
23
- const displayedItems = items.filter(item => !item.isHiddenInTabbedNavigation);
24
- const {
25
- location
26
- } = useHistory();
27
- const currentIndex = findIndex(displayedItems, ['path', location.pathname]);
28
- function isActive(item, match, pathname) {
13
+ var NavLink = Router.NavLink,
14
+ useHistory = Router.useHistory;
15
+ var TabbedNavigation = function TabbedNavigation(_ref) {
16
+ var items = _ref.items,
17
+ className = _ref.className,
18
+ disableUpcoming = _ref.disableUpcoming,
19
+ _ref$children = _ref.children,
20
+ children = _ref$children === void 0 ? null : _ref$children;
21
+ var displayedItems = items.filter(function (item) {
22
+ return !item.isHiddenInTabbedNavigation;
23
+ });
24
+ var _useHistory = useHistory(),
25
+ location = _useHistory.location;
26
+ var currentIndex = findIndex(displayedItems, ['path', location.pathname]);
27
+ function _isActive(item, match, pathname) {
29
28
  if (item.path === pathname) {
30
29
  return true;
31
30
  }
32
- if (Array.isArray(item?.activeTabPaths)) {
33
- return item.activeTabPaths.some(path => {
31
+ if (Array.isArray(item === null || item === void 0 ? void 0 : item.activeTabPaths)) {
32
+ return item.activeTabPaths.some(function (path) {
34
33
  if (path.endsWith('*')) {
35
- const basePath = path.slice(0, -1);
34
+ var basePath = path.slice(0, -1);
36
35
  return pathname.startsWith(basePath);
37
36
  }
38
37
  return item.activeTabPaths.includes(pathname);
@@ -43,20 +42,23 @@ const TabbedNavigation = ({
43
42
  return /*#__PURE__*/_jsxs("div", {
44
43
  className: classnames('newspack-tabbed-navigation', className),
45
44
  children: [/*#__PURE__*/_jsx("ul", {
46
- children: displayedItems.map((item, index) => /*#__PURE__*/_jsx("li", {
47
- children: /*#__PURE__*/_jsx(NavLink, {
48
- to: item.path,
49
- isActive: (match, {
50
- pathname
51
- }) => isActive(item, match, pathname),
52
- exact: item.hasOwnProperty('exact') ? item.exact : true,
53
- activeClassName: 'selected',
54
- className: classnames({
55
- disabled: disableUpcoming && index > currentIndex
56
- }),
57
- children: item.label
58
- })
59
- }, index))
45
+ children: displayedItems.map(function (item, index) {
46
+ return /*#__PURE__*/_jsx("li", {
47
+ children: /*#__PURE__*/_jsx(NavLink, {
48
+ to: item.path,
49
+ isActive: function isActive(match, _ref2) {
50
+ var pathname = _ref2.pathname;
51
+ return _isActive(item, match, pathname);
52
+ },
53
+ exact: item.hasOwnProperty('exact') ? item.exact : true,
54
+ activeClassName: 'selected',
55
+ className: classnames({
56
+ disabled: disableUpcoming && index > currentIndex
57
+ }),
58
+ children: item.label
59
+ })
60
+ }, index);
61
+ })
60
62
  }), children]
61
63
  });
62
64
  };
@@ -1,3 +1,8 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["className", "required", "isWide", "withMargin"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
6
  /**
2
7
  * Text Control
3
8
  */
@@ -19,38 +24,39 @@ import './style.scss';
19
24
  */
20
25
  import classNames from 'classnames';
21
26
  import { jsx as _jsx } from "react/jsx-runtime";
22
- const TextControl = ({
23
- className = '',
24
- required = false,
25
- isWide = false,
26
- withMargin = true,
27
- ...otherProps
28
- }) => {
29
- const wrapperRef = useRef(null);
30
- useEffect(() => {
27
+ var TextControl = function TextControl(_ref) {
28
+ var _ref$className = _ref.className,
29
+ className = _ref$className === void 0 ? '' : _ref$className,
30
+ _ref$required = _ref.required,
31
+ required = _ref$required === void 0 ? false : _ref$required,
32
+ _ref$isWide = _ref.isWide,
33
+ isWide = _ref$isWide === void 0 ? false : _ref$isWide,
34
+ _ref$withMargin = _ref.withMargin,
35
+ withMargin = _ref$withMargin === void 0 ? true : _ref$withMargin,
36
+ otherProps = _objectWithoutProperties(_ref, _excluded);
37
+ var wrapperRef = useRef(null);
38
+ useEffect(function () {
31
39
  if (wrapperRef.current === null) {
32
40
  return;
33
41
  }
34
- const labelEl = wrapperRef.current.querySelector('label');
42
+ var labelEl = wrapperRef.current.querySelector('label');
35
43
  if (labelEl) {
36
44
  labelEl.setAttribute('data-required-text', __('(required)', 'newspack-plugin'));
37
45
  }
38
46
  }, [wrapperRef.current]);
39
- const classes = classNames('newspack-text-control', {
47
+ var classes = classNames('newspack-text-control', {
40
48
  'newspack-text-control--wide': isWide,
41
49
  'newspack-text-control--with-margin': withMargin
42
50
  }, className);
43
51
  return required ? /*#__PURE__*/_jsx("div", {
44
52
  ref: wrapperRef,
45
53
  className: "newspack-text-control--required",
46
- children: /*#__PURE__*/_jsx(BaseComponent, {
54
+ children: /*#__PURE__*/_jsx(BaseComponent, _objectSpread({
47
55
  className: classes,
48
- required: required,
49
- ...otherProps
50
- })
51
- }) : /*#__PURE__*/_jsx(BaseComponent, {
52
- className: classes,
53
- ...otherProps
54
- });
56
+ required: required
57
+ }, otherProps))
58
+ }) : /*#__PURE__*/_jsx(BaseComponent, _objectSpread({
59
+ className: classes
60
+ }, otherProps));
55
61
  };
56
62
  export default TextControl;
@@ -17,12 +17,12 @@ export function getContrast(hexcolor) {
17
17
  }
18
18
 
19
19
  // Convert to RGB value
20
- const r = parseInt(hexcolor.substring(0, 2), 16);
21
- const g = parseInt(hexcolor.substring(2, 4), 16);
22
- const b = parseInt(hexcolor.substring(4), 16);
20
+ var r = parseInt(hexcolor.substring(0, 2), 16);
21
+ var g = parseInt(hexcolor.substring(2, 4), 16);
22
+ var b = parseInt(hexcolor.substring(4), 16);
23
23
 
24
24
  // Get YIQ ratio
25
- const yiq = (r * 299 + g * 587 + b * 114) / 1000;
25
+ var yiq = (r * 299 + g * 587 + b * 114) / 1000;
26
26
 
27
27
  // Check contrast
28
28
  return yiq >= 128 ? 'black' : 'white';
@@ -0,0 +1,53 @@
1
+ /**
2
+ * A utility to add a back button to the editor toolbar.
3
+ */
4
+
5
+ /**
6
+ * WordPress dependencies
7
+ */
8
+ import { __ } from '@wordpress/i18n';
9
+ import { Button, Tooltip } from '@wordpress/components';
10
+ import { subscribe } from '@wordpress/data';
11
+ import domReady from '@wordpress/dom-ready';
12
+ import { createRoot } from '@wordpress/element';
13
+ import { arrowUpLeft } from '@wordpress/icons';
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+ import './style.scss';
19
+ import { jsx as _jsx } from "react/jsx-runtime";
20
+ var WRAPPER_ID = 'newspack-editor-toolbar-wrapper';
21
+ var ToolbarButton = function ToolbarButton(_ref) {
22
+ var href = _ref.href;
23
+ return /*#__PURE__*/_jsx(Tooltip, {
24
+ text: __('Go back', 'newspack-plugin'),
25
+ children: /*#__PURE__*/_jsx(Button, {
26
+ icon: arrowUpLeft,
27
+ label: __('Go back', 'newspack-plugin'),
28
+ href: href
29
+ })
30
+ });
31
+ };
32
+ export var addToolbarBackButton = function addToolbarBackButton() {
33
+ var href = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
34
+ var unsubscribe = subscribe(function () {
35
+ domReady(function () {
36
+ if (document.getElementById(WRAPPER_ID)) {
37
+ return;
38
+ }
39
+ var toolbar = document.querySelector('.editor-header__toolbar');
40
+ if (!toolbar) {
41
+ return;
42
+ }
43
+ var wrapper = document.createElement('div');
44
+ wrapper.id = WRAPPER_ID;
45
+ toolbar.prepend(wrapper);
46
+ var root = createRoot(wrapper);
47
+ root.render(/*#__PURE__*/_jsx(ToolbarButton, {
48
+ href: href
49
+ }));
50
+ unsubscribe();
51
+ });
52
+ });
53
+ };
@@ -1,22 +1,34 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["style"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
6
  /**
2
7
  * WordPress dependencies.
3
8
  */
4
9
  import { ENTER } from '@wordpress/keycodes';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import { addToolbarBackButton } from './editor-toolbar-back-button';
5
15
  import { jsx as _jsx } from "react/jsx-runtime";
6
- const InteractiveDiv = ({
7
- style = {},
8
- ...props
9
- }) => /*#__PURE__*/_jsx("div", {
10
- tabIndex: "0",
11
- role: "button",
12
- onKeyDown: event => ENTER === event.keyCode && props.onClick(),
13
- style: {
14
- cursor: 'pointer',
15
- ...style
16
- },
17
- ...props
18
- });
19
- const confirmAction = message => {
16
+ var InteractiveDiv = function InteractiveDiv(_ref) {
17
+ var _ref$style = _ref.style,
18
+ style = _ref$style === void 0 ? {} : _ref$style,
19
+ props = _objectWithoutProperties(_ref, _excluded);
20
+ return /*#__PURE__*/_jsx("div", _objectSpread({
21
+ tabIndex: "0",
22
+ role: "button",
23
+ onKeyDown: function onKeyDown(event) {
24
+ return ENTER === event.keyCode && props.onClick();
25
+ },
26
+ style: _objectSpread({
27
+ cursor: 'pointer'
28
+ }, style)
29
+ }, props));
30
+ };
31
+ var confirmAction = function confirmAction(message) {
20
32
  // eslint-disable-next-line no-alert
21
33
  if (confirm(message)) {
22
34
  return true;
@@ -24,6 +36,7 @@ const confirmAction = message => {
24
36
  return false;
25
37
  };
26
38
  export default {
27
- InteractiveDiv,
28
- confirmAction
39
+ InteractiveDiv: InteractiveDiv,
40
+ confirmAction: confirmAction,
41
+ addToolbarBackButton: addToolbarBackButton
29
42
  };
@@ -0,0 +1,8 @@
1
+ @use "~@wordpress/base-styles/variables" as wp-vars;
2
+
3
+ #newspack-editor-toolbar-wrapper {
4
+ margin-right: wp-vars.$grid-unit-10;
5
+ .is-fullscreen-mode & {
6
+ display: none;
7
+ }
8
+ }
@@ -1,3 +1,15 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/createClass";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _inherits from "@babel/runtime/helpers/inherits";
8
+ var _excluded = ["className", "isRight", "isLeft", "isCenter", "noMargin"];
9
+ 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; }
10
+ 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; }
11
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
12
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1
13
  /**
2
14
  * Waiting
3
15
  */
@@ -18,29 +30,36 @@ import './style.scss';
18
30
  */
19
31
  import classnames from 'classnames';
20
32
  import { jsx as _jsx } from "react/jsx-runtime";
21
- class Waiting extends Component {
22
- /**
23
- * Render
24
- */
25
- render() {
26
- const {
27
- className,
28
- isRight,
29
- isLeft,
30
- isCenter,
31
- noMargin,
32
- ...otherProps
33
- } = this.props;
34
- const classes = classnames('newspack-waiting', className, {
35
- 'is-right': isRight,
36
- 'is-left': isLeft,
37
- 'is-center': isCenter,
38
- 'no-margin': noMargin
39
- });
40
- return /*#__PURE__*/_jsx(Spinner, {
41
- className: classes,
42
- ...otherProps
43
- });
33
+ var Waiting = /*#__PURE__*/function (_Component) {
34
+ function Waiting() {
35
+ _classCallCheck(this, Waiting);
36
+ return _callSuper(this, Waiting, arguments);
44
37
  }
45
- }
38
+ _inherits(Waiting, _Component);
39
+ return _createClass(Waiting, [{
40
+ key: "render",
41
+ value:
42
+ /**
43
+ * Render
44
+ */
45
+ function render() {
46
+ var _this$props = this.props,
47
+ className = _this$props.className,
48
+ isRight = _this$props.isRight,
49
+ isLeft = _this$props.isLeft,
50
+ isCenter = _this$props.isCenter,
51
+ noMargin = _this$props.noMargin,
52
+ otherProps = _objectWithoutProperties(_this$props, _excluded);
53
+ var classes = classnames('newspack-waiting', className, {
54
+ 'is-right': isRight,
55
+ 'is-left': isLeft,
56
+ 'is-center': isCenter,
57
+ 'no-margin': noMargin
58
+ });
59
+ return /*#__PURE__*/_jsx(Spinner, _objectSpread({
60
+ className: classes
61
+ }, otherProps));
62
+ }
63
+ }]);
64
+ }(Component);
46
65
  export default Waiting;