@e280/sly 0.2.0-3 → 0.2.0-5
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.
- package/README.md +217 -17
- package/package.json +1 -1
- package/s/demo/demo.bundle.ts +6 -1
- package/s/demo/views/demo.ts +1 -0
- package/s/demo/views/incredi.ts +28 -0
- package/s/dom/dom.ts +25 -13
- package/s/index.html.ts +1 -0
- package/s/index.ts +1 -0
- package/s/loot/drag-and-drops.ts +82 -0
- package/s/loot/{drop.ts → drops.ts} +8 -17
- package/s/loot/helpers.ts +3 -3
- package/s/loot/index.ts +2 -2
- package/s/views/attributes.ts +6 -6
- package/s/views/base-element.ts +84 -0
- package/s/views/use.ts +1 -1
- package/s/views/view.ts +4 -4
- package/x/demo/demo.bundle.js +5 -1
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +17 -14
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/demo/views/demo.js +1 -0
- package/x/demo/views/demo.js.map +1 -1
- package/x/demo/views/incredi.d.ts +12 -0
- package/x/demo/views/incredi.js +21 -0
- package/x/demo/views/incredi.js.map +1 -0
- package/x/dom/dom.d.ts +6 -5
- package/x/dom/dom.js +19 -11
- package/x/dom/dom.js.map +1 -1
- package/x/index.d.ts +1 -0
- package/x/index.html +3 -2
- package/x/index.html.js +1 -0
- package/x/index.html.js.map +1 -1
- package/x/index.js +1 -0
- package/x/index.js.map +1 -1
- package/x/loot/drag-and-drops.d.ts +30 -0
- package/x/loot/drag-and-drops.js +63 -0
- package/x/loot/drag-and-drops.js.map +1 -0
- package/x/loot/{drop.d.ts → drops.d.ts} +3 -5
- package/x/loot/drops.js +25 -0
- package/x/loot/drops.js.map +1 -0
- package/x/loot/helpers.d.ts +3 -3
- package/x/loot/helpers.js +3 -3
- package/x/loot/helpers.js.map +1 -1
- package/x/loot/index.d.ts +2 -2
- package/x/loot/index.js +2 -2
- package/x/loot/index.js.map +1 -1
- package/x/views/attributes.d.ts +1 -1
- package/x/views/attributes.js +5 -5
- package/x/views/attributes.js.map +1 -1
- package/x/views/base-element.d.ts +14 -0
- package/x/views/base-element.js +62 -0
- package/x/views/base-element.js.map +1 -0
- package/x/views/use.js.map +1 -1
- package/x/views/view.js +4 -4
- package/x/views/view.js.map +1 -1
- package/s/loot/drag-drop.ts +0 -76
- package/x/loot/drag-drop.d.ts +0 -29
- package/x/loot/drag-drop.js +0 -54
- package/x/loot/drag-drop.js.map +0 -1
- package/x/loot/drop.js +0 -32
- package/x/loot/drop.js.map +0 -1
package/s/loot/drag-drop.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import {signal} from "@e280/strata"
|
|
3
|
-
import {dragIsOutsideCurrentTarget} from "./helpers.js"
|
|
4
|
-
|
|
5
|
-
/** system for dragging-and-dropping things around on a webpage */
|
|
6
|
-
export class DragDrop<Grabbed, Hovering> {
|
|
7
|
-
#$grabbed = signal<Grabbed | undefined>(undefined)
|
|
8
|
-
#$hovering = signal<Hovering | undefined>(undefined)
|
|
9
|
-
|
|
10
|
-
constructor(private params: {
|
|
11
|
-
|
|
12
|
-
/** accept a dropped item that was declared within this system */
|
|
13
|
-
acceptDrop: (event: DragEvent, grabbed: Grabbed, hovering: Hovering) => void
|
|
14
|
-
|
|
15
|
-
/** accept undeclared drops from outside this system */
|
|
16
|
-
fromOutside?: {
|
|
17
|
-
predicate: (event: DragEvent, hovering: Hovering) => boolean
|
|
18
|
-
acceptDrop: (event: DragEvent, hovering: Hovering) => void
|
|
19
|
-
}
|
|
20
|
-
}) {}
|
|
21
|
-
|
|
22
|
-
/** make event listeners to attach to your dragzone(s) */
|
|
23
|
-
readonly dragzone = {
|
|
24
|
-
draggable: () => "true",
|
|
25
|
-
|
|
26
|
-
dragstart: (grabbed: Grabbed) => (_: DragEvent) => {
|
|
27
|
-
this.#$grabbed.value = grabbed
|
|
28
|
-
},
|
|
29
|
-
|
|
30
|
-
dragend: () => (_: DragEvent) => {
|
|
31
|
-
this.#$grabbed.value = undefined
|
|
32
|
-
this.#$hovering.value = undefined
|
|
33
|
-
},
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** make event listeners to attach to your dropzones(s) */
|
|
37
|
-
readonly dropzone = {
|
|
38
|
-
dragenter: () => (_: DragEvent) => {},
|
|
39
|
-
|
|
40
|
-
dragleave: () => (event: DragEvent) => {
|
|
41
|
-
if (dragIsOutsideCurrentTarget(event))
|
|
42
|
-
this.#$hovering.value = undefined
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
dragover: (hovering: Hovering) => (event: DragEvent) => {
|
|
46
|
-
event.preventDefault()
|
|
47
|
-
const {fromOutside} = this.params
|
|
48
|
-
|
|
49
|
-
if (this.#$grabbed() || (fromOutside && fromOutside.predicate(event, hovering)))
|
|
50
|
-
this.#$hovering.value = hovering
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
drop: (hovering: Hovering) => (event: DragEvent) => {
|
|
54
|
-
event.preventDefault()
|
|
55
|
-
const {acceptDrop, fromOutside} = this.params
|
|
56
|
-
|
|
57
|
-
const grabbed = this.#$grabbed()
|
|
58
|
-
this.#$grabbed.value = undefined
|
|
59
|
-
this.#$hovering.value = undefined
|
|
60
|
-
|
|
61
|
-
if (grabbed)
|
|
62
|
-
acceptDrop(event, grabbed, hovering)
|
|
63
|
-
else if (fromOutside && fromOutside.predicate(event, hovering))
|
|
64
|
-
fromOutside.acceptDrop(event, hovering)
|
|
65
|
-
},
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
get grabbed() {
|
|
69
|
-
return this.#$grabbed()
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
get hovering() {
|
|
73
|
-
return this.#$hovering()
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
package/x/loot/drag-drop.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** system for dragging-and-dropping things around on a webpage */
|
|
2
|
-
export declare class DragDrop<Grabbed, Hovering> {
|
|
3
|
-
#private;
|
|
4
|
-
private params;
|
|
5
|
-
constructor(params: {
|
|
6
|
-
/** accept a dropped item that was declared within this system */
|
|
7
|
-
acceptDrop: (event: DragEvent, grabbed: Grabbed, hovering: Hovering) => void;
|
|
8
|
-
/** accept undeclared drops from outside this system */
|
|
9
|
-
fromOutside?: {
|
|
10
|
-
predicate: (event: DragEvent, hovering: Hovering) => boolean;
|
|
11
|
-
acceptDrop: (event: DragEvent, hovering: Hovering) => void;
|
|
12
|
-
};
|
|
13
|
-
});
|
|
14
|
-
/** make event listeners to attach to your dragzone(s) */
|
|
15
|
-
readonly dragzone: {
|
|
16
|
-
draggable: () => string;
|
|
17
|
-
dragstart: (grabbed: Grabbed) => (_: DragEvent) => void;
|
|
18
|
-
dragend: () => (_: DragEvent) => void;
|
|
19
|
-
};
|
|
20
|
-
/** make event listeners to attach to your dropzones(s) */
|
|
21
|
-
readonly dropzone: {
|
|
22
|
-
dragenter: () => (_: DragEvent) => void;
|
|
23
|
-
dragleave: () => (event: DragEvent) => void;
|
|
24
|
-
dragover: (hovering: Hovering) => (event: DragEvent) => void;
|
|
25
|
-
drop: (hovering: Hovering) => (event: DragEvent) => void;
|
|
26
|
-
};
|
|
27
|
-
get grabbed(): Grabbed | undefined;
|
|
28
|
-
get hovering(): Hovering | undefined;
|
|
29
|
-
}
|
package/x/loot/drag-drop.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { signal } from "@e280/strata";
|
|
2
|
-
import { dragIsOutsideCurrentTarget } from "./helpers.js";
|
|
3
|
-
/** system for dragging-and-dropping things around on a webpage */
|
|
4
|
-
export class DragDrop {
|
|
5
|
-
params;
|
|
6
|
-
#$grabbed = signal(undefined);
|
|
7
|
-
#$hovering = signal(undefined);
|
|
8
|
-
constructor(params) {
|
|
9
|
-
this.params = params;
|
|
10
|
-
}
|
|
11
|
-
/** make event listeners to attach to your dragzone(s) */
|
|
12
|
-
dragzone = {
|
|
13
|
-
draggable: () => "true",
|
|
14
|
-
dragstart: (grabbed) => (_) => {
|
|
15
|
-
this.#$grabbed.value = grabbed;
|
|
16
|
-
},
|
|
17
|
-
dragend: () => (_) => {
|
|
18
|
-
this.#$grabbed.value = undefined;
|
|
19
|
-
this.#$hovering.value = undefined;
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
/** make event listeners to attach to your dropzones(s) */
|
|
23
|
-
dropzone = {
|
|
24
|
-
dragenter: () => (_) => { },
|
|
25
|
-
dragleave: () => (event) => {
|
|
26
|
-
if (dragIsOutsideCurrentTarget(event))
|
|
27
|
-
this.#$hovering.value = undefined;
|
|
28
|
-
},
|
|
29
|
-
dragover: (hovering) => (event) => {
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
const { fromOutside } = this.params;
|
|
32
|
-
if (this.#$grabbed() || (fromOutside && fromOutside.predicate(event, hovering)))
|
|
33
|
-
this.#$hovering.value = hovering;
|
|
34
|
-
},
|
|
35
|
-
drop: (hovering) => (event) => {
|
|
36
|
-
event.preventDefault();
|
|
37
|
-
const { acceptDrop, fromOutside } = this.params;
|
|
38
|
-
const grabbed = this.#$grabbed();
|
|
39
|
-
this.#$grabbed.value = undefined;
|
|
40
|
-
this.#$hovering.value = undefined;
|
|
41
|
-
if (grabbed)
|
|
42
|
-
acceptDrop(event, grabbed, hovering);
|
|
43
|
-
else if (fromOutside && fromOutside.predicate(event, hovering))
|
|
44
|
-
fromOutside.acceptDrop(event, hovering);
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
get grabbed() {
|
|
48
|
-
return this.#$grabbed();
|
|
49
|
-
}
|
|
50
|
-
get hovering() {
|
|
51
|
-
return this.#$hovering();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=drag-drop.js.map
|
package/x/loot/drag-drop.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drag-drop.js","sourceRoot":"","sources":["../../s/loot/drag-drop.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACnC,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAA;AAEvD,kEAAkE;AAClE,MAAM,OAAO,QAAQ;IAIA;IAHpB,SAAS,GAAG,MAAM,CAAsB,SAAS,CAAC,CAAA;IAClD,UAAU,GAAG,MAAM,CAAuB,SAAS,CAAC,CAAA;IAEpD,YAAoB,MAUnB;QAVmB,WAAM,GAAN,MAAM,CAUzB;IAAG,CAAC;IAEL,yDAAyD;IAChD,QAAQ,GAAG;QACnB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;QAEvB,SAAS,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,CAAY,EAAE,EAAE;YACjD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAA;QAC/B,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAY,EAAE,EAAE;YAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAA;YAChC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAClC,CAAC;KACD,CAAA;IAED,0DAA0D;IACjD,QAAQ,GAAG;QACnB,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAY,EAAE,EAAE,GAAE,CAAC;QAErC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,KAAgB,EAAE,EAAE;YACrC,IAAI,0BAA0B,CAAC,KAAK,CAAC;gBACpC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QACnC,CAAC;QAED,QAAQ,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,KAAgB,EAAE,EAAE;YACtD,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,MAAM,CAAA;YAEjC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9E,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAA;QAClC,CAAC;QAED,IAAI,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,KAAgB,EAAE,EAAE;YAClD,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,MAAM,EAAC,UAAU,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,MAAM,CAAA;YAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAChC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAA;YAChC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;YAEjC,IAAI,OAAO;gBACV,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;iBAChC,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;gBAC7D,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC;KACD,CAAA;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;IACxB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;IACzB,CAAC;CACD"}
|
package/x/loot/drop.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { signal } from "@e280/strata";
|
|
2
|
-
import { dragIsOutsideCurrentTarget } from "./helpers.js";
|
|
3
|
-
/** dropzone that accepts dropped stuff like files */
|
|
4
|
-
export class Drop {
|
|
5
|
-
params;
|
|
6
|
-
#$indicator = signal(false);
|
|
7
|
-
constructor(params) {
|
|
8
|
-
this.params = params;
|
|
9
|
-
}
|
|
10
|
-
get indicator() {
|
|
11
|
-
return this.#$indicator.value;
|
|
12
|
-
}
|
|
13
|
-
resetIndicator = () => {
|
|
14
|
-
this.#$indicator.value = false;
|
|
15
|
-
};
|
|
16
|
-
dragover = (event) => {
|
|
17
|
-
event.preventDefault();
|
|
18
|
-
if (this.params.predicate(event))
|
|
19
|
-
this.#$indicator.value = true;
|
|
20
|
-
};
|
|
21
|
-
dragleave = (event) => {
|
|
22
|
-
if (dragIsOutsideCurrentTarget(event))
|
|
23
|
-
this.#$indicator.value = false;
|
|
24
|
-
};
|
|
25
|
-
drop = (event) => {
|
|
26
|
-
event.preventDefault();
|
|
27
|
-
this.#$indicator.value = false;
|
|
28
|
-
if (this.params.predicate(event))
|
|
29
|
-
this.params.acceptDrop(event);
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=drop.js.map
|
package/x/loot/drop.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../s/loot/drop.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACnC,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAA;AAEvD,qDAAqD;AACrD,MAAM,OAAO,IAAI;IAGI;IAFpB,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAE3B,YAAoB,MAOnB;QAPmB,WAAM,GAAN,MAAM,CAOzB;IAAG,CAAC;IAEL,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA;IAC9B,CAAC;IAED,cAAc,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;IAC/B,CAAC,CAAA;IAED,QAAQ,GAAG,CAAC,KAAgB,EAAE,EAAE;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAA;IAC/B,CAAC,CAAA;IAED,SAAS,GAAG,CAAC,KAAgB,EAAE,EAAE;QAChC,IAAI,0BAA0B,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;IAChC,CAAC,CAAA;IAED,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAA;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;CACD"}
|