@learnpack/learnpack 5.0.275 → 5.0.277

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 (95) hide show
  1. package/README.md +409 -409
  2. package/lib/commands/audit.js +15 -15
  3. package/lib/commands/breakToken.js +19 -19
  4. package/lib/commands/clean.js +3 -3
  5. package/lib/commands/init.js +41 -41
  6. package/lib/commands/logout.js +3 -3
  7. package/lib/commands/publish.js +5 -10
  8. package/lib/commands/serve.js +55 -2
  9. package/lib/creatorDist/assets/index-BfLyIQVh.js +10343 -10224
  10. package/lib/managers/config/index.js +77 -77
  11. package/lib/utils/api.d.ts +1 -1
  12. package/lib/utils/api.js +12 -9
  13. package/lib/utils/creatorUtilities.js +14 -14
  14. package/lib/utils/export/epub.d.ts +2 -0
  15. package/lib/utils/export/epub.js +298 -0
  16. package/lib/utils/export/index.d.ts +3 -0
  17. package/lib/utils/export/index.js +7 -0
  18. package/lib/utils/export/scorm.d.ts +2 -0
  19. package/lib/utils/export/scorm.js +84 -0
  20. package/lib/utils/export/shared.d.ts +4 -0
  21. package/lib/utils/export/shared.js +61 -0
  22. package/lib/utils/export/types.d.ts +15 -0
  23. package/lib/utils/export/types.js +2 -0
  24. package/package.json +2 -1
  25. package/src/commands/audit.ts +487 -487
  26. package/src/commands/breakToken.ts +67 -67
  27. package/src/commands/clean.ts +30 -30
  28. package/src/commands/init.ts +650 -650
  29. package/src/commands/logout.ts +38 -38
  30. package/src/commands/publish.ts +20 -25
  31. package/src/commands/serve.ts +69 -4
  32. package/src/commands/start.ts +333 -333
  33. package/src/commands/translate.ts +123 -123
  34. package/src/creator/README.md +54 -54
  35. package/src/creator/eslint.config.js +7 -7
  36. package/src/creator/src/components/syllabus/ContentIndex.tsx +312 -312
  37. package/src/creator/src/i18n.ts +28 -28
  38. package/src/creator/src/index.css +217 -217
  39. package/src/creator/src/locales/en.json +126 -126
  40. package/src/creator/src/locales/es.json +126 -126
  41. package/src/creator/src/utils/configTypes.ts +122 -122
  42. package/src/creator/src/utils/constants.ts +13 -13
  43. package/src/creator/src/utils/creatorUtils.ts +46 -46
  44. package/src/creator/src/utils/eventBus.ts +2 -2
  45. package/src/creator/src/utils/lib.ts +468 -468
  46. package/src/creator/src/utils/socket.ts +61 -61
  47. package/src/creator/src/utils/store.ts +222 -222
  48. package/src/creator/src/vite-env.d.ts +1 -1
  49. package/src/creator/vite.config.ts +13 -13
  50. package/src/creatorDist/assets/index-BfLyIQVh.js +10343 -10224
  51. package/src/managers/config/defaults.ts +49 -49
  52. package/src/managers/config/exercise.ts +364 -364
  53. package/src/managers/config/index.ts +775 -775
  54. package/src/managers/file.ts +236 -236
  55. package/src/managers/server/routes.ts +554 -554
  56. package/src/managers/session.ts +182 -182
  57. package/src/managers/telemetry.ts +188 -188
  58. package/src/models/action.ts +13 -13
  59. package/src/models/config-manager.ts +28 -28
  60. package/src/models/config.ts +106 -106
  61. package/src/models/creator.ts +47 -47
  62. package/src/models/exercise-obj.ts +30 -30
  63. package/src/models/session.ts +39 -39
  64. package/src/models/socket.ts +61 -61
  65. package/src/models/status.ts +16 -16
  66. package/src/ui/_app/app.css +1 -1
  67. package/src/ui/_app/app.js +400 -397
  68. package/src/ui/app.tar.gz +0 -0
  69. package/src/utils/BaseCommand.ts +56 -56
  70. package/src/utils/api.ts +53 -39
  71. package/src/utils/audit.ts +392 -392
  72. package/src/utils/checkNotInstalled.ts +267 -267
  73. package/src/utils/configBuilder.ts +82 -82
  74. package/src/utils/convertCreds.js +34 -34
  75. package/src/utils/creatorUtilities.ts +504 -504
  76. package/src/utils/export/README.md +178 -0
  77. package/src/utils/export/epub.ts +400 -0
  78. package/src/utils/export/index.ts +3 -0
  79. package/src/utils/export/scorm.ts +121 -0
  80. package/src/utils/export/shared.ts +61 -0
  81. package/src/utils/export/types.ts +17 -0
  82. package/src/utils/incrementVersion.js +74 -74
  83. package/src/utils/misc.ts +58 -58
  84. package/src/utils/rigoActions.ts +500 -500
  85. package/src/utils/sidebarGenerator.ts +195 -195
  86. package/src/utils/templates/epub/epub.css +133 -0
  87. package/src/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  88. package/src/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
  89. package/src/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -0
  90. package/src/utils/templates/scorm/config/api.js +175 -0
  91. package/src/utils/templates/scorm/config/index.html +210 -0
  92. package/src/utils/templates/scorm/ims_xml.xsd +1 -0
  93. package/src/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -0
  94. package/src/utils/templates/scorm/imsmanifest.xml +38 -0
  95. package/src/utils/templates/scorm/imsmd_rootv1p2p1.xsd +573 -0
@@ -1,28 +1,28 @@
1
- // src/i18n.ts
2
- import i18n from "i18next"
3
- import { initReactI18next } from "react-i18next"
4
- import LanguageDetector from "i18next-browser-languagedetector"
5
-
6
- import enTranslation from "./locales/en.json"
7
- import esTranslation from "./locales/es.json"
8
-
9
- i18n
10
- .use(LanguageDetector)
11
- .use(initReactI18next)
12
- .init({
13
- resources: {
14
- en: { translation: enTranslation },
15
- es: { translation: esTranslation },
16
- },
17
- fallbackLng: "en",
18
- interpolation: {
19
- escapeValue: false,
20
- },
21
- detection: {
22
- // Puedes personalizar el orden de detección si lo deseas
23
- order: ["querystring", "localStorage", "navigator"],
24
- caches: ["localStorage"],
25
- },
26
- })
27
-
28
- export default i18n
1
+ // src/i18n.ts
2
+ import i18n from "i18next"
3
+ import { initReactI18next } from "react-i18next"
4
+ import LanguageDetector from "i18next-browser-languagedetector"
5
+
6
+ import enTranslation from "./locales/en.json"
7
+ import esTranslation from "./locales/es.json"
8
+
9
+ i18n
10
+ .use(LanguageDetector)
11
+ .use(initReactI18next)
12
+ .init({
13
+ resources: {
14
+ en: { translation: enTranslation },
15
+ es: { translation: esTranslation },
16
+ },
17
+ fallbackLng: "en",
18
+ interpolation: {
19
+ escapeValue: false,
20
+ },
21
+ detection: {
22
+ // Puedes personalizar el orden de detección si lo deseas
23
+ order: ["querystring", "localStorage", "navigator"],
24
+ caches: ["localStorage"],
25
+ },
26
+ })
27
+
28
+ export default i18n
@@ -1,217 +1,217 @@
1
- @import "tailwindcss";
2
-
3
- :root {
4
- font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
5
- line-height: 1.5;
6
- font-weight: 400;
7
-
8
- color-scheme: light dark;
9
- color: #213547;
10
-
11
- font-synthesis: none;
12
- text-rendering: optimizeLegibility;
13
- -webkit-font-smoothing: antialiased;
14
- -moz-osx-font-smoothing: grayscale;
15
-
16
- --four-geeks-blue: #0097cf;
17
- --soft-blue: #f3fafd;
18
- --gray-text: #6883b4;
19
- --learnpack-blue: #02a9ea;
20
- --learnpack-light-blue: #c7f3fd;
21
- }
22
-
23
- a {
24
- font-weight: 500;
25
- color: var(--learnpack-blue);
26
- text-decoration: inherit;
27
- }
28
- a:hover {
29
- color: var(--learnpack-blue);
30
- }
31
-
32
- body {
33
- margin: 0;
34
- min-height: 100vh;
35
- background-color: #f4f9fe;
36
- }
37
-
38
- .bg-learnpack-blue {
39
- background-color: var(--soft-blue);
40
- }
41
-
42
- .bg-learnpack {
43
- background-color: var(--learnpack-blue);
44
- }
45
-
46
- .bg-gray-blue {
47
- background-color: #e7f1ff;
48
- }
49
-
50
- .index-circle {
51
- width: 30px;
52
- height: 30px;
53
- font-size: 16px;
54
- font-weight: 600;
55
- border-radius: 50%;
56
- color: var(--four-geeks-blue);
57
- background-color: var(--soft-blue);
58
- display: flex;
59
- align-items: center;
60
- justify-content: center;
61
- }
62
- .text-gray {
63
- color: var(--gray-text);
64
- }
65
-
66
- .scrollbar-hide {
67
- scrollbar-width: none !important;
68
- }
69
-
70
- .loader {
71
- display: flex;
72
- /* flex-direction: column; */
73
- align-items: center;
74
- gap: 10px;
75
- justify-content: center;
76
- animation: glowing 1000ms linear infinite;
77
- }
78
- @keyframes spin {
79
- from {
80
- transform: rotate(0deg);
81
- }
82
- to {
83
- transform: rotate(360deg);
84
- }
85
- }
86
-
87
- .loader-icon {
88
- width: 40px;
89
- height: 40px;
90
- position: relative;
91
- display: flex;
92
- align-items: center;
93
- justify-content: center;
94
- }
95
- /* .loader-icon::after {
96
- content: "";
97
- display: block;
98
- width: 100%;
99
- top: 0;
100
- left: 0;
101
- position: absolute;
102
- height: 100%;
103
- border: 2px solid var(--gray-text);
104
- border-top: 2px solid var(--learnpack-blue);
105
-
106
- border-radius: 50%;
107
- animation: spin 2s linear infinite;
108
- } */
109
-
110
- @keyframes glowing {
111
- 0% {
112
- opacity: 0.6;
113
- }
114
- 100% {
115
- opacity: 1;
116
- }
117
- }
118
-
119
- .blue-on-hover:hover {
120
- svg {
121
- fill: var(--learnpack-blue);
122
-
123
- path {
124
- fill: var(--learnpack-blue);
125
- }
126
- }
127
- }
128
-
129
- .border-learnpack-blue {
130
- border-color: var(--learnpack-blue);
131
- }
132
-
133
- .red-ball {
134
- width: 16px;
135
- height: 16px;
136
- border: 2px solid white;
137
- background-color: #eb5757;
138
- border-radius: 50%;
139
- position: absolute;
140
- top: -10px;
141
- left: 10px;
142
- }
143
-
144
- .fluid-svg {
145
- > svg {
146
- width: 100%;
147
- height: 100%;
148
- }
149
- }
150
-
151
- .outline-blue:focus {
152
- outline: 1px solid #51b3e5;
153
- }
154
-
155
- .border-C8DBFC {
156
- border-color: #c8dbfc;
157
- }
158
-
159
- .markdown-renderer {
160
- & ul {
161
- padding-left: 0;
162
- list-style-position: inside;
163
- list-style-type: disc;
164
- }
165
-
166
- & ol {
167
- padding-left: 0;
168
- list-style-position: inside;
169
- list-style-type: decimal;
170
- }
171
- }
172
-
173
- .appear {
174
- animation: appear 0.5s ease-in-out forwards;
175
- transform-origin: top center; /* o donde quieras que crezca */
176
- opacity: 0;
177
- transform: scaleY(0) translateY(20px);
178
- }
179
-
180
- @keyframes appear {
181
- from {
182
- opacity: 0;
183
- transform: scaleY(0) translateY(20px);
184
- }
185
- to {
186
- opacity: 1;
187
- transform: scaleY(1) translateY(0);
188
- }
189
- }
190
-
191
- .bg-heavy-blue {
192
- background-color: #9fbdf0;
193
- }
194
-
195
- .border-heavy-blue {
196
- border-color: #9fbdf0;
197
- &:focus {
198
- outline: 1px solid #9fbdf0;
199
- }
200
- }
201
-
202
- .cloudy {
203
- opacity: 0;
204
- transition: opacity 0.5s ease-in-out;
205
- animation: fadeIn 0.5s ease-in-out forwards;
206
- }
207
-
208
- @keyframes fadeIn {
209
- from {
210
- opacity: 0;
211
- transform: translateY(20px);
212
- }
213
- to {
214
- opacity: 1;
215
- transform: translateY(0);
216
- }
217
- }
1
+ @import "tailwindcss";
2
+
3
+ :root {
4
+ font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
5
+ line-height: 1.5;
6
+ font-weight: 400;
7
+
8
+ color-scheme: light dark;
9
+ color: #213547;
10
+
11
+ font-synthesis: none;
12
+ text-rendering: optimizeLegibility;
13
+ -webkit-font-smoothing: antialiased;
14
+ -moz-osx-font-smoothing: grayscale;
15
+
16
+ --four-geeks-blue: #0097cf;
17
+ --soft-blue: #f3fafd;
18
+ --gray-text: #6883b4;
19
+ --learnpack-blue: #02a9ea;
20
+ --learnpack-light-blue: #c7f3fd;
21
+ }
22
+
23
+ a {
24
+ font-weight: 500;
25
+ color: var(--learnpack-blue);
26
+ text-decoration: inherit;
27
+ }
28
+ a:hover {
29
+ color: var(--learnpack-blue);
30
+ }
31
+
32
+ body {
33
+ margin: 0;
34
+ min-height: 100vh;
35
+ background-color: #f4f9fe;
36
+ }
37
+
38
+ .bg-learnpack-blue {
39
+ background-color: var(--soft-blue);
40
+ }
41
+
42
+ .bg-learnpack {
43
+ background-color: var(--learnpack-blue);
44
+ }
45
+
46
+ .bg-gray-blue {
47
+ background-color: #e7f1ff;
48
+ }
49
+
50
+ .index-circle {
51
+ width: 30px;
52
+ height: 30px;
53
+ font-size: 16px;
54
+ font-weight: 600;
55
+ border-radius: 50%;
56
+ color: var(--four-geeks-blue);
57
+ background-color: var(--soft-blue);
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ }
62
+ .text-gray {
63
+ color: var(--gray-text);
64
+ }
65
+
66
+ .scrollbar-hide {
67
+ scrollbar-width: none !important;
68
+ }
69
+
70
+ .loader {
71
+ display: flex;
72
+ /* flex-direction: column; */
73
+ align-items: center;
74
+ gap: 10px;
75
+ justify-content: center;
76
+ animation: glowing 1000ms linear infinite;
77
+ }
78
+ @keyframes spin {
79
+ from {
80
+ transform: rotate(0deg);
81
+ }
82
+ to {
83
+ transform: rotate(360deg);
84
+ }
85
+ }
86
+
87
+ .loader-icon {
88
+ width: 40px;
89
+ height: 40px;
90
+ position: relative;
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ }
95
+ /* .loader-icon::after {
96
+ content: "";
97
+ display: block;
98
+ width: 100%;
99
+ top: 0;
100
+ left: 0;
101
+ position: absolute;
102
+ height: 100%;
103
+ border: 2px solid var(--gray-text);
104
+ border-top: 2px solid var(--learnpack-blue);
105
+
106
+ border-radius: 50%;
107
+ animation: spin 2s linear infinite;
108
+ } */
109
+
110
+ @keyframes glowing {
111
+ 0% {
112
+ opacity: 0.6;
113
+ }
114
+ 100% {
115
+ opacity: 1;
116
+ }
117
+ }
118
+
119
+ .blue-on-hover:hover {
120
+ svg {
121
+ fill: var(--learnpack-blue);
122
+
123
+ path {
124
+ fill: var(--learnpack-blue);
125
+ }
126
+ }
127
+ }
128
+
129
+ .border-learnpack-blue {
130
+ border-color: var(--learnpack-blue);
131
+ }
132
+
133
+ .red-ball {
134
+ width: 16px;
135
+ height: 16px;
136
+ border: 2px solid white;
137
+ background-color: #eb5757;
138
+ border-radius: 50%;
139
+ position: absolute;
140
+ top: -10px;
141
+ left: 10px;
142
+ }
143
+
144
+ .fluid-svg {
145
+ > svg {
146
+ width: 100%;
147
+ height: 100%;
148
+ }
149
+ }
150
+
151
+ .outline-blue:focus {
152
+ outline: 1px solid #51b3e5;
153
+ }
154
+
155
+ .border-C8DBFC {
156
+ border-color: #c8dbfc;
157
+ }
158
+
159
+ .markdown-renderer {
160
+ & ul {
161
+ padding-left: 0;
162
+ list-style-position: inside;
163
+ list-style-type: disc;
164
+ }
165
+
166
+ & ol {
167
+ padding-left: 0;
168
+ list-style-position: inside;
169
+ list-style-type: decimal;
170
+ }
171
+ }
172
+
173
+ .appear {
174
+ animation: appear 0.5s ease-in-out forwards;
175
+ transform-origin: top center; /* o donde quieras que crezca */
176
+ opacity: 0;
177
+ transform: scaleY(0) translateY(20px);
178
+ }
179
+
180
+ @keyframes appear {
181
+ from {
182
+ opacity: 0;
183
+ transform: scaleY(0) translateY(20px);
184
+ }
185
+ to {
186
+ opacity: 1;
187
+ transform: scaleY(1) translateY(0);
188
+ }
189
+ }
190
+
191
+ .bg-heavy-blue {
192
+ background-color: #9fbdf0;
193
+ }
194
+
195
+ .border-heavy-blue {
196
+ border-color: #9fbdf0;
197
+ &:focus {
198
+ outline: 1px solid #9fbdf0;
199
+ }
200
+ }
201
+
202
+ .cloudy {
203
+ opacity: 0;
204
+ transition: opacity 0.5s ease-in-out;
205
+ animation: fadeIn 0.5s ease-in-out forwards;
206
+ }
207
+
208
+ @keyframes fadeIn {
209
+ from {
210
+ opacity: 0;
211
+ transform: translateY(20px);
212
+ }
213
+ to {
214
+ opacity: 1;
215
+ transform: translateY(0);
216
+ }
217
+ }