Repository Analysis

atlassian/pragmatic-drag-and-drop

Fast drag and drop for any experience on any tech stack

0.9 Likely human-written View on GitHub
0.9
Adjusted Score
0.9
Raw Score
100%
Time Factor
2026-05-28
Last Push
12,632
Stars
TypeScript
Language
98,559
Lines of Code
855
Files
80
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 2LOW 78

Pattern Findings

80 matches across 5 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers56 hits · 56 pts
SeverityFileLineSnippet
LOWpackages/auto-scroll/__tests__/unit/_util.ts245export function setElementFromPointWithPath(path: Element[]): CleanupFn {
LOWpackages/auto-scroll/__tests__/unit/_util.ts304export function setupNestedScrollContainers(bubbleOrdered: BasicElementArgs[]): HTMLElement[] {
LOWpackages/auto-scroll/__tests__/unit/_util.ts425export function setupBasicScrollContainer({
LOW…roll/__tests__/unit/overflow/cross-axis-hitbox.spec.ts89function getOverElementMainHitboxSize(edge: Edge) {
LOW…kages/auto-scroll/src/unsafe-overflow/get-scroll-by.ts26function getIsDistanceDampeningEnabled(value: HitboxForEdge): boolean {
LOW…eces/pinned-fields/experience/enhanced-drag-handle.tsx135export default function PinnedFieldsEnhancedDragHandle(): React.JSX.Element {
LOW…es/pieces/pinned-fields/experience/migration-layer.tsx12export default function PinnedFieldReactBeautifulDnd(): React.JSX.Element {
LOW…es/pieces/pinned-fields/experience/migration-layer.tsx24export function PinnedFieldReactBeautifulDndNoDraggingOutline(): React.JSX.Element {
LOW…es/pieces/pinned-fields/experience/migration-layer.tsx36export function PinnedFieldReactBeautifulDndSubtle(): React.JSX.Element {
LOW…pieces/pinned-fields/experience/current-guidelines.tsx52export default function PinnedFieldsWithCurrentGuidelines(): React.JSX.Element {
LOW…eces/pinned-fields/experience/asana-native-preview.tsx54export default function AsanaFieldsWithNativePreview(): React.JSX.Element {
LOW…ieces/pinned-fields/experience/react-beautiful-dnd.tsx8export default function PinnedFieldReactBeautifulDnd(): React.JSX.Element {
LOW…pieces/pinned-fields/templates/react-beautiful-dnd.tsx60export default function PinnedFieldsReactBeautifulDndTemplate({
LOW…/examples/pieces/pinned-fields/templates/atlassian.tsx19export default function PinnedFieldsAtlassianTemplate({
LOW…xamples/pieces/subtasks/demo/linear-native-preview.tsx84export default function LinearTaskReorderingNativePreview(): React.JSX.Element {
LOW…ocumentation/examples/pieces/tree-legacy/tree-item.tsx161function getParentLevelOfInstruction(instruction: Instruction): number {
LOW…ocumentation/examples/pieces/tree-legacy/tree-item.tsx264 function updateIsParentOfInstruction({ location }: { location: DragLocationHistory }) {
LOW…pieces/hooks/use-prevent-scrolling-from-arrow-keys.tsx11export function usePreventScrollingFromArrowKeys({
LOW…entire-entity-is-draggable-with-drag-handle-button.tsx38export function EntireEntityIsDraggableWithDragHandleButton(): React.JSX.Element {
LOW…xamples/guidelines/only-draggable-from-drag-handle.tsx41export function OnlyDraggableFromDragHandle(): React.JSX.Element {
LOW…amples/guidelines/hover-drag-handle-outside-bounds.tsx76export function HoverDragHandleOutsideBounds(): React.JSX.Element {
LOW…ines/entire-entity-is-draggable-with-grouped-items.tsx98export function EntireEntityIsDraggableWithGroupedItems(): React.JSX.Element {
LOW…mples/constellation/list-item/list-item-horizontal.tsx9export function ListItemHorizontalExample(): React.JSX.Element {
LOWpackages/core/__tests__/unit/_util.ts126export function setElementFromPointWithPath(path: Element[]): CleanupFn {
LOW…kages/core/examples/drag-preview-with-transparency.tsx149function ItemPreserveOffsetOnSource() {
LOWpackages/core/examples/native/content.tsx126function DraggableAnchorWithNewUrl() {
LOWpackages/core/examples/native/content.tsx147function DraggableAnchorWithCustomPreview() {
LOWpackages/core/examples/native/content.tsx192function DraggableImageWithCustomPreview() {
LOWpackages/core/src/util/detect-broken-drag.ts1export function getBindingsForBrokenDrags({ onDragEnd }: { onDragEnd: () => void }): readonly [
LOWpackages/core/src/adapter/text-selection-adapter.ts172export function dropTargetForTextSelection(
LOW…-native-drag-preview/set-custom-native-drag-preview.ts46export function setCustomNativeDragPreview({
LOWpackages/core/src/honey-pot-fix/make-honey-pot-fix.ts39function pullBackByHalfHoneyPotSize(point: Position): Position {
LOWpackages/core/src/honey-pot-fix/make-honey-pot-fix.ts50function preventGoingBackwardsOffScreen(point: Position): Position {
LOWpackages/core/src/honey-pot-fix/make-honey-pot-fix.ts61function preventGoingForwardsOffScreen(point: Position): Position {
LOW…ey-pot-fix/get-element-from-point-without-honey-pot.ts5export function getElementFromPointWithoutHoneypot(client: Position): Element | null {
LOW…ct-accessibility/examples/drag-handle-button-small.tsx5export default function DragHandleButtonSmallExample(): React.JSX.Element {
LOW…t-accessibility/examples/drag-handle-dropdown-menu.tsx9export default function DragHandleDropdownMenuExample(): React.JSX.Element {
LOWpackages/hitbox/src/get-reorder-destination-index.ts3export function getReorderDestinationIndex({
LOW…react-beautiful-dnd-migration/__tests__/unit/_util.tsx27export function findPlaceholderInDroppable(
LOW…react-beautiful-dnd-migration/__tests__/unit/_util.tsx41export function hasPlaceholderInDroppable(
LOW…kages/react-beautiful-dnd-migration/codemods/utils.tsx3function getImportDeclarationsForPackage(
LOW…kages/react-beautiful-dnd-migration/codemods/utils.tsx11export function getImportDeclarationsForRbd(
LOW…kages/react-beautiful-dnd-migration/codemods/utils.tsx36function getImportedRbdComponentNames(
LOW…eautiful-dnd-migration/src/drag-drop-context/index.tsx194 function dispatchConsumerLifecycleEvent() {
LOW…migration/src/drag-drop-context/draggable-location.tsx16function getDraggableLocationFromDraggableData({
LOW…migration/src/drag-drop-context/draggable-location.tsx58function getDraggableLocationFromDroppableData({
LOW…migration/src/utils/get-closest-positioned-element.tsx6function getClosestAbsolutePositionedElement(element: HTMLElement): HTMLElement | null {
LOW…migration/src/utils/get-closest-positioned-element.tsx23export function getClosestPositionedElement({
LOW…-migration/src/utils/get-best-cross-axis-droppable.tsx26export function getBestCrossAxisDroppable({
LOW…-migration/src/utils/find-closest-scroll-container.tsx4export function findClosestScrollContainer(element: HTMLElement): HTMLElement | null {
LOW…ration/src/utils/get-element-by-draggable-location.tsx6export function getElementByDraggableLocation(
LOW…ration/src/droppable/drop-indicator/get-dimensions.tsx148export function getIndicatorSizeAndOffset({
LOW…-migration/src/hooks/use-drop-target-for-draggable.tsx11export function useDropTargetForDraggable({
LOW…gration/src/draggable/get-draggable-provided-style.tsx57export function getDraggableProvidedStyle({
LOW…gration/src/draggable/use-draggable-state-snapshot.tsx5export function useDraggableStateSnapshot({
LOW…tion/src/draggable/is-event-in-interactive-element.tsx60export default function isEventInInteractiveElement(draggable: Element, event: Event): boolean {
Over-Commented Block21 hits · 21 pts
SeverityFileLineSnippet
LOWpackages/documentation/examples/pieces/backlog/list.tsx21
LOWpackages/documentation/examples/pieces/backlog/list.tsx41// closestEdgeOfTarget: null,
LOWpackages/core/__tests__/unit/server-side-usage.spec.ts1// Ideally we would use the "@jest-environment node" file pragma,
LOWpackages/core/examples/post-drop-bug-fix.tsx321
LOWpackages/core/examples/post-drop-bug-fix.tsx341// },
LOWpackages/core/examples/post-drop-bug-fix.tsx361// Math.floor(pointerDown.x) === dragStart.x &&
LOWpackages/core/examples/post-drop-bug-fix.tsx381// },
LOWpackages/core/examples/post-drop-bug-fix.tsx401
LOWpackages/core/examples/post-drop-bug-fix.tsx421
LOWpackages/core/examples/post-drop-bug-fix.tsx441// 'dragleave',
LOWpackages/core/examples/post-drop-bug-fix.tsx461
LOWpackages/core/examples/post-drop-bug-fix.tsx481// console.error(message, { lastDragOver, current });
LOWpackages/core/examples/post-drop-bug-fix.tsx501// {
LOWpackages/core/examples/post-drop-bug-fix.tsx521// // console.log('done');
LOWpackages/core/src/ledger/lifecycle-manager.ts301 // "dragend" fires when on the drag source (eg a draggable element)
LOW…re/src/util/changing-window/count-events-for-safari.ts61 let state: State = getInitialState();
LOWpackages/core/src/util/media-types/html-media-type.ts1// Why we put the media types in their own files:
LOWpackages/core/src/util/media-types/url-media-type.ts1// Why we put the media types in their own files:
LOWpackages/core/src/util/media-types/text-media-type.ts1// Why we put the media types in their own files:
LOW…rc/public-utils/element/disable-native-drag-preview.ts1// In order to disable the native drag preview you can
LOW…nd-autoscroll/src/internal/window/get-window-scroll.ts1import type { Position } from '@atlaskit/pragmatic-drag-and-drop/types';
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMpackages/auto-scroll/src/shared/scheduler.ts46// can leverage the same scheduler.
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM…ntation/examples/pieces/subtasks/demo/enhancements.tsx71 * This is just for demonstration purposes.
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippet
LOWpackages/documentation/examples/data/people/index.tsx142export function getData({