newspack-components 3.0.0-alpha.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.
Files changed (278) hide show
  1. package/babel.config.js +25 -0
  2. package/copy-styles.js +2 -10
  3. package/dist/accordion/index.js +50 -0
  4. package/dist/accordion/style.scss +31 -0
  5. package/dist/{cjs/action-card → action-card}/index.js +38 -41
  6. package/dist/{cjs/action-card → action-card}/style.scss +9 -9
  7. package/dist/{cjs/autocomplete-tokenfield → autocomplete-tokenfield}/index.js +19 -18
  8. package/dist/{esm/autocomplete-tokenfield → autocomplete-tokenfield}/style.scss +3 -3
  9. package/dist/{cjs/autocomplete-with-suggestions → autocomplete-with-suggestions}/index.js +29 -29
  10. package/dist/{cjs/autocomplete-with-suggestions → autocomplete-with-suggestions}/style.scss +8 -8
  11. package/dist/button/index.js +51 -0
  12. package/dist/button/index.tsx +48 -0
  13. package/dist/{cjs/button → button}/style.scss +1 -1
  14. package/dist/{cjs/button-card → button-card}/index.js +8 -8
  15. package/dist/{cjs/button-card → button-card}/style.scss +19 -13
  16. package/dist/{cjs/card → card}/index.js +3 -3
  17. package/dist/{esm/card → card}/style.scss +1 -1
  18. package/dist/{cjs/category-autocomplete → category-autocomplete}/index.js +50 -48
  19. package/dist/{cjs/category-autocomplete → category-autocomplete}/style.scss +2 -2
  20. package/dist/{cjs/color-picker → color-picker}/index.js +7 -7
  21. package/dist/{cjs/color-picker → color-picker}/style.scss +3 -3
  22. package/dist/{cjs/custom-select-control → custom-select-control}/index.js +3 -3
  23. package/dist/{esm/custom-select-control → custom-select-control}/style.scss +11 -10
  24. package/dist/date-range-picker/index.js +39 -0
  25. package/dist/date-range-picker/style.scss +148 -0
  26. package/dist/{cjs/footer → footer}/index.js +19 -17
  27. package/dist/{cjs/footer → footer}/style.scss +1 -1
  28. package/dist/{cjs/form-token-field → form-token-field}/index.js +5 -5
  29. package/dist/{esm/form-token-field → form-token-field}/style.scss +1 -1
  30. package/dist/{cjs/global-notices → global-notices}/index.js +3 -3
  31. package/dist/grid/index.js +44 -0
  32. package/dist/grid/index.tsx +34 -0
  33. package/dist/{esm/grid → grid}/style.scss +9 -9
  34. package/dist/{cjs/handoff → handoff}/index.js +72 -69
  35. package/dist/{cjs/handoff-message → handoff-message}/index.js +5 -3
  36. package/dist/hooks/index.js +29 -0
  37. package/dist/hooks/index.ts +15 -0
  38. package/dist/{cjs/hooks → hooks}/useObjectState.js +1 -1
  39. package/dist/{cjs/hooks → hooks}/useObjectState.test.js +9 -9
  40. package/dist/hooks/usePrompt.js +47 -0
  41. package/dist/hooks/usePrompt.ts +46 -0
  42. package/dist/image-upload/index.js +148 -0
  43. package/dist/{cjs/image-upload → image-upload}/index.test.js +13 -6
  44. package/dist/{cjs/image-upload → image-upload}/style.scss +5 -5
  45. package/dist/{cjs/index.js → index.js} +15 -1
  46. package/dist/{cjs/info-button → info-button}/index.js +5 -5
  47. package/dist/{cjs/modal → modal}/index.js +3 -3
  48. package/dist/{cjs/modal → modal}/style.scss +5 -5
  49. package/dist/{cjs/newspack-icon → newspack-icon}/index.js +4 -4
  50. package/dist/{cjs/newspack-icon → newspack-icon}/style.scss +1 -1
  51. package/dist/{cjs/newspack-logo → newspack-logo}/index.js +4 -4
  52. package/dist/{cjs/newspack-logo → newspack-logo}/style.scss +1 -1
  53. package/dist/{cjs/notice → notice}/index.js +11 -8
  54. package/dist/{cjs/notice → notice}/style.scss +11 -11
  55. package/dist/patrons-logo/index.js +77 -0
  56. package/dist/plugin-installer/index.js +297 -0
  57. package/dist/{esm/plugin-installer → plugin-installer}/style.scss +1 -1
  58. package/dist/{cjs/plugin-settings → plugin-settings}/SettingsSection.js +11 -9
  59. package/dist/plugin-settings/index.js +228 -0
  60. package/dist/{cjs/plugin-settings → plugin-settings}/style.scss +1 -1
  61. package/dist/plugin-toggle/README.md +53 -0
  62. package/dist/plugin-toggle/index.js +222 -0
  63. package/dist/{esm/plugin-toggle → plugin-toggle}/style.scss +1 -1
  64. package/dist/{cjs/popover → popover}/index.js +3 -3
  65. package/dist/{esm/popover → popover}/style.scss +7 -7
  66. package/dist/{cjs/position-control → position-control}/index.js +24 -22
  67. package/dist/{cjs/position-control → position-control}/style.scss +8 -8
  68. package/dist/{cjs/progress-bar → progress-bar}/index.js +8 -8
  69. package/dist/{cjs/progress-bar → progress-bar}/index.test.js +12 -11
  70. package/dist/{esm/progress-bar → progress-bar}/style.scss +2 -2
  71. package/dist/proxied-imports/router.js +15 -0
  72. package/dist/{cjs/radio-control → radio-control}/index.js +3 -3
  73. package/dist/{esm/radio-control → radio-control}/style.scss +3 -3
  74. package/dist/{cjs/section-header → section-header}/index.js +8 -8
  75. package/dist/{cjs/section-header → section-header}/style.scss +1 -1
  76. package/dist/{cjs/select-control → select-control}/ButtonGroupControl.js +7 -7
  77. package/dist/{cjs/select-control → select-control}/GroupedSelectControl.js +15 -14
  78. package/dist/{cjs/select-control → select-control}/index.js +6 -6
  79. package/dist/{esm/select-control → select-control}/style.scss +4 -4
  80. package/dist/{cjs/settings → settings}/MinMaxSetting.js +12 -11
  81. package/dist/{cjs/settings → settings}/SettingsCard.js +4 -4
  82. package/dist/{cjs/settings → settings}/SettingsSection.js +6 -6
  83. package/dist/{cjs/settings → settings}/index.js +1 -1
  84. package/dist/{cjs/settings → settings}/style.scss +1 -1
  85. package/dist/{cjs/sortable-newsletter-list-control → sortable-newsletter-list-control}/index.js +25 -24
  86. package/dist/{cjs/steps-list → steps-list}/index.js +4 -4
  87. package/dist/{esm/steps-list → steps-list}/style.scss +2 -2
  88. package/dist/{cjs/steps-list-item → steps-list-item}/index.js +5 -5
  89. package/dist/{cjs/steps-list-item → steps-list-item}/style.scss +5 -5
  90. package/dist/{cjs/style-card → style-card}/index.js +20 -17
  91. package/dist/{cjs/style-card → style-card}/style.scss +4 -4
  92. package/dist/{esm/style.scss → style.scss} +1 -1
  93. package/dist/{cjs/tabbed-navigation → tabbed-navigation}/index.js +7 -7
  94. package/dist/{cjs/tabbed-navigation → tabbed-navigation}/style.scss +4 -4
  95. package/dist/text-control/index.js +76 -0
  96. package/dist/text-control/index.tsx +71 -0
  97. package/dist/{cjs/utils → utils}/index.js +2 -2
  98. package/dist/{cjs/waiting → waiting}/index.js +3 -3
  99. package/dist/web-preview/index.js +191 -0
  100. package/dist/{esm/web-preview → web-preview}/style.scss +5 -5
  101. package/dist/with-wizard/index.js +328 -0
  102. package/dist/{cjs/with-wizard → with-wizard}/style.scss +44 -22
  103. package/dist/{cjs/with-wizard-screen → with-wizard-screen}/index.js +24 -23
  104. package/dist/{esm/with-wizard-screen → with-wizard-screen}/style.scss +7 -7
  105. package/dist/{cjs/wizard → wizard}/components/WizardError.js +10 -9
  106. package/dist/{cjs/wizard → wizard}/index.js +30 -27
  107. package/dist/{cjs/wizard → wizard}/store/index.js +1 -1
  108. package/package.json +18 -15
  109. package/shared/scss/_mixins.scss +2 -2
  110. package/src/accordion/index.js +35 -0
  111. package/src/accordion/style.scss +31 -0
  112. package/src/action-card/style.scss +9 -9
  113. package/src/autocomplete-tokenfield/style.scss +3 -3
  114. package/src/autocomplete-with-suggestions/index.js +46 -44
  115. package/src/autocomplete-with-suggestions/style.scss +8 -8
  116. package/src/button/style.scss +1 -1
  117. package/src/button-card/style.scss +19 -13
  118. package/src/card/style.scss +1 -1
  119. package/src/category-autocomplete/style.scss +2 -2
  120. package/src/color-picker/style.scss +3 -3
  121. package/src/custom-select-control/style.scss +11 -10
  122. package/src/date-range-picker/index.js +31 -0
  123. package/src/date-range-picker/style.scss +148 -0
  124. package/src/footer/style.scss +1 -1
  125. package/src/form-token-field/style.scss +1 -1
  126. package/src/grid/style.scss +9 -9
  127. package/src/handoff-message/index.js +3 -1
  128. package/src/image-upload/index.js +1 -1
  129. package/src/image-upload/index.test.js +6 -1
  130. package/src/image-upload/style.scss +5 -5
  131. package/src/index.js +2 -0
  132. package/src/modal/style.scss +5 -5
  133. package/src/newspack-icon/style.scss +1 -1
  134. package/src/newspack-logo/style.scss +1 -1
  135. package/src/notice/style.scss +11 -11
  136. package/src/plugin-installer/style.scss +1 -1
  137. package/src/plugin-settings/style.scss +1 -1
  138. package/src/plugin-toggle/index.js +6 -7
  139. package/src/plugin-toggle/style.scss +1 -1
  140. package/src/popover/style.scss +7 -7
  141. package/src/position-control/index.js +62 -63
  142. package/src/position-control/style.scss +8 -8
  143. package/src/progress-bar/style.scss +2 -2
  144. package/src/radio-control/style.scss +3 -3
  145. package/src/section-header/style.scss +1 -1
  146. package/src/select-control/style.scss +4 -4
  147. package/src/settings/style.scss +1 -1
  148. package/src/steps-list/style.scss +2 -2
  149. package/src/steps-list-item/style.scss +5 -5
  150. package/src/style-card/style.scss +4 -4
  151. package/src/style.scss +1 -1
  152. package/src/tabbed-navigation/index.js +1 -1
  153. package/src/tabbed-navigation/style.scss +4 -4
  154. package/src/web-preview/style.scss +5 -5
  155. package/src/with-wizard/style.scss +44 -22
  156. package/src/with-wizard-screen/style.scss +7 -7
  157. package/dist/cjs/autocomplete-tokenfield/style.scss +0 -49
  158. package/dist/cjs/button/index.js +0 -56
  159. package/dist/cjs/card/style.scss +0 -168
  160. package/dist/cjs/custom-select-control/style.scss +0 -92
  161. package/dist/cjs/form-token-field/style.scss +0 -37
  162. package/dist/cjs/grid/index.js +0 -37
  163. package/dist/cjs/grid/style.scss +0 -166
  164. package/dist/cjs/hooks/index.js +0 -25
  165. package/dist/cjs/hooks/usePrompt.js +0 -49
  166. package/dist/cjs/image-upload/index.js +0 -143
  167. package/dist/cjs/patrons-logo/index.js +0 -81
  168. package/dist/cjs/plugin-installer/index.js +0 -295
  169. package/dist/cjs/plugin-installer/style.scss +0 -72
  170. package/dist/cjs/plugin-settings/index.js +0 -221
  171. package/dist/cjs/plugin-toggle/index.js +0 -218
  172. package/dist/cjs/plugin-toggle/style.scss +0 -20
  173. package/dist/cjs/popover/style.scss +0 -161
  174. package/dist/cjs/progress-bar/style.scss +0 -42
  175. package/dist/cjs/proxied-imports/router.js +0 -14
  176. package/dist/cjs/radio-control/style.scss +0 -92
  177. package/dist/cjs/select-control/style.scss +0 -108
  178. package/dist/cjs/steps-list/style.scss +0 -11
  179. package/dist/cjs/style.scss +0 -55
  180. package/dist/cjs/text-control/index.js +0 -61
  181. package/dist/cjs/web-preview/index.js +0 -188
  182. package/dist/cjs/web-preview/style.scss +0 -155
  183. package/dist/cjs/with-wizard/index.js +0 -317
  184. package/dist/cjs/with-wizard-screen/style.scss +0 -160
  185. package/dist/esm/action-card/index.js +0 -221
  186. package/dist/esm/action-card/style.scss +0 -483
  187. package/dist/esm/autocomplete-tokenfield/index.js +0 -260
  188. package/dist/esm/autocomplete-with-suggestions/index.js +0 -276
  189. package/dist/esm/autocomplete-with-suggestions/style.scss +0 -163
  190. package/dist/esm/button/index.js +0 -48
  191. package/dist/esm/button/style.scss +0 -11
  192. package/dist/esm/button-card/index.js +0 -64
  193. package/dist/esm/button-card/style.scss +0 -174
  194. package/dist/esm/card/index.js +0 -43
  195. package/dist/esm/category-autocomplete/index.js +0 -181
  196. package/dist/esm/category-autocomplete/style.scss +0 -34
  197. package/dist/esm/color-picker/index.js +0 -59
  198. package/dist/esm/color-picker/style.scss +0 -37
  199. package/dist/esm/consts.js +0 -1
  200. package/dist/esm/custom-select-control/index.js +0 -37
  201. package/dist/esm/footer/index.js +0 -100
  202. package/dist/esm/footer/style.scss +0 -82
  203. package/dist/esm/form-token-field/index.js +0 -49
  204. package/dist/esm/global-notices/index.js +0 -30
  205. package/dist/esm/grid/index.js +0 -29
  206. package/dist/esm/handoff/index.js +0 -176
  207. package/dist/esm/handoff-message/index.js +0 -45
  208. package/dist/esm/hooks/index.js +0 -17
  209. package/dist/esm/hooks/useObjectState.js +0 -30
  210. package/dist/esm/hooks/useObjectState.test.js +0 -82
  211. package/dist/esm/hooks/useOnClickOutside.js +0 -31
  212. package/dist/esm/hooks/usePrompt.js +0 -40
  213. package/dist/esm/image-upload/index.js +0 -139
  214. package/dist/esm/image-upload/index.test.js +0 -28
  215. package/dist/esm/image-upload/style.scss +0 -103
  216. package/dist/esm/index.js +0 -45
  217. package/dist/esm/info-button/index.js +0 -42
  218. package/dist/esm/info-button/style.scss +0 -18
  219. package/dist/esm/modal/index.js +0 -39
  220. package/dist/esm/modal/style.scss +0 -56
  221. package/dist/esm/newspack-icon/index.js +0 -50
  222. package/dist/esm/newspack-icon/style.scss +0 -26
  223. package/dist/esm/newspack-logo/index.js +0 -46
  224. package/dist/esm/newspack-logo/style.scss +0 -30
  225. package/dist/esm/notice/index.js +0 -66
  226. package/dist/esm/notice/style.scss +0 -111
  227. package/dist/esm/patrons-logo/index.js +0 -75
  228. package/dist/esm/plugin-installer/index.js +0 -290
  229. package/dist/esm/plugin-settings/SettingsSection.js +0 -134
  230. package/dist/esm/plugin-settings/index.js +0 -216
  231. package/dist/esm/plugin-settings/style.scss +0 -7
  232. package/dist/esm/plugin-toggle/index.js +0 -213
  233. package/dist/esm/popover/index.js +0 -41
  234. package/dist/esm/position-control/index.js +0 -107
  235. package/dist/esm/position-control/style.scss +0 -66
  236. package/dist/esm/progress-bar/index.js +0 -68
  237. package/dist/esm/progress-bar/index.test.js +0 -109
  238. package/dist/esm/proxied-imports/router.js +0 -8
  239. package/dist/esm/radio-control/index.js +0 -37
  240. package/dist/esm/section-header/index.js +0 -67
  241. package/dist/esm/section-header/style.scss +0 -45
  242. package/dist/esm/select-control/ButtonGroupControl.js +0 -53
  243. package/dist/esm/select-control/GroupedSelectControl.js +0 -79
  244. package/dist/esm/select-control/index.js +0 -51
  245. package/dist/esm/settings/MinMaxSetting.js +0 -54
  246. package/dist/esm/settings/SettingsCard.js +0 -38
  247. package/dist/esm/settings/SettingsSection.js +0 -26
  248. package/dist/esm/settings/index.js +0 -9
  249. package/dist/esm/settings/style.scss +0 -119
  250. package/dist/esm/sortable-newsletter-list-control/index.js +0 -128
  251. package/dist/esm/sortable-newsletter-list-control/style.scss +0 -45
  252. package/dist/esm/steps-list/index.js +0 -43
  253. package/dist/esm/steps-list-item/index.js +0 -47
  254. package/dist/esm/steps-list-item/style.scss +0 -47
  255. package/dist/esm/style-card/index.js +0 -75
  256. package/dist/esm/style-card/style.scss +0 -94
  257. package/dist/esm/tabbed-navigation/index.js +0 -53
  258. package/dist/esm/tabbed-navigation/style.scss +0 -86
  259. package/dist/esm/text-control/index.js +0 -57
  260. package/dist/esm/text-control/style.scss +0 -32
  261. package/dist/esm/utils/index.js +0 -29
  262. package/dist/esm/waiting/index.js +0 -44
  263. package/dist/esm/waiting/style.scss +0 -27
  264. package/dist/esm/web-preview/index.js +0 -183
  265. package/dist/esm/with-wizard/index.js +0 -311
  266. package/dist/esm/with-wizard/style.scss +0 -260
  267. package/dist/esm/with-wizard-screen/index.js +0 -110
  268. package/dist/esm/wizard/components/WizardError.js +0 -67
  269. package/dist/esm/wizard/index.js +0 -120
  270. package/dist/esm/wizard/store/index.js +0 -155
  271. package/dist/esm/wizard/store/utils.js +0 -14
  272. /package/dist/{cjs/consts.js → consts.js} +0 -0
  273. /package/dist/{cjs/hooks → hooks}/useOnClickOutside.js +0 -0
  274. /package/dist/{cjs/info-button → info-button}/style.scss +0 -0
  275. /package/dist/{cjs/sortable-newsletter-list-control → sortable-newsletter-list-control}/style.scss +0 -0
  276. /package/dist/{cjs/text-control → text-control}/style.scss +0 -0
  277. /package/dist/{cjs/waiting → waiting}/style.scss +0 -0
  278. /package/dist/{cjs/wizard → wizard}/store/utils.js +0 -0
@@ -1,119 +0,0 @@
1
- .newspack-settings {
2
- &__card {
3
- &.newspack-card.newspack-action-card {
4
- .newspack-action-card__region-top {
5
- padding: 32px 32px 16px;
6
- }
7
-
8
- .newspack-action-card__region-children {
9
- padding: 0 32px 32px;
10
-
11
- > .newspack-grid {
12
- margin: 0;
13
- }
14
- }
15
-
16
- .newspack-action-card__notification {
17
- padding-bottom: 16px;
18
- }
19
- }
20
-
21
- .newspack-form-token-field {
22
- margin: 0;
23
-
24
- .components-form-token-field {
25
- width: 100%;
26
- }
27
- }
28
-
29
- .newspack-settings__section {
30
- &__title {
31
- align-items: center;
32
- display: flex;
33
- margin: 0;
34
-
35
- span {
36
- line-height: 24px;
37
- }
38
- }
39
- &__content {
40
- > div,
41
- .newspack-settings__min-max {
42
- margin: 0;
43
- display: flex;
44
- align-items: center;
45
- justify-content: space-between;
46
- flex-wrap: wrap;
47
- > *:not( [class*='help'], [class*='label'] ) {
48
- margin: 0;
49
- }
50
- }
51
- .newspack-autocomplete-tokenfield,
52
- .newspack-settings__min-max {
53
- width: 100%;
54
- }
55
- .newspack-autocomplete-tokenfield {
56
- display: block;
57
- margin: 0;
58
-
59
- label:empty {
60
- display: none;
61
- }
62
- }
63
- .newspack-text-control,
64
- .newspack-checkbox-control {
65
- margin: 0 !important;
66
- }
67
- .newspack-select-control {
68
- .components-base-control {
69
- width: 100%;
70
- }
71
- }
72
- }
73
- }
74
- .newspack-settings__min-max {
75
- gap: 8px;
76
-
77
- .newspack-checkbox-control {
78
- flex: 0 0 auto;
79
- }
80
-
81
- .newspack-text-control {
82
- flex: 1 1 auto;
83
-
84
- .components-text-control__input {
85
- text-align: right;
86
- }
87
- }
88
-
89
- + .newspack-settings__min-max {
90
- margin-top: 16px !important;
91
- }
92
- }
93
- }
94
-
95
- &__no-border {
96
- &.newspack-card.newspack-action-card {
97
- border: 0;
98
-
99
- .newspack-action-card__region-top,
100
- .newspack-action-card__region-children {
101
- padding-left: 0;
102
- padding-right: 0;
103
- padding-top: 0;
104
- }
105
-
106
- .newspack-action-card__region-children {
107
- padding-bottom: 0;
108
- }
109
-
110
- .newspack-action-card__notification {
111
- padding-bottom: 16px;
112
- }
113
-
114
- & + & {
115
- margin-top: 64px;
116
- }
117
- }
118
- }
119
- }
@@ -1,128 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { Icon, chevronUp, chevronDown, trash } from '@wordpress/icons';
5
- import { Notice } from '@wordpress/components';
6
- import { __ as alias__ } from '@wordpress/i18n';
7
-
8
- /**
9
- * Internal dependencies
10
- */
11
- const __ = alias__;
12
- import ActionCard from '../action-card';
13
- import Button from '../button';
14
- import './style.scss';
15
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
16
- export default function SortableNewsletterListControl({
17
- lists,
18
- selected = [],
19
- onChange = () => {}
20
- }) {
21
- if (!Array.isArray(lists) && lists.errors) {
22
- return _jsx(Notice, {
23
- status: "error",
24
- isDismissible: false,
25
- children: Object.values(lists.errors).join(', ')
26
- });
27
- }
28
- const getList = id => lists.find(list => list.id === id);
29
- const getAvailableLists = () => {
30
- return lists.filter(list => list.active && !selected.find(({
31
- id
32
- }) => id === list.id));
33
- };
34
- return _jsxs("div", {
35
- className: "newspack__newsletter-list-control",
36
- children: [_jsx("div", {
37
- className: "newspack__newsletter-list-control__selected",
38
- children: selected.map(selectedList => {
39
- const list = getList(selectedList.id);
40
- if (!list) {
41
- return null;
42
- }
43
- return _jsx(ActionCard, {
44
- title: list.name,
45
- description: () => _jsxs(_Fragment, {
46
- children: [_jsx("input", {
47
- type: "checkbox",
48
- checked: selectedList.checked,
49
- onChange: () => {
50
- const index = selected.findIndex(({
51
- id
52
- }) => id === selectedList.id);
53
- const newSelected = [...selected];
54
- newSelected[index].checked = !newSelected[index].checked;
55
- onChange(newSelected);
56
- }
57
- }), __('Checked by default', 'newspack-plugin')]
58
- }),
59
- isSmall: true,
60
- actionText: _jsx(_Fragment, {
61
- children: _jsx(Button, {
62
- onClick: () => onChange(selected.filter(({
63
- id
64
- }) => id !== selectedList.id)),
65
- label: __('Remove', 'newspack-plugin'),
66
- icon: trash
67
- })
68
- }),
69
- children: selected.length > 1 && _jsxs("span", {
70
- className: "newspack__newsletter-list-control__sort-handle",
71
- children: [_jsx("button", {
72
- onClick: () => {
73
- const index = selected.findIndex(({
74
- id
75
- }) => id === selectedList.id);
76
- if (index === 0) {
77
- return;
78
- }
79
- const newSelected = [...selected];
80
- newSelected.splice(index, 1);
81
- newSelected.splice(index - 1, 0, selectedList);
82
- onChange(newSelected);
83
- },
84
- className: selected.findIndex(({
85
- id
86
- }) => id === selectedList.id) === 0 ? 'disabled' : '',
87
- children: _jsx(Icon, {
88
- icon: chevronUp
89
- })
90
- }), _jsx("button", {
91
- onClick: () => {
92
- const index = selected.findIndex(({
93
- id
94
- }) => id === selectedList.id);
95
- const newSelected = [...selected];
96
- newSelected.splice(index, 1);
97
- newSelected.splice(index + 1, 0, selectedList);
98
- onChange(newSelected);
99
- },
100
- className: selected.findIndex(({
101
- id
102
- }) => id === selectedList.id) === selected.length - 1 ? 'disabled' : '',
103
- children: _jsx(Icon, {
104
- icon: chevronDown
105
- })
106
- })]
107
- })
108
- }, `selected-${selectedList.id}`);
109
- })
110
- }), getAvailableLists().length > 0 && _jsxs("p", {
111
- className: "newspack__newsletter-list-control__lists",
112
- children: [selected.length > 0 ? _jsx("strong", {
113
- children: __('Add more lists:', 'newspack-plugin')
114
- }) : _jsx("strong", {
115
- children: __('Select lists:', 'newspack-plugin')
116
- }), ' ', getAvailableLists().map(list => {
117
- return _jsx(Button, {
118
- variant: "secondary",
119
- onClick: () => onChange([...selected, {
120
- id: list.id,
121
- checked: true
122
- }]),
123
- children: list.name
124
- }, list.id);
125
- })]
126
- })]
127
- });
128
- }
@@ -1,45 +0,0 @@
1
- .newspack__newsletter-list-control {
2
- &__selected {
3
- .newspack-card {
4
- display: flex;
5
- justify-content: center;
6
- min-height: 40px;
7
- flex-direction: row;
8
- .newspack-action-card__region {
9
- align-items: center;
10
- display: flex;
11
- justify-content: space-between;
12
- margin: 0;
13
- }
14
- .newspack-action-card__region-top {
15
- flex: 1;
16
- order: 2;
17
- }
18
- .newspack-action-card__region-children {
19
- padding: 12px;
20
- }
21
- }
22
- }
23
- &__sort-handle {
24
- display: flex;
25
- flex-direction: column;
26
- justify-content: center;
27
- align-items: center;
28
- button {
29
- background: transparent;
30
- border: none;
31
- margin: 0;
32
- padding: 0;
33
- height: 20px;
34
- &.disabled {
35
- cursor: default;
36
- opacity: 0.3;
37
- }
38
- }
39
- }
40
- &__lists {
41
- button {
42
- margin-right: 0.5rem;
43
- }
44
- }
45
- }
@@ -1,43 +0,0 @@
1
- /**
2
- * Steps List
3
- */
4
-
5
- /**
6
- * WordPress dependencies.
7
- */
8
- import { Component } from '@wordpress/element';
9
-
10
- /**
11
- * Internal dependencies.
12
- */
13
- import { StepsListItem } from '../';
14
- import './style.scss';
15
-
16
- /**
17
- * External dependencies.
18
- */
19
- import classnames from 'classnames';
20
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
21
- class StepsList extends Component {
22
- /**
23
- * Render
24
- */
25
- render() {
26
- const {
27
- className,
28
- stepsListItems,
29
- narrowList,
30
- style = {}
31
- } = this.props;
32
- const classes = classnames('steps-list', className, narrowList && 'steps-list__narrow-list');
33
- return _jsx("div", {
34
- className: classes,
35
- style: style,
36
- children: stepsListItems.map((listItem, index) => _jsx(StepsListItem, {
37
- listItemCount: index + 1,
38
- listItemText: listItem
39
- }, index))
40
- });
41
- }
42
- }
43
- export default StepsList;
@@ -1,47 +0,0 @@
1
- /**
2
- * Steps List Item
3
- */
4
-
5
- /**
6
- * WordPress dependencies.
7
- */
8
- import { Component } from '@wordpress/element';
9
-
10
- /**
11
- * Internal dependencies.
12
- */
13
- import './style.scss';
14
-
15
- /**
16
- * External dependencies.
17
- */
18
- import classnames from 'classnames';
19
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
20
- class StepsListItem extends Component {
21
- /**
22
- * Render
23
- */
24
- render() {
25
- const {
26
- className,
27
- listItemCount,
28
- listItemText,
29
- style = {}
30
- } = this.props;
31
- const classes = classnames('steps-list-item', className);
32
- return _jsxs("div", {
33
- className: classes,
34
- style: style,
35
- children: [_jsx("div", {
36
- className: "steps-list-item__number",
37
- children: listItemCount
38
- }), _jsx("div", {
39
- className: "steps-list-item__content",
40
- dangerouslySetInnerHTML: {
41
- __html: listItemText
42
- }
43
- })]
44
- });
45
- }
46
- }
47
- export default StepsListItem;
@@ -1,47 +0,0 @@
1
- @use '../../../shared/scss/colors';
2
- @use '~@wordpress/base-styles/colors' as wp-colors;
3
-
4
- .steps-list-item {
5
- align-items: center;
6
- display: grid;
7
- grid-template-columns: 28px auto;
8
- gap: 24px;
9
- position: relative;
10
-
11
- &::before {
12
- border: 1px solid #F0F0F0;
13
- bottom: -16px;
14
- content: '';
15
- display: block;
16
- left: 14px;
17
- position: absolute;
18
- top: -16px;
19
- }
20
-
21
- &:first-child::before {
22
- top: 50%;
23
- }
24
-
25
- &:last-child::before {
26
- bottom: 50%;
27
- }
28
-
29
- + .steps-list-item {
30
- margin-top: 32px;
31
- }
32
-
33
- &__number {
34
- align-items: center;
35
- background: #fff;
36
- border: 1px solid currentcolor;
37
- border-radius: 100%;
38
- color: colors.$primary-500;
39
- display: flex;
40
- height: 28px;
41
- justify-content: center;
42
- outline: 8px solid #fff;
43
- position: relative;
44
- width: 28px;
45
- z-index: 2;
46
- }
47
- }
@@ -1,75 +0,0 @@
1
- /**
2
- * Style Card
3
- */
4
-
5
- /**
6
- * WordPress dependencies.
7
- */
8
- import { Component } from '@wordpress/element';
9
- import { __ as alias__ } from '@wordpress/i18n';
10
- const __ = alias__;
11
- import { Button } from '@wordpress/components';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import { WebPreview } from '../';
17
- import './style.scss';
18
-
19
- /**
20
- * External dependencies
21
- */
22
- import classnames from 'classnames';
23
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
24
- class StyleCard extends Component {
25
- /**
26
- * Render.
27
- */
28
- render() {
29
- const {
30
- ariaLabel,
31
- className,
32
- cardTitle,
33
- url,
34
- image,
35
- imageType,
36
- isActive,
37
- onClick,
38
- id
39
- } = this.props;
40
- const classes = classnames('newspack-style-card', isActive && 'newspack-style-card__is-active', className);
41
- return _jsxs("div", {
42
- className: classes,
43
- id: id,
44
- children: [_jsxs("div", {
45
- className: "newspack-style-card__image",
46
- children: [imageType === 'html' ? _jsx("div", {
47
- dangerouslySetInnerHTML: image
48
- }) : _jsx("img", {
49
- src: image,
50
- alt: cardTitle + ' ' + __('Thumbnail', 'newspack-plugin')
51
- }), _jsxs("div", {
52
- className: "newspack-style-card__actions",
53
- children: [isActive ? _jsx("span", {
54
- className: "newspack-style-card__actions__badge",
55
- children: __('Selected', 'newspack-plugin')
56
- }) : _jsx(Button, {
57
- variant: "link",
58
- onClick: onClick,
59
- "aria-label": ariaLabel ? ariaLabel : __('Select', 'newspack-plugin') + ' ' + cardTitle,
60
- tabIndex: "0",
61
- children: __('Select', 'newspack-plugin')
62
- }), url && _jsx(WebPreview, {
63
- url: url,
64
- label: __('View Demo', 'newspack-plugin'),
65
- variant: "link"
66
- })]
67
- })]
68
- }), cardTitle && _jsx("div", {
69
- className: "newspack-style-card__title",
70
- children: cardTitle
71
- })]
72
- });
73
- }
74
- }
75
- export default StyleCard;
@@ -1,94 +0,0 @@
1
- /**
2
- * Style Card
3
- */
4
-
5
- @use '../../../shared/scss/colors';
6
- @use '~@wordpress/base-styles/colors' as wp-colors;
7
-
8
- .newspack-style-card {
9
- margin: 32px 0;
10
- width: 100%;
11
-
12
- // Title
13
- &__title {
14
- margin: 1em 0 0;
15
- text-align: center;
16
-
17
- .newspack-style-card__is-active & {
18
- color: colors.$primary-500;
19
- }
20
- }
21
-
22
- // Image
23
- &__image {
24
- border: 1px solid wp-colors.$gray-300;
25
- border-radius: 2px;
26
- overflow: hidden;
27
- position: relative;
28
-
29
- &:hover,
30
- &:focus,
31
- &:focus-within {
32
- .newspack-style-card__actions,
33
- .newspack-style-card__actions > * {
34
- opacity: 1;
35
- }
36
- }
37
-
38
- img,
39
- svg {
40
- display: block;
41
- height: auto;
42
- max-width: 100%;
43
- }
44
-
45
- svg {
46
- fill: wp-colors.$gray-600;
47
- margin: 8px;
48
- }
49
-
50
- .newspack-style-card__is-active & {
51
- border-color: colors.$primary-500;
52
- box-shadow: inset 0 0 0 1px colors.$primary-500;
53
-
54
- img {
55
- position: relative;
56
- z-index: -1;
57
- }
58
- }
59
- }
60
-
61
- // Actions
62
- &__actions {
63
- align-items: center;
64
- background: rgba( white, 0.9 );
65
- display: flex;
66
- flex-direction: column;
67
- justify-content: center;
68
- inset: 0;
69
- opacity: 0;
70
- padding: 16px;
71
- position: absolute;
72
- transition: opacity 125ms ease-in-out;
73
-
74
- &:empty {
75
- display: none;
76
- }
77
-
78
- &__badge,
79
- .components-button {
80
- margin: 4px;
81
- opacity: 0;
82
- transition: opacity 125ms ease-in-out;
83
- }
84
-
85
- &__badge {
86
- color: var( --wp-admin-theme-color );
87
- font-weight: bold;
88
- }
89
-
90
- .newspack-style-card__is-active & {
91
- box-shadow: inset 0 0 0 1px colors.$primary-500;
92
- }
93
- }
94
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * External dependencies.
3
- */
4
- import classnames from 'classnames';
5
- import findIndex from 'lodash/findIndex';
6
- import Router from '../proxied-imports/router';
7
-
8
- /**
9
- * Internal dependencies.
10
- */
11
- import './style.scss';
12
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
13
- const {
14
- NavLink,
15
- useHistory
16
- } = Router;
17
- const TabbedNavigation = ({
18
- items,
19
- className,
20
- disableUpcoming,
21
- children = null
22
- }) => {
23
- const displayedItems = items.filter(item => !item.isHiddenInTabbedNavigation);
24
- const {
25
- location
26
- } = useHistory();
27
- const currentIndex = findIndex(displayedItems, ['path', location.pathname]);
28
- return _jsxs("div", {
29
- className: classnames('newspack-tabbed-navigation', className),
30
- children: [_jsx("ul", {
31
- children: displayedItems.map((item, index) => _jsx("li", {
32
- children: _jsx(NavLink, {
33
- to: item.path,
34
- isActive: (match, {
35
- pathname
36
- }) => {
37
- if (item.activeTabPaths) {
38
- return item.activeTabPaths.includes(pathname);
39
- }
40
- return pathname === item.path;
41
- },
42
- exact: true,
43
- activeClassName: 'selected',
44
- className: classnames({
45
- disabled: disableUpcoming && index > currentIndex
46
- }),
47
- children: item.label
48
- })
49
- }, index))
50
- }), children]
51
- });
52
- };
53
- export default TabbedNavigation;