@e280/sly 0.2.0-0 → 0.2.0-2

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.
@@ -5,21 +5,28 @@ import { cssReset } from "../../views/css-reset.js";
5
5
  export const CounterView = view(use => (initial) => {
6
6
  use.name("counter");
7
7
  use.styles(cssReset, styles);
8
+ const $seconds = use.signal(0);
8
9
  const start = use.once(() => Date.now());
9
- const seconds = use.signal(0);
10
10
  use.mount(() => repeat(async () => {
11
11
  const since = Date.now() - start;
12
- seconds.set(Math.floor(since / 1000));
12
+ $seconds.set(Math.floor(since / 1000));
13
13
  }));
14
- const count = use.signal(initial);
15
- const increment = () => count.value++;
14
+ const $count = use.signal(initial);
15
+ const increment = () => $count.value++;
16
+ const $product = use.signal
17
+ .derive(() => $count() * $seconds());
16
18
  return html `
17
19
  <slot></slot>
18
20
  <div>
19
- <span>${seconds.get()}</span>
21
+ <span>${$seconds.get()}</span>
22
+ </div>
23
+ <div>
24
+ <span>${$count.get()}</span>
25
+ </div>
26
+ <div>
27
+ <span>${$product.get()}</span>
20
28
  </div>
21
29
  <div>
22
- <span>${count.get()}</span>
23
30
  <button @click="${increment}">+</button>
24
31
  </div>
25
32
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"counter.js","sourceRoot":"","sources":["../../../s/demo/views/counter.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAA;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAe,EAAE,EAAE;IAC1D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAE7B,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAG,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAC,CAAA;IAEH,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAErC,OAAO,IAAI,CAAA;;;WAGD,OAAO,CAAC,GAAG,EAAE;;;WAGb,KAAK,CAAC,GAAG,EAAE;qBACD,SAAS;;EAE5B,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;CAUjB,CAAA"}
1
+ {"version":3,"file":"counter.js","sourceRoot":"","sources":["../../../s/demo/views/counter.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAA;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAe,EAAE,EAAE;IAC1D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACxC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAG,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;QAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAC,CAAA;IAEH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAEtC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM;SACzB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;IAErC,OAAO,IAAI,CAAA;;;WAGD,QAAQ,CAAC,GAAG,EAAE;;;WAGd,MAAM,CAAC,GAAG,EAAE;;;WAGZ,QAAQ,CAAC,GAAG,EAAE;;;qBAGJ,SAAS;;EAE5B,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;CAUjB,CAAA"}
package/x/dom/dom.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { Content } from "../views/types.js";
2
+ import { Queryable, Renderable } from "./types.js";
3
+ export declare class Dom<C extends Queryable> {
4
+ element: C;
5
+ constructor(element: C);
6
+ in<E extends HTMLElement>(elementOrSelector: E | string): Dom<E>;
7
+ require<E extends Element = HTMLElement>(selector: string): E;
8
+ maybe<E extends Element = HTMLElement>(selector: string): E | null;
9
+ all<E extends Element = HTMLElement>(selector: string): E[];
10
+ render(...content: Content[]): import("lit-html").RootPart;
11
+ }
12
+ export declare function dom(selector: string): HTMLElement;
13
+ export declare namespace dom {
14
+ export var register: typeof import("./register.js").register;
15
+ export var render: (container: Renderable, ...content: Content[]) => import("lit-html").RootPart;
16
+ var _a: <E extends HTMLElement>(elementOrSelector: string | E) => Dom<E>;
17
+ export var require: <E extends Element = HTMLElement>(selector: string) => E;
18
+ export var maybe: <E extends Element = HTMLElement>(selector: string) => E | null;
19
+ export var all: <E extends Element = HTMLElement>(selector: string) => E[];
20
+ export { _a as in };
21
+ }
package/x/dom/dom.js ADDED
@@ -0,0 +1,41 @@
1
+ import { render } from "lit";
2
+ import { register } from "./register.js";
3
+ export class Dom {
4
+ element;
5
+ constructor(element) {
6
+ this.element = element;
7
+ }
8
+ in(elementOrSelector) {
9
+ return new Dom(typeof elementOrSelector === "string"
10
+ ? this.require(elementOrSelector)
11
+ : elementOrSelector);
12
+ }
13
+ require(selector) {
14
+ const e = this.element.querySelector(selector);
15
+ if (!e)
16
+ throw new Error(`$1 ${selector} not found`);
17
+ return e;
18
+ }
19
+ maybe(selector) {
20
+ return this.element.querySelector(selector);
21
+ }
22
+ all(selector) {
23
+ return Array.from(this.element.querySelectorAll(selector));
24
+ }
25
+ render(...content) {
26
+ return render(content, this.element);
27
+ }
28
+ }
29
+ export function dom(selector) {
30
+ return new Dom(document).require(selector);
31
+ }
32
+ const doc = new Dom(document);
33
+ dom.register = register;
34
+ dom.render = (container, ...content) => {
35
+ return render(content, container);
36
+ };
37
+ dom.in = doc.in.bind(doc);
38
+ dom.require = doc.require.bind(doc);
39
+ dom.maybe = doc.maybe.bind(doc);
40
+ dom.all = doc.all.bind(doc);
41
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../s/dom/dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AAItC,MAAM,OAAO,GAAG;IACI;IAAnB,YAAmB,OAAU;QAAV,YAAO,GAAP,OAAO,CAAG;IAAG,CAAC;IAEjC,EAAE,CAAwB,iBAA6B;QACtD,OAAO,IAAI,GAAG,CACb,OAAO,iBAAiB,KAAK,QAAQ;YACpC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAI,iBAAiB,CAAC;YACpC,CAAC,CAAC,iBAAiB,CACpB,CAAA;IACF,CAAC;IAED,OAAO,CAAkC,QAAgB;QACxD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,QAAQ,YAAY,CAAC,CAAA;QACnD,OAAO,CAAC,CAAA;IACT,CAAC;IAED,KAAK,CAAkC,QAAgB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,GAAG,CAAkC,QAAgB;QACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,CAAC,GAAG,OAAkB;QAC3B,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAqB,CAAC,CAAA;IACnD,CAAC;CACD;AAED,MAAM,UAAU,GAAG,CAAC,QAAgB;IACnC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;AAC7B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;AACvB,GAAG,CAAC,MAAM,GAAG,CAAC,SAAqB,EAAE,GAAG,OAAkB,EAAE,EAAE;IAC7D,OAAO,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACnC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA"}
package/x/dom/types.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export type Renderable = HTMLElement | ShadowRoot | DocumentFragment;
2
+ export type Queryable = HTMLElement | ShadowRoot | Element | Document | DocumentFragment;
1
3
  export type HTMLElementClasses = {
2
4
  [key: string]: {
3
5
  new (...args: any[]): HTMLElement;
package/x/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./dom/dashify.js";
2
- export * from "./dom/dollar.js";
3
2
  export * from "./dom/register.js";
4
3
  export * from "./dom/types.js";
5
4
  export * from "./ops/loaders/make-loader.js";
@@ -8,6 +7,7 @@ export * from "./ops/loaders/parts/error-display.js";
8
7
  export * from "./ops/op.js";
9
8
  export * from "./ops/podium.js";
10
9
  export * from "./ops/types.js";
10
+ export * as loot from "./loot/index.js";
11
11
  export * from "./views/attributes.js";
12
12
  export * from "./views/css-reset.js";
13
13
  export * from "./views/types.js";
package/x/index.html CHANGED
@@ -111,7 +111,7 @@ body {
111
111
  }
112
112
 
113
113
  </style>
114
- <script type=module src="demo/demo.bundle.min.js?v=0fc5b4990e37"></script>
114
+ <script type=module src="demo/demo.bundle.min.js?v=4b778811d6eb"></script>
115
115
  <link rel="icon" href="assets/favicon.png?v=4dc161ed79b3"/>
116
116
 
117
117
  <meta name="theme-color" content="#95ff7b">
@@ -131,7 +131,7 @@ body {
131
131
  <img class=icon alt="" src="/assets/favicon.png"/>
132
132
  <h1>sly testing page</h1>
133
133
  <p><a href="https://github.com/e280/sly">github.com/e280/sly</a></p>
134
- <p class=lil>v0.2.0-0</p>
134
+ <p class=lil>v0.2.0-2</p>
135
135
  <demo-counter>component</demo-counter>
136
136
  <div class=demo></div>
137
137
 
package/x/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./dom/dashify.js";
2
- export * from "./dom/dollar.js";
3
2
  export * from "./dom/register.js";
4
3
  export * from "./dom/types.js";
5
4
  export * from "./ops/loaders/make-loader.js";
@@ -8,6 +7,7 @@ export * from "./ops/loaders/parts/error-display.js";
8
7
  export * from "./ops/op.js";
9
8
  export * from "./ops/podium.js";
10
9
  export * from "./ops/types.js";
10
+ export * as loot from "./loot/index.js";
11
11
  export * from "./views/attributes.js";
12
12
  export * from "./views/css-reset.js";
13
13
  export * from "./views/types.js";
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mCAAmC,CAAA;AACjD,cAAc,sCAAsC,CAAA;AAEpD,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAE9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mCAAmC,CAAA;AACjD,cAAc,sCAAsC,CAAA;AACpD,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAE9B,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAEvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,29 @@
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
+ }
@@ -0,0 +1,54 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,16 @@
1
+ /** dropzone that accepts dropped stuff like files */
2
+ export declare class Drop {
3
+ #private;
4
+ private params;
5
+ constructor(params: {
6
+ /** whether or not the dragged item is acceptable for a drop */
7
+ predicate: (event: DragEvent) => boolean;
8
+ /** fn to handle the drop of an acceptable item */
9
+ acceptDrop: (event: DragEvent) => void;
10
+ });
11
+ get indicator(): boolean;
12
+ resetIndicator: () => void;
13
+ dragover: (event: DragEvent) => void;
14
+ dragleave: (event: DragEvent) => void;
15
+ drop: (event: DragEvent) => void;
16
+ }
package/x/loot/drop.js ADDED
@@ -0,0 +1,32 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export declare function dragHasFiles(event: DragEvent): boolean;
2
+ export declare function droppedFiles(event: DragEvent): File[];
3
+ export declare function dragIsOutsideCurrentTarget(event: DragEvent): boolean;
@@ -0,0 +1,21 @@
1
+ export function dragHasFiles(event) {
2
+ return !!(event.dataTransfer &&
3
+ event.dataTransfer.types.includes("Files"));
4
+ }
5
+ export function droppedFiles(event) {
6
+ return event.dataTransfer
7
+ ? Array.from(event.dataTransfer.files)
8
+ : [];
9
+ }
10
+ export function dragIsOutsideCurrentTarget(event) {
11
+ const isCursorOutsideViewport = !event.relatedTarget || (event.clientX === 0 &&
12
+ event.clientY === 0);
13
+ if (isCursorOutsideViewport)
14
+ return true;
15
+ const rect = event.currentTarget.getBoundingClientRect();
16
+ const withinX = event.clientX >= rect.left && event.clientX <= rect.right;
17
+ const withinY = event.clientY >= rect.top && event.clientY <= rect.bottom;
18
+ const cursorOutsideCurrentTarget = !(withinX && withinY);
19
+ return cursorOutsideCurrentTarget;
20
+ }
21
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../s/loot/helpers.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC5C,OAAO,CAAC,CAAC,CACR,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC1C,CAAA;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC5C,OAAO,KAAK,CAAC,YAAY;QACxB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;QACtC,CAAC,CAAC,EAAE,CAAA;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAgB;IAC1D,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CACvD,KAAK,CAAC,OAAO,KAAK,CAAC;QACnB,KAAK,CAAC,OAAO,KAAK,CAAC,CACnB,CAAA;IAED,IAAI,uBAAuB;QAC1B,OAAO,IAAI,CAAA;IAEZ,MAAM,IAAI,GAAI,KAAK,CAAC,aAAqB,CAAC,qBAAqB,EAAE,CAAA;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAA;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAA;IACzE,MAAM,0BAA0B,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAA;IAExD,OAAO,0BAA0B,CAAA;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./drag-drop.js";
2
+ export * from "./drop.js";
3
+ export * from "./helpers.js";
@@ -0,0 +1,4 @@
1
+ export * from "./drag-drop.js";
2
+ export * from "./drop.js";
3
+ export * from "./helpers.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/loot/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
package/x/views/use.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { CSSResultGroup } from "lit";
2
+ import { SignalOptions } from "@e280/strata/signals";
2
3
  import { Op } from "../ops/op.js";
3
4
  import { AttrSpec } from "./attributes.js";
4
5
  export declare const _wrap: unique symbol;
@@ -30,5 +31,11 @@ export declare class Use {
30
31
  fn: <V>(f: () => Promise<V>) => Op<V>;
31
32
  promise<V>(p: Promise<V>): Op<V>;
32
33
  };
33
- signal<V>(value: V): import("@e280/strata/signals").Signal<V>;
34
+ signal: {
35
+ <V>(value: V, options?: Partial<SignalOptions>): import("@e280/strata/signals").SignalFn<V>;
36
+ derive<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").DeriveFn<V>;
37
+ lazy<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").LazyFn<V>;
38
+ };
39
+ derive<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").DeriveFn<V>;
40
+ lazy<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").LazyFn<V>;
34
41
  }
package/x/views/use.js CHANGED
@@ -86,8 +86,24 @@ export class Use {
86
86
  op.promise = (p) => this.once(() => Op.promise(p));
87
87
  return op;
88
88
  })();
89
- signal(value) {
90
- return this.once(() => signal(value));
89
+ signal = (() => {
90
+ const that = this;
91
+ function sig(value, options) {
92
+ return that.once(() => signal(value, options));
93
+ }
94
+ sig.derive = function derive(formula, options) {
95
+ return that.once(() => signal.derive(formula, options));
96
+ };
97
+ sig.lazy = function lazy(formula, options) {
98
+ return that.once(() => signal.lazy(formula, options));
99
+ };
100
+ return sig;
101
+ })();
102
+ derive(formula, options) {
103
+ return this.once(() => signal.derive(formula, options));
104
+ }
105
+ lazy(formula, options) {
106
+ return this.once(() => signal.lazy(formula, options));
91
107
  }
92
108
  }
93
109
  //# sourceMappingURL=use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../s/views/use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../s/views/use.ts"],"names":[],"mappings":"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"}
package/s/dom/dollar.ts DELETED
@@ -1,27 +0,0 @@
1
-
2
- import {render} from "lit"
3
- import {register} from "./register.js"
4
- import {Content} from "../views/types.js"
5
-
6
- export type Container = HTMLElement | ShadowRoot | DocumentFragment
7
- export type Queryable = HTMLElement | ShadowRoot | Element | Document | DocumentFragment
8
-
9
- export function $<E extends HTMLElement = HTMLElement>(selector: string, context: Queryable = document) {
10
- const e = context.querySelector<E>(selector)
11
- if (!e) throw new Error(`$1 ${selector} not found`)
12
- return e
13
- }
14
-
15
- function all<E extends HTMLElement = HTMLElement>(selector: string, context: Queryable = document) {
16
- return Array.from(context.querySelectorAll<E>(selector))
17
- }
18
-
19
- $.maybe = <E extends HTMLElement = HTMLElement>(selector: string, context: Queryable = document) => {
20
- return context.querySelector<E>(selector)
21
- }
22
-
23
- $.all = all
24
-
25
- $.render = (container: Container, ...content: Content[]) => render(content, container)
26
- $.register = register
27
-
package/x/dom/dollar.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import { Content } from "../views/types.js";
2
- export type Container = HTMLElement | ShadowRoot | DocumentFragment;
3
- export type Queryable = HTMLElement | ShadowRoot | Element | Document | DocumentFragment;
4
- export declare function $<E extends HTMLElement = HTMLElement>(selector: string, context?: Queryable): E;
5
- export declare namespace $ {
6
- var maybe: <E extends HTMLElement = HTMLElement>(selector: string, context?: Queryable) => E | null;
7
- var all: <E extends HTMLElement = HTMLElement>(selector: string, context?: Queryable) => E[];
8
- var render: (container: Container, ...content: Content[]) => import("lit-html").RootPart;
9
- var register: typeof import("./register.js").register;
10
- }
package/x/dom/dollar.js DELETED
@@ -1,18 +0,0 @@
1
- import { render } from "lit";
2
- import { register } from "./register.js";
3
- export function $(selector, context = document) {
4
- const e = context.querySelector(selector);
5
- if (!e)
6
- throw new Error(`$1 ${selector} not found`);
7
- return e;
8
- }
9
- function all(selector, context = document) {
10
- return Array.from(context.querySelectorAll(selector));
11
- }
12
- $.maybe = (selector, context = document) => {
13
- return context.querySelector(selector);
14
- };
15
- $.all = all;
16
- $.render = (container, ...content) => render(content, container);
17
- $.register = register;
18
- //# sourceMappingURL=dollar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dollar.js","sourceRoot":"","sources":["../../s/dom/dollar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AAMtC,MAAM,UAAU,CAAC,CAAsC,QAAgB,EAAE,UAAqB,QAAQ;IACrG,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,QAAQ,YAAY,CAAC,CAAA;IACnD,OAAO,CAAC,CAAA;AACT,CAAC;AAED,SAAS,GAAG,CAAsC,QAAgB,EAAE,UAAqB,QAAQ;IAChG,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,CAAC,CAAC,KAAK,GAAG,CAAsC,QAAgB,EAAE,UAAqB,QAAQ,EAAE,EAAE;IAClG,OAAO,OAAO,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,CAAC,CAAC,GAAG,GAAG,GAAG,CAAA;AAEX,CAAC,CAAC,MAAM,GAAG,CAAC,SAAoB,EAAE,GAAG,OAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AACtF,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAA"}