newspack-components 2.2.1 → 3.0.0-alpha.2
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/babel.config.js +25 -0
- package/copy-styles.js +2 -10
- package/dist/{cjs/accordion → accordion}/index.js +17 -13
- package/dist/{cjs/accordion → accordion}/style.scss +7 -3
- package/dist/{cjs/action-card → action-card}/index.js +39 -43
- package/dist/{esm/action-card → action-card}/style.scss +9 -9
- package/dist/{cjs/autocomplete-tokenfield → autocomplete-tokenfield}/index.js +67 -29
- package/dist/{esm/autocomplete-tokenfield → autocomplete-tokenfield}/style.scss +14 -8
- package/dist/{cjs/autocomplete-with-suggestions → autocomplete-with-suggestions}/index.js +61 -73
- package/dist/{esm/autocomplete-with-suggestions → autocomplete-with-suggestions}/style.scss +9 -17
- package/dist/button/index.js +51 -0
- package/{src/button/index.js → dist/button/index.tsx} +12 -5
- package/dist/{cjs/button → button}/style.scss +1 -1
- package/dist/{cjs/button-card → button-card}/index.js +9 -10
- package/dist/{cjs/button-card → button-card}/style.scss +19 -13
- package/dist/{cjs/card → card}/index.js +4 -5
- package/dist/{esm/card → card}/style.scss +1 -1
- package/dist/{cjs/category-autocomplete → category-autocomplete}/index.js +51 -53
- package/dist/{esm/category-autocomplete → category-autocomplete}/style.scss +2 -2
- package/dist/{cjs/color-picker → color-picker}/index.js +14 -16
- package/dist/{cjs/color-picker → color-picker}/style.scss +3 -3
- package/dist/consts.js +7 -0
- package/dist/{cjs/custom-select-control → custom-select-control}/index.js +4 -5
- package/dist/{cjs/custom-select-control → custom-select-control}/style.scss +11 -10
- package/dist/{cjs/date-range-picker → date-range-picker}/index.js +9 -11
- package/dist/{cjs/date-range-picker → date-range-picker}/style.scss +6 -6
- package/dist/{cjs/footer → footer}/index.js +33 -36
- package/dist/{cjs/footer → footer}/style.scss +1 -1
- package/dist/{cjs/form-token-field → form-token-field}/index.js +6 -7
- package/dist/{esm/form-token-field → form-token-field}/style.scss +1 -1
- package/dist/{cjs/global-notices → global-notices}/index.js +4 -5
- package/dist/grid/index.js +44 -0
- package/dist/grid/index.tsx +34 -0
- package/dist/{cjs/grid → grid}/style.scss +9 -9
- package/dist/{cjs/handoff → handoff}/index.js +73 -71
- package/dist/{cjs/handoff-message → handoff-message}/index.js +5 -3
- package/dist/hooks/index.js +29 -0
- package/{src/hooks/index.js → dist/hooks/index.ts} +1 -1
- package/dist/{cjs/hooks → hooks}/useObjectState.js +2 -3
- package/dist/{cjs/hooks → hooks}/useObjectState.test.js +9 -9
- package/dist/{cjs/hooks → hooks}/useOnClickOutside.js +1 -2
- package/dist/hooks/usePrompt.js +47 -0
- package/{src/hooks/usePrompt.js → dist/hooks/usePrompt.ts} +4 -8
- package/dist/image-upload/index.js +148 -0
- package/dist/{cjs/image-upload → image-upload}/index.test.js +13 -6
- package/dist/{esm/image-upload → image-upload}/style.scss +5 -5
- package/dist/{cjs/index.js → index.js} +1 -1
- package/dist/{cjs/info-button → info-button}/index.js +6 -7
- package/dist/{cjs/modal → modal}/index.js +4 -5
- package/dist/{esm/modal → modal}/style.scss +5 -5
- package/dist/{cjs/newspack-icon → newspack-icon}/index.js +5 -6
- package/dist/{cjs/newspack-icon → newspack-icon}/style.scss +1 -1
- package/dist/{cjs/newspack-logo → newspack-logo}/index.js +5 -6
- package/dist/{cjs/newspack-logo → newspack-logo}/style.scss +1 -1
- package/dist/{cjs/notice → notice}/index.js +12 -10
- package/dist/{cjs/notice → notice}/style.scss +11 -11
- package/dist/patrons-logo/index.js +77 -0
- package/dist/plugin-installer/index.js +297 -0
- package/dist/{cjs/plugin-installer → plugin-installer}/style.scss +1 -1
- package/dist/{cjs/plugin-settings → plugin-settings}/SettingsSection.js +13 -13
- package/dist/plugin-settings/index.js +228 -0
- package/dist/{cjs/plugin-settings → plugin-settings}/style.scss +1 -1
- package/dist/plugin-toggle/README.md +53 -0
- package/dist/plugin-toggle/index.js +222 -0
- package/dist/{esm/plugin-toggle → plugin-toggle}/style.scss +1 -1
- package/dist/{cjs/popover → popover}/index.js +4 -5
- package/dist/{cjs/popover → popover}/style.scss +7 -7
- package/dist/{cjs/position-control → position-control}/index.js +33 -32
- package/dist/{cjs/position-control → position-control}/style.scss +8 -8
- package/dist/{cjs/progress-bar → progress-bar}/index.js +9 -10
- package/dist/{cjs/progress-bar → progress-bar}/index.test.js +16 -16
- package/dist/{cjs/progress-bar → progress-bar}/style.scss +2 -2
- package/dist/proxied-imports/router.js +15 -0
- package/dist/{cjs/radio-control → radio-control}/index.js +4 -5
- package/dist/{cjs/radio-control → radio-control}/style.scss +3 -3
- package/dist/{cjs/section-header → section-header}/index.js +20 -21
- package/dist/{esm/section-header → section-header}/style.scss +5 -1
- package/dist/{cjs/select-control → select-control}/ButtonGroupControl.js +17 -19
- package/dist/{cjs/select-control → select-control}/GroupedSelectControl.js +32 -35
- package/dist/{cjs/select-control → select-control}/index.js +7 -8
- package/dist/{cjs/select-control → select-control}/style.scss +4 -4
- package/dist/settings/MinMaxSetting.js +60 -0
- package/dist/{cjs/settings → settings}/SettingsCard.js +14 -16
- package/dist/settings/SettingsSection.js +33 -0
- package/dist/{cjs/settings → settings}/index.js +3 -4
- package/dist/{cjs/settings → settings}/style.scss +15 -2
- package/dist/sortable-newsletter-list-control/index.js +135 -0
- package/dist/sortable-newsletter-list-control/style.scss +45 -0
- package/dist/{cjs/steps-list → steps-list}/index.js +5 -6
- package/dist/{esm/steps-list → steps-list}/style.scss +2 -2
- package/dist/{cjs/steps-list-item → steps-list-item}/index.js +6 -7
- package/dist/{cjs/steps-list-item → steps-list-item}/style.scss +5 -5
- package/dist/{cjs/style-card → style-card}/index.js +21 -19
- package/dist/{esm/style-card → style-card}/style.scss +4 -4
- package/dist/{esm/style.scss → style.scss} +14 -2
- package/dist/{cjs/tabbed-navigation → tabbed-navigation}/index.js +16 -19
- package/dist/{cjs/tabbed-navigation → tabbed-navigation}/style.scss +4 -4
- package/dist/text-control/index.js +76 -0
- package/dist/text-control/index.tsx +71 -0
- package/dist/utils/index.js +36 -0
- package/dist/{cjs/waiting → waiting}/index.js +4 -5
- package/dist/web-preview/index.js +191 -0
- package/dist/{cjs/web-preview → web-preview}/style.scss +5 -5
- package/dist/with-wizard/index.js +328 -0
- package/dist/{esm/with-wizard → with-wizard}/style.scss +44 -22
- package/dist/{cjs/with-wizard-screen → with-wizard-screen}/index.js +40 -43
- package/dist/{esm/with-wizard-screen → with-wizard-screen}/style.scss +7 -7
- package/dist/{cjs/wizard → wizard}/components/WizardError.js +16 -17
- package/dist/{cjs/wizard → wizard}/index.js +44 -46
- package/dist/{cjs/wizard → wizard}/store/index.js +37 -38
- package/dist/{cjs/wizard → wizard}/store/utils.js +1 -4
- package/package.json +16 -14
- package/shared/scss/_mixins.scss +2 -2
- package/src/accordion/index.js +4 -1
- package/src/accordion/style.scss +7 -3
- package/src/action-card/style.scss +9 -9
- package/src/autocomplete-tokenfield/index.js +48 -15
- package/src/autocomplete-tokenfield/style.scss +14 -8
- package/src/autocomplete-with-suggestions/index.js +59 -62
- package/src/autocomplete-with-suggestions/style.scss +9 -17
- package/src/button/index.tsx +48 -0
- package/src/button/style.scss +1 -1
- package/src/button-card/style.scss +19 -13
- package/src/card/style.scss +1 -1
- package/src/category-autocomplete/style.scss +2 -2
- package/src/color-picker/style.scss +3 -3
- package/src/consts.js +0 -2
- package/src/custom-select-control/style.scss +11 -10
- package/src/date-range-picker/style.scss +6 -6
- package/src/footer/index.js +7 -7
- package/src/footer/style.scss +1 -1
- package/src/form-token-field/style.scss +1 -1
- package/src/grid/index.tsx +34 -0
- package/src/grid/style.scss +9 -9
- package/src/handoff/index.js +7 -6
- package/src/handoff-message/index.js +3 -1
- package/src/hooks/index.ts +15 -0
- package/src/hooks/usePrompt.ts +46 -0
- package/src/image-upload/index.js +5 -5
- package/src/image-upload/index.test.js +6 -1
- package/src/image-upload/style.scss +5 -5
- package/src/modal/style.scss +5 -5
- package/src/newspack-icon/style.scss +1 -1
- package/src/newspack-logo/style.scss +1 -1
- package/src/notice/index.js +1 -1
- package/src/notice/style.scss +11 -11
- package/src/patrons-logo/index.js +4 -1
- package/src/plugin-installer/index.js +7 -7
- package/src/plugin-installer/style.scss +1 -1
- package/src/plugin-settings/index.js +1 -1
- package/src/plugin-settings/style.scss +1 -1
- package/src/plugin-toggle/index.js +13 -12
- package/src/plugin-toggle/style.scss +1 -1
- package/src/popover/style.scss +7 -7
- package/src/position-control/index.js +63 -64
- package/src/position-control/style.scss +8 -8
- package/src/progress-bar/style.scss +2 -2
- package/src/radio-control/style.scss +3 -3
- package/src/section-header/index.js +3 -3
- package/src/section-header/style.scss +5 -1
- package/src/select-control/GroupedSelectControl.js +1 -1
- package/src/select-control/style.scss +4 -4
- package/src/settings/MinMaxSetting.js +8 -6
- package/src/settings/style.scss +15 -2
- package/src/sortable-newsletter-list-control/index.js +137 -0
- package/src/sortable-newsletter-list-control/style.scss +45 -0
- package/src/steps-list/style.scss +2 -2
- package/src/steps-list-item/style.scss +5 -5
- package/src/style-card/index.js +11 -5
- package/src/style-card/style.scss +4 -4
- package/src/style.scss +14 -2
- package/src/tabbed-navigation/style.scss +4 -4
- package/src/text-control/index.tsx +65 -0
- package/src/web-preview/index.js +6 -6
- package/src/web-preview/style.scss +5 -5
- package/src/with-wizard/index.js +4 -4
- package/src/with-wizard/style.scss +44 -22
- package/src/with-wizard-screen/index.js +1 -1
- package/src/with-wizard-screen/style.scss +7 -7
- package/src/wizard/components/WizardError.js +1 -1
- package/src/wizard/index.js +3 -3
- package/src/wizard/store/index.js +9 -2
- package/dist/cjs/action-card/style.scss +0 -483
- package/dist/cjs/autocomplete-tokenfield/style.scss +0 -43
- package/dist/cjs/autocomplete-with-suggestions/style.scss +0 -171
- package/dist/cjs/button/index.js +0 -57
- package/dist/cjs/card/style.scss +0 -168
- package/dist/cjs/category-autocomplete/style.scss +0 -34
- package/dist/cjs/consts.js +0 -12
- package/dist/cjs/form-token-field/style.scss +0 -37
- package/dist/cjs/grid/index.js +0 -54
- package/dist/cjs/hooks/index.js +0 -26
- package/dist/cjs/hooks/usePrompt.js +0 -52
- package/dist/cjs/image-upload/index.js +0 -144
- package/dist/cjs/image-upload/style.scss +0 -103
- package/dist/cjs/modal/style.scss +0 -56
- package/dist/cjs/patrons-logo/index.js +0 -82
- package/dist/cjs/plugin-installer/index.js +0 -299
- package/dist/cjs/plugin-settings/index.js +0 -222
- package/dist/cjs/plugin-toggle/index.js +0 -222
- package/dist/cjs/plugin-toggle/style.scss +0 -20
- package/dist/cjs/proxied-imports/router.js +0 -15
- package/dist/cjs/section-header/style.scss +0 -41
- package/dist/cjs/settings/MinMaxSetting.js +0 -57
- package/dist/cjs/settings/SettingsSection.js +0 -37
- package/dist/cjs/steps-list/style.scss +0 -11
- package/dist/cjs/style-card/style.scss +0 -94
- package/dist/cjs/style.scss +0 -43
- package/dist/cjs/text-control/index.js +0 -71
- package/dist/cjs/utils/index.js +0 -40
- package/dist/cjs/web-preview/index.js +0 -189
- package/dist/cjs/with-wizard/index.js +0 -318
- package/dist/cjs/with-wizard/style.scss +0 -260
- package/dist/cjs/with-wizard-screen/style.scss +0 -160
- package/dist/esm/accordion/index.js +0 -38
- package/dist/esm/accordion/style.scss +0 -27
- package/dist/esm/action-card/index.js +0 -222
- package/dist/esm/autocomplete-tokenfield/index.js +0 -223
- package/dist/esm/autocomplete-with-suggestions/index.js +0 -289
- package/dist/esm/button/index.js +0 -48
- package/dist/esm/button/style.scss +0 -11
- package/dist/esm/button-card/index.js +0 -65
- package/dist/esm/button-card/style.scss +0 -174
- package/dist/esm/card/index.js +0 -43
- package/dist/esm/category-autocomplete/index.js +0 -185
- package/dist/esm/color-picker/index.js +0 -61
- package/dist/esm/color-picker/style.scss +0 -37
- package/dist/esm/consts.js +0 -3
- package/dist/esm/custom-select-control/index.js +0 -37
- package/dist/esm/custom-select-control/style.scss +0 -92
- package/dist/esm/date-range-picker/index.js +0 -32
- package/dist/esm/date-range-picker/style.scss +0 -148
- package/dist/esm/footer/index.js +0 -105
- package/dist/esm/footer/style.scss +0 -82
- package/dist/esm/form-token-field/index.js +0 -50
- package/dist/esm/global-notices/index.js +0 -30
- package/dist/esm/grid/index.js +0 -45
- package/dist/esm/grid/style.scss +0 -166
- package/dist/esm/handoff/index.js +0 -177
- package/dist/esm/handoff-message/index.js +0 -45
- package/dist/esm/hooks/index.js +0 -17
- package/dist/esm/hooks/useObjectState.js +0 -31
- package/dist/esm/hooks/useObjectState.test.js +0 -83
- package/dist/esm/hooks/useOnClickOutside.js +0 -31
- package/dist/esm/hooks/usePrompt.js +0 -43
- package/dist/esm/image-upload/index.js +0 -141
- package/dist/esm/image-upload/index.test.js +0 -28
- package/dist/esm/index.js +0 -47
- package/dist/esm/info-button/index.js +0 -42
- package/dist/esm/info-button/style.scss +0 -18
- package/dist/esm/modal/index.js +0 -39
- package/dist/esm/newspack-icon/index.js +0 -50
- package/dist/esm/newspack-icon/style.scss +0 -26
- package/dist/esm/newspack-logo/index.js +0 -46
- package/dist/esm/newspack-logo/style.scss +0 -30
- package/dist/esm/notice/index.js +0 -67
- package/dist/esm/notice/style.scss +0 -111
- package/dist/esm/patrons-logo/index.js +0 -76
- package/dist/esm/plugin-installer/index.js +0 -295
- package/dist/esm/plugin-installer/style.scss +0 -72
- package/dist/esm/plugin-settings/SettingsSection.js +0 -136
- package/dist/esm/plugin-settings/index.js +0 -217
- package/dist/esm/plugin-settings/style.scss +0 -7
- package/dist/esm/plugin-toggle/index.js +0 -217
- package/dist/esm/popover/index.js +0 -41
- package/dist/esm/popover/style.scss +0 -161
- package/dist/esm/position-control/index.js +0 -109
- package/dist/esm/position-control/style.scss +0 -66
- package/dist/esm/progress-bar/index.js +0 -69
- package/dist/esm/progress-bar/index.test.js +0 -110
- package/dist/esm/progress-bar/style.scss +0 -42
- package/dist/esm/proxied-imports/router.js +0 -8
- package/dist/esm/radio-control/index.js +0 -37
- package/dist/esm/radio-control/style.scss +0 -92
- package/dist/esm/section-header/index.js +0 -68
- package/dist/esm/select-control/ButtonGroupControl.js +0 -54
- package/dist/esm/select-control/GroupedSelectControl.js +0 -84
- package/dist/esm/select-control/index.js +0 -51
- package/dist/esm/select-control/style.scss +0 -108
- package/dist/esm/settings/MinMaxSetting.js +0 -53
- package/dist/esm/settings/SettingsCard.js +0 -39
- package/dist/esm/settings/SettingsSection.js +0 -30
- package/dist/esm/settings/index.js +0 -9
- package/dist/esm/settings/style.scss +0 -106
- package/dist/esm/steps-list/index.js +0 -43
- package/dist/esm/steps-list-item/index.js +0 -48
- package/dist/esm/steps-list-item/style.scss +0 -47
- package/dist/esm/style-card/index.js +0 -76
- package/dist/esm/tabbed-navigation/index.js +0 -56
- package/dist/esm/tabbed-navigation/style.scss +0 -86
- package/dist/esm/text-control/index.js +0 -66
- package/dist/esm/text-control/style.scss +0 -32
- package/dist/esm/utils/index.js +0 -32
- package/dist/esm/waiting/index.js +0 -44
- package/dist/esm/waiting/style.scss +0 -27
- package/dist/esm/web-preview/index.js +0 -184
- package/dist/esm/web-preview/style.scss +0 -155
- package/dist/esm/with-wizard/index.js +0 -313
- package/dist/esm/with-wizard-screen/index.js +0 -116
- package/dist/esm/wizard/components/WizardError.js +0 -69
- package/dist/esm/wizard/index.js +0 -126
- package/dist/esm/wizard/store/index.js +0 -155
- package/dist/esm/wizard/store/utils.js +0 -17
- package/src/grid/index.js +0 -44
- package/src/text-control/index.js +0 -56
- /package/dist/{cjs/info-button → info-button}/style.scss +0 -0
- /package/dist/{cjs/text-control → text-control}/style.scss +0 -0
- /package/dist/{cjs/waiting → waiting}/style.scss +0 -0
|
@@ -19,8 +19,5 @@ const createAction = type => payload => ({
|
|
|
19
19
|
payload
|
|
20
20
|
});
|
|
21
21
|
exports.createAction = createAction;
|
|
22
|
-
const useWizardData =
|
|
23
|
-
let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
24
|
-
return (0, _data.useSelect)(select => select(_.WIZARD_STORE_NAMESPACE).getWizardAPIData(`newspack-${wizardName}-wizard`)) || defaultValue;
|
|
25
|
-
};
|
|
22
|
+
const useWizardData = (wizardName, defaultValue = {}) => (0, _data.useSelect)(select => select(_.WIZARD_STORE_NAMESPACE).getWizardAPIData(`newspack-${wizardName}-wizard`)) || defaultValue;
|
|
26
23
|
exports.useWizardData = useWizardData;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "newspack-components",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.2",
|
|
4
4
|
"description": "Newspack design system components",
|
|
5
5
|
"author": "Automattic",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -16,30 +16,32 @@
|
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
18
18
|
"url": "https://github.com/Automattic/newspack-plugin.git",
|
|
19
|
-
"directory": "
|
|
19
|
+
"directory": "src/components"
|
|
20
20
|
},
|
|
21
|
-
"main": "dist/
|
|
21
|
+
"main": "dist/index.js",
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@wordpress/base-styles": "^
|
|
27
|
-
"@wordpress/components": "^
|
|
28
|
-
"@wordpress/element": "^
|
|
29
|
-
"@wordpress/i18n": "^
|
|
30
|
-
"@wordpress/icons": "^
|
|
26
|
+
"@wordpress/base-styles": "^5.0.0",
|
|
27
|
+
"@wordpress/components": "^28.0.0",
|
|
28
|
+
"@wordpress/element": "^6.0.0",
|
|
29
|
+
"@wordpress/i18n": "^5.0.0",
|
|
30
|
+
"@wordpress/icons": "^10.0.0",
|
|
31
31
|
"classnames": "^2.3.1",
|
|
32
32
|
"lodash": "^4.17.21",
|
|
33
33
|
"moment-range": "^3.1.1",
|
|
34
34
|
"qs": "^6.10.1",
|
|
35
35
|
"react-daterange-picker": "^2.0.1",
|
|
36
|
-
"react-router-dom": "^5.3.
|
|
36
|
+
"react-router-dom": "^5.3.4"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@
|
|
40
|
-
"@babel/
|
|
41
|
-
"@babel/
|
|
42
|
-
"
|
|
39
|
+
"@babel/cli": "^7.24.0",
|
|
40
|
+
"@babel/core": "^7.24.0",
|
|
41
|
+
"@babel/preset-env": "^7.24.7",
|
|
42
|
+
"@babel/preset-react": "^7.24.7",
|
|
43
|
+
"@babel/preset-typescript": "^7.24.7",
|
|
44
|
+
"recursive-copy": "^2.0.0"
|
|
43
45
|
},
|
|
44
46
|
"babel": {
|
|
45
47
|
"ignore": [
|
|
@@ -47,7 +49,7 @@
|
|
|
47
49
|
]
|
|
48
50
|
},
|
|
49
51
|
"scripts": {
|
|
50
|
-
"prepublishOnly": "
|
|
52
|
+
"prepublishOnly": "npx babel src --out-dir dist && node copy-styles.js",
|
|
51
53
|
"postpublish": "rm -r dist && rm -r shared"
|
|
52
54
|
}
|
|
53
55
|
}
|
package/shared/scss/_mixins.scss
CHANGED
package/src/accordion/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
2
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
5
|
* WordPress dependencies
|
|
3
6
|
*/
|
|
@@ -24,7 +27,7 @@ const Accordion = ( { children, title } ) => {
|
|
|
24
27
|
{ title }
|
|
25
28
|
<Icon className="newspack-accordion__icon" icon={ chevronRight } size={ 24 } />
|
|
26
29
|
</summary>
|
|
27
|
-
{ children }
|
|
30
|
+
<div className="newspack-accordion__content">{ children }</div>
|
|
28
31
|
</details>
|
|
29
32
|
);
|
|
30
33
|
};
|
package/src/accordion/style.scss
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
@use
|
|
1
|
+
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
2
2
|
|
|
3
3
|
.newspack-accordion {
|
|
4
4
|
border: 1px solid wp-colors.$gray-300;
|
|
5
5
|
|
|
6
6
|
&__icon {
|
|
7
7
|
transition: transform 200ms ease-out;
|
|
8
|
-
transform: rotate(
|
|
8
|
+
transform: rotate(90deg);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
&--is-open {
|
|
12
12
|
.newspack-accordion {
|
|
13
13
|
&__icon {
|
|
14
|
-
transform: rotate(
|
|
14
|
+
transform: rotate(-90deg);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -24,4 +24,8 @@
|
|
|
24
24
|
font-size: 14px;
|
|
25
25
|
font-weight: bold;
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
&__content {
|
|
29
|
+
padding: 16px 32px;
|
|
30
|
+
}
|
|
27
31
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Action Card
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@use
|
|
6
|
-
@use
|
|
5
|
+
@use "sass:color";
|
|
6
|
+
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
7
7
|
|
|
8
8
|
.newspack-card.newspack-action-card {
|
|
9
9
|
padding: 0;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
transition: box-shadow 125ms ease-in-out;
|
|
16
16
|
|
|
17
17
|
&:hover {
|
|
18
|
-
box-shadow: 0 4px 8px rgba(
|
|
18
|
+
box-shadow: 0 4px 8px rgba(black, 0.08);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
&.newspack-card__is-primary {
|
|
37
|
-
box-shadow: inset 4px 0 0 var(
|
|
37
|
+
box-shadow: inset 4px 0 0 var(--wp-admin-theme-color);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
&.newspack-card__is-secondary {
|
|
@@ -181,12 +181,12 @@
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
.newspack-action-card__region-top {
|
|
184
|
-
background-color: rgba(
|
|
184
|
+
background-color: rgba(black, 0.025);
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
.newspack-action-card__region-center {
|
|
188
188
|
p {
|
|
189
|
-
color: color.adjust(
|
|
189
|
+
color: color.adjust(wp-colors.$gray-700, $lightness: -0.75%);
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
border-left-width: 1px;
|
|
210
210
|
border-bottom-width: 1px;
|
|
211
211
|
border-radius: 0 0 0 2px;
|
|
212
|
-
content:
|
|
212
|
+
content: "";
|
|
213
213
|
display: block;
|
|
214
214
|
position: absolute;
|
|
215
215
|
inset: -17px 100% 50% -28px;
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
// Typography
|
|
220
220
|
|
|
221
221
|
h2,
|
|
222
|
-
p:not(
|
|
222
|
+
p:not([class*="components-base-control"]) {
|
|
223
223
|
margin: 0;
|
|
224
224
|
max-width: 100%;
|
|
225
225
|
width: 100%;
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
&:active,
|
|
243
243
|
&:focus,
|
|
244
244
|
&:hover {
|
|
245
|
-
color: var(
|
|
245
|
+
color: var(--wp-admin-theme-color);
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
}
|
|
@@ -57,6 +57,26 @@ class AutocompleteTokenField extends Component {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
/**
|
|
61
|
+
* When the component updates, fetch information about the tokens so we can populate
|
|
62
|
+
* the tokens with the correct labels.
|
|
63
|
+
*/
|
|
64
|
+
componentDidUpdate( prevProps ) {
|
|
65
|
+
const { tokens, fetchSavedInfo } = this.props;
|
|
66
|
+
|
|
67
|
+
if ( tokens !== prevProps.tokens && this.isFetchingInfoOnLoad() ) {
|
|
68
|
+
fetchSavedInfo( tokens ).then( results => {
|
|
69
|
+
const { validValues } = this.state;
|
|
70
|
+
|
|
71
|
+
results.forEach( suggestion => {
|
|
72
|
+
validValues[ suggestion.value ] = suggestion.label;
|
|
73
|
+
} );
|
|
74
|
+
|
|
75
|
+
this.setState( { validValues, loading: false } );
|
|
76
|
+
} );
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
60
80
|
/**
|
|
61
81
|
* Clean up any unfinished autocomplete api call requests.
|
|
62
82
|
*/
|
|
@@ -99,7 +119,9 @@ class AutocompleteTokenField extends Component {
|
|
|
99
119
|
return labels.reduce( ( acc, label ) => {
|
|
100
120
|
Object.keys( validValues ).forEach( key => {
|
|
101
121
|
if ( validValues[ key ] === label ) {
|
|
102
|
-
|
|
122
|
+
// Preserve numeric or string type of values. Object.keys will convert numbers to strings.
|
|
123
|
+
const value = isNaN( parseInt( key ) ) ? key.toString() : parseInt( key );
|
|
124
|
+
acc.push( { value, label } );
|
|
103
125
|
}
|
|
104
126
|
} );
|
|
105
127
|
|
|
@@ -108,7 +130,9 @@ class AutocompleteTokenField extends Component {
|
|
|
108
130
|
}
|
|
109
131
|
|
|
110
132
|
return labels.map( label =>
|
|
111
|
-
Object.keys( validValues )
|
|
133
|
+
Object.keys( validValues )
|
|
134
|
+
.map( key => ( isNaN( parseInt( key ) ) ? key.toString() : parseInt( key ) ) )
|
|
135
|
+
.find( key => validValues[ key ] === label )
|
|
112
136
|
);
|
|
113
137
|
}
|
|
114
138
|
|
|
@@ -134,16 +158,16 @@ class AutocompleteTokenField extends Component {
|
|
|
134
158
|
return;
|
|
135
159
|
}
|
|
136
160
|
|
|
161
|
+
const { validValues } = this.state;
|
|
137
162
|
const currentSuggestions = [ ...suggestions ];
|
|
138
|
-
const currentValidValues = {};
|
|
139
163
|
|
|
140
164
|
suggestions.forEach( suggestion => {
|
|
141
|
-
|
|
165
|
+
validValues[ suggestion.value ] = suggestion.label;
|
|
142
166
|
} );
|
|
143
167
|
|
|
144
168
|
this.setState( {
|
|
145
169
|
suggestions: currentSuggestions,
|
|
146
|
-
validValues
|
|
170
|
+
validValues,
|
|
147
171
|
loading: false,
|
|
148
172
|
} );
|
|
149
173
|
} )
|
|
@@ -183,20 +207,29 @@ class AutocompleteTokenField extends Component {
|
|
|
183
207
|
* Render.
|
|
184
208
|
*/
|
|
185
209
|
render() {
|
|
186
|
-
const { help, label = '', maxLength } = this.props;
|
|
210
|
+
const { help, label = '', placeholder = '', maxLength } = this.props;
|
|
187
211
|
const { suggestions, loading } = this.state;
|
|
188
212
|
|
|
213
|
+
const classNames = [ 'newspack-autocomplete-tokenfield__input-container' ];
|
|
214
|
+
|
|
215
|
+
if ( label ) {
|
|
216
|
+
classNames.push( 'has-label' );
|
|
217
|
+
}
|
|
218
|
+
|
|
189
219
|
return (
|
|
190
220
|
<div className="newspack-autocomplete-tokenfield">
|
|
191
|
-
<
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
221
|
+
<div className={ classNames.join( ' ' ) }>
|
|
222
|
+
<FormTokenField
|
|
223
|
+
value={ this.getTokens() }
|
|
224
|
+
suggestions={ suggestions.map( suggestion => suggestion.label ) }
|
|
225
|
+
onChange={ tokens => this.handleOnChange( tokens ) }
|
|
226
|
+
onInputChange={ input => this.debouncedUpdateSuggestions( input ) }
|
|
227
|
+
label={ label }
|
|
228
|
+
maxLength={ maxLength }
|
|
229
|
+
placeholder={ placeholder }
|
|
230
|
+
/>
|
|
231
|
+
{ loading && <Spinner /> }
|
|
232
|
+
</div>
|
|
200
233
|
{ help && <p className="newspack-autocomplete-tokenfield__help">{ help }</p> }
|
|
201
234
|
</div>
|
|
202
235
|
);
|
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
* Autocomplete Token Field
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@use
|
|
5
|
+
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
6
6
|
|
|
7
7
|
.newspack-autocomplete-tokenfield {
|
|
8
|
-
position: relative;
|
|
9
|
-
|
|
10
8
|
.components-spinner {
|
|
11
|
-
margin:
|
|
9
|
+
margin: 0;
|
|
12
10
|
position: absolute;
|
|
13
|
-
right:
|
|
14
|
-
top:
|
|
11
|
+
right: 8px;
|
|
12
|
+
top: 8px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&__input-container {
|
|
16
|
+
position: relative;
|
|
17
|
+
|
|
18
|
+
&.has-label .components-spinner {
|
|
19
|
+
top: 32px;
|
|
20
|
+
}
|
|
15
21
|
}
|
|
16
22
|
|
|
17
23
|
/* Workaround for hard-coded help text in FormTokenField. */
|
|
@@ -37,7 +43,7 @@
|
|
|
37
43
|
padding-left: 0;
|
|
38
44
|
}
|
|
39
45
|
|
|
40
|
-
.components-button:focus:not(
|
|
41
|
-
box-shadow: inset 0 0 0 var(
|
|
46
|
+
.components-button:focus:not(:disabled) {
|
|
47
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
42
48
|
}
|
|
43
49
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import apiFetch from '@wordpress/api-fetch';
|
|
5
|
-
import { Button, CheckboxControl, SelectControl
|
|
5
|
+
import { Button, CheckboxControl, SelectControl } from '@wordpress/components';
|
|
6
6
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
7
7
|
import { useEffect, useState } from '@wordpress/element';
|
|
8
8
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
@@ -17,16 +17,16 @@ import './style.scss';
|
|
|
17
17
|
const AutocompleteWithSuggestions = ( {
|
|
18
18
|
fetchSavedPosts = false, // If passed, will use this function to fetch saved data.
|
|
19
19
|
fetchSuggestions = false, // If passed, will use this function to fetch suggestions data.
|
|
20
|
-
help = __( 'Begin typing search term, click autocomplete result to select.', 'newspack' ),
|
|
20
|
+
help = __( 'Begin typing search term, click autocomplete result to select.', 'newspack-plugin' ),
|
|
21
21
|
hideHelp = false, // If true, all help text will be hidden.
|
|
22
|
-
label = __( 'Search', 'newspack' ),
|
|
22
|
+
label = __( 'Search', 'newspack-plugin' ),
|
|
23
23
|
maxItemsToSuggest = 0, // If passed, will be used to determine "load more" state. Necessary if you want "load more" functionality when using a custom `fetchSuggestions` function.
|
|
24
24
|
multiSelect = false, // If true, component can select multiple values at once.
|
|
25
25
|
onChange = false, // Function to call when selections change.
|
|
26
26
|
onPostTypeChange = false, // Funciton to call when the post type selector is changed.
|
|
27
27
|
postTypes = [ { slug: 'post', label: 'Post' } ], // If passed, will render a selector to change the post type queried for suggestions.
|
|
28
|
-
postTypeLabel = __( 'item', 'newspack' ), // String to describe the data being shown.
|
|
29
|
-
postTypeLabelPlural = __( 'items', 'newspack' ), // Plural string to describe the data being shown.
|
|
28
|
+
postTypeLabel = __( 'item', 'newspack-plugin' ), // String to describe the data being shown.
|
|
29
|
+
postTypeLabelPlural = __( 'items', 'newspack-plugin' ), // Plural string to describe the data being shown.
|
|
30
30
|
selectedItems = [], // Array of saved items.
|
|
31
31
|
selectedPost = 0, // Legacy prop when single-select was the only option.
|
|
32
32
|
suggestionsToFetch = 10, // Number of suggestions to fetch per query.
|
|
@@ -81,24 +81,24 @@ const AutocompleteWithSuggestions = ( {
|
|
|
81
81
|
const handleFetchSaved = fetchSavedPosts
|
|
82
82
|
? fetchSavedPosts
|
|
83
83
|
: async ( postIds = [], searchSlug = null ) => {
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
const postTypeSlug = searchSlug || postTypeToSearch;
|
|
85
|
+
const endpoint =
|
|
86
86
|
'post' === postTypeSlug || 'page' === postTypeSlug
|
|
87
87
|
? postTypeSlug + 's' // Default post type endpoints are plural.
|
|
88
88
|
: postTypeSlug; // Custom post type endpoints are singular.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
const posts = await apiFetch( {
|
|
90
|
+
path: addQueryArgs( '/wp/v2/' + endpoint, {
|
|
91
|
+
per_page: 100,
|
|
92
|
+
include: postIds.join( ',' ),
|
|
93
|
+
_fields: 'id,title',
|
|
94
|
+
} ),
|
|
95
|
+
} );
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
return posts.map( post => ( {
|
|
98
|
+
value: parseInt( post.id ),
|
|
99
|
+
label: decodeEntities( post.title ) || __( '(no title)', 'newspack-plugin' ),
|
|
100
|
+
} ) );
|
|
101
|
+
};
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* If passed a `fetchSuggestions` prop, use that, otherwise, build it based on the selected post type.
|
|
@@ -106,36 +106,36 @@ const AutocompleteWithSuggestions = ( {
|
|
|
106
106
|
const handleFetchSuggestions = fetchSuggestions
|
|
107
107
|
? fetchSuggestions
|
|
108
108
|
: async ( search = null, offset = 0, searchSlug = null ) => {
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
const postTypeSlug = searchSlug || postTypeToSearch;
|
|
110
|
+
const endpoint =
|
|
111
111
|
'post' === postTypeSlug || 'page' === postTypeSlug
|
|
112
112
|
? postTypeSlug + 's' // Default post type endpoints are plural.
|
|
113
113
|
: postTypeSlug; // Custom post type endpoints are singular.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
114
|
+
const response = await apiFetch( {
|
|
115
|
+
parse: false,
|
|
116
|
+
path: addQueryArgs( '/wp/v2/' + endpoint, {
|
|
117
|
+
search,
|
|
118
|
+
offset,
|
|
119
|
+
per_page: suggestionsToFetch,
|
|
120
|
+
_fields: 'id,title',
|
|
121
|
+
} ),
|
|
122
|
+
} );
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
const total = parseInt( response.headers.get( 'x-wp-total' ) || 0 );
|
|
125
|
+
const posts = await response.json();
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
setMaxSuggestions( total );
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
129
|
+
// Format suggestions for FormTokenField display.
|
|
130
|
+
return posts.reduce( ( acc, post ) => {
|
|
131
|
+
acc.push( {
|
|
132
|
+
value: parseInt( post.id ),
|
|
133
|
+
label: decodeEntities( post?.title.rendered ) || __( '(no title)', 'newspack-plugin' ),
|
|
134
|
+
} );
|
|
135
135
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
return acc;
|
|
137
|
+
}, [] );
|
|
138
|
+
};
|
|
139
139
|
|
|
140
140
|
/**
|
|
141
141
|
* Intercept onChange callback so we can decide whether to allow multiple selections.
|
|
@@ -176,22 +176,24 @@ const AutocompleteWithSuggestions = ( {
|
|
|
176
176
|
const selections = selectedPost ? [ ...selectedItems, selectedPost ] : selectedItems;
|
|
177
177
|
const selectedMessage = multiSelect
|
|
178
178
|
? sprintf(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
179
|
+
// Translators: %1: the length of selections. %2: the selection leabel.
|
|
180
|
+
__( '%1$s %2$s selected', 'newspack-plugin' ),
|
|
181
|
+
selections.length,
|
|
182
|
+
selections.length > 1 ? postTypeLabelPlural : postTypeLabel
|
|
183
|
+
) : sprintf(
|
|
184
|
+
// Translators: %s: The label for the selection.
|
|
185
|
+
__( 'Selected %s', 'newspack-plugin' ),
|
|
186
|
+
postTypeLabel
|
|
187
|
+
);
|
|
186
188
|
|
|
187
189
|
return (
|
|
188
190
|
<div className="newspack-autocomplete-with-suggestions__selected-items">
|
|
189
191
|
<p className="newspack-autocomplete-with-suggestions__label">
|
|
190
192
|
{ selectedMessage }
|
|
191
|
-
{ 1 < selections.length && _x( ' – ', 'separator character', 'newspack' ) }
|
|
193
|
+
{ 1 < selections.length && _x( ' – ', 'separator character', 'newspack-plugin' ) }
|
|
192
194
|
{ 1 < selections.length && (
|
|
193
195
|
<Button onClick={ () => onChange( [] ) } isLink isDestructive>
|
|
194
|
-
{ __( 'Clear all', 'newspack' ) }
|
|
196
|
+
{ __( 'Clear all', 'newspack-plugin' ) }
|
|
195
197
|
</Button>
|
|
196
198
|
) }
|
|
197
199
|
</p>
|
|
@@ -219,7 +221,7 @@ const AutocompleteWithSuggestions = ( {
|
|
|
219
221
|
<SelectControl
|
|
220
222
|
label={ sprintf(
|
|
221
223
|
// Translators: %s: The name of the type.
|
|
222
|
-
__( '%s type', 'newspack' ),
|
|
224
|
+
__( '%s type', 'newspack-plugin' ),
|
|
223
225
|
postTypeLabel.charAt( 0 ).toUpperCase() + postTypeLabel.slice( 1 )
|
|
224
226
|
) }
|
|
225
227
|
value={ postTypeToSearch }
|
|
@@ -265,14 +267,6 @@ const AutocompleteWithSuggestions = ( {
|
|
|
265
267
|
* Render a list of suggestions that can be clicked to select instead of searching by title.
|
|
266
268
|
*/
|
|
267
269
|
const renderSuggestions = () => {
|
|
268
|
-
if ( isLoading ) {
|
|
269
|
-
return (
|
|
270
|
-
<div className="newspack-autocomplete-with-suggestions__suggestions-spinner">
|
|
271
|
-
<Spinner />
|
|
272
|
-
</div>
|
|
273
|
-
);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
270
|
if ( 0 === suggestions.length ) {
|
|
277
271
|
return null;
|
|
278
272
|
}
|
|
@@ -287,7 +281,7 @@ const AutocompleteWithSuggestions = ( {
|
|
|
287
281
|
<p className="newspack-autocomplete-with-suggestions__label">
|
|
288
282
|
{
|
|
289
283
|
/* Translators: %s: the name of a post type. */ sprintf(
|
|
290
|
-
__( 'Or, select a recent %s:', 'newspack' ),
|
|
284
|
+
__( 'Or, select a recent %s:', 'newspack-plugin' ),
|
|
291
285
|
postTypeLabel
|
|
292
286
|
)
|
|
293
287
|
}
|
|
@@ -301,7 +295,9 @@ const AutocompleteWithSuggestions = ( {
|
|
|
301
295
|
isSecondary
|
|
302
296
|
onClick={ () => setIsLoadingMore( true ) }
|
|
303
297
|
>
|
|
304
|
-
{ isLoadingMore
|
|
298
|
+
{ isLoadingMore
|
|
299
|
+
? __( 'Loading…', 'newspack-plugin' )
|
|
300
|
+
: __( 'Load more', 'newspack-plugin' ) }
|
|
305
301
|
</Button>
|
|
306
302
|
) }
|
|
307
303
|
</div>
|
|
@@ -319,6 +315,7 @@ const AutocompleteWithSuggestions = ( {
|
|
|
319
315
|
fetchSuggestions={ async search => handleFetchSuggestions( search, 0, postTypeToSearch ) }
|
|
320
316
|
fetchSavedInfo={ postIds => handleFetchSaved( postIds ) }
|
|
321
317
|
label={ label }
|
|
318
|
+
loading={ isLoading }
|
|
322
319
|
help={ ! hideHelp && help }
|
|
323
320
|
returnFullObjects
|
|
324
321
|
/>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Styles for AutocompleteWithSuggestions component.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@use
|
|
5
|
+
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
6
6
|
|
|
7
7
|
.newspack-autocomplete-with-suggestions {
|
|
8
8
|
width: 100%;
|
|
@@ -15,13 +15,6 @@
|
|
|
15
15
|
margin-top: 16px;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
.components-spinner {
|
|
20
|
-
margin: 8px;
|
|
21
|
-
right: 0;
|
|
22
|
-
top: calc( 1.4em + 8px );
|
|
23
|
-
}
|
|
24
|
-
|
|
25
18
|
.components-select-control__input {
|
|
26
19
|
max-width: none;
|
|
27
20
|
}
|
|
@@ -104,7 +97,7 @@
|
|
|
104
97
|
padding-right: 8px;
|
|
105
98
|
|
|
106
99
|
&::after {
|
|
107
|
-
content:
|
|
100
|
+
content: "✕";
|
|
108
101
|
margin-left: 8px;
|
|
109
102
|
}
|
|
110
103
|
|
|
@@ -119,8 +112,7 @@
|
|
|
119
112
|
border-radius: 2px;
|
|
120
113
|
border: 1px solid wp-colors.$gray-700;
|
|
121
114
|
max-height: 178px;
|
|
122
|
-
overflow
|
|
123
|
-
overflow-y: auto;
|
|
115
|
+
overflow: visible auto;
|
|
124
116
|
padding: 8px 8px 0;
|
|
125
117
|
|
|
126
118
|
.components-button {
|
|
@@ -134,10 +126,10 @@
|
|
|
134
126
|
text-decoration: none;
|
|
135
127
|
width: 100%;
|
|
136
128
|
|
|
137
|
-
&:active:not(
|
|
138
|
-
&:hover:not(
|
|
129
|
+
&:active:not(:disabled),
|
|
130
|
+
&:hover:not(:disabled) {
|
|
139
131
|
background: wp-colors.$gray-900;
|
|
140
|
-
background: var(
|
|
132
|
+
background: var(--wp-admin-theme-color);
|
|
141
133
|
color: white;
|
|
142
134
|
}
|
|
143
135
|
}
|
|
@@ -157,14 +149,14 @@
|
|
|
157
149
|
.components-button {
|
|
158
150
|
line-height: normal;
|
|
159
151
|
|
|
160
|
-
&:focus:not(
|
|
152
|
+
&:focus:not(:disabled) {
|
|
161
153
|
border-radius: 0;
|
|
162
154
|
box-shadow: inset 0 0 0 1.5px wp-colors.$gray-900;
|
|
163
|
-
box-shadow: inset 0 0 0 var(
|
|
155
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
164
156
|
}
|
|
165
157
|
|
|
166
158
|
&.is-secondary {
|
|
167
|
-
width: calc(
|
|
159
|
+
width: calc(100% - 16px);
|
|
168
160
|
}
|
|
169
161
|
}
|
|
170
162
|
}
|