@e280/sly 0.2.2 โ†’ 0.2.4

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 CHANGED
@@ -4,9 +4,8 @@
4
4
  # ๐Ÿฆ sly
5
5
  > *mischievous shadow views*
6
6
 
7
- [@e280](https://e280.org/)'s new [lit](https://lit.dev/)-based frontend webdev library. *(sly replaces its predecessor, [slate](https://github.com/benevolent-games/slate))*
7
+ [@e280](https://e280.org/)'s new [lit](https://lit.dev/)-based frontend webdev library.
8
8
 
9
- - **โœจ[shiny](https://shiny.e280.org/)โœจ** โ€” our wip component library https://shiny.e280.org/
10
9
  - ๐Ÿ‹ [**#views**](#views) โ€” shadow-dom'd, hooks-based, componentizable
11
10
  - ๐Ÿชต [**#base-element**](#base-element) โ€” for a more classical experience
12
11
  - ๐Ÿช„ [**#dom**](#dom) โ€” the "it's not jquery" multitool
@@ -14,7 +13,8 @@
14
13
  - โณ [**#loaders**](#loaders) โ€” animated loading spinners for rendering ops
15
14
  - ๐Ÿ’… [**#spa**](#spa) โ€” hash routing for your spa-day
16
15
  - ๐Ÿช™ [**#loot**](#loot) โ€” drag-and-drop facilities
17
- - ๐Ÿงช testing page โ€” https://sly.e280.org/
16
+ - ๐Ÿงช https://sly.e280.org/ โ€” our testing page
17
+ - **โœจ[shiny](https://shiny.e280.org/)โœจ** โ€” our wip component library
18
18
 
19
19
 
20
20
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/sly",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "web shadow views",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,11 +24,11 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@e280/strata": "^0.2.4",
27
- "@e280/stz": "^0.2.14"
27
+ "@e280/stz": "^0.2.15"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@e280/science": "^0.1.4",
31
- "@e280/scute": "^0.1.1",
31
+ "@e280/scute": "^0.1.2",
32
32
  "http-server": "^14.1.1",
33
33
  "npm-run-all": "^4.1.5",
34
34
  "typescript": "^5.9.3"
package/s/base/index.ts CHANGED
@@ -2,5 +2,6 @@
2
2
  export * from "./utils/states.js"
3
3
  export * from "./css-reset.js"
4
4
  export * from "./element.js"
5
+ export * from "./types.js"
5
6
  export * from "./use.js"
6
7
 
@@ -0,0 +1,5 @@
1
+
2
+ export type Life<V> = [value: V, dispose: () => void]
3
+ export const asLife = <V>(life: Life<V>) => life
4
+ export const asLifeFn = <V>(fn: () => Life<V>) => fn
5
+
package/s/base/use.ts CHANGED
@@ -49,57 +49,68 @@ export class Use {
49
49
  this.attrs = useAttrs(this)
50
50
  }
51
51
 
52
+ /** number of times this view has been rendered */
52
53
  get renderCount() {
53
54
  return this.#runs
54
55
  }
55
56
 
57
+ /** promise that resolves when this view next renders */
56
58
  get rendered() {
57
59
  return this.#rendered.promise
58
60
  }
59
61
 
62
+ /** set the 'name' html attribute on the host element */
60
63
  name(name: string) {
61
64
  this.once(() => this.element.setAttribute("view", name))
62
65
  }
63
66
 
67
+ /** attach stylesheets into the view's shadow dom */
64
68
  styles(...styles: CSSResultGroup[]) {
65
69
  this.once(() => applyStyles(this.shadow, styles))
66
70
  }
67
71
 
68
- /** alias for 'styles' */
72
+ /** attach stylesheets into the view's shadow dom (alias for 'styles') */
69
73
  css(...styles: CSSResultGroup[]) {
70
74
  return this.styles(...styles)
71
75
  }
72
76
 
77
+ /** run a fn at initialization, and return a value */
73
78
  once<V>(fn: () => V) {
74
79
  return this.#values.guarantee(this.#position++, fn) as V
75
80
  }
76
81
 
82
+ /** setup a mount/unmount lifecycle (your mount fn returns an unmount fn) */
77
83
  mount(fn: () => () => void) {
78
84
  return this.once(() => this.#mounts.mount(fn))
79
85
  }
80
86
 
81
- life<V>(fn: () => [result: V, dispose: () => void]) {
82
- let r: V | undefined
87
+ /** run fn each time mounted, return a value */
88
+ wake<V>(fn: () => V) {
89
+ return this.life(() => [fn(), () => {}])
90
+ }
91
+
92
+ /** mount/unmount lifecycle, but also return a value */
93
+ life<V>(fn: () => [value: V, dispose: () => void]) {
94
+ const box = this.once(() => ({value: undefined as V}))
83
95
  this.mount(() => {
84
- const [result, dispose] = fn()
85
- r = result
96
+ const [value, dispose] = fn()
97
+ box.value = value
86
98
  return dispose
87
99
  })
88
- return r as V
89
- }
90
-
91
- wake<V>(fn: () => V) {
92
- return this.life(() => [fn(), () => {}])
100
+ return box.value
93
101
  }
94
102
 
103
+ /** attach event listeners on mount (they get cleaned up on unmount) */
95
104
  events(spec: EveSpec) {
96
105
  return this.mount(() => eve(this.element, spec))
97
106
  }
98
107
 
108
+ /** helper for setting up internal states (its a dom api, look up `ElementInternals: states`) */
99
109
  states<S extends string = string>() {
100
110
  return this.once(() => new States<S>(this.element))
101
111
  }
102
112
 
113
+ /** setup typed html attribute access */
103
114
  op = (() => {
104
115
  const that = this
105
116
  function op<V>(f: () => Promise<V>) {
@@ -110,6 +121,7 @@ export class Use {
110
121
  return op
111
122
  })()
112
123
 
124
+ /** use a strata signal */
113
125
  signal = (() => {
114
126
  const that = this
115
127
  function sig<V>(value: V, options?: Partial<SignalOptions>) {
@@ -124,10 +136,12 @@ export class Use {
124
136
  return sig
125
137
  })()
126
138
 
139
+ /** use a derived strata signal */
127
140
  derived<V>(formula: () => V, options?: Partial<SignalOptions>) {
128
141
  return this.once(() => signal.derived<V>(formula, options))
129
142
  }
130
143
 
144
+ /** use a lazy strata signal */
131
145
  lazy<V>(formula: () => V, options?: Partial<SignalOptions>) {
132
146
  return this.once(() => signal.lazy<V>(formula, options))
133
147
  }
package/s/dom/dom.ts CHANGED
@@ -15,7 +15,7 @@ export function dom<E extends Element>(selector: string, container: Queryable =
15
15
  return queryRequire<E>(selector, container)
16
16
  }
17
17
 
18
- dom.in = <E extends HTMLElement>(selectorOrElement: string | E, container: Queryable = document) => {
18
+ dom.in = <E extends Queryable>(selectorOrElement: string | E, container: Queryable = document) => {
19
19
  return new Dom(container).in(selectorOrElement)
20
20
  }
21
21
 
@@ -11,7 +11,7 @@ export class Dom<C extends Queryable> {
11
11
 
12
12
  constructor(public element: C) {}
13
13
 
14
- in<E extends HTMLElement>(selectorOrElement: string | E) {
14
+ in<E extends Queryable>(selectorOrElement: string | E) {
15
15
  return new Dom<E>(
16
16
  (typeof selectorOrElement === "string")
17
17
  ? queryRequire(selectorOrElement, this.element) as E
package/s/loot/helpers.ts CHANGED
@@ -13,19 +13,9 @@ export function files(event: DragEvent) {
13
13
  }
14
14
 
15
15
  export function outsideCurrentTarget(event: DragEvent) {
16
- const isCursorOutsideViewport = !event.relatedTarget || (
17
- event.clientX === 0 &&
18
- event.clientY === 0
19
- )
20
-
21
- if (isCursorOutsideViewport)
22
- return true
23
-
24
- const rect = (event.currentTarget as any).getBoundingClientRect()
25
- const withinX = event.clientX >= rect.left && event.clientX <= rect.right
26
- const withinY = event.clientY >= rect.top && event.clientY <= rect.bottom
27
- const cursorOutsideCurrentTarget = !(withinX && withinY)
28
-
29
- return cursorOutsideCurrentTarget
16
+ const currentTarget = event.currentTarget as HTMLElement
17
+ const relatedTarget = event.relatedTarget as HTMLElement
18
+ const nulled = !currentTarget || !relatedTarget
19
+ return nulled || !currentTarget.contains(relatedTarget)
30
20
  }
31
21
 
package/x/base/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./utils/states.js";
2
2
  export * from "./css-reset.js";
3
3
  export * from "./element.js";
4
+ export * from "./types.js";
4
5
  export * from "./use.js";
package/x/base/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./utils/states.js";
2
2
  export * from "./css-reset.js";
3
3
  export * from "./element.js";
4
+ export * from "./types.js";
4
5
  export * from "./use.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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"}
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,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
@@ -0,0 +1,3 @@
1
+ export type Life<V> = [value: V, dispose: () => void];
2
+ export declare const asLife: <V>(life: Life<V>) => Life<V>;
3
+ export declare const asLifeFn: <V>(fn: () => Life<V>) => () => Life<V>;
@@ -0,0 +1,3 @@
1
+ export const asLife = (life) => life;
2
+ export const asLifeFn = (fn) => fn;
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../s/base/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,IAAa,EAAE,EAAE,CAAC,IAAI,CAAA;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,EAAiB,EAAE,EAAE,CAAC,EAAE,CAAA"}
package/x/base/use.d.ts CHANGED
@@ -18,28 +18,42 @@ export declare class Use {
18
18
  [_disconnect](): void;
19
19
  [_reconnect](): void;
20
20
  constructor(element: HTMLElement, shadow: ShadowRoot, renderNow: () => void, render: () => Promise<void>);
21
+ /** number of times this view has been rendered */
21
22
  get renderCount(): number;
23
+ /** promise that resolves when this view next renders */
22
24
  get rendered(): Promise<void>;
25
+ /** set the 'name' html attribute on the host element */
23
26
  name(name: string): void;
27
+ /** attach stylesheets into the view's shadow dom */
24
28
  styles(...styles: CSSResultGroup[]): void;
25
- /** alias for 'styles' */
29
+ /** attach stylesheets into the view's shadow dom (alias for 'styles') */
26
30
  css(...styles: CSSResultGroup[]): void;
31
+ /** run a fn at initialization, and return a value */
27
32
  once<V>(fn: () => V): V;
33
+ /** setup a mount/unmount lifecycle (your mount fn returns an unmount fn) */
28
34
  mount(fn: () => () => void): void;
29
- life<V>(fn: () => [result: V, dispose: () => void]): V;
35
+ /** run fn each time mounted, return a value */
30
36
  wake<V>(fn: () => V): V;
37
+ /** mount/unmount lifecycle, but also return a value */
38
+ life<V>(fn: () => [value: V, dispose: () => void]): V;
39
+ /** attach event listeners on mount (they get cleaned up on unmount) */
31
40
  events(spec: EveSpec): void;
41
+ /** helper for setting up internal states (its a dom api, look up `ElementInternals: states`) */
32
42
  states<S extends string = string>(): States<S>;
43
+ /** setup typed html attribute access */
33
44
  op: {
34
45
  <V>(f: () => Promise<V>): Op<V>;
35
46
  load: <V>(f: () => Promise<V>) => Op<V>;
36
47
  promise<V>(p: Promise<V>): Op<V>;
37
48
  };
49
+ /** use a strata signal */
38
50
  signal: {
39
51
  <V>(value: V, options?: Partial<SignalOptions>): import("@e280/strata/signals").SignalFn<V>;
40
52
  derived<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").DerivedFn<V>;
41
53
  lazy<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").LazyFn<V>;
42
54
  };
55
+ /** use a derived strata signal */
43
56
  derived<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").DerivedFn<V>;
57
+ /** use a lazy strata signal */
44
58
  lazy<V>(formula: () => V, options?: Partial<SignalOptions>): import("@e280/strata/signals").LazyFn<V>;
45
59
  }
package/x/base/use.js CHANGED
@@ -43,46 +43,57 @@ export class Use {
43
43
  this.render = render;
44
44
  this.attrs = useAttrs(this);
45
45
  }
46
+ /** number of times this view has been rendered */
46
47
  get renderCount() {
47
48
  return this.#runs;
48
49
  }
50
+ /** promise that resolves when this view next renders */
49
51
  get rendered() {
50
52
  return this.#rendered.promise;
51
53
  }
54
+ /** set the 'name' html attribute on the host element */
52
55
  name(name) {
53
56
  this.once(() => this.element.setAttribute("view", name));
54
57
  }
58
+ /** attach stylesheets into the view's shadow dom */
55
59
  styles(...styles) {
56
60
  this.once(() => applyStyles(this.shadow, styles));
57
61
  }
58
- /** alias for 'styles' */
62
+ /** attach stylesheets into the view's shadow dom (alias for 'styles') */
59
63
  css(...styles) {
60
64
  return this.styles(...styles);
61
65
  }
66
+ /** run a fn at initialization, and return a value */
62
67
  once(fn) {
63
68
  return this.#values.guarantee(this.#position++, fn);
64
69
  }
70
+ /** setup a mount/unmount lifecycle (your mount fn returns an unmount fn) */
65
71
  mount(fn) {
66
72
  return this.once(() => this.#mounts.mount(fn));
67
73
  }
74
+ /** run fn each time mounted, return a value */
75
+ wake(fn) {
76
+ return this.life(() => [fn(), () => { }]);
77
+ }
78
+ /** mount/unmount lifecycle, but also return a value */
68
79
  life(fn) {
69
- let r;
80
+ const box = this.once(() => ({ value: undefined }));
70
81
  this.mount(() => {
71
- const [result, dispose] = fn();
72
- r = result;
82
+ const [value, dispose] = fn();
83
+ box.value = value;
73
84
  return dispose;
74
85
  });
75
- return r;
76
- }
77
- wake(fn) {
78
- return this.life(() => [fn(), () => { }]);
86
+ return box.value;
79
87
  }
88
+ /** attach event listeners on mount (they get cleaned up on unmount) */
80
89
  events(spec) {
81
90
  return this.mount(() => eve(this.element, spec));
82
91
  }
92
+ /** helper for setting up internal states (its a dom api, look up `ElementInternals: states`) */
83
93
  states() {
84
94
  return this.once(() => new States(this.element));
85
95
  }
96
+ /** setup typed html attribute access */
86
97
  op = (() => {
87
98
  const that = this;
88
99
  function op(f) {
@@ -92,6 +103,7 @@ export class Use {
92
103
  op.promise = (p) => this.once(() => Op.promise(p));
93
104
  return op;
94
105
  })();
106
+ /** use a strata signal */
95
107
  signal = (() => {
96
108
  const that = this;
97
109
  function sig(value, options) {
@@ -105,9 +117,11 @@ export class Use {
105
117
  };
106
118
  return sig;
107
119
  })();
120
+ /** use a derived strata signal */
108
121
  derived(formula, options) {
109
122
  return this.once(() => signal.derived(formula, options));
110
123
  }
124
+ /** use a lazy strata signal */
111
125
  lazy(formula, options) {
112
126
  return this.once(() => signal.lazy(formula, options));
113
127
  }
package/x/base/use.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../s/base/use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../s/base/use.ts"],"names":[],"mappings":"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"}