gitextract_m34m2yul/ ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── jest.config.js ├── package.json ├── packages/ │ ├── auto-scroll/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── playwright/ │ │ │ │ ├── over-element-smoke-test.spec.tsx │ │ │ │ └── unsafe-overflow-smoke-test.spec.tsx │ │ │ └── unit/ │ │ │ ├── _util.ts │ │ │ ├── over-element/ │ │ │ │ ├── allowed-axis.spec.ts │ │ │ │ ├── can-scroll.spec.ts │ │ │ │ ├── distance-dampening.spec.ts │ │ │ │ ├── hitbox.spec.ts │ │ │ │ ├── max-speed.spec.ts │ │ │ │ ├── nested-scroll-containers.spec.ts │ │ │ │ ├── registration.spec.ts │ │ │ │ ├── start.spec.ts │ │ │ │ ├── stop.spec.ts │ │ │ │ ├── time-dampening.spec.ts │ │ │ │ └── window-scrolling.spec.ts │ │ │ ├── overflow/ │ │ │ │ ├── allowed-axis.spec.ts │ │ │ │ ├── can-scroll.spec.ts │ │ │ │ ├── cross-axis-hitbox.spec.ts │ │ │ │ ├── main-axis-hitbox.spec.ts │ │ │ │ ├── nested-elements.spec.ts │ │ │ │ ├── over-element-should-not-scroll.spec.ts │ │ │ │ └── provided-hitbox-spacing-type.spec.ts │ │ │ └── shared/ │ │ │ ├── _util.ts │ │ │ ├── async-loading.spec.ts │ │ │ ├── ignore-honey-pot.spec.ts │ │ │ ├── monitor-binding.spec.ts │ │ │ └── time-dampening-handover.spec.ts │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ ├── props.mdx │ │ │ └── unsafe-overflow-scrolling.mdx │ │ ├── examples/ │ │ │ ├── axis-locking.tsx │ │ │ ├── lazy-loaded.tsx │ │ │ ├── nested-scroll.tsx │ │ │ ├── over-element.tsx │ │ │ ├── pieces/ │ │ │ │ ├── board-context.ts │ │ │ │ ├── board.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── lazy-loaded-board.tsx │ │ │ │ └── table.tsx │ │ │ ├── unsafe-overflow-box.tsx │ │ │ ├── unsafe-overflow-only.tsx │ │ │ ├── unsafe-overflow.tsx │ │ │ ├── window-scroll-with-scroll-container.tsx │ │ │ └── window-scroll.tsx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── entry-point/ │ │ │ │ ├── element.ts │ │ │ │ ├── external.ts │ │ │ │ ├── text-selection.ts │ │ │ │ └── unsafe-overflow/ │ │ │ │ ├── element.ts │ │ │ │ ├── external.ts │ │ │ │ └── text-selection.ts │ │ │ ├── index.ts │ │ │ ├── internal-types.ts │ │ │ ├── over-element/ │ │ │ │ ├── data-attributes.ts │ │ │ │ ├── get-scroll-by.ts │ │ │ │ ├── make-api.ts │ │ │ │ └── try-scroll.ts │ │ │ ├── shared/ │ │ │ │ ├── axis.ts │ │ │ │ ├── can-scroll-on-edge.ts │ │ │ │ ├── configuration.ts │ │ │ │ ├── edges.ts │ │ │ │ ├── engagement-history.ts │ │ │ │ ├── get-over-element-hitbox.ts │ │ │ │ ├── get-percentage-in-range.ts │ │ │ │ ├── get-scroll-change.ts │ │ │ │ ├── is-axis-allowed.ts │ │ │ │ ├── is-within.ts │ │ │ │ ├── scheduler.ts │ │ │ │ └── side.ts │ │ │ └── unsafe-overflow/ │ │ │ ├── get-scroll-by.ts │ │ │ ├── hitbox.ts │ │ │ ├── make-api.ts │ │ │ ├── try-overflow-scroll.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── core/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── playwright/ │ │ │ │ ├── external-files.spec.ts │ │ │ │ ├── honey-pot.spec.ts │ │ │ │ ├── iframe.spec.ts │ │ │ │ ├── scroll-just-enough-into-view.spec.ts │ │ │ │ ├── stickiness.spec.tsx │ │ │ │ └── text-selection.spec.ts │ │ │ └── unit/ │ │ │ ├── _util.ts │ │ │ ├── android/ │ │ │ │ ├── is-android.spec.ts │ │ │ │ └── not-android.spec.ts │ │ │ ├── dependency-guardrails.spec.ts │ │ │ ├── element/ │ │ │ │ ├── changes-during-a-drag.spec.ts │ │ │ │ ├── changes-during-a-drop.spec.ts │ │ │ │ ├── draggable/ │ │ │ │ │ ├── conditional-dragging.spec.ts │ │ │ │ │ ├── custom-drag-preview.spec.ts │ │ │ │ │ ├── drag-handle-guardrails.spec.ts │ │ │ │ │ ├── drag-handle.spec.ts │ │ │ │ │ ├── get-initial-data-for-external.spec.ts │ │ │ │ │ ├── get-initial-data.spec.ts │ │ │ │ │ ├── nested-draggables.spec.ts │ │ │ │ │ └── start-location.spec.ts │ │ │ │ ├── dragleave-should-not-update-input.spec.ts │ │ │ │ ├── drop-target/ │ │ │ │ │ ├── conditional-dropping.spec.ts │ │ │ │ │ ├── data-collection.spec.ts │ │ │ │ │ ├── drop-effect.spec.ts │ │ │ │ │ ├── guardrails.spec.ts │ │ │ │ │ ├── lift.spec.ts │ │ │ │ │ └── stickiness.spec.ts │ │ │ │ ├── dropping-outside-window.spec.ts │ │ │ │ ├── error-recovery.spec.ts │ │ │ │ ├── event-ordering/ │ │ │ │ │ ├── all.spec.ts │ │ │ │ │ ├── callback-data.spec.ts │ │ │ │ │ ├── drag-start-flushing.spec.ts │ │ │ │ │ ├── drag-start.spec.ts │ │ │ │ │ ├── drag-update-atomic.spec.ts │ │ │ │ │ ├── drag-update.spec.ts │ │ │ │ │ ├── drag.spec.ts │ │ │ │ │ ├── drop.spec.ts │ │ │ │ │ └── generate-drag-preview.spec.ts │ │ │ │ ├── events-and-adapter-mounting.spec.ts │ │ │ │ ├── global-event-binding.spec.ts │ │ │ │ ├── leaving-the-window.spec.ts │ │ │ │ ├── monitor/ │ │ │ │ │ ├── adding-monitors-during-events.spec.ts │ │ │ │ │ ├── call-order.spec.ts │ │ │ │ │ ├── publishing-events.spec.ts │ │ │ │ │ ├── removing-monitors-during-events.spec.ts │ │ │ │ │ └── uniqueness.spec.ts │ │ │ │ ├── previous-location-should-match-last-current.spec.ts │ │ │ │ ├── public-utils/ │ │ │ │ │ ├── block-dragging-to-iframes.spec.ts │ │ │ │ │ ├── center-under-pointer.spec.ts │ │ │ │ │ ├── format-urls-for-external.spec.ts │ │ │ │ │ ├── pointer-outside-of-preview.spec.ts │ │ │ │ │ ├── preserve-offset-on-source.spec.ts │ │ │ │ │ └── set-custom-native-drag-preview.spec.ts │ │ │ │ ├── repeated-dragging.spec.ts │ │ │ │ ├── resiliant-against-consumers-stopping-events-during-a-drag.spec.ts │ │ │ │ ├── resilient-against-multiple-cleanup-calls.spec.ts │ │ │ │ └── respecting-non-pdnd-code.spec.ts │ │ │ ├── external/ │ │ │ │ ├── adapter/ │ │ │ │ │ ├── can-monitor.spec.ts │ │ │ │ │ ├── drag-ownership/ │ │ │ │ │ │ ├── element-adapter.spec.ts │ │ │ │ │ │ └── uncontrolled-internal-adapter.spec.ts │ │ │ │ │ ├── drop-effect.spec.ts │ │ │ │ │ ├── exposing-data.spec.ts │ │ │ │ │ ├── get-string-data.spec.ts │ │ │ │ │ ├── global-event-binding.spec.ts │ │ │ │ │ ├── leaving-the-window.spec.ts │ │ │ │ │ ├── respecting-non-pdnd-code.spec.ts │ │ │ │ │ ├── starting-an-external-drag-before-registrations.spec.ts │ │ │ │ │ └── starting-an-external-drag.spec.ts │ │ │ │ ├── drop-targets/ │ │ │ │ │ └── nested.spec.ts │ │ │ │ └── utils/ │ │ │ │ ├── file/ │ │ │ │ │ ├── contains-files.spec.ts │ │ │ │ │ └── get-files.spec.ts │ │ │ │ ├── html/ │ │ │ │ │ ├── contains-html.spec.ts │ │ │ │ │ └── get-html.spec.ts │ │ │ │ ├── some.spec.ts │ │ │ │ ├── text/ │ │ │ │ │ ├── contains-text.spec.ts │ │ │ │ │ └── get-text.spec.ts │ │ │ │ └── url/ │ │ │ │ ├── contains-urls.spec.ts │ │ │ │ ├── firefox-fix.spec.ts │ │ │ │ └── url.spec.ts │ │ │ ├── honey-pot-fix/ │ │ │ │ ├── _util.ts │ │ │ │ ├── event-listeners.spec.ts │ │ │ │ ├── external-adapter-should-not-use-honey-pot.spec.ts │ │ │ │ ├── finishing.spec.ts │ │ │ │ ├── get-element-from-point-without-honey-pot.spec.ts │ │ │ │ ├── mid-drag.spec.ts │ │ │ │ ├── multiple-operations.spec.ts │ │ │ │ ├── starting.spec.ts │ │ │ │ └── text-adapter-smoke-test.spec.ts │ │ │ ├── public-utils/ │ │ │ │ ├── combine.spec.ts │ │ │ │ ├── once.spec.ts │ │ │ │ ├── prevent-unhandled.spec.ts │ │ │ │ └── reorder.spec.ts │ │ │ ├── react/ │ │ │ │ └── adding-monitors-during-events.spec.tsx │ │ │ ├── server-side-usage.spec.ts │ │ │ ├── test-environment-guardrail.spec.ts │ │ │ └── text-selection/ │ │ │ ├── adapter/ │ │ │ │ ├── drag-ownership/ │ │ │ │ │ ├── element-adapter.spec.ts │ │ │ │ │ └── external-adapter.spec.ts │ │ │ │ ├── event-ordering.spec.ts │ │ │ │ ├── global-event-binding.spec.ts │ │ │ │ ├── leaving-the-window.spec.ts │ │ │ │ ├── respecting-non-pdnd-code.spec.ts │ │ │ │ ├── starting-a-text-selection-drag-before-registrations.spec.ts │ │ │ │ └── text-target.spec.ts │ │ │ └── drop-targets/ │ │ │ └── nested.spec.ts │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ └── index/ │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── _util/ │ │ │ │ ├── constants.tsx │ │ │ │ ├── fallback.ts │ │ │ │ └── global-styles.tsx │ │ │ ├── config.jsonc │ │ │ ├── drag-preview-with-transparency.tsx │ │ │ ├── element-adapter.tsx │ │ │ ├── file.tsx │ │ │ ├── iframe.tsx │ │ │ ├── native/ │ │ │ │ ├── activity-log.tsx │ │ │ │ ├── app.tsx │ │ │ │ ├── content.tsx │ │ │ │ └── drop-target.tsx │ │ │ ├── native.tsx │ │ │ ├── post-drop-bug-fix-simple.tsx │ │ │ ├── post-drop-bug-fix.tsx │ │ │ ├── preserve-offset-on-source.tsx │ │ │ ├── scroll-just-enough-into-view.tsx │ │ │ ├── stickiness.tsx │ │ │ ├── text-selection.tsx │ │ │ └── url.tsx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── adapter/ │ │ │ │ ├── element-adapter-native-data-key.ts │ │ │ │ ├── element-adapter.ts │ │ │ │ ├── external-adapter.ts │ │ │ │ └── text-selection-adapter.ts │ │ │ ├── entry-point/ │ │ │ │ ├── cancel-unhandled.ts │ │ │ │ ├── combine.ts │ │ │ │ ├── element/ │ │ │ │ │ ├── adapter.ts │ │ │ │ │ ├── block-dragging-to-iframes.ts │ │ │ │ │ ├── center-under-pointer.ts │ │ │ │ │ ├── disable-native-drag-preview.ts │ │ │ │ │ ├── format-urls-for-external.ts │ │ │ │ │ ├── pointer-outside-of-preview.ts │ │ │ │ │ ├── preserve-offset-on-source.ts │ │ │ │ │ ├── scroll-just-enough-into-view.ts │ │ │ │ │ └── set-custom-native-drag-preview.ts │ │ │ │ ├── external/ │ │ │ │ │ ├── adapter.ts │ │ │ │ │ ├── file.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── some.ts │ │ │ │ │ ├── text.ts │ │ │ │ │ └── url.ts │ │ │ │ ├── once.ts │ │ │ │ ├── prevent-unhandled.ts │ │ │ │ ├── private/ │ │ │ │ │ └── get-element-from-point-without-honey-pot.ts │ │ │ │ ├── reorder.ts │ │ │ │ ├── text-selection/ │ │ │ │ │ └── adapter.ts │ │ │ │ └── types.ts │ │ │ ├── honey-pot-fix/ │ │ │ │ ├── get-element-from-point-without-honey-pot.ts │ │ │ │ ├── honey-pot-data-attribute.ts │ │ │ │ ├── is-honey-pot-element.ts │ │ │ │ └── make-honey-pot-fix.ts │ │ │ ├── index.ts │ │ │ ├── internal-types.ts │ │ │ ├── ledger/ │ │ │ │ ├── dispatch-consumer-event.ts │ │ │ │ ├── lifecycle-manager.ts │ │ │ │ └── usage-ledger.ts │ │ │ ├── make-adapter/ │ │ │ │ ├── make-adapter.ts │ │ │ │ ├── make-drop-target.ts │ │ │ │ └── make-monitor.ts │ │ │ ├── public-utils/ │ │ │ │ ├── combine.ts │ │ │ │ ├── custom-external-data-type-media-type-prefix.ts │ │ │ │ ├── element/ │ │ │ │ │ ├── block-dragging-to-iframes.ts │ │ │ │ │ ├── custom-native-drag-preview/ │ │ │ │ │ │ ├── center-under-pointer.ts │ │ │ │ │ │ ├── pointer-outside-of-preview.ts │ │ │ │ │ │ ├── preserve-offset-on-source.ts │ │ │ │ │ │ ├── set-custom-native-drag-preview.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── disable-native-drag-preview.ts │ │ │ │ │ ├── format-urls-for-external.ts │ │ │ │ │ └── scroll-just-enough-into-view.ts │ │ │ │ ├── external/ │ │ │ │ │ ├── file.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── native-types.ts │ │ │ │ │ ├── some.ts │ │ │ │ │ ├── text.ts │ │ │ │ │ └── url.ts │ │ │ │ ├── once.ts │ │ │ │ ├── prevent-unhandled.ts │ │ │ │ └── reorder.ts │ │ │ └── util/ │ │ │ ├── add-attribute.ts │ │ │ ├── android.ts │ │ │ ├── changing-window/ │ │ │ │ ├── count-events-for-safari.ts │ │ │ │ ├── is-entering-window.ts │ │ │ │ ├── is-from-another-window.ts │ │ │ │ └── is-leaving-window.ts │ │ │ ├── detect-broken-drag.ts │ │ │ ├── get-input.ts │ │ │ ├── is-firefox.ts │ │ │ ├── is-safari-on-ios.ts │ │ │ ├── is-safari.ts │ │ │ ├── max-z-index.ts │ │ │ └── media-types/ │ │ │ ├── html-media-type.ts │ │ │ ├── text-media-type.ts │ │ │ └── url-media-type.ts │ │ └── tsconfig.json │ ├── documentation/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── playwright/ │ │ │ ├── board.spec.ts │ │ │ └── tree.spec.ts │ │ ├── constellation/ │ │ │ ├── 00-examples/ │ │ │ │ └── index.mdx │ │ │ ├── 01-tutorial/ │ │ │ │ └── index.mdx │ │ │ ├── 05-core-package/ │ │ │ │ ├── 00-adapters/ │ │ │ │ │ ├── 00-element/ │ │ │ │ │ │ ├── about.mdx │ │ │ │ │ │ ├── drag-previews.mdx │ │ │ │ │ │ ├── other-utilities.mdx │ │ │ │ │ │ └── unregistered-elements.mdx │ │ │ │ │ ├── 01-text-selection/ │ │ │ │ │ │ └── about.mdx │ │ │ │ │ ├── 02-external/ │ │ │ │ │ │ ├── HTML.mdx │ │ │ │ │ │ ├── URLs.mdx │ │ │ │ │ │ ├── about.mdx │ │ │ │ │ │ ├── custom-media-types.mdx │ │ │ │ │ │ ├── files.mdx │ │ │ │ │ │ └── text.mdx │ │ │ │ │ └── index.mdx │ │ │ │ ├── 03-drop-targets/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── 04-monitors/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── 05-utilities/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── 06-events/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── 07-reconciliation/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── 08-UI-frameworks/ │ │ │ │ │ ├── index.mdx │ │ │ │ │ └── react.mdx │ │ │ │ ├── 09-recipes/ │ │ │ │ │ ├── 00-isolating-experiences/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── 01-typing-data/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── 02-virtualization/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── 03-deferred-loading/ │ │ │ │ │ │ ├── index.mdx │ │ │ │ │ │ └── react.mdx │ │ │ │ │ └── index.mdx │ │ │ │ ├── 11-testing/ │ │ │ │ │ ├── about.mdx │ │ │ │ │ ├── cypress.mdx │ │ │ │ │ ├── jest-and-jsdom.mdx │ │ │ │ │ ├── playwright.mdx │ │ │ │ │ ├── puppeteer.mdx │ │ │ │ │ └── webdriver.mdx │ │ │ │ ├── 12-upgrade-guides/ │ │ │ │ │ └── upgrade-guide-0.x-→-1.0.mdx │ │ │ │ └── index.mdx │ │ │ ├── 06-optional-packages/ │ │ │ │ └── index.mdx │ │ │ ├── 07-web-platform-design-constraints/ │ │ │ │ └── index.mdx │ │ │ ├── 08-design-guidelines/ │ │ │ │ └── index.mdx │ │ │ ├── 09-accessibility-guidelines/ │ │ │ │ ├── index.mdx │ │ │ │ └── pattern-table.tsx │ │ │ ├── assets/ │ │ │ │ ├── check-icon.tsx │ │ │ │ ├── cross-icon.tsx │ │ │ │ ├── question-icon.tsx │ │ │ │ ├── result-text.tsx │ │ │ │ └── warning-icon.tsx │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ ├── assets/ │ │ │ │ ├── hero.tsx │ │ │ │ └── logo.tsx │ │ │ ├── comparison.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── board-with-multi-drag.tsx │ │ │ ├── board-with-overflow-scroll.tsx │ │ │ ├── board.tsx │ │ │ ├── chess.tsx │ │ │ ├── config.jsonc │ │ │ ├── data/ │ │ │ │ ├── pages.ts │ │ │ │ ├── people/ │ │ │ │ │ ├── images/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── processed/ │ │ │ │ │ │ ├── Alexander.ts │ │ │ │ │ │ ├── Aliza.ts │ │ │ │ │ │ ├── Alvin.ts │ │ │ │ │ │ ├── Angie.ts │ │ │ │ │ │ ├── Arjun.ts │ │ │ │ │ │ ├── Blair.ts │ │ │ │ │ │ ├── Claudia.ts │ │ │ │ │ │ ├── Colin.ts │ │ │ │ │ │ ├── Ed.ts │ │ │ │ │ │ ├── Effie.ts │ │ │ │ │ │ ├── Eliot.ts │ │ │ │ │ │ ├── Fabian.ts │ │ │ │ │ │ ├── Gael.ts │ │ │ │ │ │ ├── Gerard.ts │ │ │ │ │ │ ├── Hasan.ts │ │ │ │ │ │ ├── Helena.ts │ │ │ │ │ │ ├── Ivan.ts │ │ │ │ │ │ ├── Katina.ts │ │ │ │ │ │ ├── Lara.ts │ │ │ │ │ │ ├── Leo.ts │ │ │ │ │ │ ├── Lydia.ts │ │ │ │ │ │ ├── Maribel.ts │ │ │ │ │ │ ├── Milo.ts │ │ │ │ │ │ ├── Myra.ts │ │ │ │ │ │ ├── Narul.ts │ │ │ │ │ │ ├── Norah.ts │ │ │ │ │ │ ├── Oliver.ts │ │ │ │ │ │ ├── Rahul.ts │ │ │ │ │ │ ├── Renato.ts │ │ │ │ │ │ ├── Steve.ts │ │ │ │ │ │ ├── Tanya.ts │ │ │ │ │ │ ├── Tori.ts │ │ │ │ │ │ └── Vania.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── presidents.tsx │ │ │ │ ├── quotes/ │ │ │ │ │ ├── data.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── table.tsx │ │ │ │ ├── tasks.ts │ │ │ │ ├── tree-legacy.ts │ │ │ │ └── tree.ts │ │ │ ├── deferred.tsx │ │ │ ├── drag-handle-button.tsx │ │ │ ├── drag-handles.tsx │ │ │ ├── drawing.tsx │ │ │ ├── file-drop-without-pragmatic.tsx │ │ │ ├── file.tsx │ │ │ ├── flash-prototype.tsx │ │ │ ├── grid.tsx │ │ │ ├── guidelines/ │ │ │ │ ├── action-menu-variants.tsx │ │ │ │ ├── all-drag-handle-variants.tsx │ │ │ │ ├── delayed-cursor-change.tsx │ │ │ │ ├── entire-entity-is-draggable-with-drag-handle-button.tsx │ │ │ │ ├── entire-entity-is-draggable-with-grouped-items.tsx │ │ │ │ ├── entire-entity-is-draggable.tsx │ │ │ │ ├── hover-drag-handle-outside-bounds.tsx │ │ │ │ ├── hover-drag-handle.tsx │ │ │ │ ├── only-draggable-from-drag-handle.tsx │ │ │ │ ├── shared/ │ │ │ │ │ ├── action-menu.tsx │ │ │ │ │ ├── drag-preview.tsx │ │ │ │ │ └── types.ts │ │ │ │ └── standalone-card.tsx │ │ │ ├── guidelines.tsx │ │ │ ├── icons/ │ │ │ │ ├── invision.tsx │ │ │ │ ├── portfolio.tsx │ │ │ │ ├── slack.tsx │ │ │ │ └── tempo.tsx │ │ │ ├── iframe-board.tsx │ │ │ ├── iframe-column.tsx │ │ │ ├── list-comparison.tsx │ │ │ ├── list.tsx │ │ │ ├── manual-focus-restoration.tsx │ │ │ ├── nested-draggables.tsx │ │ │ ├── nested-drop-targets.tsx │ │ │ ├── pieces/ │ │ │ │ ├── backlog/ │ │ │ │ │ ├── container.tsx │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list-item.tsx │ │ │ │ │ └── list.tsx │ │ │ │ ├── board/ │ │ │ │ │ ├── board-context.tsx │ │ │ │ │ ├── board.tsx │ │ │ │ │ ├── card.tsx │ │ │ │ │ ├── column-context.tsx │ │ │ │ │ ├── column.tsx │ │ │ │ │ └── registry.ts │ │ │ │ ├── board-with-multi-drag/ │ │ │ │ │ ├── board.tsx │ │ │ │ │ ├── card.tsx │ │ │ │ │ └── column.tsx │ │ │ │ ├── board-with-overflow-scroll/ │ │ │ │ │ ├── board.tsx │ │ │ │ │ ├── card.tsx │ │ │ │ │ └── column.tsx │ │ │ │ ├── chess/ │ │ │ │ │ ├── piece.tsx │ │ │ │ │ └── square.tsx │ │ │ │ ├── drawing/ │ │ │ │ │ ├── line-overlay.tsx │ │ │ │ │ └── shape.tsx │ │ │ │ ├── getting-started/ │ │ │ │ │ ├── chessboard-colored-drop-targets.tsx │ │ │ │ │ ├── chessboard-draggable.tsx │ │ │ │ │ ├── chessboard-drop-target.tsx │ │ │ │ │ ├── chessboard-drop-targets-can-drop.tsx │ │ │ │ │ ├── chessboard-monitor.tsx │ │ │ │ │ ├── chessboard-starter-code.tsx │ │ │ │ │ ├── draggable-piece-in-place.tsx │ │ │ │ │ ├── draggable-piece-with-data.tsx │ │ │ │ │ ├── draggable-piece-with-state.tsx │ │ │ │ │ ├── square-drop-target.tsx │ │ │ │ │ ├── square-with-can-drop.tsx │ │ │ │ │ ├── square-with-data.tsx │ │ │ │ │ └── square-with-hovering-coloring.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── use-flash-on-drop.tsx │ │ │ │ │ ├── use-prevent-scrolling-from-arrow-keys.tsx │ │ │ │ │ ├── use-sortable-field.tsx │ │ │ │ │ └── use-top-level-wiring.tsx │ │ │ │ ├── iframe-board/ │ │ │ │ │ ├── card.tsx │ │ │ │ │ ├── column.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── menu-button/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── pinned-fields/ │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── experience/ │ │ │ │ │ │ ├── asana-native-preview.tsx │ │ │ │ │ │ ├── asana.tsx │ │ │ │ │ │ ├── current-guidelines-a11y-always-visible.tsx │ │ │ │ │ │ ├── current-guidelines-a11y-keyboard-only.tsx │ │ │ │ │ │ ├── current-guidelines.tsx │ │ │ │ │ │ ├── enhanced-drag-handle.tsx │ │ │ │ │ │ ├── migration-layer.tsx │ │ │ │ │ │ ├── rdr-prototype.tsx │ │ │ │ │ │ └── react-beautiful-dnd.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ └── use-sortable-field.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── major-priority-icon.tsx │ │ │ │ │ ├── primitives/ │ │ │ │ │ │ ├── asana/ │ │ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ │ │ ├── drop-indicator.tsx │ │ │ │ │ │ │ └── field.tsx │ │ │ │ │ │ └── droppable-area-overlay.tsx │ │ │ │ │ ├── templates/ │ │ │ │ │ │ ├── asana.tsx │ │ │ │ │ │ ├── atlassian.tsx │ │ │ │ │ │ └── react-beautiful-dnd.tsx │ │ │ │ │ └── use-drag-observer.tsx │ │ │ │ ├── post-drop-flash/ │ │ │ │ │ └── list.tsx │ │ │ │ ├── rdr-board/ │ │ │ │ │ ├── board-context.tsx │ │ │ │ │ ├── board.tsx │ │ │ │ │ ├── card-stack.tsx │ │ │ │ │ ├── card.tsx │ │ │ │ │ ├── column-context.tsx │ │ │ │ │ ├── column.tsx │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── epic-lozenge.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── rdr-pinned-fields/ │ │ │ │ │ ├── container.tsx │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── drag-handle-button.tsx │ │ │ │ │ ├── field.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list-item.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── major-priority-icon.tsx │ │ │ │ ├── rdr-subtasks/ │ │ │ │ │ ├── container.tsx │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── drag-handle-button.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list-item.tsx │ │ │ │ │ ├── list.tsx │ │ │ │ │ └── subtask-icon.tsx │ │ │ │ ├── subtasks/ │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── demo/ │ │ │ │ │ │ ├── current-guidelines-a11y-always-visible.tsx │ │ │ │ │ │ ├── current-guidelines-a11y-keyboard-only.tsx │ │ │ │ │ │ ├── current-guidelines.tsx │ │ │ │ │ │ ├── enhancements.tsx │ │ │ │ │ │ ├── linear-native-preview.tsx │ │ │ │ │ │ ├── linear.tsx │ │ │ │ │ │ ├── migration-layer.tsx │ │ │ │ │ │ ├── notion.tsx │ │ │ │ │ │ └── react-beautiful-dnd.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── use-sortable-field.tsx │ │ │ │ │ │ └── use-top-level-wiring.tsx │ │ │ │ │ ├── primitives/ │ │ │ │ │ │ ├── linear/ │ │ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ │ │ ├── in-progress-icon.tsx │ │ │ │ │ │ │ ├── priority-icon.tsx │ │ │ │ │ │ │ ├── subtask-container.tsx │ │ │ │ │ │ │ └── subtask.tsx │ │ │ │ │ │ ├── major-priority-icon.tsx │ │ │ │ │ │ ├── notion/ │ │ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ │ │ ├── drop-indicator.tsx │ │ │ │ │ │ │ ├── subtask-container.tsx │ │ │ │ │ │ │ └── subtask.tsx │ │ │ │ │ │ ├── subtask-container.tsx │ │ │ │ │ │ ├── subtask-drag-handle.tsx │ │ │ │ │ │ ├── subtask-icon.tsx │ │ │ │ │ │ └── subtask.tsx │ │ │ │ │ └── templates/ │ │ │ │ │ ├── _base.tsx │ │ │ │ │ └── linear.tsx │ │ │ │ ├── table/ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ ├── menu-button.tsx │ │ │ │ │ ├── render-pieces.tsx │ │ │ │ │ ├── row.tsx │ │ │ │ │ ├── table-context.ts │ │ │ │ │ ├── table-header.tsx │ │ │ │ │ └── types.ts │ │ │ │ ├── tree/ │ │ │ │ │ ├── move-dialog.tsx │ │ │ │ │ ├── tree-context.tsx │ │ │ │ │ └── tree-item.tsx │ │ │ │ └── tree-legacy/ │ │ │ │ ├── constants.ts │ │ │ │ ├── move-dialog.tsx │ │ │ │ ├── tree-context.tsx │ │ │ │ └── tree-item.tsx │ │ │ ├── resizing.tsx │ │ │ ├── table.tsx │ │ │ ├── text-selection.tsx │ │ │ ├── tree-legacy.tsx │ │ │ ├── tree.tsx │ │ │ ├── trello-like-board-iframe.tsx │ │ │ ├── util/ │ │ │ │ ├── constants.tsx │ │ │ │ ├── fallback.ts │ │ │ │ └── global-styles.tsx │ │ │ └── virtual-list.tsx │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── codegen.ts │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── flourish/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ ├── index/ │ │ │ │ ├── about.mdx │ │ │ │ └── props.mdx │ │ │ └── trigger-post-move-flash/ │ │ │ ├── examples.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── basic.tsx │ │ │ ├── config.jsonc │ │ │ └── constellation/ │ │ │ └── props-table.tsx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.tsx │ │ │ └── trigger-post-move-flash.tsx │ │ └── tsconfig.json │ ├── hitbox/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── unit/ │ │ │ ├── _util.ts │ │ │ ├── closest-edge.spec.ts │ │ │ ├── get-reorder-destination-index.spec.ts │ │ │ ├── list-item-memoization.spec.ts │ │ │ ├── list-item.spec.ts │ │ │ ├── reorder-with-edge.spec.ts │ │ │ ├── test-helpers.spec.ts │ │ │ ├── tree-item-memoization.spec.ts │ │ │ └── tree-item.spec.ts │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ └── config.jsonc │ │ ├── package.json │ │ ├── src/ │ │ │ ├── closest-edge.ts │ │ │ ├── get-reorder-destination-index.ts │ │ │ ├── index.ts │ │ │ ├── internal/ │ │ │ │ └── memoize.ts │ │ │ ├── list-item.ts │ │ │ ├── reorder-with-edge.ts │ │ │ ├── tree-item.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── live-region/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── unit/ │ │ │ ├── announce.tsx │ │ │ ├── cleanup.tsx │ │ │ └── dom.tsx │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── 00-basic.tsx │ │ │ ├── 01-list-with-inline-buttons.tsx │ │ │ └── config.jsonc │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constants.tsx │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── react-accessibility/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── unit/ │ │ │ └── ssr.tsx │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ ├── drag-handle-button/ │ │ │ │ ├── about.mdx │ │ │ │ └── props.mdx │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── config.jsonc │ │ │ ├── drag-handle-button-small.tsx │ │ │ ├── drag-handle-button.tsx │ │ │ └── drag-handle-dropdown-menu.tsx │ │ ├── extract-react-types/ │ │ │ └── drag-handle-button.tsx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── drag-handle-button-base.tsx │ │ │ ├── drag-handle-button-small.tsx │ │ │ ├── drag-handle-button.tsx │ │ │ ├── index.tsx │ │ │ └── types.tsx │ │ └── tsconfig.json │ ├── react-beautiful-dnd-autoscroll/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── unit/ │ │ │ ├── _util.tsx │ │ │ ├── auto-scrolling.spec.ts │ │ │ ├── get-closest-scrollable.spec.ts │ │ │ ├── get-max-scroll.spec.ts │ │ │ ├── get-percentage.spec.ts │ │ │ └── get-scroll/ │ │ │ ├── dampen-value-by-time.spec.ts │ │ │ ├── get-distance-threshold.spec.ts │ │ │ ├── get-scroll-on-axis.spec.ts │ │ │ ├── get-value-from-distance.spec.ts │ │ │ ├── get-value.spec.ts │ │ │ └── index.spec.ts │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ └── props.mdx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── internal/ │ │ │ ├── can-scroll.ts │ │ │ ├── config.ts │ │ │ ├── constants.ts │ │ │ ├── get-closest-scrollable-element.ts │ │ │ ├── get-max-scroll.ts │ │ │ ├── get-percentage.ts │ │ │ ├── get-scroll/ │ │ │ │ ├── get-scroll-on-axis/ │ │ │ │ │ ├── dampen-value-by-time.ts │ │ │ │ │ ├── get-distance-thresholds.ts │ │ │ │ │ ├── get-value-from-distance.ts │ │ │ │ │ ├── get-value.ts │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── get-scrollable-scroll-change.ts │ │ │ ├── get-scrollable.ts │ │ │ ├── get-window-scroll-change.ts │ │ │ ├── position.ts │ │ │ ├── scroll.ts │ │ │ ├── types.ts │ │ │ └── window/ │ │ │ ├── get-max-window-scroll.ts │ │ │ ├── get-viewport.ts │ │ │ └── get-window-scroll.ts │ │ └── tsconfig.json │ ├── react-beautiful-dnd-migration/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── informational-vr-tests/ │ │ │ │ ├── drop-indicator.vr.tsx │ │ │ │ ├── keyboard-drag-preview.vr.tsx │ │ │ │ ├── scroll-container.vr.tsx │ │ │ │ └── smoke.vr.tsx │ │ │ ├── playwright/ │ │ │ │ └── virtual.spec.tsx │ │ │ └── unit/ │ │ │ ├── _util.tsx │ │ │ ├── _utils/ │ │ │ │ ├── board.tsx │ │ │ │ ├── setup.tsx │ │ │ │ └── with-set-element-from-point.tsx │ │ │ ├── abort.test.tsx │ │ │ ├── batch-updates-for-react-18.test.tsx │ │ │ ├── browser-focus.test.tsx │ │ │ ├── destination.test.tsx │ │ │ ├── draggable/ │ │ │ │ ├── _utils.tsx │ │ │ │ ├── find-drag-handle.test.tsx │ │ │ │ ├── keyboard.test.tsx │ │ │ │ ├── placeholder.test.tsx │ │ │ │ ├── portal.test.tsx │ │ │ │ ├── provided.test.tsx │ │ │ │ └── timing.test.tsx │ │ │ ├── droppable/ │ │ │ │ ├── auto-scroll.test.tsx │ │ │ │ ├── closest-edge.test.tsx │ │ │ │ ├── drop-indicator.test.tsx │ │ │ │ ├── gap/ │ │ │ │ │ ├── calculate-gap.test.tsx │ │ │ │ │ └── get-distance.test.tsx │ │ │ │ ├── is-drop-disabled.test.tsx │ │ │ │ └── resting.test.tsx │ │ │ ├── error-handling.test.tsx │ │ │ ├── live-region.test.tsx │ │ │ ├── multi-context.test.tsx │ │ │ ├── ported-from-react-beautiful-dnd/ │ │ │ │ ├── _utils/ │ │ │ │ │ ├── cause-runtime-error.tsx │ │ │ │ │ └── console.tsx │ │ │ │ └── unit/ │ │ │ │ ├── integration/ │ │ │ │ │ ├── _utils/ │ │ │ │ │ │ ├── app.tsx │ │ │ │ │ │ ├── controls.tsx │ │ │ │ │ │ └── helpers.tsx │ │ │ │ │ ├── body-removal-before-unmount.test.tsx │ │ │ │ │ ├── disable-on-start.test.tsx │ │ │ │ │ ├── drag-drop-context/ │ │ │ │ │ │ ├── error-handling/ │ │ │ │ │ │ │ ├── error-in-react-tree.test.tsx │ │ │ │ │ │ │ └── error-on-window.test.tsx │ │ │ │ │ │ ├── on-before-capture/ │ │ │ │ │ │ │ ├── additions.test.tsx │ │ │ │ │ │ │ └── removals.test.tsx │ │ │ │ │ │ └── unmount.test.tsx │ │ │ │ │ ├── drag-handle/ │ │ │ │ │ │ ├── keyboard-sensor/ │ │ │ │ │ │ │ ├── directional-movement.test.tsx │ │ │ │ │ │ │ ├── no-click-blocking.test.tsx │ │ │ │ │ │ │ ├── prevent-keyboard-scroll.test.tsx │ │ │ │ │ │ │ ├── prevent-standard-keys-while-dragging.test.tsx │ │ │ │ │ │ │ ├── starting-a-drag.test.tsx │ │ │ │ │ │ │ └── stopping-a-drag.test.tsx │ │ │ │ │ │ ├── mouse-sensor/ │ │ │ │ │ │ │ └── starting-a-dragging.test.tsx │ │ │ │ │ │ └── shared-behaviors/ │ │ │ │ │ │ ├── abort-on-error.test.tsx │ │ │ │ │ │ ├── cancel-while-dragging.test.tsx │ │ │ │ │ │ ├── cannot-start-when-disabled.test.tsx │ │ │ │ │ │ ├── cannot-start-when-unmounted.test.tsx │ │ │ │ │ │ ├── cleanup.test.tsx │ │ │ │ │ │ ├── contenteditable.test.tsx │ │ │ │ │ │ ├── interactive-elements.test.tsx │ │ │ │ │ │ ├── nested-handles.test.tsx │ │ │ │ │ │ ├── parent-rendering-should-not-kill-drag.test.tsx │ │ │ │ │ │ └── validate-controls.test.tsx │ │ │ │ │ ├── draggable/ │ │ │ │ │ │ ├── dragging.test.tsx │ │ │ │ │ │ ├── portal.test.tsx │ │ │ │ │ │ ├── resting.test.tsx │ │ │ │ │ │ └── validation.test.tsx │ │ │ │ │ ├── droppable/ │ │ │ │ │ │ ├── _placeholder.test.tsx │ │ │ │ │ │ └── clone.test.tsx │ │ │ │ │ ├── reorder-render-sync.test.tsx │ │ │ │ │ ├── responders-integration.test.tsx │ │ │ │ │ ├── responders-timing.test.tsx │ │ │ │ │ └── server-side-rendering/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── server-rendering.test.tsx.snap │ │ │ │ │ ├── client-hydration.test.tsx │ │ │ │ │ └── server-rendering.test.tsx │ │ │ │ ├── state/ │ │ │ │ │ └── middleware/ │ │ │ │ │ └── responders/ │ │ │ │ │ ├── abort.test.tsx │ │ │ │ │ ├── announcements.test.tsx │ │ │ │ │ ├── flushing.test.tsx │ │ │ │ │ ├── repeated-use.test.tsx │ │ │ │ │ ├── start.test.tsx │ │ │ │ │ └── update.test.tsx │ │ │ │ └── view/ │ │ │ │ ├── droppable/ │ │ │ │ │ └── inner-ref-validation.test.tsx │ │ │ │ └── style-marshal/ │ │ │ │ ├── get-styles.test.tsx │ │ │ │ └── style-marshal.test.tsx │ │ │ └── virtual.test.tsx │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── codemods/ │ │ │ ├── 0.1.0-adoption-from-rbd-12.tsx │ │ │ ├── 0.1.0-adoption-from-rbd-13.tsx │ │ │ ├── __tests__/ │ │ │ │ ├── adoption-from-rbd-12.test.tsx │ │ │ │ ├── adoption-from-rbd-13.test.tsx │ │ │ │ └── migration/ │ │ │ │ ├── migrate-12-to-13.test.tsx │ │ │ │ ├── update-imports.test.tsx │ │ │ │ ├── warn-about-react-beautiful-dnd-next.test.tsx │ │ │ │ ├── warn-about-removed-exports.test.tsx │ │ │ │ └── warn-about-unsupported-props.test.tsx │ │ │ ├── migrations/ │ │ │ │ ├── migrate-12-to-13.tsx │ │ │ │ ├── update-imports.tsx │ │ │ │ ├── warn-about-react-beautiful-dnd-next.tsx │ │ │ │ ├── warn-about-removed-exports.tsx │ │ │ │ └── warn-about-unsupported-props.tsx │ │ │ └── utils.tsx │ │ ├── constellation/ │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ ├── comparison.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── 00-vertical-list.tsx │ │ │ ├── 01-board.tsx │ │ │ ├── 02-react-window.tsx │ │ │ ├── 03-react-virtualized.tsx │ │ │ ├── 04-multi-context.tsx │ │ │ ├── 05-scroll-container.tsx │ │ │ ├── config.jsonc │ │ │ ├── data/ │ │ │ │ └── tasks.ts │ │ │ └── pieces/ │ │ │ ├── card.tsx │ │ │ ├── column.tsx │ │ │ ├── example-wrapper.tsx │ │ │ ├── global-styles.tsx │ │ │ ├── react-virtualized/ │ │ │ │ └── column.tsx │ │ │ └── react-window/ │ │ │ └── column.tsx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── dev-warning.tsx │ │ │ ├── drag-drop-context/ │ │ │ │ ├── cancel-drag.tsx │ │ │ │ ├── draggable-location.tsx │ │ │ │ ├── droppable-registry.tsx │ │ │ │ ├── error-boundary.tsx │ │ │ │ ├── get-destination.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── use-hidden-text-element.tsx │ │ │ │ │ ├── use-keyboard-controls.tsx │ │ │ │ │ ├── use-pointer-controls.tsx │ │ │ │ │ └── use-style-marshal.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── internal-context.tsx │ │ │ │ ├── lifecycle-context.tsx │ │ │ │ ├── live-region.tsx │ │ │ │ ├── rbd-invariant.tsx │ │ │ │ ├── screen-reader.tsx │ │ │ │ ├── types.tsx │ │ │ │ └── use-scheduler.tsx │ │ │ ├── draggable/ │ │ │ │ ├── constants.tsx │ │ │ │ ├── data.tsx │ │ │ │ ├── get-draggable-provided-style.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── is-event-in-interactive-element.tsx │ │ │ │ ├── placeholder.tsx │ │ │ │ ├── state.tsx │ │ │ │ └── use-draggable-state-snapshot.tsx │ │ │ ├── droppable/ │ │ │ │ ├── data.tsx │ │ │ │ ├── draggable-clone.tsx │ │ │ │ ├── drop-indicator/ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ ├── get-dimensions.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── types.tsx │ │ │ │ ├── droppable-context.tsx │ │ │ │ ├── gap/ │ │ │ │ │ ├── get-distance.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── state.tsx │ │ │ │ └── virtual-placeholder.tsx │ │ │ ├── hooks/ │ │ │ │ ├── use-captured-dimensions.tsx │ │ │ │ ├── use-cleanup-fn.tsx │ │ │ │ ├── use-drop-target-for-draggable.tsx │ │ │ │ ├── use-isomorphic-layout-effect.tsx │ │ │ │ └── use-keyboard-context.tsx │ │ │ ├── index.ts │ │ │ ├── internal-types.tsx │ │ │ ├── reset-server-context.tsx │ │ │ └── utils/ │ │ │ ├── attributes.tsx │ │ │ ├── batch-updates-for-react-16.tsx │ │ │ ├── find-all-draggables.tsx │ │ │ ├── find-closest-scroll-container.tsx │ │ │ ├── find-drag-handle.tsx │ │ │ ├── find-drop-indicator.tsx │ │ │ ├── find-element.tsx │ │ │ ├── find-placeholder.tsx │ │ │ ├── get-best-cross-axis-droppable.tsx │ │ │ ├── get-closest-positioned-element.tsx │ │ │ ├── get-element-by-draggable-location.tsx │ │ │ └── use-stable.tsx │ │ └── tsconfig.json │ ├── react-drop-indicator/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── unit/ │ │ │ └── react-safety.test.tsx │ │ ├── afm-jira/ │ │ │ └── tsconfig.json │ │ ├── afm-products/ │ │ │ └── tsconfig.json │ │ ├── constellation/ │ │ │ └── index/ │ │ │ ├── about.mdx │ │ │ └── props.mdx │ │ ├── examples/ │ │ │ ├── 00-closest-edge.tsx │ │ │ ├── 01-gap.tsx │ │ │ ├── 11-tree-item.tsx │ │ │ ├── box-playground.tsx │ │ │ ├── config.jsonc │ │ │ ├── constellation/ │ │ │ │ ├── border/ │ │ │ │ │ └── border-showcase.tsx │ │ │ │ ├── box/ │ │ │ │ │ ├── box-appearance.tsx │ │ │ │ │ ├── box-edge.tsx │ │ │ │ │ ├── box-gap.tsx │ │ │ │ │ ├── box-indent.tsx │ │ │ │ │ ├── box-overlap.tsx │ │ │ │ │ └── box-type.tsx │ │ │ │ ├── group/ │ │ │ │ │ └── group-list.tsx │ │ │ │ ├── list-item/ │ │ │ │ │ ├── list-item-horizontal.tsx │ │ │ │ │ └── list-item-vertical.tsx │ │ │ │ ├── simple-item.tsx │ │ │ │ └── tree-item.tsx │ │ │ ├── internal/ │ │ │ │ ├── card.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── list.tsx │ │ │ │ └── tree-item.tsx │ │ │ ├── line.tsx │ │ │ └── outline.tsx │ │ ├── package.json │ │ ├── src/ │ │ │ ├── border.tsx │ │ │ ├── box.tsx │ │ │ ├── group.tsx │ │ │ ├── index.ts │ │ │ ├── internal/ │ │ │ │ ├── README.md │ │ │ │ ├── border.tsx │ │ │ │ └── line.tsx │ │ │ ├── internal-types.ts │ │ │ ├── list-item.tsx │ │ │ ├── presets.tsx │ │ │ ├── tree-item.tsx │ │ │ └── types.ts │ │ └── tsconfig.json │ └── unit-testing/ │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE.md │ ├── README.md │ ├── __tests__/ │ │ └── unit/ │ │ ├── dom-rect-polyfill.spec.ts │ │ └── drag-event-polyfill/ │ │ ├── data-transfer-files.spec.ts │ │ ├── data-transfer-item-list.spec.ts │ │ └── data-transfer.spec.ts │ ├── afm-products/ │ │ └── tsconfig.json │ ├── constellation/ │ │ └── index/ │ │ ├── about.mdx │ │ └── props.mdx │ ├── package.json │ ├── src/ │ │ ├── dom-rect-polyfill.ts │ │ ├── drag-event-polyfill.ts │ │ └── index.ts │ └── tsconfig.json ├── patches/ │ └── @types+jest+29.5.12.patch └── tsconfig.json