richie-education 2.24.1 → 2.25.0-b2.dev20

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 (438) hide show
  1. package/.eslintignore +2 -0
  2. package/.nvmrc +1 -1
  3. package/.prettierignore +2 -0
  4. package/.storybook/preview-body.html +1 -1
  5. package/.storybook/preview.tsx +5 -2
  6. package/cunningham.cjs +52 -43
  7. package/i18n/locales/ar-SA.json +500 -100
  8. package/i18n/locales/es-ES.json +500 -100
  9. package/i18n/locales/fa-IR.json +500 -100
  10. package/i18n/locales/fr-CA.json +564 -164
  11. package/i18n/locales/fr-FR.json +517 -117
  12. package/i18n/locales/ko-KR.json +500 -100
  13. package/i18n/locales/pt-PT.json +526 -126
  14. package/i18n/locales/ru-RU.json +500 -100
  15. package/i18n/locales/vi-VN.json +1734 -0
  16. package/jest/setup.ts +1 -1
  17. package/js/api/enrollment.ts +1 -1
  18. package/js/api/joanie.spec.ts +63 -2
  19. package/js/api/joanie.ts +172 -135
  20. package/js/api/lms/dummy.ts +48 -7
  21. package/js/api/lms/joanie.spec.ts +49 -31
  22. package/js/api/lms/joanie.ts +53 -35
  23. package/js/api/lms/openedx-hawthorn.spec.ts +27 -11
  24. package/js/api/lms/openedx-hawthorn.ts +7 -6
  25. package/js/components/AddressesManagement/AddressForm/index.spec.tsx +157 -0
  26. package/js/components/AddressesManagement/AddressForm/index.stories.tsx +36 -0
  27. package/js/components/AddressesManagement/AddressForm/index.tsx +163 -0
  28. package/js/components/AddressesManagement/{validationSchema.ts → AddressForm/validationSchema.ts} +1 -23
  29. package/js/components/AddressesManagement/_styles.scss +1 -1
  30. package/js/components/AddressesManagement/index.spec.tsx +171 -202
  31. package/js/components/AddressesManagement/index.stories.tsx +29 -0
  32. package/js/components/AddressesManagement/index.tsx +11 -3
  33. package/js/components/Badge/index.spec.tsx +17 -0
  34. package/js/components/Badge/index.stories.tsx +22 -0
  35. package/js/components/Badge/index.tsx +17 -0
  36. package/js/components/Banner/index.tsx +6 -1
  37. package/js/components/ContractFrame/AbstractContractFrame.spec.tsx +323 -0
  38. package/js/components/ContractFrame/AbstractContractFrame.tsx +278 -0
  39. package/js/components/ContractFrame/LearnerContractFrame.spec.tsx +125 -0
  40. package/js/components/ContractFrame/LearnerContractFrame.tsx +42 -0
  41. package/js/components/ContractFrame/OrganizationContractFrame.spec.tsx +201 -0
  42. package/js/components/ContractFrame/OrganizationContractFrame.tsx +62 -0
  43. package/js/components/ContractFrame/_styles.scss +62 -0
  44. package/js/components/ContractFrame/iframe-manager.js +158 -0
  45. package/js/components/ContractFrame/index.ts +5 -0
  46. package/js/components/ContractStatus/index.spec.tsx +120 -0
  47. package/js/components/ContractStatus/index.tsx +67 -0
  48. package/js/components/CourseGlimpse/CourseGlimpseFooter.tsx +7 -7
  49. package/js/components/CourseGlimpse/index.spec.tsx +1 -0
  50. package/js/components/CourseGlimpse/index.tsx +22 -3
  51. package/js/components/CourseGlimpse/utils.ts +27 -16
  52. package/js/components/CourseGlimpseList/utils.ts +3 -2
  53. package/js/components/DownloadCertificateButton/index.tsx +58 -0
  54. package/js/components/DownloadContractButton/index.spec.tsx +142 -0
  55. package/js/components/DownloadContractButton/index.tsx +53 -0
  56. package/js/components/Form/CountrySelectField.tsx +28 -16
  57. package/js/components/Form/Input/index.spec.tsx +76 -0
  58. package/js/components/Form/Input/index.tsx +47 -0
  59. package/js/components/Form/Select/index.spec.tsx +99 -0
  60. package/js/components/Form/Select/index.tsx +43 -0
  61. package/js/components/{AddressesManagement → Form}/ValidationErrors.ts +10 -5
  62. package/js/components/Form/index.ts +5 -1
  63. package/js/components/Form/messages.ts +14 -0
  64. package/js/components/Form/test-utils.ts +19 -0
  65. package/js/components/Form/utils.spec.ts +72 -0
  66. package/js/components/Form/utils.ts +37 -0
  67. package/js/components/Icon/index.stories.tsx +2 -1
  68. package/js/components/Modal/_styles.scss +0 -8
  69. package/js/components/Modal/index.tsx +23 -17
  70. package/js/components/PaymentButton/_styles.scss +26 -0
  71. package/js/{widgets/CourseProductItem → components/PaymentButton}/components/PaymentInterfaces/Dummy.tsx +1 -1
  72. package/js/{widgets/CourseProductItem → components/PaymentButton}/components/PaymentInterfaces/PayplugLightbox.tsx +30 -7
  73. package/js/{widgets/CourseProductItem → components/PaymentButton}/components/PaymentInterfaces/__mocks__/index.tsx +1 -1
  74. package/js/{widgets/CourseProductItem → components/PaymentButton}/components/PaymentInterfaces/index.spec.tsx +5 -3
  75. package/js/{widgets/CourseProductItem → components/PaymentButton}/components/PaymentInterfaces/index.tsx +7 -5
  76. package/js/components/PaymentButton/hooks/useTerms.tsx +85 -0
  77. package/js/components/PaymentButton/index.spec.tsx +979 -0
  78. package/js/{widgets/CourseProductItem/components → components}/PaymentButton/index.tsx +101 -38
  79. package/js/components/PurchaseButton/index.spec.tsx +384 -0
  80. package/js/components/PurchaseButton/index.stories.tsx +15 -0
  81. package/js/{widgets/CourseProductItem/components → components}/PurchaseButton/index.tsx +69 -23
  82. package/js/components/PurchaseButton/styles.scss +7 -0
  83. package/js/components/RegisteredAddress/_styles.scss +1 -3
  84. package/js/components/RegisteredAddress/index.spec.tsx +1 -1
  85. package/js/components/RegisteredAddress/index.stories.tsx +40 -0
  86. package/js/components/RegisteredAddress/index.tsx +16 -18
  87. package/js/components/SaleTunnel/_styles.scss +11 -0
  88. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/RegisteredCreditCard/index.tsx +4 -10
  89. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepPayment/_styles.scss +7 -0
  90. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepPayment/index.spec.tsx +81 -61
  91. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepPayment/index.tsx +53 -56
  92. package/js/components/SaleTunnel/components/SaleTunnelStepResume/_styles.scss +63 -0
  93. package/js/components/SaleTunnel/components/SaleTunnelStepResume/index.spec.tsx +83 -0
  94. package/js/components/SaleTunnel/components/SaleTunnelStepResume/index.tsx +88 -0
  95. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepValidation/CourseRunsList.tsx +6 -2
  96. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepValidation/_styles.scss +5 -0
  97. package/js/components/SaleTunnel/components/SaleTunnelStepValidation/index.spec.tsx +170 -0
  98. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepValidation/index.tsx +41 -10
  99. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/StepBreadcrumb/index.spec.tsx +1 -1
  100. package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/StepBreadcrumb/index.tsx +1 -1
  101. package/js/components/SaleTunnel/context.tsx +45 -0
  102. package/js/{widgets/CourseProductItem/components → components}/SaleTunnel/index.spec.tsx +27 -15
  103. package/js/{widgets/CourseProductItem/components → components}/SaleTunnel/index.tsx +90 -24
  104. package/js/components/SignContractButton/index.omniscientOrders.spec.tsx +141 -0
  105. package/js/components/SignContractButton/index.spec.tsx +219 -0
  106. package/js/components/SignContractButton/index.tsx +97 -0
  107. package/js/components/SuccessIcon/_styles.scss +66 -0
  108. package/js/components/SuccessIcon/index.tsx +10 -0
  109. package/js/components/TeacherDashboardCourseList/_styles.scss +0 -1
  110. package/js/components/TeacherDashboardCourseList/index.spec.tsx +4 -4
  111. package/js/components/TeacherDashboardCourseList/index.tsx +4 -10
  112. package/js/contexts/JoanieApiContext/index.spec.tsx +1 -1
  113. package/js/contexts/SessionContext/BaseSessionProvider.tsx +9 -11
  114. package/js/contexts/SessionContext/JoanieSessionProvider.spec.tsx +14 -0
  115. package/js/contexts/SessionContext/JoanieSessionProvider.tsx +30 -24
  116. package/js/contexts/SessionContext/index.spec.tsx +4 -3
  117. package/js/hooks/useBreadcrumbsPlaceholders.tsx +1 -1
  118. package/js/hooks/useContractAbilities/index.spec.ts +27 -0
  119. package/js/hooks/useContractAbilities/index.ts +8 -0
  120. package/js/hooks/useContracts/index.tsx +29 -0
  121. package/js/hooks/useCourseProductRelation/index.ts +8 -5
  122. package/js/hooks/useCourseProductUnion/index.spec.tsx +14 -10
  123. package/js/hooks/useCourseProductUnion/index.ts +1 -1
  124. package/js/hooks/useCourseProducts.ts +45 -0
  125. package/js/hooks/useCourseSearchParams/computeNewFilterValue.ts +3 -3
  126. package/js/hooks/useCourses/index.spec.tsx +2 -2
  127. package/js/hooks/useCourses/index.ts +4 -4
  128. package/js/hooks/useCreditCards/index.spec.tsx +4 -4
  129. package/js/hooks/useDashboardAddressForm.tsx +85 -87
  130. package/js/hooks/useDownloadCertificate/index.spec.tsx +3 -2
  131. package/js/hooks/useEnrollments.ts +1 -1
  132. package/js/hooks/useJoanieUserAbilities/index.not.isJoanieEnabled.spec.tsx +17 -0
  133. package/js/hooks/useJoanieUserAbilities/index.spec.tsx +68 -0
  134. package/js/hooks/useJoanieUserAbilities/index.tsx +11 -0
  135. package/js/hooks/useJoanieUserProfile.tsx +34 -0
  136. package/js/hooks/useOrders.ts +64 -26
  137. package/js/hooks/useOrganizations/index.ts +1 -1
  138. package/js/hooks/useProductOrder/index.spec.tsx +113 -0
  139. package/js/hooks/useProductOrder/index.tsx +33 -0
  140. package/js/hooks/useResources/index.spec.tsx +30 -29
  141. package/js/hooks/useResources/index.tsx +11 -4
  142. package/js/hooks/useResources/useResourcesOmniscient.ts +2 -2
  143. package/js/hooks/useResources/useResourcesRoot.ts +21 -17
  144. package/js/hooks/useUnionResource/index.spec.tsx +5 -2
  145. package/js/hooks/useUnionResource/index.ts +1 -1
  146. package/js/hooks/useUnionResource/utils/fetchEntity.ts +5 -4
  147. package/js/index.tsx +2 -2
  148. package/js/pages/DashboardAddressesManagement/DashboardAddressBox.tsx +1 -1
  149. package/js/pages/DashboardAddressesManagement/DashboardCreateAddress.spec.tsx +79 -72
  150. package/js/pages/DashboardAddressesManagement/DashboardCreateAddress.tsx +4 -4
  151. package/js/pages/DashboardAddressesManagement/DashboardEditAddress.spec.tsx +32 -23
  152. package/js/pages/DashboardAddressesManagement/DashboardEditAddress.tsx +6 -6
  153. package/js/pages/DashboardAddressesManagement/DashboardEditAddressLoader.tsx +2 -2
  154. package/js/pages/DashboardAddressesManagement/index.spec.tsx +4 -3
  155. package/js/pages/DashboardAddressesManagement/index.tsx +5 -5
  156. package/js/pages/DashboardCertificates/index.spec.tsx +3 -2
  157. package/js/pages/DashboardCertificates/index.tsx +2 -1
  158. package/js/pages/DashboardContracts/_styles.scss +8 -0
  159. package/js/pages/DashboardContracts/index.spec.tsx +154 -0
  160. package/js/pages/DashboardContracts/index.tsx +76 -0
  161. package/js/pages/DashboardCourses/index.spec.tsx +81 -61
  162. package/js/pages/DashboardCourses/index.tsx +15 -12
  163. package/js/pages/DashboardCourses/useOrdersEnrollments.tsx +33 -8
  164. package/js/pages/DashboardCreditCardsManagement/DashboardCreditCardBox.tsx +1 -1
  165. package/js/pages/DashboardCreditCardsManagement/DashboardEditCreditCard.spec.tsx +7 -6
  166. package/js/pages/DashboardCreditCardsManagement/DashboardEditCreditCard.tsx +43 -45
  167. package/js/pages/DashboardCreditCardsManagement/DashboardEditCreditCardLoader.tsx +2 -2
  168. package/js/pages/DashboardCreditCardsManagement/index.spec.tsx +13 -12
  169. package/js/pages/DashboardCreditCardsManagement/index.tsx +3 -3
  170. package/js/pages/DashboardOrderLayout/_styles.scss +5 -0
  171. package/js/pages/DashboardOrderLayout/index.spec.tsx +14 -8
  172. package/js/pages/DashboardOrderLayout/index.tsx +11 -6
  173. package/js/pages/TeacherDashboardContractsLayout/TeacherDashboardContracts/index.spec.tsx +330 -0
  174. package/js/pages/TeacherDashboardContractsLayout/TeacherDashboardContracts/index.tsx +124 -0
  175. package/js/pages/TeacherDashboardContractsLayout/TeacherDashboardCourseContractsLayout/index.tsx +26 -0
  176. package/js/pages/TeacherDashboardContractsLayout/TeacherDashboardOrganizationContractsLayout/index.tsx +26 -0
  177. package/js/pages/TeacherDashboardContractsLayout/components/ContractActionsBar/index.tsx +31 -0
  178. package/js/pages/TeacherDashboardContractsLayout/components/ContractFilters/index.spec.tsx +179 -0
  179. package/js/pages/TeacherDashboardContractsLayout/components/ContractFilters/index.tsx +125 -0
  180. package/js/pages/TeacherDashboardContractsLayout/components/SignOrganizationContractButton/index.tsx +54 -0
  181. package/js/pages/TeacherDashboardContractsLayout/hooks/useTeacherContractFilters.tsx +30 -0
  182. package/js/pages/TeacherDashboardContractsLayout/hooks/useTeacherContractsToSign.tsx +35 -0
  183. package/js/pages/TeacherDashboardContractsLayout/index.ts +2 -0
  184. package/js/pages/TeacherDashboardContractsLayout/styles.scss +15 -0
  185. package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/CourseRunListCell/index.spec.tsx +1 -1
  186. package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/_styles.scss +1 -2
  187. package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/index.spec.tsx +2 -2
  188. package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/utils.spec.tsx +1 -1
  189. package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/utils.tsx +11 -10
  190. package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/index.tsx +9 -8
  191. package/js/pages/{TeacherCoursesDashboardLoader → TeacherDashboardCoursesLoader}/index.spec.tsx +15 -15
  192. package/js/pages/{TeacherCoursesDashboardLoader → TeacherDashboardCoursesLoader}/index.tsx +7 -7
  193. package/js/pages/{TeacherOrganizationCourseDashboardLoader → TeacherDashboardOrganizationCourseLoader}/index.tsx +5 -5
  194. package/js/pages/{TeacherTrainingDashboard/TeacherTrainingDashboardLoader.tsx → TeacherDashboardTraining/TeacherDashboardTrainingLoader.tsx} +10 -9
  195. package/js/pages/{TeacherTrainingDashboard → TeacherDashboardTraining}/index.spec.tsx +76 -6
  196. package/js/pages/{TeacherTrainingDashboard → TeacherDashboardTraining}/index.tsx +6 -6
  197. package/js/settings.ts +11 -1
  198. package/js/translations/ar-SA.json +1 -1
  199. package/js/translations/es-ES.json +1 -1
  200. package/js/translations/fa-IR.json +1 -1
  201. package/js/translations/fr-CA.json +1 -1
  202. package/js/translations/fr-FR.json +1 -1
  203. package/js/translations/ko-KR.json +1 -1
  204. package/js/translations/pt-PT.json +1 -1
  205. package/js/translations/ru-RU.json +1 -1
  206. package/js/translations/vi-VN.json +1 -0
  207. package/js/types/Joanie.ts +235 -79
  208. package/js/types/Suggestion.ts +2 -2
  209. package/js/types/User.ts +19 -1
  210. package/js/types/index.ts +0 -1
  211. package/js/utils/AbilitiesHelper/contractAbilities.spec.ts +35 -0
  212. package/js/utils/AbilitiesHelper/contractAbilities.ts +14 -0
  213. package/js/utils/AbilitiesHelper/index.ts +71 -0
  214. package/js/utils/AbilitiesHelper/joanieUserProfileAbilities.spec.ts +55 -0
  215. package/js/utils/AbilitiesHelper/joanieUserProfileAbilities.ts +16 -0
  216. package/js/utils/AbilitiesHelper/types.ts +36 -0
  217. package/js/utils/ContractHelper/index.spec.ts +73 -0
  218. package/js/utils/ContractHelper/index.ts +72 -0
  219. package/js/utils/CourseRuns/index.spec.tsx +20 -1
  220. package/js/utils/CourseRuns/index.ts +14 -2
  221. package/js/utils/CoursesHelper/index.spec.ts +45 -55
  222. package/js/utils/CoursesHelper/index.ts +6 -7
  223. package/js/utils/CreditCardHelper/index.spec.tsx +18 -15
  224. package/js/utils/ObjectHelper/index.spec.ts +18 -10
  225. package/js/utils/ObjectHelper/index.ts +9 -0
  226. package/js/utils/ProductHelper/index.ts +5 -1
  227. package/js/utils/StringHelper/index.spec.tsx +11 -0
  228. package/js/utils/StringHelper/index.ts +8 -0
  229. package/js/utils/UserHelper/index.spec.ts +18 -0
  230. package/js/utils/UserHelper/index.ts +8 -0
  231. package/js/utils/errors/HttpError.ts +9 -0
  232. package/js/utils/indirection/window.ts +1 -1
  233. package/js/utils/react-query/createQueryClient.ts +12 -21
  234. package/js/utils/react-query/useLocalizedQueryKey.ts +1 -1
  235. package/js/utils/react-query/useSessionMutation/index.spec.tsx +8 -8
  236. package/js/utils/react-query/useSessionMutation/index.ts +6 -11
  237. package/js/utils/react-query/useSessionQuery/index.spec.tsx +36 -8
  238. package/js/utils/react-query/useSessionQuery/index.ts +14 -21
  239. package/js/utils/search/getSuggestionsSection/index.spec.ts +3 -2
  240. package/js/utils/search/getSuggestionsSection/index.ts +4 -1
  241. package/js/utils/search/index.tsx +8 -3
  242. package/js/utils/test/createTestQueryClient.ts +7 -7
  243. package/js/utils/test/expectBanner.ts +16 -3
  244. package/js/utils/test/factories/factories.ts +4 -4
  245. package/js/utils/test/factories/joanie.spec.ts +7 -0
  246. package/js/utils/test/factories/joanie.ts +213 -63
  247. package/js/utils/test/factories/reactQuery.ts +1 -1
  248. package/js/utils/test/factories/richie.ts +1 -2
  249. package/js/utils/test/mockCourseProductWithOrder.ts +28 -0
  250. package/js/utils/test/mockPaginatedResponse.ts +1 -1
  251. package/js/widgets/Dashboard/components/DashboardAvatar/_styles.scss +14 -3
  252. package/js/widgets/Dashboard/components/DashboardAvatar/index.spec.tsx +9 -2
  253. package/js/widgets/Dashboard/components/DashboardAvatar/index.tsx +15 -4
  254. package/js/widgets/Dashboard/components/DashboardBox/index.stories.tsx +1 -1
  255. package/js/widgets/Dashboard/components/DashboardBreadcrumbs/_styles.scss +1 -0
  256. package/js/widgets/Dashboard/components/DashboardBreadcrumbs/index.tsx +7 -4
  257. package/js/widgets/Dashboard/components/DashboardCard/index.spec.tsx +1 -1
  258. package/js/widgets/Dashboard/components/DashboardCard/index.stories.tsx +3 -3
  259. package/js/widgets/Dashboard/components/DashboardCard/index.tsx +2 -2
  260. package/js/widgets/Dashboard/components/DashboardItem/Certificate/index.spec.tsx +41 -9
  261. package/js/widgets/Dashboard/components/DashboardItem/Certificate/index.tsx +27 -73
  262. package/js/widgets/Dashboard/components/DashboardItem/CertificateStatus/index.spec.tsx +65 -0
  263. package/js/widgets/Dashboard/components/DashboardItem/CertificateStatus/index.tsx +59 -0
  264. package/js/widgets/Dashboard/components/DashboardItem/Contract/_styles.scss +29 -0
  265. package/js/widgets/Dashboard/components/DashboardItem/Contract/index.spec.tsx +201 -0
  266. package/js/widgets/Dashboard/components/DashboardItem/Contract/index.stories.tsx +34 -0
  267. package/js/widgets/Dashboard/components/DashboardItem/Contract/index.tsx +53 -0
  268. package/js/widgets/Dashboard/components/DashboardItem/DashboardItemCourseEnrolling.spec.tsx +2 -2
  269. package/js/widgets/Dashboard/components/DashboardItem/DashboardItemCourseEnrolling.stories.tsx +4 -4
  270. package/js/widgets/Dashboard/components/DashboardItem/DashboardItemCourseEnrolling.tsx +114 -41
  271. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/DashboardItemEnrollment.spec.tsx +41 -26
  272. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/DashboardItemEnrollment.tsx +29 -11
  273. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/ProductCertificateFooter/index.spec.tsx +168 -0
  274. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/ProductCertificateFooter/index.tsx +78 -0
  275. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrder.spec.tsx +116 -111
  276. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrder.tsx +109 -78
  277. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderContract.spec.tsx +305 -0
  278. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderContract.useUnionResource.cache.spec.tsx +292 -0
  279. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderReadonly.stories.tsx +9 -5
  280. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderWritable.stories.tsx +10 -6
  281. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateMessage/index.spec.tsx +124 -0
  282. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateMessage/index.tsx +98 -0
  283. package/js/widgets/Dashboard/components/DashboardItem/Order/_styles.scss +43 -0
  284. package/js/widgets/Dashboard/components/DashboardItem/_styles.scss +24 -37
  285. package/js/widgets/Dashboard/components/DashboardItem/index.spec.tsx +31 -4
  286. package/js/widgets/Dashboard/components/DashboardItem/index.tsx +51 -26
  287. package/js/widgets/Dashboard/components/DashboardItem/stories.mock.ts +3 -8
  288. package/js/widgets/Dashboard/components/DashboardItem/utils/order.ts +15 -0
  289. package/js/widgets/Dashboard/components/DashboardLayout/_styles.scss +14 -5
  290. package/js/widgets/Dashboard/components/DashboardLayout/index.tsx +10 -3
  291. package/js/widgets/Dashboard/components/DashboardOrderLoader/_styles.scss +5 -0
  292. package/js/widgets/Dashboard/components/DashboardOrderLoader/index.tsx +47 -14
  293. package/js/widgets/Dashboard/components/DashboardSidebar/_styles.scss +35 -24
  294. package/js/widgets/Dashboard/components/DashboardSidebar/components/NavigationSelect.tsx +58 -0
  295. package/js/widgets/Dashboard/components/DashboardSidebar/index.stories.tsx +6 -1
  296. package/js/widgets/Dashboard/components/DashboardSidebar/index.tsx +22 -58
  297. package/js/widgets/Dashboard/components/LearnerDashboardSidebar/index.tsx +4 -2
  298. package/js/widgets/Dashboard/components/RouterButton/index.tsx +2 -1
  299. package/js/widgets/Dashboard/components/Signature/DummyContractPlaceholder.tsx +25 -0
  300. package/js/widgets/Dashboard/components/Signature/SignatureDummy.tsx +58 -0
  301. package/js/widgets/Dashboard/components/Signature/SignatureLexPersona.tsx +72 -0
  302. package/js/widgets/Dashboard/components/{TeacherCourseDashboardSidebar → TeacherDashboardCourseSidebar}/index.spec.tsx +22 -18
  303. package/js/widgets/Dashboard/components/{TeacherCourseDashboardSidebar → TeacherDashboardCourseSidebar}/index.tsx +24 -28
  304. package/js/widgets/Dashboard/components/TeacherDashboardCourseSidebar/utils.ts +19 -0
  305. package/js/widgets/Dashboard/components/TeacherDashboardOrganizationSidebar/index.spec.tsx +151 -0
  306. package/js/widgets/Dashboard/components/TeacherDashboardOrganizationSidebar/index.stories.tsx +42 -0
  307. package/js/widgets/Dashboard/components/TeacherDashboardOrganizationSidebar/index.tsx +110 -0
  308. package/js/widgets/Dashboard/components/{TeacherProfileDashboardSidebar → TeacherDashboardProfileSidebar}/components/OrganizationLinks/_styles.scss +27 -10
  309. package/js/widgets/Dashboard/components/TeacherDashboardProfileSidebar/components/OrganizationLinks/index.spec.tsx +57 -0
  310. package/js/widgets/Dashboard/components/{TeacherProfileDashboardSidebar → TeacherDashboardProfileSidebar}/components/OrganizationLinks/index.tsx +18 -7
  311. package/js/widgets/Dashboard/components/{TeacherProfileDashboardSidebar → TeacherDashboardProfileSidebar}/index.spec.tsx +19 -11
  312. package/js/widgets/Dashboard/components/{TeacherProfileDashboardSidebar → TeacherDashboardProfileSidebar}/index.stories.tsx +5 -5
  313. package/js/widgets/Dashboard/components/{TeacherProfileDashboardSidebar → TeacherDashboardProfileSidebar}/index.tsx +4 -3
  314. package/js/widgets/Dashboard/hooks/useEnroll/index.ts +8 -8
  315. package/js/widgets/Dashboard/index.spec.tsx +22 -12
  316. package/js/widgets/Dashboard/utils/learnerRouteMessages.tsx +12 -1
  317. package/js/widgets/Dashboard/utils/learnerRoutes.tsx +6 -0
  318. package/js/widgets/Dashboard/utils/teacherRouteMessages.tsx +58 -2
  319. package/js/widgets/Dashboard/utils/teacherRoutes.tsx +87 -13
  320. package/js/widgets/LtiConsumer/index.spec.tsx +44 -33
  321. package/js/widgets/LtiConsumer/index.tsx +11 -15
  322. package/js/widgets/Search/components/SearchFilterGroupModal/_styles.scss +0 -9
  323. package/js/widgets/Search/components/SearchFilterGroupModal/index.tsx +86 -60
  324. package/js/widgets/Search/components/SearchFilterValueParent/index.stories.tsx +51 -0
  325. package/js/widgets/Search/components/SearchFilterValueParent/index.tsx +7 -7
  326. package/js/widgets/Search/components/SearchFiltersPane/_styles.scss +2 -16
  327. package/js/widgets/Search/components/SearchFiltersPane/index.tsx +9 -6
  328. package/js/widgets/Search/hooks/useCourseSearch/index.ts +13 -7
  329. package/js/widgets/Search/index.spec.tsx +3 -2
  330. package/js/widgets/Search/utils/getResourceList/index.spec.ts +12 -5
  331. package/js/widgets/Search/utils/getResourceList/index.ts +6 -2
  332. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/CourseProductItemFooter/index.tsx +74 -0
  333. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/_styles.scss +11 -14
  334. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCertificateItem/_styles.scss +1 -1
  335. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCertificateItem/index.spec.tsx +6 -2
  336. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseProductCertificateItem/index.stories.tsx +33 -0
  337. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCertificateItem/index.tsx +5 -8
  338. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/CourseRunList.tsx +1 -1
  339. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/EnrollableCourseRunList.tsx +14 -8
  340. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/EnrolledCourseRun.tsx +5 -3
  341. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/_styles.scss +1 -0
  342. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/index.spec.tsx +100 -35
  343. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseRunItem/index.spec.tsx +7 -4
  344. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseRunItem/index.stories.tsx +36 -0
  345. package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseRunItem/index.tsx +5 -3
  346. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/ProductSignatureHeader/index.tsx +40 -0
  347. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/index.spec.tsx +905 -0
  348. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/index.stories.tsx +83 -0
  349. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/index.tsx +251 -0
  350. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/CourseRunUnenrollmentButton/index.tsx +3 -2
  351. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/_styles.scss +0 -25
  352. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/index.joanie.spec.tsx +30 -30
  353. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/index.openedx.spec.tsx +10 -5
  354. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/index.tsx +39 -22
  355. package/js/widgets/SyllabusCourseRunsList/components/CourseRunItemWithEnrollment/index.tsx +1 -0
  356. package/js/widgets/SyllabusCourseRunsList/components/CourseWishButton/_styles.scss +0 -3
  357. package/js/widgets/SyllabusCourseRunsList/components/CourseWishButton/hooks/useCourseWish/index.spec.tsx +12 -9
  358. package/js/widgets/SyllabusCourseRunsList/components/CourseWishButton/index.login.spec.tsx +14 -12
  359. package/js/widgets/SyllabusCourseRunsList/components/CourseWishButton/index.logout.spec.tsx +4 -6
  360. package/js/widgets/SyllabusCourseRunsList/components/CourseWishButton/index.tsx +5 -5
  361. package/js/widgets/SyllabusCourseRunsList/components/SyllabusAsideList/index.tsx +2 -2
  362. package/js/widgets/SyllabusCourseRunsList/components/SyllabusCourseRun/index.tsx +19 -13
  363. package/js/widgets/SyllabusCourseRunsList/components/SyllabusSimpleCourseRunsList/index.tsx +1 -0
  364. package/js/widgets/SyllabusCourseRunsList/hooks/useCourseEnrollment/index.spec.tsx +2 -1
  365. package/js/widgets/SyllabusCourseRunsList/hooks/useCourseEnrollment/index.ts +10 -12
  366. package/js/widgets/SyllabusCourseRunsList/index.spec.tsx +54 -14
  367. package/js/widgets/SyllabusCourseRunsList/index.tsx +5 -8
  368. package/js/widgets/UserLogin/components/UserMenu/DesktopUserMenu.tsx +2 -1
  369. package/js/widgets/UserLogin/components/UserMenu/MobileUserMenu.tsx +2 -1
  370. package/js/widgets/UserLogin/components/UserMenu/index.tsx +6 -5
  371. package/js/widgets/UserLogin/index.not.isJoanieEnabled.spec.tsx +120 -0
  372. package/js/widgets/UserLogin/index.spec.tsx +108 -43
  373. package/js/widgets/UserLogin/index.stories.tsx +29 -0
  374. package/js/widgets/UserLogin/index.tsx +33 -15
  375. package/js/widgets/index.tsx +3 -6
  376. package/mocks/browser.ts +1 -1
  377. package/mocks/handlers/contracts.ts +16 -0
  378. package/mocks/handlers.ts +3 -1
  379. package/package.json +81 -77
  380. package/scss/_main.scss +2 -0
  381. package/scss/colors/_palette.scss +2 -2
  382. package/scss/colors/_theme.scss +6 -16
  383. package/scss/components/_content.scss +1 -1
  384. package/scss/components/_index.scss +23 -14
  385. package/scss/generic/_type.scss +1 -1
  386. package/scss/objects/_characteristics.scss +7 -14
  387. package/scss/objects/_course_glimpses.scss +3 -0
  388. package/scss/objects/_dashboard.scss +28 -0
  389. package/scss/objects/_form.scss +14 -355
  390. package/scss/objects/_selector.scss +1 -0
  391. package/scss/trumps/_bootstrap.scss +4 -0
  392. package/scss/vendors/css/cunningham-tokens.css +89 -25
  393. package/scss/vendors/cunningham-tokens.scss +208 -128
  394. package/tsconfig.json +4 -4
  395. package/js/components/AddressesManagement/AddressForm.spec.tsx +0 -206
  396. package/js/components/AddressesManagement/AddressForm.tsx +0 -169
  397. package/js/components/Button/index.spec.tsx +0 -36
  398. package/js/components/Button/index.stories.tsx +0 -26
  399. package/js/components/Button/index.tsx +0 -38
  400. package/js/components/Form/CheckboxField.stories.tsx +0 -12
  401. package/js/components/Form/Field.stories.config.tsx +0 -24
  402. package/js/components/Form/Inputs.tsx +0 -295
  403. package/js/components/Form/RadioField.stories.tsx +0 -18
  404. package/js/components/Form/SelectField.stories.tsx +0 -27
  405. package/js/components/Form/TextAreaField.stories.tsx +0 -12
  406. package/js/components/Form/TextField.stories.tsx +0 -12
  407. package/js/components/Form/index.spec.tsx +0 -297
  408. package/js/hooks/useProduct.ts +0 -28
  409. package/js/utils/test/mockProductWithOrder.ts +0 -17
  410. package/js/widgets/CourseProductItem/components/PaymentButton/_styles.scss +0 -12
  411. package/js/widgets/CourseProductItem/components/PaymentButton/index.spec.tsx +0 -473
  412. package/js/widgets/CourseProductItem/components/PurchaseButton/index.spec.tsx +0 -259
  413. package/js/widgets/CourseProductItem/components/SaleTunnel/_styles.scss +0 -41
  414. package/js/widgets/CourseProductItem/components/SaleTunnelStepResume/_styles.scss +0 -130
  415. package/js/widgets/CourseProductItem/components/SaleTunnelStepResume/index.spec.tsx +0 -29
  416. package/js/widgets/CourseProductItem/components/SaleTunnelStepResume/index.tsx +0 -59
  417. package/js/widgets/CourseProductItem/components/SaleTunnelStepValidation/index.spec.tsx +0 -71
  418. package/js/widgets/CourseProductItem/contexts/CourseProductContext/index.spec.tsx +0 -35
  419. package/js/widgets/CourseProductItem/contexts/CourseProductContext/index.tsx +0 -45
  420. package/js/widgets/CourseProductItem/index.spec.tsx +0 -486
  421. package/js/widgets/CourseProductItem/index.tsx +0 -205
  422. package/js/widgets/Dashboard/components/TeacherOrganizationDashboardSidebar/index.stories.tsx +0 -28
  423. package/js/widgets/Dashboard/components/TeacherOrganizationDashboardSidebar/index.tsx +0 -79
  424. /package/js/components/AddressesManagement/{validationSchema.spec.ts → AddressForm/validationSchema.spec.ts} +0 -0
  425. /package/js/{widgets/CourseProductItem/components → components}/EnrollmentDate/index.tsx +0 -0
  426. /package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/RegisteredCreditCard/_styles.scss +0 -0
  427. /package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/RegisteredCreditCard/index.spec.tsx +0 -0
  428. /package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/SaleTunnelStepValidation/TargetCourseDetail.tsx +0 -0
  429. /package/js/{widgets/CourseProductItem → components/SaleTunnel}/components/StepBreadcrumb/_styles.scss +0 -0
  430. /package/js/{widgets/CourseProductItem/hooks → hooks}/useStepManager/index.spec.ts +0 -0
  431. /package/js/{widgets/CourseProductItem/hooks → hooks}/useStepManager/index.ts +0 -0
  432. /package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/CourseRunListCell/index.tsx +0 -0
  433. /package/js/pages/{TeacherCourseDashboardLoader → TeacherDashboardCourseLoader}/CourseRunList/index.tsx +0 -0
  434. /package/js/pages/{TeacherTrainingDashboard → TeacherDashboardTraining}/_styles.scss +0 -0
  435. /package/js/widgets/Dashboard/components/{TeacherCourseDashboardSidebar → TeacherDashboardCourseSidebar}/_styles.scss +0 -0
  436. /package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/CourseRunSection.tsx +0 -0
  437. /package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/components/CourseProductCourseRuns/index.tsx +0 -0
  438. /package/js/widgets/{CourseProductItem → SyllabusCourseRunsList/components/CourseProductItem}/types/payments/payplug.d.ts +0 -0
package/.eslintignore CHANGED
@@ -1,2 +1,4 @@
1
1
  # Don't lint node_modules
2
2
  node_modules
3
+ # LexPersona iframe script
4
+ iframe-manager.js
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- 9.3.0
1
+ 18.19.0
package/.prettierignore CHANGED
@@ -1,3 +1,5 @@
1
1
  js/translations/*
2
2
  i18n/**/*
3
3
  public-path.js
4
+ # LexPersona iframe script
5
+ iframe-manager.js
@@ -1 +1 @@
1
- <div id="modal-exclude" style="min-height: 0;"></div>
1
+ <div id="modal-exclude" style="height: auto;"></div>
@@ -1,7 +1,8 @@
1
1
  import { useState } from 'react';
2
2
  import { IntlProvider } from 'react-intl';
3
- import './__mocks__/utils/context';
3
+ import { CunninghamProvider } from '@openfun/cunningham-react';
4
4
  import { useAsyncEffect } from 'hooks/useAsyncEffect';
5
+ import './__mocks__/utils/context';
5
6
 
6
7
  export const parameters = {
7
8
  actions: { argTypesRegex: '^on[A-Z].*' },
@@ -34,7 +35,9 @@ export const decorators = [
34
35
  (Story) => (
35
36
  <IntlProvider locale="en">
36
37
  <IconsWrapper>
37
- <Story />
38
+ <CunninghamProvider>
39
+ <Story />
40
+ </CunninghamProvider>
38
41
  </IconsWrapper>
39
42
  </IntlProvider>
40
43
  ),
package/cunningham.cjs CHANGED
@@ -9,7 +9,7 @@
9
9
  const tokens = require('richie-education/cunningham.cjs')
10
10
  module.exports = {
11
11
  theme: {
12
- ...tokens.theme
12
+ ...tokens.themes.default
13
13
  colors: {
14
14
  ...tokens.colors,
15
15
  'your-black': '#1E1E1E',
@@ -18,48 +18,57 @@
18
18
  */
19
19
 
20
20
  module.exports = {
21
- theme: {
22
- font: {
23
- families: { base: 'Hind', accent: 'Montserrat' },
24
- },
25
- colors: {
26
- 'primary-100': '#ffcad1',
27
- 'primary-200': '#f19597',
28
- 'primary-300': '#e86a6f',
29
- 'primary-400': '#f2444b',
30
- 'primary-500': '#f72c30',
31
- 'primary-600': '#e81f2f',
32
- 'primary-700': '#d60f29',
33
- 'primary-800': '#c90022',
34
- 'primary-900': '#bb0014',
35
- 'secondary-100': '#eff8ff',
36
- 'secondary-200': '#eaf3fd',
37
- 'secondary-300': '#e2ebf5',
38
- 'secondary-400': '#c0c9d3',
39
- 'secondary-500': '#a3abb4',
40
- 'secondary-600': '#79818a',
41
- 'secondary-700': '#656c75',
42
- 'secondary-800': '#454d55',
43
- 'secondary-900': '#242b32',
44
- black: '#090909',
45
- 'dark-grey': '#232323',
46
- charcoal: '#29303b',
47
- 'slate-grey': '#686868',
48
- 'battleship-grey': '#686f7a',
49
- 'light-grey': '#d2d2d2',
50
- silver: '#d5dbe0',
51
- azure2: '#eceff1',
52
- smoke: '#fdfdfd',
53
- white: '#ffffff',
54
- denim: '#0067b7',
55
- firebrick6: '#f72c30',
56
- 'purplish-grey': '#726c74',
57
- grey32: '#525151',
58
- grey59: '#969696',
59
- grey87: '#dfdfdf',
60
- indianred3: '#df484b',
61
- midnightblue: '#141b2c',
62
- mantis: '#76ce68',
21
+ themes: {
22
+ default: {
23
+ theme: {
24
+ font: {
25
+ families: { base: 'Hind', accent: 'Montserrat' },
26
+ },
27
+ colors: {
28
+ 'primary-100': '#ffcad1',
29
+ 'primary-200': '#f19597',
30
+ 'primary-300': '#e86a6f',
31
+ 'primary-400': '#f2444b',
32
+ 'primary-500': '#f72c30',
33
+ 'primary-600': '#e81f2f',
34
+ 'primary-700': '#d60f29',
35
+ 'primary-800': '#c90022',
36
+ 'primary-900': '#bb0014',
37
+ 'secondary-100': '#eff8ff',
38
+ 'secondary-200': '#eaf3fd',
39
+ 'secondary-300': '#e2ebf5',
40
+ 'secondary-400': '#c0c9d3',
41
+ 'secondary-500': '#a3abb4',
42
+ 'secondary-600': '#79818a',
43
+ 'secondary-700': '#656c75',
44
+ 'secondary-800': '#454d55',
45
+ 'secondary-900': '#242b32',
46
+ black: '#090909',
47
+ 'dark-grey': '#232323',
48
+ charcoal: '#29303b',
49
+ 'slate-grey': '#686868',
50
+ 'battleship-grey': '#686f7a',
51
+ 'light-grey': '#d2d2d2',
52
+ silver: '#d5dbe0',
53
+ azure2: '#eceff1',
54
+ smoke: '#fdfdfd',
55
+ white: '#ffffff',
56
+ denim: '#0067b7',
57
+ firebrick6: '#f72c30',
58
+ 'purplish-grey': '#726c74',
59
+ grey32: '#525151',
60
+ grey59: '#969696',
61
+ grey87: '#dfdfdf',
62
+ indianred3: '#df484b',
63
+ midnightblue: '#141b2c',
64
+ mantis: '#76ce68',
65
+ },
66
+ },
67
+ components: {
68
+ button: {
69
+ 'font-family': 'Montserrat',
70
+ },
71
+ },
63
72
  },
64
73
  },
65
74
  };