Repository Analysis

apexcharts/apexcharts.js

📊 Interactive JavaScript Charts built on SVG

5.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of apexcharts/apexcharts.js, a JavaScript project with 15,142 GitHub stars. SynthScan v2.0 examined 456,966 lines of code across 2864 source files, recording 613 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 5.2 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

5.2
Adjusted Score
5.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
15.1K
Stars
JavaScript
Language
457.0K
Lines of Code
2.9K
Files
613
Pattern Hits
2026-08-29
Scan Date
0.05
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 140HIGH 0MEDIUM 253LOW 220

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 613 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hallucination Indicators140 hits · 1400 pts
SeverityFileLineSnippetContext
CRITICALtests/unit/facet.spec.js53 chart.w.dom.elWrap.classList.contains('apexcharts-theme-dark'),CODE
CRITICALtests/unit/issue-5278-annotations-no-data.spec.js44const q = (chart, sel) => [...chart.w.globals.dom.baseEl.querySelectorAll(sel)]CODE
CRITICALtests/unit/issue-5278-annotations-no-data.spec.js186 const svg = chart.w.globals.dom.baseEl.querySelector('.apexcharts-svg')CODE
CRITICALtests/unit/xaxis-annotations.spec.js71 const line = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js94 const line = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js118 const baseLine = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js140 const offsetLine = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js163 chart.w.globals.dom.baseEl.querySelector('.custom-xaxis-line')CODE
CRITICALtests/unit/xaxis-annotations.spec.js171 const parent = chart.w.globals.dom.baseEl.querySelector('.apexcharts-svg')CODE
CRITICALtests/unit/xaxis-annotations.spec.js205 const rects = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/xaxis-annotations.spec.js227 const rect = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js250 const rect = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js274 chart.w.globals.dom.baseEl.querySelector('.custom-xaxis-rect')CODE
CRITICALtests/unit/xaxis-annotations.spec.js297 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js318 const topLabel = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js336 const bottomLabel = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js369 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js397 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js419 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js441 const group = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js460 const lines = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/xaxis-annotations.spec.js478 const lines = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/xaxis-annotations.spec.js494 const group = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js527 const group = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js561 const group = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js577 const parent = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js610 const line = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/xaxis-annotations.spec.js629 const labels = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/xaxis-annotations.spec.js654 const line = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/annotation-helpers.spec.js66 const xAnno = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/annotation-helpers.spec.js109 const annoEl = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/annotation-helpers.spec.js143 const annoEl = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js42 const marker = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js67 const marker = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js87 const markers = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/points-annotations.spec.js123 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js146 const labels = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/points-annotations.spec.js171 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js204 const group = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js231 const groups = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/points-annotations.spec.js265 const img = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js292 const images = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/points-annotations.spec.js321 const marker = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js336 chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js340 chart.w.globals.dom.baseEl.querySelector('.apexcharts-annotation-tooltip')CODE
CRITICALtests/unit/points-annotations.spec.js508 const seriesTT = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js560 const parent = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js594 const parent = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/points-annotations.spec.js626 const group = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/issue-5251-autoscale-subpixel.spec.js146 brush.w.config.chart.events.selection(brush, {CODE
CRITICALtests/unit/yaxis-annotations.spec.js38 const line = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/yaxis-annotations.spec.js62 const el = chart.w.globals.dom.baseEl.querySelector('.my-yaxis-line')CODE
CRITICALtests/unit/yaxis-annotations.spec.js80 const lines = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/yaxis-annotations.spec.js110 const rect = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/yaxis-annotations.spec.js133 const rect = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/yaxis-annotations.spec.js156 const el = chart.w.globals.dom.baseEl.querySelector('.my-yaxis-rect')CODE
CRITICALtests/unit/yaxis-annotations.spec.js176 const rect = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/yaxis-annotations.spec.js213 const label = chart.w.globals.dom.baseEl.querySelector(CODE
CRITICALtests/unit/yaxis-annotations.spec.js236 const labels = chart.w.globals.dom.baseEl.querySelectorAll(CODE
CRITICALtests/unit/yaxis-annotations.spec.js260 const label = chart.w.globals.dom.baseEl.querySelector(CODE
80 more matches not shown…
Decorative Section Separators247 hits · 752 pts
SeverityFileLineSnippetContext
MEDIUMtsconfig.json3 // ── Validation mode (no output files) ─────────────────────────────────────COMMENT
MEDIUMtsconfig.json9 // ── Strictness — full strict mode ────────────────────COMMENT
MEDIUMtsconfig.json12 // ── Module resolution ──────────────────────────────────────────────────────COMMENT
MEDIUMtsconfig.json17 // ── Type resolution ────────────────────────────────────────────────────────COMMENT
MEDIUMtsconfig.json23 // ── Paths ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js20// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js23// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js49// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js51// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js94// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js96// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js159// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js161// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js206// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js208// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js269// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-animation.spec.js271// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-math.spec.js11// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-math.spec.js13// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-math.spec.js93// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-math.spec.js95// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-math.spec.js228// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/svg-math.spec.js230// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js5// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js16// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js30// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js32// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js135// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js137// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js181// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js183// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js250// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js252// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js297// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js302// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js531// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/timescale.spec.js536// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js11// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js13// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js78// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js80// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js131// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js133// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js184// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/monotone-cubic.spec.js186// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/license-gating.spec.js79 // ── predicate: "in use", not "bundled" ────────────────────────────────────COMMENT
MEDIUMtests/unit/license-gating.spec.js150 // ── watermark presence on render ──────────────────────────────────────────COMMENT
MEDIUMtests/unit/license-gating.spec.js205 // ── key precedence + late licensing ───────────────────────────────────────COMMENT
MEDIUMtests/unit/license-gating.spec.js237 // ── async verdict reaches charts without a chart.id ───────────────────────COMMENT
MEDIUMtests/unit/license-gating.spec.js304 // ── plan entitlement: premium features need a Premium-or-above license ─────COMMENT
MEDIUMtests/unit/license-gating.spec.js405 // ── SSR / no-DOM + ordering ───────────────────────────────────────────────COMMENT
MEDIUMtests/unit/log-axis-issue-repros.spec.js3// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/log-axis-issue-repros.spec.js10// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/log-axis-issue-repros.spec.js64// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/logarithmic-scale.spec.js17// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/logarithmic-scale.spec.js19// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/logarithmic-scale.spec.js116// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/logarithmic-scale.spec.js122// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/logarithmic-scale.spec.js253// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/logarithmic-scale.spec.js255// ─────────────────────────────────────────────────────────────────────────────COMMENT
187 more matches not shown…
Over-Commented Block163 hits · 152 pts
SeverityFileLineSnippetContext
LOWjest.config.js41 // The root directory that Jest should scan for tests and modules withinCOMMENT
LOWREADME.md161import 'apexcharts/line'COMMENT
LOWtests/unit/timescale.spec.js1import TimeScale from '../../src/modules/TimeScale'COMMENT
LOWtests/unit/border-radius-assignment.spec.js1import Helpers from '../../src/charts/common/bar/Helpers.js'COMMENT
LOWtests/unit/license-gating.spec.js241 // has to correct it. That correction used to walk `Apex._chartInstances`,COMMENT
LOWtests/unit/axis-scale-invariants.spec.js1import { createChartWithOptions } from './utils/utils.js'COMMENT
LOWtests/unit/axis-scale-invariants.spec.js261 expect(pts[i].y).toBeCloseTo(linearPixel(v, min, max, h), 1)COMMENT
LOWtests/unit/yaxis-more-axes-than-series.spec.js1import { createChartWithOptions } from './utils/utils.js'COMMENT
LOWtests/e2e/samples.js481// chartVisualTest('bubble', 'simple-bubble', true, async (page) => {COMMENT
LOWtests/interaction/specs/stacked-ragged-x.spec.js361 }) => {COMMENT
LOWsamples/vanilla-js/misc/chart-type-morph.html201 if (el) el.innerHTML = htmlCOMMENT
LOWsamples/vanilla-js/unit/brand-logo-story.html241 </script>COMMENT
LOWsamples/vanilla-js/unit/brand-logo-story.html261 // saucer and the handle are five separate shapes that simply overlap, andCOMMENT
LOWsamples/vanilla-js/unit/city-bubbles.html101 // cost of living (y), sized by a third field and coloured by region. This isCOMMENT
LOWsamples/vanilla-js/unit/logo-forge.html321 </script>COMMENT
LOWsamples/vanilla-js/unit/logo-forge.html341 // `getTotalLength()` and `getPointAtLength()`. One loop covers path,COMMENT
LOWsamples/vanilla-js/unit/logo-forge.html421 // i, every letter of an outlined wordmark), and `getPointAtLength` walksCOMMENT
LOWsamples/vanilla-js/unit/water-silhouette.html81 <script>COMMENT
LOWsamples/vanilla-js/waffle/urban-small-multiples.html101 // every square is 1% of that country's population living in a city. ReadingCOMMENT
LOWsamples/vanilla-js/boxPlot/same-box-different-data.html121 }COMMENT
LOWsamples/vanilla-js/trellis/traffic-by-country.html81 <script src="../../../dist/features/trellis.js"></script>COMMENT
LOWsamples/vanilla-js/trellis/department-by-quarter.html61 // Replace Math.random() with a pseudo-random number generator to get reproducible results in e2e testsCOMMENT
LOWsamples/vanilla-js/trellis/stock-performance-grid.html61 // Replace Math.random() with a pseudo-random number generator to get reproducible results in e2e testsCOMMENT
LOWsamples/vanilla-js/trellis/distribution-by-cohort.html61 // Replace Math.random() with a pseudo-random number generator to get reproducible results in e2e testsCOMMENT
LOWsamples/vue/misc/chart-type-morph.html161 // button only ever calls updateOptions, so what you are watching is the morphCOMMENT
LOWsamples/vue/unit/life-expectancy-swarm.html101 <script>COMMENT
LOWsamples/vue/unit/brand-logo-story.html241 return (_seed - 1) / 2147483646COMMENT
LOWsamples/vue/unit/brand-logo-story.html261 //COMMENT
LOWsamples/vue/unit/city-bubbles.html101 <script>COMMENT
LOWsamples/vue/unit/logo-forge.html321 return (_seed - 1) / 2147483646COMMENT
LOWsamples/vue/unit/logo-forge.html341 //COMMENT
LOWsamples/vue/unit/logo-forge.html421COMMENT
LOWsamples/vue/waffle/urban-small-multiples.html101 <script>COMMENT
LOWsamples/vue/boxPlot/same-box-different-data.html121 _seed = (_seed * 16807) % 2147483647COMMENT
LOWsamples/vue/trellis/traffic-by-country.html81 </script>COMMENT
LOWsamples/vue/trellis/task-mix-by-team.html81 // Eight teams, the same seven tasks in the same order in every panel, oneCOMMENT
LOWsamples/vue/histogram/comparing-distributions.html81 // Replace Math.random() with a pseudo-random number generator to get reproducible results in e2e testsCOMMENT
LOWsamples/source/misc/chart-type-morph.xml181// Cards 1 and 2: one week of orders, by channel.COMMENT
LOWsamples/source/unit/water-silhouette.xml61//COMMENT
LOWsamples/source/unit/brand-logo-story.xml221<scripts>COMMENT
LOWsamples/source/unit/brand-logo-story.xml241// they merge into one silhouette. Nothing has to be mitred or joined byCOMMENT
LOWsamples/source/unit/logo-forge.xml301<script>COMMENT
LOWsamples/source/boxPlot/same-box-different-data.xml101<scripts>COMMENT
LOWsamples/source/heatmap/calendar-heatmap.xml1<title>Calendar Heatmap</title>COMMENT
LOWsamples/source/trellis/stock-performance-grid.xml41 background: #fef3c7;COMMENT
LOWsamples/source/trellis/traffic-by-country.xml61// Twenty countries, sixty days of sessions each, on ONE shared y scale, soCOMMENT
LOWsamples/react/misc/chart-type-morph.html161 <script>COMMENT
LOWsamples/react/unit/brand-logo-story.html261 //COMMENT
LOWsamples/react/unit/logo-forge.html341 // alongside paths, and often a stroke-only monoline mark with no fill at all.COMMENT
LOWsamples/react/unit/logo-forge.html421 var step = g.len / nCOMMENT
LOWsamples/react/waffle/urban-small-multiples.html101 }COMMENT
LOWsamples/react/trellis/traffic-by-country.html81 _seed = (_seed * 16807) % 2147483647COMMENT
LOWsamples/react/trellis/task-mix-by-team.html81COMMENT
LOWscripts/check-node.js1#!/usr/bin/env nodeCOMMENT
LOW.github/workflows/codeql-analysis.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/ci.yml1# This workflow will do the following when a pull request is made against the main branch:COMMENT
LOWsrc/apexcharts.js1401 // rebuilt yAxisScale numerically; without this fix-up the axis-scaleCOMMENT
LOWsrc/apexcharts.js1501 if (w.config.dataLabels.background.enabled) {COMMENT
LOWsrc/apexcharts.js1521 // chrome was preserved in place rather than redrawn.COMMENT
LOWsrc/svg/PathMorphing.js621// different anchor-point counts (e.g. a 4-corner bar rect vs a pie wedgeCOMMENT
103 more matches not shown…
Fake / Example Data26 hits · 32 pts
SeverityFileLineSnippetContext
LOWtypes/apexcharts.d.ts1234 * Missing (row, column) combinations: 'placeholder' (default) mounts aCOMMENT
LOWtypes/apexcharts.d.ts1239 emptyPanels?: 'placeholder' | 'skip' | 'hide'CODE
LOWtests/unit/trellis-2d.spec.js172 it("'placeholder' (default) mounts a REAL panel for the missing combination", async () => {CODE
LOWtests/interaction/specs/trellis.spec.js928 * in 'placeholder' mode (the placeholder is a real panel on the sameCOMMENT
LOWtests/interaction/specs/trellis.spec.js934 test("missing combination stays pixel-aligned in 'placeholder' mode", async ({CODE
LOWsamples/vanilla-js/trellis/department-by-quarter.html78 // `emptyPanels: 'placeholder'` keeps the slot as a REAL panel on the sameCOMMENT
LOWsamples/vanilla-js/trellis/department-by-quarter.html146 <code>emptyPanels</code>: <code>'placeholder'</code> (default) mounts aCODE
LOW…les/vanilla-js/trellis/department-by-quarter.code.json10 "code": "// Four departments by four quarters: the 2-D grid IS the shape of the\n// question. Reading across a rowCODE
LOW…les/vanilla-js/trellis/department-by-quarter.code.json15 "code": "<!DOCTYPE html>\n<html>\n <head>\n <title>Trellis Chart - Department by Quarter (2-D Grid)</title>\n CODE
LOWsamples/vue/trellis/department-by-quarter.html80 // `emptyPanels: 'placeholder'` keeps the slot as a REAL panel on the sameCOMMENT
LOWsamples/vue/trellis/department-by-quarter.html151 <code>emptyPanels</code>: <code>'placeholder'</code> (default) mounts aCODE
LOWsamples/vue/trellis/department-by-quarter.code.json10 "code": "<template>\n <div>\n <div class=\"wrap\">\n <h1>Delivery hours, department by quarter</h1>\n CODE
LOWsamples/source/trellis/department-by-quarter.xml56// `emptyPanels: 'placeholder'` keeps the slot as a REAL panel on the sameCOMMENT
LOWsamples/source/trellis/department-by-quarter.xml124 <code>emptyPanels</code>: <code>'placeholder'</code> (default) mounts aCODE
LOWsamples/react/trellis/department-by-quarter.html83 // `emptyPanels: 'placeholder'` keeps the slot as a REAL panel on the sameCOMMENT
LOWsamples/react/trellis/department-by-quarter.html233 <code>emptyPanels</code>: <code>'placeholder'</code> (default) mountsCODE
LOWsamples/react/trellis/department-by-quarter.code.json10 "code": "import React from 'react'\nimport ReactApexChart from 'react-apexcharts'\nimport './styles.css'\n\nimportCODE
LOWsrc/modules/settings/Options.js302 // Missing (row, column) combinations: 'placeholder' mounts a realCOMMENT
LOWsrc/modules/settings/Options.js306 emptyPanels: 'placeholder',CODE
LOWsrc/modules/trellis/TrellisSplit.js246 * data form: the 'placeholder' emptyPanels mode mounts a REAL panel withCOMMENT
LOWsrc/modules/trellis/Trellis.js660 const emptyMode = this.cfg.emptyPanels || 'placeholder'CODE
LOWsrc/modules/trellis/Trellis.js713 // Empty combinations (P4): 'placeholder' mounts a REAL panel with anCOMMENT
LOWsrc/modules/trellis/Trellis.js718 const noMount = slice.empty && emptyMode !== 'placeholder'CODE
LOWsrc/modules/trellis/Trellis.js807 // Empty combination under 'placeholder' (P4): a real panel carrying oneCOMMENT
LOWsrc/modules/trellis/Trellis.js812 slice.empty && (this.cfg.emptyPanels || 'placeholder') === 'placeholder'CODE
LOWsrc/assets/apexcharts.css1513/* Empty (row, column) combinations. 'placeholder' keeps a REAL panel with aCOMMENT
Hyper-Verbose Identifiers21 hits · 21 pts
SeverityFileLineSnippetContext
LOWsamples/vanilla-js/scatter/scatter-datetime.code.json8 "code": "/*\n// this function will generate output in this format\n// data = [\n [timestamp, 23],\n [timestaCODE
LOWsamples/vanilla-js/scatter/scatter-datetime.html52 function generateDayWiseTimeSeries(baseval, count, yrange) {CODE
LOW…mples/vanilla-js/dashboards/realtime/assets/scripts.js61function generateMinuteWiseTimeSeries(baseval, count, yrange) {CODE
LOW…illa-js/candlestick/candlestick-parsing-data.code.json8 "code": "// Seeded PRNG so the generated candles are identical on every load (stable\n// snapshots); the point of CODE
LOW…s/vanilla-js/candlestick/candlestick-parsing-data.html93 function generateSingleCandlestick(CODE
LOWsamples/vue/scatter/scatter-datetime.code.json8 "code": "<template>\n <div>\n <div id=\"chart\">\n <apexchart\n type=\"scatter\"\n height=\CODE
LOWsamples/vue/scatter/scatter-datetime.html54 function generateDayWiseTimeSeries(baseval, count, yrange) {CODE
LOW…les/vue/candlestick/candlestick-parsing-data.code.json8 "code": "<template>\n <div>\n <div id=\"chart\">\n <apexchart\n type=\"candlestick\"\n heigCODE
LOWsamples/vue/candlestick/candlestick-parsing-data.html95 function generateSingleCandlestick(CODE
LOWsamples/source/scatter/scatter-datetime.xml31function generateDayWiseTimeSeries(baseval, count, yrange) {CODE
LOWsamples/source/dashboards/realtime/assets/scripts.js61function generateMinuteWiseTimeSeries(baseval, count, yrange) {CODE
LOWsamples/source/candlestick/candlestick-parsing-data.xml66function generateSingleCandlestick(date, previousClose, minPrice = 120, maxPrice = 180) {CODE
LOWsamples/react/scatter/scatter-datetime.code.json8 "code": "import React from 'react'\nimport ReactApexChart from 'react-apexcharts'\nimport './styles.css'\n\n/*\n//CODE
LOWsamples/react/scatter/scatter-datetime.html57 function generateDayWiseTimeSeries(baseval, count, yrange) {CODE
LOW…s/react/candlestick/candlestick-parsing-data.code.json8 "code": "import React from 'react'\nimport ReactApexChart from 'react-apexcharts'\nimport './styles.css'\n\n// SeeCODE
LOWsamples/react/candlestick/candlestick-parsing-data.html98 function generateSingleCandlestick(CODE
LOWsrc/renderers/Renderer.js113export function hasCanvasUnsupportedFeature(w) {CODE
LOWsrc/modules/SeriesTransformRegistry.js73export function unregisterSeriesTransform(name) {CODE
LOWsrc/modules/Series.js102 function iterateOnAllCollapsedSeries(series) {CODE
LOWsrc/modules/license/LicenseEnforcer.js71export function markPerspectivesTokenDecoded() {CODE
LOWsrc/modules/license/LicenseEnforcer.js382export function reevaluateLicenseAcrossCharts() {CODE
Verbosity Indicators5 hits · 11 pts
SeverityFileLineSnippetContext
LOWtests/unit/responsive.spec.js177 // Step 1: Activate a breakpoint (viewport < 1024)COMMENT
LOWtests/unit/responsive.spec.js184 // Step 2: Resize above the breakpoint (viewport > 1024)COMMENT
LOWtests/unit/responsive.spec.js322 // Step 1: Activate breakpointCOMMENT
LOWtests/unit/responsive.spec.js328 // Step 2: Simulate series update (user calls updateSeries)COMMENT
LOWtests/unit/responsive.spec.js331 // Step 3: Resize above breakpoint — config resets but series should be preservedCOMMENT
Structural Annotation Overuse5 hits · 11 pts
SeverityFileLineSnippetContext
LOWtests/unit/responsive.spec.js177 // Step 1: Activate a breakpoint (viewport < 1024)COMMENT
LOWtests/unit/responsive.spec.js184 // Step 2: Resize above the breakpoint (viewport > 1024)COMMENT
LOWtests/unit/responsive.spec.js322 // Step 1: Activate breakpointCOMMENT
LOWtests/unit/responsive.spec.js328 // Step 2: Simulate series update (user calls updateSeries)COMMENT
LOWtests/unit/responsive.spec.js331 // Step 3: Resize above breakpoint — config resets but series should be preservedCOMMENT
Modern AI Meta-Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/trellis-p3.spec.js2 * Trellis (#22, P3) in jsdom: scoped annotations, grid-tooltip scaffolding,COMMENT
MEDIUMtests/interaction/specs/null-segment-paths.spec.js174 await boot({ points: 10 }) // page scaffold + the libraryCODE
MEDIUMtests/interaction/specs/trellis.spec.js567 // The scaffold is complete up front: every cell and header exists.COMMENT
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUM…es/vue/line/line-with-annotations-zoom-level.code.json10 "code": "<template>\n <div>\n <div id=\"chart-zoomedchart\">\n <apexchart\n type=\"line\"\n CODE
MEDIUMsrc/modules/MorphTypeChange.js1641 // robust to future selector changes.COMMENT
MEDIUMsrc/modules/tooltip/Intersect.js122 // for SVG read the rendered <rect> (robust under any group transform).COMMENT