newspack-components 2.1.0 → 2.2.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.
- package/dist/cjs/accordion/index.js +46 -0
- package/dist/cjs/accordion/style.scss +27 -0
- package/dist/cjs/action-card/index.js +48 -25
- package/dist/cjs/action-card/style.scss +100 -23
- package/dist/cjs/autocomplete-tokenfield/index.js +13 -41
- package/dist/cjs/autocomplete-tokenfield/style.scss +2 -2
- package/dist/cjs/autocomplete-with-suggestions/index.js +30 -51
- package/dist/cjs/autocomplete-with-suggestions/style.scss +16 -15
- package/dist/cjs/button/index.js +5 -13
- package/dist/cjs/button-card/index.js +1 -10
- package/dist/cjs/button-card/style.scss +13 -13
- package/dist/cjs/card/index.js +1 -8
- package/dist/cjs/card/style.scss +25 -8
- package/dist/cjs/category-autocomplete/index.js +18 -38
- package/dist/cjs/category-autocomplete/style.scss +0 -2
- package/dist/cjs/color-picker/index.js +1 -15
- package/dist/cjs/color-picker/style.scss +0 -3
- package/dist/cjs/consts.js +5 -3
- package/dist/cjs/custom-select-control/index.js +1 -9
- package/dist/cjs/custom-select-control/style.scss +6 -7
- package/dist/cjs/date-range-picker/index.js +1 -10
- package/dist/cjs/date-range-picker/style.scss +12 -12
- package/dist/cjs/footer/index.js +5 -17
- package/dist/cjs/footer/style.scss +5 -5
- package/dist/cjs/form-token-field/index.js +1 -9
- package/dist/cjs/form-token-field/style.scss +2 -3
- package/dist/cjs/global-notices/index.js +1 -8
- package/dist/cjs/grid/index.js +1 -8
- package/dist/cjs/grid/style.scss +5 -5
- package/dist/cjs/handoff/index.js +8 -17
- package/dist/cjs/handoff-message/index.js +50 -0
- package/dist/cjs/hooks/index.js +1 -7
- package/dist/cjs/hooks/useObjectState.js +7 -13
- package/dist/cjs/hooks/useObjectState.test.js +0 -14
- package/dist/cjs/hooks/useOnClickOutside.js +3 -6
- package/dist/cjs/hooks/usePrompt.js +1 -13
- package/dist/cjs/image-upload/index.js +21 -19
- package/dist/cjs/image-upload/index.test.js +0 -5
- package/dist/cjs/image-upload/style.scss +5 -9
- package/dist/cjs/index.js +28 -44
- package/dist/cjs/info-button/index.js +3 -11
- package/dist/cjs/info-button/style.scss +1 -3
- package/dist/cjs/modal/index.js +1 -9
- package/dist/cjs/modal/style.scss +8 -8
- package/dist/cjs/newspack-icon/index.js +1 -9
- package/dist/cjs/newspack-icon/style.scss +4 -4
- package/dist/cjs/newspack-logo/index.js +1 -9
- package/dist/cjs/newspack-logo/style.scss +3 -3
- package/dist/cjs/notice/index.js +8 -15
- package/dist/cjs/notice/style.scss +28 -15
- package/dist/cjs/patrons-logo/index.js +3 -11
- package/dist/cjs/plugin-installer/index.js +36 -36
- package/dist/cjs/plugin-installer/style.scss +5 -5
- package/dist/cjs/plugin-settings/SettingsSection.js +9 -28
- package/dist/cjs/plugin-settings/index.js +39 -22
- package/dist/cjs/plugin-toggle/index.js +40 -33
- package/dist/cjs/plugin-toggle/style.scss +2 -2
- package/dist/cjs/popover/index.js +1 -11
- package/dist/cjs/popover/style.scss +19 -16
- package/dist/cjs/position-control/index.js +113 -0
- package/dist/cjs/position-control/style.scss +66 -0
- package/dist/cjs/progress-bar/index.js +2 -9
- package/dist/cjs/progress-bar/index.test.js +2 -7
- package/dist/cjs/progress-bar/style.scss +4 -4
- package/dist/cjs/proxied-imports/router.js +0 -3
- package/dist/cjs/radio-control/index.js +1 -11
- package/dist/cjs/radio-control/style.scss +9 -9
- package/dist/cjs/section-header/index.js +44 -29
- package/dist/cjs/section-header/style.scss +2 -2
- package/dist/cjs/select-control/ButtonGroupControl.js +4 -13
- package/dist/cjs/select-control/GroupedSelectControl.js +9 -15
- package/dist/cjs/select-control/index.js +5 -12
- package/dist/cjs/select-control/style.scss +2 -2
- package/dist/cjs/settings/MinMaxSetting.js +3 -7
- package/dist/cjs/settings/SettingsCard.js +3 -7
- package/dist/cjs/settings/SettingsSection.js +1 -4
- package/dist/cjs/settings/index.js +0 -6
- package/dist/cjs/settings/style.scss +1 -1
- package/dist/cjs/steps-list/index.js +52 -0
- package/dist/cjs/steps-list/style.scss +11 -0
- package/dist/cjs/steps-list-item/index.js +56 -0
- package/dist/cjs/steps-list-item/style.scss +47 -0
- package/dist/cjs/style-card/index.js +6 -13
- package/dist/cjs/style-card/style.scss +9 -12
- package/dist/cjs/style.scss +5 -6
- package/dist/cjs/tabbed-navigation/index.js +19 -16
- package/dist/cjs/tabbed-navigation/style.scss +3 -4
- package/dist/cjs/text-control/index.js +6 -16
- package/dist/cjs/utils/index.js +10 -5
- package/dist/cjs/waiting/index.js +1 -9
- package/dist/cjs/web-preview/index.js +13 -28
- package/dist/cjs/web-preview/style.scss +14 -14
- package/dist/cjs/with-wizard/index.js +51 -31
- package/dist/cjs/with-wizard/style.scss +35 -37
- package/dist/cjs/with-wizard-screen/index.js +11 -17
- package/dist/cjs/with-wizard-screen/style.scss +14 -17
- package/dist/cjs/wizard/components/WizardError.js +3 -15
- package/dist/cjs/wizard/index.js +10 -24
- package/dist/cjs/wizard/store/index.js +42 -55
- package/dist/cjs/wizard/store/utils.js +1 -6
- package/dist/esm/accordion/index.js +38 -0
- package/dist/esm/accordion/style.scss +27 -0
- package/dist/esm/action-card/index.js +50 -21
- package/dist/esm/action-card/style.scss +100 -23
- package/dist/esm/autocomplete-tokenfield/index.js +14 -37
- package/dist/esm/autocomplete-tokenfield/style.scss +2 -2
- package/dist/esm/autocomplete-with-suggestions/index.js +28 -41
- package/dist/esm/autocomplete-with-suggestions/style.scss +16 -15
- package/dist/esm/button/index.js +5 -7
- package/dist/esm/button-card/index.js +2 -5
- package/dist/esm/button-card/style.scss +13 -13
- package/dist/esm/card/index.js +2 -5
- package/dist/esm/card/style.scss +25 -8
- package/dist/esm/category-autocomplete/index.js +17 -30
- package/dist/esm/category-autocomplete/style.scss +0 -2
- package/dist/esm/color-picker/index.js +2 -4
- package/dist/esm/color-picker/style.scss +0 -3
- package/dist/esm/consts.js +3 -2
- package/dist/esm/custom-select-control/index.js +2 -5
- package/dist/esm/custom-select-control/style.scss +6 -7
- package/dist/esm/date-range-picker/index.js +1 -3
- package/dist/esm/date-range-picker/style.scss +12 -12
- package/dist/esm/footer/index.js +3 -11
- package/dist/esm/footer/style.scss +5 -5
- package/dist/esm/form-token-field/index.js +2 -5
- package/dist/esm/form-token-field/style.scss +2 -3
- package/dist/esm/global-notices/index.js +1 -6
- package/dist/esm/grid/index.js +2 -5
- package/dist/esm/grid/style.scss +5 -5
- package/dist/esm/handoff/index.js +3 -14
- package/dist/esm/handoff-message/index.js +45 -0
- package/dist/esm/hooks/index.js +0 -2
- package/dist/esm/hooks/useObjectState.js +3 -8
- package/dist/esm/hooks/useObjectState.test.js +0 -3
- package/dist/esm/hooks/useOnClickOutside.js +2 -5
- package/dist/esm/hooks/usePrompt.js +1 -8
- package/dist/esm/image-upload/index.js +17 -16
- package/dist/esm/image-upload/style.scss +5 -9
- package/dist/esm/index.js +4 -0
- package/dist/esm/info-button/index.js +4 -6
- package/dist/esm/info-button/style.scss +1 -3
- package/dist/esm/modal/index.js +2 -5
- package/dist/esm/modal/style.scss +8 -8
- package/dist/esm/newspack-icon/index.js +2 -5
- package/dist/esm/newspack-icon/style.scss +4 -4
- package/dist/esm/newspack-logo/index.js +2 -5
- package/dist/esm/newspack-logo/style.scss +3 -3
- package/dist/esm/notice/index.js +4 -8
- package/dist/esm/notice/style.scss +28 -15
- package/dist/esm/patrons-logo/index.js +3 -5
- package/dist/esm/plugin-installer/index.js +35 -39
- package/dist/esm/plugin-installer/style.scss +5 -5
- package/dist/esm/plugin-settings/SettingsSection.js +8 -21
- package/dist/esm/plugin-settings/index.js +38 -24
- package/dist/esm/plugin-toggle/index.js +39 -36
- package/dist/esm/plugin-toggle/style.scss +2 -2
- package/dist/esm/popover/index.js +3 -6
- package/dist/esm/popover/style.scss +19 -16
- package/dist/esm/position-control/index.js +109 -0
- package/dist/esm/position-control/style.scss +66 -0
- package/dist/esm/progress-bar/index.js +2 -7
- package/dist/esm/progress-bar/index.test.js +2 -1
- package/dist/esm/progress-bar/style.scss +4 -4
- package/dist/esm/proxied-imports/router.js +1 -0
- package/dist/esm/radio-control/index.js +3 -6
- package/dist/esm/radio-control/style.scss +9 -9
- package/dist/esm/section-header/index.js +44 -25
- package/dist/esm/section-header/style.scss +2 -2
- package/dist/esm/select-control/ButtonGroupControl.js +5 -7
- package/dist/esm/select-control/GroupedSelectControl.js +5 -6
- package/dist/esm/select-control/index.js +6 -6
- package/dist/esm/select-control/style.scss +2 -2
- package/dist/esm/settings/MinMaxSetting.js +1 -3
- package/dist/esm/settings/SettingsCard.js +3 -4
- package/dist/esm/settings/SettingsSection.js +0 -2
- package/dist/esm/settings/style.scss +1 -1
- package/dist/esm/steps-list/index.js +43 -0
- package/dist/esm/steps-list/style.scss +11 -0
- package/dist/esm/steps-list-item/index.js +48 -0
- package/dist/esm/steps-list-item/style.scss +47 -0
- package/dist/esm/style-card/index.js +2 -5
- package/dist/esm/style-card/style.scss +9 -12
- package/dist/esm/style.scss +5 -6
- package/dist/esm/tabbed-navigation/index.js +20 -10
- package/dist/esm/tabbed-navigation/style.scss +3 -4
- package/dist/esm/text-control/index.js +2 -9
- package/dist/esm/utils/index.js +9 -3
- package/dist/esm/waiting/index.js +2 -5
- package/dist/esm/web-preview/index.js +9 -24
- package/dist/esm/web-preview/style.scss +14 -14
- package/dist/esm/with-wizard/index.js +49 -34
- package/dist/esm/with-wizard/style.scss +35 -37
- package/dist/esm/with-wizard-screen/index.js +9 -11
- package/dist/esm/with-wizard-screen/style.scss +14 -17
- package/dist/esm/wizard/components/WizardError.js +1 -10
- package/dist/esm/wizard/index.js +10 -12
- package/dist/esm/wizard/store/index.js +40 -46
- package/dist/esm/wizard/store/utils.js +1 -1
- package/package.json +4 -4
- package/shared/js/button-props.js +3 -1
- package/shared/scss/_mixins.scss +12 -0
- package/src/accordion/index.js +32 -0
- package/src/accordion/style.scss +27 -0
- package/src/action-card/index.js +43 -8
- package/src/action-card/style.scss +100 -23
- package/src/autocomplete-tokenfield/index.js +1 -1
- package/src/autocomplete-tokenfield/style.scss +2 -2
- package/src/autocomplete-with-suggestions/style.scss +16 -15
- package/src/button-card/style.scss +13 -13
- package/src/card/style.scss +25 -8
- package/src/category-autocomplete/index.js +3 -1
- package/src/category-autocomplete/style.scss +0 -2
- package/src/color-picker/style.scss +0 -3
- package/src/consts.js +2 -1
- package/src/custom-select-control/style.scss +6 -7
- package/src/date-range-picker/style.scss +12 -12
- package/src/footer/index.js +2 -2
- package/src/footer/style.scss +5 -5
- package/src/form-token-field/index.js +2 -7
- package/src/form-token-field/style.scss +2 -3
- package/src/grid/style.scss +5 -5
- package/src/handoff/index.js +3 -8
- package/src/handoff-message/index.js +39 -0
- package/src/hooks/useObjectState.js +2 -1
- package/src/image-upload/index.js +9 -3
- package/src/image-upload/style.scss +5 -9
- package/src/index.js +4 -0
- package/src/info-button/style.scss +1 -3
- package/src/modal/style.scss +8 -8
- package/src/newspack-icon/style.scss +4 -4
- package/src/newspack-logo/style.scss +3 -3
- package/src/notice/index.js +2 -0
- package/src/notice/style.scss +28 -15
- package/src/plugin-installer/index.js +15 -2
- package/src/plugin-installer/style.scss +5 -5
- package/src/plugin-settings/SettingsSection.js +7 -13
- package/src/plugin-settings/index.js +7 -2
- package/src/plugin-toggle/index.js +2 -3
- package/src/plugin-toggle/style.scss +2 -2
- package/src/popover/style.scss +19 -16
- package/src/position-control/index.js +122 -0
- package/src/position-control/style.scss +66 -0
- package/src/progress-bar/style.scss +4 -4
- package/src/radio-control/style.scss +9 -9
- package/src/section-header/index.js +32 -15
- package/src/section-header/style.scss +2 -2
- package/src/select-control/ButtonGroupControl.js +3 -0
- package/src/select-control/GroupedSelectControl.js +2 -1
- package/src/select-control/index.js +6 -2
- package/src/select-control/style.scss +2 -2
- package/src/settings/style.scss +1 -1
- package/src/steps-list/index.js +39 -0
- package/src/steps-list/style.scss +11 -0
- package/src/steps-list-item/index.js +40 -0
- package/src/steps-list-item/style.scss +47 -0
- package/src/style-card/index.js +2 -11
- package/src/style-card/style.scss +9 -12
- package/src/style.scss +5 -6
- package/src/tabbed-navigation/index.js +12 -4
- package/src/tabbed-navigation/style.scss +3 -4
- package/src/utils/index.js +9 -0
- package/src/web-preview/index.js +1 -1
- package/src/web-preview/style.scss +14 -14
- package/src/with-wizard/style.scss +35 -37
- package/src/with-wizard-screen/index.js +4 -1
- package/src/with-wizard-screen/style.scss +14 -17
- package/src/wizard/index.js +15 -3
- package/src/wizard/store/index.js +8 -2
|
@@ -1,31 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
13
|
-
|
|
14
10
|
var _element = require("@wordpress/element");
|
|
15
|
-
|
|
16
11
|
var _i18n = require("@wordpress/i18n");
|
|
17
|
-
|
|
18
12
|
var _ = require("../");
|
|
19
|
-
|
|
20
13
|
require("./style.scss");
|
|
21
|
-
|
|
22
14
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
23
|
-
|
|
24
15
|
/**
|
|
25
16
|
* WordPress dependencies.
|
|
26
17
|
*/
|
|
18
|
+
/**
|
|
19
|
+
* Internal dependencies.
|
|
20
|
+
*/
|
|
27
21
|
const __ = _i18n.__;
|
|
28
|
-
|
|
29
22
|
/**
|
|
30
23
|
* Plugin toggle group component.
|
|
31
24
|
*/
|
|
@@ -38,6 +31,9 @@ class PluginToggle extends _element.Component {
|
|
|
38
31
|
(0, _defineProperty2.default)(this, "componentDidMount", () => {
|
|
39
32
|
this.retrievePluginInfo();
|
|
40
33
|
});
|
|
34
|
+
/**
|
|
35
|
+
* Retrieve complete data about Newspack plugins.
|
|
36
|
+
*/
|
|
41
37
|
(0, _defineProperty2.default)(this, "retrievePluginInfo", () => {
|
|
42
38
|
return new Promise(() => {
|
|
43
39
|
(0, _apiFetch.default)({
|
|
@@ -47,6 +43,9 @@ class PluginToggle extends _element.Component {
|
|
|
47
43
|
}));
|
|
48
44
|
});
|
|
49
45
|
});
|
|
46
|
+
/**
|
|
47
|
+
* Install/activate or remove a plugin.
|
|
48
|
+
*/
|
|
50
49
|
(0, _defineProperty2.default)(this, "managePlugin", (plugin, value) => {
|
|
51
50
|
const {
|
|
52
51
|
plugins
|
|
@@ -60,8 +59,10 @@ class PluginToggle extends _element.Component {
|
|
|
60
59
|
method: 'post'
|
|
61
60
|
};
|
|
62
61
|
this.setState({
|
|
63
|
-
pluginInfo: {
|
|
64
|
-
|
|
62
|
+
pluginInfo: {
|
|
63
|
+
...pluginInfo,
|
|
64
|
+
[plugin]: {
|
|
65
|
+
...pluginInfo[plugin],
|
|
65
66
|
inFlight: action
|
|
66
67
|
}
|
|
67
68
|
}
|
|
@@ -75,15 +76,18 @@ class PluginToggle extends _element.Component {
|
|
|
75
76
|
pluginInfo: currentPluginInfo
|
|
76
77
|
} = _ref;
|
|
77
78
|
return {
|
|
78
|
-
pluginInfo: {
|
|
79
|
+
pluginInfo: {
|
|
80
|
+
...currentPluginInfo,
|
|
79
81
|
[plugin]: response
|
|
80
82
|
}
|
|
81
83
|
};
|
|
82
84
|
}, () => shouldRefreshAfterUpdate && location.reload());
|
|
83
85
|
}).catch(e => {
|
|
84
86
|
this.setState({
|
|
85
|
-
pluginInfo: {
|
|
86
|
-
|
|
87
|
+
pluginInfo: {
|
|
88
|
+
...pluginInfo,
|
|
89
|
+
[plugin]: {
|
|
90
|
+
...pluginInfo[plugin],
|
|
87
91
|
error: e.message || __('There was an error managing this plugin.', 'newspack')
|
|
88
92
|
}
|
|
89
93
|
}
|
|
@@ -91,23 +95,31 @@ class PluginToggle extends _element.Component {
|
|
|
91
95
|
});
|
|
92
96
|
});
|
|
93
97
|
});
|
|
94
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Prepare plugins data for render. Change all keys to camelCase, merge API-fetched data with prop.
|
|
100
|
+
*/
|
|
101
|
+
(0, _defineProperty2.default)(this, "prepareDataForRender", (pluginsFromProps, pluginsFromAPI) => Object.keys(pluginsFromProps).map(pluginSlug => pluginsFromAPI[pluginSlug] ? Object.keys(pluginsFromAPI[pluginSlug]).reduce((accumulator, key) => ({
|
|
102
|
+
...accumulator,
|
|
95
103
|
[key.charAt(0).toLowerCase() + key.slice(1)]: pluginsFromAPI[pluginSlug][key]
|
|
96
104
|
}), {}) : {}).map(plugin => Object.assign(plugin, pluginsFromProps[plugin.slug])));
|
|
105
|
+
/**
|
|
106
|
+
* Generate a classname for the ActionCard based on plugin state. Applies 'in-flight' class if an API is underway and 'loading' if the plugin data is not yet available.
|
|
107
|
+
*/
|
|
97
108
|
(0, _defineProperty2.default)(this, "classNameForPlugin", plugin => {
|
|
98
109
|
const {
|
|
99
110
|
status,
|
|
100
111
|
inFlight
|
|
101
112
|
} = plugin;
|
|
102
|
-
|
|
103
113
|
if (inFlight) {
|
|
104
114
|
return 'in-flight';
|
|
105
115
|
}
|
|
106
|
-
|
|
107
116
|
if (!status) {
|
|
108
117
|
return 'loading';
|
|
109
118
|
}
|
|
110
119
|
});
|
|
120
|
+
/**
|
|
121
|
+
* Generate the ActionCard action text for a plugin.
|
|
122
|
+
*/
|
|
111
123
|
(0, _defineProperty2.default)(this, "actionTextForPlugin", plugin => {
|
|
112
124
|
const {
|
|
113
125
|
actionText,
|
|
@@ -115,8 +127,8 @@ class PluginToggle extends _element.Component {
|
|
|
115
127
|
href,
|
|
116
128
|
inFlight,
|
|
117
129
|
name
|
|
118
|
-
} = plugin;
|
|
119
|
-
|
|
130
|
+
} = plugin;
|
|
131
|
+
// Show spinner when plugin data is unavailable, or when an API call is in flight.
|
|
120
132
|
if ('configure' === inFlight) {
|
|
121
133
|
return (0, _jsxRuntime.jsxs)(_element.Fragment, {
|
|
122
134
|
children: [__('Installing…', 'newspack'), " ", (0, _jsxRuntime.jsx)(_.Waiting, {
|
|
@@ -124,7 +136,6 @@ class PluginToggle extends _element.Component {
|
|
|
124
136
|
})]
|
|
125
137
|
});
|
|
126
138
|
}
|
|
127
|
-
|
|
128
139
|
if ('deactivate' === inFlight) {
|
|
129
140
|
return (0, _jsxRuntime.jsxs)(_element.Fragment, {
|
|
130
141
|
children: [__('Deactivating…', 'newspack'), " ", (0, _jsxRuntime.jsx)(_.Waiting, {
|
|
@@ -132,24 +143,24 @@ class PluginToggle extends _element.Component {
|
|
|
132
143
|
})]
|
|
133
144
|
});
|
|
134
145
|
}
|
|
135
|
-
|
|
136
146
|
if (!name) {
|
|
137
147
|
return (0, _jsxRuntime.jsxs)(_element.Fragment, {
|
|
138
148
|
children: [__('Loading…', 'newspack'), " ", (0, _jsxRuntime.jsx)(_.Waiting, {
|
|
139
149
|
isRight: true
|
|
140
150
|
})]
|
|
141
151
|
});
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
152
|
+
}
|
|
153
|
+
// No action button at all if the plugin isn't installed and active.
|
|
145
154
|
if (!this.isPluginInstalledAndActive(plugin)) {
|
|
146
155
|
return null;
|
|
147
156
|
}
|
|
148
|
-
|
|
149
157
|
if (href || editPath) {
|
|
150
158
|
return actionText ? actionText : __('Configure', 'newspack');
|
|
151
159
|
}
|
|
152
160
|
});
|
|
161
|
+
/**
|
|
162
|
+
* Get error message for this plugin.
|
|
163
|
+
*/
|
|
153
164
|
(0, _defineProperty2.default)(this, "errorForPlugin", plugin => {
|
|
154
165
|
const {
|
|
155
166
|
slug
|
|
@@ -159,6 +170,9 @@ class PluginToggle extends _element.Component {
|
|
|
159
170
|
} = this.state;
|
|
160
171
|
return pluginInfo[slug]?.error || null;
|
|
161
172
|
});
|
|
173
|
+
/**
|
|
174
|
+
* Get installation/activation status for a plugin.
|
|
175
|
+
*/
|
|
162
176
|
(0, _defineProperty2.default)(this, "isPluginInstalledAndActive", plugin => {
|
|
163
177
|
const {
|
|
164
178
|
status
|
|
@@ -166,7 +180,6 @@ class PluginToggle extends _element.Component {
|
|
|
166
180
|
return status === 'active';
|
|
167
181
|
});
|
|
168
182
|
}
|
|
169
|
-
|
|
170
183
|
/**
|
|
171
184
|
* Render.
|
|
172
185
|
*/
|
|
@@ -204,12 +217,6 @@ class PluginToggle extends _element.Component {
|
|
|
204
217
|
}, index);
|
|
205
218
|
});
|
|
206
219
|
}
|
|
207
|
-
/**
|
|
208
|
-
* Prepare plugins data for render. Change all keys to camelCase, merge API-fetched data with prop.
|
|
209
|
-
*/
|
|
210
|
-
|
|
211
|
-
|
|
212
220
|
}
|
|
213
|
-
|
|
214
221
|
var _default = PluginToggle;
|
|
215
222
|
exports.default = _default;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Plugin Toggle
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@
|
|
5
|
+
@use '~@wordpress/base-styles/colors' as wp-colors;
|
|
6
6
|
|
|
7
7
|
.newspack-action-card {
|
|
8
8
|
&.in-flight,
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
.newspack-action-card__region-right {
|
|
13
13
|
.newspack-button {
|
|
14
|
-
color:
|
|
14
|
+
color: wp-colors.$gray-700;
|
|
15
15
|
pointer-events: none;
|
|
16
16
|
text-decoration: none;
|
|
17
17
|
}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _components = require("@wordpress/components");
|
|
11
|
-
|
|
12
9
|
var _element = require("@wordpress/element");
|
|
13
|
-
|
|
14
10
|
require("./style.scss");
|
|
15
|
-
|
|
16
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
12
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
19
|
-
|
|
20
13
|
/**
|
|
21
14
|
* WordPress dependencies
|
|
22
15
|
*/
|
|
@@ -31,8 +24,7 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
|
31
24
|
|
|
32
25
|
/**
|
|
33
26
|
* Popover
|
|
34
|
-
*/
|
|
35
|
-
class Popover extends _element.Component {
|
|
27
|
+
*/class Popover extends _element.Component {
|
|
36
28
|
/**
|
|
37
29
|
* Render
|
|
38
30
|
*/
|
|
@@ -48,9 +40,7 @@ class Popover extends _element.Component {
|
|
|
48
40
|
...otherProps
|
|
49
41
|
});
|
|
50
42
|
}
|
|
51
|
-
|
|
52
43
|
}
|
|
53
|
-
|
|
54
44
|
Popover.defaultProps = {
|
|
55
45
|
padding: false
|
|
56
46
|
};
|
|
@@ -2,30 +2,29 @@
|
|
|
2
2
|
* Popover
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@
|
|
6
|
-
@
|
|
5
|
+
@use '../../../shared/scss/colors';
|
|
6
|
+
@use '~@wordpress/base-styles/colors' as wp-colors;
|
|
7
7
|
|
|
8
8
|
.newspack-popover {
|
|
9
9
|
.components-popover__content {
|
|
10
|
-
border: 1px solid $gray-300;
|
|
11
|
-
border-radius: 2px;
|
|
12
|
-
box-shadow: 0 4px 8px rgba( black, 0.08 );
|
|
13
10
|
min-width: 238px;
|
|
14
11
|
|
|
15
12
|
.newspack-button {
|
|
16
|
-
color:
|
|
13
|
+
color: wp-colors.$gray-700;
|
|
17
14
|
display: flex;
|
|
18
15
|
font-weight: normal;
|
|
19
16
|
padding: 6px 8px;
|
|
20
17
|
|
|
21
18
|
&:hover {
|
|
19
|
+
color: colors.$primary-500;
|
|
20
|
+
|
|
22
21
|
.components-menu-items__item-icon {
|
|
23
|
-
fill:
|
|
22
|
+
fill: currentcolor;
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
&:focus:not( :disabled ) {
|
|
28
|
-
box-shadow: inset 0 0 0 2px
|
|
27
|
+
box-shadow: inset 0 0 0 2px colors.$primary-500;
|
|
29
28
|
position: relative;
|
|
30
29
|
z-index: 1;
|
|
31
30
|
}
|
|
@@ -36,14 +35,14 @@
|
|
|
36
35
|
text-decoration: none;
|
|
37
36
|
|
|
38
37
|
&:not( .is-destructive ) {
|
|
39
|
-
color:
|
|
38
|
+
color: wp-colors.$gray-700;
|
|
40
39
|
|
|
41
40
|
&:active,
|
|
42
41
|
&:active:enabled,
|
|
43
42
|
&:focus,
|
|
44
43
|
&:focus:enabled &:hover,
|
|
45
|
-
&:not( :disabled
|
|
46
|
-
color:
|
|
44
|
+
&:not( :disabled, [aria-disabled='true'], .is-default ):hover {
|
|
45
|
+
color: colors.$primary-500;
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
|
|
@@ -53,8 +52,12 @@
|
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
55
|
+
&.is-destructive:not( :focus ) {
|
|
56
|
+
box-shadow: none !important;
|
|
57
|
+
}
|
|
58
|
+
|
|
56
59
|
.components-menu-items__item-icon {
|
|
57
|
-
fill:
|
|
60
|
+
fill: wp-colors.$gray-900;
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
.components-menu-item__item {
|
|
@@ -64,7 +67,7 @@
|
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
.components-menu-group__label {
|
|
67
|
-
color:
|
|
70
|
+
color: wp-colors.$gray-900;
|
|
68
71
|
font-size: 12px;
|
|
69
72
|
font-weight: bold;
|
|
70
73
|
line-height: 16px;
|
|
@@ -86,8 +89,8 @@
|
|
|
86
89
|
min-height: 36px;
|
|
87
90
|
|
|
88
91
|
&:focus ~ div.components-input-control__backdrop {
|
|
89
|
-
border-color:
|
|
90
|
-
box-shadow: inset 0 0 0 1px
|
|
92
|
+
border-color: colors.$primary-500;
|
|
93
|
+
box-shadow: inset 0 0 0 1px colors.$primary-500;
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
|
|
@@ -129,7 +132,7 @@
|
|
|
129
132
|
}
|
|
130
133
|
|
|
131
134
|
&:not( .is-without-arrow )::before {
|
|
132
|
-
border-color:
|
|
135
|
+
border-color: wp-colors.$gray-300;
|
|
133
136
|
}
|
|
134
137
|
|
|
135
138
|
&.is-from-bottom {
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = PositionControl;
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _components = require("@wordpress/components");
|
|
10
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
+
require("./style.scss");
|
|
12
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
const __ = _i18n.__;
|
|
17
|
+
/**
|
|
18
|
+
* External dependencies
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Internal dependencies
|
|
22
|
+
*/
|
|
23
|
+
function PositionControl(_ref) {
|
|
24
|
+
let {
|
|
25
|
+
allowedPositions,
|
|
26
|
+
value,
|
|
27
|
+
label,
|
|
28
|
+
help,
|
|
29
|
+
onChange,
|
|
30
|
+
size,
|
|
31
|
+
...props
|
|
32
|
+
} = _ref;
|
|
33
|
+
/**
|
|
34
|
+
* Set layout options
|
|
35
|
+
*/
|
|
36
|
+
const options = size === 'full-width' ? [{
|
|
37
|
+
value: 'top',
|
|
38
|
+
/* translators: Overlay Position */
|
|
39
|
+
label: __('Top', 'newspack')
|
|
40
|
+
}, {
|
|
41
|
+
value: 'center',
|
|
42
|
+
/* translators: Overlay Position */
|
|
43
|
+
label: __('Center', 'newspack')
|
|
44
|
+
}, {
|
|
45
|
+
value: 'bottom',
|
|
46
|
+
/* translators: Overlay Position */
|
|
47
|
+
label: __('Bottom', 'newspack')
|
|
48
|
+
}] : [{
|
|
49
|
+
value: 'top_left',
|
|
50
|
+
/* translators: Overlay Position */
|
|
51
|
+
label: __('Top Left', 'newspack')
|
|
52
|
+
}, {
|
|
53
|
+
value: 'top',
|
|
54
|
+
/* translators: Overlay Position */
|
|
55
|
+
label: __('Top Center', 'newspack')
|
|
56
|
+
}, {
|
|
57
|
+
value: 'top_right',
|
|
58
|
+
/* translators: Overlay Position */
|
|
59
|
+
label: __('Top Right', 'newspack')
|
|
60
|
+
}, {
|
|
61
|
+
value: 'center_left',
|
|
62
|
+
/* translators: Overlay Position */
|
|
63
|
+
label: __('Center Left', 'newspack')
|
|
64
|
+
}, {
|
|
65
|
+
value: 'center',
|
|
66
|
+
/* translators: Overlay Position */
|
|
67
|
+
label: __('Center', 'newspack')
|
|
68
|
+
}, {
|
|
69
|
+
value: 'center_right',
|
|
70
|
+
/* translators: Overlay Position */
|
|
71
|
+
label: __('Center Right', 'newspack')
|
|
72
|
+
}, {
|
|
73
|
+
value: 'bottom_left',
|
|
74
|
+
/* translators: Overlay Position */
|
|
75
|
+
label: __('Bottom Left', 'newspack')
|
|
76
|
+
}, {
|
|
77
|
+
value: 'bottom',
|
|
78
|
+
/* translators: Overlay Position */
|
|
79
|
+
label: __('Bottom Center', 'newspack')
|
|
80
|
+
}, {
|
|
81
|
+
value: 'bottom_right',
|
|
82
|
+
/* translators: Overlay Position */
|
|
83
|
+
label: __('Bottom Right', 'newspack')
|
|
84
|
+
}];
|
|
85
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
86
|
+
className: (0, _classnames.default)('newspack-position-placement-control', 'size-' + size),
|
|
87
|
+
children: [(0, _jsxRuntime.jsx)("p", {
|
|
88
|
+
className: "components-base-control__label",
|
|
89
|
+
children: label
|
|
90
|
+
}), (0, _jsxRuntime.jsx)(_components.ButtonGroup, {
|
|
91
|
+
"aria-label": __('Select Position', 'newspack'),
|
|
92
|
+
...props,
|
|
93
|
+
children: options.map((option, index) => {
|
|
94
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
95
|
+
className: option.value === value ? 'is-selected' : null,
|
|
96
|
+
children: (0, _jsxRuntime.jsx)(_components.Button, {
|
|
97
|
+
isSmall: true,
|
|
98
|
+
title: option.label,
|
|
99
|
+
"aria-label": option.label,
|
|
100
|
+
isPrimary: option.value === value,
|
|
101
|
+
onClick: () => {
|
|
102
|
+
onChange(option.value);
|
|
103
|
+
},
|
|
104
|
+
disabled: allowedPositions?.length && !allowedPositions.includes(option.value)
|
|
105
|
+
})
|
|
106
|
+
}, `newspack-position-placement-item-${index}`);
|
|
107
|
+
})
|
|
108
|
+
}), (0, _jsxRuntime.jsx)("p", {
|
|
109
|
+
className: "components-base-control__help",
|
|
110
|
+
children: help
|
|
111
|
+
})]
|
|
112
|
+
});
|
|
113
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
@use '~@wordpress/base-styles/colors' as wp-colors;
|
|
2
|
+
|
|
3
|
+
.newspack-position-placement-control {
|
|
4
|
+
margin-bottom: 1em;
|
|
5
|
+
|
|
6
|
+
.components-base-control__label {
|
|
7
|
+
margin-bottom: 8px;
|
|
8
|
+
margin-top: 1em;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.components-button-group {
|
|
12
|
+
display: grid;
|
|
13
|
+
grid-template-columns: repeat( 3, 1fr );
|
|
14
|
+
grid-template-rows: repeat( 3, 1fr );
|
|
15
|
+
|
|
16
|
+
div {
|
|
17
|
+
padding: 1px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.components-button {
|
|
21
|
+
border-radius: 0 !important;
|
|
22
|
+
height: 100%;
|
|
23
|
+
padding: 20px;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
div:nth-of-type( 1 ) .components-button {
|
|
28
|
+
border-radius: 4px 0 0 !important;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
div:nth-of-type( 3 ) .components-button {
|
|
32
|
+
border-radius: 0 4px 0 0 !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
div:nth-last-of-type( 1 ) .components-button {
|
|
36
|
+
border-radius: 0 0 4px !important;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
div:nth-last-of-type( 3 ) .components-button {
|
|
40
|
+
border-radius: 0 0 0 4px !important;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&.size-full-width .components-button-group {
|
|
45
|
+
grid-template-columns: 1fr;
|
|
46
|
+
|
|
47
|
+
div:first-of-type .components-button {
|
|
48
|
+
border-radius: 4px 4px 0 0 !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
div:nth-of-type( 2 ) .components-button {
|
|
52
|
+
border-radius: 0 !important;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
div:last-of-type .components-button {
|
|
56
|
+
border-radius: 0 0 4px 4px !important;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.components-base-control__help {
|
|
61
|
+
color: wp-colors.$gray-700;
|
|
62
|
+
font-size: 12px;
|
|
63
|
+
font-style: normal;
|
|
64
|
+
margin-top: 8px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
8
|
require("./style.scss");
|
|
11
|
-
|
|
12
9
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
13
|
-
|
|
14
10
|
/**
|
|
15
11
|
* Progress Bar
|
|
16
12
|
*/
|
|
@@ -22,6 +18,7 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
|
22
18
|
/**
|
|
23
19
|
* Internal dependencies.
|
|
24
20
|
*/
|
|
21
|
+
|
|
25
22
|
class ProgressBar extends _element.Component {
|
|
26
23
|
/**
|
|
27
24
|
* Get completion as a percentage.
|
|
@@ -34,14 +31,12 @@ class ProgressBar extends _element.Component {
|
|
|
34
31
|
if (!total) {
|
|
35
32
|
return 100;
|
|
36
33
|
}
|
|
37
|
-
|
|
38
34
|
return Math.max(Math.min(Math.round(completed / total * 100), 100), 0);
|
|
39
35
|
}
|
|
36
|
+
|
|
40
37
|
/**
|
|
41
38
|
* Render.
|
|
42
39
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
40
|
render() {
|
|
46
41
|
const {
|
|
47
42
|
label,
|
|
@@ -76,8 +71,6 @@ class ProgressBar extends _element.Component {
|
|
|
76
71
|
})]
|
|
77
72
|
});
|
|
78
73
|
}
|
|
79
|
-
|
|
80
74
|
}
|
|
81
|
-
|
|
82
75
|
var _default = ProgressBar;
|
|
83
76
|
exports.default = _default;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _ = _interopRequireDefault(require("./"));
|
|
10
|
-
|
|
11
7
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
|
-
|
|
13
8
|
var _react3 = require("@emotion/react");
|
|
14
|
-
|
|
15
9
|
describe('ProgressBar', () => {
|
|
16
10
|
it('should render a progress indicator', () => {
|
|
17
11
|
const {
|
|
@@ -84,7 +78,8 @@ describe('ProgressBar', () => {
|
|
|
84
78
|
it(`with expected progress of ${expectedWidth}`, () => {
|
|
85
79
|
const {
|
|
86
80
|
getByTestId
|
|
87
|
-
} = (0, _react2.render)((0, _react3.createElement)(_.default, {
|
|
81
|
+
} = (0, _react2.render)((0, _react3.createElement)(_.default, {
|
|
82
|
+
...props,
|
|
88
83
|
key: expectedWidth
|
|
89
84
|
}));
|
|
90
85
|
expect(getByTestId('progress-bar-indicator')).toHaveAttribute('style', `width: ${expectedWidth}%;`);
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Progress Bar
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@
|
|
6
|
-
@
|
|
5
|
+
@use '../../../shared/scss/colors';
|
|
6
|
+
@use '~@wordpress/base-styles/colors' as wp-colors;
|
|
7
7
|
|
|
8
8
|
.newspack-progress-bar {
|
|
9
9
|
margin: 32px 0;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
&__container {
|
|
29
|
-
background-color:
|
|
29
|
+
background-color: wp-colors.$gray-100;
|
|
30
30
|
border-radius: 4px;
|
|
31
31
|
height: 8px;
|
|
32
32
|
overflow: hidden;
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
&__bar {
|
|
38
|
-
background-color:
|
|
38
|
+
background-color: colors.$primary-500;
|
|
39
39
|
height: 8px;
|
|
40
40
|
transition: width 125ms ease-in-out;
|
|
41
41
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var ReactRouterDOM = _interopRequireWildcard(require("react-router-dom"));
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* A proxy for react-router-dom.
|
|
14
11
|
* Ensures that both components and the plugin use the same instance of
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _components = require("@wordpress/components");
|
|
11
|
-
|
|
12
9
|
var _element = require("@wordpress/element");
|
|
13
|
-
|
|
14
10
|
require("./style.scss");
|
|
15
|
-
|
|
16
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
12
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
19
|
-
|
|
20
13
|
/**
|
|
21
14
|
* WordPress dependencies.
|
|
22
15
|
*/
|
|
@@ -31,8 +24,7 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
|
31
24
|
|
|
32
25
|
/**
|
|
33
26
|
* Radio Control.
|
|
34
|
-
*/
|
|
35
|
-
class RadioControl extends _element.Component {
|
|
27
|
+
*/class RadioControl extends _element.Component {
|
|
36
28
|
/**
|
|
37
29
|
* Render.
|
|
38
30
|
*/
|
|
@@ -47,8 +39,6 @@ class RadioControl extends _element.Component {
|
|
|
47
39
|
...otherProps
|
|
48
40
|
});
|
|
49
41
|
}
|
|
50
|
-
|
|
51
42
|
}
|
|
52
|
-
|
|
53
43
|
var _default = RadioControl;
|
|
54
44
|
exports.default = _default;
|