newspack-components 2.0.3 → 2.1.0
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/copy-styles.js +1 -1
- package/dist/cjs/action-card/index.js +29 -20
- package/dist/cjs/action-card/style.scss +52 -27
- package/dist/cjs/autocomplete-tokenfield/style.scss +4 -4
- package/dist/cjs/autocomplete-with-suggestions/index.js +3 -2
- package/dist/cjs/autocomplete-with-suggestions/style.scss +19 -20
- package/dist/cjs/button/index.js +2 -13
- package/dist/cjs/button/style.scss +3 -344
- package/dist/cjs/button-card/index.js +11 -6
- package/dist/cjs/button-card/style.scss +60 -30
- package/dist/cjs/card/index.js +3 -1
- package/dist/cjs/card/style.scss +29 -62
- package/dist/cjs/category-autocomplete/index.js +52 -13
- package/dist/cjs/category-autocomplete/style.scss +20 -22
- package/dist/cjs/color-picker/index.js +17 -35
- package/dist/cjs/color-picker/style.scss +20 -160
- package/dist/cjs/custom-select-control/style.scss +12 -42
- package/dist/cjs/footer/index.js +21 -7
- package/dist/cjs/footer/style.scss +9 -10
- package/dist/cjs/form-token-field/index.js +2 -2
- package/dist/cjs/form-token-field/style.scss +8 -103
- package/dist/cjs/global-notices/index.js +2 -1
- package/dist/cjs/grid/style.scss +14 -1
- package/dist/cjs/handoff/index.js +7 -7
- package/dist/cjs/image-upload/index.js +1 -1
- package/dist/cjs/image-upload/style.scss +10 -11
- package/dist/cjs/index.js +7 -53
- package/dist/cjs/modal/index.js +0 -3
- package/dist/cjs/modal/style.scss +19 -131
- package/dist/cjs/newspack-icon/index.js +4 -2
- package/dist/cjs/newspack-icon/style.scss +15 -0
- package/dist/cjs/notice/index.js +8 -9
- package/dist/cjs/notice/style.scss +38 -10
- package/dist/cjs/plugin-installer/index.js +1 -1
- package/dist/cjs/plugin-settings/SettingsSection.js +74 -43
- package/dist/cjs/plugin-settings/index.js +34 -30
- package/dist/cjs/plugin-settings/style.scss +7 -0
- package/dist/cjs/plugin-toggle/index.js +22 -1
- package/dist/cjs/popover/style.scss +2 -2
- package/dist/cjs/radio-control/style.scss +1 -2
- package/dist/cjs/section-header/index.js +18 -5
- package/dist/cjs/section-header/style.scss +22 -1
- package/dist/cjs/select-control/ButtonGroupControl.js +8 -8
- package/dist/cjs/select-control/GroupedSelectControl.js +33 -30
- package/dist/cjs/select-control/index.js +1 -2
- package/dist/cjs/select-control/style.scss +46 -87
- package/dist/cjs/settings/MinMaxSetting.js +4 -2
- package/dist/cjs/settings/SettingsCard.js +6 -1
- package/dist/cjs/settings/SettingsSection.js +4 -4
- package/dist/cjs/settings/style.scss +32 -4
- package/dist/cjs/style-card/index.js +10 -6
- package/dist/cjs/style-card/style.scss +12 -8
- package/dist/cjs/style.scss +44 -0
- package/dist/cjs/tabbed-navigation/index.js +13 -20
- package/dist/cjs/tabbed-navigation/style.scss +56 -34
- package/dist/cjs/text-control/index.js +0 -3
- package/dist/cjs/text-control/style.scss +0 -126
- package/dist/cjs/waiting/index.js +9 -25
- package/dist/cjs/waiting/style.scss +9 -20
- package/dist/cjs/web-preview/index.js +18 -30
- package/dist/cjs/web-preview/style.scss +33 -26
- package/dist/cjs/with-wizard/index.js +4 -2
- package/dist/cjs/with-wizard/style.scss +44 -89
- package/dist/cjs/with-wizard-screen/index.js +17 -21
- package/dist/cjs/with-wizard-screen/style.scss +74 -121
- package/dist/cjs/wizard/components/WizardError.js +86 -0
- package/dist/cjs/wizard/index.js +145 -0
- package/dist/cjs/wizard/store/index.js +178 -0
- package/dist/cjs/wizard/store/utils.js +31 -0
- package/dist/esm/action-card/index.js +30 -21
- package/dist/esm/action-card/style.scss +52 -27
- package/dist/esm/autocomplete-tokenfield/style.scss +4 -4
- package/dist/esm/autocomplete-with-suggestions/index.js +3 -2
- package/dist/esm/autocomplete-with-suggestions/style.scss +19 -20
- package/dist/esm/button/index.js +2 -12
- package/dist/esm/button/style.scss +3 -344
- package/dist/esm/button-card/index.js +10 -6
- package/dist/esm/button-card/style.scss +60 -30
- package/dist/esm/card/index.js +3 -1
- package/dist/esm/card/style.scss +29 -62
- package/dist/esm/category-autocomplete/index.js +54 -14
- package/dist/esm/category-autocomplete/style.scss +20 -22
- package/dist/esm/color-picker/index.js +15 -34
- package/dist/esm/color-picker/style.scss +20 -160
- package/dist/esm/custom-select-control/style.scss +12 -42
- package/dist/esm/footer/index.js +21 -7
- package/dist/esm/footer/style.scss +9 -10
- package/dist/esm/form-token-field/index.js +2 -2
- package/dist/esm/form-token-field/style.scss +8 -103
- package/dist/esm/global-notices/index.js +2 -1
- package/dist/esm/grid/style.scss +14 -1
- package/dist/esm/handoff/index.js +7 -7
- package/dist/esm/image-upload/index.js +1 -1
- package/dist/esm/image-upload/style.scss +10 -11
- package/dist/esm/index.js +3 -8
- package/dist/esm/modal/index.js +0 -3
- package/dist/esm/modal/style.scss +19 -131
- package/dist/esm/newspack-icon/index.js +4 -2
- package/dist/esm/newspack-icon/style.scss +15 -0
- package/dist/esm/notice/index.js +8 -3
- package/dist/esm/notice/style.scss +38 -10
- package/dist/esm/plugin-installer/index.js +2 -1
- package/dist/esm/plugin-settings/SettingsSection.js +72 -44
- package/dist/esm/plugin-settings/index.js +34 -30
- package/dist/esm/plugin-settings/style.scss +7 -0
- package/dist/esm/plugin-toggle/index.js +23 -1
- package/dist/esm/popover/style.scss +2 -2
- package/dist/esm/radio-control/style.scss +1 -2
- package/dist/esm/section-header/index.js +17 -5
- package/dist/esm/section-header/style.scss +22 -1
- package/dist/esm/select-control/ButtonGroupControl.js +8 -8
- package/dist/esm/select-control/GroupedSelectControl.js +33 -30
- package/dist/esm/select-control/index.js +1 -2
- package/dist/esm/select-control/style.scss +46 -87
- package/dist/esm/settings/MinMaxSetting.js +3 -2
- package/dist/esm/settings/SettingsCard.js +6 -1
- package/dist/esm/settings/SettingsSection.js +5 -5
- package/dist/esm/settings/style.scss +32 -4
- package/dist/esm/style-card/index.js +11 -8
- package/dist/esm/style-card/style.scss +12 -8
- package/dist/esm/style.scss +44 -0
- package/dist/esm/tabbed-navigation/index.js +14 -22
- package/dist/esm/tabbed-navigation/style.scss +56 -34
- package/dist/esm/text-control/index.js +0 -3
- package/dist/esm/text-control/style.scss +0 -126
- package/dist/esm/waiting/index.js +9 -22
- package/dist/esm/waiting/style.scss +9 -20
- package/dist/esm/web-preview/index.js +12 -25
- package/dist/esm/web-preview/style.scss +33 -26
- package/dist/esm/with-wizard/index.js +4 -2
- package/dist/esm/with-wizard/style.scss +44 -89
- package/dist/esm/with-wizard-screen/index.js +18 -22
- package/dist/esm/with-wizard-screen/style.scss +74 -121
- package/dist/esm/wizard/components/WizardError.js +78 -0
- package/dist/esm/wizard/index.js +128 -0
- package/dist/esm/wizard/store/index.js +161 -0
- package/dist/esm/wizard/store/utils.js +17 -0
- package/package.json +1 -1
- package/shared/scss/_colors.scss +15 -0
- package/src/action-card/index.js +28 -18
- package/src/action-card/style.scss +52 -27
- package/src/autocomplete-tokenfield/style.scss +4 -4
- package/src/autocomplete-with-suggestions/index.js +4 -2
- package/src/autocomplete-with-suggestions/style.scss +19 -20
- package/src/button/index.js +2 -9
- package/src/button/style.scss +3 -344
- package/src/button-card/index.js +19 -5
- package/src/button-card/style.scss +60 -30
- package/src/card/index.js +4 -0
- package/src/card/style.scss +29 -62
- package/src/category-autocomplete/index.js +51 -18
- package/src/category-autocomplete/style.scss +20 -22
- package/src/color-picker/index.js +16 -22
- package/src/color-picker/style.scss +20 -160
- package/src/custom-select-control/style.scss +12 -42
- package/src/footer/index.js +19 -8
- package/src/footer/style.scss +9 -10
- package/src/form-token-field/index.js +1 -1
- package/src/form-token-field/style.scss +8 -103
- package/src/global-notices/index.js +1 -1
- package/src/grid/style.scss +14 -1
- package/src/handoff/index.js +7 -7
- package/src/image-upload/style.scss +10 -11
- package/src/index.js +3 -7
- package/src/modal/index.js +2 -5
- package/src/modal/style.scss +19 -131
- package/src/newspack-icon/index.js +7 -2
- package/src/newspack-icon/style.scss +15 -0
- package/src/notice/index.js +7 -1
- package/src/notice/style.scss +38 -10
- package/src/plugin-installer/index.js +2 -2
- package/src/plugin-settings/SettingsSection.js +64 -26
- package/src/plugin-settings/index.js +23 -7
- package/src/plugin-settings/style.scss +7 -0
- package/src/plugin-toggle/index.js +35 -9
- package/src/popover/style.scss +2 -2
- package/src/radio-control/style.scss +1 -2
- package/src/section-header/index.js +25 -6
- package/src/section-header/style.scss +22 -1
- package/src/select-control/ButtonGroupControl.js +13 -6
- package/src/select-control/GroupedSelectControl.js +26 -24
- package/src/select-control/index.js +1 -2
- package/src/select-control/style.scss +46 -87
- package/src/settings/MinMaxSetting.js +2 -1
- package/src/settings/SettingsCard.js +9 -7
- package/src/settings/SettingsSection.js +4 -4
- package/src/settings/style.scss +32 -4
- package/src/style-card/index.js +14 -16
- package/src/style-card/style.scss +12 -8
- package/src/style.scss +44 -0
- package/src/tabbed-navigation/index.js +12 -24
- package/src/tabbed-navigation/style.scss +56 -34
- package/src/text-control/index.js +1 -2
- package/src/text-control/style.scss +0 -126
- package/src/waiting/index.js +7 -18
- package/src/waiting/style.scss +9 -20
- package/src/web-preview/index.js +12 -33
- package/src/web-preview/style.scss +33 -26
- package/src/with-wizard/index.js +7 -5
- package/src/with-wizard/style.scss +44 -89
- package/src/with-wizard-screen/index.js +14 -17
- package/src/with-wizard-screen/style.scss +74 -121
- package/src/wizard/components/WizardError.js +57 -0
- package/src/wizard/index.js +133 -0
- package/src/wizard/store/index.js +126 -0
- package/src/wizard/store/utils.js +16 -0
- package/dist/cjs/button-group/index.js +0 -57
- package/dist/cjs/button-group/style.scss +0 -73
- package/dist/cjs/checkbox-control/index.js +0 -63
- package/dist/cjs/checkbox-control/style.scss +0 -78
- package/dist/cjs/preview-box/index.js +0 -36
- package/dist/cjs/preview-box/style.scss +0 -18
- package/dist/cjs/textarea-control/index.js +0 -54
- package/dist/cjs/textarea-control/style.scss +0 -76
- package/dist/cjs/toggle-control/index.js +0 -58
- package/dist/cjs/toggle-control/style.scss +0 -74
- package/dist/cjs/toggle-group/index.js +0 -71
- package/dist/cjs/toggle-group/style.scss +0 -28
- package/dist/cjs/wizard-pagination/index.js +0 -71
- package/dist/cjs/wizard-pagination/style.scss +0 -74
- package/dist/esm/button-group/index.js +0 -43
- package/dist/esm/button-group/style.scss +0 -73
- package/dist/esm/checkbox-control/index.js +0 -49
- package/dist/esm/checkbox-control/style.scss +0 -78
- package/dist/esm/preview-box/index.js +0 -30
- package/dist/esm/preview-box/style.scss +0 -18
- package/dist/esm/textarea-control/index.js +0 -40
- package/dist/esm/textarea-control/style.scss +0 -76
- package/dist/esm/toggle-control/index.js +0 -44
- package/dist/esm/toggle-control/style.scss +0 -74
- package/dist/esm/toggle-group/index.js +0 -58
- package/dist/esm/toggle-group/style.scss +0 -28
- package/dist/esm/wizard-pagination/index.js +0 -57
- package/dist/esm/wizard-pagination/style.scss +0 -74
- package/src/button-group/index.js +0 -35
- package/src/button-group/style.scss +0 -73
- package/src/checkbox-control/index.js +0 -38
- package/src/checkbox-control/style.scss +0 -78
- package/src/preview-box/index.js +0 -18
- package/src/preview-box/style.scss +0 -18
- package/src/textarea-control/index.js +0 -32
- package/src/textarea-control/style.scss +0 -76
- package/src/toggle-control/index.js +0 -38
- package/src/toggle-control/style.scss +0 -74
- package/src/toggle-group/index.js +0 -43
- package/src/toggle-group/style.scss +0 -28
- package/src/wizard-pagination/index.js +0 -59
- package/src/wizard-pagination/style.scss +0 -74
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies.
|
|
3
|
+
*/
|
|
4
|
+
import { set, get, isEmpty } from 'lodash';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies.
|
|
8
|
+
*/
|
|
9
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
10
|
+
import { createReduxStore, register, dispatch, select } from '@wordpress/data';
|
|
11
|
+
|
|
12
|
+
import { createAction } from './utils.js';
|
|
13
|
+
|
|
14
|
+
export const WIZARD_STORE_NAMESPACE = 'newspack/wizards';
|
|
15
|
+
|
|
16
|
+
const DEFAULT_STATE = {
|
|
17
|
+
isLoading: true,
|
|
18
|
+
isQuietLoading: false,
|
|
19
|
+
apiData: {},
|
|
20
|
+
error: null,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* wordpress/data does not trigger a component re-render
|
|
25
|
+
* on deep state change (via lodash's set function)
|
|
26
|
+
* unless the state was cloned first.
|
|
27
|
+
*/
|
|
28
|
+
const clone = objectToClone => JSON.parse( JSON.stringify( objectToClone ) );
|
|
29
|
+
|
|
30
|
+
const reducer = ( state = DEFAULT_STATE, { type, payload = {} } ) => {
|
|
31
|
+
switch ( type ) {
|
|
32
|
+
case 'START_LOADING_DATA':
|
|
33
|
+
if ( payload.isQuietLoading ) {
|
|
34
|
+
return { ...state, isQuietLoading: true };
|
|
35
|
+
}
|
|
36
|
+
return { ...state, isLoading: true };
|
|
37
|
+
case 'FINISH_LOADING_DATA':
|
|
38
|
+
return { ...state, isLoading: false, isQuietLoading: false };
|
|
39
|
+
case 'SET_API_DATA':
|
|
40
|
+
return set( clone( state ), [ 'apiData', payload.slug ], payload.data );
|
|
41
|
+
case 'UPDATE_WIZARD_SETTINGS':
|
|
42
|
+
return set( clone( state ), [ 'apiData', payload.slug, ...payload.path ], payload.value );
|
|
43
|
+
case 'SET_ERROR':
|
|
44
|
+
return { ...state, error: payload };
|
|
45
|
+
default:
|
|
46
|
+
return state;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const actions = {
|
|
51
|
+
// Regular actions.
|
|
52
|
+
startLoadingData: createAction( 'START_LOADING_DATA' ),
|
|
53
|
+
finishLoadingData: createAction( 'FINISH_LOADING_DATA' ),
|
|
54
|
+
fetchFromAPI: createAction( 'FETCH_FROM_API' ),
|
|
55
|
+
setAPIDataForWizard: createAction( 'SET_API_DATA' ),
|
|
56
|
+
updateWizardSettings: createAction( 'UPDATE_WIZARD_SETTINGS' ),
|
|
57
|
+
setError: createAction( 'SET_ERROR' ),
|
|
58
|
+
|
|
59
|
+
// Async actions. These will not show up in Redux devtools.
|
|
60
|
+
*saveWizardSettings( { slug, section = '', payloadPath = false, updatePayload = null } ) {
|
|
61
|
+
// Optionally data can be updated before saving - an immediate update case
|
|
62
|
+
// (without an explicit "save" action).
|
|
63
|
+
if ( updatePayload ) {
|
|
64
|
+
yield actions.updateWizardSettings( { slug, ...updatePayload } );
|
|
65
|
+
}
|
|
66
|
+
const wizardState = select( WIZARD_STORE_NAMESPACE ).getWizardAPIData( slug );
|
|
67
|
+
const updatedData = yield actions.fetchFromAPI( {
|
|
68
|
+
path: `/newspack/v1/wizard/${ slug }/${ section }`,
|
|
69
|
+
method: 'POST',
|
|
70
|
+
data: payloadPath ? get( wizardState, payloadPath ) : wizardState,
|
|
71
|
+
isQuietFetch: true,
|
|
72
|
+
} );
|
|
73
|
+
if ( ! isEmpty( updatedData ) ) {
|
|
74
|
+
return actions.setAPIDataForWizard( { slug, data: updatedData } );
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
*wizardApiFetch( fetchConfig ) {
|
|
78
|
+
// Just a proxy to fetchFromAPI, but it has to be a generator.
|
|
79
|
+
const result = yield actions.fetchFromAPI( fetchConfig );
|
|
80
|
+
return result;
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const selectors = {
|
|
85
|
+
isLoading: state => state.isLoading,
|
|
86
|
+
isQuietLoading: state => state.isQuietLoading,
|
|
87
|
+
getWizardAPIData: ( state, slug ) => state.apiData[ slug ] || {},
|
|
88
|
+
getError: state => state.error,
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const store = createReduxStore( WIZARD_STORE_NAMESPACE, {
|
|
92
|
+
reducer,
|
|
93
|
+
actions,
|
|
94
|
+
selectors,
|
|
95
|
+
|
|
96
|
+
controls: {
|
|
97
|
+
FETCH_FROM_API: action => {
|
|
98
|
+
dispatch( WIZARD_STORE_NAMESPACE ).startLoadingData( {
|
|
99
|
+
isQuietLoading: Boolean( action.payload.isQuietFetch ),
|
|
100
|
+
} );
|
|
101
|
+
return apiFetch( action.payload )
|
|
102
|
+
.catch( error => {
|
|
103
|
+
dispatch( WIZARD_STORE_NAMESPACE ).setError( error );
|
|
104
|
+
return { error };
|
|
105
|
+
} )
|
|
106
|
+
.finally( result => {
|
|
107
|
+
dispatch( WIZARD_STORE_NAMESPACE ).finishLoadingData();
|
|
108
|
+
return result;
|
|
109
|
+
} );
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
resolvers: {
|
|
114
|
+
*getWizardAPIData( slug ) {
|
|
115
|
+
if ( slug ) {
|
|
116
|
+
const data = yield actions.fetchFromAPI( {
|
|
117
|
+
path: `/newspack/v1/wizard/${ slug }`,
|
|
118
|
+
} );
|
|
119
|
+
return actions.setAPIDataForWizard( { slug, data } );
|
|
120
|
+
}
|
|
121
|
+
return actions.finishLoadingData();
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
} );
|
|
125
|
+
|
|
126
|
+
export default () => register( store );
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies.
|
|
3
|
+
*/
|
|
4
|
+
import { useSelect } from '@wordpress/data';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { WIZARD_STORE_NAMESPACE } from '.';
|
|
10
|
+
|
|
11
|
+
export const createAction = type => payload => ( { type, payload } );
|
|
12
|
+
|
|
13
|
+
export const useWizardData = ( wizardName, defaultValue = {} ) =>
|
|
14
|
+
useSelect( select =>
|
|
15
|
+
select( WIZARD_STORE_NAMESPACE ).getWizardAPIData( `newspack-${ wizardName }-wizard` )
|
|
16
|
+
) || defaultValue;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
|
-
var _components = require("@wordpress/components");
|
|
13
|
-
|
|
14
|
-
require("./style.scss");
|
|
15
|
-
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* WordPress dependencies.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Internal dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* External dependencies
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Button Group.
|
|
34
|
-
*/
|
|
35
|
-
class ButtonGroup extends _element.Component {
|
|
36
|
-
/**
|
|
37
|
-
* Render.
|
|
38
|
-
*/
|
|
39
|
-
render() {
|
|
40
|
-
const {
|
|
41
|
-
className,
|
|
42
|
-
noMargin,
|
|
43
|
-
...otherProps
|
|
44
|
-
} = this.props;
|
|
45
|
-
const classes = (0, _classnames.default)('newspack-button-group', {
|
|
46
|
-
'newspack-button-group--no-margin': noMargin
|
|
47
|
-
}, className);
|
|
48
|
-
return (0, _jsxRuntime.jsx)(_components.ButtonGroup, {
|
|
49
|
-
className: classes,
|
|
50
|
-
...otherProps
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
var _default = ButtonGroup;
|
|
57
|
-
exports.default = _default;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Button Group
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
@import '../../../shared/scss/colors';
|
|
6
|
-
@import '~@wordpress/base-styles/colors';
|
|
7
|
-
|
|
8
|
-
.newspack-button-group {
|
|
9
|
-
display: block;
|
|
10
|
-
&:not( .newspack-button-group--no-margin ) {
|
|
11
|
-
margin: 32px 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.newspack-button {
|
|
15
|
-
padding: 11px 17px !important;
|
|
16
|
-
&:active,
|
|
17
|
-
&:focus,
|
|
18
|
-
&:hover,
|
|
19
|
-
&.is-pressed {
|
|
20
|
-
position: relative;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
&.is-pressed {
|
|
24
|
-
position: relative;
|
|
25
|
-
z-index: 2;
|
|
26
|
-
background-color: white !important;
|
|
27
|
-
color: $gray-900 !important;
|
|
28
|
-
border: none !important;
|
|
29
|
-
&:focus {
|
|
30
|
-
box-shadow: 0 0 0 1px white, 0 0 0 2px $primary-500 !important;
|
|
31
|
-
}
|
|
32
|
-
&:active,
|
|
33
|
-
&:hover {
|
|
34
|
-
background: $gray-100 !important;
|
|
35
|
-
color: $primary-500 !important;
|
|
36
|
-
}
|
|
37
|
-
&::after {
|
|
38
|
-
content: '';
|
|
39
|
-
position: absolute;
|
|
40
|
-
top: 0;
|
|
41
|
-
left: 0;
|
|
42
|
-
width: calc( 100% - 6px );
|
|
43
|
-
height: calc( 100% - 6px );
|
|
44
|
-
border: 3px solid $primary-500;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
body[class*='admin-color-'] {
|
|
51
|
-
.newspack-button-group {
|
|
52
|
-
.newspack-button {
|
|
53
|
-
border-radius: 0;
|
|
54
|
-
box-shadow: none;
|
|
55
|
-
|
|
56
|
-
&:first-child {
|
|
57
|
-
&,
|
|
58
|
-
&::after {
|
|
59
|
-
border-bottom-left-radius: 3px;
|
|
60
|
-
border-top-left-radius: 3px;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
&:last-child {
|
|
65
|
-
&,
|
|
66
|
-
&::after {
|
|
67
|
-
border-bottom-right-radius: 3px;
|
|
68
|
-
border-top-right-radius: 3px;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
|
-
var _components = require("@wordpress/components");
|
|
13
|
-
|
|
14
|
-
var _ = require("../");
|
|
15
|
-
|
|
16
|
-
require("./style.scss");
|
|
17
|
-
|
|
18
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
-
|
|
20
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Checkbox Control
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* WordPress dependencies
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Internal dependencies
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* External dependencies
|
|
36
|
-
*/
|
|
37
|
-
class CheckboxControl extends _element.Component {
|
|
38
|
-
/**
|
|
39
|
-
* Render.
|
|
40
|
-
*/
|
|
41
|
-
render() {
|
|
42
|
-
const {
|
|
43
|
-
className,
|
|
44
|
-
checked,
|
|
45
|
-
tooltip,
|
|
46
|
-
...otherProps
|
|
47
|
-
} = this.props;
|
|
48
|
-
const classes = (0, _classnames.default)('newspack-checkbox-control', className);
|
|
49
|
-
return (0, _jsxRuntime.jsxs)("div", {
|
|
50
|
-
className: classes,
|
|
51
|
-
children: [(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
|
|
52
|
-
checked: Boolean(checked),
|
|
53
|
-
...otherProps
|
|
54
|
-
}), tooltip && (0, _jsxRuntime.jsx)(_.InfoButton, {
|
|
55
|
-
text: tooltip
|
|
56
|
-
})]
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
var _default = CheckboxControl;
|
|
63
|
-
exports.default = _default;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checkbox styles.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
@import '../../../shared/scss/colors';
|
|
6
|
-
@import '~@wordpress/base-styles/colors';
|
|
7
|
-
|
|
8
|
-
.newspack-checkbox-control {
|
|
9
|
-
color: $gray-700;
|
|
10
|
-
display: flex;
|
|
11
|
-
font-size: 14px;
|
|
12
|
-
line-height: 24px;
|
|
13
|
-
margin: 32px 0;
|
|
14
|
-
|
|
15
|
-
label {
|
|
16
|
-
color: inherit;
|
|
17
|
-
font-size: inherit;
|
|
18
|
-
line-height: inherit;
|
|
19
|
-
margin: 0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.components-checkbox-control__input-container {
|
|
23
|
-
display: block;
|
|
24
|
-
margin: 0;
|
|
25
|
-
margin-right: 8px;
|
|
26
|
-
|
|
27
|
-
@media screen and ( min-width: 600px ) {
|
|
28
|
-
margin-bottom: 2px;
|
|
29
|
-
margin-top: 2px;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.components-checkbox-control__input[type='checkbox'] {
|
|
34
|
-
margin: 0;
|
|
35
|
-
|
|
36
|
-
&:checked {
|
|
37
|
-
background-color: $primary-500;
|
|
38
|
-
border-color: $primary-500;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&:focus {
|
|
42
|
-
border-color: $primary-500;
|
|
43
|
-
box-shadow: 0 0 0 2px white, 0 0 0 3.5px $primary-500;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.components-base-control__help {
|
|
48
|
-
color: inherit;
|
|
49
|
-
font-size: inherit;
|
|
50
|
-
font-style: italic;
|
|
51
|
-
line-height: inherit;
|
|
52
|
-
margin: 0;
|
|
53
|
-
margin-left: 28px;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Multiple Checkbox Controls
|
|
57
|
-
|
|
58
|
-
& + & {
|
|
59
|
-
margin-top: -16px;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// Reset
|
|
63
|
-
|
|
64
|
-
.components-base-control {
|
|
65
|
-
font-size: inherit;
|
|
66
|
-
line-height: inherit;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.components-base-control__field {
|
|
70
|
-
display: flex;
|
|
71
|
-
margin: 0;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.components-base-control__label {
|
|
75
|
-
display: block;
|
|
76
|
-
margin: 0;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _i18n = require("@wordpress/i18n");
|
|
9
|
-
|
|
10
|
-
require("./style.scss");
|
|
11
|
-
|
|
12
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* WordPress dependencies
|
|
16
|
-
*/
|
|
17
|
-
const __ = _i18n.__;
|
|
18
|
-
|
|
19
|
-
const PreviewBox = _ref => {
|
|
20
|
-
let {
|
|
21
|
-
children
|
|
22
|
-
} = _ref;
|
|
23
|
-
return (0, _jsxRuntime.jsxs)("div", {
|
|
24
|
-
className: "newspack-preview-box",
|
|
25
|
-
children: [(0, _jsxRuntime.jsx)("div", {
|
|
26
|
-
className: "newspack-preview-box__label",
|
|
27
|
-
children: __('Preview', 'newspack')
|
|
28
|
-
}), (0, _jsxRuntime.jsx)("div", {
|
|
29
|
-
className: "newspack-preview-box__content",
|
|
30
|
-
children: children
|
|
31
|
-
})]
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
var _default = PreviewBox;
|
|
36
|
-
exports.default = _default;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
@import '../../../shared/scss/colors';
|
|
2
|
-
@import '~@wordpress/base-styles/colors';
|
|
3
|
-
|
|
4
|
-
.newspack-preview-box {
|
|
5
|
-
margin: 32px 0;
|
|
6
|
-
|
|
7
|
-
&__label {
|
|
8
|
-
color: $gray-900;
|
|
9
|
-
font-weight: bold;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&__content {
|
|
13
|
-
background: $gray-100;
|
|
14
|
-
border: 1px solid $gray-300;
|
|
15
|
-
border-radius: 3px;
|
|
16
|
-
padding: 11px 8px;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _components = require("@wordpress/components");
|
|
11
|
-
|
|
12
|
-
var _element = require("@wordpress/element");
|
|
13
|
-
|
|
14
|
-
require("./style.scss");
|
|
15
|
-
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Textarea Control
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* WordPress dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Internal dependencies
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* External dependencies
|
|
34
|
-
*/
|
|
35
|
-
class TextareaControl extends _element.Component {
|
|
36
|
-
/**
|
|
37
|
-
* Render.
|
|
38
|
-
*/
|
|
39
|
-
render() {
|
|
40
|
-
const {
|
|
41
|
-
className,
|
|
42
|
-
...otherProps
|
|
43
|
-
} = this.props;
|
|
44
|
-
const classes = (0, _classnames.default)('newspack-textarea-control', className);
|
|
45
|
-
return (0, _jsxRuntime.jsx)(_components.TextareaControl, {
|
|
46
|
-
className: classes,
|
|
47
|
-
...otherProps
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var _default = TextareaControl;
|
|
54
|
-
exports.default = _default;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Textarea Control
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
@import '../../../shared/scss/colors';
|
|
6
|
-
@import '~@wordpress/base-styles/colors';
|
|
7
|
-
|
|
8
|
-
.newspack-textarea-control {
|
|
9
|
-
color: $gray-700;
|
|
10
|
-
font-size: 14px;
|
|
11
|
-
line-height: 24px;
|
|
12
|
-
margin: 32px 0;
|
|
13
|
-
|
|
14
|
-
label {
|
|
15
|
-
color: $gray-900;
|
|
16
|
-
font-size: 14px;
|
|
17
|
-
font-weight: bold;
|
|
18
|
-
line-height: 24px;
|
|
19
|
-
margin: 0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
textarea {
|
|
23
|
-
background: white;
|
|
24
|
-
border: 1px solid $gray-300;
|
|
25
|
-
border-radius: 3px;
|
|
26
|
-
box-shadow: none;
|
|
27
|
-
color: inherit;
|
|
28
|
-
display: block;
|
|
29
|
-
font-size: 16px;
|
|
30
|
-
line-height: inherit;
|
|
31
|
-
margin: 0;
|
|
32
|
-
min-height: 48px;
|
|
33
|
-
padding: 11px 8px;
|
|
34
|
-
transition: border-color 125ms ease-in-out, box-shadow 125ms ease-in-out;
|
|
35
|
-
width: 100%;
|
|
36
|
-
|
|
37
|
-
@media screen and ( min-width: 768px ) {
|
|
38
|
-
font-size: 14px;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&:focus {
|
|
42
|
-
border-color: $primary-500;
|
|
43
|
-
box-shadow: inset 0 0 0 2px $primary-500;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&:disabled,
|
|
47
|
-
&.disabled {
|
|
48
|
-
background: $gray-100;
|
|
49
|
-
color: $gray-600;
|
|
50
|
-
cursor: not-allowed;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Multiple Textarea Controls
|
|
55
|
-
|
|
56
|
-
& + & {
|
|
57
|
-
margin-bottom: 32px;
|
|
58
|
-
margin-top: -24px;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Multiple Controls
|
|
62
|
-
|
|
63
|
-
+ .newspack-select-control,
|
|
64
|
-
+ .newspack-text-control {
|
|
65
|
-
margin-bottom: 32px;
|
|
66
|
-
margin-top: -24px;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Reset
|
|
70
|
-
|
|
71
|
-
.components-base-control__field,
|
|
72
|
-
.components-base-control__label {
|
|
73
|
-
display: block;
|
|
74
|
-
margin: 0;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _components = require("@wordpress/components");
|
|
11
|
-
|
|
12
|
-
var _element = require("@wordpress/element");
|
|
13
|
-
|
|
14
|
-
require("./style.scss");
|
|
15
|
-
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Toggle Control
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* WordPress dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Internal dependencies
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* External dependencies
|
|
34
|
-
*/
|
|
35
|
-
class ToggleControl extends _element.Component {
|
|
36
|
-
/**
|
|
37
|
-
* Render.
|
|
38
|
-
*/
|
|
39
|
-
render() {
|
|
40
|
-
const {
|
|
41
|
-
className,
|
|
42
|
-
isDark,
|
|
43
|
-
checked,
|
|
44
|
-
...otherProps
|
|
45
|
-
} = this.props;
|
|
46
|
-
const classes = (0, _classnames.default)('newspack-toggle-control', isDark && 'newspack-toggle-control--is-dark', // NOTE: disabled prop is handled in more recent Gutenberg versions. This special handling can be removed once that's in Core.
|
|
47
|
-
otherProps.disabled && 'newspack-toggle-control--is-disabled', className);
|
|
48
|
-
return (0, _jsxRuntime.jsx)(_components.ToggleControl, {
|
|
49
|
-
className: classes,
|
|
50
|
-
checked: Boolean(checked),
|
|
51
|
-
...otherProps
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
var _default = ToggleControl;
|
|
58
|
-
exports.default = _default;
|