@academy-sdk/sdk 0.1.0 → 0.2.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 (102) hide show
  1. package/dist/bundle.js +70 -0
  2. package/dist/manifest.json +5 -0
  3. package/dist/styles.css +3307 -0
  4. package/package.json +40 -46
  5. package/src/components/atoms/Avatar.tsx +38 -0
  6. package/src/components/atoms/Badge.tsx +32 -0
  7. package/src/components/atoms/Button.tsx +48 -0
  8. package/src/components/atoms/Card.tsx +33 -0
  9. package/src/components/atoms/Input.tsx +39 -0
  10. package/src/components/atoms/ProgressBar.tsx +52 -0
  11. package/src/components/atoms/Tabs.tsx +47 -0
  12. package/src/components/atoms/index.ts +10 -0
  13. package/src/components/index.ts +11 -0
  14. package/src/components/molecules/CourseCard.tsx +215 -0
  15. package/src/components/molecules/EmptyState.tsx +23 -0
  16. package/src/components/molecules/LoadingSpinner.tsx +27 -0
  17. package/src/components/molecules/PageHeader.tsx +22 -0
  18. package/src/components/molecules/Pagination.tsx +82 -0
  19. package/src/components/molecules/SearchInput.tsx +35 -0
  20. package/src/components/molecules/index.ts +12 -0
  21. package/src/components/organisms/CourseSidebar.tsx +276 -0
  22. package/src/components/organisms/LearnerNavbar.tsx +129 -0
  23. package/src/components/organisms/LearnerSidebar.tsx +148 -0
  24. package/src/components/organisms/LessonBookmarks.tsx +128 -0
  25. package/src/components/organisms/LessonNotes.tsx +153 -0
  26. package/src/components/organisms/index.ts +10 -0
  27. package/src/components/pages/BundleDetailPage.tsx +388 -0
  28. package/src/components/pages/CatalogBundlesPage.tsx +96 -0
  29. package/src/components/pages/CatalogCoursesPage.tsx +299 -0
  30. package/src/components/pages/CourseDetailPage.tsx +582 -0
  31. package/src/components/pages/CoursePlayerPage.tsx +481 -0
  32. package/src/components/pages/CreatorProfilePage.tsx +161 -0
  33. package/src/components/pages/LearnerSettingsPage.tsx +58 -0
  34. package/src/components/pages/ManualReviewDetailPage.tsx +254 -0
  35. package/src/components/pages/ManualReviewPage.tsx +228 -0
  36. package/src/components/pages/MessagesPage.tsx +285 -0
  37. package/src/components/pages/MyLearningPage.tsx +239 -0
  38. package/src/components/pages/PaymentCancelPage.tsx +74 -0
  39. package/src/components/pages/PaymentSuccessPage.tsx +73 -0
  40. package/src/components/pages/index.ts +13 -0
  41. package/src/components/utils.ts +6 -0
  42. package/src/contracts/components.contract.ts +89 -0
  43. package/src/contracts/index.ts +4 -0
  44. package/src/contracts/layout.contract.ts +36 -0
  45. package/src/contracts/pages.contract.ts +275 -0
  46. package/src/contracts/template.contract.ts +100 -0
  47. package/src/default-template.tsx +52 -0
  48. package/src/hooks/index.ts +28 -0
  49. package/src/hooks/sdk-context.tsx +152 -0
  50. package/src/hooks/useAiCoach.ts +27 -0
  51. package/src/hooks/useBookmarks.ts +35 -0
  52. package/src/hooks/useCourseSearch.ts +18 -0
  53. package/src/hooks/useDebounce.ts +19 -0
  54. package/src/hooks/useMyBundles.ts +21 -0
  55. package/src/hooks/useMyCourses.ts +20 -0
  56. package/src/hooks/useNotes.ts +35 -0
  57. package/src/hooks/useNotifications.ts +16 -0
  58. package/src/hooks/useTheme.ts +17 -0
  59. package/src/hooks/useToast.ts +17 -0
  60. package/src/hooks/useUser.ts +33 -0
  61. package/src/index.ts +33 -0
  62. package/src/layouts/DefaultLayout.tsx +58 -0
  63. package/src/manifest.json +5 -0
  64. package/src/styles.css +43 -0
  65. package/src/types/ai-coach.ts +25 -0
  66. package/src/types/bookmarks.ts +20 -0
  67. package/src/types/bundle.ts +119 -0
  68. package/src/types/common.ts +24 -0
  69. package/src/types/course.ts +135 -0
  70. package/src/types/enrollment.ts +35 -0
  71. package/src/types/index.ts +15 -0
  72. package/src/types/lesson.ts +106 -0
  73. package/src/types/manual-review.ts +116 -0
  74. package/src/types/messaging.ts +109 -0
  75. package/src/types/notification.ts +30 -0
  76. package/src/types/payment.ts +40 -0
  77. package/src/types/progress.ts +19 -0
  78. package/src/types/rating.ts +20 -0
  79. package/src/types/search.ts +31 -0
  80. package/src/types/user.ts +16 -0
  81. package/src/utils/formatters.ts +74 -0
  82. package/src/utils/index.ts +8 -0
  83. package/dist/components/atoms/index.cjs +0 -318
  84. package/dist/components/atoms/index.js +0 -288
  85. package/dist/components/index.cjs +0 -1275
  86. package/dist/components/index.js +0 -1245
  87. package/dist/components/molecules/index.cjs +0 -334
  88. package/dist/components/molecules/index.js +0 -311
  89. package/dist/components/organisms/index.cjs +0 -855
  90. package/dist/components/organisms/index.js +0 -825
  91. package/dist/components/pages/index.cjs +0 -3306
  92. package/dist/components/pages/index.js +0 -3315
  93. package/dist/contracts/index.cjs +0 -52
  94. package/dist/contracts/index.js +0 -29
  95. package/dist/hooks/index.cjs +0 -165
  96. package/dist/hooks/index.js +0 -142
  97. package/dist/index.cjs +0 -630
  98. package/dist/index.js +0 -600
  99. package/dist/types/index.cjs +0 -18
  100. package/dist/types/index.js +0 -0
  101. package/dist/utils/index.cjs +0 -80
  102. package/dist/utils/index.js +0 -57
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/contracts/index.ts
21
- var contracts_exports = {};
22
- __export(contracts_exports, {
23
- validateTemplateManifest: () => validateTemplateManifest
24
- });
25
- module.exports = __toCommonJS(contracts_exports);
26
-
27
- // src/contracts/template.contract.ts
28
- function validateTemplateManifest(manifest) {
29
- if (!manifest.name) throw new Error("Template manifest must have a name");
30
- if (!manifest.version) throw new Error("Template manifest must have a version");
31
- if (!manifest.LearnerLayout) throw new Error("Template must provide LearnerLayout");
32
- const requiredPages = [
33
- "MyLearningPage",
34
- "CatalogCoursesPage",
35
- "CatalogBundlesPage",
36
- "CourseDetailPage",
37
- "BundleDetailPage",
38
- "CoursePlayerPage",
39
- "MessagesPage",
40
- "ManualReviewPage",
41
- "ManualReviewDetailPage",
42
- "LearnerSettingsPage",
43
- "PaymentSuccessPage",
44
- "PaymentCancelPage",
45
- "CreatorProfilePage"
46
- ];
47
- for (const page of requiredPages) {
48
- if (!manifest.pages[page]) {
49
- throw new Error(`Template must provide pages.${page}`);
50
- }
51
- }
52
- }
@@ -1,29 +0,0 @@
1
- // src/contracts/template.contract.ts
2
- function validateTemplateManifest(manifest) {
3
- if (!manifest.name) throw new Error("Template manifest must have a name");
4
- if (!manifest.version) throw new Error("Template manifest must have a version");
5
- if (!manifest.LearnerLayout) throw new Error("Template must provide LearnerLayout");
6
- const requiredPages = [
7
- "MyLearningPage",
8
- "CatalogCoursesPage",
9
- "CatalogBundlesPage",
10
- "CourseDetailPage",
11
- "BundleDetailPage",
12
- "CoursePlayerPage",
13
- "MessagesPage",
14
- "ManualReviewPage",
15
- "ManualReviewDetailPage",
16
- "LearnerSettingsPage",
17
- "PaymentSuccessPage",
18
- "PaymentCancelPage",
19
- "CreatorProfilePage"
20
- ];
21
- for (const page of requiredPages) {
22
- if (!manifest.pages[page]) {
23
- throw new Error(`Template must provide pages.${page}`);
24
- }
25
- }
26
- }
27
- export {
28
- validateTemplateManifest
29
- };
@@ -1,165 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/hooks/index.ts
21
- var hooks_exports = {};
22
- __export(hooks_exports, {
23
- SDKProvider: () => SDKProvider,
24
- useAiCoachAvailability: () => useAiCoachAvailability,
25
- useAiCoachChat: () => useAiCoachChat,
26
- useAiCoachHistory: () => useAiCoachHistory,
27
- useCourseSearch: () => useCourseSearch,
28
- useCreateBookmark: () => useCreateBookmark,
29
- useCreateNote: () => useCreateNote,
30
- useDebounce: () => useDebounce,
31
- useDeleteBookmark: () => useDeleteBookmark,
32
- useDeleteNote: () => useDeleteNote,
33
- useLessonBookmarks: () => useLessonBookmarks,
34
- useLessonNotes: () => useLessonNotes,
35
- useLogout: () => useLogout,
36
- useMyBundles: () => useMyBundles,
37
- useMyCourses: () => useMyCourses,
38
- useNotifications: () => useNotifications,
39
- useSDK: () => useSDK,
40
- useTheme: () => useTheme,
41
- useToast: () => useToast,
42
- useUpdateBookmark: () => useUpdateBookmark,
43
- useUpdateNote: () => useUpdateNote,
44
- useUser: () => useUser
45
- });
46
- module.exports = __toCommonJS(hooks_exports);
47
-
48
- // src/hooks/sdk-context.tsx
49
- var import_react = require("react");
50
- var import_jsx_runtime = require("react/jsx-runtime");
51
- var SDKContext = (0, import_react.createContext)(null);
52
- function SDKProvider({ implementations, children }) {
53
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SDKContext.Provider, { value: implementations, children });
54
- }
55
- function useSDK() {
56
- const ctx = (0, import_react.useContext)(SDKContext);
57
- if (!ctx) {
58
- throw new Error(
59
- "useSDK must be used within an SDKProvider. Make sure your learner routes are wrapped with <SDKProvider>."
60
- );
61
- }
62
- return ctx;
63
- }
64
-
65
- // src/hooks/useUser.ts
66
- function useUser() {
67
- const sdk = useSDK();
68
- return sdk.useUser();
69
- }
70
- function useLogout() {
71
- const sdk = useSDK();
72
- return sdk.useLogout();
73
- }
74
-
75
- // src/hooks/useMyCourses.ts
76
- function useMyCourses(status, page, limit) {
77
- const sdk = useSDK();
78
- return sdk.useMyCourses(status, page, limit);
79
- }
80
-
81
- // src/hooks/useMyBundles.ts
82
- function useMyBundles(status, page, limit, search) {
83
- const sdk = useSDK();
84
- return sdk.useMyBundles(status, page, limit, search);
85
- }
86
-
87
- // src/hooks/useCourseSearch.ts
88
- function useCourseSearch(query) {
89
- const sdk = useSDK();
90
- return sdk.useCourseSearch(query);
91
- }
92
-
93
- // src/hooks/useNotes.ts
94
- function useLessonNotes(activityId) {
95
- const sdk = useSDK();
96
- return sdk.useLessonNotes(activityId);
97
- }
98
- function useCreateNote() {
99
- const sdk = useSDK();
100
- return sdk.useCreateNote();
101
- }
102
- function useUpdateNote() {
103
- const sdk = useSDK();
104
- return sdk.useUpdateNote();
105
- }
106
- function useDeleteNote() {
107
- const sdk = useSDK();
108
- return sdk.useDeleteNote();
109
- }
110
-
111
- // src/hooks/useBookmarks.ts
112
- function useLessonBookmarks(activityId) {
113
- const sdk = useSDK();
114
- return sdk.useLessonBookmarks(activityId);
115
- }
116
- function useCreateBookmark() {
117
- const sdk = useSDK();
118
- return sdk.useCreateBookmark();
119
- }
120
- function useUpdateBookmark() {
121
- const sdk = useSDK();
122
- return sdk.useUpdateBookmark();
123
- }
124
- function useDeleteBookmark() {
125
- const sdk = useSDK();
126
- return sdk.useDeleteBookmark();
127
- }
128
-
129
- // src/hooks/useAiCoach.ts
130
- function useAiCoachAvailability(courseId) {
131
- const sdk = useSDK();
132
- return sdk.useAiCoachAvailability(courseId);
133
- }
134
- function useAiCoachChat(courseId) {
135
- const sdk = useSDK();
136
- return sdk.useAiCoachChat(courseId);
137
- }
138
- function useAiCoachHistory(courseId, enabled) {
139
- const sdk = useSDK();
140
- return sdk.useAiCoachHistory(courseId, enabled);
141
- }
142
-
143
- // src/hooks/useNotifications.ts
144
- function useNotifications() {
145
- const sdk = useSDK();
146
- return sdk.useNotifications();
147
- }
148
-
149
- // src/hooks/useTheme.ts
150
- function useTheme() {
151
- const sdk = useSDK();
152
- return sdk.useTheme();
153
- }
154
-
155
- // src/hooks/useDebounce.ts
156
- function useDebounce(value, delay) {
157
- const sdk = useSDK();
158
- return sdk.useDebounce(value, delay);
159
- }
160
-
161
- // src/hooks/useToast.ts
162
- function useToast() {
163
- const sdk = useSDK();
164
- return sdk.useToast();
165
- }
@@ -1,142 +0,0 @@
1
- // src/hooks/sdk-context.tsx
2
- import { createContext, useContext } from "react";
3
- import { jsx } from "react/jsx-runtime";
4
- var SDKContext = createContext(null);
5
- function SDKProvider({ implementations, children }) {
6
- return /* @__PURE__ */ jsx(SDKContext.Provider, { value: implementations, children });
7
- }
8
- function useSDK() {
9
- const ctx = useContext(SDKContext);
10
- if (!ctx) {
11
- throw new Error(
12
- "useSDK must be used within an SDKProvider. Make sure your learner routes are wrapped with <SDKProvider>."
13
- );
14
- }
15
- return ctx;
16
- }
17
-
18
- // src/hooks/useUser.ts
19
- function useUser() {
20
- const sdk = useSDK();
21
- return sdk.useUser();
22
- }
23
- function useLogout() {
24
- const sdk = useSDK();
25
- return sdk.useLogout();
26
- }
27
-
28
- // src/hooks/useMyCourses.ts
29
- function useMyCourses(status, page, limit) {
30
- const sdk = useSDK();
31
- return sdk.useMyCourses(status, page, limit);
32
- }
33
-
34
- // src/hooks/useMyBundles.ts
35
- function useMyBundles(status, page, limit, search) {
36
- const sdk = useSDK();
37
- return sdk.useMyBundles(status, page, limit, search);
38
- }
39
-
40
- // src/hooks/useCourseSearch.ts
41
- function useCourseSearch(query) {
42
- const sdk = useSDK();
43
- return sdk.useCourseSearch(query);
44
- }
45
-
46
- // src/hooks/useNotes.ts
47
- function useLessonNotes(activityId) {
48
- const sdk = useSDK();
49
- return sdk.useLessonNotes(activityId);
50
- }
51
- function useCreateNote() {
52
- const sdk = useSDK();
53
- return sdk.useCreateNote();
54
- }
55
- function useUpdateNote() {
56
- const sdk = useSDK();
57
- return sdk.useUpdateNote();
58
- }
59
- function useDeleteNote() {
60
- const sdk = useSDK();
61
- return sdk.useDeleteNote();
62
- }
63
-
64
- // src/hooks/useBookmarks.ts
65
- function useLessonBookmarks(activityId) {
66
- const sdk = useSDK();
67
- return sdk.useLessonBookmarks(activityId);
68
- }
69
- function useCreateBookmark() {
70
- const sdk = useSDK();
71
- return sdk.useCreateBookmark();
72
- }
73
- function useUpdateBookmark() {
74
- const sdk = useSDK();
75
- return sdk.useUpdateBookmark();
76
- }
77
- function useDeleteBookmark() {
78
- const sdk = useSDK();
79
- return sdk.useDeleteBookmark();
80
- }
81
-
82
- // src/hooks/useAiCoach.ts
83
- function useAiCoachAvailability(courseId) {
84
- const sdk = useSDK();
85
- return sdk.useAiCoachAvailability(courseId);
86
- }
87
- function useAiCoachChat(courseId) {
88
- const sdk = useSDK();
89
- return sdk.useAiCoachChat(courseId);
90
- }
91
- function useAiCoachHistory(courseId, enabled) {
92
- const sdk = useSDK();
93
- return sdk.useAiCoachHistory(courseId, enabled);
94
- }
95
-
96
- // src/hooks/useNotifications.ts
97
- function useNotifications() {
98
- const sdk = useSDK();
99
- return sdk.useNotifications();
100
- }
101
-
102
- // src/hooks/useTheme.ts
103
- function useTheme() {
104
- const sdk = useSDK();
105
- return sdk.useTheme();
106
- }
107
-
108
- // src/hooks/useDebounce.ts
109
- function useDebounce(value, delay) {
110
- const sdk = useSDK();
111
- return sdk.useDebounce(value, delay);
112
- }
113
-
114
- // src/hooks/useToast.ts
115
- function useToast() {
116
- const sdk = useSDK();
117
- return sdk.useToast();
118
- }
119
- export {
120
- SDKProvider,
121
- useAiCoachAvailability,
122
- useAiCoachChat,
123
- useAiCoachHistory,
124
- useCourseSearch,
125
- useCreateBookmark,
126
- useCreateNote,
127
- useDebounce,
128
- useDeleteBookmark,
129
- useDeleteNote,
130
- useLessonBookmarks,
131
- useLessonNotes,
132
- useLogout,
133
- useMyBundles,
134
- useMyCourses,
135
- useNotifications,
136
- useSDK,
137
- useTheme,
138
- useToast,
139
- useUpdateBookmark,
140
- useUpdateNote,
141
- useUser
142
- };