richie-education 2.33.1-dev9 → 2.34.1-dev10

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 (70) hide show
  1. package/i18n/locales/ar-SA.json +48 -8
  2. package/i18n/locales/es-ES.json +48 -8
  3. package/i18n/locales/fa-IR.json +48 -8
  4. package/i18n/locales/fr-CA.json +48 -8
  5. package/i18n/locales/fr-FR.json +48 -8
  6. package/i18n/locales/ko-KR.json +48 -8
  7. package/i18n/locales/pt-PT.json +55 -15
  8. package/i18n/locales/ru-RU.json +48 -8
  9. package/i18n/locales/vi-VN.json +48 -8
  10. package/js/api/joanie.ts +5 -0
  11. package/js/api/lms/dummy.ts +12 -10
  12. package/js/components/AddressesManagement/index.spec.tsx +1 -1
  13. package/js/components/AddressesManagement/index.tsx +123 -129
  14. package/js/components/ContractFrame/AbstractContractFrame.spec.tsx +2 -4
  15. package/js/components/ContractFrame/AbstractContractFrame.tsx +1 -1
  16. package/js/components/Icon/index.stories.tsx +1 -1
  17. package/js/components/PaymentInterfaces/PayplugLightbox.tsx +1 -1
  18. package/js/components/PaymentScheduleGrid/_styles.scss +6 -5
  19. package/js/components/PaymentScheduleGrid/index.tsx +16 -0
  20. package/js/components/SaleTunnel/SaleTunnelSavePaymentMethod/index.tsx +2 -2
  21. package/js/components/SearchInput/index.spec.tsx +6 -5
  22. package/js/components/SearchInput/index.tsx +9 -1
  23. package/js/hooks/useCreditCards/index.spec.tsx +84 -0
  24. package/js/hooks/useCreditCards/index.ts +53 -1
  25. package/js/hooks/useCreditCardsManagement.tsx +1 -10
  26. package/js/hooks/useLearnerCoursesSearch/index.tsx +2 -2
  27. package/js/pages/DashboardCourses/index.spec.tsx +51 -7
  28. package/js/pages/DashboardCreditCardsManagement/DashboardCreditCardBox.tsx +3 -5
  29. package/js/pages/DashboardCreditCardsManagement/DashboardEditCreditCard.spec.tsx +1 -1
  30. package/js/pages/DashboardCreditCardsManagement/_styles.scss +11 -3
  31. package/js/pages/DashboardCreditCardsManagement/index.spec.tsx +46 -25
  32. package/js/pages/DashboardCreditCardsManagement/index.tsx +21 -37
  33. package/js/pages/TeacherDashboardContractsLayout/hooks/useCheckContractArchiveExists/index.spec.tsx +4 -2
  34. package/js/pages/TeacherDashboardContractsLayout/hooks/useCheckContractArchiveExists/index.tsx +1 -1
  35. package/js/pages/TeacherDashboardOrganizationCourseLoader/index.spec.tsx +8 -5
  36. package/js/translations/ar-SA.json +1 -1
  37. package/js/translations/es-ES.json +1 -1
  38. package/js/translations/fa-IR.json +1 -1
  39. package/js/translations/fr-CA.json +1 -1
  40. package/js/translations/fr-FR.json +1 -1
  41. package/js/translations/ko-KR.json +1 -1
  42. package/js/translations/pt-PT.json +1 -1
  43. package/js/translations/ru-RU.json +1 -1
  44. package/js/translations/vi-VN.json +1 -1
  45. package/js/types/Joanie.ts +13 -1
  46. package/js/types/index.ts +5 -0
  47. package/js/utils/OrderHelper/index.ts +9 -0
  48. package/js/utils/errors/HttpError.ts +1 -0
  49. package/js/utils/test/factories/richie.ts +25 -0
  50. package/js/utils/test/wrappers/types.ts +2 -2
  51. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/ProductCertificateFooter/index.spec.tsx +7 -1
  52. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderContract.useUnionResource.cache.spec.tsx +14 -2
  53. package/js/widgets/Dashboard/components/DashboardItem/Order/Installment/index.tsx +3 -2
  54. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderPaymentDetailsModal/index.tsx +12 -5
  55. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderPaymentRetryModal/index.tsx +1 -1
  56. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateLearnerMessage/index.tsx +5 -0
  57. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateMessage/index.tsx +10 -8
  58. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateTeacherMessage/index.tsx +5 -0
  59. package/js/widgets/Dashboard/components/SearchBar/index.spec.tsx +1 -1
  60. package/js/widgets/Dashboard/components/SearchResultsCount/index.spec.tsx +1 -1
  61. package/js/widgets/Dashboard/index.spec.tsx +7 -1
  62. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseProductCourseRuns/EnrollableCourseRunList.tsx +2 -1
  63. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseProductCourseRuns/index.spec.tsx +6 -4
  64. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/index.tsx +1 -5
  65. package/js/widgets/SyllabusCourseRunsList/components/SyllabusCourseRun/index.tsx +107 -0
  66. package/js/widgets/SyllabusCourseRunsList/components/SyllabusCourseRunCompacted/index.tsx +107 -0
  67. package/js/widgets/SyllabusCourseRunsList/index.spec.tsx +450 -5
  68. package/package.json +66 -64
  69. package/scss/components/_styleguide.scss +2 -1
  70. package/scss/vendors/css/cunningham-tokens.css +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "richie-education",
3
- "version": "2.33.1-dev9",
3
+ "version": "2.34.1-dev10",
4
4
  "description": "A CMS to build learning portals for Open Education",
5
5
  "main": "sandbox/manage.py",
6
6
  "scripts": {
@@ -38,75 +38,75 @@
38
38
  "not dead"
39
39
  ],
40
40
  "dependencies": {
41
- "@babel/core": "7.26.0",
41
+ "@babel/core": "7.26.9",
42
42
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
43
- "@babel/plugin-transform-modules-commonjs": "7.25.9",
44
- "@babel/preset-env": "7.26.0",
45
- "@babel/preset-react": "7.25.9",
43
+ "@babel/plugin-transform-modules-commonjs": "7.26.3",
44
+ "@babel/preset-env": "7.26.9",
45
+ "@babel/preset-react": "7.26.3",
46
46
  "@babel/preset-typescript": "7.26.0",
47
- "@faker-js/faker": "9.2.0",
48
- "@formatjs/cli": "6.3.11",
49
- "@formatjs/intl-relativetimeformat": "11.4.5",
50
- "@hookform/resolvers": "3.9.1",
47
+ "@faker-js/faker": "9.5.0",
48
+ "@formatjs/cli": "6.6.1",
49
+ "@formatjs/intl-relativetimeformat": "11.4.10",
50
+ "@hookform/resolvers": "4.1.2",
51
51
  "@lyracom/embedded-form-glue": "1.4.2",
52
- "@openfun/cunningham-react": "2.9.4",
53
- "@openfun/cunningham-tokens": "2.1.1",
54
- "@sentry/browser": "8.42.0",
55
- "@sentry/types": "8.42.0",
56
- "@storybook/addon-actions": "8.4.6",
57
- "@storybook/addon-essentials": "8.4.6",
58
- "@storybook/addon-interactions": "8.4.6",
59
- "@storybook/addon-links": "8.4.6",
60
- "@storybook/react": "8.4.6",
61
- "@storybook/react-webpack5": "8.4.6",
62
- "@storybook/test": "8.4.6",
63
- "@tanstack/query-core": "5.62.1",
64
- "@tanstack/query-sync-storage-persister": "5.62.1",
65
- "@tanstack/react-query": "5.62.1",
66
- "@tanstack/react-query-devtools": "5.62.1",
67
- "@tanstack/react-query-persist-client": "5.62.1",
52
+ "@openfun/cunningham-react": "3.0.0",
53
+ "@openfun/cunningham-tokens": "2.2.0",
54
+ "@sentry/browser": "9.2.0",
55
+ "@sentry/types": "9.2.0",
56
+ "@storybook/addon-actions": "8.6.0",
57
+ "@storybook/addon-essentials": "8.6.0",
58
+ "@storybook/addon-interactions": "8.6.0",
59
+ "@storybook/addon-links": "8.6.0",
60
+ "@storybook/react": "8.6.0",
61
+ "@storybook/react-webpack5": "8.6.0",
62
+ "@storybook/test": "8.6.0",
63
+ "@tanstack/query-core": "5.66.4",
64
+ "@tanstack/query-sync-storage-persister": "5.66.4",
65
+ "@tanstack/react-query": "5.66.9",
66
+ "@tanstack/react-query-devtools": "5.66.9",
67
+ "@tanstack/react-query-persist-client": "5.66.9",
68
68
  "@testing-library/dom": "10.4.0",
69
69
  "@testing-library/jest-dom": "6.6.3",
70
- "@testing-library/react": "16.0.1",
71
- "@testing-library/user-event": "14.5.2",
72
- "@types/fetch-mock": "7.3.8",
73
- "@types/iframe-resizer": "3.5.13",
70
+ "@testing-library/react": "16.2.0",
71
+ "@testing-library/user-event": "14.6.1",
72
+ "@types/fetch-mock": "9.2.2",
73
+ "@types/iframe-resizer": "4.0.0",
74
74
  "@types/jest": "29.5.14",
75
75
  "@types/js-cookie": "3.0.6",
76
76
  "@types/lodash-es": "4.17.12",
77
77
  "@types/node-fetch": "2.6.12",
78
78
  "@types/query-string": "6.3.0",
79
- "@types/react": "18.3.12",
79
+ "@types/react": "19.0.10",
80
80
  "@types/react-autosuggest": "10.1.11",
81
- "@types/react-dom": "18.3.1",
81
+ "@types/react-dom": "19.0.4",
82
82
  "@types/react-modal": "3.16.3",
83
- "@typescript-eslint/eslint-plugin": "8.17.0",
84
- "@typescript-eslint/parser": "8.17.0",
83
+ "@typescript-eslint/eslint-plugin": "8.25.0",
84
+ "@typescript-eslint/parser": "8.25.0",
85
85
  "babel-jest": "29.7.0",
86
86
  "babel-loader": "9.2.1",
87
87
  "babel-plugin-react-intl": "8.2.25",
88
88
  "bootstrap": ">=4.6.0 <5",
89
89
  "classnames": "2.5.1",
90
90
  "cljs-merge": "1.1.1",
91
- "core-js": "3.39.0",
91
+ "core-js": "3.40.0",
92
92
  "downshift": "9.0.8",
93
93
  "eslint": ">=8.57.0 <9",
94
94
  "eslint-config-airbnb": "19.0.4",
95
95
  "eslint-config-airbnb-typescript": "18.0.0",
96
- "eslint-config-prettier": "9.1.0",
97
- "eslint-import-resolver-webpack": "0.13.9",
98
- "eslint-plugin-compat": "6.0.1",
99
- "eslint-plugin-formatjs": "5.2.5",
96
+ "eslint-config-prettier": "10.0.1",
97
+ "eslint-import-resolver-webpack": "0.13.10",
98
+ "eslint-plugin-compat": "6.0.2",
99
+ "eslint-plugin-formatjs": "5.2.14",
100
100
  "eslint-plugin-import": "2.31.0",
101
101
  "eslint-plugin-jsx-a11y": "6.10.2",
102
- "eslint-plugin-prettier": "5.2.1",
103
- "eslint-plugin-react": "7.37.2",
104
- "eslint-plugin-react-hooks": "5.0.0",
105
- "eslint-plugin-storybook": "0.11.1",
102
+ "eslint-plugin-prettier": "5.2.3",
103
+ "eslint-plugin-react": "7.37.4",
104
+ "eslint-plugin-react-hooks": "5.1.0",
105
+ "eslint-plugin-storybook": "0.11.3",
106
106
  "fetch-mock": "<10",
107
107
  "file-loader": "6.2.0",
108
- "glob": "11.0.0",
109
- "i18n-iso-countries": "7.13.0",
108
+ "glob": "11.0.1",
109
+ "i18n-iso-countries": "7.14.0",
110
110
  "iframe-resizer": "<5",
111
111
  "intl-pluralrules": "2.0.1",
112
112
  "jest": "29.7.0",
@@ -114,35 +114,37 @@
114
114
  "js-cookie": "3.0.5",
115
115
  "lodash-es": "4.17.21",
116
116
  "mdn-polyfills": "5.20.0",
117
- "msw": "2.6.6",
117
+ "msw": "2.7.3",
118
118
  "node-fetch": ">2.6.6 <3",
119
- "nodemon": "3.1.7",
120
- "prettier": "3.4.1",
119
+ "nodemon": "3.1.9",
120
+ "prettier": "3.5.2",
121
121
  "query-string": "9.1.1",
122
- "react": "18.3.1",
122
+ "react": "19.0.0",
123
123
  "react-autosuggest": "10.1.0",
124
- "react-dom": "18.3.1",
125
- "react-hook-form": "7.53.2",
126
- "react-intl": "7.0.1",
127
- "react-modal": "3.16.1",
128
- "react-router": "7.0.1",
129
- "sass": "1.81.0",
124
+ "react-dom": "19.0.0",
125
+ "react-hook-form": "7.54.2",
126
+ "react-intl": "7.1.6",
127
+ "react-modal": "3.16.3",
128
+ "react-router": "7.2.0",
129
+ "sass": "1.85.1",
130
130
  "source-map-loader": "5.0.0",
131
- "storybook": "8.4.6",
131
+ "storybook": "8.6.0",
132
132
  "tsconfig-paths-webpack-plugin": "4.2.0",
133
- "typescript": "5.7.2",
134
- "uuid": "11.0.3",
135
- "webpack": "5.96.1",
136
- "webpack-cli": "5.1.4",
133
+ "typescript": "5.7.3",
134
+ "uuid": "11.1.0",
135
+ "webpack": "5.98.0",
136
+ "webpack-cli": "6.0.1",
137
137
  "whatwg-fetch": "3.6.20",
138
138
  "xhr-mock": "2.5.1",
139
139
  "yargs": "17.7.2",
140
- "yup": "1.4.0"
140
+ "yup": "1.6.1"
141
141
  },
142
142
  "resolutions": {
143
143
  "@testing-library/dom": "10.4.0",
144
- "@types/react": "18.3.12",
145
- "@types/react-dom": "18.3.1"
144
+ "@types/react": "19.0.10",
145
+ "@types/react-dom": "19.0.4",
146
+ "react": "19.0.0",
147
+ "react-dom": "19.0.0"
146
148
  },
147
149
  "msw": {
148
150
  "workerDirectory": "../richie/static/richie/js"
@@ -152,7 +154,7 @@
152
154
  "yarn": "1.22.22"
153
155
  },
154
156
  "devDependencies": {
155
- "@storybook/addon-mdx-gfm": "8.4.6",
156
- "@storybook/addon-webpack5-compiler-babel": "3.0.3"
157
+ "@storybook/addon-mdx-gfm": "8.6.0",
158
+ "@storybook/addon-webpack5-compiler-babel": "3.0.5"
157
159
  }
158
160
  }
@@ -5,7 +5,8 @@
5
5
  // Draw a background grid in pure CSS
6
6
  @mixin draw-grid($line-color: null, $border-color: null) {
7
7
  @if $line-color {
8
- background: linear-gradient(-90deg, $line-color $onepixel, transparent $onepixel),
8
+ background:
9
+ linear-gradient(-90deg, $line-color $onepixel, transparent $onepixel),
9
10
  linear-gradient($line-color $onepixel, transparent $onepixel),
10
11
  linear-gradient(-90deg, $line-color $onepixel, transparent $onepixel),
11
12
  linear-gradient($line-color $onepixel, transparent $onepixel),
@@ -132,6 +132,7 @@
132
132
  --c--theme--breakpoints--lg: 992px;
133
133
  --c--theme--breakpoints--xl: 1200px;
134
134
  --c--theme--breakpoints--xxl: 1400px;
135
+ --c--components--tabs--border-bottom-color: var(--c--theme--colors--greyscale-300);
135
136
  --c--components--button--font-family: Montserrat;
136
137
  --c--components--dashboardlistavatar--saturation: 30;
137
138
  --c--components--dashboardlistavatar--lightness: 55;