@e280/sly 0.2.0-27 → 0.2.0-29
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 +12 -4
- package/package.json +1 -1
- package/s/base/index.ts +1 -0
- package/s/base/use.ts +8 -3
- package/s/base/utils/states.ts +43 -0
- package/s/base/utils/use-attrs.ts +23 -14
- package/x/base/index.d.ts +1 -0
- package/x/base/index.js +1 -0
- package/x/base/index.js.map +1 -1
- package/x/base/use.d.ts +3 -1
- package/x/base/use.js +7 -3
- package/x/base/use.js.map +1 -1
- package/x/base/utils/states.d.ts +11 -0
- package/x/base/utils/states.js +38 -0
- package/x/base/utils/states.js.map +1 -0
- package/x/base/utils/use-attrs.d.ts +9 -9
- package/x/base/utils/use-attrs.js +14 -15
- package/x/base/utils/use-attrs.js.map +1 -1
- package/x/demo/demo.bundle.min.js +11 -11
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/index.html +2 -2
package/README.md
CHANGED
|
@@ -293,11 +293,19 @@ import {html, css} from "lit"
|
|
|
293
293
|
keyup: (e: KeyboardEvent) => console.log("keyup", e.code),
|
|
294
294
|
})
|
|
295
295
|
```
|
|
296
|
+
- **use.states** — [internal states](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states) helper
|
|
297
|
+
```ts
|
|
298
|
+
const states = use.states()
|
|
299
|
+
states.assign("active", "cool")
|
|
300
|
+
```
|
|
301
|
+
```css
|
|
302
|
+
[view="my-view"]::state(active) { color: yellow; }
|
|
303
|
+
[view="my-view"]::state(cool) { outline: 1px solid cyan; }
|
|
304
|
+
```
|
|
296
305
|
- **use.attrs** — ergonomic typed html attribute access
|
|
297
|
-
- `use.attrs` is
|
|
298
|
-
- use.attrs.spec
|
|
306
|
+
- `use.attrs` is similar to [#dom.attrs](#dom.attrs)
|
|
299
307
|
```ts
|
|
300
|
-
const attrs = use.attrs
|
|
308
|
+
const attrs = use.attrs({
|
|
301
309
|
name: String,
|
|
302
310
|
count: Number,
|
|
303
311
|
active: Boolean,
|
|
@@ -308,7 +316,7 @@ import {html, css} from "lit"
|
|
|
308
316
|
attrs.count // 123
|
|
309
317
|
attrs.active // true
|
|
310
318
|
```
|
|
311
|
-
- use.attrs.
|
|
319
|
+
- use.attrs.{strings/numbers/booleans}
|
|
312
320
|
```ts
|
|
313
321
|
use.attrs.strings.name // "chase"
|
|
314
322
|
use.attrs.numbers.count // 123
|
package/package.json
CHANGED
package/s/base/index.ts
CHANGED
package/s/base/use.ts
CHANGED
|
@@ -5,9 +5,10 @@ import {signal, SignalOptions} from "@e280/strata/signals"
|
|
|
5
5
|
|
|
6
6
|
import {Op} from "../ops/op.js"
|
|
7
7
|
import {Mounts} from "./utils/mounts.js"
|
|
8
|
-
import {
|
|
8
|
+
import {eve, EveSpec} from "../dom/parts/eve.js"
|
|
9
9
|
import {applyStyles} from "./utils/apply-styles.js"
|
|
10
|
-
import {
|
|
10
|
+
import {useAttrs, UseAttrs} from "./utils/use-attrs.js"
|
|
11
|
+
import { States } from "./utils/states.js"
|
|
11
12
|
|
|
12
13
|
export const _wrap = Symbol()
|
|
13
14
|
export const _disconnect = Symbol()
|
|
@@ -45,7 +46,7 @@ export class Use {
|
|
|
45
46
|
public renderNow: () => void,
|
|
46
47
|
public render: () => Promise<void>,
|
|
47
48
|
) {
|
|
48
|
-
this.attrs =
|
|
49
|
+
this.attrs = useAttrs(this)
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
get renderCount() {
|
|
@@ -95,6 +96,10 @@ export class Use {
|
|
|
95
96
|
return this.mount(() => eve(this.element, spec))
|
|
96
97
|
}
|
|
97
98
|
|
|
99
|
+
states() {
|
|
100
|
+
return this.once(() => new States(this.element))
|
|
101
|
+
}
|
|
102
|
+
|
|
98
103
|
op = (() => {
|
|
99
104
|
const that = this
|
|
100
105
|
function op<V>(f: () => Promise<V>) {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
|
|
2
|
+
export class States<S extends string = string> {
|
|
3
|
+
#states: Set<S>
|
|
4
|
+
|
|
5
|
+
constructor(element: HTMLElement) {
|
|
6
|
+
this.#states = element.attachInternals().states as any
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
;[Symbol.iterator]() {
|
|
10
|
+
return this.#states.values()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
values() {
|
|
14
|
+
return this.#states.values()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
forEach(fn: (s: S) => void) {
|
|
18
|
+
this.#states.forEach(fn)
|
|
19
|
+
return this
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
add(...states: S[]) {
|
|
23
|
+
for (const s of states) this.#states.add(s)
|
|
24
|
+
return this
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
delete(...states: S[]) {
|
|
28
|
+
for (const s of states) this.#states.delete(s)
|
|
29
|
+
return this
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
clear() {
|
|
33
|
+
this.#states.clear()
|
|
34
|
+
return this
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
assign(...states: S[]) {
|
|
38
|
+
this.#states.forEach(s => this.#states.delete(s))
|
|
39
|
+
for (const s of states) this.#states.add(s)
|
|
40
|
+
return this
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
@@ -1,27 +1,36 @@
|
|
|
1
1
|
|
|
2
2
|
import {Use} from "../use.js"
|
|
3
3
|
import {dom} from "../../dom/dom.js"
|
|
4
|
-
import {
|
|
4
|
+
import {AttrSpec, AttrTypes} from "../../dom/types.js"
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
export type UseAttrs = {
|
|
7
|
+
<A extends AttrSpec>(spec: A): AttrTypes<A>
|
|
8
|
+
strings: Record<string, undefined | string>
|
|
9
|
+
numbers: Record<string, undefined | number>
|
|
10
|
+
booleans: Record<string, undefined | boolean>
|
|
11
|
+
spec<A extends AttrSpec>(spec: A): AttrTypes<A>
|
|
12
|
+
on(fn: () => void): void
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function useAttrs(use: Use): UseAttrs {
|
|
16
|
+
const attrs = dom.attrs(use.element)
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
this.#attrs = dom.attrs(use.element)
|
|
18
|
+
function attrsFn<A extends AttrSpec>(spec: A) {
|
|
19
|
+
return use.once(() => attrs.spec<A>(spec))
|
|
13
20
|
}
|
|
14
21
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
attrsFn.strings = attrs.strings
|
|
23
|
+
attrsFn.numbers = attrs.numbers
|
|
24
|
+
attrsFn.booleans = attrs.booleans
|
|
18
25
|
|
|
19
|
-
spec<A extends AttrSpec>(spec: A) {
|
|
20
|
-
return
|
|
26
|
+
attrsFn.spec = <A extends AttrSpec>(spec: A) => {
|
|
27
|
+
return use.once(() => attrs.spec<A>(spec))
|
|
21
28
|
}
|
|
22
29
|
|
|
23
|
-
on(fn: () => void) {
|
|
24
|
-
return
|
|
30
|
+
attrsFn.on = (fn: () => void) => {
|
|
31
|
+
return use.mount(() => attrs.on(fn))
|
|
25
32
|
}
|
|
33
|
+
|
|
34
|
+
return attrsFn
|
|
26
35
|
}
|
|
27
36
|
|
package/x/base/index.d.ts
CHANGED
package/x/base/index.js
CHANGED
package/x/base/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/base/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/base/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA"}
|
package/x/base/use.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { CSSResultGroup } from "lit";
|
|
2
2
|
import { SignalOptions } from "@e280/strata/signals";
|
|
3
3
|
import { Op } from "../ops/op.js";
|
|
4
|
-
import { UseAttrs } from "./utils/use-attrs.js";
|
|
5
4
|
import { EveSpec } from "../dom/parts/eve.js";
|
|
5
|
+
import { UseAttrs } from "./utils/use-attrs.js";
|
|
6
|
+
import { States } from "./utils/states.js";
|
|
6
7
|
export declare const _wrap: unique symbol;
|
|
7
8
|
export declare const _disconnect: unique symbol;
|
|
8
9
|
export declare const _reconnect: unique symbol;
|
|
@@ -28,6 +29,7 @@ export declare class Use {
|
|
|
28
29
|
life<V>(fn: () => [result: V, dispose: () => void]): V;
|
|
29
30
|
wake<V>(fn: () => V): V;
|
|
30
31
|
events(spec: EveSpec): void;
|
|
32
|
+
states(): States<string>;
|
|
31
33
|
op: {
|
|
32
34
|
<V>(f: () => Promise<V>): Op<V>;
|
|
33
35
|
load: <V>(f: () => Promise<V>) => Op<V>;
|
package/x/base/use.js
CHANGED
|
@@ -2,9 +2,10 @@ import { defer, MapG } from "@e280/stz";
|
|
|
2
2
|
import { signal } from "@e280/strata/signals";
|
|
3
3
|
import { Op } from "../ops/op.js";
|
|
4
4
|
import { Mounts } from "./utils/mounts.js";
|
|
5
|
-
import { UseAttrs } from "./utils/use-attrs.js";
|
|
6
|
-
import { applyStyles } from "./utils/apply-styles.js";
|
|
7
5
|
import { eve } from "../dom/parts/eve.js";
|
|
6
|
+
import { applyStyles } from "./utils/apply-styles.js";
|
|
7
|
+
import { useAttrs } from "./utils/use-attrs.js";
|
|
8
|
+
import { States } from "./utils/states.js";
|
|
8
9
|
export const _wrap = Symbol();
|
|
9
10
|
export const _disconnect = Symbol();
|
|
10
11
|
export const _reconnect = Symbol();
|
|
@@ -40,7 +41,7 @@ export class Use {
|
|
|
40
41
|
this.shadow = shadow;
|
|
41
42
|
this.renderNow = renderNow;
|
|
42
43
|
this.render = render;
|
|
43
|
-
this.attrs =
|
|
44
|
+
this.attrs = useAttrs(this);
|
|
44
45
|
}
|
|
45
46
|
get renderCount() {
|
|
46
47
|
return this.#runs;
|
|
@@ -79,6 +80,9 @@ export class Use {
|
|
|
79
80
|
events(spec) {
|
|
80
81
|
return this.mount(() => eve(this.element, spec));
|
|
81
82
|
}
|
|
83
|
+
states() {
|
|
84
|
+
return this.once(() => new States(this.element));
|
|
85
|
+
}
|
|
82
86
|
op = (() => {
|
|
83
87
|
const that = this;
|
|
84
88
|
function op(f) {
|
package/x/base/use.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../s/base/use.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AACrC,OAAO,EAAC,MAAM,EAAgB,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAA;AAC/B,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../s/base/use.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class States<S extends string = string> {
|
|
2
|
+
#private;
|
|
3
|
+
constructor(element: HTMLElement);
|
|
4
|
+
[Symbol.iterator](): SetIterator<S>;
|
|
5
|
+
values(): SetIterator<S>;
|
|
6
|
+
forEach(fn: (s: S) => void): this;
|
|
7
|
+
add(...states: S[]): this;
|
|
8
|
+
delete(...states: S[]): this;
|
|
9
|
+
clear(): this;
|
|
10
|
+
assign(...states: S[]): this;
|
|
11
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class States {
|
|
2
|
+
#states;
|
|
3
|
+
constructor(element) {
|
|
4
|
+
this.#states = element.attachInternals().states;
|
|
5
|
+
}
|
|
6
|
+
;
|
|
7
|
+
[Symbol.iterator]() {
|
|
8
|
+
return this.#states.values();
|
|
9
|
+
}
|
|
10
|
+
values() {
|
|
11
|
+
return this.#states.values();
|
|
12
|
+
}
|
|
13
|
+
forEach(fn) {
|
|
14
|
+
this.#states.forEach(fn);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
add(...states) {
|
|
18
|
+
for (const s of states)
|
|
19
|
+
this.#states.add(s);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
delete(...states) {
|
|
23
|
+
for (const s of states)
|
|
24
|
+
this.#states.delete(s);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
clear() {
|
|
28
|
+
this.#states.clear();
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
assign(...states) {
|
|
32
|
+
this.#states.forEach(s => this.#states.delete(s));
|
|
33
|
+
for (const s of states)
|
|
34
|
+
this.#states.add(s);
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=states.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"states.js","sourceRoot":"","sources":["../../../s/base/utils/states.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,MAAM;IAClB,OAAO,CAAQ;IAEf,YAAY,OAAoB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,MAAa,CAAA;IACvD,CAAC;IAED,CAAC;IAAA,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;IAC7B,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;IAC7B,CAAC;IAED,OAAO,CAAC,EAAkB;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,GAAG,MAAW;QACjB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,MAAW;QACpB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,MAAW;QACpB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Use } from "../use.js";
|
|
2
|
-
import { AttrSpec } from "../../dom/types.js";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
spec<A extends AttrSpec>(spec: A): import("../../dom/types.js").AttrTypes<A>;
|
|
2
|
+
import { AttrSpec, AttrTypes } from "../../dom/types.js";
|
|
3
|
+
export type UseAttrs = {
|
|
4
|
+
<A extends AttrSpec>(spec: A): AttrTypes<A>;
|
|
5
|
+
strings: Record<string, undefined | string>;
|
|
6
|
+
numbers: Record<string, undefined | number>;
|
|
7
|
+
booleans: Record<string, undefined | boolean>;
|
|
8
|
+
spec<A extends AttrSpec>(spec: A): AttrTypes<A>;
|
|
10
9
|
on(fn: () => void): void;
|
|
11
|
-
}
|
|
10
|
+
};
|
|
11
|
+
export declare function useAttrs(use: Use): UseAttrs;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { dom } from "../../dom/dom.js";
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
this.#use = use;
|
|
7
|
-
this.#attrs = dom.attrs(use.element);
|
|
8
|
-
}
|
|
9
|
-
get strings() { return this.#attrs.strings; }
|
|
10
|
-
get numbers() { return this.#attrs.numbers; }
|
|
11
|
-
get booleans() { return this.#attrs.booleans; }
|
|
12
|
-
spec(spec) {
|
|
13
|
-
return this.#use.once(() => this.#attrs.spec(spec));
|
|
14
|
-
}
|
|
15
|
-
on(fn) {
|
|
16
|
-
return this.#use.mount(() => this.#attrs.on(fn));
|
|
2
|
+
export function useAttrs(use) {
|
|
3
|
+
const attrs = dom.attrs(use.element);
|
|
4
|
+
function attrsFn(spec) {
|
|
5
|
+
return use.once(() => attrs.spec(spec));
|
|
17
6
|
}
|
|
7
|
+
attrsFn.strings = attrs.strings;
|
|
8
|
+
attrsFn.numbers = attrs.numbers;
|
|
9
|
+
attrsFn.booleans = attrs.booleans;
|
|
10
|
+
attrsFn.spec = (spec) => {
|
|
11
|
+
return use.once(() => attrs.spec(spec));
|
|
12
|
+
};
|
|
13
|
+
attrsFn.on = (fn) => {
|
|
14
|
+
return use.mount(() => attrs.on(fn));
|
|
15
|
+
};
|
|
16
|
+
return attrsFn;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=use-attrs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-attrs.js","sourceRoot":"","sources":["../../../s/base/utils/use-attrs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"use-attrs.js","sourceRoot":"","sources":["../../../s/base/utils/use-attrs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAYpC,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEpC,SAAS,OAAO,CAAqB,IAAO;QAC3C,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAI,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC/B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAEjC,OAAO,CAAC,IAAI,GAAG,CAAqB,IAAO,EAAE,EAAE;QAC9C,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAI,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAA;IAED,OAAO,CAAC,EAAE,GAAG,CAAC,EAAc,EAAE,EAAE;QAC/B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AACf,CAAC"}
|