munchboka-edutools 0.1.13__py3-none-any.whl

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.

Potentially problematic release.


This version of munchboka-edutools might be problematic. Click here for more details.

Files changed (149) hide show
  1. munchboka_edutools/__init__.py +184 -0
  2. munchboka_edutools/_plotmath_shim.py +126 -0
  3. munchboka_edutools/_version.py +2 -0
  4. munchboka_edutools/directives/__init__.py +1 -0
  5. munchboka_edutools/directives/admonitions.py +389 -0
  6. munchboka_edutools/directives/cas_popup.py +272 -0
  7. munchboka_edutools/directives/clear.py +103 -0
  8. munchboka_edutools/directives/dialogue.py +137 -0
  9. munchboka_edutools/directives/escape_room.py +296 -0
  10. munchboka_edutools/directives/factor_tree.py +549 -0
  11. munchboka_edutools/directives/ggb.py +209 -0
  12. munchboka_edutools/directives/ggb_icon.py +105 -0
  13. munchboka_edutools/directives/ggb_popup.py +165 -0
  14. munchboka_edutools/directives/horner.py +324 -0
  15. munchboka_edutools/directives/interactive_code.py +75 -0
  16. munchboka_edutools/directives/jeopardy.py +252 -0
  17. munchboka_edutools/directives/multi_plot.py +1126 -0
  18. munchboka_edutools/directives/pair_puzzle.py +191 -0
  19. munchboka_edutools/directives/parsons.py +109 -0
  20. munchboka_edutools/directives/plot.py +3105 -0
  21. munchboka_edutools/directives/poly_icon.py +111 -0
  22. munchboka_edutools/directives/polydiv.py +344 -0
  23. munchboka_edutools/directives/popup.py +245 -0
  24. munchboka_edutools/directives/quiz.py +291 -0
  25. munchboka_edutools/directives/signchart.py +516 -0
  26. munchboka_edutools/directives/timed_quiz.py +436 -0
  27. munchboka_edutools/directives/turtle.py +157 -0
  28. munchboka_edutools/static/css/admonitions.css +2012 -0
  29. munchboka_edutools/static/css/cas_popup.css +242 -0
  30. munchboka_edutools/static/css/code_mirror_themes/github_dark_cm.css +112 -0
  31. munchboka_edutools/static/css/code_mirror_themes/github_dark_default_cm.css +40 -0
  32. munchboka_edutools/static/css/code_mirror_themes/github_dark_high_contrast_cm.css +141 -0
  33. munchboka_edutools/static/css/code_mirror_themes/github_light_cm.css +120 -0
  34. munchboka_edutools/static/css/code_mirror_themes/github_light_default_cm.css +108 -0
  35. munchboka_edutools/static/css/code_mirror_themes/one_dark_cm.css +121 -0
  36. munchboka_edutools/static/css/dialogue.css +92 -0
  37. munchboka_edutools/static/css/escapeRoom/escape-room.css +223 -0
  38. munchboka_edutools/static/css/figures.css +274 -0
  39. munchboka_edutools/static/css/general_style.css +74 -0
  40. munchboka_edutools/static/css/github-dark-high-contrast.css +141 -0
  41. munchboka_edutools/static/css/github-dark.css +112 -0
  42. munchboka_edutools/static/css/github-light.css +120 -0
  43. munchboka_edutools/static/css/interactive_code/style.css +575 -0
  44. munchboka_edutools/static/css/interactive_code.css +582 -0
  45. munchboka_edutools/static/css/jeopardy.css +529 -0
  46. munchboka_edutools/static/css/pairPuzzle/style.css +177 -0
  47. munchboka_edutools/static/css/parsons/parsonsPuzzle.css +331 -0
  48. munchboka_edutools/static/css/popup.css +115 -0
  49. munchboka_edutools/static/css/quiz.css +312 -0
  50. munchboka_edutools/static/css/timedQuiz.css +375 -0
  51. munchboka_edutools/static/icons/ggb/mode_evaluate.svg +1 -0
  52. munchboka_edutools/static/icons/ggb/mode_extremum.svg +1 -0
  53. munchboka_edutools/static/icons/ggb/mode_intersect.svg +1 -0
  54. munchboka_edutools/static/icons/ggb/mode_nsolve.svg +1 -0
  55. munchboka_edutools/static/icons/ggb/mode_numeric.svg +1 -0
  56. munchboka_edutools/static/icons/ggb/mode_point.svg +1 -0
  57. munchboka_edutools/static/icons/ggb/mode_solve.svg +1 -0
  58. munchboka_edutools/static/icons/misc/windows-logo.svg +1 -0
  59. munchboka_edutools/static/icons/outline/dark_mode/academic.svg +3 -0
  60. munchboka_edutools/static/icons/outline/dark_mode/backward.svg +3 -0
  61. munchboka_edutools/static/icons/outline/dark_mode/book.svg +3 -0
  62. munchboka_edutools/static/icons/outline/dark_mode/chat_bubble.svg +3 -0
  63. munchboka_edutools/static/icons/outline/dark_mode/check.svg +3 -0
  64. munchboka_edutools/static/icons/outline/dark_mode/cmd_line.svg +3 -0
  65. munchboka_edutools/static/icons/outline/dark_mode/file.svg +1 -0
  66. munchboka_edutools/static/icons/outline/dark_mode/fire.svg +4 -0
  67. munchboka_edutools/static/icons/outline/dark_mode/key.svg +3 -0
  68. munchboka_edutools/static/icons/outline/dark_mode/magnifying.svg +3 -0
  69. munchboka_edutools/static/icons/outline/dark_mode/pencil_square.svg +3 -0
  70. munchboka_edutools/static/icons/outline/dark_mode/play.svg +3 -0
  71. munchboka_edutools/static/icons/outline/dark_mode/question.svg +3 -0
  72. munchboka_edutools/static/icons/outline/dark_mode/square_check.svg +1 -0
  73. munchboka_edutools/static/icons/outline/dark_mode/stop.svg +3 -0
  74. munchboka_edutools/static/icons/outline/dark_mode/summary.svg +3 -0
  75. munchboka_edutools/static/icons/outline/dark_mode/undo.svg +3 -0
  76. munchboka_edutools/static/icons/outline/dark_mode/unlock.svg +3 -0
  77. munchboka_edutools/static/icons/outline/light_mode/academic.svg +3 -0
  78. munchboka_edutools/static/icons/outline/light_mode/backward.svg +3 -0
  79. munchboka_edutools/static/icons/outline/light_mode/book.svg +3 -0
  80. munchboka_edutools/static/icons/outline/light_mode/chat_bubble.svg +3 -0
  81. munchboka_edutools/static/icons/outline/light_mode/check.svg +3 -0
  82. munchboka_edutools/static/icons/outline/light_mode/cmd_line.svg +3 -0
  83. munchboka_edutools/static/icons/outline/light_mode/file.svg +1 -0
  84. munchboka_edutools/static/icons/outline/light_mode/fire.svg +4 -0
  85. munchboka_edutools/static/icons/outline/light_mode/key.svg +3 -0
  86. munchboka_edutools/static/icons/outline/light_mode/magnifying.svg +3 -0
  87. munchboka_edutools/static/icons/outline/light_mode/pencil_square.svg +3 -0
  88. munchboka_edutools/static/icons/outline/light_mode/play.svg +3 -0
  89. munchboka_edutools/static/icons/outline/light_mode/question.svg +3 -0
  90. munchboka_edutools/static/icons/outline/light_mode/square_check.svg +1 -0
  91. munchboka_edutools/static/icons/outline/light_mode/stop.svg +3 -0
  92. munchboka_edutools/static/icons/outline/light_mode/summary.svg +3 -0
  93. munchboka_edutools/static/icons/outline/light_mode/undo.svg +3 -0
  94. munchboka_edutools/static/icons/outline/light_mode/unlock.svg +3 -0
  95. munchboka_edutools/static/icons/polyicons/cubicdown.svg +3 -0
  96. munchboka_edutools/static/icons/polyicons/cubicup.svg +3 -0
  97. munchboka_edutools/static/icons/polyicons/frown.svg +3 -0
  98. munchboka_edutools/static/icons/polyicons/smile.svg +3 -0
  99. munchboka_edutools/static/icons/solid/dark_mode/academic.svg +5 -0
  100. munchboka_edutools/static/icons/solid/dark_mode/backward.svg +3 -0
  101. munchboka_edutools/static/icons/solid/dark_mode/book.svg +3 -0
  102. munchboka_edutools/static/icons/solid/dark_mode/brain.svg +1 -0
  103. munchboka_edutools/static/icons/solid/dark_mode/file.svg +1 -0
  104. munchboka_edutools/static/icons/solid/dark_mode/fire.svg +3 -0
  105. munchboka_edutools/static/icons/solid/dark_mode/key.svg +3 -0
  106. munchboka_edutools/static/icons/solid/dark_mode/pencil_square.svg +4 -0
  107. munchboka_edutools/static/icons/solid/dark_mode/play.svg +3 -0
  108. munchboka_edutools/static/icons/solid/dark_mode/python.svg +1 -0
  109. munchboka_edutools/static/icons/solid/dark_mode/scroll.svg +1 -0
  110. munchboka_edutools/static/icons/solid/dark_mode/stop.svg +3 -0
  111. munchboka_edutools/static/icons/solid/light_mode/academic.svg +5 -0
  112. munchboka_edutools/static/icons/solid/light_mode/backward.svg +3 -0
  113. munchboka_edutools/static/icons/solid/light_mode/book.svg +3 -0
  114. munchboka_edutools/static/icons/solid/light_mode/brain.svg +1 -0
  115. munchboka_edutools/static/icons/solid/light_mode/file.svg +1 -0
  116. munchboka_edutools/static/icons/solid/light_mode/fire.svg +3 -0
  117. munchboka_edutools/static/icons/solid/light_mode/key.svg +3 -0
  118. munchboka_edutools/static/icons/solid/light_mode/pencil_square.svg +4 -0
  119. munchboka_edutools/static/icons/solid/light_mode/play.svg +3 -0
  120. munchboka_edutools/static/icons/solid/light_mode/python.svg +1 -0
  121. munchboka_edutools/static/icons/solid/light_mode/scroll.svg +1 -0
  122. munchboka_edutools/static/icons/solid/light_mode/stop.svg +3 -0
  123. munchboka_edutools/static/icons/stickers/edit.svg +1 -0
  124. munchboka_edutools/static/icons/stickers/pencil_square.svg +3 -0
  125. munchboka_edutools/static/js/casThemeManager.js +99 -0
  126. munchboka_edutools/static/js/escapeRoom/escape-room.js +219 -0
  127. munchboka_edutools/static/js/geogebra-setup.js +6 -0
  128. munchboka_edutools/static/js/highlight-init.js +6 -0
  129. munchboka_edutools/static/js/interactiveCode/codeEditor.js +632 -0
  130. munchboka_edutools/static/js/interactiveCode/interactiveCodeSetup.js +348 -0
  131. munchboka_edutools/static/js/interactiveCode/pythonRunner.js +336 -0
  132. munchboka_edutools/static/js/interactiveCode/turtleCode.js +203 -0
  133. munchboka_edutools/static/js/interactiveCode/workerManager.js +353 -0
  134. munchboka_edutools/static/js/jeopardy.js +523 -0
  135. munchboka_edutools/static/js/pairPuzzle/draggableItem.js +64 -0
  136. munchboka_edutools/static/js/pairPuzzle/dropZone.js +119 -0
  137. munchboka_edutools/static/js/pairPuzzle/game.js +160 -0
  138. munchboka_edutools/static/js/parsons/parsonsPuzzle.js +641 -0
  139. munchboka_edutools/static/js/popup.js +85 -0
  140. munchboka_edutools/static/js/quiz.js +422 -0
  141. munchboka_edutools/static/js/skulpt/skulpt.js +35721 -0
  142. munchboka_edutools/static/js/timedQuiz/multipleChoiceQuestion.js +184 -0
  143. munchboka_edutools/static/js/timedQuiz/timedMultipleChoiceQuiz.js +244 -0
  144. munchboka_edutools/static/js/timedQuiz/utils.js +6 -0
  145. munchboka_edutools/static/js/utils.js +3 -0
  146. munchboka_edutools-0.1.13.dist-info/METADATA +108 -0
  147. munchboka_edutools-0.1.13.dist-info/RECORD +149 -0
  148. munchboka_edutools-0.1.13.dist-info/WHEEL +4 -0
  149. munchboka_edutools-0.1.13.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,312 @@
1
+ /* Multiple Choice Quiz Styles */
2
+
3
+ /* Default (Light Mode) Variables */
4
+ :root {
5
+ --background-color: #f0f2f5;
6
+ --text-color: #1a1a1a;
7
+ --card-background-color: #ffffff;
8
+ --card-border-color: #ced4da;
9
+ --card-shadow-color: rgba(0, 0, 0, 0.1);
10
+ --answer-background-color: #f8f9fa;
11
+ --answer-border-color: #ced4da;
12
+ --answer-hover-background-color: #e2e6ea;
13
+ --selected-background-color: #d1e7dd;
14
+ --selected-border-color: #0f5132;
15
+ --selected-text-color: #0f5132;
16
+ --correct-border-color: #198754;
17
+ --incorrect-border-color: #dc3545;
18
+ --button-background-color: #0d6efd;
19
+ --button-text-color: #ffffff;
20
+ --button-hover-background-color: #0b5ed7;
21
+ --toast-background-color: rgba(33, 37, 41, 0.9);
22
+ --toast-text-color: #ffffff;
23
+ --toast-success-background-color: rgba(25, 135, 84, 0.9);
24
+ --toast-success-text-color: #ffffff;
25
+ --toast-error-background-color: rgba(220, 53, 69, 0.9);
26
+ --toast-error-text-color: #ffffff;
27
+
28
+ /* Timer Variables */
29
+ --timer-background-color: #e9ecef;
30
+ --timer-text-color: #212529;
31
+ --progress-bar-background-color: #28a745; /* Green */
32
+ --progress-bar-warning-color: #ffc107; /* Yellow */
33
+ --progress-bar-danger-color: #dc3545; /* Red */
34
+ --progress-bar-transition: width 1s linear;
35
+ }
36
+
37
+ /* Dark Mode Variables */
38
+ [data-mode="dark"] {
39
+ --text-color: #e9ecef !important;
40
+ --card-background-color: #111522a4;
41
+ --card-border-color: #343640;
42
+ --card-shadow-color: rgba(0, 0, 0, 0.5);
43
+ --answer-background-color: #11152201;
44
+ --answer-border-color: #343a40;
45
+ --answer-hover-background-color: #80a2ff1b;
46
+ --selected-background-color: #0096879a;
47
+ --selected-border-color: #0f5132;
48
+ --selected-text-color: #ffffff;
49
+ --correct-border-color: #198754;
50
+ --incorrect-border-color: #dc3545;
51
+ --button-background-color: #0d6efd;
52
+ --button-text-color: #ffffff;
53
+ --button-hover-background-color: #0b5ed7;
54
+ --toast-background-color: rgba(248, 249, 250, 0.9);
55
+ --toast-text-color: #212529;
56
+ --toast-success-background-color: rgba(25, 135, 84, 0.9);
57
+ --toast-success-text-color: #ffffff;
58
+ --toast-error-background-color: rgba(220, 53, 69, 0.9);
59
+ --toast-error-text-color: #ffffff;
60
+
61
+ /* Timer variables */
62
+ --timer-background-color: #343a40;
63
+ --timer-text-color: #f8f9fa;
64
+ --progress-bar-background-color: #28a745; /* Green */
65
+ --progress-bar-warning-color: #ffc107; /* Yellow */
66
+ --progress-bar-danger-color: #dc3545; /* Red */
67
+ --progress-bar-transition: width 1s linear;
68
+ }
69
+
70
+ /* Auto Mode Variables */
71
+ [data-mode="auto"] { /* inherits light variables by default */ }
72
+
73
+ @media (prefers-color-scheme: dark) {
74
+ [data-mode="auto"] {
75
+ --text-color: #e9ecef !important;
76
+ --card-background-color: #111522a4;
77
+ --card-border-color: #343a40;
78
+ --card-shadow-color: rgba(0, 0, 0, 0.5);
79
+ --answer-background-color: #11152201;
80
+ --answer-border-color: #343a40;
81
+ --answer-hover-background-color: #80a2ff1b;
82
+ --selected-background-color: #0096879a;
83
+ --selected-border-color: #0f5132;
84
+ --selected-text-color: #ffffff;
85
+ --correct-border-color: #198754;
86
+ --incorrect-border-color: #dc3545;
87
+ --button-background-color: #0d6efd;
88
+ --button-text-color: #ffffff;
89
+ --button-hover-background-color: #0b5ed7;
90
+ --toast-background-color: rgba(248, 249, 250, 0.9);
91
+ --toast-text-color: #212529;
92
+ --toast-success-background-color: rgba(25, 135, 84, 0.9);
93
+ --toast-success-text-color: #ffffff;
94
+ --toast-error-background-color: rgba(220, 53, 69, 0.9);
95
+ --toast-error-text-color: #ffffff;
96
+ --timer-background-color: #343a40;
97
+ --timer-text-color: #f8f9fa;
98
+ --progress-bar-background-color: #28a745;
99
+ --progress-bar-warning-color: #ffc107;
100
+ --progress-bar-danger-color: #dc3545;
101
+ --progress-bar-transition: width 1s linear;
102
+ }
103
+ }
104
+
105
+ /* Multiple Choice Quiz Container */
106
+ .mcq-container {
107
+ margin: 20px 0;
108
+ position: relative;
109
+ }
110
+
111
+ /* Question Card Styles */
112
+ .question-card {
113
+ background-color: var(--card-background-color);
114
+ padding: 25px;
115
+ border-radius: 12px;
116
+ margin-bottom: 20px;
117
+ border: 1px solid var(--card-border-color);
118
+ line-height: 1.6;
119
+ box-shadow: 0 4px 10px var(--card-shadow-color);
120
+ transition: transform 0.3s, box-shadow 0.3s;
121
+ }
122
+
123
+ .question-card:hover {
124
+ transform: translateY(-5px);
125
+ box-shadow: 0 6px 15px var(--card-shadow-color);
126
+ }
127
+
128
+ /* Answers Grid */
129
+ .answers-grid {
130
+ display: flex;
131
+ flex-wrap: wrap;
132
+ gap: 15px;
133
+ }
134
+
135
+ /* Answer Card Styles */
136
+ .answer-card {
137
+ flex: 1 1 calc(50% - 15px);
138
+ background-color: var(--answer-background-color);
139
+ padding: 15px;
140
+ border-radius: 8px;
141
+ cursor: pointer;
142
+ text-align: left;
143
+ border: 1px solid var(--answer-border-color);
144
+ transition: background-color 0.3s, border-color 0.3s;
145
+ line-height: 1.4;
146
+ }
147
+
148
+ .answer-card pre,
149
+ .answer-card code {
150
+ margin: 0;
151
+ padding: 0;
152
+ line-height: 1.4;
153
+ }
154
+
155
+ .answer-card:hover {
156
+ background-color: var(--answer-hover-background-color);
157
+ }
158
+
159
+ .answer-card.selected {
160
+ background-color: var(--selected-background-color);
161
+ border: 2px solid var(--selected-border-color);
162
+ color: var(--selected-text-color);
163
+ }
164
+
165
+ /* Correct and Incorrect Question Card Borders */
166
+ .question-card.correct {
167
+ border: 2px solid var(--correct-border-color);
168
+ }
169
+
170
+ .question-card.incorrect {
171
+ border: 2px solid var(--incorrect-border-color);
172
+ }
173
+
174
+ /* Buttons */
175
+ .quiz-main-container .button-container {
176
+ margin-top: 20px;
177
+ text-align: center; /* match original */
178
+ }
179
+
180
+ /* Ensure inline layout and spacing like original */
181
+ .quiz-main-container .button { display: inline-block; margin: 5px; }
182
+
183
+ .button {
184
+ color: teal;
185
+ border: none;
186
+ padding: 8px 20px;
187
+ text-align: center;
188
+ text-decoration: none;
189
+ display: inline-block;
190
+ font-size: 16px;
191
+ margin: 4px 2px;
192
+ cursor: pointer;
193
+ border-radius: 8px;
194
+ transition: background-color 0.3s, transform 0.2s;
195
+ }
196
+
197
+ .button:hover {
198
+ background-color: var(--button-hover-background-color);
199
+ transform: translateY(-2px);
200
+ }
201
+
202
+ .button:active {
203
+ transform: translateY(0);
204
+ }
205
+
206
+ /* Run (Check) button aligns with interactive code style */
207
+ .button-run {
208
+ background-color: #28a745;
209
+ color: black;
210
+ }
211
+
212
+ .button-run:hover {
213
+ background-color: #218838;
214
+ }
215
+
216
+ .button-run:active {
217
+ background-color: #1e7e34;
218
+ box-shadow: 0 5px #666;
219
+ transform: translateY(4px);
220
+ }
221
+
222
+ /* Next button */
223
+ .button-next {
224
+ background-color: #00ffb7bd;
225
+ color: black !important;
226
+ }
227
+
228
+ .button-next:hover {
229
+ background-color: #02cbbe;
230
+ }
231
+
232
+ .button-next:active {
233
+ background-color: #00a095;
234
+ box-shadow: 0 5px #666;
235
+ transform: translateY(4px);
236
+ }
237
+
238
+ /* Previous button */
239
+ .button-prev {
240
+ background-color: #ff8800;
241
+ color: black !important;
242
+ }
243
+
244
+ .button-prev:hover {
245
+ background-color: #c66900;
246
+ }
247
+
248
+ .button-prev:active {
249
+ background-color: #ad5d01;
250
+ box-shadow: 0 5px #666;
251
+ transform: translateY(4px);
252
+ }
253
+
254
+ /* Toast Notification */
255
+ .toast {
256
+ position: absolute;
257
+ padding: 15px;
258
+ border-radius: 8px;
259
+ z-index: 1000;
260
+ display: none;
261
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
262
+ }
263
+
264
+ .toast p {
265
+ margin: 0;
266
+ font-size: 16px;
267
+ font-weight: bold;
268
+ }
269
+
270
+ /* Success Toast */
271
+ .toast-success {
272
+ background-color: var(--toast-success-background-color);
273
+ color: var(--toast-success-text-color);
274
+ }
275
+
276
+ /* Error Toast */
277
+ .toast-error {
278
+ background-color: var(--toast-error-background-color) !important;
279
+ color: var(--toast-error-text-color);
280
+ }
281
+
282
+ /* Main Quiz Container */
283
+ .quiz-main-container {
284
+ position: relative;
285
+ }
286
+
287
+ /* Responsive Design */
288
+ @media (max-width: 600px) {
289
+ .answer-card {
290
+ flex: 1 1 100%;
291
+ }
292
+ .quiz-main-container .button-container { text-align: center; }
293
+ }
294
+
295
+ /* Question Counter */
296
+ .question-counter {
297
+ font-size: 18px;
298
+ font-weight: bold;
299
+ margin-bottom: 15px;
300
+ text-align: center;
301
+ color: var(--text-color);
302
+ }
303
+
304
+ /* Quiz Completion Message */
305
+ .quiz-completion-message {
306
+ text-align: center;
307
+ font-size: 24px;
308
+ font-weight: bold;
309
+ color: var(--text-color);
310
+ padding: 50px;
311
+ }
312
+
@@ -0,0 +1,375 @@
1
+ /* Multiple Choice Quiz Styles */
2
+
3
+ /* Default (Light Mode) Variables */
4
+ :root {
5
+ --background-color: #f0f2f5;
6
+ --text-color: #1a1a1a;
7
+ --card-background-color: #ffffff;
8
+ --card-border-color: #ced4da;
9
+ --card-shadow-color: rgba(0, 0, 0, 0.1);
10
+ --answer-background-color: #f8f9fa;
11
+ --answer-border-color: #ced4da;
12
+ --answer-hover-background-color: #e2e6ea;
13
+ --selected-background-color: #d1e7dd;
14
+ --selected-border-color: #0f5132;
15
+ --selected-text-color: #0f5132;
16
+ --correct-border-color: #198754;
17
+ --incorrect-border-color: #dc3545;
18
+ --button-background-color: #0d6efd;
19
+ --button-text-color: #ffffff;
20
+ --button-hover-background-color: #0b5ed7;
21
+ --toast-background-color: rgba(33, 37, 41, 0.9);
22
+ --toast-text-color: #ffffff;
23
+ --toast-success-background-color: rgba(25, 135, 84, 0.9); /* Green */
24
+ --toast-success-text-color: #ffffff;
25
+ --toast-error-background-color: rgba(220, 53, 69, 0.9); /* Red */
26
+ --toast-error-text-color: #ffffff;
27
+
28
+ /* Timer Variables */
29
+ --timer-background-color: #e9ecef;
30
+ --timer-text-color: #212529;
31
+ --progress-bar-background-color: #28a745; /* Green */
32
+ --progress-bar-warning-color: #ffc107; /* Yellow */
33
+ --progress-bar-danger-color: #dc3545; /* Red */
34
+ --progress-bar-transition: width 1s linear;
35
+ }
36
+
37
+ /* Dark Mode Variables */
38
+ [data-mode="dark"] {
39
+ /* --background-color: #121212; */
40
+ --text-color: #e9ecef !important;
41
+ --card-background-color: #111522a4;
42
+ --card-border-color: #343640;
43
+ --card-shadow-color: rgba(0, 0, 0, 0.5);
44
+ --answer-background-color: #11152201;
45
+ --answer-border-color: #343a40;
46
+ --answer-hover-background-color: #80a2ff1b;
47
+ --selected-background-color: #0096879a;
48
+ --selected-border-color: #0f5132;
49
+ --selected-text-color: #ffffff;
50
+ --correct-border-color: #198754;
51
+ --incorrect-border-color: #dc3545;
52
+ --button-background-color: #0d6efd;
53
+ --button-text-color: #ffffff;
54
+ --button-hover-background-color: #0b5ed7;
55
+ --toast-background-color: rgba(248, 249, 250, 0.9);
56
+ --toast-text-color: #212529;
57
+ --toast-success-background-color: rgba(25, 135, 84, 0.9); /* Green */
58
+ --toast-success-text-color: #ffffff;
59
+ --toast-error-background-color: rgba(220, 53, 69, 0.9); /* Red */
60
+ --toast-error-text-color: #ffffff;
61
+
62
+ /* Timer variables */
63
+ --timer-background-color: #343a40;
64
+ --timer-text-color: #f8f9fa;
65
+ --progress-bar-background-color: #28a745; /* Green */
66
+ --progress-bar-warning-color: #ffc107; /* Yellow */
67
+ --progress-bar-danger-color: #dc3545; /* Red */
68
+ --progress-bar-transition: width 1s linear;
69
+ }
70
+
71
+ /* Auto Mode Variables */
72
+ [data-mode="auto"] {
73
+ /* Defaults to light mode variables */
74
+ }
75
+
76
+ @media (prefers-color-scheme: dark) {
77
+ [data-mode="auto"] {
78
+ /* Variables for dark mode */
79
+ /* --background-color: #121212; */
80
+ --text-color: #e9ecef !important;
81
+ --card-background-color: #111522a4;
82
+ --card-border-color: #343a40;
83
+ --card-shadow-color: rgba(0, 0, 0, 0.5);
84
+ --answer-background-color: #11152201;
85
+ --answer-border-color: #343a40;
86
+ --answer-hover-background-color: #80a2ff1b;
87
+ --selected-background-color: #0096879a;
88
+ --selected-border-color: #0f5132;
89
+ --selected-text-color: #ffffff;
90
+ --correct-border-color: #198754;
91
+ --incorrect-border-color: #dc3545;
92
+ --button-background-color: #0d6efd;
93
+ --button-text-color: #ffffff;
94
+ --button-hover-background-color: #0b5ed7;
95
+ --toast-background-color: rgba(248, 249, 250, 0.9);
96
+ --toast-text-color: #212529;
97
+ --toast-success-background-color: rgba(25, 135, 84, 0.9); /* Green */
98
+ --toast-success-text-color: #ffffff;
99
+ --toast-error-background-color: rgba(220, 53, 69, 0.9); /* Red */
100
+ --toast-error-text-color: #ffffff;
101
+
102
+ /* Timer Variables */
103
+ --timer-background-color: #343a40;
104
+ --timer-text-color: #f8f9fa;
105
+ --progress-bar-background-color: #28a745; /* Green */
106
+ --progress-bar-warning-color: #ffc107; /* Yellow */
107
+ --progress-bar-danger-color: #dc3545; /* Red */
108
+ --progress-bar-transition: width 1s linear;
109
+ }
110
+ }
111
+
112
+
113
+ /* Multiple Choice Quiz Container */
114
+ .mcq-container {
115
+ margin: 20px 0;
116
+ position: relative;
117
+ }
118
+
119
+ /* Question Card Styles */
120
+ .question-card {
121
+ background-color: var(--card-background-color);
122
+ padding: 25px; /* Increased padding */
123
+ border-radius: 12px; /* Increased border radius */
124
+ margin-bottom: 20px;
125
+ border: 1px solid var(--card-border-color);
126
+ /* font-size: 18px; */
127
+ line-height: 1.6;
128
+ box-shadow: 0 4px 10px var(--card-shadow-color); /* Added shadow */
129
+ transition: transform 0.3s, box-shadow 0.3s;
130
+ }
131
+
132
+ .question-card:hover {
133
+ transform: translateY(-5px); /* Lift effect on hover */
134
+ box-shadow: 0 6px 15px var(--card-shadow-color); /* Enhanced shadow on hover */
135
+ }
136
+
137
+ /* Answers Grid */
138
+ .answers-grid {
139
+ display: flex;
140
+ flex-wrap: wrap;
141
+ gap: 15px;
142
+ }
143
+
144
+ /* Answer Card Styles */
145
+ .answer-card {
146
+ flex: 1 1 calc(50% - 15px);
147
+ background-color: var(--answer-background-color);
148
+ padding: 15px 15px 15px 15px; /* Equal padding on all sides */
149
+ border-radius: 8px;
150
+ cursor: pointer;
151
+ text-align: left;
152
+ border: 1px solid var(--answer-border-color);
153
+ transition: background-color 0.3s, border-color 0.3s;
154
+ /* font-size: 18px; */
155
+ line-height: 1.4;
156
+ }
157
+
158
+ .answer-card pre,
159
+ .answer-card code {
160
+ margin: 0;
161
+ padding: 0;
162
+ line-height: 1.4; /* Adjust this as needed for spacing */
163
+ }
164
+
165
+ .answer-card:hover {
166
+ background-color: var(--answer-hover-background-color);
167
+ }
168
+
169
+ .answer-card.selected {
170
+ background-color: var(--selected-background-color);
171
+ border: 2px solid var(--selected-border-color);
172
+ color: var(--selected-text-color);
173
+ }
174
+
175
+ /* Correct and Incorrect Question Card Borders */
176
+ .question-card.correct {
177
+ border: 2px solid var(--correct-border-color);
178
+ }
179
+
180
+ .question-card.incorrect {
181
+ border: 2px solid var(--incorrect-border-color);
182
+ }
183
+
184
+ /* Buttons */
185
+ .button-container {
186
+ margin-top: 20px;
187
+ text-align: center;
188
+ }
189
+
190
+ /* .button {
191
+ margin: 5px;
192
+ padding: 12px 24px;
193
+ background-color: var(--button-background-color);
194
+ color: var(--button-text-color);
195
+ border: none;
196
+ border-radius: 5px;
197
+ cursor: pointer;
198
+ font-size: 16px;
199
+ transition: background-color 0.3s, transform 0.2s;
200
+ } */
201
+
202
+ .button:hover {
203
+ background-color: var(--button-hover-background-color);
204
+ transform: translateY(-2px);
205
+ }
206
+
207
+ .button:active {
208
+ transform: translateY(0);
209
+ }
210
+
211
+
212
+ .button-check-answers {
213
+ background-color: #28a745; /* Green background */
214
+ color: black !important; /* Black text */
215
+ }
216
+
217
+ .button-submit-answers {
218
+ background-color: #28a745; /* Green background */
219
+ color: black !important; /* Black text */
220
+ }
221
+
222
+ .button-reset-quiz {
223
+ background-color: #28a745; /* Green background */
224
+ color: black !important; /* Black text */
225
+ }
226
+
227
+
228
+ /* Next button */
229
+ .button-next {
230
+ background-color: #00ffb7bd; /* Green background */
231
+ color: black !important; /* Black text */
232
+ }
233
+
234
+ .button-next:hover {
235
+ background-color: #02cbbe; /* Darker green on hover */
236
+ }
237
+
238
+ .button-next:active {
239
+ background-color: #00a095; /* Even darker green on click */
240
+ box-shadow: 0 5px #666; /* Shadow effect */
241
+ transform: translateY(4px); /* Move button down */
242
+ }
243
+
244
+ /* Previous button */
245
+ .button-prev {
246
+ background-color: #ff8800; /* Green background */
247
+ color: black !important; /* Black text */
248
+ }
249
+
250
+ .button-prev:hover {
251
+ background-color: #c66900; /* Darker green on hover */
252
+ }
253
+
254
+ .button-prev:active {
255
+ background-color: #ad5d01; /* Even darker green on click */
256
+ box-shadow: 0 5px #666; /* Shadow effect */
257
+ transform: translateY(4px); /* Move button down */
258
+ }
259
+
260
+
261
+ /* Toast Notification */
262
+ .toast {
263
+ position: absolute;
264
+ padding: 15px;
265
+ border-radius: 8px;
266
+ z-index: 1000;
267
+ display: none;
268
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
269
+ /* transform: translate(-50%, -50%); */
270
+ }
271
+
272
+
273
+ .toast p {
274
+ margin: 0;
275
+ font-size: 16px;
276
+ font-weight: bold;
277
+ }
278
+
279
+ /* Success Toast */
280
+ .toast-success {
281
+ background-color: var(--toast-success-background-color);
282
+ color: var(--toast-success-text-color);
283
+ }
284
+
285
+ /* Error Toast */
286
+ .toast-error {
287
+ background-color: var(--toast-error-background-color) !important;
288
+ color: var(--toast-error-text-color);
289
+ }
290
+
291
+ /* Main Quiz Container */
292
+ .quiz-main-container {
293
+ position: relative;
294
+ }
295
+
296
+ /* Responsive Design */
297
+ @media (max-width: 600px) {
298
+ .answer-card {
299
+ flex: 1 1 100%;
300
+ }
301
+ }
302
+
303
+
304
+
305
+ /* Question Counter */
306
+ .question-counter {
307
+ font-size: 18px;
308
+ font-weight: bold;
309
+ margin-bottom: 15px;
310
+ text-align: center;
311
+ color: var(--text-color);
312
+ }
313
+
314
+ /* Quiz Completion Message */
315
+ .quiz-completion-message {
316
+ text-align: center;
317
+ font-size: 24px;
318
+ font-weight: bold;
319
+ color: var(--text-color);
320
+ padding: 50px;
321
+ }
322
+
323
+
324
+ .pre.img {
325
+ display: block;
326
+ margin-left: auto;
327
+ margin-right: auto;
328
+ }
329
+
330
+
331
+
332
+ /* Styles for the timed multiple choice quiz */
333
+
334
+ /* Timer Container */
335
+ .timer-container {
336
+ position: relative;
337
+ width: 100%;
338
+ height: 30px;
339
+ background-color: var(--timer-background-color);
340
+ border-radius: 5px;
341
+ overflow: hidden;
342
+ margin-bottom: 15px;
343
+ }
344
+
345
+ /* Progress Bar */
346
+ .progress-bar {
347
+ height: 100%;
348
+ background-color: var(--progress-bar-background-color);
349
+ width: 100%;
350
+ transition: var(--progress-bar-transition);
351
+ }
352
+
353
+ /* Timer Text */
354
+ .timer-text {
355
+ position: absolute;
356
+ top: 0;
357
+ left: 50%;
358
+ transform: translateX(-50%);
359
+ line-height: 30px;
360
+ font-weight: bold;
361
+ color: var(--timer-text-color);
362
+ }
363
+
364
+
365
+ /* Warning State */
366
+ .progress-bar-warning {
367
+ background-color: var(--progress-bar-warning-color) !important;
368
+ }
369
+
370
+ /* Danger State */
371
+ .progress-bar-danger {
372
+ background-color: var(--progress-bar-danger-color) !important;
373
+ }
374
+
375
+
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path d="M375.922 231.781H136.078v-24.609h239.844v24.609zm0 73.047H136.078v-25h239.844v25z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512"><path fill="none" stroke="#ccc" stroke-miterlimit="10" stroke-width="13" d="M-13 256h538"/><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="13" d="M12.157 522.083c48.055-330 122.797-613.705 243.605-265.999 121.803 350.571 192.696 63.998 244.082-266.168"/><ellipse cx="360" cy="416.6" fill="red" rx="35" ry="35" transform="rotate(-35.003 359.985 416.592)"/><path d="M382.122 401.112c8.537 12.193 5.563 29.064-6.631 37.603-12.195 8.539-29.066 5.564-37.605-6.631-8.539-12.195-5.565-29.064 6.631-37.603 12.195-8.539 29.064-5.564 37.605 6.631m10.648-7.457c-12.672-18.096-37.615-22.492-55.709-9.822-18.096 12.67-22.496 37.613-9.824 55.708 12.672 18.098 37.613 22.494 55.709 9.824 18.096-12.671 22.496-37.613 9.824-55.71z"/><ellipse cx="153" cy="97.61" fill="red" rx="35" ry="35" transform="rotate(-35.003 152.99 97.61)"/><path d="M175.114 82.124c8.537 12.193 5.563 29.064-6.631 37.603-12.195 8.539-29.066 5.564-37.605-6.631-8.539-12.195-5.564-29.064 6.631-37.603 12.195-8.539 29.064-5.564 37.605 6.631m10.649-7.457c-12.672-18.096-37.615-22.492-55.709-9.822-18.096 12.67-22.496 37.613-9.824 55.709 12.672 18.098 37.613 22.494 55.709 9.824 18.095-12.673 22.496-37.614 9.824-55.711z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path d="M376.173 525.319C326.021 330.76 182.793 165.572-16.785 72.112l5.513-11.773c203.104 95.111 348.911 263.407 400.033 461.736l-12.588 3.244z"/><path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="13" d="M-9.29 392.69l535.31-245.15"/><circle cx="252.91" cy="272.83" r="35" fill="red"/><path d="M252.911 245.83c14.888 0 27 12.112 27 27s-12.112 27-27 27-27-12.112-27-27 12.112-27 27-27m0-13c-22.091 0-40 17.909-40 40s17.909 40 40 40c22.092 0 40-17.909 40-40s-17.908-40-40-40z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path d="M209.271 331h-34.277l-43.945-59.18L88.568 331h-31.64l59.766-77.637L61.615 181h34.277l39.551 53.613L173.822 181h31.348l-55.664 72.363L209.271 331z"/><path fill="red" d="M455.072 213.813c-13.87 13.087-30.959 19.629-51.27 19.629-9.572 0-23.392-3.172-41.455-9.521-18.068-6.345-32.277-9.421-42.627-9.229-8.789.197-16.457 2.101-22.998 5.713-6.546 3.616-13.724 9.329-21.533 17.139v-20.801c14.063-14.063 31.641-20.801 52.734-20.215 8.981.197 22.119 3.369 39.404 9.521s30.711 9.229 40.283 9.229c9.178 0 17.285-1.854 24.316-5.566 7.031-3.708 14.744-9.274 23.145-16.699v20.8zm0 50.976c-13.87 13.088-30.959 19.629-51.27 19.629-9.572 0-23.392-3.172-41.455-9.521-18.068-6.345-32.277-9.421-42.627-9.229-8.789.197-16.457 2.102-22.998 5.713-6.546 3.616-13.724 9.329-21.533 17.139v-20.801c14.063-14.063 31.641-20.801 52.734-20.215 8.981.197 22.119 3.369 39.404 9.521s30.711 9.229 40.283 9.229c9.178 0 17.285-1.854 24.316-5.566 7.031-3.708 14.744-9.274 23.145-16.699v20.8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path d="M375.922 220.063c-18.494 17.45-41.278 26.172-68.359 26.172-12.763 0-31.189-4.229-55.273-12.695-24.091-8.459-43.036-12.561-56.836-12.305-11.719.263-21.942 2.802-30.664 7.617-8.728 4.822-18.298 12.439-28.711 22.852V223.97c18.75-18.75 42.188-27.734 70.313-26.953 11.975.263 29.492 4.492 52.539 12.695s40.948 12.305 53.711 12.305c12.237 0 23.047-2.472 32.422-7.422 9.375-4.944 19.659-12.366 30.859-22.266v27.734zm0 67.968c-18.494 17.45-41.278 26.172-68.359 26.172-12.763 0-31.189-4.229-55.273-12.695-24.091-8.459-43.036-12.561-56.836-12.305-11.719.263-21.942 2.802-30.664 7.617-8.728 4.822-18.298 12.439-28.711 22.852v-27.734c18.75-18.75 42.188-27.734 70.313-26.953 11.975.263 29.492 4.492 52.539 12.695s40.948 12.305 53.711 12.305c12.237 0 23.047-2.472 32.422-7.422 9.375-4.943 19.659-12.365 30.859-22.266v27.734z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><circle cx="168.7" cy="351.73" r="53.38" fill="#00f"/><path d="M168.704 310.55c22.704 0 41.175 18.472 41.175 41.175S191.408 392.9 168.704 392.9s-41.175-18.472-41.175-41.175S146 310.55 168.704 310.55m0-19.825c-33.689 0-61 27.312-61 61s27.311 61 61 61 61-27.312 61-61-27.311-61-61-61z"/><path fill="#00f" d="M428.199 252.873h-24.755l-18.17-45.547h-82.212l-18.397 45.547h-24.073l70.63-170h25.437l71.54 170zm-52.69-65.56l-32.021-78.445-31.34 78.444h63.362z"/></svg>