@dnd-kit/dom 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ var state = require('@dnd-kit/state');
4
+ var abstract = require('@dnd-kit/abstract');
5
+
6
+ // src/plugins/debug/debug.ts
7
+ var Debug = class extends abstract.Plugin {
8
+ constructor(manager) {
9
+ super(manager);
10
+ if (process.env.NODE_ENV !== "production") {
11
+ const elements = /* @__PURE__ */ new Map();
12
+ let draggableElement = null;
13
+ this.destroy = state.effect(() => {
14
+ const { dragOperation } = manager;
15
+ dragOperation.status;
16
+ const { collisions } = manager.collisionObserver;
17
+ const draggable = dragOperation.source;
18
+ const topCollisions = collisions.slice(1, 3);
19
+ const collidingIds = topCollisions.map(({ id }) => id);
20
+ if (draggable && dragOperation.shape) {
21
+ const element = draggableElement ?? createDebugElement("dialog");
22
+ const { boundingRectangle } = dragOperation.shape.current;
23
+ if (!draggableElement) {
24
+ draggableElement = element;
25
+ const style = document.createElement("style");
26
+ style.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;
27
+ element.innerText = `${draggable.id}`;
28
+ element.setAttribute("data-dnd-kit-debug", "");
29
+ element.appendChild(style);
30
+ element.style.backgroundColor = "rgba(118, 190, 250, 0.5)";
31
+ element.style.color = "rgba(0,0,0,0.9)";
32
+ document.body.appendChild(element);
33
+ }
34
+ if (element instanceof HTMLDialogElement) {
35
+ element.showModal();
36
+ }
37
+ element.style.top = `${boundingRectangle.top}px`;
38
+ element.style.left = `${boundingRectangle.left}px`;
39
+ element.style.width = `${boundingRectangle.width}px`;
40
+ element.style.height = `${boundingRectangle.height}px`;
41
+ } else {
42
+ draggableElement?.remove();
43
+ draggableElement = null;
44
+ }
45
+ for (const [id, element] of elements) {
46
+ if (!manager.registry.droppables.has(id)) {
47
+ element.remove();
48
+ elements.delete(id);
49
+ }
50
+ }
51
+ for (const droppable of manager.registry.droppables) {
52
+ const element = elements.get(droppable.id);
53
+ if (droppable.shape) {
54
+ const { boundingRectangle } = droppable.shape;
55
+ const debugElement = element ?? createDebugElement();
56
+ if (!element) {
57
+ elements.set(droppable.id, debugElement);
58
+ document.body.appendChild(debugElement);
59
+ }
60
+ debugElement.style.backgroundColor = droppable.isDropTarget ? "rgba(13, 210, 36, 0.6)" : collidingIds.includes(droppable.id) ? "rgba(255, 193, 7, 0.5)" : "rgba(0, 0, 0, 0.1)";
61
+ debugElement.style.top = `${boundingRectangle.top}px`;
62
+ debugElement.style.left = `${boundingRectangle.left}px`;
63
+ debugElement.style.width = `${boundingRectangle.width}px`;
64
+ debugElement.style.height = `${boundingRectangle.height}px`;
65
+ debugElement.innerText = `${droppable.id}`;
66
+ } else if (element) {
67
+ element.remove();
68
+ elements.delete(droppable.id);
69
+ }
70
+ }
71
+ });
72
+ }
73
+ }
74
+ };
75
+ function createDebugElement(tagName = "div") {
76
+ const element = document.createElement(tagName);
77
+ element.style.all = "initial";
78
+ element.style.position = "fixed";
79
+ element.style.display = "flex";
80
+ element.style.alignItems = "center";
81
+ element.style.justifyContent = "center";
82
+ element.style.border = "1px solid rgba(0, 0, 0, 0.1)";
83
+ element.style.boxSizing = "border-box";
84
+ element.style.pointerEvents = "none";
85
+ element.style.zIndex = "9999";
86
+ element.style.color = "rgba(0,0,0,0.5)";
87
+ element.style.fontFamily = "sans-serif";
88
+ element.style.textShadow = "0 0 3px rgba(255,255,255,0.8)";
89
+ element.style.pointerEvents = "none";
90
+ return element;
91
+ }
92
+
93
+ exports.Debug = Debug;
94
+ //# sourceMappingURL=out.js.map
95
+ //# sourceMappingURL=debug.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","sourcesContent":["import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n if (process.env.NODE_ENV !== 'production') {\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n\n this.destroy = effect(() => {\n const {dragOperation} = manager;\n const {current: _} = dragOperation.status;\n\n const {collisions} = manager.collisionObserver;\n const draggable = dragOperation.source;\n const topCollisions = collisions.slice(1, 3);\n const collidingIds = topCollisions.map(({id}) => id);\n\n if (draggable && dragOperation.shape) {\n const element = draggableElement ?? createDebugElement('dialog');\n const {boundingRectangle} = dragOperation.shape.current;\n\n if (!draggableElement) {\n draggableElement = element;\n\n const style = document.createElement('style');\n style.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.innerText = `${draggable.id}`;\n element.setAttribute('data-dnd-kit-debug', '');\n element.appendChild(style);\n element.style.backgroundColor = 'rgba(118, 190, 250, 0.5)';\n element.style.color = 'rgba(0,0,0,0.9)';\n\n document.body.appendChild(element);\n }\n\n if (element instanceof HTMLDialogElement) {\n element.showModal();\n }\n\n element.style.top = `${boundingRectangle.top}px`;\n element.style.left = `${boundingRectangle.left}px`;\n element.style.width = `${boundingRectangle.width}px`;\n element.style.height = `${boundingRectangle.height}px`;\n } else {\n draggableElement?.remove();\n draggableElement = null;\n }\n\n for (const [id, element] of elements) {\n if (!manager.registry.droppables.has(id)) {\n element.remove();\n elements.delete(id);\n }\n }\n\n for (const droppable of manager.registry.droppables) {\n const element = elements.get(droppable.id);\n\n if (droppable.shape) {\n const {boundingRectangle} = droppable.shape;\n const debugElement = element ?? createDebugElement();\n\n if (!element) {\n elements.set(droppable.id, debugElement);\n document.body.appendChild(debugElement);\n }\n\n debugElement.style.backgroundColor = droppable.isDropTarget\n ? 'rgba(13, 210, 36, 0.6)'\n : collidingIds.includes(droppable.id)\n ? 'rgba(255, 193, 7, 0.5)'\n : 'rgba(0, 0, 0, 0.1)';\n\n debugElement.style.top = `${boundingRectangle.top}px`;\n debugElement.style.left = `${boundingRectangle.left}px`;\n debugElement.style.width = `${boundingRectangle.width}px`;\n debugElement.style.height = `${boundingRectangle.height}px`;\n debugElement.innerText = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n });\n }\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.style.all = 'initial';\n element.style.position = 'fixed';\n element.style.display = 'flex';\n element.style.alignItems = 'center';\n element.style.justifyContent = 'center';\n element.style.border = '1px solid rgba(0, 0, 0, 0.1)';\n element.style.boxSizing = 'border-box';\n element.style.pointerEvents = 'none';\n element.style.zIndex = '9999';\n element.style.color = 'rgba(0,0,0,0.5)';\n element.style.fontFamily = 'sans-serif';\n element.style.textShadow = '0 0 3px rgba(255,255,255,0.8)';\n element.style.pointerEvents = 'none';\n\n return element;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Plugin } from '@dnd-kit/abstract';
2
+ import { DragDropManager } from '@dnd-kit/dom';
3
+
4
+ declare class Debug extends Plugin<DragDropManager> {
5
+ constructor(manager: DragDropManager);
6
+ }
7
+
8
+ export { Debug };
@@ -0,0 +1,8 @@
1
+ import { Plugin } from '@dnd-kit/abstract';
2
+ import { DragDropManager } from '@dnd-kit/dom';
3
+
4
+ declare class Debug extends Plugin<DragDropManager> {
5
+ constructor(manager: DragDropManager);
6
+ }
7
+
8
+ export { Debug };
@@ -0,0 +1,93 @@
1
+ import { effect } from '@dnd-kit/state';
2
+ import { Plugin } from '@dnd-kit/abstract';
3
+
4
+ // src/plugins/debug/debug.ts
5
+ var Debug = class extends Plugin {
6
+ constructor(manager) {
7
+ super(manager);
8
+ if (process.env.NODE_ENV !== "production") {
9
+ const elements = /* @__PURE__ */ new Map();
10
+ let draggableElement = null;
11
+ this.destroy = effect(() => {
12
+ const { dragOperation } = manager;
13
+ dragOperation.status;
14
+ const { collisions } = manager.collisionObserver;
15
+ const draggable = dragOperation.source;
16
+ const topCollisions = collisions.slice(1, 3);
17
+ const collidingIds = topCollisions.map(({ id }) => id);
18
+ if (draggable && dragOperation.shape) {
19
+ const element = draggableElement ?? createDebugElement("dialog");
20
+ const { boundingRectangle } = dragOperation.shape.current;
21
+ if (!draggableElement) {
22
+ draggableElement = element;
23
+ const style = document.createElement("style");
24
+ style.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;
25
+ element.innerText = `${draggable.id}`;
26
+ element.setAttribute("data-dnd-kit-debug", "");
27
+ element.appendChild(style);
28
+ element.style.backgroundColor = "rgba(118, 190, 250, 0.5)";
29
+ element.style.color = "rgba(0,0,0,0.9)";
30
+ document.body.appendChild(element);
31
+ }
32
+ if (element instanceof HTMLDialogElement) {
33
+ element.showModal();
34
+ }
35
+ element.style.top = `${boundingRectangle.top}px`;
36
+ element.style.left = `${boundingRectangle.left}px`;
37
+ element.style.width = `${boundingRectangle.width}px`;
38
+ element.style.height = `${boundingRectangle.height}px`;
39
+ } else {
40
+ draggableElement?.remove();
41
+ draggableElement = null;
42
+ }
43
+ for (const [id, element] of elements) {
44
+ if (!manager.registry.droppables.has(id)) {
45
+ element.remove();
46
+ elements.delete(id);
47
+ }
48
+ }
49
+ for (const droppable of manager.registry.droppables) {
50
+ const element = elements.get(droppable.id);
51
+ if (droppable.shape) {
52
+ const { boundingRectangle } = droppable.shape;
53
+ const debugElement = element ?? createDebugElement();
54
+ if (!element) {
55
+ elements.set(droppable.id, debugElement);
56
+ document.body.appendChild(debugElement);
57
+ }
58
+ debugElement.style.backgroundColor = droppable.isDropTarget ? "rgba(13, 210, 36, 0.6)" : collidingIds.includes(droppable.id) ? "rgba(255, 193, 7, 0.5)" : "rgba(0, 0, 0, 0.1)";
59
+ debugElement.style.top = `${boundingRectangle.top}px`;
60
+ debugElement.style.left = `${boundingRectangle.left}px`;
61
+ debugElement.style.width = `${boundingRectangle.width}px`;
62
+ debugElement.style.height = `${boundingRectangle.height}px`;
63
+ debugElement.innerText = `${droppable.id}`;
64
+ } else if (element) {
65
+ element.remove();
66
+ elements.delete(droppable.id);
67
+ }
68
+ }
69
+ });
70
+ }
71
+ }
72
+ };
73
+ function createDebugElement(tagName = "div") {
74
+ const element = document.createElement(tagName);
75
+ element.style.all = "initial";
76
+ element.style.position = "fixed";
77
+ element.style.display = "flex";
78
+ element.style.alignItems = "center";
79
+ element.style.justifyContent = "center";
80
+ element.style.border = "1px solid rgba(0, 0, 0, 0.1)";
81
+ element.style.boxSizing = "border-box";
82
+ element.style.pointerEvents = "none";
83
+ element.style.zIndex = "9999";
84
+ element.style.color = "rgba(0,0,0,0.5)";
85
+ element.style.fontFamily = "sans-serif";
86
+ element.style.textShadow = "0 0 3px rgba(255,255,255,0.8)";
87
+ element.style.pointerEvents = "none";
88
+ return element;
89
+ }
90
+
91
+ export { Debug };
92
+ //# sourceMappingURL=out.js.map
93
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/plugins/debug/debug.ts"],"names":[],"mappings":"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","sourcesContent":["import {effect} from '@dnd-kit/state';\nimport {Plugin} from '@dnd-kit/abstract';\nimport type {UniqueIdentifier} from '@dnd-kit/abstract';\nimport type {DragDropManager} from '@dnd-kit/dom';\n\nexport class Debug extends Plugin<DragDropManager> {\n constructor(manager: DragDropManager) {\n super(manager);\n\n if (process.env.NODE_ENV !== 'production') {\n const elements = new Map<UniqueIdentifier, HTMLElement>();\n let draggableElement: HTMLElement | null = null;\n\n this.destroy = effect(() => {\n const {dragOperation} = manager;\n const {current: _} = dragOperation.status;\n\n const {collisions} = manager.collisionObserver;\n const draggable = dragOperation.source;\n const topCollisions = collisions.slice(1, 3);\n const collidingIds = topCollisions.map(({id}) => id);\n\n if (draggable && dragOperation.shape) {\n const element = draggableElement ?? createDebugElement('dialog');\n const {boundingRectangle} = dragOperation.shape.current;\n\n if (!draggableElement) {\n draggableElement = element;\n\n const style = document.createElement('style');\n style.innerText = `dialog[data-dnd-kit-debug]::backdrop {display: none;}`;\n\n element.innerText = `${draggable.id}`;\n element.setAttribute('data-dnd-kit-debug', '');\n element.appendChild(style);\n element.style.backgroundColor = 'rgba(118, 190, 250, 0.5)';\n element.style.color = 'rgba(0,0,0,0.9)';\n\n document.body.appendChild(element);\n }\n\n if (element instanceof HTMLDialogElement) {\n element.showModal();\n }\n\n element.style.top = `${boundingRectangle.top}px`;\n element.style.left = `${boundingRectangle.left}px`;\n element.style.width = `${boundingRectangle.width}px`;\n element.style.height = `${boundingRectangle.height}px`;\n } else {\n draggableElement?.remove();\n draggableElement = null;\n }\n\n for (const [id, element] of elements) {\n if (!manager.registry.droppables.has(id)) {\n element.remove();\n elements.delete(id);\n }\n }\n\n for (const droppable of manager.registry.droppables) {\n const element = elements.get(droppable.id);\n\n if (droppable.shape) {\n const {boundingRectangle} = droppable.shape;\n const debugElement = element ?? createDebugElement();\n\n if (!element) {\n elements.set(droppable.id, debugElement);\n document.body.appendChild(debugElement);\n }\n\n debugElement.style.backgroundColor = droppable.isDropTarget\n ? 'rgba(13, 210, 36, 0.6)'\n : collidingIds.includes(droppable.id)\n ? 'rgba(255, 193, 7, 0.5)'\n : 'rgba(0, 0, 0, 0.1)';\n\n debugElement.style.top = `${boundingRectangle.top}px`;\n debugElement.style.left = `${boundingRectangle.left}px`;\n debugElement.style.width = `${boundingRectangle.width}px`;\n debugElement.style.height = `${boundingRectangle.height}px`;\n debugElement.innerText = `${droppable.id}`;\n } else if (element) {\n element.remove();\n elements.delete(droppable.id);\n }\n }\n });\n }\n }\n}\n\nfunction createDebugElement(tagName = 'div') {\n const element = document.createElement(tagName);\n\n element.style.all = 'initial';\n element.style.position = 'fixed';\n element.style.display = 'flex';\n element.style.alignItems = 'center';\n element.style.justifyContent = 'center';\n element.style.border = '1px solid rgba(0, 0, 0, 0.1)';\n element.style.boxSizing = 'border-box';\n element.style.pointerEvents = 'none';\n element.style.zIndex = '9999';\n element.style.color = 'rgba(0,0,0,0.5)';\n element.style.fontFamily = 'sans-serif';\n element.style.textShadow = '0 0 3px rgba(255,255,255,0.8)';\n element.style.pointerEvents = 'none';\n\n return element;\n}\n"]}