newspack-components 4.3.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 (262) 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 +176 -139
  6. package/dist/cjs/autocomplete-tokenfield/index.js +254 -234
  7. package/dist/cjs/autocomplete-with-latest-posts/index.js +172 -110
  8. package/dist/cjs/autocomplete-with-suggestions/index.js +229 -126
  9. package/dist/cjs/badge/index.js +7 -7
  10. package/dist/cjs/box-contrast/index.js +19 -15
  11. package/dist/cjs/button/index.js +41 -26
  12. package/dist/cjs/button-props/button-props.js +5 -5
  13. package/dist/cjs/button-props/index.js +2 -2
  14. package/dist/cjs/card/core-card.js +110 -52
  15. package/dist/cjs/card/index.js +74 -67
  16. package/dist/cjs/card/style-core.scss +93 -25
  17. package/dist/cjs/card/style.scss +2 -2
  18. package/dist/cjs/card-feature/index.js +141 -0
  19. package/dist/cjs/card-feature/style.scss +75 -0
  20. package/dist/cjs/card-form/index.js +144 -0
  21. package/dist/cjs/card-form/style.scss +20 -0
  22. package/dist/cjs/card-settings-group/index.js +36 -16
  23. package/dist/cjs/card-sortable-list/index.js +176 -140
  24. package/dist/cjs/category-autocomplete/index.js +175 -155
  25. package/dist/cjs/color-picker/index.js +41 -23
  26. package/dist/cjs/color-picker/index.test.js +82 -0
  27. package/dist/cjs/color-picker/style.scss +11 -13
  28. package/dist/cjs/confirm-dialog/index.js +86 -22
  29. package/dist/cjs/consts.js +1 -1
  30. package/dist/cjs/custom-select-control/index.js +39 -28
  31. package/dist/cjs/dataviews/index.js +38 -0
  32. package/dist/cjs/dataviews/style.scss +9 -0
  33. package/dist/cjs/divider/index.js +26 -21
  34. package/dist/cjs/footer/index.js +36 -30
  35. package/dist/cjs/form-token-field/index.js +51 -40
  36. package/dist/cjs/global-notices/index.js +5 -5
  37. package/dist/cjs/grid/index.js +25 -19
  38. package/dist/cjs/grid/style.scss +6 -1
  39. package/dist/cjs/handoff/index.js +204 -156
  40. package/dist/cjs/handoff-message/index.js +12 -7
  41. package/dist/cjs/hooks/index.js +10 -8
  42. package/dist/cjs/hooks/use-confirm-dialog.js +79 -0
  43. package/dist/cjs/hooks/use-unsaved-changes-dialog.js +144 -0
  44. package/dist/cjs/hooks/useObjectState.js +21 -12
  45. package/dist/cjs/hooks/useObjectState.test.js +55 -33
  46. package/dist/cjs/hooks/useOnClickOutside.js +6 -6
  47. package/dist/cjs/hooks/usePrompt.js +10 -13
  48. package/dist/cjs/image-upload/index.js +114 -123
  49. package/dist/cjs/image-upload/index.test.js +11 -13
  50. package/dist/cjs/image-upload/style.scss +12 -40
  51. package/dist/cjs/index.js +136 -104
  52. package/dist/cjs/info-button/index.js +43 -32
  53. package/dist/cjs/integration-icons/active-campaign.js +22 -0
  54. package/dist/cjs/integration-icons/constant-contact.js +28 -0
  55. package/dist/cjs/integration-icons/fundraise-up.js +25 -0
  56. package/dist/cjs/integration-icons/index.js +48 -0
  57. package/dist/cjs/integration-icons/mailchimp.js +19 -0
  58. package/dist/cjs/integration-icons/salesforce.js +17 -0
  59. package/dist/cjs/integration-icons/wisepops.js +20 -0
  60. package/dist/cjs/modal/index.js +22 -19
  61. package/dist/cjs/modal/style.scss +4 -0
  62. package/dist/cjs/newspack-icon/index.js +45 -38
  63. package/dist/cjs/notice/index.js +64 -55
  64. package/dist/cjs/plugin-installer/index.js +259 -253
  65. package/dist/cjs/plugin-settings/SettingsSection.js +66 -60
  66. package/dist/cjs/plugin-settings/index.js +217 -200
  67. package/dist/cjs/plugin-toggle/index.js +192 -199
  68. package/dist/cjs/popover/index.js +41 -28
  69. package/dist/cjs/position-control/index.js +24 -23
  70. package/dist/cjs/progress-bar/index.js +71 -59
  71. package/dist/cjs/progress-bar/index.test.js +62 -68
  72. package/dist/cjs/proxied-imports/router.js +3 -3
  73. package/dist/cjs/radio-control/index.js +40 -27
  74. package/dist/cjs/section-header/index.js +103 -58
  75. package/dist/cjs/section-header/style.scss +31 -11
  76. package/dist/cjs/select-control/ButtonGroupControl.js +26 -21
  77. package/dist/cjs/select-control/GroupedSelectControl.js +41 -35
  78. package/dist/cjs/select-control/index.js +52 -40
  79. package/dist/cjs/settings/MinMaxSetting.js +30 -20
  80. package/dist/cjs/settings/SettingsCard.js +20 -17
  81. package/dist/cjs/settings/SettingsSection.js +22 -21
  82. package/dist/cjs/settings/index.js +5 -5
  83. package/dist/cjs/sortable-newsletter-list-control/index.js +78 -57
  84. package/dist/cjs/steps-list/index.js +44 -34
  85. package/dist/cjs/steps-list-item/index.js +47 -39
  86. package/dist/cjs/style-card/index.js +70 -63
  87. package/dist/cjs/tabbed-navigation/index.js +38 -36
  88. package/dist/cjs/text-control/index.js +27 -25
  89. package/dist/cjs/utils/color.js +4 -4
  90. package/dist/cjs/utils/editor-toolbar-back-button.js +61 -0
  91. package/dist/cjs/utils/index.js +31 -19
  92. package/dist/cjs/utils/style.scss +8 -0
  93. package/dist/cjs/waiting/index.js +48 -37
  94. package/dist/cjs/web-preview/index.js +217 -211
  95. package/dist/cjs/with-wizard/index.js +362 -364
  96. package/dist/cjs/with-wizard/style.scss +4 -54
  97. package/dist/cjs/with-wizard-screen/index.js +54 -58
  98. package/dist/cjs/with-wizard-screen/style.scss +41 -3
  99. package/dist/cjs/wizard/components/WizardError.js +20 -18
  100. package/dist/cjs/wizard/components/WizardSnackbar.js +26 -23
  101. package/dist/cjs/wizard/index.js +176 -114
  102. package/dist/cjs/wizard/store/index.js +171 -123
  103. package/dist/cjs/wizard/store/utils.js +13 -8
  104. package/dist/esm/accordion/index.js +14 -9
  105. package/dist/esm/action-card/index.js +168 -123
  106. package/dist/esm/autocomplete-tokenfield/index.js +248 -222
  107. package/dist/esm/autocomplete-with-latest-posts/index.js +169 -103
  108. package/dist/esm/autocomplete-with-suggestions/index.js +226 -119
  109. package/dist/esm/badge/index.js +5 -5
  110. package/dist/esm/box-contrast/index.js +15 -11
  111. package/dist/esm/button/index.js +39 -21
  112. package/dist/esm/button-props/button-props.js +1 -1
  113. package/dist/esm/card/core-card.js +109 -47
  114. package/dist/esm/card/index.js +69 -54
  115. package/dist/esm/card/style-core.scss +93 -25
  116. package/dist/esm/card/style.scss +2 -2
  117. package/dist/esm/card-feature/index.js +131 -0
  118. package/dist/esm/card-feature/style.scss +75 -0
  119. package/dist/esm/card-form/index.js +134 -0
  120. package/dist/esm/card-form/style.scss +20 -0
  121. package/dist/esm/card-settings-group/index.js +33 -14
  122. package/dist/esm/card-sortable-list/index.js +170 -126
  123. package/dist/esm/category-autocomplete/index.js +168 -140
  124. package/dist/esm/color-picker/index.js +39 -21
  125. package/dist/esm/color-picker/index.test.js +78 -0
  126. package/dist/esm/color-picker/style.scss +11 -13
  127. package/dist/esm/confirm-dialog/index.js +85 -18
  128. package/dist/esm/consts.js +1 -1
  129. package/dist/esm/custom-select-control/index.js +34 -15
  130. package/dist/esm/dataviews/index.js +34 -0
  131. package/dist/esm/dataviews/style.scss +9 -0
  132. package/dist/esm/divider/index.js +24 -16
  133. package/dist/esm/footer/index.js +34 -28
  134. package/dist/esm/form-token-field/index.js +46 -27
  135. package/dist/esm/global-notices/index.js +3 -3
  136. package/dist/esm/grid/index.js +23 -14
  137. package/dist/esm/grid/style.scss +6 -1
  138. package/dist/esm/handoff/index.js +199 -143
  139. package/dist/esm/handoff-message/index.js +10 -6
  140. package/dist/esm/hooks/index.js +8 -6
  141. package/dist/esm/hooks/use-confirm-dialog.js +73 -0
  142. package/dist/esm/hooks/use-unsaved-changes-dialog.js +136 -0
  143. package/dist/esm/hooks/useObjectState.js +19 -9
  144. package/dist/esm/hooks/useObjectState.test.js +54 -32
  145. package/dist/esm/hooks/useOnClickOutside.js +4 -4
  146. package/dist/esm/hooks/usePrompt.js +9 -11
  147. package/dist/esm/image-upload/index.js +110 -111
  148. package/dist/esm/image-upload/index.test.js +11 -13
  149. package/dist/esm/image-upload/style.scss +12 -40
  150. package/dist/esm/index.js +7 -1
  151. package/dist/esm/info-button/index.js +38 -19
  152. package/dist/esm/integration-icons/active-campaign.js +16 -0
  153. package/dist/esm/integration-icons/constant-contact.js +22 -0
  154. package/dist/esm/integration-icons/fundraise-up.js +19 -0
  155. package/dist/esm/integration-icons/index.js +6 -0
  156. package/dist/esm/integration-icons/mailchimp.js +13 -0
  157. package/dist/esm/integration-icons/salesforce.js +11 -0
  158. package/dist/esm/integration-icons/wisepops.js +14 -0
  159. package/dist/esm/modal/index.js +20 -13
  160. package/dist/esm/modal/style.scss +4 -0
  161. package/dist/esm/newspack-icon/index.js +40 -25
  162. package/dist/esm/notice/index.js +59 -42
  163. package/dist/esm/plugin-installer/index.js +255 -243
  164. package/dist/esm/plugin-settings/SettingsSection.js +61 -50
  165. package/dist/esm/plugin-settings/index.js +212 -189
  166. package/dist/esm/plugin-toggle/index.js +187 -190
  167. package/dist/esm/popover/index.js +35 -16
  168. package/dist/esm/position-control/index.js +22 -18
  169. package/dist/esm/progress-bar/index.js +66 -49
  170. package/dist/esm/progress-bar/index.test.js +61 -67
  171. package/dist/esm/radio-control/index.js +34 -15
  172. package/dist/esm/section-header/index.js +102 -57
  173. package/dist/esm/section-header/style.scss +31 -11
  174. package/dist/esm/select-control/ButtonGroupControl.js +23 -18
  175. package/dist/esm/select-control/GroupedSelectControl.js +38 -30
  176. package/dist/esm/select-control/index.js +47 -27
  177. package/dist/esm/settings/MinMaxSetting.js +27 -16
  178. package/dist/esm/settings/SettingsCard.js +18 -13
  179. package/dist/esm/settings/SettingsSection.js +20 -19
  180. package/dist/esm/settings/index.js +3 -3
  181. package/dist/esm/sortable-newsletter-list-control/index.js +74 -53
  182. package/dist/esm/steps-list/index.js +39 -21
  183. package/dist/esm/steps-list-item/index.js +42 -26
  184. package/dist/esm/style-card/index.js +65 -50
  185. package/dist/esm/tabbed-navigation/index.js +35 -33
  186. package/dist/esm/text-control/index.js +25 -19
  187. package/dist/esm/utils/color.js +4 -4
  188. package/dist/esm/utils/editor-toolbar-back-button.js +53 -0
  189. package/dist/esm/utils/index.js +29 -16
  190. package/dist/esm/utils/style.scss +8 -0
  191. package/dist/esm/waiting/index.js +43 -24
  192. package/dist/esm/web-preview/index.js +213 -201
  193. package/dist/esm/with-wizard/index.js +360 -358
  194. package/dist/esm/with-wizard/style.scss +4 -54
  195. package/dist/esm/with-wizard-screen/index.js +48 -46
  196. package/dist/esm/with-wizard-screen/style.scss +41 -3
  197. package/dist/esm/wizard/components/WizardError.js +18 -16
  198. package/dist/esm/wizard/components/WizardSnackbar.js +23 -17
  199. package/dist/esm/wizard/index.js +171 -103
  200. package/dist/esm/wizard/store/index.js +169 -116
  201. package/dist/esm/wizard/store/utils.js +13 -6
  202. package/package.json +30 -16
  203. package/release.config.js +1 -0
  204. package/shared/hooks/use-coauthors.js +195 -27
  205. package/shared/hooks/use-coauthors.test.js +232 -6
  206. package/shared/scss/_mixins.scss +13 -5
  207. package/src/accordion/index.js +8 -7
  208. package/src/action-card/index.js +15 -1
  209. package/src/badge/index.tsx +3 -1
  210. package/src/card/core-card.js +95 -18
  211. package/src/card/index.js +1 -0
  212. package/src/card/style-core.scss +93 -25
  213. package/src/card/style.scss +2 -2
  214. package/src/card-feature/README.md +188 -0
  215. package/src/card-feature/index.tsx +186 -0
  216. package/src/card-feature/style.scss +75 -0
  217. package/src/card-form/README.md +113 -0
  218. package/src/card-form/index.tsx +128 -0
  219. package/src/card-form/style.scss +20 -0
  220. package/src/card-settings-group/index.tsx +28 -3
  221. package/src/card-sortable-list/index.tsx +27 -4
  222. package/src/color-picker/index.js +15 -8
  223. package/src/color-picker/index.test.js +52 -0
  224. package/src/color-picker/style.scss +11 -13
  225. package/src/confirm-dialog/README.md +128 -0
  226. package/src/confirm-dialog/index.tsx +74 -6
  227. package/src/dataviews/index.tsx +34 -0
  228. package/src/dataviews/style.scss +9 -0
  229. package/src/grid/style.scss +6 -1
  230. package/src/handoff/README.md +93 -0
  231. package/src/handoff/index.js +46 -8
  232. package/src/hooks/index.ts +2 -1
  233. package/src/hooks/use-confirm-dialog.tsx +80 -0
  234. package/src/hooks/use-unsaved-changes-dialog.tsx +140 -0
  235. package/src/image-upload/index.js +10 -15
  236. package/src/image-upload/style.scss +12 -40
  237. package/src/index.js +7 -1
  238. package/src/integration-icons/active-campaign.js +14 -0
  239. package/src/integration-icons/constant-contact.js +22 -0
  240. package/src/integration-icons/fundraise-up.js +18 -0
  241. package/src/integration-icons/index.js +6 -0
  242. package/src/integration-icons/mailchimp.js +10 -0
  243. package/src/integration-icons/salesforce.js +10 -0
  244. package/src/integration-icons/wisepops.js +14 -0
  245. package/src/modal/style.scss +4 -0
  246. package/src/plugin-installer/index.js +30 -19
  247. package/src/section-header/index.js +56 -24
  248. package/src/section-header/style.scss +31 -11
  249. package/src/select-control/index.js +4 -0
  250. package/src/utils/editor-toolbar-back-button.tsx +48 -0
  251. package/src/utils/index.js +6 -0
  252. package/src/utils/style.scss +8 -0
  253. package/src/with-wizard/style.scss +4 -54
  254. package/src/with-wizard-screen/style.scss +41 -3
  255. package/src/wizard/index.js +90 -53
  256. package/src/wizard/store/index.js +2 -2
  257. package/dist/cjs/button-card/index.js +0 -72
  258. package/dist/cjs/button-card/style.scss +0 -180
  259. package/dist/esm/button-card/index.js +0 -64
  260. package/dist/esm/button-card/style.scss +0 -180
  261. package/src/button-card/index.js +0 -52
  262. package/src/button-card/style.scss +0 -180
@@ -1,53 +1,52 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1
4
  import React, { createElement as _createElement } from 'react';
2
5
  import { render } from '@testing-library/react';
3
6
  import ProgressBar from './';
4
7
  import { jsx as _jsx } from "react/jsx-runtime";
5
- describe('ProgressBar', () => {
6
- it('should render a progress indicator', () => {
7
- const {
8
- getByTestId
9
- } = render(/*#__PURE__*/_jsx(ProgressBar, {
10
- completed: "1",
11
- total: "2"
12
- }));
13
- const indicator = getByTestId('progress-bar-indicator');
8
+ describe('ProgressBar', function () {
9
+ it('should render a progress indicator', function () {
10
+ var _render = render(/*#__PURE__*/_jsx(ProgressBar, {
11
+ completed: "1",
12
+ total: "2"
13
+ })),
14
+ getByTestId = _render.getByTestId;
15
+ var indicator = getByTestId('progress-bar-indicator');
14
16
  expect(indicator).toHaveAttribute('style', 'width: 50%;');
15
17
  });
16
- it('should render a label', () => {
17
- const label = 'test label';
18
- const {
19
- getByText
20
- } = render(/*#__PURE__*/_jsx(ProgressBar, {
21
- completed: "1",
22
- total: "2",
23
- label: label
24
- }));
18
+ it('should render a label', function () {
19
+ var label = 'test label';
20
+ var _render2 = render(/*#__PURE__*/_jsx(ProgressBar, {
21
+ completed: "1",
22
+ total: "2",
23
+ label: label
24
+ })),
25
+ getByText = _render2.getByText;
25
26
  expect(getByText(label)).toBeInTheDocument();
26
27
  });
27
- it('should render progress as a fraction', () => {
28
- const {
29
- getByText
30
- } = render(/*#__PURE__*/_jsx(ProgressBar, {
31
- completed: "1",
32
- total: "2",
33
- displayFraction: true
34
- }));
28
+ it('should render progress as a fraction', function () {
29
+ var _render3 = render(/*#__PURE__*/_jsx(ProgressBar, {
30
+ completed: "1",
31
+ total: "2",
32
+ displayFraction: true
33
+ })),
34
+ getByText = _render3.getByText;
35
35
  expect(getByText('1/2')).toBeInTheDocument();
36
36
  });
37
- it('should render with both label and fraction', () => {
38
- const label = 'test label';
39
- const {
40
- getByText
41
- } = render(/*#__PURE__*/_jsx(ProgressBar, {
42
- completed: "1",
43
- total: "2",
44
- label: label,
45
- displayFraction: true
46
- }));
37
+ it('should render with both label and fraction', function () {
38
+ var label = 'test label';
39
+ var _render4 = render(/*#__PURE__*/_jsx(ProgressBar, {
40
+ completed: "1",
41
+ total: "2",
42
+ label: label,
43
+ displayFraction: true
44
+ })),
45
+ getByText = _render4.getByText;
47
46
  expect(getByText(label)).toBeInTheDocument();
48
47
  expect(getByText('1/2')).toBeInTheDocument();
49
48
  });
50
- describe('should calculate progress correctly', () => {
49
+ describe('should calculate progress correctly', function () {
51
50
  [{
52
51
  props: {
53
52
  completed: 1,
@@ -66,42 +65,37 @@ describe('ProgressBar', () => {
66
65
  total: 3
67
66
  },
68
67
  expectedWidth: 100
69
- }].forEach(({
70
- props,
71
- expectedWidth
72
- }) => {
73
- it(`with expected progress of ${expectedWidth}`, () => {
74
- const {
75
- getByTestId
76
- } = render(/*#__PURE__*/_createElement(ProgressBar, {
77
- ...props,
78
- key: expectedWidth
79
- }));
80
- expect(getByTestId('progress-bar-indicator')).toHaveAttribute('style', `width: ${expectedWidth}%;`);
68
+ }].forEach(function (_ref) {
69
+ var props = _ref.props,
70
+ expectedWidth = _ref.expectedWidth;
71
+ it("with expected progress of ".concat(expectedWidth), function () {
72
+ var _render5 = render(/*#__PURE__*/_createElement(ProgressBar, _objectSpread(_objectSpread({}, props), {}, {
73
+ key: expectedWidth
74
+ }))),
75
+ getByTestId = _render5.getByTestId;
76
+ expect(getByTestId('progress-bar-indicator')).toHaveAttribute('style', "width: ".concat(expectedWidth, "%;"));
81
77
  });
82
78
  });
83
79
  });
84
- it('should handle non-numeric values in ProgressBar element', () => {
85
- const {
86
- getByText,
87
- getByTestId
88
- } = render(/*#__PURE__*/_jsx(ProgressBar, {
89
- completed: "cats",
90
- total: "dogs",
91
- displayFraction: true
92
- }));
80
+ it('should handle non-numeric values in ProgressBar element', function () {
81
+ var _render6 = render(/*#__PURE__*/_jsx(ProgressBar, {
82
+ completed: "cats",
83
+ total: "dogs",
84
+ displayFraction: true
85
+ })),
86
+ getByText = _render6.getByText,
87
+ getByTestId = _render6.getByTestId;
93
88
  expect(getByText('0/0')).toBeInTheDocument();
94
89
  expect(getByTestId('progress-bar-indicator')).toHaveAttribute('style', 'width: 100%;');
95
90
  });
96
- it('should handle non-logical values in ProgressBar element', () => {
97
- const {
98
- getByText,
99
- getByTestId
100
- } = render(/*#__PURE__*/_jsx(ProgressBar, {
101
- completed: "3",
102
- total: "-1",
103
- displayFraction: true
104
- }));
91
+ it('should handle non-logical values in ProgressBar element', function () {
92
+ var _render7 = render(/*#__PURE__*/_jsx(ProgressBar, {
93
+ completed: "3",
94
+ total: "-1",
95
+ displayFraction: true
96
+ })),
97
+ getByText = _render7.getByText,
98
+ getByTestId = _render7.getByTestId;
105
99
  expect(getByText('0/0')).toBeInTheDocument();
106
100
  expect(getByTestId('progress-bar-indicator')).toHaveAttribute('style', 'width: 100%;');
107
101
  });
@@ -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"];
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
  * WordPress dependencies.
3
15
  */
@@ -18,20 +30,27 @@ import classnames from 'classnames';
18
30
  * Radio Control.
19
31
  */
20
32
  import { jsx as _jsx } from "react/jsx-runtime";
21
- class RadioControl extends Component {
22
- /**
23
- * Render.
24
- */
25
- render() {
26
- const {
27
- className,
28
- ...otherProps
29
- } = this.props;
30
- const classes = classnames('newspack-radio-control', className);
31
- return /*#__PURE__*/_jsx(BaseComponent, {
32
- className: classes,
33
- ...otherProps
34
- });
33
+ var RadioControl = /*#__PURE__*/function (_Component) {
34
+ function RadioControl() {
35
+ _classCallCheck(this, RadioControl);
36
+ return _callSuper(this, RadioControl, arguments);
35
37
  }
36
- }
38
+ _inherits(RadioControl, _Component);
39
+ return _createClass(RadioControl, [{
40
+ key: "render",
41
+ value:
42
+ /**
43
+ * Render.
44
+ */
45
+ function render() {
46
+ var _this$props = this.props,
47
+ className = _this$props.className,
48
+ otherProps = _objectWithoutProperties(_this$props, _excluded);
49
+ var classes = classnames('newspack-radio-control', className);
50
+ return /*#__PURE__*/_jsx(BaseComponent, _objectSpread({
51
+ className: classes
52
+ }, otherProps));
53
+ }
54
+ }]);
55
+ }(Component);
37
56
  export default RadioControl;
@@ -7,8 +7,8 @@
7
7
  */
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { useEffect, useRef } from '@wordpress/element';
10
- import { Tooltip } from '@wordpress/components'; // eslint-disable-line @wordpress/no-unsafe-wp-apis
11
- import { Icon, chevronLeft } from '@wordpress/icons';
10
+ import { DropdownMenu, MenuItem, Tooltip, __experimentalHStack as HStack } from '@wordpress/components'; // eslint-disable-line @wordpress/no-unsafe-wp-apis
11
+ import { Icon, chevronLeft, moreVertical } from '@wordpress/icons';
12
12
 
13
13
  /**
14
14
  * Internal dependencies
@@ -47,39 +47,96 @@ import classnames from 'classnames';
47
47
  * @param {SectionHeaderProps} props - The properties for the section header.
48
48
  */
49
49
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
50
- const SectionHeader = ({
51
- backNav = '',
52
- badges,
53
- centered = false,
54
- className = null,
55
- description = '',
56
- heading = 2,
57
- icon = null,
58
- isWhite = false,
59
- noMargin = false,
60
- pageHeader = false,
61
- title,
62
- id = null,
63
- primaryAction,
64
- secondaryAction,
65
- children = null
66
- }) => {
50
+ var SectionHeader = function SectionHeader(_ref) {
51
+ var _ref$backNav = _ref.backNav,
52
+ backNav = _ref$backNav === void 0 ? '' : _ref$backNav,
53
+ badges = _ref.badges,
54
+ _ref$centered = _ref.centered,
55
+ centered = _ref$centered === void 0 ? false : _ref$centered,
56
+ _ref$className = _ref.className,
57
+ className = _ref$className === void 0 ? null : _ref$className,
58
+ _ref$description = _ref.description,
59
+ description = _ref$description === void 0 ? '' : _ref$description,
60
+ _ref$heading = _ref.heading,
61
+ heading = _ref$heading === void 0 ? 2 : _ref$heading,
62
+ _ref$icon = _ref.icon,
63
+ icon = _ref$icon === void 0 ? null : _ref$icon,
64
+ _ref$isWhite = _ref.isWhite,
65
+ isWhite = _ref$isWhite === void 0 ? false : _ref$isWhite,
66
+ _ref$noMargin = _ref.noMargin,
67
+ noMargin = _ref$noMargin === void 0 ? false : _ref$noMargin,
68
+ _ref$pageHeader = _ref.pageHeader,
69
+ pageHeader = _ref$pageHeader === void 0 ? false : _ref$pageHeader,
70
+ title = _ref.title,
71
+ _ref$id = _ref.id,
72
+ id = _ref$id === void 0 ? null : _ref$id,
73
+ menu = _ref.menu,
74
+ primaryAction = _ref.primaryAction,
75
+ secondaryAction = _ref.secondaryAction,
76
+ _ref$children = _ref.children,
77
+ children = _ref$children === void 0 ? null : _ref$children;
67
78
  // If id is in the URL as a scrollTo param, scroll to it on render.
68
- const ref = useRef();
69
- useEffect(() => {
70
- const params = new Proxy(new URLSearchParams(window.location.search), {
71
- get: (searchParams, prop) => searchParams.get(prop)
79
+ var ref = useRef();
80
+ useEffect(function () {
81
+ var params = new Proxy(new URLSearchParams(window.location.search), {
82
+ get: function get(searchParams, prop) {
83
+ return searchParams.get(prop);
84
+ }
72
85
  });
73
- const scrollToId = params.scrollTo;
86
+ var scrollToId = params.scrollTo;
74
87
  if (scrollToId && scrollToId === id) {
75
88
  // Let parent scroll action run before running this.
76
- window.setTimeout(() => ref.current.scrollIntoView({
77
- behavior: 'smooth'
78
- }), 250);
89
+ window.setTimeout(function () {
90
+ return ref.current.scrollIntoView({
91
+ behavior: 'smooth'
92
+ });
93
+ }, 250);
79
94
  }
80
95
  }, []);
81
- const classes = classnames('newspack-section-header', centered && 'newspack-section-header--is-centered', isWhite && 'newspack-section-header--is-white', noMargin && 'newspack-section-header--no-margin', pageHeader && 'newspack-section-header--page-header');
82
- const HeadingTag = pageHeader ? 'h1' : `h${heading}`;
96
+ var classes = classnames('newspack-section-header', centered && 'newspack-section-header--is-centered', isWhite && 'newspack-section-header--is-white', noMargin && 'newspack-section-header--no-margin', pageHeader && 'newspack-section-header--page-header');
97
+ var HeadingTag = pageHeader ? 'h1' : "h".concat(heading);
98
+ var titleContent = null;
99
+ if (typeof title === 'string') {
100
+ titleContent = /*#__PURE__*/_jsxs("div", {
101
+ className: "newspack-section-header__title-container",
102
+ children: [/*#__PURE__*/_jsxs(HeadingTag, {
103
+ children: [title, badges !== null && badges !== void 0 && badges.length ? badges.map(function (badge, i) {
104
+ return /*#__PURE__*/_jsx(Badge, {
105
+ text: badge.label,
106
+ level: badge.level || 'default'
107
+ }, i);
108
+ }) : null]
109
+ }), (menu === null || menu === void 0 ? void 0 : menu.length) > 0 && /*#__PURE__*/_jsx(DropdownMenu, {
110
+ className: "newspack-section-header__menu",
111
+ icon: moreVertical,
112
+ label: __('More options', 'newspack-plugin'),
113
+ children: function children() {
114
+ return menu.map(function (item, index) {
115
+ return /*#__PURE__*/_jsx(MenuItem, {
116
+ icon: item.icon,
117
+ href: item.href,
118
+ onClick: item.action,
119
+ disabled: item.disabled || false,
120
+ isDestructive: item.destructive || false,
121
+ children: item.label
122
+ }, index);
123
+ });
124
+ }
125
+ }), secondaryAction && /*#__PURE__*/_jsx("div", {
126
+ className: "newspack-section-header__secondary-action",
127
+ children: /*#__PURE__*/_jsx(Button, {
128
+ variant: "link",
129
+ href: secondaryAction.href,
130
+ onClick: secondaryAction.action,
131
+ children: secondaryAction.label
132
+ })
133
+ })]
134
+ });
135
+ } else if (typeof title === 'function') {
136
+ titleContent = /*#__PURE__*/_jsx(HeadingTag, {
137
+ children: title()
138
+ });
139
+ }
83
140
  return /*#__PURE__*/_jsxs("div", {
84
141
  id: id,
85
142
  className: classnames('newspack-section-header__container', backNav && 'newspack-section-header--has-back-nav', primaryAction && 'newspack-section-header--has-primary-action', className),
@@ -94,35 +151,23 @@ const SectionHeader = ({
94
151
  icon: icon,
95
152
  size: 48
96
153
  })
97
- }), backNav && /*#__PURE__*/_jsx("div", {
98
- className: "newspack-section-header__back-nav",
99
- children: /*#__PURE__*/_jsx(Tooltip, {
100
- text: __('Go back', 'newspack-plugin'),
101
- children: /*#__PURE__*/_jsx(Button, {
102
- href: backNav,
103
- icon: chevronLeft,
104
- variant: "tertiary"
105
- })
106
- })
107
- }), typeof title === 'string' && /*#__PURE__*/_jsxs("div", {
108
- className: "newspack-section-header__title-container",
109
- children: [/*#__PURE__*/_jsx(HeadingTag, {
110
- children: title
111
- }), badges?.length ? badges.map((badge, i) => /*#__PURE__*/_jsx(Badge, {
112
- text: badge.label,
113
- level: badge.level || 'default'
114
- }, i)) : null, secondaryAction && /*#__PURE__*/_jsx("div", {
115
- className: "newspack-section-header__secondary-action",
116
- children: /*#__PURE__*/_jsx(Button, {
117
- variant: "link",
118
- href: secondaryAction.href,
119
- onClick: secondaryAction.action,
120
- children: secondaryAction.label
154
+ }), backNav ? /*#__PURE__*/_jsxs(HStack, {
155
+ alignment: "left",
156
+ style: {
157
+ position: 'relative'
158
+ },
159
+ children: [/*#__PURE__*/_jsx("div", {
160
+ className: "newspack-section-header__back-nav",
161
+ children: /*#__PURE__*/_jsx(Tooltip, {
162
+ text: __('Go back', 'newspack-plugin'),
163
+ children: /*#__PURE__*/_jsx(Button, {
164
+ href: backNav,
165
+ icon: chevronLeft,
166
+ variant: "tertiary"
167
+ })
121
168
  })
122
- })]
123
- }), typeof title === 'function' && /*#__PURE__*/_jsx(HeadingTag, {
124
- children: title()
125
- }), description && typeof description === 'string' && /*#__PURE__*/_jsx("p", {
169
+ }), titleContent]
170
+ }) : titleContent, description && typeof description === 'string' && /*#__PURE__*/_jsx("p", {
126
171
  children: description
127
172
  }), typeof description === 'function' && /*#__PURE__*/_jsx("p", {
128
173
  children: description()
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  @use "~@wordpress/base-styles/colors" as wp-colors;
6
+ @use "~@wordpress/base-styles/variables" as wp-vars;
6
7
  @use "../../../colors/colors.module" as colors;
7
8
 
8
9
  .newspack-section-header {
@@ -14,6 +15,9 @@
14
15
  &:not(:first-child) {
15
16
  margin-top: 48px;
16
17
  }
18
+ &:has(> .newspack-section-header--no-margin) {
19
+ margin-top: 0;
20
+ }
17
21
  &.newspack-section-header--has-primary-action {
18
22
  display: flex;
19
23
  flex-direction: column;
@@ -24,18 +28,22 @@
24
28
  }
25
29
  }
26
30
  &.newspack-section-header--has-back-nav {
27
- --back-nav-button-size: 36px;
28
- margin-left: calc(var(--back-nav-button-size) + 8px);
29
31
  @media (min-width: 782px) {
30
- margin-left: 0;
32
+ .newspack-section-header__title-container,
33
+ p {
34
+ max-width: calc(50% - 16px);
35
+ }
31
36
  }
32
37
  }
33
38
  }
34
39
 
35
40
  &__back-nav {
36
- left: calc((var(--back-nav-button-size) + 8px) * -1);
37
- position: absolute;
38
- top: calc(50% - (var(--back-nav-button-size) / 2));
41
+ @media (min-width: 1280px) {
42
+ left: 0;
43
+ position: absolute;
44
+ top: 50%;
45
+ transform: translate(calc(-100% - 8px), -50%);
46
+ }
39
47
  a,
40
48
  button {
41
49
  color: inherit !important;
@@ -77,15 +85,27 @@
77
85
  }
78
86
 
79
87
  &__title-container {
80
- align-items: baseline;
88
+ align-items: center;
81
89
  display: flex;
82
90
  gap: 8px;
83
91
 
92
+ h2 {
93
+ font-size: wp-vars.$font-size-x-large;
94
+ font-weight: wp-vars.$font-weight-medium;
95
+ line-height: wp-vars.$font-line-height-x-large;
96
+ }
97
+
98
+ .newspack-section-header__menu,
99
+ .newspack-section-header__secondary-action,
84
100
  .newspack-badge {
85
- transform: translateY(-4px);
101
+ margin-top: 8px;
86
102
  }
87
103
  }
88
104
 
105
+ &__menu {
106
+ align-self: center;
107
+ }
108
+
89
109
  &__primary-action {
90
110
  @media (min-width: 782px) {
91
111
  display: flex;
@@ -142,9 +162,9 @@
142
162
  }
143
163
  }
144
164
  h1 {
145
- font-size: 1.25rem;
146
- font-weight: 500;
147
- line-height: 1.5;
165
+ font-size: wp-vars.$font-size-x-large;
166
+ font-weight: wp-vars.$font-weight-medium;
167
+ line-height: wp-vars.$font-line-height-x-large;
148
168
  }
149
169
  }
150
170
  }
@@ -14,17 +14,16 @@ import { BaseControl, Button, ButtonGroup } from '@wordpress/components';
14
14
  */
15
15
  import { hooks } from '..';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
- const ButtonGroupControl = ({
18
- buttonOptions,
19
- buttonSmall,
20
- className,
21
- help,
22
- hideLabelFromVision,
23
- label,
24
- onChange,
25
- value
26
- }) => {
27
- const id = hooks.useUniqueId('button-group');
17
+ var ButtonGroupControl = function ButtonGroupControl(_ref) {
18
+ var buttonOptions = _ref.buttonOptions,
19
+ buttonSmall = _ref.buttonSmall,
20
+ className = _ref.className,
21
+ help = _ref.help,
22
+ hideLabelFromVision = _ref.hideLabelFromVision,
23
+ label = _ref.label,
24
+ onChange = _ref.onChange,
25
+ value = _ref.value;
26
+ var id = hooks.useUniqueId('button-group');
28
27
  return /*#__PURE__*/_jsx(BaseControl, {
29
28
  label: label,
30
29
  help: help,
@@ -32,19 +31,25 @@ const ButtonGroupControl = ({
32
31
  id: id.current,
33
32
  className: classnames(className, 'components-select-control'),
34
33
  children: /*#__PURE__*/_jsx(ButtonGroup, {
35
- children: buttonOptions.map(option => {
36
- const isSelected = value === option.value;
37
- let Label = () => option.label;
34
+ children: buttonOptions.map(function (option) {
35
+ var isSelected = value === option.value;
36
+ var Label = function Label() {
37
+ return option.label;
38
+ };
38
39
  if (option.icon) {
39
40
  // eslint-disable-next-line react/display-name
40
- Label = () => /*#__PURE__*/_jsx(Icon, {
41
- icon: option.icon
42
- });
41
+ Label = function Label() {
42
+ return /*#__PURE__*/_jsx(Icon, {
43
+ icon: option.icon
44
+ });
45
+ };
43
46
  }
44
47
  return /*#__PURE__*/_jsx(Button, {
45
48
  variant: isSelected ? 'primary' : null,
46
49
  isPressed: isSelected,
47
- onClick: () => onChange(option.value),
50
+ onClick: function onClick() {
51
+ return onChange(option.value);
52
+ },
48
53
  isSmall: buttonSmall,
49
54
  children: /*#__PURE__*/_jsx(Label, {})
50
55
  }, option.value);
@@ -1,3 +1,8 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["help", "label", "onChange", "optgroups", "className", "hideLabelFromVision"];
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
  */
@@ -21,23 +26,23 @@ import { hooks } from '..';
21
26
  * SelectControl with optgroup support
22
27
  */
23
28
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
- export default function GroupedSelectControl({
25
- help,
26
- label,
27
- onChange,
28
- optgroups = [],
29
- className,
30
- hideLabelFromVision,
31
- ...props
32
- }) {
33
- const onChangeValue = event => {
34
- const {
35
- value
36
- } = event.target;
37
- const optgroup = find(optgroups, group => some(group.options, ['value', value]));
29
+ export default function GroupedSelectControl(_ref) {
30
+ var help = _ref.help,
31
+ label = _ref.label,
32
+ onChange = _ref.onChange,
33
+ _ref$optgroups = _ref.optgroups,
34
+ optgroups = _ref$optgroups === void 0 ? [] : _ref$optgroups,
35
+ className = _ref.className,
36
+ hideLabelFromVision = _ref.hideLabelFromVision,
37
+ props = _objectWithoutProperties(_ref, _excluded);
38
+ var onChangeValue = function onChangeValue(event) {
39
+ var value = event.target.value;
40
+ var optgroup = find(optgroups, function (group) {
41
+ return some(group.options, ['value', value]);
42
+ });
38
43
  onChange(value, optgroup);
39
44
  };
40
- const id = hooks.useUniqueId('group-select');
45
+ var id = hooks.useUniqueId('group-select');
41
46
  return /*#__PURE__*/_jsx(BaseControl, {
42
47
  label: label,
43
48
  hideLabelFromVision: hideLabelFromVision,
@@ -46,27 +51,30 @@ export default function GroupedSelectControl({
46
51
  className: classnames(className, 'components-select-control'),
47
52
  children: /*#__PURE__*/_jsxs("div", {
48
53
  className: "relative",
49
- children: [/*#__PURE__*/_jsxs("select", {
54
+ children: [/*#__PURE__*/_jsxs("select", _objectSpread(_objectSpread({
50
55
  id: id,
51
56
  className: "components-select-control__input",
52
57
  onChange: onChangeValue,
53
- "aria-describedby": !!help ? `${id}__help` : undefined,
54
- ...props,
58
+ "aria-describedby": !!help ? "".concat(id, "__help") : undefined
59
+ }, props), {}, {
55
60
  children: [/*#__PURE__*/_jsx("option", {
56
61
  value: "",
57
62
  children: __('-- Select --', 'newspack-plugin')
58
- }), optgroups.map(({
59
- label: optgroupLabel,
60
- options
61
- }, optgroupIndex) => /*#__PURE__*/_jsx("optgroup", {
62
- label: optgroupLabel,
63
- children: options.map((option, optionIndex) => /*#__PURE__*/_jsx("option", {
64
- value: option.value,
65
- disabled: option.disabled,
66
- children: option.label
67
- }, `${option.label}-${option.value}-${optionIndex}`))
68
- }, optgroupIndex))]
69
- }), /*#__PURE__*/_jsx("div", {
63
+ }), optgroups.map(function (_ref2, optgroupIndex) {
64
+ var optgroupLabel = _ref2.label,
65
+ options = _ref2.options;
66
+ return /*#__PURE__*/_jsx("optgroup", {
67
+ label: optgroupLabel,
68
+ children: options.map(function (option, optionIndex) {
69
+ return /*#__PURE__*/_jsx("option", {
70
+ value: option.value,
71
+ disabled: option.disabled,
72
+ children: option.label
73
+ }, "".concat(option.label, "-").concat(option.value, "-").concat(optionIndex));
74
+ })
75
+ }, optgroupIndex);
76
+ })]
77
+ })), /*#__PURE__*/_jsx("div", {
70
78
  className: "components-select-control__arrow-wrapper",
71
79
  children: /*#__PURE__*/_jsx(Icon, {
72
80
  icon: chevronDown,