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,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,181 +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, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
32
- class CategoryAutocomplete extends Component {
33
- /**
34
- * Class constructor.
35
- */
36
- constructor(props) {
37
- super(props);
38
- _defineProperty(this, "state", {
39
- suggestions: {},
40
- allCategories: {},
41
- isLoading: false
42
- });
43
- /**
44
- * Prepare categories data for the API endpoint, call the change handler.
45
- *
46
- * @param {Array} tokens An array of category tokens.
47
- */
48
- _defineProperty(this, "handleOnChange", tokens => {
49
- const {
50
- onChange
51
- } = this.props;
52
- const {
53
- suggestions
54
- } = this.state;
55
- // Categories that are already will be objects, while new additions will be strings (the name).
56
- // allValues nomalizes the array so that they are all objects.
57
- const allValues = tokens.filter(token => 'undefined' !== typeof token) // Ensure each token is a valid value.
58
- .map(token => 'string' === typeof token ? suggestions[token] : token).filter(Boolean);
59
- onChange(allValues);
60
- });
61
- _defineProperty(this, "getAvailableSuggestions", () => {
62
- const {
63
- value
64
- } = this.props;
65
- const {
66
- suggestions
67
- } = this.state;
68
- const selectedIds = value.reduce((acc, item) => {
69
- if (item?.id) {
70
- acc.push(item.id);
71
- }
72
- return acc;
73
- }, []);
74
- const availableSuggestions = filter(suggestions, ({
75
- id
76
- }) => selectedIds.indexOf(id) === -1);
77
- return availableSuggestions.map(v => v.name);
78
- });
79
- this.debouncedUpdateSuggestions = debounce(this.updateSuggestions, 100);
80
- }
81
- componentDidMount() {
82
- this.setState({
83
- isLoading: true
84
- });
85
- apiFetch({
86
- path: addQueryArgs(`/wp/v2/${this.props.taxonomy}`, {
87
- per_page: -1,
88
- _fields: 'id,name'
89
- })
90
- }).then(categories => this.setState({
91
- allCategories: categories
92
- })).finally(() => this.setState({
93
- isLoading: false
94
- }));
95
- }
96
-
97
- /**
98
- * Clean up debounced suggestions method.
99
- */
100
- componentWillUnmount() {
101
- this.debouncedUpdateSuggestions.cancel();
102
- }
103
-
104
- /**
105
- * Refresh the autocomplete UI based on text that was typed.
106
- *
107
- * @param {string} search The typed text to search for.
108
- */
109
- updateSuggestions(search) {
110
- this.setState({
111
- isLoading: true
112
- });
113
- apiFetch({
114
- path: addQueryArgs(`/wp/v2/${this.props.taxonomy}`, {
115
- search,
116
- per_page: 20,
117
- _fields: 'id,name',
118
- orderby: 'count',
119
- order: 'desc'
120
- })
121
- }).then(categories => {
122
- this.setState({
123
- suggestions: categories.reduce((accumulator, category) => ({
124
- ...accumulator,
125
- [category.name]: category
126
- }), {})
127
- });
128
- }).finally(() => this.setState({
129
- isLoading: false
130
- }));
131
- }
132
- /**
133
- * Render the component.
134
- */
135
- render() {
136
- const {
137
- className,
138
- disabled,
139
- description,
140
- hideHelpFromVision,
141
- hideLabelFromVision,
142
- label,
143
- value
144
- } = this.props;
145
- const {
146
- allCategories,
147
- isLoading
148
- } = this.state;
149
- const classes = classnames('newspack-category-autocomplete', className);
150
- return _jsxs("div", {
151
- className: classes,
152
- children: [_jsx(FormTokenField, {
153
- onInputChange: input => this.debouncedUpdateSuggestions(input),
154
- value: value.reduce((acc, item) => {
155
- const categoryOrItem = typeof item === 'number' ? find(allCategories, ['id', item]) : item;
156
- if (categoryOrItem) {
157
- acc.push({
158
- id: categoryOrItem.term_id || categoryOrItem.id,
159
- value: categoryOrItem.value || categoryOrItem.name
160
- });
161
- }
162
- return acc;
163
- }, []),
164
- suggestions: this.getAvailableSuggestions(),
165
- onChange: this.handleOnChange,
166
- label: label,
167
- disabled: disabled,
168
- description: description,
169
- hideHelpFromVision: hideHelpFromVision,
170
- hideLabelFromVision: hideLabelFromVision
171
- }), isLoading ? _jsx("span", {
172
- className: "newspack-category-autocomplete__suggestions-spinner",
173
- children: _jsx(Spinner, {})
174
- }) : null]
175
- });
176
- }
177
- }
178
- CategoryAutocomplete.defaultProps = {
179
- taxonomy: 'categories'
180
- };
181
- export default CategoryAutocomplete;
@@ -1,34 +0,0 @@
1
- /**
2
- * Category Autocomplete
3
- */
4
-
5
- .newspack-category-autocomplete {
6
- position: relative;
7
-
8
- .components-form-token-field__help {
9
- display: none;
10
- }
11
-
12
- // Within a Grid
13
-
14
- .newspack-grid & .newspack-form-token-field__input-container {
15
- margin: 0;
16
- }
17
-
18
- // Loading state spinner
19
- &__suggestions-spinner {
20
- position: absolute;
21
- right: 1px;
22
- top: calc( 1.4em + 8px );
23
- z-index: 2;
24
-
25
- [class*='--label-hidden'] + & {
26
- top: 0;
27
- }
28
-
29
- .components-spinner {
30
- display: block;
31
- margin: 7px;
32
- }
33
- }
34
- }
@@ -1,59 +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, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
21
- extend([a11yPlugin]);
22
- const {
23
- InteractiveDiv
24
- } = utils;
25
- const ColorPicker = ({
26
- label,
27
- color = '#fff',
28
- onChange,
29
- className
30
- }) => {
31
- const [isExpanded, setIsExpanded] = useState(false);
32
- const ref = useRef();
33
- const colordColor = colord(color);
34
- hooks.useOnClickOutside(ref, () => setIsExpanded(false));
35
- return _jsxs("div", {
36
- className: classnames('newspack-color-picker', className),
37
- children: [_jsx("div", {
38
- className: "newspack-color-picker__label",
39
- children: label
40
- }), _jsx(InteractiveDiv, {
41
- className: 'newspack-color-picker__expander',
42
- onClick: () => setIsExpanded(!isExpanded),
43
- style: {
44
- backgroundColor: color,
45
- color: colordColor.contrast() > colordColor.contrast('#000') ? '#fff' : '#000'
46
- },
47
- children: color
48
- }), _jsx("div", {
49
- className: "newspack-color-picker__main",
50
- ref: ref,
51
- children: isExpanded && _jsx(ColorPickerComponent, {
52
- color: color,
53
- onChange: hex => onChange(hex),
54
- enableAlpha: false
55
- })
56
- })]
57
- });
58
- };
59
- 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 +0,0 @@
1
- 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,100 +0,0 @@
1
- /**
2
- * Footer
3
- */
4
-
5
- /**
6
- * WordPress dependencies.
7
- */
8
- import { __ as alias__ } from '@wordpress/i18n';
9
- const __ = alias__;
10
- import { ExternalLink } from '@wordpress/components';
11
-
12
- /**
13
- * Internal dependencies.
14
- */
15
- import { PatronsLogo } from '../';
16
- import './style.scss';
17
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
18
- const Footer = ({
19
- simple
20
- }) => {
21
- const {
22
- components_demo: componentsDemo = false,
23
- support = false,
24
- setup_wizard: setupWizard = false,
25
- reset_url: resetUrl = false,
26
- plugin_version: pluginVersion = {
27
- label: 'Newspack'
28
- },
29
- remove_starter_content: removeStarterContent = false,
30
- support_email: supportEmail
31
- } = window.newspack_urls || {};
32
- const footerElements = [{
33
- label: pluginVersion.label,
34
- url: 'https://newspack.com/category/release-notes/',
35
- external: true
36
- }, {
37
- label: __('About', 'newspack-plugin'),
38
- url: 'https://newspack.com/',
39
- external: true
40
- }, {
41
- label: __('Documentation', 'newspack-plugin'),
42
- url: support,
43
- external: true
44
- }];
45
- if (componentsDemo) {
46
- footerElements.push({
47
- label: __('Components Demo', 'newspack-plugin'),
48
- url: componentsDemo
49
- });
50
- }
51
- if (setupWizard) {
52
- footerElements.push({
53
- label: __('Setup Wizard', 'newspack-plugin'),
54
- url: setupWizard
55
- });
56
- }
57
- if (resetUrl) {
58
- footerElements.push({
59
- label: __('Reset Newspack', 'newspack-plugin'),
60
- url: resetUrl
61
- });
62
- }
63
- if (removeStarterContent) {
64
- footerElements.push({
65
- label: __('Remove Starter Content', 'newspack-plugin'),
66
- url: removeStarterContent
67
- });
68
- }
69
- if (supportEmail) {
70
- footerElements.push({
71
- label: __('Contact Support', 'newspack-plugin'),
72
- url: `mailto:${supportEmail}`
73
- });
74
- }
75
- return _jsxs("div", {
76
- className: "newspack-footer",
77
- children: [!simple && _jsx("div", {
78
- className: "newspack-footer__inner",
79
- children: _jsx("ul", {
80
- children: footerElements.map(({
81
- url,
82
- label,
83
- external
84
- }, index) => _jsx("li", {
85
- children: external ? _jsx(ExternalLink, {
86
- href: url,
87
- children: label
88
- }) : _jsx("a", {
89
- href: url,
90
- children: label
91
- })
92
- }, index))
93
- })
94
- }), _jsx("div", {
95
- className: "newspack-footer__logo",
96
- children: _jsx(PatronsLogo, {})
97
- })]
98
- });
99
- };
100
- export default Footer;