Frontmatter
| id | 8955 |
| title | Feat: Migrate Sparkline Renderer to `src/canvas` & Enforce Defaults |
| state | Closed |
| labels | enhancementaifeature |
| assignees | tobiu |
| createdAt | Feb 2, 2026, 11:45 PM |
| updatedAt | Feb 2, 2026, 11:54 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8955 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8948 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 2, 2026, 11:54 PM |
Feat: Migrate Sparkline Renderer to src/canvas & Enforce Defaults
tobiu assigned to @tobiu on Feb 2, 2026, 11:53 PM

tobiu
Feb 2, 2026, 11:53 PM
Input from Gemini 3 Pro:
✦ I have successfully migrated the Sparkline renderer to
src/canvasand enforced the new defaults.Changes:
- Architecture: Created
src/canvas/andsrc/canvas/_export.mjsto establish a home for shared canvas renderers.- Migration: Moved
apps/devrank/canvas/Sparkline.mjstosrc/canvas/Sparkline.mjsand renamed the class toNeo.canvas.Sparkline.- Defaults Enforced: Updated
src/component/Sparkline.mjsto useNeo.canvas.Sparklineandsrc/canvas/Sparkline.mjsas defaults. Updated JSDoc types to{String}.- Application Cleanup: Removed the explicit renderer overrides from
apps/devrank/view/GridContainer.mjs.The generic Sparkline component is now fully autonomous and ready for widespread use without requiring custom renderer configuration.
tobiu added parent issue #8948 on Feb 2, 2026, 11:54 PM
tobiu closed this issue on Feb 2, 2026, 11:54 PM
tobiu cross-referenced by #8948 on Feb 2, 2026, 11:54 PM
Goal
Establish
src/canvasas the home for shared canvas worker renderers and promote theDevRank.canvas.Sparklinerenderer to a genericNeo.canvas.Sparklineimplementation.Scope
Architecture:
src/canvas/directory.src/canvas/_export.mjs.Migration:
apps/devrank/canvas/Sparkline.mjstosrc/canvas/Sparkline.mjs.Neo.canvas.Sparkline.classNameconfig.src/canvas/_export.mjs.Default Configuration:
src/component/Sparkline.mjs:rendererClassNameto'Neo.canvas.Sparkline'.rendererImportPathto'src/canvas/Sparkline.mjs'.Application Cleanup:
apps/devrank/view/GridContainer.mjs:rendererClassNameandrendererImportPathconfigs from the Sparkline column definition (relying on the new defaults).Note
This completes the Generic Sparkline Epic by decoupling the renderer from the application code.