A collection of libraries and tools that help you build adaptive, accessible, and robust user experiences.
This report summarizes scanner evidence for adobe/react-spectrum, a TypeScript project with 16,002 GitHub stars. SynthScan examined 706,600 lines of code across 6815 source files, recording 502 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 0.8 (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? 276 finding(s).
Are imports declared and package/API names verified? 214 finding(s).
Are wrappers, guards, and repeated structures necessary? 215 finding(s).
Which changes need focused human review? 502 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 502 distinct pattern matches across 11 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 | examples/s2-next-macros/src/app/Lazy.js | 307 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-next-macros/src/app/Lazy.js | 307 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-next-macros/src/app/Lazy.js | 343 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-next-macros/src/app/Lazy.js | 343 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-parcel-example/src/Lazy.js | 293 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-parcel-example/src/Lazy.js | 293 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-parcel-example/src/Lazy.js | 329 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-parcel-example/src/Lazy.js | 329 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/rsp-next-ts-17/pages/api/hello.ts | 9 | res.status(200).json({name: 'John Doe'}); | CODE |
| LOW | examples/s2-webpack-5-typescript-example/src/Lazy.tsx | 291 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-webpack-5-typescript-example/src/Lazy.tsx | 291 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-webpack-5-typescript-example/src/Lazy.tsx | 327 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-webpack-5-typescript-example/src/Lazy.tsx | 327 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/rsp-next-ts/pages/api/hello.ts | 9 | res.status(200).json({name: 'John Doe'}); | CODE |
| LOW | examples/s2-webpack-5-example/src/Lazy.js | 293 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-webpack-5-example/src/Lazy.js | 293 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-webpack-5-example/src/Lazy.js | 329 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-webpack-5-example/src/Lazy.js | 329 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-vite-project/src/Lazy.tsx | 293 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-vite-project/src/Lazy.tsx | 293 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-vite-project/src/Lazy.tsx | 329 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | examples/s2-vite-project/src/Lazy.tsx | 329 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | CODE |
| LOW | packages/react-aria-components/test/DateField.test.js | 93 | className={({isPlaceholder}) => `segment ${isPlaceholder ? 'placeholder' : ''}`} | CODE |
| LOW | packages/react-aria-components/test/TimeField.test.js | 85 | className={({isPlaceholder}) => `segment ${isPlaceholder ? 'placeholder' : ''}`} | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 402 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 402 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 406 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 406 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 410 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 410 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 414 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 414 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 418 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 418 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 422 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 422 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 426 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 426 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 430 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 430 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 436 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 436 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 440 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 440 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 446 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 446 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 452 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …kages/react-aria-components/stories/Select.stories.tsx | 452 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Error voluptatibus esse qui enim | CODE |
| LOW⚡ | …ages/react-aria-components/stories/ListBox.stories.tsx | 660 | let lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'.split(' '); | CODE |
| LOW⚡ | …ages/react-aria-components/stories/ListBox.stories.tsx | 660 | let lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'.split(' '); | CODE |
| LOW | packages/react-aria-components/src/SearchField.tsx | 84 | | 'placeholder' | CODE |
| LOW | packages/react-aria-components/src/ColorField.tsx | 97 | | 'placeholder' | CODE |
| LOW | packages/react-aria-components/src/ComboBox.tsx | 101 | | 'placeholder' | CODE |
| LOW | packages/react-aria-components/src/NumberField.tsx | 78 | | 'placeholder' | CODE |
| LOW | packages/react-aria-components/src/TextField.tsx | 74 | | 'placeholder' | CODE |
| LOW | packages/react-stately/src/layout/TableLayout.ts | 449 | case 'placeholder': | CODE |
| LOW | packages/react-stately/src/table/TableCollection.ts | 121 | type: 'placeholder', | CODE |
| LOW | packages/react-stately/src/table/TableCollection.ts | 165 | type: 'placeholder', | CODE |
| LOW⚡ | packages/@react-spectrum/s2/chromatic/Toast.stories.tsx | 89 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW⚡ | packages/@react-spectrum/s2/chromatic/Toast.stories.tsx | 89 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| 152 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vitest.browser.config.ts | 60 | function illustrationResolverPlugin(): Plugin { | CODE |
| LOW | starters/docs/src/NavigationTree.tsx | 34 | export function NavigationTreeItemContent(props: {children?: React.ReactNode}) { | CODE |
| LOW | starters/tailwind/src/NavigationTree.tsx | 105 | export function NavigationTreeItemContent(props: {children?: React.ReactNode}) { | CODE |
| LOW | rfcs/2020-v3-dnd.md | 283 | declare function useDraggableCollectionState(props: DraggableCollectionOptions): DraggableCollectionState; | CODE |
| LOW | rfcs/2020-v3-dnd.md | 384 | declare function useDroppableCollectionState(options: DroppableCollectionStateOptions): DroppableCollectionState; | CODE |
| LOW | scripts/compareAPIs.js | 238 | function followInvertedDependencies(iname, deps) { | CODE |
| LOW | scripts/buildI18n.js | 112 | function createLocalizedStringDictionary(packages) { | CODE |
| LOW | scripts/buildI18n.js | 167 | export declare function createLocalizedStringDictionary(packages: string[]): LocalizedStringDictionary; | CODE |
| LOW | packages/react-aria-components/test/ListBox.test.js | 1712 | function VirtualizedDraggableListBox() { | CODE |
| LOW | packages/react-aria-components/test/Disclosure.test.js | 492 | function ControlledDisclosureGroup() { | CODE |
| LOW | …ges/react-aria-components/test/NavigationTree.test.tsx | 54 | function ThreeLevelNavigationTreeExample(props: Partial<NavigationTreeProps<unknown>>) { | CODE |
| LOW | …ges/react-aria-components/test/NavigationTree.test.tsx | 89 | function NoLinkActionMenuNavigationTreeExample(props: Partial<NavigationTreeProps<unknown>>) { | CODE |
| LOW | …ges/react-aria-components/test/NavigationTree.test.tsx | 115 | function NoHrefLinkNavigationTreeExample(props: Partial<NavigationTreeProps<unknown>>) { | CODE |
| LOW | …ges/react-aria-components/test/NavigationTree.test.tsx | 137 | function SectionNavigationTreeExample(props: Partial<NavigationTreeProps<unknown>>) { | CODE |
| LOW | packages/react-aria-components/test/NumberField.test.js | 615 | function NumberFieldDisabledButtons({label}) { | CODE |
| LOW | …-aria-components/test/utils/tokenFieldBrowserUtils.tsx | 211 | export async function renderControlledTokenField( | CODE |
| LOW | …ges/react-aria-components/stories/Calendar.stories.tsx | 119 | function CalendarMultiMonthExample(args) { | CODE |
| LOW | packages/react-aria-components/stories/Menu.stories.tsx | 476 | function MenuItemWithCustomElement(props: MenuItemProps) { | CODE |
| LOW | packages/react-aria-components/stories/Menu.stories.tsx | 575 | function UnavailableMenuItemTrigger(props: {isUnavailable?: boolean; children: ReactElement[]}) { | CODE |
| LOW | …kages/react-aria-components/stories/Button.stories.tsx | 107 | function PendingButtonTooltipExample(props) { | CODE |
| LOW | …ages/react-aria-components/stories/Popover.stories.tsx | 182 | function PopoverArrowBoundaryOffsetExampleRender({ | CODE |
| LOW | …ages/react-aria-components/stories/Popover.stories.tsx | 538 | function ScrollingBoundaryContainerExample(args) { | CODE |
| LOW | packages/react-aria-components/stories/Tree.stories.tsx | 1385 | function MultiLoaderTreeUseAsyncList(args) { | CODE |
| LOW | packages/react-aria-components/stories/Tree.stories.tsx | 1720 | function TreeDragAndDropVirtualizedRender(args) { | CODE |
| LOW | packages/react-aria-components/stories/Tree.stories.tsx | 2073 | export function VirtualizedTreeInShadowDOM(props: TreeProps<ITreeItem>) { | CODE |
| LOW | …ges/react-aria-components/stories/GridList.stories.tsx | 346 | export function VirtualizedGridListSection() { | CODE |
| LOW | …ges/react-aria-components/stories/GridList.stories.tsx | 690 | function AsyncGridListVirtualizedRender(props: {delay: number}): JSX.Element { | CODE |
| LOW | …ges/react-aria-components/stories/GridList.stories.tsx | 837 | function GridListInModalPickerRender(props: ModalOverlayProps): JSX.Element { | CODE |
| LOW | …ges/react-aria-components/stories/GridList.stories.tsx | 912 | function AsyncGridListGridVirtualizedRender(props: AsyncGridListGridVirtualizedRenderProps) { | CODE |
| LOW | …ges/react-aria-components/stories/GridList.stories.tsx | 1194 | function VirtualizedDisplayNoneToggleRender() { | CODE |
| LOW | …kages/react-aria-components/stories/Select.stories.tsx | 260 | function AsyncVirtualizedCollectionRenderSelectRender(args: {delay: number}): JSX.Element { | CODE |
| LOW | …ages/react-aria-components/stories/ListBox.stories.tsx | 502 | function VirtualizedListBoxDndRender(args): JSX.Element { | CODE |
| LOW | …ages/react-aria-components/stories/ListBox.stories.tsx | 577 | function VirtualizedListBoxGridExample({ | CODE |
| LOW⚡ | …ages/react-aria-components/stories/ListBox.stories.tsx | 667 | function VirtualizedListBoxWaterfallExample({ | CODE |
| LOW | …react-aria-components/stories/Autocomplete.stories.tsx | 913 | export function AutocompleteWithExtraButtons(): React.ReactElement { | CODE |
| LOW | …react-aria-components/stories/Autocomplete.stories.tsx | 1281 | function AutocompleteNodeFiltering(args) { | CODE |
| LOW | …ckages/react-aria-components/stories/Table.stories.tsx | 666 | function DndTableWithNoValidDropTargetsRender(): JSX.Element { | CODE |
| LOW | …ckages/react-aria-components/stories/Table.stories.tsx | 1113 | function VirtualizedTableWithEmptyState(args: { | CODE |
| LOW | …ages/react-aria-components/stories/Tooltip.stories.tsx | 92 | function TooltipArrowBoundaryOffsetExampleRender(args: { | CODE |
| LOW | …ckages/react-aria-components/stories/Modal.stories.tsx | 224 | function DateRangePickerInsideModal() { | CODE |
| LOW | packages/react-aria-components/src/GridList.tsx | 738 | function GridListDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) { | CODE |
| LOW | packages/react-aria-components/src/ListBox.tsx | 662 | function ListBoxDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) { | CODE |
| LOW | packages/react-aria-components/src/NavigationTree.tsx | 400 | export function NavigationTreeItemContent(props: NavigationTreeItemContentProps): ReactNode { | CODE |
| LOW | packages/react-aria-components/src/NavigationTree.tsx | 421 | function NavigationTreeItemContentInner(props: NavigationTreeItemContentInnerProps): ReactNode { | CODE |
| LOW | packages/react-aria-components/src/useDragAndDrop.tsx | 167 | hooks.useDraggableCollectionState = function useDraggableCollectionStateOverride( | CODE |
| LOW | packages/react-aria-components/src/useDragAndDrop.tsx | 186 | hooks.useDroppableCollectionState = function useDroppableCollectionStateOverride( | CODE |
| LOW | packages/react-aria-components/src/useDragAndDrop.tsx | 194 | hooks.useDroppableCollection = function useDroppableCollectionOverride( | CODE |
| LOW | packages/react-aria-components/src/Virtualizer.tsx | 216 | function renderDropIndicatorWrapper( | CODE |
| LOW | packages/react-aria-components/src/Table.tsx | 1055 | let TableHeaderRowElementType = forwardRef(function TableHeaderRowElementType( | CODE |
| LOW | packages/react-aria-components/src/Table.tsx | 2204 | function TableDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) { | CODE |
| LOW | packages/react-aria-components/src/Table.tsx | 2243 | let TableDropIndicatorRowElementType = forwardRef(function TableDropIndicatorRowElementType( | CODE |
| LOW | packages/react-aria-components/src/Table.tsx | 2253 | let TableDropIndicatorTDElementType = forwardRef(function TableDropIndicatorTDElementType( | CODE |
| LOW | packages/react-aria-components/src/Modal.tsx | 210 | function ModalOverlayWithForwardRef(props: ModalOverlayProps, ref: ForwardedRef<HTMLDivElement>) { | CODE |
| LOW | packages/react-aria-components/src/Collection.tsx | 241 | export function renderAfterDropIndicators( | CODE |
| LOW | packages/@internationalized/date/src/queries.ts | 161 | export function isLocalTimeZoneOverridden(): boolean { | CODE |
| LOW | packages/@internationalized/date/src/DateFormatter.ts | 166 | function hasBuggyResolvedHourCycle() { | CODE |
| LOW | …ct-stately/test/tooltip/useTooltipTriggerState.test.js | 304 | function TooltipTriggerWithDoubleOpen(props) { | CODE |
| LOW | …s/react-stately/src/dnd/useDroppableCollectionState.ts | 66 | export function useDroppableCollectionState( | CODE |
| LOW | …s/react-stately/src/color/useColorChannelFieldState.ts | 30 | export function useColorChannelFieldState( | CODE |
| LOW | …act-stately/src/selection/useMultipleSelectionState.ts | 60 | export function useMultipleSelectionState( | CODE |
| 143 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jest.config.js | 21 | // bail: 0, | COMMENT |
| LOW | jest.config.js | 41 | // An array of regexp pattern strings used to skip coverage collection | COMMENT |
| LOW | jest.config.js | 61 | COMMENT | |
| LOW | jest.config.js | 181 | COMMENT | |
| LOW | tsconfig.build.json | 1 | { | COMMENT |
| LOW | tsconfig.json | 1 | { | COMMENT |
| LOW | examples/rsp-next-ts-17/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | examples/remix/env.d.ts | 1 | /// <reference types="@remix-run/node" /> | COMMENT |
| LOW | examples/rsp-next-ts/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | scripts/verdaccio-seed.js | 1 | #!/usr/bin/env node | COMMENT |
| LOW | scripts/icon-builder-fixture/tsconfig.json | 1 | { | COMMENT |
| LOW | …ages/react-aria-components/test/AriaMenu.test-util.tsx | 901 | // TODO: long press might be implementation specific, better to test in S2 and RAC separately, also hard because i d | COMMENT |
| LOW | …ct-aria-components/test/AriaAutocomplete.test-util.tsx | 21 | COMMENT | |
| LOW | …ct-aria-components/test/AriaAutocomplete.test-util.tsx | 41 | // needs a controlled input element and the same collection items as the standard renderer. Should default to an emp | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 21 | // "0110 1101 0100", "0110 1110 1010", "0011 0110 1100", "1010 1010 1101", "0101 0101 0101", | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 41 | //* 1338 -1342 */ | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 61 | 0x05ca, 0x0ad6, 0x0957, 0x04ab, 0x094b, | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 81 | // "1110 1100 1001", "0110 1101 0100", "1010 1110 1001", "1001 0110 1011", "0100 1010 1011", | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 101 | //* 1438 -1442 */ | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 121 | 0x05aa, 0x05b5, 0x02da, 0x095b, 0x04ad, | COMMENT |
| LOW | …s/@internationalized/date/scripts/generate-umalqura.js | 141 | // "1010 1010 0101", "1011 0101 0010", "1011 0110 1001", "0101 0111 0101", "0001 0111 0110", "1000 1011 0111", "0010 0 | COMMENT |
| LOW | packages/@internationalized/date/src/DateFormatter.ts | 101 | // There are multiple bugs involving the hour12 and hourCycle options in various browser engines. | COMMENT |
| LOW | …s/@react-spectrum/s2/chromatic/ColorSlider.stories.tsx | 161 | // name: 'custom height', | COMMENT |
| LOW | packages/@react-spectrum/s2/style/runtime.ts | 21 | // type UnboxIntersection<T> = T extends { 0: infer U } ? U : never; | COMMENT |
| LOW | packages/@react-spectrum/s2/src/Popover.tsx | 221 | // : children; | COMMENT |
| LOW | packages/@react-spectrum/s2/src/TableView.tsx | 1981 | type: 'color', | COMMENT |
| LOW | packages/@react-spectrum/s2/src/Switch.tsx | 181 | // In the default state, the handle is 8px smaller than the track. When selected it grows to 6px smaller than the trac | COMMENT |
| LOW | packages/@react-spectrum/s2/src/Fonts.tsx | 21 | let preloads = { | COMMENT |
| LOW | packages/@react-spectrum/ai/stories/prose.stories.tsx | 141 | // Margin visualizer (story-only debugging tool) | COMMENT |
| LOW | packages/@react-spectrum/ai/src/loader/data.ts | 801 | // ───────────────────────────────────────────────────────────── | COMMENT |
| LOW | …ckages/react-aria/test/utils/shadowTreeWalker.test.tsx | 361 | // let user; | COMMENT |
| LOW | …ckages/react-aria/test/utils/shadowTreeWalker.test.tsx | 381 | // await user.click(target); | COMMENT |
| LOW | …ckages/react-aria/test/utils/shadowTreeWalker.test.tsx | 401 | // await user.click(target); | COMMENT |
| LOW | …ages/react-aria/src/interactions/useInteractOutside.ts | 141 | // When the event source is inside a Shadow DOM, event.target is just the shadow root. | COMMENT |
| LOW | packages/react-aria/src/interactions/useFocusVisible.ts | 121 | // When the window regains focus, the browser restores focus to the element that was focused | COMMENT |
| LOW | packages/react-aria/src/interactions/useContextMenu.ts | 41 | // How to trigger context menu events on various platforms: | COMMENT |
| LOW | packages/react-aria/src/overlays/usePreventScroll.ts | 81 | ? setStyle(document.documentElement, 'scrollbar-gutter', 'stable') | COMMENT |
| LOW | packages/react-aria/src/overlays/usePreventScroll.ts | 101 | // | COMMENT |
| LOW | …ages/react-aria/src/textfield/useFormattedTextField.ts | 141 | let compositionStartState = useRef<{ | COMMENT |
| LOW | packages/react-aria/src/collections/Document.ts | 21 | // Portal to a fake DOM implementation. This gives us efficient access to the tree of rendered objects, and | COMMENT |
| LOW | packages/react-aria/src/numberfield/useNumberField.ts | 361 | // keyboard does not appear and the screen reader cursor is not moved off the button. | COMMENT |
| LOW | …ges/@adobe/spectrum-css-builder-temp/css/processors.js | 21 | // tokenName = tokenName.replace('.spectrum--', ''); | COMMENT |
| LOW | …ges/@adobe/spectrum-css-builder-temp/css/processors.js | 41 | // } | COMMENT |
| LOW | …ges/@adobe/spectrum-css-builder-temp/css/processors.js | 61 | // color: var(--spectrum-${tokenName}-text-color); | COMMENT |
| LOW | …ges/@adobe/spectrum-css-builder-temp/css/processors.js | 101 | } | COMMENT |
| LOW | …ages/@adobe/react-spectrum/test/table/TableDnd.test.js | 1861 | // dropOperation: 'move', | COMMENT |
| LOW | …t-spectrum/stories/breadcrumbs/Breadcrumbs.stories.tsx | 141 | // 'last item Heading, size: S', | COMMENT |
| LOW | …t-spectrum/stories/breadcrumbs/Breadcrumbs.stories.tsx | 161 | // function renderHeading(props = {}) { | COMMENT |
| LOW | packages/dev/parcel-reporter-turbosnap-stats/helpers.ts | 141 | COMMENT | |
| LOW | packages/dev/s2-docs/src/CodePlatter.tsx | 361 | return res; | COMMENT |
| LOW | packages/dev/s2-docs/src/CodePlatter.tsx | 441 | // <ButtonGroup> | COMMENT |
| LOW | …es/dev/style-macro-chrome-plugin/src/content-script.js | 41 | // No longer need to listen for get-macro requests or manage cleanup | COMMENT |
| LOW | …dev/codemods/src/s1-to-s2/__tests__/radiogroup.test.ts | 61 | COMMENT | |
| LOW | .storybook-s2/main.ts | 1 | import type {StorybookConfig} from 'storybook/internal/types'; | COMMENT |
| LOW | .storybook-s2/main.ts | 41 | sidebarOnboardingChecklist: false | COMMENT |
| LOW | .storybook-s2/docs/highlight.js | 1 | // const treeSitter = require('tree-sitter-highlight'); | COMMENT |
| LOW | .storybook-s2/docs/highlight.js | 21 | // color: ${colorToken('pink-1000')} | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 30 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 32 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 48 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 50 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 801 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 812 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 854 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 856 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 1012 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/data.ts | 1015 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/react.tsx | 86 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@react-spectrum/ai/src/loader/react.tsx | 91 | // ───────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/dev/style-macro-chrome-plugin/src/devtool.js | 243 | chrome.devtools.panels.elements.onSelectionChanged.addListener(() => { | CODE |
| CRITICAL | …odemods/src/s1-to-s2/src/codemods/shared/transforms.ts | 672 | path.parentPath.node.openingElement.attributes.push( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/weekly-api-diff/prompt.md | 12 | ## Step 1: Get today's date | COMMENT |
| LOW⚡ | scripts/weekly-api-diff/prompt.md | 20 | ## Step 2: Pull latest main | COMMENT |
| LOW⚡ | scripts/weekly-api-diff/prompt.md | 28 | ## Step 3: Build current API snapshot | COMMENT |
| LOW⚡ | scripts/weekly-api-diff/prompt.md | 37 | ## Step 4: Build release baseline (if not already built) | COMMENT |
| LOW | scripts/weekly-api-diff/prompt.md | 55 | ## Step 5: Generate the diff text | COMMENT |
| LOW | scripts/weekly-api-diff/prompt.md | 64 | ## Step 6: Detect new release and compute week-to-week delta | COMMENT |
| LOW | scripts/weekly-api-diff/prompt.md | 91 | ## Step 7: Commit and push | COMMENT |
| LOW | scripts/weekly-api-diff/prompt.md | 112 | ## Step 8: Summarize | COMMENT |
| LOW | scripts/weekly-api-diff/prompt.md | 139 | ## Step 9: Post to Slack | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …eact-spectrum/s2/test/DateRangePicker.browser.test.tsx | 42 | // Match on the date portion of a day cell's aria-label so the query is robust to the weekday | COMMENT |
| MEDIUM | packages/dev/s2-docs/pages/s2/home/app/topics.json | 3998 | "self": "https://api.unsplash.com/illustrations/seamless-pattern-of-overlapping-pink-scales-hzYq_VU1iLU", | CODE |
| MEDIUM | packages/dev/s2-docs/pages/s2/home/app/topics.json | 3999 | "html": "https://unsplash.com/illustrations/seamless-pattern-of-overlapping-pink-scales-hzYq_VU1iLU", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | AGENTS.md | 14 | ## Toolchain guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/@react-spectrum/s2/src/SideNav.tsx | 645 | // For some reason I'm unable to use a ViewTransition component directly here. Not sure why | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ages/dev/codemods/src/s1-to-s2/src/codemods/codemod.ts | 356 | // TODO: implement this. could be a bit challenging. punting for now. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/remix/app/entry.server.tsx | 11 | export default function handleRequest( | CODE |