@sp-days-framework/docusaurus-plugin-interactive-tasks 1.0.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/LICENSE +21 -0
- package/README.md +339 -0
- package/lib/contexts/DocTaskCounterContext.d.ts +15 -0
- package/lib/contexts/DocTaskCounterContext.d.ts.map +1 -0
- package/lib/contexts/DocTaskCounterContext.js +7 -0
- package/lib/contexts/DocTaskCounterContext.js.map +1 -0
- package/lib/contexts/TaskContext.d.ts +72 -0
- package/lib/contexts/TaskContext.d.ts.map +1 -0
- package/lib/contexts/TaskContext.js +6 -0
- package/lib/contexts/TaskContext.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +59 -0
- package/lib/index.js.map +1 -0
- package/lib/plugin/TaskRegistryPlugin.d.ts +27 -0
- package/lib/plugin/TaskRegistryPlugin.d.ts.map +1 -0
- package/lib/plugin/TaskRegistryPlugin.js +328 -0
- package/lib/plugin/TaskRegistryPlugin.js.map +1 -0
- package/lib/plugin/remarkTaskDirective.d.ts +29 -0
- package/lib/plugin/remarkTaskDirective.d.ts.map +1 -0
- package/lib/plugin/remarkTaskDirective.js +277 -0
- package/lib/plugin/remarkTaskDirective.js.map +1 -0
- package/lib/theme/DocRoot/Layout/index.d.ts +14 -0
- package/lib/theme/DocRoot/Layout/index.d.ts.map +1 -0
- package/lib/theme/DocRoot/Layout/index.js +27 -0
- package/lib/theme/DocRoot/Layout/index.js.map +1 -0
- package/lib/theme/DocRoot/index.d.ts +22 -0
- package/lib/theme/DocRoot/index.d.ts.map +1 -0
- package/lib/theme/DocRoot/index.js +33 -0
- package/lib/theme/DocRoot/index.js.map +1 -0
- package/lib/theme/DocSidebar/Desktop/CollapseButton/index.d.ts +4 -0
- package/lib/theme/DocSidebar/Desktop/CollapseButton/index.d.ts.map +1 -0
- package/lib/theme/DocSidebar/Desktop/CollapseButton/index.js +24 -0
- package/lib/theme/DocSidebar/Desktop/CollapseButton/index.js.map +1 -0
- package/lib/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +40 -0
- package/lib/theme/DocSidebar/Desktop/Content/index.d.ts +4 -0
- package/lib/theme/DocSidebar/Desktop/Content/index.d.ts.map +1 -0
- package/lib/theme/DocSidebar/Desktop/Content/index.js +67 -0
- package/lib/theme/DocSidebar/Desktop/Content/index.js.map +1 -0
- package/lib/theme/DocSidebar/Desktop/Content/styles.module.css +16 -0
- package/lib/theme/DocSidebar/Desktop/index.d.ts +6 -0
- package/lib/theme/DocSidebar/Desktop/index.d.ts.map +1 -0
- package/lib/theme/DocSidebar/Desktop/index.js +21 -0
- package/lib/theme/DocSidebar/Desktop/index.js.map +1 -0
- package/lib/theme/DocSidebar/Desktop/styles.module.css +37 -0
- package/lib/theme/DocSidebar/Mobile/index.d.ts +6 -0
- package/lib/theme/DocSidebar/Mobile/index.d.ts.map +1 -0
- package/lib/theme/DocSidebar/Mobile/index.js +29 -0
- package/lib/theme/DocSidebar/Mobile/index.js.map +1 -0
- package/lib/theme/DocSidebar/index.d.ts +4 -0
- package/lib/theme/DocSidebar/index.d.ts.map +1 -0
- package/lib/theme/DocSidebar/index.js +21 -0
- package/lib/theme/DocSidebar/index.js.map +1 -0
- package/lib/theme/DocSidebarItem/Category/index.d.ts +4 -0
- package/lib/theme/DocSidebarItem/Category/index.d.ts.map +1 -0
- package/lib/theme/DocSidebarItem/Category/index.js +316 -0
- package/lib/theme/DocSidebarItem/Category/index.js.map +1 -0
- package/lib/theme/DocSidebarItem/Category/styles.module.css +187 -0
- package/lib/theme/DocSidebarItem/Html/index.d.ts +4 -0
- package/lib/theme/DocSidebarItem/Html/index.d.ts.map +1 -0
- package/lib/theme/DocSidebarItem/Html/index.js +17 -0
- package/lib/theme/DocSidebarItem/Html/index.js.map +1 -0
- package/lib/theme/DocSidebarItem/Html/styles.module.css +6 -0
- package/lib/theme/DocSidebarItem/Link/index.d.ts +6 -0
- package/lib/theme/DocSidebarItem/Link/index.d.ts.map +1 -0
- package/lib/theme/DocSidebarItem/Link/index.js +149 -0
- package/lib/theme/DocSidebarItem/Link/index.js.map +1 -0
- package/lib/theme/DocSidebarItem/Link/styles.module.css +197 -0
- package/lib/theme/DocSidebarItem/index.d.ts +4 -0
- package/lib/theme/DocSidebarItem/index.d.ts.map +1 -0
- package/lib/theme/DocSidebarItem/index.js +22 -0
- package/lib/theme/DocSidebarItem/index.js.map +1 -0
- package/lib/theme/DocSidebarItems/index.d.ts +6 -0
- package/lib/theme/DocSidebarItems/index.d.ts.map +1 -0
- package/lib/theme/DocSidebarItems/index.js +48 -0
- package/lib/theme/DocSidebarItems/index.js.map +1 -0
- package/lib/theme/DocTaskCounterProvider/index.d.ts +20 -0
- package/lib/theme/DocTaskCounterProvider/index.d.ts.map +1 -0
- package/lib/theme/DocTaskCounterProvider/index.js +105 -0
- package/lib/theme/DocTaskCounterProvider/index.js.map +1 -0
- package/lib/theme/MDXComponents.d.ts +19 -0
- package/lib/theme/MDXComponents.d.ts.map +1 -0
- package/lib/theme/MDXComponents.js +52 -0
- package/lib/theme/MDXComponents.js.map +1 -0
- package/lib/theme/Root.d.ts +9 -0
- package/lib/theme/Root.d.ts.map +1 -0
- package/lib/theme/Root.js +105 -0
- package/lib/theme/Root.js.map +1 -0
- package/lib/theme/Task/Hint/index.d.ts +14 -0
- package/lib/theme/Task/Hint/index.d.ts.map +1 -0
- package/lib/theme/Task/Hint/index.js +23 -0
- package/lib/theme/Task/Hint/index.js.map +1 -0
- package/lib/theme/Task/Hint/styles.module.css +72 -0
- package/lib/theme/Task/Solution/index.d.ts +14 -0
- package/lib/theme/Task/Solution/index.d.ts.map +1 -0
- package/lib/theme/Task/Solution/index.js +23 -0
- package/lib/theme/Task/Solution/index.js.map +1 -0
- package/lib/theme/Task/Solution/styles.module.css +71 -0
- package/lib/theme/Task/Text/index.d.ts +14 -0
- package/lib/theme/Task/Text/index.d.ts.map +1 -0
- package/lib/theme/Task/Text/index.js +18 -0
- package/lib/theme/Task/Text/index.js.map +1 -0
- package/lib/theme/Task/Text/styles.module.css +39 -0
- package/lib/theme/Task/index.d.ts +11 -0
- package/lib/theme/Task/index.d.ts.map +1 -0
- package/lib/theme/Task/index.js +286 -0
- package/lib/theme/Task/index.js.map +1 -0
- package/lib/theme/Task/styles.module.css +529 -0
- package/lib/theme/TaskAutoHideToggle/index.d.ts +10 -0
- package/lib/theme/TaskAutoHideToggle/index.d.ts.map +1 -0
- package/lib/theme/TaskAutoHideToggle/index.js +79 -0
- package/lib/theme/TaskAutoHideToggle/index.js.map +1 -0
- package/lib/theme/TaskAutoHideToggle/styles.module.css +41 -0
- package/lib/theme/TaskExample/index.d.ts +16 -0
- package/lib/theme/TaskExample/index.d.ts.map +1 -0
- package/lib/theme/TaskExample/index.js +249 -0
- package/lib/theme/TaskExample/index.js.map +1 -0
- package/lib/theme/TaskPlaceholder/README.md +119 -0
- package/lib/theme/TaskPlaceholder/index.d.ts +23 -0
- package/lib/theme/TaskPlaceholder/index.d.ts.map +1 -0
- package/lib/theme/TaskPlaceholder/index.js +293 -0
- package/lib/theme/TaskPlaceholder/index.js.map +1 -0
- package/lib/theme/TaskProgression/index.d.ts +11 -0
- package/lib/theme/TaskProgression/index.d.ts.map +1 -0
- package/lib/theme/TaskProgression/index.js +131 -0
- package/lib/theme/TaskProgression/index.js.map +1 -0
- package/lib/theme/TaskProgression/styles.module.css +162 -0
- package/lib/theme/TaskProgressionOverview/index.d.ts +10 -0
- package/lib/theme/TaskProgressionOverview/index.d.ts.map +1 -0
- package/lib/theme/TaskProgressionOverview/index.js +123 -0
- package/lib/theme/TaskProgressionOverview/index.js.map +1 -0
- package/lib/theme/TaskProgressionOverview/styles.module.css +159 -0
- package/lib/theme/TaskProvider/index.d.ts +15 -0
- package/lib/theme/TaskProvider/index.d.ts.map +1 -0
- package/lib/theme/TaskProvider/index.js +134 -0
- package/lib/theme/TaskProvider/index.js.map +1 -0
- package/lib/utils/badgeStyles.d.ts +29 -0
- package/lib/utils/badgeStyles.d.ts.map +1 -0
- package/lib/utils/badgeStyles.js +60 -0
- package/lib/utils/badgeStyles.js.map +1 -0
- package/lib/utils/icons.d.ts +38 -0
- package/lib/utils/icons.d.ts.map +1 -0
- package/lib/utils/icons.js +53 -0
- package/lib/utils/icons.js.map +1 -0
- package/lib/utils/logger.d.ts +38 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +72 -0
- package/lib/utils/logger.js.map +1 -0
- package/lib/utils/storage.d.ts +33 -0
- package/lib/utils/storage.d.ts.map +1 -0
- package/lib/utils/storage.js +105 -0
- package/lib/utils/storage.js.map +1 -0
- package/lib/utils/useDocTaskStats.d.ts +58 -0
- package/lib/utils/useDocTaskStats.d.ts.map +1 -0
- package/lib/utils/useDocTaskStats.js +206 -0
- package/lib/utils/useDocTaskStats.js.map +1 -0
- package/lib/utils/usePluginId.d.ts +24 -0
- package/lib/utils/usePluginId.d.ts.map +1 -0
- package/lib/utils/usePluginId.js +61 -0
- package/lib/utils/usePluginId.js.map +1 -0
- package/lib/utils/useResolveDocPath.d.ts +33 -0
- package/lib/utils/useResolveDocPath.d.ts.map +1 -0
- package/lib/utils/useResolveDocPath.js +122 -0
- package/lib/utils/useResolveDocPath.js.map +1 -0
- package/lib/utils/useTaskBadgeAnimation.d.ts +16 -0
- package/lib/utils/useTaskBadgeAnimation.d.ts.map +1 -0
- package/lib/utils/useTaskBadgeAnimation.js +51 -0
- package/lib/utils/useTaskBadgeAnimation.js.map +1 -0
- package/lib/validateThemeConfig.d.ts +8 -0
- package/lib/validateThemeConfig.d.ts.map +1 -0
- package/lib/validateThemeConfig.js +15 -0
- package/lib/validateThemeConfig.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TaskProgressionOverview Component
|
|
4
|
+
* Displays all task progressions across all docs in the plugin
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.default = TaskProgressionOverview;
|
|
44
|
+
const react_1 = __importStar(require("react"));
|
|
45
|
+
const Link_1 = __importDefault(require("@docusaurus/Link"));
|
|
46
|
+
const client_1 = require("@docusaurus/plugin-content-docs/client");
|
|
47
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
48
|
+
const TaskProvider_1 = require("../TaskProvider");
|
|
49
|
+
const useDocTaskStats_1 = require("../../utils/useDocTaskStats");
|
|
50
|
+
const usePluginId_1 = require("../../utils/usePluginId");
|
|
51
|
+
const styles_module_css_1 = __importDefault(require("./styles.module.css"));
|
|
52
|
+
/**
|
|
53
|
+
* Internal component to render a single doc's progression
|
|
54
|
+
*/
|
|
55
|
+
function DocProgressionItem({ docId, pluginId }) {
|
|
56
|
+
const stats = (0, useDocTaskStats_1.useDocTaskStats)(docId, pluginId);
|
|
57
|
+
if (!stats) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const isComplete = stats.isComplete;
|
|
61
|
+
const squareClass = isComplete ? styles_module_css_1.default.successSquare : styles_module_css_1.default.primarySquare;
|
|
62
|
+
return (react_1.default.createElement(Link_1.default, { to: stats.permalink, className: (0, clsx_1.default)(styles_module_css_1.default.progressionItem, styles_module_css_1.default.clickable) },
|
|
63
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.contentArea },
|
|
64
|
+
stats.hasSectionName && (react_1.default.createElement("div", { className: styles_module_css_1.default.sectionName }, stats.sectionName)),
|
|
65
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.title }, stats.title)),
|
|
66
|
+
react_1.default.createElement("div", { className: (0, clsx_1.default)(styles_module_css_1.default.progressSquare, squareClass) },
|
|
67
|
+
stats.completedTasks,
|
|
68
|
+
"/",
|
|
69
|
+
stats.totalTasks)));
|
|
70
|
+
}
|
|
71
|
+
function TaskProgressionOverview({ pluginId, }) {
|
|
72
|
+
const { metadata } = (0, client_1.useDoc)();
|
|
73
|
+
const { taskRegistry } = (0, TaskProvider_1.useTaskContext)();
|
|
74
|
+
// Get the correct plugin ID for this doc
|
|
75
|
+
const detectedPluginId = (0, usePluginId_1.usePluginId)();
|
|
76
|
+
// Auto-detect pluginId from current doc if not provided
|
|
77
|
+
const effectivePluginId = pluginId ?? detectedPluginId;
|
|
78
|
+
// Sort and filter docs from the registry
|
|
79
|
+
// IMPORTANT: Call useMemo BEFORE any early returns to comply with Rules of Hooks
|
|
80
|
+
const sortedDocs = (0, react_1.useMemo)(() => {
|
|
81
|
+
if (!taskRegistry) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
// Get all docs for this plugin
|
|
85
|
+
const docs = Object.entries(taskRegistry.docPages)
|
|
86
|
+
.filter(([key, doc]) => doc.pluginId === effectivePluginId && doc.totalTasks > 0)
|
|
87
|
+
.map(([_, doc]) => doc);
|
|
88
|
+
// Sort by: sidebarPosition -> sectionName -> id
|
|
89
|
+
return docs.sort((a, b) => {
|
|
90
|
+
// First: sidebarPosition (undefined sorts to the end)
|
|
91
|
+
if (a.sidebarPosition !== undefined && b.sidebarPosition !== undefined) {
|
|
92
|
+
if (a.sidebarPosition !== b.sidebarPosition) {
|
|
93
|
+
return a.sidebarPosition - b.sidebarPosition;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (a.sidebarPosition !== undefined) {
|
|
97
|
+
return -1; // a comes first
|
|
98
|
+
}
|
|
99
|
+
else if (b.sidebarPosition !== undefined) {
|
|
100
|
+
return 1; // b comes first
|
|
101
|
+
}
|
|
102
|
+
// Second: sectionName (alphabetical)
|
|
103
|
+
const sectionCompare = a.sectionName.localeCompare(b.sectionName);
|
|
104
|
+
if (sectionCompare !== 0) {
|
|
105
|
+
return sectionCompare;
|
|
106
|
+
}
|
|
107
|
+
// Third: id (alphabetical)
|
|
108
|
+
return a.id.localeCompare(b.id);
|
|
109
|
+
});
|
|
110
|
+
}, [taskRegistry, effectivePluginId]);
|
|
111
|
+
// Show loading state while registry is loading
|
|
112
|
+
if (!taskRegistry) {
|
|
113
|
+
return (react_1.default.createElement("div", { className: styles_module_css_1.default.overviewContainer },
|
|
114
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.loadingState }, "Loading task overview...")));
|
|
115
|
+
}
|
|
116
|
+
// If no docs with tasks, show a message
|
|
117
|
+
if (sortedDocs.length === 0) {
|
|
118
|
+
return (react_1.default.createElement("div", { className: styles_module_css_1.default.overviewContainer },
|
|
119
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.emptyState }, "No documents with tasks found.")));
|
|
120
|
+
}
|
|
121
|
+
return (react_1.default.createElement("div", { className: styles_module_css_1.default.overviewContainer }, sortedDocs.map((doc) => (react_1.default.createElement(DocProgressionItem, { key: `${doc.pluginId}/${doc.id}`, docId: doc.id, pluginId: doc.pluginId, sidebarPosition: doc.sidebarPosition })))));
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theme/TaskProgressionOverview/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskProgressionOverview Styles
|
|
3
|
+
* Container for multiple progression items with vertical stacking
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.overviewContainer {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
gap: 0.875rem;
|
|
10
|
+
padding: 0.5rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Individual progression item (same style as TaskProgression) */
|
|
14
|
+
.progressionItem {
|
|
15
|
+
display: grid;
|
|
16
|
+
grid-template-columns: 1fr auto;
|
|
17
|
+
grid-template-areas: "content progress";
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: 1rem;
|
|
20
|
+
padding: 0.875rem 1.125rem;
|
|
21
|
+
min-height: 70px;
|
|
22
|
+
|
|
23
|
+
/* Borderless with subtle shadow for float effect */
|
|
24
|
+
background-color: var(--ifm-card-background-color);
|
|
25
|
+
border-radius: 8px;
|
|
26
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
27
|
+
|
|
28
|
+
/* Smooth transitions */
|
|
29
|
+
transition: all 0.25s ease;
|
|
30
|
+
|
|
31
|
+
/* Remove link styling */
|
|
32
|
+
text-decoration: none;
|
|
33
|
+
color: inherit;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Clickable state - adds hover effect */
|
|
37
|
+
.progressionItem.clickable {
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.progressionItem.clickable:hover {
|
|
42
|
+
/* Pop effect on hover */
|
|
43
|
+
transform: translateY(-3px);
|
|
44
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Content area - left side */
|
|
48
|
+
.contentArea {
|
|
49
|
+
grid-area: content;
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
gap: 0.25rem;
|
|
53
|
+
min-width: 0; /* Allow text truncation if needed */
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Section name styling (bold, smaller) */
|
|
57
|
+
.sectionName {
|
|
58
|
+
font-weight: 700;
|
|
59
|
+
font-size: 0.875rem;
|
|
60
|
+
color: var(--ifm-color-emphasis-800);
|
|
61
|
+
line-height: 1.3;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Title styling */
|
|
65
|
+
.title {
|
|
66
|
+
font-size: 0.95rem;
|
|
67
|
+
color: var(--ifm-color-emphasis-900);
|
|
68
|
+
line-height: 1.4;
|
|
69
|
+
font-weight: 500;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Progress square - right side */
|
|
73
|
+
.progressSquare {
|
|
74
|
+
grid-area: progress;
|
|
75
|
+
padding: 0.5rem 0.875rem;
|
|
76
|
+
border-radius: 6px;
|
|
77
|
+
font-weight: 700;
|
|
78
|
+
font-size: 0.9rem;
|
|
79
|
+
text-align: center;
|
|
80
|
+
white-space: nowrap;
|
|
81
|
+
min-width: 50px;
|
|
82
|
+
|
|
83
|
+
/* Smooth color transitions */
|
|
84
|
+
transition: background-color 0.3s ease, color 0.3s ease;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* Primary color - incomplete tasks */
|
|
88
|
+
.primarySquare {
|
|
89
|
+
background-color: var(--ifm-color-primary);
|
|
90
|
+
color: var(--ifm-color-primary-contrast-foreground);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Success color - all tasks completed */
|
|
94
|
+
.successSquare {
|
|
95
|
+
background-color: var(--ifm-color-success);
|
|
96
|
+
color: var(--ifm-color-success-contrast-foreground);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Empty state message */
|
|
100
|
+
.emptyState {
|
|
101
|
+
padding: 2rem;
|
|
102
|
+
text-align: center;
|
|
103
|
+
color: var(--ifm-color-emphasis-600);
|
|
104
|
+
font-style: italic;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Loading state message */
|
|
108
|
+
.loadingState {
|
|
109
|
+
padding: 2rem;
|
|
110
|
+
text-align: center;
|
|
111
|
+
color: var(--ifm-color-emphasis-600);
|
|
112
|
+
font-style: italic;
|
|
113
|
+
opacity: 0.7;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Dark mode adjustments */
|
|
117
|
+
[data-theme='dark'] .progressionItem {
|
|
118
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
[data-theme='dark'] .progressionItem.clickable:hover {
|
|
122
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
[data-theme='dark'] .sectionName {
|
|
126
|
+
color: var(--ifm-color-emphasis-700);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
[data-theme='dark'] .title {
|
|
130
|
+
color: var(--ifm-color-emphasis-800);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Responsive adjustments for smaller screens */
|
|
134
|
+
@media (max-width: 768px) {
|
|
135
|
+
.overviewContainer {
|
|
136
|
+
gap: 0.75rem;
|
|
137
|
+
padding: 0.25rem;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.progressionItem {
|
|
141
|
+
padding: 0.75rem 1rem;
|
|
142
|
+
min-height: 65px;
|
|
143
|
+
gap: 0.75rem;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.sectionName {
|
|
147
|
+
font-size: 0.8rem;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.title {
|
|
151
|
+
font-size: 0.875rem;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.progressSquare {
|
|
155
|
+
padding: 0.4rem 0.75rem;
|
|
156
|
+
font-size: 0.85rem;
|
|
157
|
+
min-width: 45px;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskProvider Component
|
|
3
|
+
* Manages global task state and persistence
|
|
4
|
+
*/
|
|
5
|
+
import { type ReactNode, type ReactElement } from 'react';
|
|
6
|
+
import type { TaskContextValue } from '../../contexts/TaskContext';
|
|
7
|
+
export interface TaskProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function TaskProvider({ children }: TaskProviderProps): ReactElement;
|
|
11
|
+
/**
|
|
12
|
+
* Hook to access task context
|
|
13
|
+
*/
|
|
14
|
+
export declare function useTaskContext(): TaskContextValue;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/TaskProvider/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EACZ,KAAK,SAAS,EACd,KAAK,YAAY,EAOlB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,4BAA4B,CAAC;AAWxG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAmG1E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAOjD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TaskProvider Component
|
|
4
|
+
* Manages global task state and persistence
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.TaskProvider = TaskProvider;
|
|
41
|
+
exports.useTaskContext = useTaskContext;
|
|
42
|
+
const react_1 = __importStar(require("react"));
|
|
43
|
+
const storage_1 = require("../../utils/storage");
|
|
44
|
+
const TaskContext = (0, react_1.createContext)(undefined);
|
|
45
|
+
function TaskProvider({ children }) {
|
|
46
|
+
// Initialize state synchronously from localStorage (client-side only)
|
|
47
|
+
const [tasks, setTasks] = (0, react_1.useState)(() => {
|
|
48
|
+
return (0, storage_1.isBrowser)() ? (0, storage_1.loadTasksFromStorage)() : {};
|
|
49
|
+
});
|
|
50
|
+
const [autoCollapseCompletedTasks, setAutoCollapseState] = (0, react_1.useState)(() => {
|
|
51
|
+
return (0, storage_1.isBrowser)() ? (0, storage_1.loadAutoCollapseFromStorage)() : false;
|
|
52
|
+
});
|
|
53
|
+
const [taskRegistry, setTaskRegistry] = (0, react_1.useState)(null);
|
|
54
|
+
// Load task registry for totals (runs once on mount)
|
|
55
|
+
(0, react_1.useEffect)(() => {
|
|
56
|
+
if ((0, storage_1.isBrowser)() && !taskRegistry) {
|
|
57
|
+
// Fetch task-registry.json
|
|
58
|
+
fetch('/task-registry.json')
|
|
59
|
+
.then(response => {
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
throw new Error('Registry not found');
|
|
62
|
+
}
|
|
63
|
+
return response.json();
|
|
64
|
+
})
|
|
65
|
+
.then((data) => {
|
|
66
|
+
setTaskRegistry(data);
|
|
67
|
+
})
|
|
68
|
+
.catch(error => {
|
|
69
|
+
console.warn('[Interactive Tasks] Failed to load task registry:', error);
|
|
70
|
+
// Set empty registry so we don't keep retrying
|
|
71
|
+
setTaskRegistry({ docPages: {}, categories: {} });
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}, [taskRegistry]);
|
|
75
|
+
// Listen for auto-collapse changes from navbar toggle (which is outside this provider)
|
|
76
|
+
(0, react_1.useEffect)(() => {
|
|
77
|
+
if ((0, storage_1.isBrowser)()) {
|
|
78
|
+
const handleAutoCollapseChange = () => {
|
|
79
|
+
const newValue = (0, storage_1.loadAutoCollapseFromStorage)();
|
|
80
|
+
if (newValue !== autoCollapseCompletedTasks) {
|
|
81
|
+
setAutoCollapseState(newValue);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
window.addEventListener('task-auto-collapse-changed', handleAutoCollapseChange);
|
|
85
|
+
return () => {
|
|
86
|
+
window.removeEventListener('task-auto-collapse-changed', handleAutoCollapseChange);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}, [autoCollapseCompletedTasks]);
|
|
90
|
+
const setTaskCompleted = (0, react_1.useCallback)((taskKey, completed, pluginId, docId, taskNumber, name) => {
|
|
91
|
+
const newTasks = {
|
|
92
|
+
...tasks,
|
|
93
|
+
[taskKey]: {
|
|
94
|
+
completed,
|
|
95
|
+
pluginId,
|
|
96
|
+
docId,
|
|
97
|
+
taskNumber,
|
|
98
|
+
name,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
setTasks(newTasks);
|
|
102
|
+
(0, storage_1.saveTasksToStorage)(newTasks);
|
|
103
|
+
}, [tasks]);
|
|
104
|
+
const setAutoCollapseCompletedTasks = (0, react_1.useCallback)((autoCollapse) => {
|
|
105
|
+
setAutoCollapseState(autoCollapse);
|
|
106
|
+
(0, storage_1.saveAutoCollapseToStorage)(autoCollapse);
|
|
107
|
+
// Dispatch custom event to notify navbar toggle
|
|
108
|
+
if ((0, storage_1.isBrowser)()) {
|
|
109
|
+
window.dispatchEvent(new CustomEvent('task-auto-collapse-changed', { detail: autoCollapse }));
|
|
110
|
+
}
|
|
111
|
+
}, [autoCollapseCompletedTasks]);
|
|
112
|
+
// Memoize context value to prevent unnecessary re-renders
|
|
113
|
+
const contextValue = (0, react_1.useMemo)(() => {
|
|
114
|
+
return {
|
|
115
|
+
tasks,
|
|
116
|
+
autoCollapseCompletedTasks,
|
|
117
|
+
setTaskCompleted,
|
|
118
|
+
setAutoCollapseCompletedTasks,
|
|
119
|
+
taskRegistry,
|
|
120
|
+
};
|
|
121
|
+
}, [tasks, autoCollapseCompletedTasks, setTaskCompleted, setAutoCollapseCompletedTasks, taskRegistry]);
|
|
122
|
+
return react_1.default.createElement(TaskContext.Provider, { value: contextValue }, children);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Hook to access task context
|
|
126
|
+
*/
|
|
127
|
+
function useTaskContext() {
|
|
128
|
+
const context = (0, react_1.useContext)(TaskContext);
|
|
129
|
+
if (!context) {
|
|
130
|
+
throw new Error('useTaskContext must be used within a TaskProvider');
|
|
131
|
+
}
|
|
132
|
+
return context;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theme/TaskProvider/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Badge Style Utilities
|
|
3
|
+
* Applies inline styles based on badge configuration
|
|
4
|
+
*/
|
|
5
|
+
import type { BadgeConfig } from "../contexts/TaskContext";
|
|
6
|
+
/**
|
|
7
|
+
* Get custom CSS properties for badge styling
|
|
8
|
+
* Returns CSS custom properties that will be applied based on theme
|
|
9
|
+
*
|
|
10
|
+
* @param badgeConfig - Badge configuration from frontmatter/customProps
|
|
11
|
+
* @param isComplete - Whether the badge represents a completed state
|
|
12
|
+
* @returns Object with CSS custom properties
|
|
13
|
+
*/
|
|
14
|
+
export declare function getBadgeStyles(badgeConfig: BadgeConfig | undefined, isComplete?: boolean): React.CSSProperties;
|
|
15
|
+
/**
|
|
16
|
+
* Check if badge should be hidden
|
|
17
|
+
*
|
|
18
|
+
* @param badgeConfig - Badge configuration
|
|
19
|
+
* @returns true if badge should be hidden
|
|
20
|
+
*/
|
|
21
|
+
export declare function shouldHideBadge(badgeConfig: BadgeConfig | undefined): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if icon should be disabled (show numbers even when complete)
|
|
24
|
+
*
|
|
25
|
+
* @param badgeConfig - Badge configuration
|
|
26
|
+
* @returns true if icon should be disabled
|
|
27
|
+
*/
|
|
28
|
+
export declare function shouldDisableIcon(badgeConfig: BadgeConfig | undefined): boolean;
|
|
29
|
+
//# sourceMappingURL=badgeStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badgeStyles.d.ts","sourceRoot":"","sources":["../../src/utils/badgeStyles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,UAAU,GAAE,OAAe,GAC1B,KAAK,CAAC,aAAa,CA4BrB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,OAAO,CAET"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Badge Style Utilities
|
|
4
|
+
* Applies inline styles based on badge configuration
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getBadgeStyles = getBadgeStyles;
|
|
8
|
+
exports.shouldHideBadge = shouldHideBadge;
|
|
9
|
+
exports.shouldDisableIcon = shouldDisableIcon;
|
|
10
|
+
/**
|
|
11
|
+
* Get custom CSS properties for badge styling
|
|
12
|
+
* Returns CSS custom properties that will be applied based on theme
|
|
13
|
+
*
|
|
14
|
+
* @param badgeConfig - Badge configuration from frontmatter/customProps
|
|
15
|
+
* @param isComplete - Whether the badge represents a completed state
|
|
16
|
+
* @returns Object with CSS custom properties
|
|
17
|
+
*/
|
|
18
|
+
function getBadgeStyles(badgeConfig, isComplete = false) {
|
|
19
|
+
if (!badgeConfig || !badgeConfig.colors) {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
const styles = {};
|
|
23
|
+
const { completed, incomplete, font } = badgeConfig.colors;
|
|
24
|
+
// Determine which state colors to use
|
|
25
|
+
const stateColors = isComplete ? completed : incomplete;
|
|
26
|
+
// Set background colors
|
|
27
|
+
if (stateColors?.lightmode) {
|
|
28
|
+
styles["--task-badge-bg"] = stateColors.lightmode;
|
|
29
|
+
}
|
|
30
|
+
if (stateColors?.darkmode) {
|
|
31
|
+
styles["--task-badge-bg-dark"] = stateColors.darkmode;
|
|
32
|
+
}
|
|
33
|
+
// Set font colors (same for both completed/incomplete)
|
|
34
|
+
if (font?.lightmode) {
|
|
35
|
+
styles["--task-badge-color"] = font.lightmode;
|
|
36
|
+
}
|
|
37
|
+
if (font?.darkmode) {
|
|
38
|
+
styles["--task-badge-color-dark"] = font.darkmode;
|
|
39
|
+
}
|
|
40
|
+
return styles;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Check if badge should be hidden
|
|
44
|
+
*
|
|
45
|
+
* @param badgeConfig - Badge configuration
|
|
46
|
+
* @returns true if badge should be hidden
|
|
47
|
+
*/
|
|
48
|
+
function shouldHideBadge(badgeConfig) {
|
|
49
|
+
return badgeConfig?.hide === true;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if icon should be disabled (show numbers even when complete)
|
|
53
|
+
*
|
|
54
|
+
* @param badgeConfig - Badge configuration
|
|
55
|
+
* @returns true if icon should be disabled
|
|
56
|
+
*/
|
|
57
|
+
function shouldDisableIcon(badgeConfig) {
|
|
58
|
+
return badgeConfig?.disableIcon === true;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=badgeStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badgeStyles.js","sourceRoot":"","sources":["../../src/utils/badgeStyles.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,wCA+BC;AAQD,0CAEC;AAQD,8CAIC;AA7DD;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC5B,WAAoC,EACpC,aAAsB,KAAK;IAE3B,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;IAE3D,sCAAsC;IACtC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAExD,wBAAwB;IACxB,IAAI,WAAW,EAAE,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;IACpD,CAAC;IACD,IAAI,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,sBAAsB,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;IACxD,CAAC;IAED,uDAAuD;IACvD,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;QACpB,MAAM,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpD,CAAC;IAED,OAAO,MAA6B,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,WAAoC;IAClE,OAAO,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,WAAoC;IAEpC,OAAO,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Icons for Task Components
|
|
3
|
+
* Centralized SVG icons to avoid duplication
|
|
4
|
+
*/
|
|
5
|
+
import { type ReactElement } from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* Completed task icon - checkmark in circle
|
|
8
|
+
* Displayed next to task name when task is completed
|
|
9
|
+
*/
|
|
10
|
+
export declare const CHECKMARK_CIRCLE_FILL_ICON: ReactElement;
|
|
11
|
+
/**
|
|
12
|
+
* Chevron down icon for expand/collapse
|
|
13
|
+
*/
|
|
14
|
+
export declare const CHEVRON_DOWN_ICON: ReactElement;
|
|
15
|
+
/**
|
|
16
|
+
* Auto-collapse enabled icon - list with up arrow
|
|
17
|
+
* Used in navbar toggle when auto-collapse is enabled
|
|
18
|
+
*/
|
|
19
|
+
export declare const ENABLED_ICON: ReactElement;
|
|
20
|
+
/**
|
|
21
|
+
* Auto-collapse disabled icon - list with X
|
|
22
|
+
* Used in navbar toggle when auto-collapse is disabled
|
|
23
|
+
*/
|
|
24
|
+
export declare const DISABLED_ICON: ReactElement;
|
|
25
|
+
/**
|
|
26
|
+
* Simple checkmark icon for completion button
|
|
27
|
+
*/
|
|
28
|
+
export declare const CHECKMARK_ICON: ReactElement;
|
|
29
|
+
export declare const CHECKMARKS_ICON: ReactElement;
|
|
30
|
+
/**
|
|
31
|
+
* Hint icon - lightbulb
|
|
32
|
+
*/
|
|
33
|
+
export declare const HINT_ICON: ReactElement;
|
|
34
|
+
/**
|
|
35
|
+
* Solution icon - checkmark with sparkles
|
|
36
|
+
*/
|
|
37
|
+
export declare const SOLUTION_ICON: ReactElement;
|
|
38
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/utils/icons.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,YAIxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAgB/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,YAc1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,YAmB3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAI5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,YAI7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,YAavB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAa3B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Icons for Task Components
|
|
4
|
+
* Centralized SVG icons to avoid duplication
|
|
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.SOLUTION_ICON = exports.HINT_ICON = exports.CHECKMARKS_ICON = exports.CHECKMARK_ICON = exports.DISABLED_ICON = exports.ENABLED_ICON = exports.CHEVRON_DOWN_ICON = exports.CHECKMARK_CIRCLE_FILL_ICON = void 0;
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
/**
|
|
13
|
+
* Completed task icon - checkmark in circle
|
|
14
|
+
* Displayed next to task name when task is completed
|
|
15
|
+
*/
|
|
16
|
+
exports.CHECKMARK_CIRCLE_FILL_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 512 512" },
|
|
17
|
+
react_1.default.createElement("path", { fill: "currentColor", d: "M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208s208-93.31 208-208S370.69 48 256 48m108.25 138.29l-134.4 160a16 16 0 0 1-12 5.71h-.27a16 16 0 0 1-11.89-5.3l-57.6-64a16 16 0 1 1 23.78-21.4l45.29 50.32l122.59-145.91a16 16 0 0 1 24.5 20.58" })));
|
|
18
|
+
/**
|
|
19
|
+
* Chevron down icon for expand/collapse
|
|
20
|
+
*/
|
|
21
|
+
exports.CHEVRON_DOWN_ICON = (react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", style: { transition: 'transform 0.2s ease' } },
|
|
22
|
+
react_1.default.createElement("polyline", { points: "6 8 10 12 14 8", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
23
|
+
/**
|
|
24
|
+
* Auto-collapse enabled icon - list with up arrow
|
|
25
|
+
* Used in navbar toggle when auto-collapse is enabled
|
|
26
|
+
*/
|
|
27
|
+
exports.ENABLED_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "30", height: "30", viewBox: "0 0 24 24" },
|
|
28
|
+
react_1.default.createElement("path", { fill: "currentColor", fillRule: "evenodd", d: "M2.25 6A.75.75 0 0 1 3 5.25h17a.75.75 0 0 1 0 1.5H3A.75.75 0 0 1 2.25 6m0 5a.75.75 0 0 1 .75-.75h17a.75.75 0 0 1 0 1.5H3a.75.75 0 0 1-.75-.75m14.762 3.43a.75.75 0 0 1 .976 0l3.5 3a.75.75 0 1 1-.976 1.14L17.5 15.987l-3.012 2.581a.75.75 0 1 1-.976-1.138zM2.25 16a.75.75 0 0 1 .75-.75h8a.75.75 0 0 1 0 1.5H3a.75.75 0 0 1-.75-.75", clipRule: "evenodd" })));
|
|
29
|
+
/**
|
|
30
|
+
* Auto-collapse disabled icon - list with X
|
|
31
|
+
* Used in navbar toggle when auto-collapse is disabled
|
|
32
|
+
*/
|
|
33
|
+
exports.DISABLED_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "30", height: "30", viewBox: "0 0 24 24" },
|
|
34
|
+
react_1.default.createElement("path", { fill: "currentColor", fillRule: "evenodd", d: "M2.25 6A.75.75 0 0 1 3 5.25h17a.75.75 0 0 1 0 1.5H3A.75.75 0 0 1 2.25 6m0 5a.75.75 0 0 1 .75-.75h8a.75.75 0 0 1 0 1.5H3a.75.75 0 0 1-.75-.75m0 5a.75.75 0 0 1 .75-.75h8a.75.75 0 0 1 0 1.5H3a.75.75 0 0 1-.75-.75", clipRule: "evenodd", opacity: "0.5" }),
|
|
35
|
+
react_1.default.createElement("path", { fill: "currentColor", d: "M14.47 10.47a.75.75 0 0 1 1.06 0l1.97 1.97l1.97-1.97a.75.75 0 1 1 1.06 1.06l-1.97 1.97l1.97 1.97a.75.75 0 1 1-1.06 1.06l-1.97-1.97l-1.97 1.97a.75.75 0 1 1-1.06-1.06l1.97-1.97l-1.97-1.97a.75.75 0 0 1 0-1.06" })));
|
|
36
|
+
/**
|
|
37
|
+
* Simple checkmark icon for completion button
|
|
38
|
+
*/
|
|
39
|
+
exports.CHECKMARK_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 512 512" },
|
|
40
|
+
react_1.default.createElement("path", { fill: "none", stroke: "currentColor", strokeLinecap: "square", strokeMiterlimit: "10", strokeWidth: "44", d: "M416 128L192 384l-96-96" })));
|
|
41
|
+
exports.CHECKMARKS_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 512 512" },
|
|
42
|
+
react_1.default.createElement("path", { fill: "none", stroke: "currentColor", strokeLinecap: "square", strokeMiterlimit: "10", strokeWidth: "44", d: "M465 127L241 384l-92-92m-9 93l-93-93m316-165L236 273" })));
|
|
43
|
+
/**
|
|
44
|
+
* Hint icon - lightbulb
|
|
45
|
+
*/
|
|
46
|
+
exports.HINT_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", style: { display: 'inline-block', verticalAlign: 'middle', marginRight: '0.375rem' } },
|
|
47
|
+
react_1.default.createElement("path", { fill: "currentColor", d: "M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74c0-3.86-3.14-7-7-7m2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6A5 5 0 0 1 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1" })));
|
|
48
|
+
/**
|
|
49
|
+
* Solution icon - checkmark with sparkles
|
|
50
|
+
*/
|
|
51
|
+
exports.SOLUTION_ICON = (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", style: { display: 'inline-block', verticalAlign: 'middle', marginRight: '0.375rem' } },
|
|
52
|
+
react_1.default.createElement("path", { fill: "currentColor", d: "M13.652 20.34c.377-.074.765.11.912.465c.17.414-.053.888-.49.98a10.05 10.05 0 0 1-4.15 0c-.439-.093-.662-.567-.49-.981c.146-.354.535-.54.91-.465a8.6 8.6 0 0 0 3.308 0m5.413-3.613c.214-.319.619-.462.973-.316c.414.172.591.665.347 1.04a10.1 10.1 0 0 1-2.934 2.934c-.375.244-.868.067-1.04-.347c-.146-.354-.003-.758.316-.972a8.6 8.6 0 0 0 2.338-2.34m-15.104-.318c.354-.146.76-.003.973.316a8.6 8.6 0 0 0 2.337 2.34c.318.213.461.617.315.971c-.172.414-.665.591-1.04.347a10.05 10.05 0 0 1-2.932-2.933c-.244-.375-.067-.87.347-1.04M15.22 8.97a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-1.06 0l-2.5-2.5l-.052-.057a.75.75 0 0 1 1.056-1.055l.056.052l1.97 1.97zm5.584.464c.414-.172.888.053.98.49Q22 10.93 22 12c0 .71-.074 1.404-.215 2.073c-.092.439-.566.662-.98.49c-.355-.146-.54-.535-.465-.91a8.5 8.5 0 0 0-.001-3.31c-.074-.375.11-.764.465-.91m-18.588.492c.093-.438.566-.662.98-.49c.354.146.54.535.465.91a8.5 8.5 0 0 0 0 3.306c.073.376-.112.764-.466.91c-.414.172-.888-.051-.98-.49a10 10 0 0 1 0-4.146m4.33-6.309c.376-.244.87-.067 1.04.347c.147.354.005.758-.314.972a8.6 8.6 0 0 0-2.337 2.337c-.214.319-.618.462-.972.316c-.414-.172-.592-.666-.347-1.041a10.05 10.05 0 0 1 2.93-2.93m9.864.345c.172-.414.665-.591 1.04-.347c1.17.762 2.17 1.763 2.933 2.932c.244.375.067.868-.347 1.04c-.354.146-.758.003-.972-.315a8.6 8.6 0 0 0-2.338-2.337c-.319-.214-.463-.619-.316-.973M12 2c.71 0 1.403.074 2.071.215c.439.092.663.566.492.98c-.147.355-.536.54-.912.465a8.5 8.5 0 0 0-3.305.001c-.376.074-.765-.11-.911-.465c-.172-.414.052-.888.49-.98C10.595 2.075 11.289 2 12 2" })));
|
|
53
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/utils/icons.tsx"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,kDAAiD;AAEjD;;;GAGG;AACU,QAAA,0BAA0B,GAAiB,CACtD,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,aAAa;IAClF,wCAAM,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,kPAAkP,GAAG,CAC7Q,CACP,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAiB,CAC7C,uCACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE;IAE5C,4CACE,MAAM,EAAC,gBAAgB,EACvB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,CACE,CACP,CAAC;AAEF;;;GAGG;AACU,QAAA,YAAY,GAAiB,CACxC,uCACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW;IAEnB,wCACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,uUAAuU,EACzU,QAAQ,EAAC,SAAS,GAClB,CACE,CACP,CAAC;AAEF;;;GAGG;AACU,QAAA,aAAa,GAAiB,CACzC,uCACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW;IAEnB,wCACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,mNAAmN,EACrN,QAAQ,EAAC,SAAS,EAClB,OAAO,EAAC,KAAK,GACb;IACF,wCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,+MAA+M,GACjN,CACE,CACP,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAiB,CAC1C,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,aAAa;IAClF,wCAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,aAAa,EAAC,QAAQ,EAAC,gBAAgB,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,CAAC,EAAC,yBAAyB,GAAG,CAChI,CACP,CAAC;AAEW,QAAA,eAAe,GAAiB,CAC3C,uCAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,aAAa;IAClF,wCAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,aAAa,EAAC,QAAQ,EAAC,gBAAgB,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,CAAC,EAAC,sDAAsD,GAAG,CAC7J,CACP,CAAC;AAEF;;GAEG;AACU,QAAA,SAAS,GAAiB,CACrC,uCACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAEpF,wCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,wRAAwR,GAC1R,CACE,CACP,CAAC;AAEF;;GAEG;AACU,QAAA,aAAa,GAAiB,CACzC,uCACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAEpF,wCACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,igDAAigD,GACngD,CACE,CACP,CAAC"}
|