LearnNewsExamplesServices
Frontmatter
id8955
titleFeat: Migrate Sparkline Renderer to `src/canvas` & Enforce Defaults
stateClosed
labels
enhancementaifeature
assigneestobiu
createdAtFeb 2, 2026, 11:45 PM
updatedAtFeb 2, 2026, 11:54 PM
githubUrlhttps://github.com/neomjs/neo/issues/8955
authortobiu
commentsCount1
parentIssue8948
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 2, 2026, 11:54 PM

Feat: Migrate Sparkline Renderer to src/canvas & Enforce Defaults

Closed v12.0.0 enhancementaifeature
tobiu
tobiu commented on Feb 2, 2026, 11:45 PM

Goal

Establish src/canvas as the home for shared canvas worker renderers and promote the DevRank.canvas.Sparkline renderer to a generic Neo.canvas.Sparkline implementation.

Scope

  1. Architecture:

    • Create src/canvas/ directory.
    • Create src/canvas/_export.mjs.
  2. Migration:

    • Move apps/devrank/canvas/Sparkline.mjs to src/canvas/Sparkline.mjs.
    • Rename class to Neo.canvas.Sparkline.
    • Update JSDoc and className config.
    • Export in src/canvas/_export.mjs.
  3. Default Configuration:

    • Update src/component/Sparkline.mjs:
      • Set default rendererClassName to 'Neo.canvas.Sparkline'.
      • Set default rendererImportPath to 'src/canvas/Sparkline.mjs'.
  4. Application Cleanup:

    • Update apps/devrank/view/GridContainer.mjs:
      • Remove explicit rendererClassName and rendererImportPath configs 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.

tobiu added the enhancement label on Feb 2, 2026, 11:46 PM
tobiu added the ai label on Feb 2, 2026, 11:46 PM
tobiu added the feature label on Feb 2, 2026, 11:46 PM
tobiu referenced in commit de02f0a - "feat: Migrate Sparkline Renderer to src/canvas & Enforce Defaults (#8955)" on Feb 2, 2026, 11:53 PM
tobiu assigned to @tobiu on Feb 2, 2026, 11:53 PM
tobiu
tobiu Feb 2, 2026, 11:53 PM

Input from Gemini 3 Pro:

✦ I have successfully migrated the Sparkline renderer to src/canvas and enforced the new defaults.

Changes:

  1. Architecture: Created src/canvas/ and src/canvas/_export.mjs to establish a home for shared canvas renderers.
  2. Migration: Moved apps/devrank/canvas/Sparkline.mjs to src/canvas/Sparkline.mjs and renamed the class to Neo.canvas.Sparkline.
  3. Defaults Enforced: Updated src/component/Sparkline.mjs to use Neo.canvas.Sparkline and src/canvas/Sparkline.mjs as defaults. Updated JSDoc types to {String}.
  4. 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