venn-diagram — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited venn-diagram (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Venn and Euler diagram showing set intersections. Three layout types: standard Venn, proportional Euler, and Star Euler. Supports selections, custom styling per state, and inner/outer labels.
import {
VennDiagram,
VennSeries,
VennArc,
VennLabel,
VennOuterLabel
} from 'reaviz';| Prop | Type | Default | Description | ||
|---|---|---|---|---|---|
data | VennDiagramData[] | — | Chart data (required) | ||
type | `'venn' \ | 'euler' \ | 'starEuler'` | 'venn' | Layout algorithm |
disabled | boolean | false | Disable the chart | ||
series | `ReactElement<VennSeriesProps> \ | null` | <VennSeries /> | Series component | |
width | number | auto | Width in pixels | ||
height | number | auto | Height in pixels | ||
margins | Margins | — | Chart margins | ||
className | string | — | SVG CSS class | ||
containerClassName | string | — | Container div CSS class |
interface VennDiagramData {
key: string[]; // Set names (e.g. ['A'] or ['A', 'B'] for intersection)
data: number; // Size of set/intersection
}| Prop | Type | Default | Description | |
|---|---|---|---|---|
animated | boolean | true | Enable animations | |
colorScheme | ColorSchemeType | 'cybertron' | Color scheme | |
disabled | boolean | false | Disable interactions | |
selections | string[] | — | Active selection keys (e.g. `['A | B']`) |
arc | `ReactElement<VennArcProps> \ | null` | <VennArc /> | Arc element |
label | `ReactElement<VennLabelProps> \ | null` | <VennLabel /> | Inner label element |
outerLabel | `ReactElement<VennOuterLabelProps> \ | null` | <VennOuterLabel /> | Outer label element |
| Prop | Type | Default | Description | |
|---|---|---|---|---|
strokeWidth | number | 3 | Stroke thickness | |
stroke | `string \ | (data, index, isActive, isHovered) => string` | — | Stroke color or function |
gradient | `ReactElement<GradientProps> \ | null` | <Gradient /> | Gradient fill |
mask | `ReactElement<MaskProps> \ | null` | — | SVG pattern mask |
glow | Glow | — | Glow effect | |
tooltip | `ReactElement<ChartTooltipProps> \ | null` | <ChartTooltip /> | Tooltip component |
initialStyle | object | { opacity: 0.6 } | Default arc style | |
activeStyle | object | { opacity: 0.8 } | Style when selected | |
inactiveStyle | object | { opacity: 0.3 } | Style when other arcs are active | |
style | object | — | Custom CSS styles | |
disabled | boolean | — | Disable interactions | |
onClick | (event) => void | — | Click handler | |
onMouseEnter | (event) => void | — | Mouse enter handler | |
onMouseLeave | (event) => void | — | Mouse leave handler |
| Prop | Type | Default | Description | |
|---|---|---|---|---|
labelType | `'key' \ | 'value'` | 'key' | Show set name or value |
showAll | boolean | false | Show labels for small intersections too | |
wrap | boolean | true | Wrap long text | |
fill | string | — | Text color | |
fontSize | number | 11 | Font size | |
fontFamily | string | 'sans-serif' | Font family | |
animated | boolean | true | Enable animations | |
format | (data) => any | — | Custom label formatter |
| Prop | Type | Default | Description |
|---|---|---|---|
fill | string | '#000' | Text color |
fontSize | number | 14 | Font size |
fontFamily | string | 'sans-serif' | Font family |
animated | boolean | true | Enable animations |
format | (data) => any | — | Custom label formatter |
const data = [
{ key: ['A'], data: 12 },
{ key: ['B'], data: 12 },
{ key: ['A', 'B'], data: 2 },
];
<VennDiagram
height={450}
width={450}
data={data}
/>const data = [
{ key: ['A'], data: 12 },
{ key: ['B'], data: 12 },
{ key: ['C'], data: 8 },
{ key: ['A', 'B'], data: 2 },
{ key: ['A', 'C'], data: 3 },
{ key: ['B', 'C'], data: 1 },
{ key: ['A', 'B', 'C'], data: 1 },
];
<VennDiagram
height={450}
width={450}
data={data}
/><VennDiagram
type="euler"
height={450}
width={450}
data={data}
/><VennDiagram
type="starEuler"
height={450}
width={450}
data={data}
series={
<VennSeries
colorScheme={['#868686']}
arc={<VennArc strokeWidth={1} stroke="#fff" gradient={<Gradient />} />}
label={<VennLabel labelType="value" showAll={true} fill="#fff" />}
outerLabel={<VennOuterLabel fill="#fff" />}
/>
}
/><VennDiagram
data={data}
series={
<VennSeries
label={<VennLabel labelType="value" />}
/>
}
/><VennDiagram
data={data}
series={
<VennSeries
selections={['A|B', 'B']}
/>
}
/><VennDiagram
data={data}
series={
<VennSeries
arc={
<VennArc
stroke={(_data, _index, active, hovered) => {
if (hovered) return 'blue';
if (active) return 'green';
return 'white';
}}
/>
}
/>
}
/>type="venn" — equal-sized circles with overlapping intersectionstype="euler" — circle sizes proportional to set valuestype="starEuler" — star-shaped layout for many overlapping setsselections uses pipe-delimited keys (e.g. 'A|B' for the intersection of A and B)showAll to force displayinitialStyle, activeStyle, and inactiveStyle based on hover/selection state~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.