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.
Files changed (308) hide show
  1. package/babel.config.js +25 -0
  2. package/copy-styles.js +2 -10
  3. package/dist/{cjs/accordion → accordion}/index.js +17 -13
  4. package/dist/{cjs/accordion → accordion}/style.scss +7 -3
  5. package/dist/{cjs/action-card → action-card}/index.js +39 -43
  6. package/dist/{esm/action-card → action-card}/style.scss +9 -9
  7. package/dist/{cjs/autocomplete-tokenfield → autocomplete-tokenfield}/index.js +67 -29
  8. package/dist/{esm/autocomplete-tokenfield → autocomplete-tokenfield}/style.scss +14 -8
  9. package/dist/{cjs/autocomplete-with-suggestions → autocomplete-with-suggestions}/index.js +61 -73
  10. package/dist/{esm/autocomplete-with-suggestions → autocomplete-with-suggestions}/style.scss +9 -17
  11. package/dist/button/index.js +51 -0
  12. package/{src/button/index.js → dist/button/index.tsx} +12 -5
  13. package/dist/{cjs/button → button}/style.scss +1 -1
  14. package/dist/{cjs/button-card → button-card}/index.js +9 -10
  15. package/dist/{cjs/button-card → button-card}/style.scss +19 -13
  16. package/dist/{cjs/card → card}/index.js +4 -5
  17. package/dist/{esm/card → card}/style.scss +1 -1
  18. package/dist/{cjs/category-autocomplete → category-autocomplete}/index.js +51 -53
  19. package/dist/{esm/category-autocomplete → category-autocomplete}/style.scss +2 -2
  20. package/dist/{cjs/color-picker → color-picker}/index.js +14 -16
  21. package/dist/{cjs/color-picker → color-picker}/style.scss +3 -3
  22. package/dist/consts.js +7 -0
  23. package/dist/{cjs/custom-select-control → custom-select-control}/index.js +4 -5
  24. package/dist/{cjs/custom-select-control → custom-select-control}/style.scss +11 -10
  25. package/dist/{cjs/date-range-picker → date-range-picker}/index.js +9 -11
  26. package/dist/{cjs/date-range-picker → date-range-picker}/style.scss +6 -6
  27. package/dist/{cjs/footer → footer}/index.js +33 -36
  28. package/dist/{cjs/footer → footer}/style.scss +1 -1
  29. package/dist/{cjs/form-token-field → form-token-field}/index.js +6 -7
  30. package/dist/{esm/form-token-field → form-token-field}/style.scss +1 -1
  31. package/dist/{cjs/global-notices → global-notices}/index.js +4 -5
  32. package/dist/grid/index.js +44 -0
  33. package/dist/grid/index.tsx +34 -0
  34. package/dist/{cjs/grid → grid}/style.scss +9 -9
  35. package/dist/{cjs/handoff → handoff}/index.js +73 -71
  36. package/dist/{cjs/handoff-message → handoff-message}/index.js +5 -3
  37. package/dist/hooks/index.js +29 -0
  38. package/{src/hooks/index.js → dist/hooks/index.ts} +1 -1
  39. package/dist/{cjs/hooks → hooks}/useObjectState.js +2 -3
  40. package/dist/{cjs/hooks → hooks}/useObjectState.test.js +9 -9
  41. package/dist/{cjs/hooks → hooks}/useOnClickOutside.js +1 -2
  42. package/dist/hooks/usePrompt.js +47 -0
  43. package/{src/hooks/usePrompt.js → dist/hooks/usePrompt.ts} +4 -8
  44. package/dist/image-upload/index.js +148 -0
  45. package/dist/{cjs/image-upload → image-upload}/index.test.js +13 -6
  46. package/dist/{esm/image-upload → image-upload}/style.scss +5 -5
  47. package/dist/{cjs/index.js → index.js} +1 -1
  48. package/dist/{cjs/info-button → info-button}/index.js +6 -7
  49. package/dist/{cjs/modal → modal}/index.js +4 -5
  50. package/dist/{esm/modal → modal}/style.scss +5 -5
  51. package/dist/{cjs/newspack-icon → newspack-icon}/index.js +5 -6
  52. package/dist/{cjs/newspack-icon → newspack-icon}/style.scss +1 -1
  53. package/dist/{cjs/newspack-logo → newspack-logo}/index.js +5 -6
  54. package/dist/{cjs/newspack-logo → newspack-logo}/style.scss +1 -1
  55. package/dist/{cjs/notice → notice}/index.js +12 -10
  56. package/dist/{cjs/notice → notice}/style.scss +11 -11
  57. package/dist/patrons-logo/index.js +77 -0
  58. package/dist/plugin-installer/index.js +297 -0
  59. package/dist/{cjs/plugin-installer → plugin-installer}/style.scss +1 -1
  60. package/dist/{cjs/plugin-settings → plugin-settings}/SettingsSection.js +13 -13
  61. package/dist/plugin-settings/index.js +228 -0
  62. package/dist/{cjs/plugin-settings → plugin-settings}/style.scss +1 -1
  63. package/dist/plugin-toggle/README.md +53 -0
  64. package/dist/plugin-toggle/index.js +222 -0
  65. package/dist/{esm/plugin-toggle → plugin-toggle}/style.scss +1 -1
  66. package/dist/{cjs/popover → popover}/index.js +4 -5
  67. package/dist/{cjs/popover → popover}/style.scss +7 -7
  68. package/dist/{cjs/position-control → position-control}/index.js +33 -32
  69. package/dist/{cjs/position-control → position-control}/style.scss +8 -8
  70. package/dist/{cjs/progress-bar → progress-bar}/index.js +9 -10
  71. package/dist/{cjs/progress-bar → progress-bar}/index.test.js +16 -16
  72. package/dist/{cjs/progress-bar → progress-bar}/style.scss +2 -2
  73. package/dist/proxied-imports/router.js +15 -0
  74. package/dist/{cjs/radio-control → radio-control}/index.js +4 -5
  75. package/dist/{cjs/radio-control → radio-control}/style.scss +3 -3
  76. package/dist/{cjs/section-header → section-header}/index.js +20 -21
  77. package/dist/{esm/section-header → section-header}/style.scss +5 -1
  78. package/dist/{cjs/select-control → select-control}/ButtonGroupControl.js +17 -19
  79. package/dist/{cjs/select-control → select-control}/GroupedSelectControl.js +32 -35
  80. package/dist/{cjs/select-control → select-control}/index.js +7 -8
  81. package/dist/{cjs/select-control → select-control}/style.scss +4 -4
  82. package/dist/settings/MinMaxSetting.js +60 -0
  83. package/dist/{cjs/settings → settings}/SettingsCard.js +14 -16
  84. package/dist/settings/SettingsSection.js +33 -0
  85. package/dist/{cjs/settings → settings}/index.js +3 -4
  86. package/dist/{cjs/settings → settings}/style.scss +15 -2
  87. package/dist/sortable-newsletter-list-control/index.js +135 -0
  88. package/dist/sortable-newsletter-list-control/style.scss +45 -0
  89. package/dist/{cjs/steps-list → steps-list}/index.js +5 -6
  90. package/dist/{esm/steps-list → steps-list}/style.scss +2 -2
  91. package/dist/{cjs/steps-list-item → steps-list-item}/index.js +6 -7
  92. package/dist/{cjs/steps-list-item → steps-list-item}/style.scss +5 -5
  93. package/dist/{cjs/style-card → style-card}/index.js +21 -19
  94. package/dist/{esm/style-card → style-card}/style.scss +4 -4
  95. package/dist/{esm/style.scss → style.scss} +14 -2
  96. package/dist/{cjs/tabbed-navigation → tabbed-navigation}/index.js +16 -19
  97. package/dist/{cjs/tabbed-navigation → tabbed-navigation}/style.scss +4 -4
  98. package/dist/text-control/index.js +76 -0
  99. package/dist/text-control/index.tsx +71 -0
  100. package/dist/utils/index.js +36 -0
  101. package/dist/{cjs/waiting → waiting}/index.js +4 -5
  102. package/dist/web-preview/index.js +191 -0
  103. package/dist/{cjs/web-preview → web-preview}/style.scss +5 -5
  104. package/dist/with-wizard/index.js +328 -0
  105. package/dist/{esm/with-wizard → with-wizard}/style.scss +44 -22
  106. package/dist/{cjs/with-wizard-screen → with-wizard-screen}/index.js +40 -43
  107. package/dist/{esm/with-wizard-screen → with-wizard-screen}/style.scss +7 -7
  108. package/dist/{cjs/wizard → wizard}/components/WizardError.js +16 -17
  109. package/dist/{cjs/wizard → wizard}/index.js +44 -46
  110. package/dist/{cjs/wizard → wizard}/store/index.js +37 -38
  111. package/dist/{cjs/wizard → wizard}/store/utils.js +1 -4
  112. package/package.json +16 -14
  113. package/shared/scss/_mixins.scss +2 -2
  114. package/src/accordion/index.js +4 -1
  115. package/src/accordion/style.scss +7 -3
  116. package/src/action-card/style.scss +9 -9
  117. package/src/autocomplete-tokenfield/index.js +48 -15
  118. package/src/autocomplete-tokenfield/style.scss +14 -8
  119. package/src/autocomplete-with-suggestions/index.js +59 -62
  120. package/src/autocomplete-with-suggestions/style.scss +9 -17
  121. package/src/button/index.tsx +48 -0
  122. package/src/button/style.scss +1 -1
  123. package/src/button-card/style.scss +19 -13
  124. package/src/card/style.scss +1 -1
  125. package/src/category-autocomplete/style.scss +2 -2
  126. package/src/color-picker/style.scss +3 -3
  127. package/src/consts.js +0 -2
  128. package/src/custom-select-control/style.scss +11 -10
  129. package/src/date-range-picker/style.scss +6 -6
  130. package/src/footer/index.js +7 -7
  131. package/src/footer/style.scss +1 -1
  132. package/src/form-token-field/style.scss +1 -1
  133. package/src/grid/index.tsx +34 -0
  134. package/src/grid/style.scss +9 -9
  135. package/src/handoff/index.js +7 -6
  136. package/src/handoff-message/index.js +3 -1
  137. package/src/hooks/index.ts +15 -0
  138. package/src/hooks/usePrompt.ts +46 -0
  139. package/src/image-upload/index.js +5 -5
  140. package/src/image-upload/index.test.js +6 -1
  141. package/src/image-upload/style.scss +5 -5
  142. package/src/modal/style.scss +5 -5
  143. package/src/newspack-icon/style.scss +1 -1
  144. package/src/newspack-logo/style.scss +1 -1
  145. package/src/notice/index.js +1 -1
  146. package/src/notice/style.scss +11 -11
  147. package/src/patrons-logo/index.js +4 -1
  148. package/src/plugin-installer/index.js +7 -7
  149. package/src/plugin-installer/style.scss +1 -1
  150. package/src/plugin-settings/index.js +1 -1
  151. package/src/plugin-settings/style.scss +1 -1
  152. package/src/plugin-toggle/index.js +13 -12
  153. package/src/plugin-toggle/style.scss +1 -1
  154. package/src/popover/style.scss +7 -7
  155. package/src/position-control/index.js +63 -64
  156. package/src/position-control/style.scss +8 -8
  157. package/src/progress-bar/style.scss +2 -2
  158. package/src/radio-control/style.scss +3 -3
  159. package/src/section-header/index.js +3 -3
  160. package/src/section-header/style.scss +5 -1
  161. package/src/select-control/GroupedSelectControl.js +1 -1
  162. package/src/select-control/style.scss +4 -4
  163. package/src/settings/MinMaxSetting.js +8 -6
  164. package/src/settings/style.scss +15 -2
  165. package/src/sortable-newsletter-list-control/index.js +137 -0
  166. package/src/sortable-newsletter-list-control/style.scss +45 -0
  167. package/src/steps-list/style.scss +2 -2
  168. package/src/steps-list-item/style.scss +5 -5
  169. package/src/style-card/index.js +11 -5
  170. package/src/style-card/style.scss +4 -4
  171. package/src/style.scss +14 -2
  172. package/src/tabbed-navigation/style.scss +4 -4
  173. package/src/text-control/index.tsx +65 -0
  174. package/src/web-preview/index.js +6 -6
  175. package/src/web-preview/style.scss +5 -5
  176. package/src/with-wizard/index.js +4 -4
  177. package/src/with-wizard/style.scss +44 -22
  178. package/src/with-wizard-screen/index.js +1 -1
  179. package/src/with-wizard-screen/style.scss +7 -7
  180. package/src/wizard/components/WizardError.js +1 -1
  181. package/src/wizard/index.js +3 -3
  182. package/src/wizard/store/index.js +9 -2
  183. package/dist/cjs/action-card/style.scss +0 -483
  184. package/dist/cjs/autocomplete-tokenfield/style.scss +0 -43
  185. package/dist/cjs/autocomplete-with-suggestions/style.scss +0 -171
  186. package/dist/cjs/button/index.js +0 -57
  187. package/dist/cjs/card/style.scss +0 -168
  188. package/dist/cjs/category-autocomplete/style.scss +0 -34
  189. package/dist/cjs/consts.js +0 -12
  190. package/dist/cjs/form-token-field/style.scss +0 -37
  191. package/dist/cjs/grid/index.js +0 -54
  192. package/dist/cjs/hooks/index.js +0 -26
  193. package/dist/cjs/hooks/usePrompt.js +0 -52
  194. package/dist/cjs/image-upload/index.js +0 -144
  195. package/dist/cjs/image-upload/style.scss +0 -103
  196. package/dist/cjs/modal/style.scss +0 -56
  197. package/dist/cjs/patrons-logo/index.js +0 -82
  198. package/dist/cjs/plugin-installer/index.js +0 -299
  199. package/dist/cjs/plugin-settings/index.js +0 -222
  200. package/dist/cjs/plugin-toggle/index.js +0 -222
  201. package/dist/cjs/plugin-toggle/style.scss +0 -20
  202. package/dist/cjs/proxied-imports/router.js +0 -15
  203. package/dist/cjs/section-header/style.scss +0 -41
  204. package/dist/cjs/settings/MinMaxSetting.js +0 -57
  205. package/dist/cjs/settings/SettingsSection.js +0 -37
  206. package/dist/cjs/steps-list/style.scss +0 -11
  207. package/dist/cjs/style-card/style.scss +0 -94
  208. package/dist/cjs/style.scss +0 -43
  209. package/dist/cjs/text-control/index.js +0 -71
  210. package/dist/cjs/utils/index.js +0 -40
  211. package/dist/cjs/web-preview/index.js +0 -189
  212. package/dist/cjs/with-wizard/index.js +0 -318
  213. package/dist/cjs/with-wizard/style.scss +0 -260
  214. package/dist/cjs/with-wizard-screen/style.scss +0 -160
  215. package/dist/esm/accordion/index.js +0 -38
  216. package/dist/esm/accordion/style.scss +0 -27
  217. package/dist/esm/action-card/index.js +0 -222
  218. package/dist/esm/autocomplete-tokenfield/index.js +0 -223
  219. package/dist/esm/autocomplete-with-suggestions/index.js +0 -289
  220. package/dist/esm/button/index.js +0 -48
  221. package/dist/esm/button/style.scss +0 -11
  222. package/dist/esm/button-card/index.js +0 -65
  223. package/dist/esm/button-card/style.scss +0 -174
  224. package/dist/esm/card/index.js +0 -43
  225. package/dist/esm/category-autocomplete/index.js +0 -185
  226. package/dist/esm/color-picker/index.js +0 -61
  227. package/dist/esm/color-picker/style.scss +0 -37
  228. package/dist/esm/consts.js +0 -3
  229. package/dist/esm/custom-select-control/index.js +0 -37
  230. package/dist/esm/custom-select-control/style.scss +0 -92
  231. package/dist/esm/date-range-picker/index.js +0 -32
  232. package/dist/esm/date-range-picker/style.scss +0 -148
  233. package/dist/esm/footer/index.js +0 -105
  234. package/dist/esm/footer/style.scss +0 -82
  235. package/dist/esm/form-token-field/index.js +0 -50
  236. package/dist/esm/global-notices/index.js +0 -30
  237. package/dist/esm/grid/index.js +0 -45
  238. package/dist/esm/grid/style.scss +0 -166
  239. package/dist/esm/handoff/index.js +0 -177
  240. package/dist/esm/handoff-message/index.js +0 -45
  241. package/dist/esm/hooks/index.js +0 -17
  242. package/dist/esm/hooks/useObjectState.js +0 -31
  243. package/dist/esm/hooks/useObjectState.test.js +0 -83
  244. package/dist/esm/hooks/useOnClickOutside.js +0 -31
  245. package/dist/esm/hooks/usePrompt.js +0 -43
  246. package/dist/esm/image-upload/index.js +0 -141
  247. package/dist/esm/image-upload/index.test.js +0 -28
  248. package/dist/esm/index.js +0 -47
  249. package/dist/esm/info-button/index.js +0 -42
  250. package/dist/esm/info-button/style.scss +0 -18
  251. package/dist/esm/modal/index.js +0 -39
  252. package/dist/esm/newspack-icon/index.js +0 -50
  253. package/dist/esm/newspack-icon/style.scss +0 -26
  254. package/dist/esm/newspack-logo/index.js +0 -46
  255. package/dist/esm/newspack-logo/style.scss +0 -30
  256. package/dist/esm/notice/index.js +0 -67
  257. package/dist/esm/notice/style.scss +0 -111
  258. package/dist/esm/patrons-logo/index.js +0 -76
  259. package/dist/esm/plugin-installer/index.js +0 -295
  260. package/dist/esm/plugin-installer/style.scss +0 -72
  261. package/dist/esm/plugin-settings/SettingsSection.js +0 -136
  262. package/dist/esm/plugin-settings/index.js +0 -217
  263. package/dist/esm/plugin-settings/style.scss +0 -7
  264. package/dist/esm/plugin-toggle/index.js +0 -217
  265. package/dist/esm/popover/index.js +0 -41
  266. package/dist/esm/popover/style.scss +0 -161
  267. package/dist/esm/position-control/index.js +0 -109
  268. package/dist/esm/position-control/style.scss +0 -66
  269. package/dist/esm/progress-bar/index.js +0 -69
  270. package/dist/esm/progress-bar/index.test.js +0 -110
  271. package/dist/esm/progress-bar/style.scss +0 -42
  272. package/dist/esm/proxied-imports/router.js +0 -8
  273. package/dist/esm/radio-control/index.js +0 -37
  274. package/dist/esm/radio-control/style.scss +0 -92
  275. package/dist/esm/section-header/index.js +0 -68
  276. package/dist/esm/select-control/ButtonGroupControl.js +0 -54
  277. package/dist/esm/select-control/GroupedSelectControl.js +0 -84
  278. package/dist/esm/select-control/index.js +0 -51
  279. package/dist/esm/select-control/style.scss +0 -108
  280. package/dist/esm/settings/MinMaxSetting.js +0 -53
  281. package/dist/esm/settings/SettingsCard.js +0 -39
  282. package/dist/esm/settings/SettingsSection.js +0 -30
  283. package/dist/esm/settings/index.js +0 -9
  284. package/dist/esm/settings/style.scss +0 -106
  285. package/dist/esm/steps-list/index.js +0 -43
  286. package/dist/esm/steps-list-item/index.js +0 -48
  287. package/dist/esm/steps-list-item/style.scss +0 -47
  288. package/dist/esm/style-card/index.js +0 -76
  289. package/dist/esm/tabbed-navigation/index.js +0 -56
  290. package/dist/esm/tabbed-navigation/style.scss +0 -86
  291. package/dist/esm/text-control/index.js +0 -66
  292. package/dist/esm/text-control/style.scss +0 -32
  293. package/dist/esm/utils/index.js +0 -32
  294. package/dist/esm/waiting/index.js +0 -44
  295. package/dist/esm/waiting/style.scss +0 -27
  296. package/dist/esm/web-preview/index.js +0 -184
  297. package/dist/esm/web-preview/style.scss +0 -155
  298. package/dist/esm/with-wizard/index.js +0 -313
  299. package/dist/esm/with-wizard-screen/index.js +0 -116
  300. package/dist/esm/wizard/components/WizardError.js +0 -69
  301. package/dist/esm/wizard/index.js +0 -126
  302. package/dist/esm/wizard/store/index.js +0 -155
  303. package/dist/esm/wizard/store/utils.js +0 -17
  304. package/src/grid/index.js +0 -44
  305. package/src/text-control/index.js +0 -56
  306. /package/dist/{cjs/info-button → info-button}/style.scss +0 -0
  307. /package/dist/{cjs/text-control → text-control}/style.scss +0 -0
  308. /package/dist/{cjs/waiting → waiting}/style.scss +0 -0
@@ -1,174 +0,0 @@
1
- /**
2
- * Button Card
3
- */
4
-
5
- @use '~@wordpress/base-styles/colors' as wp-colors;
6
-
7
- .newspack-button-card {
8
- background: white;
9
- border-radius: 2px;
10
- border: 1px solid wp-colors.$gray-300;
11
- box-shadow: inset 0 0 0 var( --wp-admin-border-width-focus ) transparent;
12
- cursor: pointer;
13
- display: block;
14
- margin: 32px 0;
15
- padding: 32px;
16
- position: relative;
17
- text-decoration: none;
18
- transition: background-color 125ms ease-in-out, border-color 125ms ease-in-out,
19
- box-shadow 125ms ease-in-out;
20
-
21
- &:focus,
22
- &.is-pressed {
23
- background: white;
24
- border-color: var( --wp-admin-theme-color );
25
- box-shadow: inset 0 0 0 1px var( --wp-admin-theme-color ) !important;
26
- outline: none !important;
27
- z-index: 1;
28
- }
29
-
30
- &.is-pressed:focus-visible {
31
- box-shadow: inset 0 0 0 1px var( --wp-admin-theme-color ), 0 0 0 1px white,
32
- 0 0 0 var( --wp-admin-border-width-focus ) var( --wp-admin-theme-color ) !important;
33
- }
34
-
35
- &:active,
36
- &:hover {
37
- border-color: var( --wp-admin-theme-color );
38
- color: var( --wp-admin-theme-color );
39
- text-decoration: none;
40
- z-index: 1;
41
-
42
- .newspack-grid h3,
43
- p {
44
- color: inherit;
45
- }
46
- }
47
-
48
- .newspack-grid h3,
49
- p {
50
- transition: color 125ms ease-in-out;
51
- }
52
-
53
- .newspack-grid h3 {
54
- color: wp-colors.$gray-900;
55
- }
56
-
57
- p {
58
- color: wp-colors.$gray-700;
59
- }
60
-
61
- // Grouped
62
-
63
- &.grouped {
64
- border-radius: 0;
65
-
66
- & + &:not( .br--top ) {
67
- margin-top: -33px;
68
- }
69
-
70
- &.br--bottom {
71
- border-bottom-left-radius: 2px;
72
- border-bottom-right-radius: 2px;
73
- }
74
-
75
- &.br--top {
76
- border-top-left-radius: 2px;
77
- border-top-right-radius: 2px;
78
- }
79
- }
80
-
81
- // Chevron & Icon
82
-
83
- &.has-chevron,
84
- &.has-icon {
85
- align-items: center;
86
- display: grid;
87
- grid-gap: 16px;
88
- grid-template-columns: auto 24px;
89
-
90
- &:active,
91
- &:hover {
92
- svg {
93
- fill: currentcolor;
94
- }
95
- }
96
-
97
- svg {
98
- fill: var( --wp-admin-theme-color );
99
- transition: fill 125ms ease-in-out;
100
- }
101
- }
102
-
103
- &.has-icon {
104
- grid-template-columns: 48px auto;
105
-
106
- &.has-chevron {
107
- grid-template-columns: 48px auto 24px;
108
- }
109
- }
110
-
111
- // Is Small
112
-
113
- &.is-small {
114
- padding: 16px;
115
-
116
- &.has-chevron,
117
- &.has-icon {
118
- svg {
119
- height: 24px;
120
- width: 24px;
121
- }
122
- }
123
-
124
- &.has-icon {
125
- grid-template-columns: 24px auto;
126
-
127
- &.has-chevron {
128
- grid-template-columns: 24px auto 24px;
129
- }
130
- }
131
-
132
- h3 {
133
- font-size: 1em;
134
- line-height: 1.5;
135
- }
136
-
137
- p {
138
- font-size: 12px;
139
- line-height: 1.4;
140
- }
141
- }
142
-
143
- // Is Destructive
144
-
145
- &.is-destructive {
146
- .title {
147
- color: wp-colors.$alert-red;
148
- }
149
-
150
- &.has-chevron,
151
- &.has-icon {
152
- svg {
153
- fill: wp-colors.$alert-red;
154
- }
155
- }
156
-
157
- &:focus,
158
- &.is-pressed {
159
- border-color: wp-colors.$alert-red;
160
- box-shadow: inset 0 0 0 1px wp-colors.$alert-red !important;
161
- }
162
-
163
- &.is-pressed:focus-visible {
164
- box-shadow: inset 0 0 0 1px wp-colors.$alert-red, 0 0 0 1px white,
165
- 0 0 0 var( --wp-admin-border-width-focus ) wp-colors.$alert-red !important;
166
- }
167
-
168
- &:active,
169
- &:hover {
170
- background-color: wp-colors.$gray-100;
171
- border-color: wp-colors.$alert-red;
172
- }
173
- }
174
- }
@@ -1,43 +0,0 @@
1
- /**
2
- * Card
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 } from "@emotion/react/jsx-runtime";
20
- class Card extends Component {
21
- /**
22
- * Render
23
- */
24
- render() {
25
- const {
26
- buttonsCard,
27
- className,
28
- headerActions,
29
- isNarrow,
30
- isMedium,
31
- isSmall,
32
- isWhite,
33
- noBorder,
34
- ...otherProps
35
- } = this.props;
36
- const classes = classNames('newspack-card', className, buttonsCard && 'newspack-card__buttons-card', headerActions && 'newspack-card__header-actions', isMedium && 'newspack-card__is-medium', isNarrow && 'newspack-card__is-narrow', isSmall && 'newspack-card__is-small', isWhite && 'newspack-card__is-white', noBorder && 'newspack-card__no-border');
37
- return _jsx("div", {
38
- className: classes,
39
- ...otherProps
40
- });
41
- }
42
- }
43
- export default Card;
@@ -1,185 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- /**
3
- * Category Autocomplete
4
- */
5
-
6
- /**
7
- * WordPress dependencies.
8
- */
9
- import apiFetch from '@wordpress/api-fetch';
10
- import { Spinner } from '@wordpress/components';
11
- import { Component } from '@wordpress/element';
12
- import { addQueryArgs } from '@wordpress/url';
13
-
14
- /**
15
- * Internal dependencies.
16
- */
17
- import { FormTokenField } from '../';
18
- import './style.scss';
19
-
20
- /**
21
- * External dependencies
22
- */
23
- import debounce from 'lodash/debounce';
24
- import find from 'lodash/find';
25
- import filter from 'lodash/filter';
26
- import classnames from 'classnames';
27
-
28
- /**
29
- * Category autocomplete field component.
30
- */
31
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
32
- import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
33
- class CategoryAutocomplete extends Component {
34
- /**
35
- * Class constructor.
36
- */
37
- constructor(props) {
38
- super(props);
39
- _defineProperty(this, "state", {
40
- suggestions: {},
41
- allCategories: {},
42
- isLoading: false
43
- });
44
- /**
45
- * Prepare categories data for the API endpoint, call the change handler.
46
- *
47
- * @param {Array} tokens An array of category tokens.
48
- */
49
- _defineProperty(this, "handleOnChange", tokens => {
50
- const {
51
- onChange
52
- } = this.props;
53
- const {
54
- suggestions
55
- } = this.state;
56
- // Categories that are already will be objects, while new additions will be strings (the name).
57
- // allValues nomalizes the array so that they are all objects.
58
- const allValues = tokens.filter(token => 'undefined' !== typeof token) // Ensure each token is a valid value.
59
- .map(token => 'string' === typeof token ? suggestions[token] : token).filter(Boolean);
60
- onChange(allValues);
61
- });
62
- _defineProperty(this, "getAvailableSuggestions", () => {
63
- const {
64
- value
65
- } = this.props;
66
- const {
67
- suggestions
68
- } = this.state;
69
- const selectedIds = value.reduce((acc, item) => {
70
- if (item?.id) {
71
- acc.push(item.id);
72
- }
73
- return acc;
74
- }, []);
75
- const availableSuggestions = filter(suggestions, _ref => {
76
- let {
77
- id
78
- } = _ref;
79
- return selectedIds.indexOf(id) === -1;
80
- });
81
- return availableSuggestions.map(v => v.name);
82
- });
83
- this.debouncedUpdateSuggestions = debounce(this.updateSuggestions, 100);
84
- }
85
- componentDidMount() {
86
- this.setState({
87
- isLoading: true
88
- });
89
- apiFetch({
90
- path: addQueryArgs(`/wp/v2/${this.props.taxonomy}`, {
91
- per_page: -1,
92
- _fields: 'id,name'
93
- })
94
- }).then(categories => this.setState({
95
- allCategories: categories
96
- })).finally(() => this.setState({
97
- isLoading: false
98
- }));
99
- }
100
-
101
- /**
102
- * Clean up debounced suggestions method.
103
- */
104
- componentWillUnmount() {
105
- this.debouncedUpdateSuggestions.cancel();
106
- }
107
-
108
- /**
109
- * Refresh the autocomplete UI based on text that was typed.
110
- *
111
- * @param {string} search The typed text to search for.
112
- */
113
- updateSuggestions(search) {
114
- this.setState({
115
- isLoading: true
116
- });
117
- apiFetch({
118
- path: addQueryArgs(`/wp/v2/${this.props.taxonomy}`, {
119
- search,
120
- per_page: 20,
121
- _fields: 'id,name',
122
- orderby: 'count',
123
- order: 'desc'
124
- })
125
- }).then(categories => {
126
- this.setState({
127
- suggestions: categories.reduce((accumulator, category) => ({
128
- ...accumulator,
129
- [category.name]: category
130
- }), {})
131
- });
132
- }).finally(() => this.setState({
133
- isLoading: false
134
- }));
135
- }
136
- /**
137
- * Render the component.
138
- */
139
- render() {
140
- const {
141
- className,
142
- disabled,
143
- description,
144
- hideHelpFromVision,
145
- hideLabelFromVision,
146
- label,
147
- value
148
- } = this.props;
149
- const {
150
- allCategories,
151
- isLoading
152
- } = this.state;
153
- const classes = classnames('newspack-category-autocomplete', className);
154
- return _jsxs("div", {
155
- className: classes,
156
- children: [_jsx(FormTokenField, {
157
- onInputChange: input => this.debouncedUpdateSuggestions(input),
158
- value: value.reduce((acc, item) => {
159
- const categoryOrItem = typeof item === 'number' ? find(allCategories, ['id', item]) : item;
160
- if (categoryOrItem) {
161
- acc.push({
162
- id: categoryOrItem.term_id || categoryOrItem.id,
163
- value: categoryOrItem.value || categoryOrItem.name
164
- });
165
- }
166
- return acc;
167
- }, []),
168
- suggestions: this.getAvailableSuggestions(),
169
- onChange: this.handleOnChange,
170
- label: label,
171
- disabled: disabled,
172
- description: description,
173
- hideHelpFromVision: hideHelpFromVision,
174
- hideLabelFromVision: hideLabelFromVision
175
- }), isLoading ? _jsx("span", {
176
- className: "newspack-category-autocomplete__suggestions-spinner",
177
- children: _jsx(Spinner, {})
178
- }) : null]
179
- });
180
- }
181
- }
182
- CategoryAutocomplete.defaultProps = {
183
- taxonomy: 'categories'
184
- };
185
- export default CategoryAutocomplete;
@@ -1,61 +0,0 @@
1
- /**
2
- * WordPress dependencies.
3
- */
4
- import { ColorPicker as ColorPickerComponent } from '@wordpress/components';
5
- import { useState, useRef } from '@wordpress/element';
6
-
7
- /**
8
- * External dependencies.
9
- */
10
- import classnames from 'classnames';
11
- import { colord, extend } from 'colord';
12
- import a11yPlugin from 'colord/plugins/a11y';
13
-
14
- /**
15
- * Internal dependencies.
16
- */
17
- import hooks from '../hooks';
18
- import utils from '../utils';
19
- import './style.scss';
20
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
21
- import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
22
- extend([a11yPlugin]);
23
- const {
24
- InteractiveDiv
25
- } = utils;
26
- const ColorPicker = _ref => {
27
- let {
28
- label,
29
- color = '#fff',
30
- onChange,
31
- className
32
- } = _ref;
33
- const [isExpanded, setIsExpanded] = useState(false);
34
- const ref = useRef();
35
- const colordColor = colord(color);
36
- hooks.useOnClickOutside(ref, () => setIsExpanded(false));
37
- return _jsxs("div", {
38
- className: classnames('newspack-color-picker', className),
39
- children: [_jsx("div", {
40
- className: "newspack-color-picker__label",
41
- children: label
42
- }), _jsx(InteractiveDiv, {
43
- className: 'newspack-color-picker__expander',
44
- onClick: () => setIsExpanded(!isExpanded),
45
- style: {
46
- backgroundColor: color,
47
- color: colordColor.contrast() > colordColor.contrast('#000') ? '#fff' : '#000'
48
- },
49
- children: color
50
- }), _jsx("div", {
51
- className: "newspack-color-picker__main",
52
- ref: ref,
53
- children: isExpanded && _jsx(ColorPickerComponent, {
54
- color: color,
55
- onChange: hex => onChange(hex),
56
- enableAlpha: false
57
- })
58
- })]
59
- });
60
- };
61
- export default ColorPicker;
@@ -1,37 +0,0 @@
1
- /**
2
- * Color Picker
3
- */
4
-
5
- .newspack-color-picker {
6
- position: relative;
7
-
8
- &__label {
9
- margin-bottom: 8px;
10
- }
11
-
12
- &__expander {
13
- box-shadow: inset 0 0 0 1px rgb( 0 0 0 / 20% );
14
- border-radius: 2px;
15
- height: 64px;
16
- padding: 12px;
17
- text-align: right;
18
- text-transform: uppercase;
19
-
20
- &:focus-visible {
21
- box-shadow: 0 0 0 var( --wp-admin-border-width-focus ) var( --wp-admin-theme-color );
22
- border-color: white;
23
- }
24
- }
25
-
26
- &__main {
27
- background: white;
28
- box-shadow: 0 0 8px 4px rgba( black, 0.08 );
29
- margin: 12px 0;
30
- position: absolute;
31
- z-index: 2;
32
-
33
- &:empty {
34
- display: none;
35
- }
36
- }
37
- }
@@ -1,3 +0,0 @@
1
- export const NEWSPACK_SITE_URL = 'https://newspack.com';
2
- export const NEWSPACK_SUPPORT_URL = `${NEWSPACK_SITE_URL}/support`;
3
- export const HANDOFF_KEY = 'newspack_wizard_handoff_message';
@@ -1,37 +0,0 @@
1
- /**
2
- * Custom Select Control
3
- */
4
-
5
- /**
6
- * WordPress dependencies
7
- */
8
- import { CustomSelectControl as BaseComponent } from '@wordpress/components';
9
- import { Component } from '@wordpress/element';
10
-
11
- /**
12
- * External dependencies
13
- */
14
- import classnames from 'classnames';
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
- import './style.scss';
20
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
21
- class CustomSelectControl extends Component {
22
- /**
23
- * Render.
24
- */
25
- render() {
26
- const {
27
- className,
28
- ...otherProps
29
- } = this.props;
30
- const classes = classnames('newspack-custom-select-control', className);
31
- return _jsx(BaseComponent, {
32
- className: classes,
33
- ...otherProps
34
- });
35
- }
36
- }
37
- export default CustomSelectControl;
@@ -1,92 +0,0 @@
1
- /**
2
- * Custom Select Control
3
- */
4
-
5
- @use '~@wordpress/base-styles/colors' as wp-colors;
6
-
7
- .newspack-custom-select-control {
8
- label {
9
- display: block;
10
- margin-bottom: 8px;
11
- }
12
-
13
- .components-custom-select-control__button {
14
- border-color: wp-colors.$gray-700;
15
- border-radius: 2px;
16
- color: wp-colors.$gray-900;
17
- font-size: inherit;
18
- min-height: 30px;
19
- min-width: 100%;
20
- padding-right: 24px;
21
-
22
- &:active,
23
- &:focus,
24
- &:hover,
25
- &[aria-expanded='true'] {
26
- color: wp-colors.$gray-900;
27
- }
28
-
29
- &:focus {
30
- border-color: var( --wp-admin-theme-color );
31
- box-shadow: inset 0 0 0 1px var( --wp-admin-theme-color );
32
- }
33
-
34
- &-icon {
35
- right: 3px;
36
- width: 18px;
37
- }
38
-
39
- &[aria-expanded='true'] svg {
40
- transform: rotate( 180deg );
41
- }
42
- }
43
-
44
- .components-custom-select-control__menu {
45
- border-color: wp-colors.$gray-700;
46
- border-radius: 2px;
47
- box-shadow: 0 4px 8px rgba( black, 0.08 );
48
- margin: 8px 0 0;
49
- min-width: 222px;
50
- }
51
-
52
- .components-custom-select-control__item {
53
- box-sizing: border-box;
54
- cursor: pointer;
55
- display: flex;
56
- line-height: inherit;
57
- margin: 0 0 0 28px;
58
- padding: 6px 8px;
59
- transition: color 125ms ease-in-out;
60
-
61
- &:empty {
62
- display: none;
63
- }
64
-
65
- &.is-header {
66
- background: wp-colors.$gray-100;
67
- cursor: default;
68
- font-weight: bold;
69
- margin-left: 0;
70
- pointer-events: none;
71
- }
72
-
73
- &.is-highlighted {
74
- background: white;
75
- color: var( --wp-admin-theme-color );
76
- }
77
-
78
- &.is-selected {
79
- margin-left: 0;
80
-
81
- &::before {
82
- background: url( 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cGF0aCBkPSJNMTguMyA1LjZMOS45IDE2LjlsLTQuNi0zLjQtLjkgMS4yIDUuOCA0LjMgOS4zLTEyLjZ6IiBmaWxsPSIjMzM2NmZmIj48L3BhdGg+PC9zdmc+Cg==' )
83
- 0 0 no-repeat;
84
- content: '';
85
- display: block;
86
- height: 24px;
87
- margin: 0 4px 0 0;
88
- width: 24px;
89
- }
90
- }
91
- }
92
- }
@@ -1,32 +0,0 @@
1
- /**
2
- * External dependencies.
3
- */
4
- import { default as ReactDateRangePicker } from 'react-daterange-picker';
5
- import origMoment from 'moment';
6
- import { extendMoment } from 'moment-range';
7
- import 'react-daterange-picker/dist/css/react-calendar.css';
8
-
9
- /**
10
- * Internal dependencies.
11
- */
12
- import './style.scss';
13
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
14
- const moment = extendMoment(origMoment);
15
- const DateRangePicker = _ref => {
16
- let {
17
- start,
18
- end,
19
- onChange
20
- } = _ref;
21
- return _jsx(ReactDateRangePicker, {
22
- value: moment.range(moment(start), moment(end)),
23
- firstOfWeek: 1,
24
- onSelect: range => {
25
- onChange({
26
- start: range.start._d,
27
- end: range.end._d
28
- });
29
- }
30
- });
31
- };
32
- export default DateRangePicker;