Repository Analysis

mantinedev/mantine

A fully featured React components library

1.0 Likely human-written View on GitHub
1.0
Adjusted Score
1.0
Raw Score
100%
Time Factor
2026-05-29
Last Push
31,192
Stars
TypeScript
Language
360,305
Lines of Code
5362
Files
310
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 17LOW 293

Pattern Findings

310 matches across 8 categories. Click a row to expand file-level details.

Fake / Example Data164 hits · 184 pts
SeverityFileLineSnippet
LOWpackages/@mantine/form/src/stories/Form.lists.story.tsx28 placeholder="John Doe"
LOWpackages/@mantine/form/src/stories/Form.lists.story.tsx95 placeholder="John Doe"
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx9 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? Dolores
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx9 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? Dolores
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx21 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? Dolores
LOW…ges/@mantine/core/src/components/Paper/Paper.story.tsx21 Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit, et illo? Dolores
LOW…s/@mantine/core/src/components/Drawer/Drawer.story.tsx11 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio h
LOW…s/@mantine/core/src/components/Drawer/Drawer.story.tsx11 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio h
LOW…@mantine/core/src/components/Tooltip/Tooltip.story.tsx81 label="Lorem ipsum dolor, sit amet consectetur adipisicing elit. Eligendi, quaerat vero. Tempora reiciendis dese
LOW…@mantine/core/src/components/Tooltip/Tooltip.story.tsx233 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Vitae ipsam in quos aperiam
LOW…@mantine/core/src/components/Tooltip/Tooltip.story.tsx245 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Vitae ipsam in quos aperiam
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx14 Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem officiis, incidunt libero,
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx14 Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem officiis, incidunt libero,
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx40 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx40 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx59 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae lorem
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx59 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae lorem
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx84 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae lorem
LOW…@mantine/core/src/components/Spoiler/Spoiler.story.tsx84 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ut quam vitae lorem
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx22 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeat
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx22 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeat
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx34 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeat
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx34 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeat
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx39 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeat
LOW…ges/@mantine/core/src/components/Title/Title.story.tsx39 Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nobis reiciendis, commodi placeat
LOW…ges/@mantine/core/src/components/Group/Group.story.tsx22 Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptas ducimus necessitatibus
LOW…ges/@mantine/core/src/components/Group/Group.story.tsx22 Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptas ducimus necessitatibus
LOW…ore/src/components/Notification/Notification.story.tsx47 title="Too large title Lorem ipsum dolor, sit amet consectetur adipisicing elit. Delectus, facilis eveniet. Vo
LOW…ore/src/components/Notification/Notification.story.tsx148 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquid
LOW…ore/src/components/Notification/Notification.story.tsx148 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquid
LOW…ore/src/components/Notification/Notification.story.tsx160 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquid
LOW…ore/src/components/Notification/Notification.story.tsx160 Lorem ipsum dolor sit amet consectetur adipisicing elit. Dicta nam cumque natus ea aliquid
LOW…tine/core/src/components/ModalBase/ModalBase.story.tsx14 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio h
LOW…tine/core/src/components/ModalBase/ModalBase.story.tsx14 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum tenetur, atque animi ducimus tempora iste distinctio h
LOW…antine/core/src/components/Collapse/Collapse.story.tsx19 {random.current}: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
LOW…antine/core/src/components/Collapse/Collapse.story.tsx19 {random.current}: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
LOW…src/components/FloatingWindow/FloatingWindow.story.tsx6 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis doloremque quod rem temporibus velit, possimus quam eiu
LOW…src/components/FloatingWindow/FloatingWindow.story.tsx6 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis doloremque quod rem temporibus velit, possimus quam eiu
LOW…ne/core/src/components/ScrollArea/ScrollArea.story.tsx27 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam qui minima, voluptates aperiam
LOW…ne/core/src/components/ScrollArea/ScrollArea.story.tsx27 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam qui minima, voluptates aperiam
LOW…antine/core/src/components/Combobox/Combobox.story.tsx24Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod, nisl quis tincidunt
LOW…antine/core/src/components/Combobox/Combobox.story.tsx24Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod, nisl quis tincidunt
LOW…antine/core/src/components/AppShell/AppShell.story.tsx12 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget felis eget nunc Lorem ipsum dolor sit amet, cons
LOW…antine/core/src/components/AppShell/AppShell.story.tsx12 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget felis eget nunc Lorem ipsum dolor sit amet, cons
LOW…@mantine/core/src/components/Popover/Popover.story.tsx11 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus, facilis rerum molestias voluptatem, quidem sunt,
LOW…@mantine/core/src/components/Popover/Popover.story.tsx11 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus, facilis rerum molestias voluptatem, quidem sunt,
LOW…@mantine/core/src/components/Popover/Popover.story.tsx231 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Vitae ipsam in quos aperiam magni
LOW…@mantine/core/src/components/Popover/Popover.story.tsx338 Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cupiditate enim est, quos
LOW…@mantine/core/src/components/Popover/Popover.story.tsx338 Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cupiditate enim est, quos
LOW…tine/core/src/components/Container/Container.story.tsx34 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo facilis quasi asperiores!
LOW…tine/core/src/components/Container/Container.story.tsx34 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo facilis quasi asperiores!
LOW…tine/core/src/components/Container/Container.story.tsx36 Nulla, maxime alias? Impedit dolore voluptatibus ducimus? Lorem ipsum dolor sit amet
LOW…tine/core/src/components/Container/Container.story.tsx36 Nulla, maxime alias? Impedit dolore voluptatibus ducimus? Lorem ipsum dolor sit amet
LOW…tine/core/src/components/Container/Container.story.tsx39 dolore voluptatibus ducimus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo
LOW…tine/core/src/components/Container/Container.story.tsx39 dolore voluptatibus ducimus? Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo
LOW…tine/core/src/components/Container/Container.story.tsx47 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo facilis quasi asperiores!
LOW…tine/core/src/components/Container/Container.story.tsx47 Lorem ipsum dolor sit amet consectetur adipisicing elit. Quo facilis quasi asperiores!
LOW…tine/core/src/components/Container/Container.story.tsx49 reiciendis. Nulla, maxime alias? Impedit dolore voluptatibus ducimus? Lorem ipsum dolor
LOW…tine/core/src/components/Container/Container.story.tsx52 alias? Impedit dolore voluptatibus ducimus? Lorem ipsum dolor sit amet consectetur
LOW…tine/core/src/components/Container/Container.story.tsx52 alias? Impedit dolore voluptatibus ducimus? Lorem ipsum dolor sit amet consectetur
104 more matches not shown…
Hyper-Verbose Identifiers123 hits · 128 pts
SeverityFileLineSnippet
LOWscripts/utils/demo-loader.ts222async function loadSharedControlExpressions(demosPath: string) {
LOWscripts/utils/demo-loader.ts251async function extractConfiguratorDefaults(
LOWscripts/utils/demo-loader.ts288 async function resolveImportedExpression(
LOWscripts/utils/demo-loader.ts341 async function resolveControlsExpression(
LOWscripts/utils/demo-loader.ts372 async function collectDefaultsFromExpression(expression: string, depth = 0): Promise<void> {
LOWscripts/utils/demo-loader.ts439function applyConfiguratorDefaultsToCode(
LOWscripts/release/set-mantine-packages-version.ts5async function writeVersionToPackageJson(filePath: string, version: string) {
LOWscripts/release/set-mantine-packages-version.ts28export async function setMantinePackagesVersion(version: string) {
LOW…ntine/form/src/stories/Form.validateOnChange.story.tsx45export function ValidateOnChangeUncontrolled() {
LOW…ils/expand-recurring-events/expand-recurring-events.ts60function getOccurrenceStartsInRange(
LOW…e/src/components/YearView/handle-year-view-key-down.ts193function focusOnNextFocusableControl({
LOW…nents/MonthView/get-renderable-month-event-segments.ts95export function getRenderableMonthEventSegments({
LOW…src/components/MonthView/handle-month-view-key-down.ts129function focusOnNextFocusableControl({
LOW…-month-view-events/calculate-event-position-in-week.ts21export function calculateEventPositionInWeek({
LOW…tine/schedule/src/components/DayView/DayView.story.tsx458export function DragAndDropWithOverlappingEvents() {
LOW…tine/schedule/src/components/DayView/DayView.story.tsx678export function EventResizeWithDragAndDrop() {
LOW…ne/schedule/src/components/WeekView/WeekView.story.tsx450export function EventResizeWithDragAndDrop() {
LOW…e/src/components/WeekView/handle-week-view-key-down.ts111function focusOnNextFocusableControl({
LOW…t-week-view-events/calculate-regular-event-overlaps.ts4export function calculateRegularEventOverlaps(events: WeekPositionedEventData[]): void {
LOW…/get-week-view-events/calculate-all-day-event-width.ts13export function calculateAllDayEventWidth({
LOW…get-week-view-events/calculate-all-day-event-offset.ts12export function calculateAllDayEventOffset({
LOW…ils/handle-control-key-down/handle-control-key-down.ts116function focusOnNextFocusableControl({
LOW…nents/TimePicker/TimeControlsList/TimeControlsList.tsx6function isElementVisibleInScrollContainer(
LOW…ine/dates/src/components/YearsList/YearsList.story.tsx40export function WithGetYearsControlPropsChildren() {
LOW…c/components/DatePickerInput/DatePickerInput.story.tsx113export function LocaleChangesDatesProvider() {
LOW…ine/dates/src/components/DateInput/DateInput.story.tsx83export function LocaleChangesDatesProvider() {
LOW…e/dates/src/components/MonthsList/MonthsList.story.tsx40export function WithGetMonthControlPropsChildren() {
LOW…ht/src/CodeHighlightProvider/CodeHighlightProvider.tsx41export function CodeHighlightAdapterProvider({
LOWpackages/@mantine/spotlight/src/spotlight.store.ts27export function updateSpotlightStateAction(
LOWpackages/@mantine/spotlight/src/Spotlight.story.tsx118export function EmptyStateWithoutActionsList() {
LOW…coped-keydown-handler/create-scoped-keydown-handler.ts73export function createScopedKeydownHandler({
LOW…es/@mantine/core/src/core/utils/units-converters/px.ts1function getTransformedScaledValue(value: unknown) {
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts38export function useMantineCssVariablesResolver() {
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts42export function useMantineClassNamesPrefix() {
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts50export function useMantineWithStaticClasses() {
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts62export function useMantineStylesTransform() {
LOW…ntine/core/src/core/MantineProvider/Mantine.context.ts70export function useMantineDeduplicateInlineStyles() {
LOW…onvert-css-variables/css-variables-object-to-string.ts5export function cssVariablesObjectToString(variables: CSSVariables) {
LOW…rovider/color-scheme-managers/local-storage-manager.ts9export function localStorageColorSchemeManager({
LOW…neProvider/MantineCssVariables/MantineCssVariables.tsx12function getColorSchemeCssVariables(selectorOverride?: string) {
LOW…re/src/core/MantineProvider/use-matches/use-matches.ts29function getFirstMatchingBreakpoint(matches: (boolean | undefined)[]) {
LOW…ne/core/src/components/TreeSelect/TreeSelect.story.tsx422export function MaxDisplayedValuesCustomContent() {
LOW…kages/@mantine/core/src/components/Tabs/Tabs.story.tsx315export function WithActivityStatePreservation() {
LOWpackages/@mantine/core/src/components/Tree/use-tree.ts18function getInitialTreeExpandedState(
LOW…kages/@mantine/core/src/components/Tree/Tree.story.tsx141export function WithActivityStatePreservation() {
LOW…kages/@mantine/core/src/components/Tree/Tree.story.tsx464export function AsyncLoadingWithInvalidation() {
LOW…kages/@mantine/core/src/components/Tree/Tree.story.tsx684function generateVirtualizedTreeData(count: number): TreeNodeData[] {
LOW…ne/core/src/components/Transition/Transition.story.tsx69export function WithActivityStatePreservation() {
LOW…core/src/components/SimpleGrid/SimpleGridVariables.tsx116export function SimpleGridContainerVariables({
LOW…re/src/components/Highlight/highlighter/highlighter.ts29function getAccentInsensitiveChunks(value: string, re: RegExp): HighlightChunk[] {
LOW…antine/core/src/components/Checkbox/Checkbox.story.tsx36export function CheckboxGroupPrimitiveGeneric() {
LOW…@mantine/core/src/components/Stepper/Stepper.story.tsx39export function WithActivityStatePreservation() {
LOW…antine/core/src/components/Collapse/Collapse.story.tsx45export function WithActivityStatePreservation() {
LOW…ents/ScrollArea/utils/add-unlinked-scroll-listener.tsx1export function addUnlinkedScrollListener(node: HTMLElement, handler = () => {}) {
LOW…s/ScrollArea/utils/get-scroll-position-from-pointer.ts5export function getScrollPositionFromPointer(
LOW…rollArea/utils/is-scrolling-within-scrollbar-bounds.ts1export function isScrollingWithinScrollbarBounds(scrollPos: number, maxScrollPos: number) {
LOW…Area/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.tsx14export function ScrollAreaScrollbarScroll(props: ScrollAreaScrollbarScrollProps) {
LOW…rea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.tsx20export function ScrollAreaScrollbarVisible(props: ScrollAreaScrollbarVisibleProps) {
LOW…antine/core/src/components/Combobox/Combobox.story.tsx342export function InteractiveHeaderAndFooter() {
LOW…ges/@mantine/core/src/components/Table/Table.story.tsx75export function StickyHeaderBorderVariants() {
63 more matches not shown…
Decorative Section Separators10 hits · 33 pts
SeverityFileLineSnippet
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py23# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py25# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py36# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py38# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py70# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py72# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py132# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py134# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py178# ---------------------------------------------------------------------------
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py180# ---------------------------------------------------------------------------
Slop Phrases6 hits · 18 pts
SeverityFileLineSnippet
MEDIUM…rc/demos/core/SimpleGrid/SimpleGrid.demo.container.tsx10 // Wrapper div is added for demonstration purposes only,
MEDIUM…rc/demos/core/SimpleGrid/SimpleGrid.demo.container.tsx31 // Wrapper div is added for demonstration purposes only,
MEDIUM…docs/demos/src/demos/core/Grid/Grid.demo.container.tsx10 // Wrapper div is added for demonstration purposes only.
MEDIUM…docs/demos/src/demos/core/Grid/Grid.demo.container.tsx29 // Wrapper div is added for demonstration purposes only.
MEDIUM…s/demos/src/demos/carousel/Carousel.demo.container.tsx10 // Wrapper div is added for demonstration purposes only,
MEDIUM…s/demos/src/demos/carousel/Carousel.demo.container.tsx41 // Wrapper div is added for demonstration purposes only,
Excessive Try-Catch Wrapping1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM.claude/skills/sync-versions/scripts/sync_versions.py186 print(f"Error: {VERSIONS_FILE} not found. Run this script from the repo root.")
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippet
LOW.claude/skills/sync-versions/scripts/sync_versions.py74
LOW.claude/skills/sync-versions/scripts/sync_versions.py182
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippet
LOWpackages/@mantine/mcp-server/src/server.ts162async function handleRequest(client: MantineMcpDataClient, request: JsonRpcRequest) {
LOW…ages/@mantine/charts/src/ChartTooltip/ChartTooltip.tsx59function getData(item: Record<string, any>, type: 'area' | 'radial' | 'scatter') {
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippet
LOW…enerator/src/ColorsGenerator/ColorsGenerator.story.tsx1import { ColorsList } from './ColorsList/ColorsList';
LOW…enerator/src/ColorsGenerator/ColorsGenerator.story.tsx21// '#0',