@sp-days-framework/docusaurus-plugin-interactive-tasks 1.0.4 → 1.0.5-rc2
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.
- package/README.md +63 -6
- package/lib/plugin/remarkTaskDirective.d.ts.map +1 -1
- package/lib/plugin/remarkTaskDirective.js +32 -7
- package/lib/plugin/remarkTaskDirective.js.map +1 -1
- package/lib/theme/MDXComponents.d.ts.map +1 -1
- package/lib/theme/MDXComponents.js +2 -0
- package/lib/theme/MDXComponents.js.map +1 -1
- package/lib/theme/Task/Output/index.d.ts +14 -0
- package/lib/theme/Task/Output/index.d.ts.map +1 -0
- package/lib/theme/Task/Output/index.js +23 -0
- package/lib/theme/Task/Output/index.js.map +1 -0
- package/lib/theme/Task/Output/styles.module.css +72 -0
- package/lib/theme/Task/Solution/styles.module.css +7 -5
- package/lib/theme/Task/index.d.ts +1 -1
- package/lib/theme/Task/index.d.ts.map +1 -1
- package/lib/theme/Task/index.js +93 -20
- package/lib/theme/Task/index.js.map +1 -1
- package/lib/theme/Task/styles.module.css +31 -4
- package/lib/theme/TaskExample/index.d.ts.map +1 -1
- package/lib/theme/TaskExample/index.js +56 -13
- package/lib/theme/TaskExample/index.js.map +1 -1
- package/lib/theme/TaskPlaceholder/index.d.ts.map +1 -1
- package/lib/theme/TaskPlaceholder/index.js +57 -13
- package/lib/theme/TaskPlaceholder/index.js.map +1 -1
- package/lib/utils/icons.d.ts +5 -0
- package/lib/utils/icons.d.ts.map +1 -1
- package/lib/utils/icons.js +7 -1
- package/lib/utils/icons.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Docusaurus Interactive Tasks Plugin
|
|
2
2
|
|
|
3
|
-
A Docusaurus plugin that transforms documentation into interactive learning experiences with tasks, hints, solutions, and automatic progress tracking.
|
|
3
|
+
A Docusaurus plugin that transforms documentation into interactive learning experiences with tasks, hints, solutions, expected outputs, and automatic progress tracking.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
7
|
- **Interactive Tasks** - Collapsible task components with completion tracking
|
|
8
|
-
- **Hints &
|
|
8
|
+
- **Hints, Solutions & Expected Outputs** - Optional toggleable hints, solutions, and expected outputs for each task
|
|
9
9
|
- **Auto-Numbering** - Automatic task numbering per page
|
|
10
10
|
- **Persistent Progress** - Completion status saved to localStorage
|
|
11
11
|
- **Progress Tracking** - Visual progress indicators in sidebar and task progression components
|
|
@@ -35,7 +35,7 @@ module.exports = {
|
|
|
35
35
|
"classic",
|
|
36
36
|
{
|
|
37
37
|
docs: {
|
|
38
|
-
|
|
38
|
+
beforeDefaultRemarkPlugins: [
|
|
39
39
|
require("@sp-days-framework/docusaurus-plugin-interactive-tasks")
|
|
40
40
|
.remarkTaskDirective,
|
|
41
41
|
],
|
|
@@ -72,9 +72,10 @@ Download from https://nodejs.org/. npm is included with Node.js.
|
|
|
72
72
|
**Syntax Rules:**
|
|
73
73
|
|
|
74
74
|
- Use **4 colons** (`::::`) for task containers
|
|
75
|
-
- Use **3 colons** (`:::`) for hint and
|
|
75
|
+
- Use **3 colons** (`:::`) for hint, solution, and output blocks
|
|
76
76
|
- Tasks are automatically numbered within each page
|
|
77
77
|
- Completion state persists across sessions
|
|
78
|
+
- **Expected Output** blocks use success color theme (`--ifm-color-success`)
|
|
78
79
|
|
|
79
80
|
## Usage
|
|
80
81
|
|
|
@@ -134,6 +135,62 @@ return Response.json({ success: true });
|
|
|
134
135
|
::::
|
|
135
136
|
```
|
|
136
137
|
|
|
138
|
+
### Task with Expected Output
|
|
139
|
+
|
|
140
|
+
Show users what output they should expect:
|
|
141
|
+
|
|
142
|
+
```mdx
|
|
143
|
+
::::task[Run Docker Container]
|
|
144
|
+
|
|
145
|
+
Start a new nginx container in detached mode on port 8080.
|
|
146
|
+
|
|
147
|
+
:::output
|
|
148
|
+
\`\`\`bash
|
|
149
|
+
$ docker run -d -p 8080:80 nginx
|
|
150
|
+
a3f5c8b9d2e1f4a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
|
|
151
|
+
\`\`\`
|
|
152
|
+
|
|
153
|
+
Visit `http://localhost:8080` and you should see the nginx welcome page.
|
|
154
|
+
:::
|
|
155
|
+
|
|
156
|
+
::::
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Task with All Features
|
|
160
|
+
|
|
161
|
+
Combine hint, solution, and expected output:
|
|
162
|
+
|
|
163
|
+
```mdx
|
|
164
|
+
::::task[Build Application]
|
|
165
|
+
|
|
166
|
+
Build the application and verify it works.
|
|
167
|
+
|
|
168
|
+
:::hint
|
|
169
|
+
Use the npm script defined in `package.json`.
|
|
170
|
+
:::
|
|
171
|
+
|
|
172
|
+
:::solution
|
|
173
|
+
\`\`\`bash
|
|
174
|
+
npm run build
|
|
175
|
+
npm run test
|
|
176
|
+
\`\`\`
|
|
177
|
+
:::
|
|
178
|
+
|
|
179
|
+
:::output
|
|
180
|
+
\`\`\`bash
|
|
181
|
+
$ npm run build
|
|
182
|
+
> Building application...
|
|
183
|
+
> ✓ Compiled successfully
|
|
184
|
+
|
|
185
|
+
$ npm run test
|
|
186
|
+
> Running tests...
|
|
187
|
+
> ✓ All tests passed (12/12)
|
|
188
|
+
\`\`\`
|
|
189
|
+
:::
|
|
190
|
+
|
|
191
|
+
::::
|
|
192
|
+
```
|
|
193
|
+
|
|
137
194
|
### Task Examples (Non-Persistent)
|
|
138
195
|
|
|
139
196
|
For demonstration purposes, use task examples that don't save completion state:
|
|
@@ -252,7 +309,7 @@ module.exports = {
|
|
|
252
309
|
{
|
|
253
310
|
docs: {
|
|
254
311
|
// Default docs instance
|
|
255
|
-
|
|
312
|
+
beforeDefaultRemarkPlugins: [
|
|
256
313
|
require('@sp-days-framework/docusaurus-plugin-interactive-tasks').remarkTaskDirective,
|
|
257
314
|
],
|
|
258
315
|
},
|
|
@@ -267,7 +324,7 @@ module.exports = {
|
|
|
267
324
|
id: 'community',
|
|
268
325
|
path: 'community',
|
|
269
326
|
// Community docs instance
|
|
270
|
-
|
|
327
|
+
beforeDefaultRemarkPlugins: [
|
|
271
328
|
require('@sp-days-framework/docusaurus-plugin-interactive-tasks').remarkTaskDirective,
|
|
272
329
|
],
|
|
273
330
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remarkTaskDirective.d.ts","sourceRoot":"","sources":["../../src/plugin/remarkTaskDirective.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,OAAO,CAAC;AAWnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrC;
|
|
1
|
+
{"version":3,"file":"remarkTaskDirective.d.ts","sourceRoot":"","sources":["../../src/plugin/remarkTaskDirective.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,OAAO,CAAC;AAWnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACrC;AAwUD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAuG9D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -61,6 +61,13 @@ function isSolutionDirective(node) {
|
|
|
61
61
|
return (node.type === "containerDirective" &&
|
|
62
62
|
node.name === "solution");
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Check if a node is an output directive
|
|
66
|
+
*/
|
|
67
|
+
function isOutputDirective(node) {
|
|
68
|
+
return (node.type === "containerDirective" &&
|
|
69
|
+
node.name === "output");
|
|
70
|
+
}
|
|
64
71
|
/**
|
|
65
72
|
* Check if a node is an allowed admonition (nested inside task)
|
|
66
73
|
* Allows standard Docusaurus admonitions to pass through
|
|
@@ -146,10 +153,11 @@ function transformTaskDirective(node, filePath, isExample = false, taskNumber, t
|
|
|
146
153
|
},
|
|
147
154
|
];
|
|
148
155
|
}
|
|
149
|
-
// Separate children into text content, hints, and
|
|
156
|
+
// Separate children into text content, hints, solutions, and outputs
|
|
150
157
|
const textContent = [];
|
|
151
158
|
const hints = [];
|
|
152
159
|
const solutions = [];
|
|
160
|
+
const outputs = [];
|
|
153
161
|
const unknownDirectives = [];
|
|
154
162
|
for (const child of taskContent) {
|
|
155
163
|
if (isHintDirective(child)) {
|
|
@@ -158,6 +166,9 @@ function transformTaskDirective(node, filePath, isExample = false, taskNumber, t
|
|
|
158
166
|
else if (isSolutionDirective(child)) {
|
|
159
167
|
solutions.push(child);
|
|
160
168
|
}
|
|
169
|
+
else if (isOutputDirective(child)) {
|
|
170
|
+
outputs.push(child);
|
|
171
|
+
}
|
|
161
172
|
else if (isNestedContainerDirective(child)) {
|
|
162
173
|
const directiveName = child.name;
|
|
163
174
|
// Allow standard admonitions and other nested tasks to pass through
|
|
@@ -180,7 +191,7 @@ function transformTaskDirective(node, filePath, isExample = false, taskNumber, t
|
|
|
180
191
|
if (unknownDirectives.length > 0) {
|
|
181
192
|
warn(`Unknown directive(s) ${unknownDirectives
|
|
182
193
|
.map((d) => `:::${d}`)
|
|
183
|
-
.join(", ")} inside task "${taskName}". Only :::hint and :::
|
|
194
|
+
.join(", ")} inside task "${taskName}". Only :::hint, :::solution, and :::output are supported inside ::::task.`, filePath, node.position);
|
|
184
195
|
}
|
|
185
196
|
// Validation: Warn about multiple hints
|
|
186
197
|
if (hints.length > 1) {
|
|
@@ -190,10 +201,15 @@ function transformTaskDirective(node, filePath, isExample = false, taskNumber, t
|
|
|
190
201
|
if (solutions.length > 1) {
|
|
191
202
|
warn(`Multiple :::solution sections found in task "${taskName}". Only the first will be used.`, filePath, node.position);
|
|
192
203
|
}
|
|
204
|
+
// Validation: Warn about multiple outputs
|
|
205
|
+
if (outputs.length > 1) {
|
|
206
|
+
warn(`Multiple :::output sections found in task "${taskName}". Only the first will be used.`, filePath, node.position);
|
|
207
|
+
}
|
|
193
208
|
// Validation: Warn if task is empty
|
|
194
209
|
if (textContent.length === 0 &&
|
|
195
210
|
hints.length === 0 &&
|
|
196
|
-
solutions.length === 0
|
|
211
|
+
solutions.length === 0 &&
|
|
212
|
+
outputs.length === 0) {
|
|
197
213
|
warn(`Task "${taskName}" has no content. Add task instructions.`, filePath, node.position);
|
|
198
214
|
}
|
|
199
215
|
// Build JSX structure
|
|
@@ -212,6 +228,11 @@ function transformTaskDirective(node, filePath, isExample = false, taskNumber, t
|
|
|
212
228
|
const solutionChildren = solutions[0].children || [];
|
|
213
229
|
taskChildren.push(createJSXElement("Solution", [], solutionChildren));
|
|
214
230
|
}
|
|
231
|
+
// Add <Output> (use only first one)
|
|
232
|
+
if (outputs.length > 0) {
|
|
233
|
+
const outputChildren = outputs[0].children || [];
|
|
234
|
+
taskChildren.push(createJSXElement("Output", [], outputChildren));
|
|
235
|
+
}
|
|
215
236
|
// Create a heading node for TOC integration (if enabled)
|
|
216
237
|
// The headings plugin will automatically assign an ID to this node
|
|
217
238
|
// Include task number prefix in heading text for TOC display
|
|
@@ -285,16 +306,20 @@ const remarkTaskDirective = (options = {}) => {
|
|
|
285
306
|
// Skip traversing into children - they're already processed by transformTaskDirective
|
|
286
307
|
return "skip";
|
|
287
308
|
}
|
|
288
|
-
else if (isHintDirective(node) || isSolutionDirective(node)) {
|
|
309
|
+
else if (isHintDirective(node) || isSolutionDirective(node) || isOutputDirective(node)) {
|
|
289
310
|
// Mark as handled to suppress Docusaurus warning
|
|
290
311
|
if (!node.data) {
|
|
291
312
|
node.data = {};
|
|
292
313
|
}
|
|
293
314
|
node.data.directiveHandled = true;
|
|
294
|
-
// Check if this hint/solution is inside a task
|
|
295
|
-
// This is an orphaned hint/solution (we already processed tasks above)
|
|
315
|
+
// Check if this hint/solution/output is inside a task
|
|
316
|
+
// This is an orphaned hint/solution/output (we already processed tasks above)
|
|
296
317
|
const directiveName = node.name;
|
|
297
|
-
warn(`:::${directiveName} directive found outside of ::::task context. ${directiveName === "hint"
|
|
318
|
+
warn(`:::${directiveName} directive found outside of ::::task context. ${directiveName === "hint"
|
|
319
|
+
? "Hints"
|
|
320
|
+
: directiveName === "solution"
|
|
321
|
+
? "Solutions"
|
|
322
|
+
: "Output"} must be inside a task.`, filePath, node.position);
|
|
298
323
|
// Replace with empty paragraph to hide
|
|
299
324
|
if (parent && typeof index === "number") {
|
|
300
325
|
parent.children[index] = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remarkTaskDirective.js","sourceRoot":"","sources":["../../src/plugin/remarkTaskDirective.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAEH,uDAAyC;AAIzC,4CAAsD;AAetD;;GAEG;AACH,SAAS,eAAe,CAAC,IAAa;IACpC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,oBAAoB;QACjC,IAA2B,CAAC,IAAI,KAAK,MAAM,CAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAa;IAC3C,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,oBAAoB;QACjC,IAA2B,CAAC,IAAI,KAAK,cAAc,CACrD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;CACZ,CAAC;AAEF;;GAEG;AACH,SAAS,eAAe,CAAC,IAAa;IACpC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,oBAAoB;QACjC,IAA2B,CAAC,IAAI,KAAK,MAAM,CAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAa;IACxC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,oBAAoB;QACjC,IAA2B,CAAC,IAAI,KAAK,UAAU,CACjD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAa;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAI,IAA2B,CAAC,IAAI,CAAC;IACxD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,IAAa;IAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,UAA6D,EAC7D,QAAmB;IAEnB,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,IAAI;QACJ,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAY,EAAE,KAAa;IACrD,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,IAAI,CAAC,OAAe,EAAE,QAAiB,EAAE,QAAc;IAC9D,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,GAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,GAAG,IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,GAC5B,EAAE;QACJ,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC;IAE/B,IAAA,gBAAO,EAAC,GAAG,OAAO,KAAK,IAAA,mBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,IAAuB,EACvB,QAAiB,EACjB,YAAqB,KAAK,EAC1B,UAAmB,EACnB,aAAsB,IAAI,EAC1B,kBAA0B,CAAC;IAE3B,+BAA+B;IAC/B,+GAA+G;IAC/G,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,WAAW,GAAc,EAAE,CAAC;IAEhC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEzC,8CAA8C;QAC9C,IACE,UAAU,CAAC,IAAI,KAAK,WAAW;YAC/B,UAAU,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACxC,CAAC;YACD,qBAAqB;YACrB,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBACnE,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACjD,CAAC;YACD,0CAA0C;YAC1C,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CACF,0GAA0G,EAC1G,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,0CAA0C;QAC1C,OAAO;YACL;gBACE,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;IACJ,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"remarkTaskDirective.js","sourceRoot":"","sources":["../../src/plugin/remarkTaskDirective.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MDXComponents.d.ts","sourceRoot":"","sources":["../../src/theme/MDXComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;
|
|
1
|
+
{"version":3,"file":"MDXComponents.d.ts","sourceRoot":"","sources":["../../src/theme/MDXComponents.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;AA4BH,wBA+BE"}
|
|
@@ -41,6 +41,7 @@ const TaskPlaceholder_1 = __importDefault(require("@theme/TaskPlaceholder"));
|
|
|
41
41
|
const Text_1 = __importDefault(require("@theme/Task/Text"));
|
|
42
42
|
const Hint_1 = __importDefault(require("@theme/Task/Hint"));
|
|
43
43
|
const Solution_1 = __importDefault(require("@theme/Task/Solution"));
|
|
44
|
+
const Output_1 = __importDefault(require("@theme/Task/Output"));
|
|
44
45
|
const TaskProgression_1 = __importDefault(require("@theme/TaskProgression"));
|
|
45
46
|
const TaskProgressionOverview_1 = __importDefault(require("@theme/TaskProgressionOverview"));
|
|
46
47
|
exports.default = {
|
|
@@ -71,6 +72,7 @@ exports.default = {
|
|
|
71
72
|
Text: Text_1.default,
|
|
72
73
|
Hint: Hint_1.default,
|
|
73
74
|
Solution: Solution_1.default,
|
|
75
|
+
Output: Output_1.default,
|
|
74
76
|
TaskProgression: TaskProgression_1.default,
|
|
75
77
|
TaskProgressionOverview: TaskProgressionOverview_1.default,
|
|
76
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MDXComponents.js","sourceRoot":"","sources":["../../src/theme/MDXComponents.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AAEH,kDAAsE;AACtE,kFAA0D;AAC1D,2FAA2F;AAC3F,4EAA4E;AAC5E,4DAAoC;AACpC,kGAA6E;AAC7E,4FAAuE;AACvE,gGAA2E;AAC3E,wGAAmF;AACnF,wGAAmF;AACnF,8FAAyE;AACzE,8FAAyE;AACzE,gGAA2E;AAC3E,gGAAwE;AACxE,0FAAkE;AAClE,kBAAkB;AAClB,uDAA+B;AAC/B,qEAA6C;AAC7C,6EAAqD;AACrD,4DAAoC;AACpC,4DAAoC;AACpC,oEAA4C;AAC5C,6EAAqD;AACrD,6FAAqE;AAErE,kBAAe;IACb,GAAG,uBAAa;IAChB,4DAA4D;IAC5D,IAAI,EAAJ,cAAI;IACJ,OAAO,EAAE,iBAAU;IACnB,OAAO,EAAE,iBAAU;IACnB,IAAI,EAAE,cAAO;IACb,CAAC,EAAE,WAAI;IACP,GAAG,EAAE,aAAM;IACX,EAAE,EAAE,YAAK;IACT,EAAE,EAAE,YAAK;IACT,GAAG,EAAE,aAAM;IACX,oDAAoD;IACpD,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,UAAU,EAAE,oBAAU;IACtB,OAAO,EAAE,iBAAO;IAChB,kBAAkB;IAClB,IAAI,EAAJ,cAAI;IACJ,WAAW,EAAX,qBAAW;IACX,eAAe,EAAf,yBAAe;IACf,IAAI,EAAJ,cAAI;IACJ,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,kBAAQ;IACR,eAAe,EAAf,yBAAe;IACf,uBAAuB,EAAvB,iCAAuB;CACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"MDXComponents.js","sourceRoot":"","sources":["../../src/theme/MDXComponents.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AAEH,kDAAsE;AACtE,kFAA0D;AAC1D,2FAA2F;AAC3F,4EAA4E;AAC5E,4DAAoC;AACpC,kGAA6E;AAC7E,4FAAuE;AACvE,gGAA2E;AAC3E,wGAAmF;AACnF,wGAAmF;AACnF,8FAAyE;AACzE,8FAAyE;AACzE,gGAA2E;AAC3E,gGAAwE;AACxE,0FAAkE;AAClE,kBAAkB;AAClB,uDAA+B;AAC/B,qEAA6C;AAC7C,6EAAqD;AACrD,4DAAoC;AACpC,4DAAoC;AACpC,oEAA4C;AAC5C,gEAAwC;AACxC,6EAAqD;AACrD,6FAAqE;AAErE,kBAAe;IACb,GAAG,uBAAa;IAChB,4DAA4D;IAC5D,IAAI,EAAJ,cAAI;IACJ,OAAO,EAAE,iBAAU;IACnB,OAAO,EAAE,iBAAU;IACnB,IAAI,EAAE,cAAO;IACb,CAAC,EAAE,WAAI;IACP,GAAG,EAAE,aAAM;IACX,EAAE,EAAE,YAAK;IACT,EAAE,EAAE,YAAK;IACT,GAAG,EAAE,aAAM;IACX,oDAAoD;IACpD,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,EAAE,EAAE,CAAC,KAA2B,EAAE,EAAE,CAAC,8BAAC,iBAAU,IAAC,EAAE,EAAC,IAAI,KAAK,KAAK,GAAI;IACtE,UAAU,EAAE,oBAAU;IACtB,OAAO,EAAE,iBAAO;IAChB,kBAAkB;IAClB,IAAI,EAAJ,cAAI;IACJ,WAAW,EAAX,qBAAW;IACX,eAAe,EAAf,yBAAe;IACf,IAAI,EAAJ,cAAI;IACJ,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,kBAAQ;IACR,MAAM,EAAN,gBAAM;IACN,eAAe,EAAf,yBAAe;IACf,uBAAuB,EAAvB,iCAAuB;CACxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Component
|
|
3
|
+
* Content area for expected output - rendered as a panel by parent Task component
|
|
4
|
+
*/
|
|
5
|
+
import { type ReactNode, type ReactElement } from 'react';
|
|
6
|
+
export interface OutputProps {
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare function Output({ children }: OutputProps): ReactElement;
|
|
10
|
+
declare namespace Output {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export default Output;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/Task/Output/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAIjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAKD,iBAAwB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,YAAY,CAStE;kBATuB,MAAM;;;eAAN,MAAM"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Output Component
|
|
4
|
+
* Content area for expected output - rendered as a panel by parent Task component
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.default = Output;
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
const icons_1 = require("../../../utils/icons");
|
|
13
|
+
const styles_module_css_1 = __importDefault(require("./styles.module.css"));
|
|
14
|
+
// Add displayName for parent component detection
|
|
15
|
+
Output.displayName = 'Output';
|
|
16
|
+
function Output({ children }) {
|
|
17
|
+
return (react_1.default.createElement("div", { className: styles_module_css_1.default.outputPanel },
|
|
18
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.outputLabel },
|
|
19
|
+
icons_1.OUTPUT_ICON,
|
|
20
|
+
"Expected Output"),
|
|
21
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.outputContent }, children)));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/theme/Task/Output/index.tsx"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAaH,yBASC;AApBD,kDAAiE;AACjE,gDAAmD;AACnD,4EAAyC;AAMzC,iDAAiD;AACjD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,SAAwB,MAAM,CAAC,EAAE,QAAQ,EAAe;IACtD,OAAO,CACL,uCAAK,SAAS,EAAE,2BAAM,CAAC,WAAW;QAChC,uCAAK,SAAS,EAAE,2BAAM,CAAC,WAAW;YAAG,mBAAW;8BAAsB;QACtE,uCAAK,SAAS,EAAE,2BAAM,CAAC,aAAa,IACjC,QAAQ,CACL,CACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Panel Styles
|
|
3
|
+
* Uses info color scheme (--ifm-color-info) for expected output display
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.outputPanel {
|
|
7
|
+
padding: 1rem 1.25rem;
|
|
8
|
+
background-color: var(--ifm-color-info-contrast-background);
|
|
9
|
+
border-left: 4px solid var(--ifm-color-info);
|
|
10
|
+
border-radius: 4px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.outputLabel {
|
|
14
|
+
font-weight: 600;
|
|
15
|
+
font-size: 0.95rem;
|
|
16
|
+
color: var(--ifm-color-info-darker);
|
|
17
|
+
margin-bottom: 0.75rem;
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 0.5rem;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.outputContent {
|
|
24
|
+
color: var(--ifm-font-color-base);
|
|
25
|
+
line-height: 1.6;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.outputContent > *:first-child {
|
|
29
|
+
margin-top: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.outputContent > *:last-child {
|
|
33
|
+
margin-bottom: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.outputContent p {
|
|
37
|
+
margin-bottom: 0.75rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.outputContent ul,
|
|
41
|
+
.outputContent ol {
|
|
42
|
+
margin-left: 1.5rem;
|
|
43
|
+
margin-bottom: 0.75rem;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.outputContent li {
|
|
47
|
+
margin-bottom: 0.25rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.outputContent code {
|
|
51
|
+
border-radius: 3px;
|
|
52
|
+
padding: 0.125rem 0.375rem;
|
|
53
|
+
font-size: 0.9em;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.outputContent pre code {
|
|
57
|
+
padding: 16px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.outputContent pre {
|
|
61
|
+
margin-top: 20px;
|
|
62
|
+
margin-bottom: 20px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Dark mode adjustments */
|
|
66
|
+
html[data-theme='dark'] .outputPanel {
|
|
67
|
+
border-left-color: var(--ifm-color-info-light);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
html[data-theme='dark'] .outputLabel {
|
|
71
|
+
color: var(--ifm-color-info-light);
|
|
72
|
+
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Solution Panel Styles
|
|
3
|
+
* Uses success color scheme (--ifm-color-success)
|
|
3
4
|
*/
|
|
4
5
|
|
|
5
6
|
.solutionPanel {
|
|
6
7
|
padding: 1rem 1.25rem;
|
|
7
|
-
background-color: var(--ifm-color-
|
|
8
|
-
border-left: 4px solid var(--ifm-color-
|
|
8
|
+
background-color: var(--ifm-color-success-contrast-background);
|
|
9
|
+
border-left: 4px solid var(--ifm-color-success);
|
|
9
10
|
border-radius: 4px;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
.solutionLabel {
|
|
13
14
|
font-weight: 600;
|
|
14
15
|
font-size: 0.95rem;
|
|
15
|
-
color: var(--ifm-color-
|
|
16
|
+
color: var(--ifm-color-success-darker);
|
|
16
17
|
margin-bottom: 0.75rem;
|
|
17
18
|
display: flex;
|
|
18
19
|
align-items: center;
|
|
@@ -62,9 +63,10 @@
|
|
|
62
63
|
|
|
63
64
|
/* Dark mode adjustments */
|
|
64
65
|
html[data-theme='dark'] .solutionPanel {
|
|
65
|
-
|
|
66
|
+
background-color: rgba(0, 210, 91, 0.1);
|
|
67
|
+
border-left-color: var(--ifm-color-success-light);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
html[data-theme='dark'] .solutionLabel {
|
|
69
|
-
color: var(--ifm-color-
|
|
71
|
+
color: var(--ifm-color-success-light);
|
|
70
72
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Task Component
|
|
3
3
|
* Interactive collapsible task with optional hint and solution sections
|
|
4
4
|
*/
|
|
5
|
-
import { type ReactNode, type ReactElement } from
|
|
5
|
+
import { type ReactNode, type ReactElement } from "react";
|
|
6
6
|
export interface TaskProps {
|
|
7
7
|
name: string;
|
|
8
8
|
children?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/Task/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/Task/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EACZ,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,OAAO,CAAC;AAaf,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,YAAY,CA2c5E"}
|