newspack-components 2.0.1 → 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.
Files changed (251) hide show
  1. package/copy-styles.js +1 -1
  2. package/dist/cjs/action-card/index.js +32 -22
  3. package/dist/cjs/action-card/style.scss +52 -27
  4. package/dist/cjs/autocomplete-tokenfield/style.scss +4 -4
  5. package/dist/cjs/autocomplete-with-suggestions/index.js +3 -2
  6. package/dist/cjs/autocomplete-with-suggestions/style.scss +19 -20
  7. package/dist/cjs/button/index.js +2 -13
  8. package/dist/cjs/button/style.scss +3 -344
  9. package/dist/cjs/button-card/index.js +11 -6
  10. package/dist/cjs/button-card/style.scss +69 -35
  11. package/dist/cjs/card/index.js +3 -1
  12. package/dist/cjs/card/style.scss +34 -61
  13. package/dist/cjs/category-autocomplete/index.js +52 -13
  14. package/dist/cjs/category-autocomplete/style.scss +19 -15
  15. package/dist/cjs/color-picker/index.js +17 -35
  16. package/dist/cjs/color-picker/style.scss +20 -160
  17. package/dist/cjs/custom-select-control/style.scss +12 -42
  18. package/dist/cjs/footer/index.js +21 -7
  19. package/dist/cjs/footer/style.scss +9 -10
  20. package/dist/cjs/form-token-field/index.js +2 -2
  21. package/dist/cjs/form-token-field/style.scss +8 -103
  22. package/dist/cjs/global-notices/index.js +2 -1
  23. package/dist/cjs/grid/index.js +1 -1
  24. package/dist/cjs/grid/style.scss +29 -1
  25. package/dist/cjs/handoff/index.js +7 -7
  26. package/dist/cjs/image-upload/index.js +1 -1
  27. package/dist/cjs/image-upload/style.scss +10 -11
  28. package/dist/cjs/index.js +7 -53
  29. package/dist/cjs/modal/index.js +0 -3
  30. package/dist/cjs/modal/style.scss +19 -131
  31. package/dist/cjs/newspack-icon/index.js +4 -2
  32. package/dist/cjs/newspack-icon/style.scss +15 -0
  33. package/dist/cjs/notice/index.js +8 -9
  34. package/dist/cjs/notice/style.scss +38 -10
  35. package/dist/cjs/plugin-installer/index.js +4 -2
  36. package/dist/cjs/plugin-settings/SettingsSection.js +76 -45
  37. package/dist/cjs/plugin-settings/index.js +49 -34
  38. package/dist/cjs/plugin-settings/style.scss +7 -0
  39. package/dist/cjs/plugin-toggle/index.js +22 -1
  40. package/dist/cjs/popover/style.scss +2 -2
  41. package/dist/cjs/radio-control/style.scss +1 -2
  42. package/dist/cjs/section-header/index.js +18 -5
  43. package/dist/cjs/section-header/style.scss +26 -1
  44. package/dist/cjs/select-control/ButtonGroupControl.js +8 -8
  45. package/dist/cjs/select-control/GroupedSelectControl.js +33 -30
  46. package/dist/cjs/select-control/index.js +1 -2
  47. package/dist/cjs/select-control/style.scss +46 -87
  48. package/dist/cjs/settings/MinMaxSetting.js +4 -2
  49. package/dist/cjs/settings/SettingsCard.js +6 -1
  50. package/dist/cjs/settings/SettingsSection.js +4 -4
  51. package/dist/cjs/settings/style.scss +32 -4
  52. package/dist/cjs/style-card/index.js +10 -6
  53. package/dist/cjs/style-card/style.scss +12 -8
  54. package/dist/cjs/style.scss +44 -0
  55. package/dist/cjs/tabbed-navigation/index.js +13 -20
  56. package/dist/cjs/tabbed-navigation/style.scss +56 -34
  57. package/dist/cjs/text-control/index.js +0 -3
  58. package/dist/cjs/text-control/style.scss +0 -126
  59. package/dist/cjs/waiting/index.js +9 -25
  60. package/dist/cjs/waiting/style.scss +9 -20
  61. package/dist/cjs/web-preview/index.js +18 -30
  62. package/dist/cjs/web-preview/style.scss +33 -26
  63. package/dist/cjs/with-wizard/index.js +4 -2
  64. package/dist/cjs/with-wizard/style.scss +77 -89
  65. package/dist/cjs/with-wizard-screen/index.js +17 -21
  66. package/dist/cjs/with-wizard-screen/style.scss +74 -121
  67. package/dist/cjs/wizard/components/WizardError.js +86 -0
  68. package/dist/cjs/wizard/index.js +145 -0
  69. package/dist/cjs/wizard/store/index.js +178 -0
  70. package/dist/cjs/wizard/store/utils.js +31 -0
  71. package/dist/esm/action-card/index.js +33 -23
  72. package/dist/esm/action-card/style.scss +52 -27
  73. package/dist/esm/autocomplete-tokenfield/style.scss +4 -4
  74. package/dist/esm/autocomplete-with-suggestions/index.js +3 -2
  75. package/dist/esm/autocomplete-with-suggestions/style.scss +19 -20
  76. package/dist/esm/button/index.js +2 -12
  77. package/dist/esm/button/style.scss +3 -344
  78. package/dist/esm/button-card/index.js +10 -6
  79. package/dist/esm/button-card/style.scss +69 -35
  80. package/dist/esm/card/index.js +3 -1
  81. package/dist/esm/card/style.scss +34 -61
  82. package/dist/esm/category-autocomplete/index.js +54 -14
  83. package/dist/esm/category-autocomplete/style.scss +19 -15
  84. package/dist/esm/color-picker/index.js +15 -34
  85. package/dist/esm/color-picker/style.scss +20 -160
  86. package/dist/esm/custom-select-control/style.scss +12 -42
  87. package/dist/esm/footer/index.js +21 -7
  88. package/dist/esm/footer/style.scss +9 -10
  89. package/dist/esm/form-token-field/index.js +2 -2
  90. package/dist/esm/form-token-field/style.scss +8 -103
  91. package/dist/esm/global-notices/index.js +2 -1
  92. package/dist/esm/grid/index.js +1 -1
  93. package/dist/esm/grid/style.scss +29 -1
  94. package/dist/esm/handoff/index.js +7 -7
  95. package/dist/esm/image-upload/index.js +1 -1
  96. package/dist/esm/image-upload/style.scss +10 -11
  97. package/dist/esm/index.js +3 -8
  98. package/dist/esm/modal/index.js +0 -3
  99. package/dist/esm/modal/style.scss +19 -131
  100. package/dist/esm/newspack-icon/index.js +4 -2
  101. package/dist/esm/newspack-icon/style.scss +15 -0
  102. package/dist/esm/notice/index.js +8 -3
  103. package/dist/esm/notice/style.scss +38 -10
  104. package/dist/esm/plugin-installer/index.js +5 -2
  105. package/dist/esm/plugin-settings/SettingsSection.js +74 -46
  106. package/dist/esm/plugin-settings/index.js +48 -34
  107. package/dist/esm/plugin-settings/style.scss +7 -0
  108. package/dist/esm/plugin-toggle/index.js +23 -1
  109. package/dist/esm/popover/style.scss +2 -2
  110. package/dist/esm/radio-control/style.scss +1 -2
  111. package/dist/esm/section-header/index.js +17 -5
  112. package/dist/esm/section-header/style.scss +26 -1
  113. package/dist/esm/select-control/ButtonGroupControl.js +8 -8
  114. package/dist/esm/select-control/GroupedSelectControl.js +33 -30
  115. package/dist/esm/select-control/index.js +1 -2
  116. package/dist/esm/select-control/style.scss +46 -87
  117. package/dist/esm/settings/MinMaxSetting.js +3 -2
  118. package/dist/esm/settings/SettingsCard.js +6 -1
  119. package/dist/esm/settings/SettingsSection.js +5 -5
  120. package/dist/esm/settings/style.scss +32 -4
  121. package/dist/esm/style-card/index.js +11 -8
  122. package/dist/esm/style-card/style.scss +12 -8
  123. package/dist/esm/style.scss +44 -0
  124. package/dist/esm/tabbed-navigation/index.js +14 -22
  125. package/dist/esm/tabbed-navigation/style.scss +56 -34
  126. package/dist/esm/text-control/index.js +0 -3
  127. package/dist/esm/text-control/style.scss +0 -126
  128. package/dist/esm/waiting/index.js +9 -22
  129. package/dist/esm/waiting/style.scss +9 -20
  130. package/dist/esm/web-preview/index.js +12 -25
  131. package/dist/esm/web-preview/style.scss +33 -26
  132. package/dist/esm/with-wizard/index.js +4 -2
  133. package/dist/esm/with-wizard/style.scss +77 -89
  134. package/dist/esm/with-wizard-screen/index.js +18 -22
  135. package/dist/esm/with-wizard-screen/style.scss +74 -121
  136. package/dist/esm/wizard/components/WizardError.js +78 -0
  137. package/dist/esm/wizard/index.js +128 -0
  138. package/dist/esm/wizard/store/index.js +161 -0
  139. package/dist/esm/wizard/store/utils.js +17 -0
  140. package/package.json +2 -1
  141. package/shared/scss/_colors.scss +15 -0
  142. package/src/action-card/index.js +31 -19
  143. package/src/action-card/style.scss +52 -27
  144. package/src/autocomplete-tokenfield/style.scss +4 -4
  145. package/src/autocomplete-with-suggestions/index.js +4 -2
  146. package/src/autocomplete-with-suggestions/style.scss +19 -20
  147. package/src/button/index.js +2 -9
  148. package/src/button/style.scss +3 -344
  149. package/src/button-card/index.js +19 -5
  150. package/src/button-card/style.scss +69 -35
  151. package/src/card/index.js +4 -0
  152. package/src/card/style.scss +34 -61
  153. package/src/category-autocomplete/index.js +51 -18
  154. package/src/category-autocomplete/style.scss +19 -15
  155. package/src/color-picker/index.js +16 -22
  156. package/src/color-picker/style.scss +20 -160
  157. package/src/custom-select-control/style.scss +12 -42
  158. package/src/footer/index.js +19 -8
  159. package/src/footer/style.scss +9 -10
  160. package/src/form-token-field/index.js +1 -1
  161. package/src/form-token-field/style.scss +8 -103
  162. package/src/global-notices/index.js +1 -1
  163. package/src/grid/index.js +1 -1
  164. package/src/grid/style.scss +29 -1
  165. package/src/handoff/index.js +7 -7
  166. package/src/image-upload/style.scss +10 -11
  167. package/src/index.js +3 -7
  168. package/src/modal/index.js +2 -5
  169. package/src/modal/style.scss +19 -131
  170. package/src/newspack-icon/index.js +7 -2
  171. package/src/newspack-icon/style.scss +15 -0
  172. package/src/notice/index.js +7 -1
  173. package/src/notice/style.scss +38 -10
  174. package/src/plugin-installer/index.js +4 -2
  175. package/src/plugin-settings/SettingsSection.js +65 -27
  176. package/src/plugin-settings/index.js +45 -18
  177. package/src/plugin-settings/style.scss +7 -0
  178. package/src/plugin-toggle/index.js +35 -9
  179. package/src/popover/style.scss +2 -2
  180. package/src/radio-control/style.scss +1 -2
  181. package/src/section-header/index.js +25 -6
  182. package/src/section-header/style.scss +26 -1
  183. package/src/select-control/ButtonGroupControl.js +13 -6
  184. package/src/select-control/GroupedSelectControl.js +26 -24
  185. package/src/select-control/index.js +1 -2
  186. package/src/select-control/style.scss +46 -87
  187. package/src/settings/MinMaxSetting.js +2 -1
  188. package/src/settings/SettingsCard.js +9 -7
  189. package/src/settings/SettingsSection.js +4 -4
  190. package/src/settings/style.scss +32 -4
  191. package/src/style-card/index.js +14 -16
  192. package/src/style-card/style.scss +12 -8
  193. package/src/style.scss +44 -0
  194. package/src/tabbed-navigation/index.js +12 -24
  195. package/src/tabbed-navigation/style.scss +56 -34
  196. package/src/text-control/index.js +1 -2
  197. package/src/text-control/style.scss +0 -126
  198. package/src/waiting/index.js +7 -18
  199. package/src/waiting/style.scss +9 -20
  200. package/src/web-preview/index.js +12 -33
  201. package/src/web-preview/style.scss +33 -26
  202. package/src/with-wizard/index.js +7 -5
  203. package/src/with-wizard/style.scss +77 -89
  204. package/src/with-wizard-screen/index.js +14 -17
  205. package/src/with-wizard-screen/style.scss +74 -121
  206. package/src/wizard/components/WizardError.js +57 -0
  207. package/src/wizard/index.js +133 -0
  208. package/src/wizard/store/index.js +126 -0
  209. package/src/wizard/store/utils.js +16 -0
  210. package/dist/cjs/button-group/index.js +0 -57
  211. package/dist/cjs/button-group/style.scss +0 -68
  212. package/dist/cjs/checkbox-control/index.js +0 -63
  213. package/dist/cjs/checkbox-control/style.scss +0 -78
  214. package/dist/cjs/preview-box/index.js +0 -36
  215. package/dist/cjs/preview-box/style.scss +0 -18
  216. package/dist/cjs/textarea-control/index.js +0 -54
  217. package/dist/cjs/textarea-control/style.scss +0 -76
  218. package/dist/cjs/toggle-control/index.js +0 -58
  219. package/dist/cjs/toggle-control/style.scss +0 -74
  220. package/dist/cjs/toggle-group/index.js +0 -71
  221. package/dist/cjs/toggle-group/style.scss +0 -28
  222. package/dist/cjs/wizard-pagination/index.js +0 -71
  223. package/dist/cjs/wizard-pagination/style.scss +0 -74
  224. package/dist/esm/button-group/index.js +0 -43
  225. package/dist/esm/button-group/style.scss +0 -68
  226. package/dist/esm/checkbox-control/index.js +0 -49
  227. package/dist/esm/checkbox-control/style.scss +0 -78
  228. package/dist/esm/preview-box/index.js +0 -30
  229. package/dist/esm/preview-box/style.scss +0 -18
  230. package/dist/esm/textarea-control/index.js +0 -40
  231. package/dist/esm/textarea-control/style.scss +0 -76
  232. package/dist/esm/toggle-control/index.js +0 -44
  233. package/dist/esm/toggle-control/style.scss +0 -74
  234. package/dist/esm/toggle-group/index.js +0 -58
  235. package/dist/esm/toggle-group/style.scss +0 -28
  236. package/dist/esm/wizard-pagination/index.js +0 -57
  237. package/dist/esm/wizard-pagination/style.scss +0 -74
  238. package/src/button-group/index.js +0 -35
  239. package/src/button-group/style.scss +0 -68
  240. package/src/checkbox-control/index.js +0 -38
  241. package/src/checkbox-control/style.scss +0 -78
  242. package/src/preview-box/index.js +0 -18
  243. package/src/preview-box/style.scss +0 -18
  244. package/src/textarea-control/index.js +0 -32
  245. package/src/textarea-control/style.scss +0 -76
  246. package/src/toggle-control/index.js +0 -38
  247. package/src/toggle-control/style.scss +0 -74
  248. package/src/toggle-group/index.js +0 -43
  249. package/src/toggle-group/style.scss +0 -28
  250. package/src/wizard-pagination/index.js +0 -59
  251. package/src/wizard-pagination/style.scss +0 -74
@@ -3,166 +3,54 @@
3
3
  */
4
4
 
5
5
  @import '../../../shared/scss/colors';
6
- @import '~@wordpress/base-styles/colors';
7
6
 
8
7
  .newspack-modal {
9
- background: white;
10
- border: 0;
11
- color: $gray-700;
12
- font-size: 14px;
13
- line-height: 24px;
14
- margin: auto;
15
- max-height: 100%;
16
- width: 100%;
17
-
18
- @media screen and ( min-width: 600px ) {
19
- border-radius: 3px;
20
- max-width: 80%;
21
- max-width: calc( 100% - 64px );
22
- }
8
+ // Color
9
+ --wp-admin-theme-color: #{$primary-500};
10
+ --wp-admin-theme-color--rgb: #{$primary-500--rgb};
11
+ --wp-admin-theme-color-darker-10: #{$primary-600};
12
+ --wp-admin-theme-color-darker-10--rgb: #{$primary-600--rgb};
13
+ --wp-admin-theme-color-darker-20: #{$primary-700};
14
+ --wp-admin-theme-color-darker-20--rgb: #{$primary-700--rgb};
23
15
 
24
16
  @media screen and ( min-width: 744px ) {
25
17
  max-width: 680px;
18
+ width: 680px;
26
19
 
27
20
  &--wide {
28
21
  max-width: 1168px;
22
+ width: 1168px;
29
23
  }
30
24
  }
31
25
 
32
26
  &--narrow {
33
27
  max-width: 360px;
28
+ width: 360px;
34
29
  }
35
30
 
36
- // Header
37
-
38
- .components-modal__header {
39
- align-items: flex-start;
40
- background: white;
41
- border: 0;
42
- height: auto;
43
- justify-content: flex-end;
44
- margin: 0 -32px 0;
45
- padding: 32px 32px 0;
46
- position: relative;
47
-
48
- .components-modal__header-heading-container {
49
- display: block;
50
- margin-right: 16px;
51
- }
52
-
53
- .components-button.has-icon {
54
- flex: 0 0 36px;
55
- left: 0;
56
- margin: -2px 0;
57
-
58
- &:hover,
59
- &[aria-expended='true'] {
60
- color: $primary-500;
61
- }
62
-
63
- &:focus:not( :disabled ) {
64
- box-shadow: 0 0 0 2px $primary-500;
65
- }
66
-
67
- svg {
68
- width: 24px;
69
- height: 24px;
70
-
71
- + span {
72
- display: none;
73
- }
74
- }
75
- }
76
-
77
- .components-modal__header-heading {
78
- color: $gray-900;
79
- font-size: 21px;
80
- font-weight: bold;
81
- line-height: 32px;
82
- }
83
- }
84
-
85
- // Content
86
-
87
- .components-modal__content {
88
- padding: 0 32px;
89
- margin: 0;
90
-
91
- &::before {
92
- display: none;
93
- }
94
- }
95
-
96
- // Typography
97
-
98
- h2,
99
- p {
100
- line-height: 24px;
101
- margin: 32px 0;
102
- padding: 0;
103
- }
104
-
105
- h2 {
106
- color: $gray-900;
107
- font-size: 17px;
108
- font-weight: bold;
109
- }
110
-
111
- p {
112
- font-size: 14px;
113
-
114
- &.is-dark {
115
- color: $gray-900;
116
- }
117
- }
118
-
119
- // Thematic Break
120
-
121
- hr {
122
- background: $gray-300;
123
- border: 0;
124
- height: 1px;
125
- margin: 48px -48px;
126
-
127
- @media screen and ( min-width: 744px ) {
128
- margin: 64px -64px;
129
- }
31
+ @media screen and ( min-width: 960px ) {
32
+ max-height: calc( 100% - 128px );
130
33
  }
131
34
 
132
35
  // Links
133
-
134
36
  a {
135
- color: $primary-500;
37
+ color: var( --wp-admin-theme-color );
136
38
 
137
39
  &:active,
138
40
  &:focus,
139
41
  &:hover {
140
- color: $primary-600;
141
- text-decoration: none;
42
+ color: var( --wp-admin-theme-color-darker-10 );
142
43
  }
143
44
 
144
45
  &:focus {
145
- box-shadow: none;
146
- outline: 2px solid $primary-500;
147
- outline-offset: 2px;
46
+ box-shadow: 0 0 0 var( --wp-admin-border-width-focus ) var( --wp-admin-theme-color );
47
+ outline: 3px solid transparent;
148
48
  }
149
49
  }
150
- }
151
-
152
- // Overlay
153
50
 
154
- .newspack-modal__overlay {
155
- background: rgba( black, 0.7 );
156
- }
157
-
158
- // Small Screens
159
-
160
- @media ( max-width: 599px ) {
161
- .newspack-modal {
162
- top: auto;
163
-
164
- .components-modal__content {
165
- height: auto;
51
+ .components-modal__content {
52
+ > *:last-child {
53
+ margin-bottom: 8px;
166
54
  }
167
55
  }
168
56
  }
@@ -39,9 +39,11 @@ class NewspackIcon extends _element.Component {
39
39
  render() {
40
40
  const {
41
41
  className,
42
- size
42
+ simple,
43
+ size,
44
+ white
43
45
  } = this.props;
44
- const classes = (0, _classnames.default)('newspack-icon', className);
46
+ const classes = (0, _classnames.default)('newspack-icon', simple && 'newspack-icon--simple', white && 'newspack-icon--white', className);
45
47
  return (0, _jsxRuntime.jsx)(_components.SVG, {
46
48
  xmlns: "http://www.w3.org/2000/svg",
47
49
  height: size,
@@ -8,4 +8,19 @@
8
8
  background: $primary-500;
9
9
  fill: white;
10
10
  padding: 12px;
11
+
12
+ &--white {
13
+ background: white;
14
+ fill: $primary-500;
15
+ }
16
+
17
+ &--simple {
18
+ background: none;
19
+ fill: $primary-500;
20
+ padding: 0;
21
+ }
22
+
23
+ &#{&}--simple#{&}--white {
24
+ fill: white;
25
+ }
11
26
  }
@@ -11,6 +11,8 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _icons = require("@wordpress/icons");
13
13
 
14
+ var _i18n = require("@wordpress/i18n");
15
+
14
16
  require("./style.scss");
15
17
 
16
18
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -24,14 +26,8 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
24
26
  /**
25
27
  * WordPress dependencies.
26
28
  */
29
+ const __ = _i18n.__;
27
30
 
28
- /**
29
- * Internal dependencies.
30
- */
31
-
32
- /**
33
- * External dependencies.
34
- */
35
31
  class Notice extends _element.Component {
36
32
  /**
37
33
  * Render
@@ -39,6 +35,7 @@ class Notice extends _element.Component {
39
35
  render() {
40
36
  const {
41
37
  className,
38
+ debugMode,
42
39
  isError,
43
40
  isHelp,
44
41
  isSuccess,
@@ -48,13 +45,15 @@ class Notice extends _element.Component {
48
45
  style = {},
49
46
  children = null
50
47
  } = this.props;
51
- const classes = (0, _classnames.default)('newspack-notice', className, isError && 'newspack-notice__is-error', isHelp && 'newspack-notice__is-help', isSuccess && 'newspack-notice__is-success', isWarning && 'newspack-notice__is-warning');
48
+ const classes = (0, _classnames.default)('newspack-notice', className, debugMode && 'newspack-notice__is-debug', isError && 'newspack-notice__is-error', isHelp && 'newspack-notice__is-help', isSuccess && 'newspack-notice__is-success', isWarning && 'newspack-notice__is-warning');
52
49
  let noticeIcon;
53
50
 
54
51
  if (isHelp) {
55
52
  noticeIcon = _icons.help;
56
53
  } else if (isSuccess) {
57
54
  noticeIcon = _icons.check;
55
+ } else if (debugMode) {
56
+ noticeIcon = _icons.bug;
58
57
  } else {
59
58
  noticeIcon = _icons.info;
60
59
  }
@@ -68,7 +67,7 @@ class Notice extends _element.Component {
68
67
  className: "newspack-notice__content",
69
68
  children: [rawHTML ? (0, _jsxRuntime.jsx)(_element.RawHTML, {
70
69
  children: noticeText
71
- }) : noticeText, children || null]
70
+ }) : noticeText, debugMode && __('Debug Mode', 'newspack'), children || null]
72
71
  })]
73
72
  });
74
73
  }
@@ -6,14 +6,11 @@
6
6
  @import '../../../shared/scss/colors';
7
7
 
8
8
  .newspack-notice {
9
- align-items: flex-start;
9
+ align-items: center;
10
10
  background: $gray-100;
11
- border-radius: 3px;
12
11
  color: $gray-900;
13
12
  display: flex;
14
- font-size: 14px;
15
13
  justify-content: flex-start;
16
- line-height: 24px;
17
14
  margin: 32px 0;
18
15
  padding: 6px 8px;
19
16
 
@@ -24,8 +21,25 @@
24
21
  margin-right: 4px;
25
22
  }
26
23
 
24
+ &__is-debug {
25
+ background: $primary-700;
26
+ border-radius: 2px;
27
+ bottom: 16px;
28
+ box-shadow: 0 0 8px 4px rgba( black, 0.08 );
29
+ color: white;
30
+ font-weight: bold;
31
+ margin: 0 16px;
32
+ position: fixed;
33
+ text-transform: uppercase;
34
+ z-index: 9997;
35
+
36
+ > svg {
37
+ fill: white;
38
+ }
39
+ }
40
+
27
41
  &__is-error {
28
- background: lighten( $alert-red, 54% );
42
+ background: lighten( $alert-red, 51% );
29
43
 
30
44
  > svg {
31
45
  fill: $alert-red;
@@ -34,7 +48,7 @@
34
48
  }
35
49
 
36
50
  &__is-help {
37
- background: $primary-000;
51
+ background: $primary-050;
38
52
 
39
53
  > svg {
40
54
  fill: $primary-500;
@@ -42,7 +56,7 @@
42
56
  }
43
57
 
44
58
  &__is-success {
45
- background: lighten( $alert-green, 47% );
59
+ background: lighten( $alert-green, 42% );
46
60
 
47
61
  > svg {
48
62
  fill: $alert-green;
@@ -50,7 +64,7 @@
50
64
  }
51
65
 
52
66
  &__is-warning {
53
- background: lighten( $alert-yellow, 36% );
67
+ background: lighten( $alert-yellow, 30% );
54
68
 
55
69
  > svg {
56
70
  fill: $alert-yellow;
@@ -58,9 +72,23 @@
58
72
  }
59
73
  }
60
74
 
61
- &__content {
75
+ & &__content {
62
76
  > div > * {
63
- margin: 0;
77
+ margin: 0 !important;
78
+ }
79
+
80
+ a {
81
+ color: inherit;
82
+
83
+ &:active,
84
+ &:focus,
85
+ &:hover {
86
+ color: inherit;
87
+ }
88
+
89
+ &:focus {
90
+ box-shadow: 0 0 0 var( --wp-admin-border-width-focus ) currentColor;
91
+ }
64
92
  }
65
93
  }
66
94
 
@@ -116,6 +116,7 @@ class PluginInstaller extends _element.Component {
116
116
  const {
117
117
  pluginInfo
118
118
  } = this.state;
119
+ this.props.onInstalled(slug);
119
120
  this.updatePluginInfo({ ...pluginInfo,
120
121
  [slug]: { ...response,
121
122
  installationStatus: PLUGIN_STATE_ACTIVE
@@ -215,7 +216,7 @@ class PluginInstaller extends _element.Component {
215
216
  const plugin = pluginInfo[slug];
216
217
  return plugin.Status !== 'active' && plugin.installationStatus === PLUGIN_STATE_NONE;
217
218
  });
218
- return (0, _jsxRuntime.jsxs)("div", {
219
+ return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
219
220
  children: [(!pluginInfo || !Object.keys(pluginInfo).length) && (0, _jsxRuntime.jsxs)("div", {
220
221
  className: "newspack-plugin-installer_is-waiting",
221
222
  children: [(0, _jsxRuntime.jsx)(_.Waiting, {
@@ -291,7 +292,8 @@ class PluginInstaller extends _element.Component {
291
292
  }
292
293
 
293
294
  PluginInstaller.defaultProps = {
294
- onStatus: () => {}
295
+ onStatus: () => {},
296
+ onInstalled: () => {}
295
297
  };
296
298
  var _default = PluginInstaller;
297
299
  exports.default = _default;
@@ -7,10 +7,16 @@ exports.default = void 0;
7
7
 
8
8
  var _element = require("@wordpress/element");
9
9
 
10
+ var _hooks = require("@wordpress/hooks");
11
+
10
12
  var _i18n = require("@wordpress/i18n");
11
13
 
14
+ var _components = require("@wordpress/components");
15
+
12
16
  var _ = require("../");
13
17
 
18
+ require("./style.scss");
19
+
14
20
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
15
21
 
16
22
  /**
@@ -22,15 +28,19 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
22
28
  */
23
29
  const __ = _i18n.__;
24
30
 
31
+ const isSelectControl = setting => {
32
+ return Array.isArray(setting.options) && setting.options.length;
33
+ };
34
+
25
35
  const getControlComponent = setting => {
26
- if (Array.isArray(setting.options) && setting.options.length) {
36
+ if (isSelectControl(setting)) {
27
37
  return _.SelectControl;
28
38
  }
29
39
 
30
40
  switch (setting.type) {
31
41
  case 'checkbox':
32
42
  case 'boolean':
33
- return _.CheckboxControl;
43
+ return _components.CheckboxControl;
34
44
 
35
45
  default:
36
46
  return _.TextControl;
@@ -49,13 +59,22 @@ const getControlType = setting => {
49
59
  case 'text':
50
60
  return 'text';
51
61
 
62
+ case 'password':
63
+ return 'password';
64
+
65
+ case 'boolean':
66
+ case 'checkbox':
67
+ return 'checkbox';
68
+
52
69
  default:
53
70
  return null;
54
71
  }
55
72
  };
56
73
 
57
- const SettingsSection = _ref => {
58
- let {
74
+ const SettingsSection = props => {
75
+ const {
76
+ error,
77
+ sectionKey,
59
78
  active,
60
79
  title,
61
80
  description,
@@ -63,61 +82,73 @@ const SettingsSection = _ref => {
63
82
  disabled,
64
83
  onChange,
65
84
  onUpdate
66
- } = _ref;
67
-
68
- const getControlProps = setting => {
69
- var _setting$options;
70
-
71
- return {
72
- disabled,
73
- name: `${setting.section}_${setting.key}`,
74
- type: getControlType(setting),
75
- label: setting.description,
76
- help: setting.help || null,
77
- options: ((_setting$options = setting.options) === null || _setting$options === void 0 ? void 0 : _setting$options.map(option => ({
78
- value: option.value,
79
- label: option.name
80
- }))) || null,
81
- value: setting.value,
82
- checked: setting.type === 'boolean' ? !!setting.value : null,
83
- onChange: value => {
84
- onChange(setting.key, value);
85
- }
86
- };
85
+ } = props;
86
+
87
+ const getControlProps = setting => ({
88
+ disabled,
89
+ name: `${setting.section}_${setting.key}`,
90
+ type: getControlType(setting),
91
+ label: setting.description,
92
+ help: setting.help || null,
93
+ options: setting.options?.map(option => ({
94
+ value: option.value,
95
+ label: option.name || option.label
96
+ })) || null,
97
+ value: setting.value,
98
+ multiple: isSelectControl(setting) && setting.multiple ? true : null,
99
+ checked: setting.type === 'boolean' ? !!setting.value : null,
100
+ onChange: value => {
101
+ onChange(setting.key, value);
102
+ }
103
+ });
104
+
105
+ const createFilter = function (name) {
106
+ let defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
107
+ return (0, _hooks.applyFilters)(`newspack.settingSection.${sectionKey}.${name}`, defaultComponent, props);
87
108
  };
88
109
 
110
+ let columns = 2;
111
+
112
+ if (fields.length % 3 === 0) {
113
+ columns = 3;
114
+ } else if (fields.length === 1) {
115
+ columns = 1;
116
+ }
117
+
89
118
  return (0, _jsxRuntime.jsx)(_.ActionCard, {
90
119
  isMedium: true,
91
120
  disabled: disabled,
92
121
  title: title,
93
122
  description: description,
94
123
  toggleChecked: active,
95
- hasGreyHeader: active !== null,
96
- toggleOnChange: value => onUpdate({
124
+ hasGreyHeader: active || null === active,
125
+ toggleOnChange: active !== null ? value => onUpdate({
97
126
  active: value
98
- }),
127
+ }) : null,
128
+ actionContent: (active || null === active) && createFilter('buttons', (0, _jsxRuntime.jsx)(_.Button, {
129
+ variant: "primary",
130
+ disabled: disabled,
131
+ onClick: () => {
132
+ onUpdate();
133
+ },
134
+ children: __('Save Settings', 'newspack')
135
+ })),
99
136
  children: (active || active === null) && (0, _jsxRuntime.jsxs)(_element.Fragment, {
100
- children: [(0, _jsxRuntime.jsx)(_.Grid, {
101
- columns: fields.length % 3 === 0 ? 3 : 2,
137
+ children: [error?.message && (0, _jsxRuntime.jsx)(_.Notice, {
138
+ noticeText: error.message,
139
+ isError: true
140
+ }), createFilter('beforeControls'), (0, _jsxRuntime.jsx)(_.Grid, {
141
+ columns: columns,
102
142
  gutter: 32,
103
143
  children: fields.map(setting => {
104
144
  const Control = getControlComponent(setting); // eslint-disable-line @wordpress/no-unused-vars-before-return, no-unused-vars
105
145
 
106
- return (0, _jsxRuntime.jsx)(Control, { ...getControlProps(setting)
107
- }, setting.key);
108
- })
109
- }), (0, _jsxRuntime.jsx)("div", {
110
- className: "newspack-buttons-card",
111
- style: {
112
- margin: '32px 0 0'
113
- },
114
- children: (0, _jsxRuntime.jsx)(_.Button, {
115
- isPrimary: true,
116
- disabled: disabled,
117
- onClick: () => {
118
- onUpdate();
119
- },
120
- children: __('Save settings', 'newspack')
146
+ return (0, _hooks.applyFilters)(`newspack.settingsSection.${sectionKey}.control`, (0, _jsxRuntime.jsx)(Control, { ...getControlProps(setting)
147
+ }, setting.key), {
148
+ sectionKey,
149
+ setting,
150
+ onChange
151
+ });
121
152
  })
122
153
  })]
123
154
  })