@automattic/onboarding 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +20 -0
  2. package/dist/cjs/action-buttons/index.js +50 -0
  3. package/dist/cjs/action-buttons/index.js.map +1 -0
  4. package/dist/cjs/action-buttons/style.scss +108 -0
  5. package/dist/cjs/cart/create-cart-manager-client.js +30 -0
  6. package/dist/cjs/cart/create-cart-manager-client.js.map +1 -0
  7. package/dist/cjs/cart/index.js +239 -0
  8. package/dist/cjs/cart/index.js.map +1 -0
  9. package/dist/cjs/confetti/index.js +8 -0
  10. package/dist/cjs/confetti/index.js.map +1 -0
  11. package/dist/cjs/feature-icon/index.js +19 -0
  12. package/dist/cjs/feature-icon/index.js.map +1 -0
  13. package/dist/cjs/flow-progress/index.js +14 -0
  14. package/dist/cjs/flow-progress/index.js.map +1 -0
  15. package/dist/cjs/flow-progress/style.scss +5 -0
  16. package/dist/cjs/flow-progress/use-flow-progress.js +92 -0
  17. package/dist/cjs/flow-progress/use-flow-progress.js.map +1 -0
  18. package/dist/cjs/hooray/index.js +12 -0
  19. package/dist/cjs/hooray/index.js.map +1 -0
  20. package/dist/cjs/hooray/style.scss +66 -0
  21. package/dist/cjs/index.js +54 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/intent-screen/index.js +11 -0
  24. package/dist/cjs/intent-screen/index.js.map +1 -0
  25. package/dist/cjs/mshots-image/index.js +234 -0
  26. package/dist/cjs/mshots-image/index.js.map +1 -0
  27. package/dist/cjs/mshots-image/style.scss +43 -0
  28. package/dist/cjs/navigator/hooks/index.js +6 -0
  29. package/dist/cjs/navigator/hooks/index.js.map +1 -0
  30. package/dist/cjs/navigator/hooks/use-navigator-listener.js +16 -0
  31. package/dist/cjs/navigator/hooks/use-navigator-listener.js.map +1 -0
  32. package/dist/cjs/navigator/index.js +18 -0
  33. package/dist/cjs/navigator/index.js.map +1 -0
  34. package/dist/cjs/navigator/navigator-buttons/index.js +23 -0
  35. package/dist/cjs/navigator/navigator-buttons/index.js.map +1 -0
  36. package/dist/cjs/navigator/navigator-buttons/style.scss +47 -0
  37. package/dist/cjs/navigator/navigator-header/index.js +13 -0
  38. package/dist/cjs/navigator/navigator-header/index.js.map +1 -0
  39. package/dist/cjs/navigator/navigator-header/style.scss +45 -0
  40. package/dist/cjs/navigator/navigator-item-group/index.js +10 -0
  41. package/dist/cjs/navigator/navigator-item-group/index.js.map +1 -0
  42. package/dist/cjs/navigator/navigator-item-group/style.scss +28 -0
  43. package/dist/cjs/navigator/navigator-listener/index.js +9 -0
  44. package/dist/cjs/navigator/navigator-listener/index.js.map +1 -0
  45. package/dist/cjs/navigator/navigator-screen/index.js +16 -0
  46. package/dist/cjs/navigator/navigator-screen/index.js.map +1 -0
  47. package/dist/cjs/navigator/navigator-screens/hooks/index.js +8 -0
  48. package/dist/cjs/navigator/navigator-screens/hooks/index.js.map +1 -0
  49. package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-buttons.js +17 -0
  50. package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-buttons.js.map +1 -0
  51. package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-screens.js +14 -0
  52. package/dist/cjs/navigator/navigator-screens/hooks/use-navigator-screens.js.map +1 -0
  53. package/dist/cjs/navigator/navigator-screens/index.js +9 -0
  54. package/dist/cjs/navigator/navigator-screens/index.js.map +1 -0
  55. package/dist/cjs/navigator/navigator-screens/navigator-screens.js +18 -0
  56. package/dist/cjs/navigator/navigator-screens/navigator-screens.js.map +1 -0
  57. package/dist/cjs/navigator/navigator-screens/navigator-screens.scss +60 -0
  58. package/dist/cjs/navigator/navigator-screens/types.js +3 -0
  59. package/dist/cjs/navigator/navigator-screens/types.js.map +1 -0
  60. package/dist/cjs/notice/index.js +12 -0
  61. package/dist/cjs/notice/index.js.map +1 -0
  62. package/dist/cjs/notice/style.scss +19 -0
  63. package/dist/cjs/progress/index.js +11 -0
  64. package/dist/cjs/progress/index.js.map +1 -0
  65. package/dist/cjs/progress/style.scss +34 -0
  66. package/dist/cjs/select-card-checkbox/index.js +17 -0
  67. package/dist/cjs/select-card-checkbox/index.js.map +1 -0
  68. package/dist/cjs/select-card-checkbox/style.scss +30 -0
  69. package/dist/cjs/select-card-radio/index.js +21 -0
  70. package/dist/cjs/select-card-radio/index.js.map +1 -0
  71. package/dist/cjs/select-card-radio/style.scss +44 -0
  72. package/dist/cjs/select-items/index.js +13 -0
  73. package/dist/cjs/select-items/index.js.map +1 -0
  74. package/dist/cjs/select-items/style.scss +96 -0
  75. package/dist/cjs/select-items-alt/index.js +14 -0
  76. package/dist/cjs/select-items-alt/index.js.map +1 -0
  77. package/dist/cjs/select-items-alt/style.scss +72 -0
  78. package/dist/cjs/sensei-logo/index.js +8 -0
  79. package/dist/cjs/sensei-logo/index.js.map +1 -0
  80. package/dist/cjs/setup-tailored-site-after-creation.js +109 -0
  81. package/dist/cjs/setup-tailored-site-after-creation.js.map +1 -0
  82. package/dist/cjs/step-container/index.js +65 -0
  83. package/dist/cjs/step-container/index.js.map +1 -0
  84. package/dist/cjs/step-container/style.scss +304 -0
  85. package/dist/cjs/step-navigation-link/index.js +35 -0
  86. package/dist/cjs/step-navigation-link/index.js.map +1 -0
  87. package/dist/cjs/step-navigation-link/style.scss +42 -0
  88. package/dist/cjs/titles/index.js +13 -0
  89. package/dist/cjs/titles/index.js.map +1 -0
  90. package/dist/cjs/titles/styles.scss +29 -0
  91. package/dist/cjs/upload-and-set-site-logo.js +32 -0
  92. package/dist/cjs/upload-and-set-site-logo.js.map +1 -0
  93. package/dist/cjs/utils/contrastChecker.js +38 -0
  94. package/dist/cjs/utils/contrastChecker.js.map +1 -0
  95. package/dist/cjs/utils/domain-suggester.js +113 -0
  96. package/dist/cjs/utils/domain-suggester.js.map +1 -0
  97. package/dist/cjs/utils/flows.js +218 -0
  98. package/dist/cjs/utils/flows.js.map +1 -0
  99. package/dist/cjs/utils/index.js +13 -0
  100. package/dist/cjs/utils/index.js.map +1 -0
  101. package/dist/cjs/utils/is-domain.js +22 -0
  102. package/dist/cjs/utils/is-domain.js.map +1 -0
  103. package/dist/cjs/utils/use-data-loss-warning.js +20 -0
  104. package/dist/cjs/utils/use-data-loss-warning.js.map +1 -0
  105. package/dist/cjs/videopress-logo/index.js +8 -0
  106. package/dist/cjs/videopress-logo/index.js.map +1 -0
  107. package/dist/esm/action-buttons/index.js +42 -0
  108. package/dist/esm/action-buttons/index.js.map +1 -0
  109. package/dist/esm/action-buttons/style.scss +108 -0
  110. package/dist/esm/cart/create-cart-manager-client.js +27 -0
  111. package/dist/esm/cart/create-cart-manager-client.js.map +1 -0
  112. package/dist/esm/cart/index.js +229 -0
  113. package/dist/esm/cart/index.js.map +1 -0
  114. package/dist/esm/confetti/index.js +6 -0
  115. package/dist/esm/confetti/index.js.map +1 -0
  116. package/dist/esm/feature-icon/index.js +16 -0
  117. package/dist/esm/feature-icon/index.js.map +1 -0
  118. package/dist/esm/flow-progress/index.js +12 -0
  119. package/dist/esm/flow-progress/index.js.map +1 -0
  120. package/dist/esm/flow-progress/style.scss +5 -0
  121. package/dist/esm/flow-progress/use-flow-progress.js +88 -0
  122. package/dist/esm/flow-progress/use-flow-progress.js.map +1 -0
  123. package/dist/esm/hooray/index.js +9 -0
  124. package/dist/esm/hooray/index.js.map +1 -0
  125. package/dist/esm/hooray/style.scss +66 -0
  126. package/dist/esm/index.js +22 -0
  127. package/dist/esm/index.js.map +1 -0
  128. package/dist/esm/intent-screen/index.js +8 -0
  129. package/dist/esm/intent-screen/index.js.map +1 -0
  130. package/dist/esm/mshots-image/index.js +229 -0
  131. package/dist/esm/mshots-image/index.js.map +1 -0
  132. package/dist/esm/mshots-image/style.scss +43 -0
  133. package/dist/esm/navigator/hooks/index.js +2 -0
  134. package/dist/esm/navigator/hooks/index.js.map +1 -0
  135. package/dist/esm/navigator/hooks/use-navigator-listener.js +14 -0
  136. package/dist/esm/navigator/hooks/use-navigator-listener.js.map +1 -0
  137. package/dist/esm/navigator/index.js +8 -0
  138. package/dist/esm/navigator/index.js.map +1 -0
  139. package/dist/esm/navigator/navigator-buttons/index.js +17 -0
  140. package/dist/esm/navigator/navigator-buttons/index.js.map +1 -0
  141. package/dist/esm/navigator/navigator-buttons/style.scss +47 -0
  142. package/dist/esm/navigator/navigator-header/index.js +11 -0
  143. package/dist/esm/navigator/navigator-header/index.js.map +1 -0
  144. package/dist/esm/navigator/navigator-header/style.scss +45 -0
  145. package/dist/esm/navigator/navigator-item-group/index.js +8 -0
  146. package/dist/esm/navigator/navigator-item-group/index.js.map +1 -0
  147. package/dist/esm/navigator/navigator-item-group/style.scss +28 -0
  148. package/dist/esm/navigator/navigator-listener/index.js +7 -0
  149. package/dist/esm/navigator/navigator-listener/index.js.map +1 -0
  150. package/dist/esm/navigator/navigator-screen/index.js +14 -0
  151. package/dist/esm/navigator/navigator-screen/index.js.map +1 -0
  152. package/dist/esm/navigator/navigator-screens/hooks/index.js +3 -0
  153. package/dist/esm/navigator/navigator-screens/hooks/index.js.map +1 -0
  154. package/dist/esm/navigator/navigator-screens/hooks/use-navigator-buttons.js +14 -0
  155. package/dist/esm/navigator/navigator-screens/hooks/use-navigator-buttons.js.map +1 -0
  156. package/dist/esm/navigator/navigator-screens/hooks/use-navigator-screens.js +11 -0
  157. package/dist/esm/navigator/navigator-screens/hooks/use-navigator-screens.js.map +1 -0
  158. package/dist/esm/navigator/navigator-screens/index.js +4 -0
  159. package/dist/esm/navigator/navigator-screens/index.js.map +1 -0
  160. package/dist/esm/navigator/navigator-screens/navigator-screens.js +15 -0
  161. package/dist/esm/navigator/navigator-screens/navigator-screens.js.map +1 -0
  162. package/dist/esm/navigator/navigator-screens/navigator-screens.scss +60 -0
  163. package/dist/esm/navigator/navigator-screens/types.js +2 -0
  164. package/dist/esm/navigator/navigator-screens/types.js.map +1 -0
  165. package/dist/esm/notice/index.js +9 -0
  166. package/dist/esm/notice/index.js.map +1 -0
  167. package/dist/esm/notice/style.scss +19 -0
  168. package/dist/esm/progress/index.js +8 -0
  169. package/dist/esm/progress/index.js.map +1 -0
  170. package/dist/esm/progress/style.scss +34 -0
  171. package/dist/esm/select-card-checkbox/index.js +14 -0
  172. package/dist/esm/select-card-checkbox/index.js.map +1 -0
  173. package/dist/esm/select-card-checkbox/style.scss +30 -0
  174. package/dist/esm/select-card-radio/index.js +15 -0
  175. package/dist/esm/select-card-radio/index.js.map +1 -0
  176. package/dist/esm/select-card-radio/style.scss +44 -0
  177. package/dist/esm/select-items/index.js +10 -0
  178. package/dist/esm/select-items/index.js.map +1 -0
  179. package/dist/esm/select-items/style.scss +96 -0
  180. package/dist/esm/select-items-alt/index.js +11 -0
  181. package/dist/esm/select-items-alt/index.js.map +1 -0
  182. package/dist/esm/select-items-alt/style.scss +72 -0
  183. package/dist/esm/sensei-logo/index.js +6 -0
  184. package/dist/esm/sensei-logo/index.js.map +1 -0
  185. package/dist/esm/setup-tailored-site-after-creation.js +103 -0
  186. package/dist/esm/setup-tailored-site-after-creation.js.map +1 -0
  187. package/dist/esm/step-container/index.js +62 -0
  188. package/dist/esm/step-container/index.js.map +1 -0
  189. package/dist/esm/step-container/style.scss +304 -0
  190. package/dist/esm/step-navigation-link/index.js +32 -0
  191. package/dist/esm/step-navigation-link/index.js.map +1 -0
  192. package/dist/esm/step-navigation-link/style.scss +42 -0
  193. package/dist/esm/titles/index.js +7 -0
  194. package/dist/esm/titles/index.js.map +1 -0
  195. package/dist/esm/titles/styles.scss +29 -0
  196. package/dist/esm/upload-and-set-site-logo.js +27 -0
  197. package/dist/esm/upload-and-set-site-logo.js.map +1 -0
  198. package/dist/esm/utils/contrastChecker.js +33 -0
  199. package/dist/esm/utils/contrastChecker.js.map +1 -0
  200. package/dist/esm/utils/domain-suggester.js +108 -0
  201. package/dist/esm/utils/domain-suggester.js.map +1 -0
  202. package/dist/esm/utils/flows.js +179 -0
  203. package/dist/esm/utils/flows.js.map +1 -0
  204. package/dist/esm/utils/index.js +6 -0
  205. package/dist/esm/utils/index.js.map +1 -0
  206. package/dist/esm/utils/is-domain.js +18 -0
  207. package/dist/esm/utils/is-domain.js.map +1 -0
  208. package/dist/esm/utils/use-data-loss-warning.js +16 -0
  209. package/dist/esm/utils/use-data-loss-warning.js.map +1 -0
  210. package/dist/esm/videopress-logo/index.js +6 -0
  211. package/dist/esm/videopress-logo/index.js.map +1 -0
  212. package/dist/styles/base-styles.scss +7 -0
  213. package/dist/styles/mixins.scss +262 -0
  214. package/dist/styles/variables.scss +26 -0
  215. package/dist/styles/z-index.scss +41 -0
  216. package/dist/tsconfig-cjs.tsbuildinfo +1 -0
  217. package/dist/tsconfig.tsbuildinfo +1 -0
  218. package/dist/types/action-buttons/index.d.ts +17 -0
  219. package/dist/types/action-buttons/index.d.ts.map +1 -0
  220. package/dist/types/cart/create-cart-manager-client.d.ts +3 -0
  221. package/dist/types/cart/create-cart-manager-client.d.ts.map +1 -0
  222. package/dist/types/cart/index.d.ts +47 -0
  223. package/dist/types/cart/index.d.ts.map +1 -0
  224. package/dist/types/confetti/index.d.ts +6 -0
  225. package/dist/types/confetti/index.d.ts.map +1 -0
  226. package/dist/types/feature-icon/index.d.ts +9 -0
  227. package/dist/types/feature-icon/index.d.ts.map +1 -0
  228. package/dist/types/flow-progress/index.d.ts +9 -0
  229. package/dist/types/flow-progress/index.d.ts.map +1 -0
  230. package/dist/types/flow-progress/use-flow-progress.d.ts +11 -0
  231. package/dist/types/flow-progress/use-flow-progress.d.ts.map +1 -0
  232. package/dist/types/hooray/index.d.ts +10 -0
  233. package/dist/types/hooray/index.d.ts.map +1 -0
  234. package/dist/types/index.d.ts +25 -0
  235. package/dist/types/index.d.ts.map +1 -0
  236. package/dist/types/intent-screen/index.d.ts +12 -0
  237. package/dist/types/intent-screen/index.d.ts.map +1 -0
  238. package/dist/types/mshots-image/index.d.ts +21 -0
  239. package/dist/types/mshots-image/index.d.ts.map +1 -0
  240. package/dist/types/navigator/hooks/index.d.ts +3 -0
  241. package/dist/types/navigator/hooks/index.d.ts.map +1 -0
  242. package/dist/types/navigator/hooks/use-navigator-listener.d.ts +4 -0
  243. package/dist/types/navigator/hooks/use-navigator-listener.d.ts.map +1 -0
  244. package/dist/types/navigator/index.d.ts +8 -0
  245. package/dist/types/navigator/index.d.ts.map +1 -0
  246. package/dist/types/navigator/navigator-buttons/index.d.ts +17 -0
  247. package/dist/types/navigator/navigator-buttons/index.d.ts.map +1 -0
  248. package/dist/types/navigator/navigator-header/index.d.ts +12 -0
  249. package/dist/types/navigator/navigator-header/index.d.ts.map +1 -0
  250. package/dist/types/navigator/navigator-item-group/index.d.ts +9 -0
  251. package/dist/types/navigator/navigator-item-group/index.d.ts.map +1 -0
  252. package/dist/types/navigator/navigator-listener/index.d.ts +7 -0
  253. package/dist/types/navigator/navigator-listener/index.d.ts.map +1 -0
  254. package/dist/types/navigator/navigator-screen/index.d.ts +11 -0
  255. package/dist/types/navigator/navigator-screen/index.d.ts.map +1 -0
  256. package/dist/types/navigator/navigator-screens/hooks/index.d.ts +3 -0
  257. package/dist/types/navigator/navigator-screens/hooks/index.d.ts.map +1 -0
  258. package/dist/types/navigator/navigator-screens/hooks/use-navigator-buttons.d.ts +4 -0
  259. package/dist/types/navigator/navigator-screens/hooks/use-navigator-buttons.d.ts.map +1 -0
  260. package/dist/types/navigator/navigator-screens/hooks/use-navigator-screens.d.ts +4 -0
  261. package/dist/types/navigator/navigator-screens/hooks/use-navigator-screens.d.ts.map +1 -0
  262. package/dist/types/navigator/navigator-screens/index.d.ts +4 -0
  263. package/dist/types/navigator/navigator-screens/index.d.ts.map +1 -0
  264. package/dist/types/navigator/navigator-screens/navigator-screens.d.ts +12 -0
  265. package/dist/types/navigator/navigator-screens/navigator-screens.d.ts.map +1 -0
  266. package/dist/types/navigator/navigator-screens/types.d.ts +17 -0
  267. package/dist/types/navigator/navigator-screens/types.d.ts.map +1 -0
  268. package/dist/types/notice/index.d.ts +7 -0
  269. package/dist/types/notice/index.d.ts.map +1 -0
  270. package/dist/types/progress/index.d.ts +10 -0
  271. package/dist/types/progress/index.d.ts.map +1 -0
  272. package/dist/types/select-card-checkbox/index.d.ts +11 -0
  273. package/dist/types/select-card-checkbox/index.d.ts.map +1 -0
  274. package/dist/types/select-card-radio/index.d.ts +22 -0
  275. package/dist/types/select-card-radio/index.d.ts.map +1 -0
  276. package/dist/types/select-items/index.d.ts +25 -0
  277. package/dist/types/select-items/index.d.ts.map +1 -0
  278. package/dist/types/select-items-alt/index.d.ts +19 -0
  279. package/dist/types/select-items-alt/index.d.ts.map +1 -0
  280. package/dist/types/sensei-logo/index.d.ts +8 -0
  281. package/dist/types/sensei-logo/index.d.ts.map +1 -0
  282. package/dist/types/setup-tailored-site-after-creation.d.ts +8 -0
  283. package/dist/types/setup-tailored-site-after-creation.d.ts.map +1 -0
  284. package/dist/types/step-container/index.d.ts +45 -0
  285. package/dist/types/step-container/index.d.ts.map +1 -0
  286. package/dist/types/step-navigation-link/index.d.ts +18 -0
  287. package/dist/types/step-navigation-link/index.d.ts.map +1 -0
  288. package/dist/types/titles/index.d.ts +12 -0
  289. package/dist/types/titles/index.d.ts.map +1 -0
  290. package/dist/types/upload-and-set-site-logo.d.ts +13 -0
  291. package/dist/types/upload-and-set-site-logo.d.ts.map +1 -0
  292. package/dist/types/utils/contrastChecker.d.ts +17 -0
  293. package/dist/types/utils/contrastChecker.d.ts.map +1 -0
  294. package/dist/types/utils/domain-suggester.d.ts +15 -0
  295. package/dist/types/utils/domain-suggester.d.ts.map +1 -0
  296. package/dist/types/utils/flows.d.ts +89 -0
  297. package/dist/types/utils/flows.d.ts.map +1 -0
  298. package/dist/types/utils/index.d.ts +6 -0
  299. package/dist/types/utils/index.d.ts.map +1 -0
  300. package/dist/types/utils/is-domain.d.ts +2 -0
  301. package/dist/types/utils/is-domain.d.ts.map +1 -0
  302. package/dist/types/utils/use-data-loss-warning.d.ts +2 -0
  303. package/dist/types/utils/use-data-loss-warning.d.ts.map +1 -0
  304. package/dist/types/videopress-logo/index.d.ts +8 -0
  305. package/dist/types/videopress-logo/index.d.ts.map +1 -0
  306. package/jest.config.js +5 -0
  307. package/package.json +63 -0
  308. package/src/action-buttons/index.tsx +113 -0
  309. package/src/action-buttons/style.scss +108 -0
  310. package/src/cart/create-cart-manager-client.ts +34 -0
  311. package/src/cart/index.tsx +375 -0
  312. package/src/cart/test/index.ts +172 -0
  313. package/src/confetti/index.tsx +95 -0
  314. package/src/feature-icon/index.tsx +102 -0
  315. package/src/flow-progress/index.tsx +22 -0
  316. package/src/flow-progress/style.scss +5 -0
  317. package/src/flow-progress/use-flow-progress.ts +108 -0
  318. package/src/hooray/index.tsx +34 -0
  319. package/src/hooray/style.scss +66 -0
  320. package/src/index.ts +36 -0
  321. package/src/intent-screen/README.md +12 -0
  322. package/src/intent-screen/index.tsx +26 -0
  323. package/src/intent-screen/test/index.tsx +197 -0
  324. package/src/mshots-image/index.tsx +368 -0
  325. package/src/mshots-image/style.scss +43 -0
  326. package/src/mshots-image/test/mshots-image.tsx +5 -0
  327. package/src/navigator/hooks/index.tsx +2 -0
  328. package/src/navigator/hooks/use-navigator-listener.tsx +18 -0
  329. package/src/navigator/index.ts +7 -0
  330. package/src/navigator/navigator-buttons/index.tsx +58 -0
  331. package/src/navigator/navigator-buttons/style.scss +47 -0
  332. package/src/navigator/navigator-header/index.tsx +40 -0
  333. package/src/navigator/navigator-header/style.scss +45 -0
  334. package/src/navigator/navigator-item-group/index.tsx +23 -0
  335. package/src/navigator/navigator-item-group/style.scss +28 -0
  336. package/src/navigator/navigator-listener/index.tsx +12 -0
  337. package/src/navigator/navigator-screen/index.tsx +24 -0
  338. package/src/navigator/navigator-screens/hooks/index.tsx +2 -0
  339. package/src/navigator/navigator-screens/hooks/use-navigator-buttons.tsx +32 -0
  340. package/src/navigator/navigator-screens/hooks/use-navigator-screens.tsx +57 -0
  341. package/src/navigator/navigator-screens/index.ts +3 -0
  342. package/src/navigator/navigator-screens/navigator-screens.scss +60 -0
  343. package/src/navigator/navigator-screens/navigator-screens.tsx +41 -0
  344. package/src/navigator/navigator-screens/types.ts +15 -0
  345. package/src/notice/index.tsx +16 -0
  346. package/src/notice/style.scss +19 -0
  347. package/src/progress/index.tsx +23 -0
  348. package/src/progress/style.scss +34 -0
  349. package/src/select-card-checkbox/index.tsx +38 -0
  350. package/src/select-card-checkbox/style.scss +30 -0
  351. package/src/select-card-radio/index.tsx +64 -0
  352. package/src/select-card-radio/style.scss +44 -0
  353. package/src/select-card-radio/test/index.tsx +50 -0
  354. package/src/select-items/README.md +13 -0
  355. package/src/select-items/index.tsx +90 -0
  356. package/src/select-items/style.scss +96 -0
  357. package/src/select-items-alt/README.md +13 -0
  358. package/src/select-items-alt/index.tsx +61 -0
  359. package/src/select-items-alt/style.scss +72 -0
  360. package/src/sensei-logo/index.tsx +30 -0
  361. package/src/setup-tailored-site-after-creation.ts +149 -0
  362. package/src/step-container/index.tsx +251 -0
  363. package/src/step-container/style.scss +304 -0
  364. package/src/step-navigation-link/index.tsx +71 -0
  365. package/src/step-navigation-link/style.scss +42 -0
  366. package/src/titles/index.tsx +36 -0
  367. package/src/titles/styles.scss +29 -0
  368. package/src/types.d.ts +1 -0
  369. package/src/upload-and-set-site-logo.ts +38 -0
  370. package/src/utils/contrastChecker.ts +52 -0
  371. package/src/utils/domain-suggester.ts +126 -0
  372. package/src/utils/flows.ts +232 -0
  373. package/src/utils/index.ts +5 -0
  374. package/src/utils/is-domain.ts +18 -0
  375. package/src/utils/test/domain-suggester.ts +87 -0
  376. package/src/utils/use-data-loss-warning.ts +17 -0
  377. package/src/videopress-logo/index.tsx +36 -0
  378. package/styles/base-styles.scss +7 -0
  379. package/styles/mixins.scss +262 -0
  380. package/styles/variables.scss +26 -0
  381. package/styles/z-index.scss +41 -0
  382. package/tsconfig-cjs.json +7 -0
  383. package/tsconfig.json +15 -0
@@ -0,0 +1,45 @@
1
+ import { TranslateResult } from 'i18n-calypso';
2
+ import { ReactElement } from 'react';
3
+ import './style.scss';
4
+ interface Props {
5
+ stepName: string;
6
+ stepSectionName?: string;
7
+ stepContent: ReactElement;
8
+ shouldHideNavButtons?: boolean;
9
+ shouldStickyNavButtons?: boolean;
10
+ hasStickyNavButtonsPadding?: boolean;
11
+ hideBack?: boolean;
12
+ hideSkip?: boolean;
13
+ hideNext?: boolean;
14
+ skipButtonAlign?: 'top' | 'bottom';
15
+ skipHeadingText?: string;
16
+ backLabelText?: TranslateResult;
17
+ skipLabelText?: TranslateResult;
18
+ nextLabelText?: TranslateResult;
19
+ formattedHeader?: ReactElement;
20
+ hideFormattedHeader?: boolean;
21
+ headerImageUrl?: string;
22
+ className?: string;
23
+ isLargeSkipLayout?: boolean;
24
+ isExternalBackUrl?: boolean;
25
+ headerButton?: ReactElement;
26
+ customizedActionButtons?: ReactElement;
27
+ isWideLayout?: boolean;
28
+ isExtraWideLayout?: boolean;
29
+ isFullLayout?: boolean;
30
+ isHorizontalLayout?: boolean;
31
+ goBack?: () => void;
32
+ goNext?: () => void;
33
+ flowName?: string;
34
+ intent?: string;
35
+ recordTracksEvent: (eventName: string, eventProperties: object) => void;
36
+ showHeaderJetpackPowered?: boolean;
37
+ showJetpackPowered?: boolean;
38
+ showHeaderWooCommercePowered?: boolean;
39
+ showFooterWooCommercePowered?: boolean;
40
+ showSenseiPowered?: boolean;
41
+ showVideoPressPowered?: boolean;
42
+ }
43
+ declare const StepContainer: React.FC<Props>;
44
+ export default StepContainer;
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/step-container/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAKrC,OAAO,cAAc,CAAC;AAEtB,UAAU,KAAK;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,YAAY,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,YAAY,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,CAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAM,IAAI,CAAC;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAE,KAAK,CAqMnC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { TranslateResult } from 'i18n-calypso';
3
+ import './style.scss';
4
+ interface Props {
5
+ direction: 'back' | 'forward';
6
+ handleClick?: () => void;
7
+ label?: TranslateResult;
8
+ hasBackIcon?: boolean;
9
+ hasForwardIcon?: boolean;
10
+ primary?: boolean;
11
+ borderless?: boolean;
12
+ cssClass?: string;
13
+ rel?: string;
14
+ recordClick?: () => void;
15
+ }
16
+ declare const StepNavigationLink: React.FC<Props>;
17
+ export default StepNavigationLink;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/step-navigation-link/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAC;AAC7D,OAAO,cAAc,CAAC;AAEtB,UAAU,KAAK;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAE,KAAK,CAkDxC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import './styles.scss';
3
+ type AllowedTagNames = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';
4
+ interface TitlesProps {
5
+ className?: string;
6
+ tagName?: AllowedTagNames;
7
+ children?: string | React.ReactNode;
8
+ }
9
+ export declare const Title: React.FunctionComponent<TitlesProps>;
10
+ export declare const SubTitle: React.FunctionComponent<TitlesProps>;
11
+ export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/titles/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,eAAe,CAAC;AAEvB,KAAK,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AACrE,UAAU,WAAW;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;CACpC;AAGD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAE,WAAW,CAUtD,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAE,WAAW,CAUzD,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function uploadAndSetSiteLogo(siteId: string | number | undefined, file: File): Promise<{
2
+ logoResult: {
3
+ id: number;
4
+ url: string;
5
+ };
6
+ uploadResult: {
7
+ media?: [{
8
+ ID: number;
9
+ URL: string;
10
+ }] | undefined;
11
+ };
12
+ }>;
13
+ //# sourceMappingURL=upload-and-set-site-logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-and-set-site-logo.d.ts","sourceRoot":"","sources":["../../src/upload-and-set-site-logo.ts"],"names":[],"mappings":"AAEA,wBAAsB,oBAAoB,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI;;YAqBpF,MAAM;aACL,MAAM;;;;gBAhBN,MAAM;iBACL,MAAM;;;GA4Bd"}
@@ -0,0 +1,17 @@
1
+ export type RGB = {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ };
6
+ export declare const hasMinContrast: (textColorRgb: RGB, bgColorRgb?: {
7
+ r: number;
8
+ g: number;
9
+ b: number;
10
+ }, minContrastRatio?: number) => boolean;
11
+ export declare const hexToRgb: (hex: string) => {
12
+ r: number;
13
+ g: number;
14
+ b: number;
15
+ a: number;
16
+ };
17
+ //# sourceMappingURL=contrastChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contrastChecker.d.ts","sourceRoot":"","sources":["../../../src/utils/contrastChecker.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV,CAAC;AAoBF,eAAO,MAAM,cAAc,iBACZ,GAAG;;;;iCAGf,OAKF,CAAC;AAGF,eAAO,MAAM,QAAQ,QAAU,MAAM;;;;;CAepC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare const extractDomainWithExtension: (email: string) => string | undefined;
2
+ /**
3
+ * Suggests a correction for an email address.
4
+ * @param {string} inputDomain - The email address to be corrected.
5
+ * @param {number} maxDistance - The maximum Levenshtein distance between the input and the suggestion.
6
+ */
7
+ export declare const suggestEmailCorrection: (inputDomain: string, maxDistance?: number) => {
8
+ oldEmail: string;
9
+ oldDomain: string | undefined;
10
+ newDomain: string | null;
11
+ newEmail: string | null;
12
+ distance: number;
13
+ wasCorrected: boolean;
14
+ };
15
+ //# sourceMappingURL=domain-suggester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-suggester.d.ts","sourceRoot":"","sources":["../../../src/utils/domain-suggester.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,0BAA0B,UAAY,MAAM,uBASxD,CAAC;AAyDF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAAkB,MAAM,gBAAe,MAAM;;;;;;;CAmC/E,CAAC"}
@@ -0,0 +1,89 @@
1
+ export declare const ACCOUNT_FLOW = "account";
2
+ export declare const AI_ASSEMBLER_FLOW = "ai-assembler";
3
+ export declare const NEWSLETTER_FLOW = "newsletter";
4
+ export declare const NEWSLETTER_POST_SETUP_FLOW = "newsletter-post-setup";
5
+ export declare const HOSTING_LP_FLOW = "hosting-start";
6
+ export declare const NEW_HOSTED_SITE_FLOW = "new-hosted-site";
7
+ export declare const NEW_HOSTED_SITE_FLOW_USER_INCLUDED = "new-hosted-site-user-included";
8
+ export declare const TRANSFERRING_HOSTED_SITE_FLOW = "transferring-hosted-site";
9
+ export declare const LINK_IN_BIO_FLOW = "link-in-bio";
10
+ export declare const LINK_IN_BIO_TLD_FLOW = "link-in-bio-tld";
11
+ export declare const LINK_IN_BIO_POST_SETUP_FLOW = "link-in-bio-post-setup";
12
+ export declare const CONNECT_DOMAIN_FLOW = "connect-domain";
13
+ export declare const VIDEOPRESS_FLOW = "videopress";
14
+ export declare const VIDEOPRESS_ACCOUNT = "videopress-account";
15
+ export declare const VIDEOPRESS_TV_FLOW = "videopress-tv";
16
+ export declare const VIDEOPRESS_TV_PURCHASE_FLOW = "videopress-tv-purchase";
17
+ export declare const IMPORT_FOCUSED_FLOW = "import-focused";
18
+ export declare const IMPORT_HOSTED_SITE_FLOW = "import-hosted-site";
19
+ export declare const SENSEI_FLOW = "sensei";
20
+ export declare const ECOMMERCE_FLOW = "ecommerce";
21
+ export declare const ENTREPRENEUR_FLOW = "entrepreneur";
22
+ export declare const WOOEXPRESS_FLOW = "wooexpress";
23
+ export declare const FREE_FLOW = "free";
24
+ export declare const FREE_POST_SETUP_FLOW = "free-post-setup";
25
+ export declare const MIGRATION_FLOW = "import-focused";
26
+ export declare const SITE_MIGRATION_FLOW = "site-migration";
27
+ export declare const MIGRATION_SIGNUP_FLOW = "migration-signup";
28
+ export declare const HOSTED_SITE_MIGRATION_FLOW = "hosted-site-migration";
29
+ export declare const COPY_SITE_FLOW = "copy-site";
30
+ export declare const BUILD_FLOW = "build";
31
+ export declare const WRITE_FLOW = "write";
32
+ export declare const START_WRITING_FLOW = "start-writing";
33
+ export declare const DESIGN_FIRST_FLOW = "design-first";
34
+ export declare const SITE_SETUP_FLOW = "site-setup";
35
+ export declare const WITH_THEME_FLOW = "with-theme";
36
+ export declare const WITH_THEME_ASSEMBLER_FLOW = "with-theme-assembler";
37
+ export declare const ASSEMBLER_FIRST_FLOW = "assembler-first";
38
+ export declare const READYMADE_TEMPLATE_FLOW = "readymade-template";
39
+ export declare const UPDATE_DESIGN_FLOW = "update-design";
40
+ export declare const DOMAIN_UPSELL_FLOW = "domain-upsell";
41
+ export declare const DOMAIN_TRANSFER = "domain-transfer";
42
+ export declare const GOOGLE_TRANSFER = "google-transfer";
43
+ export declare const HUNDRED_YEAR_PLAN_FLOW = "hundred-year-plan";
44
+ export declare const REBLOGGING_FLOW = "reblogging";
45
+ export declare const DOMAIN_FOR_GRAVATAR_FLOW = "domain-for-gravatar";
46
+ export declare const ONBOARDING_GUIDED_FLOW = "onboarding";
47
+ export declare const EMAIL_SUBSCRIPTION_FLOW = "email-subscription";
48
+ export declare const isLinkInBioFlow: (flowName: string | null | undefined) => boolean;
49
+ export declare const isNewsletterFlow: (flowName: string | null) => boolean;
50
+ export declare const isFreeFlow: (flowName: string | null) => boolean;
51
+ export declare const isNewsletterOrLinkInBioFlow: (flowName: string | null) => boolean;
52
+ export declare const isTailoredSignupFlow: (flowName: string | null) => boolean;
53
+ export declare const isEntrepreneurSignupFlow: (flowName: string | null) => boolean;
54
+ export declare const isHostingSignupFlow: (flowName: string | null) => boolean;
55
+ export declare const isNewHostedSiteCreationFlow: (flowName: string | null) => boolean;
56
+ export declare const isTransferringHostedSiteCreationFlow: (flowName: string | null) => boolean;
57
+ export declare const isAnyHostingFlow: (flowName?: string | null) => boolean;
58
+ export declare const isAnyMigrationFlow: (flowName?: string | null) => boolean;
59
+ export declare const isMigrationFlow: (flowName: string | null) => boolean;
60
+ export declare const isCopySiteFlow: (flowName: string | null) => boolean;
61
+ export declare const isEntrepreneurFlow: (flowName: string | null) => boolean;
62
+ export declare const isWooExpressFlow: (flowName: string | null) => boolean;
63
+ export declare const isNewSiteMigrationFlow: (flowName: string | null) => boolean;
64
+ export declare const isMigrationSignupFlow: (flowName: string | null) => boolean;
65
+ export declare const isHostedSiteMigrationFlow: (flowName: string | null) => boolean;
66
+ export declare const isBuildFlow: (flowName: string | null) => boolean;
67
+ export declare const isWriteFlow: (flowName: string | null) => boolean;
68
+ export declare const isUpdateDesignFlow: (flowName: string | null) => boolean;
69
+ export declare const isStartWritingFlow: (flowName: string | null) => boolean;
70
+ export declare const isDesignFirstFlow: (flowName: string | null) => boolean;
71
+ export declare const isBlogOnboardingFlow: (flowName: string | null) => boolean;
72
+ export declare const isOnboardingGuidedFlow: (flowName: string | null) => boolean;
73
+ export declare const isDomainUpsellFlow: (flowName: string | null) => boolean;
74
+ export declare const isSiteAssemblerFlow: (flowName: string | null) => boolean;
75
+ export declare const isReadymadeFlow: (flowName: string | null) => boolean;
76
+ export declare const isWithThemeAssemblerFlow: (flowName: string | null) => boolean;
77
+ export declare const isWithThemeFlow: (flowName: string | null) => boolean;
78
+ export declare const isSiteSetupFlow: (flowName: string | null) => boolean;
79
+ export declare const isSenseiFlow: (flowName: string | null) => boolean;
80
+ export declare const ecommerceFlowRecurTypes: {
81
+ YEARLY: string;
82
+ MONTHLY: string;
83
+ '2Y': string;
84
+ '3Y': string;
85
+ };
86
+ export declare const isVideoPressFlow: (flowName: string | null) => boolean;
87
+ export declare const isVideoPressTVFlow: (flowName: string | null | undefined) => boolean;
88
+ export declare const isDomainForGravatarFlow: (flowName: string | null | undefined) => boolean;
89
+ //# sourceMappingURL=flows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../../src/utils/flows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './contrastChecker';
2
+ export * from './flows';
3
+ export * from './use-data-loss-warning';
4
+ export { doesStringResembleDomain } from './is-domain';
5
+ export { suggestEmailCorrection, extractDomainWithExtension } from './domain-suggester';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function doesStringResembleDomain(domainOrProduct: string): boolean;
2
+ //# sourceMappingURL=is-domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-domain.d.ts","sourceRoot":"","sources":["../../../src/utils/is-domain.ts"],"names":[],"mappings":"AAAA,wBAAgB,wBAAwB,CAAE,eAAe,EAAE,MAAM,GAAI,OAAO,CAiB3E"}
@@ -0,0 +1,2 @@
1
+ export declare function useDataLossWarning(enabled: boolean): void;
2
+ //# sourceMappingURL=use-data-loss-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-data-loss-warning.d.ts","sourceRoot":"","sources":["../../../src/utils/use-data-loss-warning.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAE,OAAO,EAAE,OAAO,QAcnD"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ type Props = {
3
+ className?: string;
4
+ size?: number;
5
+ };
6
+ declare const VideoPressLogo: React.FunctionComponent<Props>;
7
+ export default VideoPressLogo;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/videopress-logo/index.tsx"],"names":[],"mappings":";AAAA,KAAK,KAAK,GAAG;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAE,KAAK,CA4BnD,CAAC;AAEF,eAAe,cAAc,CAAC"}
package/jest.config.js ADDED
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ preset: '../../test/packages/jest-preset.js',
3
+ testEnvironment: 'jsdom',
4
+ transformIgnorePatterns: [ 'node_modules/(?!gridicons)(?!.*\\.svg)' ],
5
+ };
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@automattic/onboarding",
3
+ "version": "1.0.0",
4
+ "description": "Onboarding components for WordPress.com.",
5
+ "homepage": "https://github.com/Automattic/wp-calypso",
6
+ "license": "GPL-2.0-or-later",
7
+ "author": "Automattic Inc.",
8
+ "main": "dist/cjs/index.js",
9
+ "module": "dist/esm/index.js",
10
+ "calypso:src": "src/index.ts",
11
+ "sideEffects": [
12
+ "*.css",
13
+ "*.scss"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/Automattic/wp-calypso.git",
18
+ "directory": "packages/onboarding"
19
+ },
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "bugs": "https://github.com/Automattic/wp-calypso/issues",
24
+ "types": "dist/types",
25
+ "scripts": {
26
+ "clean": "tsc --build ./tsconfig.json ./tsconfig-cjs.json --clean && rm -rf dist",
27
+ "build": "tsc --build ./tsconfig.json ./tsconfig-cjs.json && yarn run -T copy-assets && npx copyfiles ./styles/** dist",
28
+ "prepack": "yarn run clean && yarn run build",
29
+ "watch": "tsc --build ./tsconfig.json --watch"
30
+ },
31
+ "dependencies": {
32
+ "@automattic/calypso-config": "^1.0.0-alpha.0",
33
+ "@automattic/components": "^2.1.1",
34
+ "@automattic/data-stores": "^3.0.1",
35
+ "@wordpress/components": "^28.2.0",
36
+ "@wordpress/data": "^10.2.0",
37
+ "@wordpress/icons": "^10.2.0",
38
+ "@wordpress/react-i18n": "^4.2.0",
39
+ "clsx": "^2.1.1",
40
+ "react-router-dom": "^6.23.1",
41
+ "tslib": "^2.5.0",
42
+ "wpcom-proxy-request": "^7.0.5"
43
+ },
44
+ "devDependencies": {
45
+ "@automattic/calypso-typescript-config": "^1.0.0",
46
+ "@automattic/typography": "^1.0.0",
47
+ "@testing-library/react": "^15.0.7",
48
+ "@wordpress/base-styles": "^5.2.0",
49
+ "copyfiles": "^2.3.0",
50
+ "css-loader": "^3.6.0",
51
+ "react": "^18.2.0",
52
+ "react-dom": "^18.2.0",
53
+ "redux": "^4.2.1",
54
+ "sass-loader": "^10.1.1",
55
+ "style-loader": "^1.3.0",
56
+ "typescript": "^5.3.3",
57
+ "webpack": "^5.91.0"
58
+ },
59
+ "peerDependencies": {
60
+ "@wordpress/i18n": "^5.2.0",
61
+ "react": "^18.2.0"
62
+ }
63
+ }
@@ -0,0 +1,113 @@
1
+ import { Button } from '@wordpress/components';
2
+ import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
3
+ import { useI18n } from '@wordpress/react-i18n';
4
+ import clsx from 'clsx';
5
+ import * as React from 'react';
6
+
7
+ import './style.scss';
8
+
9
+ interface ActionButtonsProps {
10
+ className?: string;
11
+ sticky?: boolean | null;
12
+ children?: React.ReactNode;
13
+ }
14
+
15
+ const ActionButtons: React.FunctionComponent< ActionButtonsProps > = ( {
16
+ className,
17
+ children,
18
+ sticky = null,
19
+ } ) => {
20
+ // if null, auto-stick (stick when small).
21
+ // if true, always stick.
22
+ // if false, never stick.
23
+ let stickyClass = '';
24
+ if ( sticky === true ) {
25
+ stickyClass = 'is-sticky';
26
+ }
27
+ if ( sticky === false ) {
28
+ stickyClass = 'no-sticky';
29
+ }
30
+
31
+ return <div className={ clsx( 'action-buttons', className, stickyClass ) }>{ children }</div>;
32
+ };
33
+
34
+ export default ActionButtons;
35
+
36
+ export const BackButton: React.FunctionComponent< React.ComponentProps< typeof Button > > = ( {
37
+ className,
38
+ children,
39
+ ...buttonProps
40
+ } ) => {
41
+ const { __ } = useI18n();
42
+
43
+ return (
44
+ <Button
45
+ className={ clsx( 'action_buttons__button action-buttons__back', className ) }
46
+ variant="link"
47
+ { ...buttonProps }
48
+ >
49
+ { children ||
50
+ /* translators: Button label for going to previous step in onboarding */
51
+ __( 'Go back', __i18n_text_domain__ ) }
52
+ </Button>
53
+ );
54
+ };
55
+
56
+ export const NextButton: React.FunctionComponent< React.ComponentProps< typeof Button > > = ( {
57
+ className,
58
+ children,
59
+ ...buttonProps
60
+ } ) => {
61
+ const { __ } = useI18n();
62
+
63
+ return (
64
+ <Button
65
+ className={ clsx( 'button action_buttons__button action-buttons__next', className ) }
66
+ variant="primary"
67
+ { ...buttonProps }
68
+ >
69
+ { children ||
70
+ /* translators: Button label for advancing to next step in onboarding */
71
+ __( 'Continue', __i18n_text_domain__ ) }
72
+ </Button>
73
+ );
74
+ };
75
+
76
+ export const SkipButton: React.FunctionComponent< React.ComponentProps< typeof Button > > = ( {
77
+ className,
78
+ children,
79
+ ...buttonProps
80
+ } ) => {
81
+ const { __ } = useI18n();
82
+
83
+ return (
84
+ <Button
85
+ className={ clsx( 'action_buttons__button action-buttons__skip', className ) }
86
+ { ...buttonProps }
87
+ >
88
+ { children ||
89
+ /* translators: Button label for skipping a step in onboarding */
90
+ __( 'Skip for now', __i18n_text_domain__ ) }
91
+ </Button>
92
+ );
93
+ };
94
+
95
+ export const ArrowButton: React.FunctionComponent<
96
+ React.ComponentProps< typeof Button > & {
97
+ arrow: 'left' | 'right';
98
+ }
99
+ > = ( { className, children, arrow = 'right', ...buttonProps } ) => {
100
+ return (
101
+ <Button
102
+ className={ clsx(
103
+ `action_buttons__button action-buttons__arrow action-buttons__arrow--${ arrow }`,
104
+ className
105
+ ) }
106
+ { ...buttonProps }
107
+ >
108
+ { arrow === 'left' && <Icon icon={ chevronLeft } /> }
109
+ { children }
110
+ { arrow === 'right' && <Icon icon={ chevronRight } /> }
111
+ </Button>
112
+ );
113
+ };
@@ -0,0 +1,108 @@
1
+ @import "../../styles/variables.scss";
2
+ @import "../../styles/mixins.scss";
3
+ @import "../../styles/z-index.scss";
4
+
5
+ .action-buttons {
6
+ padding: 0 20px;
7
+ border-top: 1px solid $gray-200;
8
+ background-color: $white;
9
+ position: fixed;
10
+ bottom: 0;
11
+ right: 0;
12
+ left: 0;
13
+ height: $onboarding-footer-height;
14
+ justify-content: space-between;
15
+ display: flex;
16
+ align-items: center;
17
+ z-index: onboarding-z-index(".onboarding__footer");
18
+
19
+ @mixin unstick {
20
+ padding: 0;
21
+ margin-left: 20px;
22
+ position: static;
23
+ border: none;
24
+
25
+ .action_buttons__button {
26
+ margin-left: 20px;
27
+
28
+ &:first-child {
29
+ margin-left: 0;
30
+ }
31
+ }
32
+ }
33
+
34
+ &:not(.is-sticky) {
35
+ @include break-small {
36
+ @include unstick;
37
+ }
38
+ }
39
+
40
+ &.no-sticky {
41
+ @include unstick;
42
+ }
43
+ }
44
+
45
+ button.action_buttons__button.components-button {
46
+ @include onboarding-medium-text;
47
+ height: 42px;
48
+ min-width: 120px;
49
+ justify-content: center;
50
+
51
+ &:active,
52
+ &:hover,
53
+ &:focus {
54
+ outline-color: transparent;
55
+ }
56
+
57
+ &:disabled {
58
+ opacity: 0.5;
59
+ }
60
+
61
+ &.action-buttons__back {
62
+ color: var(--studio-gray-50);
63
+ white-space: nowrap;
64
+ min-width: 0;
65
+ height: auto;
66
+ }
67
+
68
+ &.action-buttons__skip {
69
+ color: var(--studio-gray-50);
70
+ box-shadow: inset 0 0 0 1px var(--studio-gray-50);
71
+
72
+ &:active,
73
+ &:hover {
74
+ color: var(--studio-gray-60);
75
+ box-shadow: inset 0 0 0 1px var(--studio-gray-60);
76
+ }
77
+
78
+ &:focus {
79
+ color: var(--studio-gray-60);
80
+ box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--highlightColor);
81
+ }
82
+ }
83
+
84
+ &.action-buttons__arrow {
85
+ justify-content: flex-start;
86
+
87
+ text-decoration: underline;
88
+ font-weight: 600;
89
+ color: var(--mainColor);
90
+
91
+ // @TODO: We have to revisit the ArrowButton's padding when we pick up #48568 (https://github.com/Automattic/wp-calypso/issues/48568)
92
+ padding: 0;
93
+ margin-right: 0;
94
+
95
+ @include break-medium {
96
+ justify-content: flex-end;
97
+ }
98
+
99
+ svg {
100
+ // The viewbox has a 5px margin and we have to crop it to align it with the ArrowButton's copy properly.
101
+ margin: 0 -5px -4px;
102
+ }
103
+ }
104
+
105
+ @include break-small {
106
+ min-width: 160px;
107
+ }
108
+ }
@@ -0,0 +1,34 @@
1
+ import { createShoppingCartManagerClient } from '@automattic/shopping-cart';
2
+ import wpcomRequest from 'wpcom-proxy-request';
3
+ import type {
4
+ RequestCart,
5
+ CartKey,
6
+ ResponseCart,
7
+ ResponseCartProduct,
8
+ } from '@automattic/shopping-cart';
9
+
10
+ const wpcomGetCart = ( cartKey: CartKey ) => {
11
+ let source;
12
+ try {
13
+ source = window?.location?.pathname;
14
+ } catch {
15
+ // Ignore failures here if window is not present.
16
+ }
17
+ return wpcomRequest< ResponseCart< ResponseCartProduct > >( {
18
+ path: `/me/shopping-cart/${ cartKey }?source=${ source ?? 'unknown' }`,
19
+ method: 'GET',
20
+ apiVersion: '1.1',
21
+ } );
22
+ };
23
+ const wpcomSetCart = ( cartKey: CartKey, cartData: RequestCart ) =>
24
+ wpcomRequest< ResponseCart< ResponseCartProduct > >( {
25
+ path: `/me/shopping-cart/${ cartKey }`,
26
+ apiVersion: '1.1',
27
+ method: 'POST',
28
+ body: cartData,
29
+ } );
30
+
31
+ export default createShoppingCartManagerClient( {
32
+ getCart: wpcomGetCart,
33
+ setCart: wpcomSetCart,
34
+ } );