Composable, accessible components with thoughtful defaults. Build your own component library with code you can customize, extend, and make your own.
This report summarizes scanner evidence for shadcn-ui/ui, a TypeScript project with 127,012 GitHub stars. SynthScan examined 709,522 lines of code across 5099 source files, recording 589 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 1.0 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 473 finding(s).
Are imports declared and package/API names verified? 116 finding(s).
Are wrappers, guards, and repeated structures necessary? 420 finding(s).
Which changes need focused human review? 589 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 589 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/shadcn/src/preset/presets.ts | 53 | export async function promptToOpenPresetBuilder(options: { | CODE |
| LOW | packages/shadcn/src/preset/presets.ts | 228 | export async function resolveRegistryBaseConfig( | CODE |
| LOW | packages/shadcn/src/preset/resolve.ts | 693 | function getAppliedBodyUtilityVariable(initializer: Node) { | CODE |
| LOW | packages/shadcn/src/utils/handle-error.ts | 92 | function exitWithPreviousVersionSuggestion() { | CODE |
| LOW | packages/shadcn/src/utils/alias.ts | 28 | export function deriveAliasFromComponents( | CODE |
| LOW | packages/shadcn/src/utils/alias.ts | 49 | function replaceComponentsAliasTail(alias: string, kind: "lib" | "hooks") { | CODE |
| LOW | packages/shadcn/src/mcp/utils.ts | 30 | export async function formatSearchResultsWithPagination( | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 49 | function applyToClassNameProperties( | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 185 | function applyToClassNameAttributes( | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 254 | function getNestedCnCallsFromAttribute(initializer: Node) { | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 277 | function extractCnClassesFromAttribute(initializer: Node) { | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 308 | function cleanCnClassesFromAttribute(initializer: Node) { | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 365 | function removeEmptyArgumentsFromCnCall(callExpression: CallExpression) { | CODE |
| LOW | packages/shadcn/src/styles/transform-style-map.ts | 595 | function extractCnClassesFromCnCall(cnCall: CallExpression): string[] { | CODE |
| LOW | packages/shadcn/src/commands/apply.ts | 377 | function resolveApplyRegistryBaseConfig(options: { | CODE |
| LOW | packages/shadcn/src/commands/apply.ts | 438 | async function syncApplyWorkspaceConfigs( | CODE |
| LOW | packages/shadcn/src/commands/add.ts | 345 | async function promptForRegistryComponents( | CODE |
| LOW | packages/shadcn/src/commands/add.ts | 394 | function warnForDeprecatedComponents( | CODE |
| LOW | packages/shadcn/src/commands/registry/validate.ts | 62 | function printRegistryValidationReport( | CODE |
| LOW | packages/shadcn/src/commands/registry/validate.ts | 92 | function printRegistryValidationStats( | CODE |
| LOW | packages/shadcn/src/commands/registry/validate.ts | 181 | async function resolveGitHubRegistryValidationSource( | CODE |
| LOW | packages/tests/src/tests/apply.test.ts | 19 | async function createInitializedRtlProject() { | CODE |
| LOW | packages/tests/src/tests/apply.test.ts | 26 | async function createInitializedViteRtlProject() { | CODE |
| LOW | packages/tests/src/tests/apply.test.ts | 39 | async function createInitializedMonorepoProject() { | CODE |
| LOW | packages/tests/src/tests/apply.test.ts | 73 | async function createInitializedRadixProject() { | CODE |
| LOW | packages/tests/src/utils/helpers.ts | 21 | export async function createFixtureTestDirectory(fixtureName: string) { | CODE |
| LOW | packages/registry/src/get-package-manager.ts | 25 | export function getPackageManagerFromUserAgent( | CODE |
| LOW | packages/registry/src/resolve-import.ts | 24 | export async function resolveImportWithMetadata( | CODE |
| LOW | packages/registry/src/resolve-import.ts | 117 | function findMatchingTsPathPattern( | CODE |
| LOW | packages/registry/src/resolve-file-path.ts | 112 | function resolveFileTargetDirectory( | CODE |
| LOW | packages/registry/src/workspace.ts | 33 | export async function resolveWorkspacePackageExport( | CODE |
| LOW | packages/registry/src/workspace.ts | 58 | function getWorkspacePackageExportEntries( | CODE |
| LOW | packages/registry/src/package-imports.ts | 171 | function getSharedPackageImportPrefix(aliasBases: string[]) { | CODE |
| LOW | packages/registry/src/add-components.workspace.test.ts | 141 | function createPackageImportConfig( | CODE |
| LOW | packages/registry/src/add-components.workspace.test.ts | 178 | async function writePackageImportProject(cwd: string) { | CODE |
| LOW | packages/registry/src/tailwind-theme-colors.ts | 4 | export function buildTailwindThemeColorsFromCssVars( | CODE |
| LOW | packages/registry/src/get-project-info.ts | 408 | function stripJsonCommentsAndTrailingCommas(value: string) { | CODE |
| LOW | packages/registry/src/get-project-info.ts | 596 | function getAliasDefaultsFromPrefix( | CODE |
| LOW | packages/registry/src/get-project-info.ts | 619 | function derivePackageImportAliases(aliases: { | CODE |
| LOW | packages/registry/src/get-project-info.ts | 643 | export async function getProjectTailwindVersionFromConfig(config: { | CODE |
| LOW | packages/registry/src/get-monorepo-info.ts | 155 | export function parsePnpmWorkspacePackages(content: string) { | CODE |
| LOW | packages/registry/src/add-components.ts | 397 | async function resolveAndValidateRegistryTree( | CODE |
| LOW | packages/registry/src/transformers/transform-import.ts | 182 | function isExternalModuleNameRelative(name: string) { | CODE |
| LOW | packages/registry/src/transformers/transform-import.ts | 296 | function getWorkspaceAliasFromUtilsAlias(utilsAlias: string) { | CODE |
| LOW | packages/registry/src/transformers/transform-import.ts | 345 | function getConfigAliasNormalizations(config: Config) { | CODE |
| LOW | packages/registry/src/transformers/transform-icons.ts | 337 | function removeIconPlaceholderImport(code: string, start: number) { | CODE |
| LOW | packages/registry/src/updaters/update-fonts.test.ts | 3097 | function withOnlyTheHeadingFontInCn(page: string) { | CODE |
| LOW | packages/registry/src/updaters/update-fonts.test.ts | 3470 | async function writeLayoutWithOnlyTheHeadingFontInCn(base = LAYOUT) { | CODE |
| LOW | packages/registry/src/updaters/update-dependencies.ts | 167 | function normalizeDependencyRequests( | CODE |
| LOW | packages/registry/src/updaters/update-dependencies.ts | 266 | async function getUpdateDependenciesPackageManager(config: Config) { | CODE |
| LOW | packages/registry/src/updaters/update-dependencies.ts | 297 | async function installWithPackageManager( | CODE |
| LOW | packages/registry/src/updaters/update-files.ts | 468 | export async function rewriteResolvedImportsInContent({ | CODE |
| LOW | packages/registry/src/updaters/update-files.ts | 525 | async function resolveImportFilePathForRewrite( | CODE |
| LOW | packages/registry/src/updaters/update-files.ts | 559 | export function resolveModuleByProbablePath( | CODE |
| LOW | packages/registry/src/updaters/update-files.ts | 736 | function resolveImportFromConfiguredAliases( | CODE |
| LOW | packages/registry/src/updaters/update-files.ts | 768 | function getConfiguredAliasEntries(config: Config) { | CODE |
| LOW | packages/registry/src/updaters/update-css-vars.ts | 189 | function cleanupDefaultNextStylesPlugin() { | CODE |
| LOW | packages/registry/src/updaters/update-css-vars.ts | 591 | function updateTailwindConfigPlugin( | CODE |
| LOW | packages/registry/src/updaters/update-css-vars.ts | 635 | function updateTailwindConfigKeyframesPlugin( | CODE |
| LOW | packages/registry/src/updaters/update-css-vars.ts | 712 | function updateTailwindConfigAnimationPlugin( | CODE |
| 360 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/react/src/message-scroller/message-scroller.test.tsx | 914 | { id: "placeholder", height: 80, scrollAnchor: false }, | CODE |
| LOW | skills/shadcn/design-system-page.md | 27 | 6. **Real content in the brand's voice.** No lorem ipsum. Include the awkward cases: long text, empty, error, loading. | CODE |
| LOW | skills/shadcn/design-system-page.md | 268 | - [ ] No lorem ipsum, and no state names inside components. | CODE |
| LOW | apps/v4/examples/aria/field-fieldset.tsx | 21 | <Input id="street" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/examples/aria/dialog-scrollable-content.tsx | 24 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/aria/dialog-scrollable-content.tsx | 24 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/aria/sheet-side.tsx | 36 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/aria/sheet-side.tsx | 36 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/aria/input-form.tsx | 68 | <Input id="form-address" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/examples/aria/sidebar-rtl.tsx | 75 | teamName: "Acme Inc", | CODE |
| LOW | apps/v4/examples/aria/dialog-sticky-footer.tsx | 27 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/aria/dialog-sticky-footer.tsx | 27 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/aria/input-group-label.tsx | 22 | <InputGroupInput id="email-2" placeholder="user@example.com" /> | CODE |
| LOW | apps/v4/examples/aria/sidebar-demo.tsx | 78 | name: "Acme Inc", | CODE |
| LOW | apps/v4/examples/aria/markdown-demo.tsx | 24 | > The best way to learn markdown is to write it. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos | CODE |
| LOW | apps/v4/examples/aria/markdown-demo.tsx | 24 | > The best way to learn markdown is to write it. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos | CODE |
| LOW | apps/v4/examples/radix/field-fieldset.tsx | 21 | <Input id="street" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/examples/radix/dialog-scrollable-content.tsx | 27 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/radix/dialog-scrollable-content.tsx | 27 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/radix/sheet-side.tsx | 39 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/radix/sheet-side.tsx | 39 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/radix/input-form.tsx | 58 | <Input id="form-address" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/examples/radix/drawer-sides.tsx | 43 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/radix/drawer-sides.tsx | 43 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/radix/sidebar-rtl.tsx | 77 | teamName: "Acme Inc", | CODE |
| LOW | apps/v4/examples/radix/dialog-sticky-footer.tsx | 30 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/radix/dialog-sticky-footer.tsx | 30 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/radix/sidebar-demo.tsx | 79 | name: "Acme Inc", | CODE |
| LOW | apps/v4/examples/radix/markdown-demo.tsx | 24 | > The best way to learn markdown is to write it. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos | CODE |
| LOW | apps/v4/examples/radix/markdown-demo.tsx | 24 | > The best way to learn markdown is to write it. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos | CODE |
| LOW | apps/v4/examples/radix/drawer-scrollable-content.tsx | 30 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/radix/drawer-scrollable-content.tsx | 30 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/base/field-fieldset.tsx | 21 | <Input id="street" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/examples/base/dialog-scrollable-content.tsx | 27 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/base/dialog-scrollable-content.tsx | 27 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/base/sheet-side.tsx | 39 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/base/sheet-side.tsx | 39 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/examples/base/input-form.tsx | 68 | <Input id="form-address" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/examples/base/sidebar-rtl.tsx | 77 | teamName: "Acme Inc", | CODE |
| LOW | apps/v4/examples/base/dialog-sticky-footer.tsx | 30 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/base/dialog-sticky-footer.tsx | 30 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/examples/base/sidebar-demo.tsx | 79 | name: "Acme Inc", | CODE |
| LOW | apps/v4/examples/base/markdown-demo.tsx | 24 | > The best way to learn markdown is to write it. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos | CODE |
| LOW | apps/v4/examples/base/markdown-demo.tsx | 24 | > The best way to learn markdown is to write it. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos | CODE |
| LOW | …ases/aria/blocks/sidebar-10/components/app-sidebar.tsx | 22 | name: "Acme Inc", | CODE |
| LOW | …bases/aria/blocks/signup-02/components/signup-form.tsx | 31 | placeholder="John Doe" | CODE |
| LOW | …bases/aria/blocks/signup-03/components/signup-form.tsx | 37 | <Input id="name" type="text" placeholder="John Doe" required /> | CODE |
| LOW | …ses/aria/blocks/sidebar-15/components/sidebar-left.tsx | 22 | name: "Acme Inc", | CODE |
| LOW | …y/bases/aria/blocks/preview/cards/shipping-address.tsx | 35 | <Input id="shipping-street" placeholder="123 Main Street" /> | CODE |
| LOW | …ases/aria/blocks/sidebar-07/components/app-sidebar.tsx | 27 | name: "Acme Inc", | CODE |
| LOW | …bases/aria/blocks/signup-01/components/signup-form.tsx | 31 | <Input id="name" type="text" placeholder="John Doe" required /> | CODE |
| LOW | apps/v4/registry/bases/aria/examples/sheet-example.tsx | 110 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/registry/bases/aria/examples/sheet-example.tsx | 110 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | apps/v4/registry/bases/aria/examples/input-example.tsx | 216 | <Input id="form-name" type="text" placeholder="John Doe" /> | CODE |
| LOW | apps/v4/registry/bases/aria/examples/input-example.tsx | 256 | <Input id="form-address" type="text" placeholder="123 Main St" /> | CODE |
| LOW | apps/v4/registry/bases/aria/examples/dialog-example.tsx | 131 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/registry/bases/aria/examples/dialog-example.tsx | 131 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/registry/bases/aria/examples/dialog-example.tsx | 165 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | apps/v4/registry/bases/aria/examples/dialog-example.tsx | 165 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do | CODE |
| LOW | …/registry/bases/aria/examples/sidebar-icon-example.tsx | 60 | name: "Acme Inc", | CODE |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/shadcn/src/utils/dry-run.test.ts | 267 | API_KEY: "your-api-key", | CODE |
| HIGH | packages/shadcn/src/utils/dry-run.test.ts | 277 | API_KEY: "your-api-key", | CODE |
| HIGH | packages/registry/src/registry/resolver.test.ts | 1981 | API_KEY: "your-api-key", | CODE |
| HIGH | packages/registry/src/registry/resolver.test.ts | 2224 | "API_KEY": "your-api-key", | CODE |
| HIGH | apps/v4/examples/aria/code-block-tabs.tsx | 52 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | apps/v4/examples/aria/code-block-streaming.tsx | 80 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | apps/v4/examples/radix/code-block-tabs.tsx | 52 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | apps/v4/examples/radix/code-block-streaming.tsx | 80 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | apps/v4/examples/base/code-block-tabs.tsx | 52 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | apps/v4/examples/base/code-block-streaming.tsx | 80 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | …v4/registry/bases/aria/examples/code-block-example.tsx | 770 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | …4/registry/bases/radix/examples/code-block-example.tsx | 771 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| HIGH | …v4/registry/bases/base/examples/code-block-example.tsx | 771 | code: "AI_GATEWAY_API_KEY=your-api-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/registry/src/preset/preset.ts | 1 | // Preset encoding/decoding utilities. | COMMENT |
| LOW | packages/registry/src/codemod/parse.ts | 41 | // How a file is parsed. TypeScript parses a .ts file without JSX, where | COMMENT |
| LOW | …essage-scroller/message-scroller.perf.browser.test.tsx | 21 | // getContentBottom() scan that runs on every scroll commit. We measure its cost | COMMENT |
| LOW | …essage-scroller/message-scroller.perf.browser.test.tsx | 341 | // Growth dirties layout, so handleContentChange + the ResizeObserver-driven | COMMENT |
| LOW | …rc/message-scroller/use-message-scroller-controller.ts | 141 | // Owns the one follow-bottom transition: arm at the bottom, release on any | COMMENT |
| LOW | …src/message-scroller/message-scroller.browser.test.tsx | 21 | // must NOT compensate again. This is invisible to jsdom: with no native | COMMENT |
| LOW | .github/changeset-publish.js | 1 | // Publish the packages with Changesets without ever publishing a shadcn whose | COMMENT |
| LOW | .github/changeset-version.js | 1 | // ORIGINALLY FROM CLOUDFLARE WRANGLER: | COMMENT |
| LOW | templates/next-monorepo/apps/web/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | apps/v4/source.config.ts | 21 | return plugins | COMMENT |
| LOW | apps/v4/app/(view)/view/[style]/[name]/page.tsx | 101 | if (exampleName.startsWith("sidebar-")) { | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 41 | // // For your own calendar, you would edit the calendar.tsx component directly. | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 61 | // "group/calendar bg-background p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[da | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 81 | // defaultClassNames.nav | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 101 | // dropdown_root: cn( | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 121 | // "w-(--cell-size) select-none", | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 141 | // ), | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 161 | // /> | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 181 | // <ChevronDownIcon className={cn("size-4", className)} {...props} /> | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 201 | // function CalendarDayButton({ | COMMENT |
| LOW | apps/v4/examples/aria/calendar-hijri.tsx | 221 | // !modifiers.range_start && | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/shadcn/design-system.md | 35 | ## Step 1: Scaffold | COMMENT |
| LOW | skills/shadcn/design-system.md | 75 | ## Step 2: Install Everything | COMMENT |
| LOW | skills/shadcn/design-system.md | 100 | ## Step 3: Read the DESIGN.md | COMMENT |
| LOW | skills/shadcn/design-system.md | 125 | ## Step 4: Map Tokens to the Theme | COMMENT |
| LOW | skills/shadcn/design-system.md | 289 | ## Step 5: Map Component Recipes to Variants | COMMENT |
| LOW | skills/shadcn/design-system.md | 330 | ## Step 6: Build the Design System Page | COMMENT |
| LOW | skills/shadcn/design-system.md | 366 | ## Step 7: Verify | COMMENT |
| LOW⚡ | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 57 | ## Step 1: Dependencies | COMMENT |
| LOW⚡ | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 67 | ## Step 2: Create \`lib/utils.ts\` | COMMENT |
| LOW | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 81 | ## Step 3: Set up CSS | COMMENT |
| LOW | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 201 | ## Step 4: Set up the font | COMMENT |
| LOW⚡ | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 246 | ## Step 5: Create \`components.json\` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/v4/components/component-preview-tabs.tsx | 85 | I used AI to translate the text for demonstration purposes. | CODE |
| MEDIUM | apps/v4/public/r/styles/new-york/sidebar-09.json | 26 | "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ArchiveX, Command, File, Inbox, Send, Tra | CODE |
| MEDIUM | apps/v4/public/r/styles/new-york/v0-sidebar-09.json | 18 | "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArchiveX,\n BadgeCheck,\n Bell,\n C | CODE |
| MEDIUM | apps/v4/public/r/styles/default/sidebar-09.json | 26 | "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ArchiveX, Command, File, Inbox, Send, Tra | CODE |
| MEDIUM | apps/v4/public/r/styles/default/v0-sidebar-09.json | 18 | "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArchiveX,\n BadgeCheck,\n Bell,\n C | CODE |
| MEDIUM | …ases/aria/blocks/sidebar-09/components/app-sidebar.tsx | 173 | "I've completed the registration for the upcoming tech conference.\nLet me know if you need any additional infor | CODE |
| MEDIUM | …ses/radix/blocks/sidebar-09/components/app-sidebar.tsx | 173 | "I've completed the registration for the upcoming tech conference.\nLet me know if you need any additional infor | CODE |
| MEDIUM | …ases/base/blocks/sidebar-09/components/app-sidebar.tsx | 173 | "I've completed the registration for the upcoming tech conference.\nLet me know if you need any additional infor | CODE |
| MEDIUM | …w-york-v4/blocks/sidebar-09/components/app-sidebar.tsx | 133 | "I've completed the registration for the upcoming tech conference.\nLet me know if you need any additional infor | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/shadcn/CHANGELOG.md | 418 | - [#9903](https://github.com/shadcn-ui/ui/pull/9903) [`f5ac4a0d2aa5af87202f67558a4b9b8f92c00bd2`](https://github.com/sha | CODE |
| MEDIUM | packages/shadcn/CHANGELOG.md | 418 | - [#9903](https://github.com/shadcn-ui/ui/pull/9903) [`f5ac4a0d2aa5af87202f67558a4b9b8f92c00bd2`](https://github.com/sha | CODE |
| MEDIUM | packages/shadcn/src/templates/laravel.ts | 30 | // Not used — scaffold exits early. | COMMENT |
| MEDIUM | packages/shadcn/src/templates/create-template.ts | 87 | // Rebuild scaffold with monorepo overrides. | COMMENT |
| MEDIUM | packages/shadcn/src/templates/create-template.ts | 222 | // Default scaffold that downloads a template from GitHub. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/shadcn/src/commands/init.ts | 547 | // We need to check if we're initializing with a new style. | COMMENT |
| LOW⚡ | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 57 | ## Step 1: Dependencies | COMMENT |
| LOW⚡ | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 67 | ## Step 2: Create \`lib/utils.ts\` | COMMENT |
| LOW | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 81 | ## Step 3: Set up CSS | COMMENT |
| LOW | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 201 | ## Step 4: Set up the font | COMMENT |
| LOW⚡ | apps/v4/app/(app)/(create)/lib/build-instructions.ts | 246 | ## Step 5: Create \`components.json\` | COMMENT |