react-cheminfo 0.7.0 → 0.8.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.
- package/lib/citation/core/index.d.ts +1 -0
- package/lib/citation/core/index.d.ts.map +1 -1
- package/lib/citation/core/index.js +1 -0
- package/lib/citation/core/index.js.map +1 -1
- package/lib/citation/core/teachingPaper.d.ts +15 -0
- package/lib/citation/core/teachingPaper.d.ts.map +1 -0
- package/lib/citation/core/teachingPaper.js +32 -0
- package/lib/citation/core/teachingPaper.js.map +1 -0
- package/lib/pedagogy/ui/TutorialStepStrip.d.ts +15 -2
- package/lib/pedagogy/ui/TutorialStepStrip.d.ts.map +1 -1
- package/lib/pedagogy/ui/TutorialStepStrip.js +15 -4
- package/lib/pedagogy/ui/TutorialStepStrip.js.map +1 -1
- package/lib/pedagogy/ui/index.d.ts +1 -1
- package/lib/pedagogy/ui/index.d.ts.map +1 -1
- package/lib/pedagogy/ui/index.js.map +1 -1
- package/package.json +1 -1
- package/src/citation/core/index.ts +1 -0
- package/src/citation/core/teachingPaper.ts +36 -0
- package/src/pedagogy/ui/TutorialStepStrip.tsx +35 -9
- package/src/pedagogy/ui/index.ts +4 -1
|
@@ -7,6 +7,7 @@ export type { Reference, ReferenceAuthor } from './reference.ts';
|
|
|
7
7
|
export { doiUrl } from './reference.ts';
|
|
8
8
|
export type { CitationSegment, CitationStyle, CitationStyleId, } from './segments.ts';
|
|
9
9
|
export { CITATION_STYLES, citationSegments } from './segments.ts';
|
|
10
|
+
export { TEACHING_PAPER, TEACHING_WORK } from './teachingPaper.ts';
|
|
10
11
|
export type { CitedWork } from './works.ts';
|
|
11
12
|
export { citationsFilename, citedReferences, formatCitations, } from './works.ts';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -4,5 +4,6 @@ export { CITATION_DOWNLOADS, CITATION_FORMATS, DEFAULT_CITATION_STYLE, citationF
|
|
|
4
4
|
export { PLATFORM_PAPER, PLATFORM_WORK } from "./platformPaper.js";
|
|
5
5
|
export { doiUrl } from "./reference.js";
|
|
6
6
|
export { CITATION_STYLES, citationSegments } from "./segments.js";
|
|
7
|
+
export { TEACHING_PAPER, TEACHING_WORK } from "./teachingPaper.js";
|
|
7
8
|
export { citationsFilename, citedReferences, formatCitations, } from "./works.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/citation/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMxC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Reference } from './reference.ts';
|
|
2
|
+
import type { CitedWork } from './works.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The twenty years of online teaching the pedagogic sites of the family come
|
|
5
|
+
* out of: the tutorials, the exercises and the marking are the web-based tools
|
|
6
|
+
* it describes. One record holds it, so no site can name a different version
|
|
7
|
+
* of it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEACHING_PAPER: Reference;
|
|
10
|
+
/**
|
|
11
|
+
* The teaching paper as one of the works a site that teaches asks to be cited,
|
|
12
|
+
* beside `PLATFORM_WORK` and the work the tool itself implements.
|
|
13
|
+
*/
|
|
14
|
+
export declare const TEACHING_WORK: CitedWork;
|
|
15
|
+
//# sourceMappingURL=teachingPaper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teachingPaper.d.ts","sourceRoot":"","sources":["../../../src/citation/core/teachingPaper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAgB5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAI3B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The twenty years of online teaching the pedagogic sites of the family come
|
|
3
|
+
* out of: the tutorials, the exercises and the marking are the web-based tools
|
|
4
|
+
* it describes. One record holds it, so no site can name a different version
|
|
5
|
+
* of it.
|
|
6
|
+
*/
|
|
7
|
+
export const TEACHING_PAPER = {
|
|
8
|
+
authors: [
|
|
9
|
+
{ given: 'R.', family: 'Turin' },
|
|
10
|
+
{ given: 'L.', family: 'Patiny' },
|
|
11
|
+
],
|
|
12
|
+
title: 'Two Decades of Online Teaching: Trends, Challenges, and Future Directions',
|
|
13
|
+
journal: 'CHIMIA',
|
|
14
|
+
journalAbbreviation: 'Chimia',
|
|
15
|
+
year: 2023,
|
|
16
|
+
volume: '77',
|
|
17
|
+
issue: '10',
|
|
18
|
+
firstPage: '683',
|
|
19
|
+
lastPage: '687',
|
|
20
|
+
doi: '10.2533/chimia.2023.683',
|
|
21
|
+
publisher: 'Swiss Chemical Society',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The teaching paper as one of the works a site that teaches asks to be cited,
|
|
25
|
+
* beside `PLATFORM_WORK` and the work the tool itself implements.
|
|
26
|
+
*/
|
|
27
|
+
export const TEACHING_WORK = {
|
|
28
|
+
reference: TEACHING_PAPER,
|
|
29
|
+
what: 'Teaching chemistry online',
|
|
30
|
+
note: 'Cite it for the exercises, which are the web-based teaching it describes.',
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=teachingPaper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teachingPaper.js","sourceRoot":"","sources":["../../../src/citation/core/teachingPaper.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAChC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;KAClC;IACD,KAAK,EACH,2EAA2E;IAC7E,OAAO,EAAE,QAAQ;IACjB,mBAAmB,EAAE,QAAQ;IAC7B,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,yBAAyB;IAC9B,SAAS,EAAE,wBAAwB;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAc;IACtC,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,2EAA2E;CAClF,CAAC"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
-
import type { ExerciseLevel
|
|
2
|
+
import type { ExerciseLevel } from '../core/types.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The little a strip needs of a step: what to call it, and which coloured group
|
|
5
|
+
* it belongs to. A tool passes its own steps, whatever else they carry.
|
|
6
|
+
*/
|
|
7
|
+
export interface TutorialStripStep {
|
|
8
|
+
/**
|
|
9
|
+
* What keys the button, when the tool gives its steps one.
|
|
10
|
+
* @default undefined — the position in the tour keys it instead
|
|
11
|
+
*/
|
|
12
|
+
id?: string;
|
|
13
|
+
title: string;
|
|
14
|
+
level: ExerciseLevel;
|
|
15
|
+
}
|
|
3
16
|
export interface TutorialStepStripProps {
|
|
4
17
|
/** The whole tour, in teaching order. */
|
|
5
|
-
steps: readonly
|
|
18
|
+
steps: readonly TutorialStripStep[];
|
|
6
19
|
/**
|
|
7
20
|
* Which step is open, as its position in `steps`. A position outside the
|
|
8
21
|
* tour is read as one of its ends, so a hand-edited link still opens.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TutorialStepStrip.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/TutorialStepStrip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"TutorialStepStrip.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/TutorialStepStrip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACpC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA6D7E"}
|
|
@@ -29,7 +29,7 @@ function LevelStrip(props) {
|
|
|
29
29
|
const active = position === activeIndex;
|
|
30
30
|
buttons.push(_jsx(Tooltip, { content: step.title, hoverOpenDelay: HOVER_OPEN_DELAY, placement: "bottom", children: _jsx("button", { type: "button", "aria-label": `Step ${position + 1}: ${step.title}`, "aria-current": active ? 'step' : undefined, style: numberStyle(colours, active), onClick: () => {
|
|
31
31
|
onSelect(position);
|
|
32
|
-
}, children: position + 1 }) }, step.id));
|
|
32
|
+
}, children: position + 1 }) }, step.id ?? position));
|
|
33
33
|
}
|
|
34
34
|
return (_jsxs("div", { style: { ...STRIP_STYLE, background: colours.background }, children: [_jsx("span", { style: LABEL_STYLE, children: label }), buttons] }));
|
|
35
35
|
}
|
|
@@ -48,25 +48,36 @@ function clampIndex(index, total) {
|
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* The open step takes the darker shade of its own level, plus a border.
|
|
51
|
+
*
|
|
52
|
+
* Every button is the same square whatever it holds, so the numbers of one
|
|
53
|
+
* strip stand above those of the next and the tour reads as a grid.
|
|
51
54
|
* @param colours - The two shades of the level the step belongs to.
|
|
52
55
|
* @param active - Whether this is the step on screen.
|
|
53
56
|
* @returns The style of one numbered button.
|
|
54
57
|
*/
|
|
55
58
|
function numberStyle(colours, active) {
|
|
56
59
|
return {
|
|
57
|
-
|
|
60
|
+
display: 'inline-flex',
|
|
61
|
+
width: STEP_SIZE,
|
|
62
|
+
height: STEP_SIZE,
|
|
63
|
+
alignItems: 'center',
|
|
64
|
+
justifyContent: 'center',
|
|
65
|
+
padding: 0,
|
|
58
66
|
border: active ? '2px solid #1c2127' : '1px solid rgb(17 20 24 / 20%)',
|
|
59
67
|
borderRadius: 4,
|
|
68
|
+
background: active ? colours.activeBackground : '#ffffff',
|
|
69
|
+
boxSizing: 'border-box',
|
|
60
70
|
color: '#1c2127',
|
|
61
71
|
cursor: 'pointer',
|
|
62
72
|
font: 'inherit',
|
|
63
73
|
fontSize: 12,
|
|
74
|
+
fontVariantNumeric: 'tabular-nums',
|
|
64
75
|
fontWeight: active ? 700 : 500,
|
|
65
76
|
lineHeight: 1,
|
|
66
|
-
minWidth: 26,
|
|
67
|
-
padding: active ? '5px 6px' : '6px 7px',
|
|
68
77
|
};
|
|
69
78
|
}
|
|
79
|
+
/** Wide enough for two digits, which every tour of ours stays under a hundred of. */
|
|
80
|
+
const STEP_SIZE = 28;
|
|
70
81
|
/** Long enough that the pointer can cross the strip without opening a title. */
|
|
71
82
|
const HOVER_OPEN_DELAY = 150;
|
|
72
83
|
const ROOT_STYLE = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TutorialStepStrip.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/TutorialStepStrip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TutorialStepStrip.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/TutorialStepStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export type { SyntaxTooltipContent, SyntaxTooltipExample, SyntaxTooltipProps, }
|
|
|
20
20
|
export { SyntaxTooltip } from './SyntaxTooltip.tsx';
|
|
21
21
|
export type { TestCaseListProps } from './TestCaseList.tsx';
|
|
22
22
|
export { TestCaseList } from './TestCaseList.tsx';
|
|
23
|
-
export type { TutorialStepStripProps } from './TutorialStepStrip.tsx';
|
|
23
|
+
export type { TutorialStepStripProps, TutorialStripStep, } from './TutorialStepStrip.tsx';
|
|
24
24
|
export { TutorialStepStrip } from './TutorialStepStrip.tsx';
|
|
25
25
|
export type { TutorialLevelColours } from './tutorialLevels.ts';
|
|
26
26
|
export { TUTORIAL_LEVEL_COLOURS } from './tutorialLevels.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pedagogy/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EACV,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA8B,CAAC;AAKtE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAMpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA6B,CAAC;AAMpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pedagogy/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA8B,CAAC;AAKtE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAoB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAMpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA6B,CAAC;AAMpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAC;AAKlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -21,6 +21,7 @@ export type {
|
|
|
21
21
|
CitationStyleId,
|
|
22
22
|
} from './segments.ts';
|
|
23
23
|
export { CITATION_STYLES, citationSegments } from './segments.ts';
|
|
24
|
+
export { TEACHING_PAPER, TEACHING_WORK } from './teachingPaper.ts';
|
|
24
25
|
export type { CitedWork } from './works.ts';
|
|
25
26
|
export {
|
|
26
27
|
citationsFilename,
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Reference } from './reference.ts';
|
|
2
|
+
import type { CitedWork } from './works.ts';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The twenty years of online teaching the pedagogic sites of the family come
|
|
6
|
+
* out of: the tutorials, the exercises and the marking are the web-based tools
|
|
7
|
+
* it describes. One record holds it, so no site can name a different version
|
|
8
|
+
* of it.
|
|
9
|
+
*/
|
|
10
|
+
export const TEACHING_PAPER: Reference = {
|
|
11
|
+
authors: [
|
|
12
|
+
{ given: 'R.', family: 'Turin' },
|
|
13
|
+
{ given: 'L.', family: 'Patiny' },
|
|
14
|
+
],
|
|
15
|
+
title:
|
|
16
|
+
'Two Decades of Online Teaching: Trends, Challenges, and Future Directions',
|
|
17
|
+
journal: 'CHIMIA',
|
|
18
|
+
journalAbbreviation: 'Chimia',
|
|
19
|
+
year: 2023,
|
|
20
|
+
volume: '77',
|
|
21
|
+
issue: '10',
|
|
22
|
+
firstPage: '683',
|
|
23
|
+
lastPage: '687',
|
|
24
|
+
doi: '10.2533/chimia.2023.683',
|
|
25
|
+
publisher: 'Swiss Chemical Society',
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The teaching paper as one of the works a site that teaches asks to be cited,
|
|
30
|
+
* beside `PLATFORM_WORK` and the work the tool itself implements.
|
|
31
|
+
*/
|
|
32
|
+
export const TEACHING_WORK: CitedWork = {
|
|
33
|
+
reference: TEACHING_PAPER,
|
|
34
|
+
what: 'Teaching chemistry online',
|
|
35
|
+
note: 'Cite it for the exercises, which are the web-based teaching it describes.',
|
|
36
|
+
};
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import { Button, Tag, Tooltip } from '@blueprintjs/core';
|
|
2
2
|
import type { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
3
3
|
|
|
4
|
-
import type { ExerciseLevel
|
|
4
|
+
import type { ExerciseLevel } from '../core/types.ts';
|
|
5
5
|
|
|
6
6
|
import { LEVEL_ORDER } from './exerciseMeta.ts';
|
|
7
7
|
import type { TutorialLevelColours } from './tutorialLevels.ts';
|
|
8
8
|
import { TUTORIAL_LEVEL_COLOURS } from './tutorialLevels.ts';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* The little a strip needs of a step: what to call it, and which coloured group
|
|
12
|
+
* it belongs to. A tool passes its own steps, whatever else they carry.
|
|
13
|
+
*/
|
|
14
|
+
export interface TutorialStripStep {
|
|
15
|
+
/**
|
|
16
|
+
* What keys the button, when the tool gives its steps one.
|
|
17
|
+
* @default undefined — the position in the tour keys it instead
|
|
18
|
+
*/
|
|
19
|
+
id?: string;
|
|
20
|
+
title: string;
|
|
21
|
+
level: ExerciseLevel;
|
|
22
|
+
}
|
|
23
|
+
|
|
10
24
|
export interface TutorialStepStripProps {
|
|
11
25
|
/** The whole tour, in teaching order. */
|
|
12
|
-
steps: readonly
|
|
26
|
+
steps: readonly TutorialStripStep[];
|
|
13
27
|
/**
|
|
14
28
|
* Which step is open, as its position in `steps`. A position outside the
|
|
15
29
|
* tour is read as one of its ends, so a hand-edited link still opens.
|
|
@@ -110,7 +124,7 @@ export function TutorialStepStrip(props: TutorialStepStripProps): ReactElement {
|
|
|
110
124
|
}
|
|
111
125
|
|
|
112
126
|
interface LevelStripProps {
|
|
113
|
-
steps: readonly
|
|
127
|
+
steps: readonly TutorialStripStep[];
|
|
114
128
|
positions: readonly number[];
|
|
115
129
|
colours: TutorialLevelColours;
|
|
116
130
|
label: string;
|
|
@@ -122,11 +136,11 @@ function LevelStrip(props: LevelStripProps): ReactElement {
|
|
|
122
136
|
const { steps, positions, colours, label, activeIndex, onSelect } = props;
|
|
123
137
|
const buttons: ReactNode[] = [];
|
|
124
138
|
for (const position of positions) {
|
|
125
|
-
const step = steps[position] as
|
|
139
|
+
const step = steps[position] as TutorialStripStep;
|
|
126
140
|
const active = position === activeIndex;
|
|
127
141
|
buttons.push(
|
|
128
142
|
<Tooltip
|
|
129
|
-
key={step.id}
|
|
143
|
+
key={step.id ?? position}
|
|
130
144
|
content={step.title}
|
|
131
145
|
hoverOpenDelay={HOVER_OPEN_DELAY}
|
|
132
146
|
placement="bottom"
|
|
@@ -155,7 +169,7 @@ function LevelStrip(props: LevelStripProps): ReactElement {
|
|
|
155
169
|
}
|
|
156
170
|
|
|
157
171
|
function positionsOfLevel(
|
|
158
|
-
steps: readonly
|
|
172
|
+
steps: readonly TutorialStripStep[],
|
|
159
173
|
level: ExerciseLevel,
|
|
160
174
|
): number[] {
|
|
161
175
|
const positions: number[] = [];
|
|
@@ -172,6 +186,9 @@ function clampIndex(index: number, total: number): number {
|
|
|
172
186
|
|
|
173
187
|
/**
|
|
174
188
|
* The open step takes the darker shade of its own level, plus a border.
|
|
189
|
+
*
|
|
190
|
+
* Every button is the same square whatever it holds, so the numbers of one
|
|
191
|
+
* strip stand above those of the next and the tour reads as a grid.
|
|
175
192
|
* @param colours - The two shades of the level the step belongs to.
|
|
176
193
|
* @param active - Whether this is the step on screen.
|
|
177
194
|
* @returns The style of one numbered button.
|
|
@@ -181,20 +198,29 @@ function numberStyle(
|
|
|
181
198
|
active: boolean,
|
|
182
199
|
): CSSProperties {
|
|
183
200
|
return {
|
|
184
|
-
|
|
201
|
+
display: 'inline-flex',
|
|
202
|
+
width: STEP_SIZE,
|
|
203
|
+
height: STEP_SIZE,
|
|
204
|
+
alignItems: 'center',
|
|
205
|
+
justifyContent: 'center',
|
|
206
|
+
padding: 0,
|
|
185
207
|
border: active ? '2px solid #1c2127' : '1px solid rgb(17 20 24 / 20%)',
|
|
186
208
|
borderRadius: 4,
|
|
209
|
+
background: active ? colours.activeBackground : '#ffffff',
|
|
210
|
+
boxSizing: 'border-box',
|
|
187
211
|
color: '#1c2127',
|
|
188
212
|
cursor: 'pointer',
|
|
189
213
|
font: 'inherit',
|
|
190
214
|
fontSize: 12,
|
|
215
|
+
fontVariantNumeric: 'tabular-nums',
|
|
191
216
|
fontWeight: active ? 700 : 500,
|
|
192
217
|
lineHeight: 1,
|
|
193
|
-
minWidth: 26,
|
|
194
|
-
padding: active ? '5px 6px' : '6px 7px',
|
|
195
218
|
};
|
|
196
219
|
}
|
|
197
220
|
|
|
221
|
+
/** Wide enough for two digits, which every tour of ours stays under a hundred of. */
|
|
222
|
+
const STEP_SIZE = 28;
|
|
223
|
+
|
|
198
224
|
/** Long enough that the pointer can cross the strip without opening a title. */
|
|
199
225
|
const HOVER_OPEN_DELAY = 150;
|
|
200
226
|
|
package/src/pedagogy/ui/index.ts
CHANGED
|
@@ -31,7 +31,10 @@ export type {
|
|
|
31
31
|
export { SyntaxTooltip } from './SyntaxTooltip.tsx';
|
|
32
32
|
export type { TestCaseListProps } from './TestCaseList.tsx';
|
|
33
33
|
export { TestCaseList } from './TestCaseList.tsx';
|
|
34
|
-
export type {
|
|
34
|
+
export type {
|
|
35
|
+
TutorialStepStripProps,
|
|
36
|
+
TutorialStripStep,
|
|
37
|
+
} from './TutorialStepStrip.tsx';
|
|
35
38
|
export { TutorialStepStrip } from './TutorialStepStrip.tsx';
|
|
36
39
|
export type { TutorialLevelColours } from './tutorialLevels.ts';
|
|
37
40
|
export { TUTORIAL_LEVEL_COLOURS } from './tutorialLevels.ts';
|