@e280/sly 0.2.5 → 0.3.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.
Files changed (263) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +303 -614
  3. package/package.json +6 -8
  4. package/s/_archive/README.md +1221 -0
  5. package/s/_archive/view/index.ts +7 -0
  6. package/s/_archive/view/types.ts +45 -0
  7. package/s/demo/demo.bundle.ts +2 -9
  8. package/s/demo/views/counter-light.ts +13 -0
  9. package/s/demo/views/counter-shadow.ts +16 -0
  10. package/s/demo/views/demo.ts +21 -20
  11. package/s/demo/views/loaders.ts +7 -7
  12. package/s/dom/dom.ts +1 -1
  13. package/s/index.html.ts +30 -33
  14. package/s/index.ts +0 -2
  15. package/s/loaders/make.ts +1 -1
  16. package/s/loaders/parts/ascii-anim.ts +6 -8
  17. package/s/loaders/parts/error-display.ts +9 -9
  18. package/s/tests.test.ts +1 -4
  19. package/s/view/common/css-reset.ts +19 -0
  20. package/s/view/hooks/plumbing/hooks.ts +28 -0
  21. package/s/view/hooks/plumbing/hookscope.ts +12 -0
  22. package/s/view/hooks/use-css.ts +14 -0
  23. package/s/view/hooks/use-cx.ts +41 -0
  24. package/s/view/hooks/use-life.ts +17 -0
  25. package/s/view/hooks/use-mount.ts +30 -0
  26. package/s/view/hooks/use-name.ts +10 -0
  27. package/s/view/hooks/use-once.ts +9 -0
  28. package/s/view/hooks/use-op.ts +12 -0
  29. package/s/view/hooks/use-ref.ts +11 -0
  30. package/s/view/hooks/use-signal.ts +16 -0
  31. package/s/view/hooks/use-state.ts +20 -0
  32. package/s/view/hooks/use-wake.ts +8 -0
  33. package/s/view/index.ts +17 -4
  34. package/s/view/light.ts +50 -0
  35. package/s/view/parts/apply-attrs.ts +22 -0
  36. package/s/view/parts/apply-styles.ts +21 -0
  37. package/s/view/parts/cx.ts +26 -0
  38. package/s/view/parts/reactivity.ts +22 -0
  39. package/s/view/parts/sly-shadow.ts +8 -0
  40. package/s/view/shadow.ts +93 -0
  41. package/s/view/types.ts +15 -34
  42. package/x/demo/demo.bundle.js +2 -8
  43. package/x/demo/demo.bundle.js.map +1 -1
  44. package/x/demo/demo.bundle.min.js +45 -63
  45. package/x/demo/demo.bundle.min.js.map +4 -4
  46. package/x/demo/views/counter-light.d.ts +1 -0
  47. package/x/demo/views/counter-light.js +10 -0
  48. package/x/demo/views/counter-light.js.map +1 -0
  49. package/x/demo/views/counter-shadow.d.ts +1 -0
  50. package/x/demo/views/counter-shadow.js +12 -0
  51. package/x/demo/views/counter-shadow.js.map +1 -0
  52. package/x/demo/views/demo.d.ts +1 -4
  53. package/x/demo/views/demo.js +21 -20
  54. package/x/demo/views/demo.js.map +1 -1
  55. package/x/demo/views/loaders.d.ts +1 -1
  56. package/x/demo/views/loaders.js +7 -7
  57. package/x/demo/views/loaders.js.map +1 -1
  58. package/x/dom/dom.d.ts +1 -1
  59. package/x/dom/dom.js.map +1 -1
  60. package/x/index.d.ts +0 -2
  61. package/x/index.html +30 -140
  62. package/x/index.html.js +31 -31
  63. package/x/index.html.js.map +1 -1
  64. package/x/index.js +0 -2
  65. package/x/index.js.map +1 -1
  66. package/x/loaders/make.d.ts +1 -1
  67. package/x/loaders/parts/ascii-anim.d.ts +1 -1
  68. package/x/loaders/parts/ascii-anim.js +6 -7
  69. package/x/loaders/parts/ascii-anim.js.map +1 -1
  70. package/x/loaders/parts/error-display.d.ts +1 -1
  71. package/x/loaders/parts/error-display.js +9 -9
  72. package/x/loaders/parts/error-display.js.map +1 -1
  73. package/x/tests.test.js +1 -4
  74. package/x/tests.test.js.map +1 -1
  75. package/x/view/common/css-reset.js +17 -0
  76. package/x/view/common/css-reset.js.map +1 -0
  77. package/x/view/hooks/plumbing/hooks.d.ts +11 -0
  78. package/x/view/hooks/plumbing/hooks.js +26 -0
  79. package/x/view/hooks/plumbing/hooks.js.map +1 -0
  80. package/x/view/hooks/plumbing/hookscope.d.ts +10 -0
  81. package/x/view/hooks/plumbing/hookscope.js +12 -0
  82. package/x/view/hooks/plumbing/hookscope.js.map +1 -0
  83. package/x/view/hooks/use-css.d.ts +4 -0
  84. package/x/view/hooks/use-css.js +10 -0
  85. package/x/view/hooks/use-css.js.map +1 -0
  86. package/x/view/hooks/use-cx.d.ts +10 -0
  87. package/x/view/hooks/use-cx.js +33 -0
  88. package/x/view/hooks/use-cx.js.map +1 -0
  89. package/x/view/hooks/use-life.d.ts +2 -0
  90. package/x/view/hooks/use-life.js +13 -0
  91. package/x/view/hooks/use-life.js.map +1 -0
  92. package/x/{base/utils/mounts.d.ts → view/hooks/use-mount.d.ts} +1 -0
  93. package/x/{base/utils/mounts.js → view/hooks/use-mount.js} +7 -1
  94. package/x/view/hooks/use-mount.js.map +1 -0
  95. package/x/view/hooks/use-name.d.ts +2 -0
  96. package/x/view/hooks/use-name.js +8 -0
  97. package/x/view/hooks/use-name.js.map +1 -0
  98. package/x/view/hooks/use-once.d.ts +2 -0
  99. package/x/view/hooks/use-once.js +7 -0
  100. package/x/view/hooks/use-once.js.map +1 -0
  101. package/x/view/hooks/use-op.d.ts +3 -0
  102. package/x/view/hooks/use-op.js +9 -0
  103. package/x/view/hooks/use-op.js.map +1 -0
  104. package/x/view/hooks/use-ref.d.ts +5 -0
  105. package/x/view/hooks/use-ref.js +11 -0
  106. package/x/view/hooks/use-ref.js.map +1 -0
  107. package/x/view/hooks/use-signal.d.ts +3 -0
  108. package/x/view/hooks/use-signal.js +12 -0
  109. package/x/view/hooks/use-signal.js.map +1 -0
  110. package/x/view/hooks/use-state.d.ts +1 -0
  111. package/x/view/hooks/use-state.js +17 -0
  112. package/x/view/hooks/use-state.js.map +1 -0
  113. package/x/view/hooks/use-wake.d.ts +2 -0
  114. package/x/view/hooks/use-wake.js +6 -0
  115. package/x/view/hooks/use-wake.js.map +1 -0
  116. package/x/view/index.d.ts +15 -4
  117. package/x/view/index.js +15 -4
  118. package/x/view/index.js.map +1 -1
  119. package/x/view/light.d.ts +2 -0
  120. package/x/view/light.js +41 -0
  121. package/x/view/light.js.map +1 -0
  122. package/x/view/parts/apply-attrs.d.ts +2 -0
  123. package/x/view/parts/apply-attrs.js +22 -0
  124. package/x/view/parts/apply-attrs.js.map +1 -0
  125. package/x/{base/utils → view/parts}/apply-styles.js.map +1 -1
  126. package/x/view/parts/cx.d.ts +12 -0
  127. package/x/view/parts/cx.js +24 -0
  128. package/x/view/parts/cx.js.map +1 -0
  129. package/x/view/parts/reactivity.d.ts +5 -0
  130. package/x/view/parts/reactivity.js +18 -0
  131. package/x/view/parts/reactivity.js.map +1 -0
  132. package/x/view/parts/sly-shadow.d.ts +3 -0
  133. package/x/view/parts/sly-shadow.js +7 -0
  134. package/x/view/parts/sly-shadow.js.map +1 -0
  135. package/x/view/shadow.d.ts +5 -0
  136. package/x/view/shadow.js +72 -0
  137. package/x/view/shadow.js.map +1 -0
  138. package/x/view/types.d.ts +13 -21
  139. package/s/demo/views/counter.ts +0 -50
  140. package/s/demo/views/fastcount.ts +0 -29
  141. package/s/demo/views/mounting.ts +0 -36
  142. package/x/base/css-reset.js +0 -19
  143. package/x/base/css-reset.js.map +0 -1
  144. package/x/base/element.d.ts +0 -19
  145. package/x/base/element.js +0 -55
  146. package/x/base/element.js.map +0 -1
  147. package/x/base/index.d.ts +0 -5
  148. package/x/base/index.js +0 -6
  149. package/x/base/index.js.map +0 -1
  150. package/x/base/types.d.ts +0 -3
  151. package/x/base/types.js +0 -3
  152. package/x/base/types.js.map +0 -1
  153. package/x/base/use.d.ts +0 -59
  154. package/x/base/use.js +0 -129
  155. package/x/base/use.js.map +0 -1
  156. package/x/base/utils/attr-watcher.d.ts +0 -8
  157. package/x/base/utils/attr-watcher.js +0 -20
  158. package/x/base/utils/attr-watcher.js.map +0 -1
  159. package/x/base/utils/mounts.js.map +0 -1
  160. package/x/base/utils/reactor.d.ts +0 -5
  161. package/x/base/utils/reactor.js +0 -25
  162. package/x/base/utils/reactor.js.map +0 -1
  163. package/x/base/utils/states.d.ts +0 -13
  164. package/x/base/utils/states.js +0 -41
  165. package/x/base/utils/states.js.map +0 -1
  166. package/x/base/utils/use-attrs.d.ts +0 -11
  167. package/x/base/utils/use-attrs.js +0 -18
  168. package/x/base/utils/use-attrs.js.map +0 -1
  169. package/x/demo/views/counter.d.ts +0 -375
  170. package/x/demo/views/counter.js +0 -42
  171. package/x/demo/views/counter.js.map +0 -1
  172. package/x/demo/views/fastcount.d.ts +0 -12
  173. package/x/demo/views/fastcount.js +0 -21
  174. package/x/demo/views/fastcount.js.map +0 -1
  175. package/x/demo/views/mounting.d.ts +0 -3
  176. package/x/demo/views/mounting.js +0 -28
  177. package/x/demo/views/mounting.js.map +0 -1
  178. package/x/spa/index.barrel.d.ts +0 -4
  179. package/x/spa/index.barrel.js +0 -3
  180. package/x/spa/index.barrel.js.map +0 -1
  181. package/x/spa/index.d.ts +0 -2
  182. package/x/spa/index.js +0 -2
  183. package/x/spa/index.js.map +0 -1
  184. package/x/spa/plumbing/braces.d.ts +0 -12
  185. package/x/spa/plumbing/braces.js +0 -55
  186. package/x/spa/plumbing/braces.js.map +0 -1
  187. package/x/spa/plumbing/primitives.d.ts +0 -22
  188. package/x/spa/plumbing/primitives.js +0 -65
  189. package/x/spa/plumbing/primitives.js.map +0 -1
  190. package/x/spa/plumbing/router-core.d.ts +0 -13
  191. package/x/spa/plumbing/router-core.js +0 -38
  192. package/x/spa/plumbing/router-core.js.map +0 -1
  193. package/x/spa/plumbing/types.d.ts +0 -35
  194. package/x/spa/plumbing/types.js +0 -2
  195. package/x/spa/plumbing/types.js.map +0 -1
  196. package/x/spa/router.d.ts +0 -13
  197. package/x/spa/router.js +0 -39
  198. package/x/spa/router.js.map +0 -1
  199. package/x/spa/spa.test.d.ts +0 -15
  200. package/x/spa/spa.test.js +0 -78
  201. package/x/spa/spa.test.js.map +0 -1
  202. package/x/view/utils/contextualize.d.ts +0 -13
  203. package/x/view/utils/contextualize.js +0 -18
  204. package/x/view/utils/contextualize.js.map +0 -1
  205. package/x/view/utils/make-component.d.ts +0 -5
  206. package/x/view/utils/make-component.js +0 -17
  207. package/x/view/utils/make-component.js.map +0 -1
  208. package/x/view/utils/make-view.d.ts +0 -2
  209. package/x/view/utils/make-view.js +0 -32
  210. package/x/view/utils/make-view.js.map +0 -1
  211. package/x/view/utils/parts/capsule.d.ts +0 -12
  212. package/x/view/utils/parts/capsule.js +0 -56
  213. package/x/view/utils/parts/capsule.js.map +0 -1
  214. package/x/view/utils/parts/chain.d.ts +0 -13
  215. package/x/view/utils/parts/chain.js +0 -26
  216. package/x/view/utils/parts/chain.js.map +0 -1
  217. package/x/view/utils/parts/context.d.ts +0 -9
  218. package/x/view/utils/parts/context.js +0 -10
  219. package/x/view/utils/parts/context.js.map +0 -1
  220. package/x/view/utils/parts/directive.d.ts +0 -5
  221. package/x/view/utils/parts/directive.js +0 -20
  222. package/x/view/utils/parts/directive.js.map +0 -1
  223. package/x/view/utils/parts/naked.d.ts +0 -18
  224. package/x/view/utils/parts/naked.js +0 -57
  225. package/x/view/utils/parts/naked.js.map +0 -1
  226. package/x/view/utils/parts/sly-view.d.ts +0 -6
  227. package/x/view/utils/parts/sly-view.js +0 -16
  228. package/x/view/utils/parts/sly-view.js.map +0 -1
  229. package/x/view/view.d.ts +0 -11
  230. package/x/view/view.js +0 -15
  231. package/x/view/view.js.map +0 -1
  232. /package/s/{base → _archive/base}/css-reset.ts +0 -0
  233. /package/s/{base → _archive/base}/element.ts +0 -0
  234. /package/s/{base → _archive/base}/index.ts +0 -0
  235. /package/s/{base → _archive/base}/types.ts +0 -0
  236. /package/s/{base → _archive/base}/use.ts +0 -0
  237. /package/s/{base → _archive/base}/utils/apply-styles.ts +0 -0
  238. /package/s/{base → _archive/base}/utils/attr-watcher.ts +0 -0
  239. /package/s/{base → _archive/base}/utils/mounts.ts +0 -0
  240. /package/s/{base → _archive/base}/utils/reactor.ts +0 -0
  241. /package/s/{base → _archive/base}/utils/states.ts +0 -0
  242. /package/s/{base → _archive/base}/utils/use-attrs.ts +0 -0
  243. /package/s/{spa → _archive/spa}/index.barrel.ts +0 -0
  244. /package/s/{spa → _archive/spa}/index.ts +0 -0
  245. /package/s/{spa → _archive/spa}/plumbing/braces.ts +0 -0
  246. /package/s/{spa → _archive/spa}/plumbing/primitives.ts +0 -0
  247. /package/s/{spa → _archive/spa}/plumbing/router-core.ts +0 -0
  248. /package/s/{spa → _archive/spa}/plumbing/types.ts +0 -0
  249. /package/s/{spa → _archive/spa}/router.ts +0 -0
  250. /package/s/{spa → _archive/spa}/spa.test.ts +0 -0
  251. /package/s/{view → _archive/view}/utils/contextualize.ts +0 -0
  252. /package/s/{view → _archive/view}/utils/make-component.ts +0 -0
  253. /package/s/{view → _archive/view}/utils/make-view.ts +0 -0
  254. /package/s/{view → _archive/view}/utils/parts/capsule.ts +0 -0
  255. /package/s/{view → _archive/view}/utils/parts/chain.ts +0 -0
  256. /package/s/{view → _archive/view}/utils/parts/context.ts +0 -0
  257. /package/s/{view → _archive/view}/utils/parts/directive.ts +0 -0
  258. /package/s/{view → _archive/view}/utils/parts/naked.ts +0 -0
  259. /package/s/{view → _archive/view}/utils/parts/sly-view.ts +0 -0
  260. /package/s/{view → _archive/view}/view.ts +0 -0
  261. /package/x/{base → view/common}/css-reset.d.ts +0 -0
  262. /package/x/{base/utils → view/parts}/apply-styles.d.ts +0 -0
  263. /package/x/{base/utils → view/parts}/apply-styles.js +0 -0
@@ -0,0 +1 @@
1
+ export declare const CounterLight: import("../../view/types.js").View<[start: number]>;
@@ -0,0 +1,10 @@
1
+ import { html } from "lit";
2
+ import { light, useSignal } from "../../view/index.js";
3
+ export const CounterLight = light((start) => {
4
+ const $count = useSignal(start);
5
+ const increment = () => $count.value++;
6
+ return html `
7
+ <button @click="${increment}">${$count()}</button>
8
+ `;
9
+ });
10
+ //# sourceMappingURL=counter-light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"counter-light.js","sourceRoot":"","sources":["../../../s/demo/views/counter-light.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,KAAa,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAEtC,OAAO,IAAI,CAAA;oBACQ,SAAS,KAAK,MAAM,EAAE;EACxC,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const CounterShadow: import("../../view/types.js").ShadowView<[start: number]>;
@@ -0,0 +1,12 @@
1
+ import { css, html } from "lit";
2
+ import { shadow, useName, useCss, useSignal } from "../../view/index.js";
3
+ export const CounterShadow = shadow((start) => {
4
+ useName("counter-shadow");
5
+ useCss(css `:host{display:inline-block} button{color:cyan}`);
6
+ const $count = useSignal(start);
7
+ const increment = () => $count.value++;
8
+ return html `
9
+ <button @click="${increment}">${$count()}</button>
10
+ `;
11
+ });
12
+ //# sourceMappingURL=counter-shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"counter-shadow.js","sourceRoot":"","sources":["../../../s/demo/views/counter-shadow.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAEtE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;IACrD,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzB,MAAM,CAAC,GAAG,CAAA,gDAAgD,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAEtC,OAAO,IAAI,CAAA;oBACQ,SAAS,KAAK,MAAM,EAAE;EACxC,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -1,4 +1 @@
1
- declare const DemoComponent_base: import("../../index.js").ComponentClass<typeof import("../../index.js").BaseElement, []>;
2
- export declare class DemoComponent extends DemoComponent_base {
3
- }
4
- export {};
1
+ export declare const Demo: import("../../view/types.js").ShadowView<[]>;
@@ -1,30 +1,31 @@
1
1
  import { css, html } from "lit";
2
- import { view } from "../../view/view.js";
3
- import { CounterView } from "./counter.js";
4
2
  import { LoadersView } from "./loaders.js";
5
- import { MountingTest } from "./mounting.js";
6
- import { cssReset } from "../../base/css-reset.js";
7
- export class DemoComponent extends (view.component(use => {
8
- use.name("demo");
9
- use.styles(cssReset, styles);
3
+ import { CounterLight } from "./counter-light.js";
4
+ import { CounterShadow } from "./counter-shadow.js";
5
+ import { cssReset, shadow, useName, useStyles } from "../../view/index.js";
6
+ export const Demo = shadow(() => {
7
+ useName("demo");
8
+ useStyles(cssReset, styles);
10
9
  return html `
11
- ${MountingTest()}
10
+ <p>light ${CounterLight(123)}</p>
12
11
 
13
- ${CounterView
14
- .props(768, 3)
15
- .children("view")
16
- .render()}
12
+ <p>
13
+ shadow ${CounterShadow.with({
14
+ props: [234],
15
+ attrs: { "data-lol": 555 },
16
+ children: html `<p>hello</p>`,
17
+ })}
18
+ </p>
17
19
 
18
20
  ${LoadersView()}
19
21
  `;
20
- })) {
21
- }
22
+ });
22
23
  const styles = css `
23
- :host {
24
- display: flex;
25
- flex-direction: column;
26
- align-items: center;
27
- gap: 1em;
28
- }
24
+ :host {
25
+ display: flex;
26
+ flex-direction: column;
27
+ align-items: center;
28
+ gap: 1em;
29
+ }
29
30
  `;
30
31
  //# sourceMappingURL=demo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../../s/demo/views/demo.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAE7B,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAEhD,MAAM,OAAO,aAAc,SAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;IACxD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5B,OAAO,IAAI,CAAA;IACR,YAAY,EAAE;;IAEd,WAAW;SACX,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;SACb,QAAQ,CAAC,MAAM,CAAC;SAChB,MAAM,EAAE;;IAER,WAAW,EAAE;EACf,CAAA;AACF,CAAC,CAAC,CAAC;CAAG;AAEN,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;CAOjB,CAAA"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../../s/demo/views/demo.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAExE,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE;IAC/B,OAAO,CAAC,MAAM,CAAC,CAAA;IACf,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE3B,OAAO,IAAI,CAAA;aACC,YAAY,CAAC,GAAG,CAAC;;;YAGlB,aAAa,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,KAAK,EAAE,EAAC,UAAU,EAAE,GAAG,EAAC;QACxB,QAAQ,EAAE,IAAI,CAAA,cAAc;KAC5B,CAAC;;;IAGD,WAAW,EAAE;EACf,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;CAOjB,CAAA"}
@@ -1 +1 @@
1
- export declare const LoadersView: import("../../index.js").View<[]>;
1
+ export declare const LoadersView: import("../../view/types.js").ShadowView<[]>;
@@ -1,13 +1,13 @@
1
1
  import { css, html } from "lit";
2
2
  import { Op } from "../../ops/op.js";
3
- import { view } from "../../view/view.js";
3
+ import { shadow } from "../../view/shadow.js";
4
4
  import { loaders } from "../../loaders/index.js";
5
- import { cssReset } from "../../base/css-reset.js";
6
- export const LoadersView = view(use => () => {
7
- use.name("loaders");
8
- use.styles(cssReset, styles);
9
- const op = use.once(() => Op.loading());
10
- const library = use.once(() => Object.entries(loaders.anims).map(([key, anim]) => ({
5
+ import { cssReset, useName, useOnce, useStyles } from "../../view/index.js";
6
+ export const LoadersView = shadow(() => {
7
+ useName("loaders");
8
+ useStyles(cssReset, styles);
9
+ const op = useOnce(() => Op.loading());
10
+ const library = useOnce(() => Object.entries(loaders.anims).map(([key, anim]) => ({
11
11
  key,
12
12
  loader: loaders.make(anim)
13
13
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../../s/demo/views/loaders.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAA;AAClC,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAEhD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;IAC3C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAEvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAC7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,GAAG;QACH,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,CAAC,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,IAAI,CAAA;oBACvB,GAAG;WACZ,GAAG;WACH,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;;EAE/B,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCjB,CAAA"}
1
+ {"version":3,"file":"loaders.js","sourceRoot":"","sources":["../../../s/demo/views/loaders.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAA;AAClC,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAEzE,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE;IACtC,OAAO,CAAC,SAAS,CAAC,CAAA;IAClB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE3B,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,GAAG;QACH,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,CAAC,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,IAAI,CAAA;oBACvB,GAAG;WACZ,GAAG;WACH,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;;EAE/B,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCjB,CAAA"}
package/x/dom/dom.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Content } from "../view/types.js";
3
3
  import { Dom } from "./parts/dom-scope.js";
4
4
  import { Queryable, Renderable } from "./types.js";
5
5
  import { queryAll, queryMaybe, queryRequire } from "./parts/queries.js";
6
- export declare function dom<E extends Element>(selector: string, container?: Queryable): E;
6
+ export declare function dom<E extends HTMLElement>(selector: string, container?: Queryable): E;
7
7
  export declare namespace dom {
8
8
  var _a: <E extends Queryable>(selectorOrElement: string | E, container?: Queryable) => Dom<E>;
9
9
  export var require: typeof queryRequire;
package/x/dom/dom.js.map CHANGED
@@ -1 +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,EAAE,EAAC,MAAM,eAAe,CAAA;AAChC,OAAO,EAAC,EAAE,EAAC,MAAM,eAAe,CAAA;AAChC,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAA;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAEtC,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAErE,MAAM,UAAU,GAAG,CAAoB,QAAgB,EAAE,YAAuB,QAAQ;IACvF,OAAO,YAAY,CAAI,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,GAAG,CAAC,EAAE,GAAG,CAAsB,iBAA6B,EAAE,YAAuB,QAAQ,EAAE,EAAE;IAChG,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,GAAG,CAAC,OAAO,GAAG,YAAY,CAAA;AAC1B,GAAG,CAAC,KAAK,GAAG,UAAU,CAAA;AACtB,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAA;AAElB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;AACX,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;AACjB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;AACX,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;AAChB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;AACjB,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"}
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,EAAE,EAAC,MAAM,eAAe,CAAA;AAChC,OAAO,EAAC,EAAE,EAAC,MAAM,eAAe,CAAA;AAChC,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAA;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAEtC,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAErE,MAAM,UAAU,GAAG,CAAwB,QAAgB,EAAE,YAAuB,QAAQ;IAC3F,OAAO,YAAY,CAAI,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,GAAG,CAAC,EAAE,GAAG,CAAsB,iBAA6B,EAAE,YAAuB,QAAQ,EAAE,EAAE;IAChG,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,GAAG,CAAC,OAAO,GAAG,YAAY,CAAA;AAC1B,GAAG,CAAC,KAAK,GAAG,UAAU,CAAA;AACtB,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAA;AAElB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;AACX,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;AACjB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;AACX,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;AAChB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;AACjB,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"}
package/x/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- export * from "./base/index.js";
2
1
  export * from "./dom/index.js";
3
2
  export * from "./loaders/index.js";
4
3
  export * from "./loot/index.js";
5
4
  export * from "./ops/index.js";
6
- export * from "./spa/index.js";
7
5
  export * from "./view/index.js";
package/x/index.html CHANGED
@@ -1,141 +1,31 @@
1
1
  <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8"/>
5
- <meta name="viewport" content="width=device-width,initial-scale=1"/>
6
- <meta name="darkreader-lock"/>
7
- <title>sly</title>
8
- <style>
9
- @layer vars, core, page;
10
-
11
- @layer vars {
12
- :root {
13
- --prime: #1eff00;
14
- --accent: #387d42;
15
- --pill: #1276391a;
16
- --bg: #0e2316;
17
- --link: cyan;
18
- }
19
- }
20
-
21
- @layer core {
22
- * {
23
- margin: 0;
24
- padding: 0;
25
- box-sizing: border-box;
26
-
27
- scrollbar-width: thin;
28
- scrollbar-color: #444 transparent;
29
- }
30
-
31
- ::selection {
32
- color: white;
33
- background-color: #f70;
34
- }
35
-
36
- ::-webkit-scrollbar { width: 8px; }
37
- ::-webkit-scrollbar-track { background: transparent; }
38
- ::-webkit-scrollbar-thumb { background: #444; border-radius: 1em; }
39
- ::-webkit-scrollbar-thumb:hover { background: #666; }
40
-
41
- a {
42
- color: var(--link);
43
- text-decoration: none;
44
-
45
- &:visited {
46
- color: color-mix(in srgb, purple, var(--link) 70%);
47
- }
48
-
49
- &:hover {
50
- color: color-mix(in srgb, white, var(--link) 90%);
51
- text-decoration: underline;
52
- }
53
-
54
- &:active {
55
- color: color-mix(in srgb, white, var(--link) 50%);
56
- }
57
- }
58
- }
59
-
60
- @layer page {
61
- :root {
62
- height: 100%;
63
- font-size: 21px;
64
- font-family: sans-serif;
65
-
66
- color-scheme: dark;
67
- scrollbar-gutter: stable;
68
-
69
- color: color-mix(in lch, var(--prime), #fff8 50%);
70
- background: radial-gradient(
71
- circle,
72
- var(--bg),
73
- color-mix(in lch, var(--bg), black 80%)
74
- );
75
- }
76
-
77
- body {
78
- width: 100%;
79
- min-height: 100%;
80
- max-width: 32em;
81
- margin: auto;
82
- padding: 1em;
83
- padding-bottom: 6em;
84
-
85
- display: flex;
86
- flex-direction: column;
87
- align-items: center;
88
- gap: 1em;
89
- }
90
-
91
- .icon {
92
- display: block;
93
- width: 100%;
94
- max-width: 24em;
95
- max-height: 30vh;
96
- object-fit: contain;
97
- }
98
-
99
- .lil {
100
- opacity: 0.6;
101
- font-size: 0.8em;
102
- }
103
-
104
- .demo {
105
- width: 100%;
106
- }
107
-
108
- :not(:defined) {
109
- display: none;
110
- }
111
- }
112
-
113
- </style>
114
- <script type=module src="demo/demo.bundle.min.js?v=500b10b90ec1"></script>
115
- <link rel="icon" href="assets/favicon.png?v=4dc161ed79b3"/>
116
-
117
- <meta name="theme-color" content="#95ff7b">
118
- <meta property="og:type" content="website">
119
- <meta property="og:site_name" content="@e280/sly">
120
- <meta property="og:title" content="sly">
121
- <meta property="og:description" content="mischievous shadow views">
122
- <meta property="og:image" content="https://sly.e280.org/assets/favicon.png">
123
-
124
-
125
-
126
- <meta name="example" value="whatever"/>
127
-
128
- </head>
129
- <body>
130
-
131
- <img class=icon alt="" src="/assets/favicon.png"/>
132
- <h1>sly testing page</h1>
133
- <p><a href="https://github.com/e280/sly">github.com/e280/sly</a></p>
134
- <p class=lil>v0.2.5</p>
135
-
136
- <fastcount-element></fastcount-element>
137
- <counter-component start=280 step=2>component</counter-component>
138
- <demo-component></demo-component>
139
-
140
- </body>
141
- </html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1"/>
6
+ <meta name="darkreader-lock"/>
7
+ <style>@layer base{html{background:#000}}</style>
8
+
9
+ <title>sly</title>
10
+ <link rel="icon" href="/assets/favicon.png"/>
11
+ <link rel="stylesheet" href="demo/demo.css?v=633361cda103"/>
12
+ <script type="module" src="demo/demo.bundle.min.js?v=9434f9ef75e3"></script>
13
+
14
+
15
+ <meta name="theme-color" content="#95ff7b">
16
+ <meta property="og:type" content="website">
17
+ <meta property="og:site_name" content="@e280/sly">
18
+ <meta property="og:title" content="sly">
19
+ <meta property="og:description" content="mischievous shadow views">
20
+ <meta property="og:image" content="https://sly.e280.org/assets/favicon.png">
21
+
22
+
23
+ </head>
24
+ <body>
25
+ <img class=icon alt="" src="/assets/favicon.png"/>
26
+ <h1>sly testing page</h1>
27
+ <p><a href="https://github.com/e280/sly">github.com/e280/sly</a></p>
28
+ <p class=lil>v0.3.0-2</p>
29
+ <div class="demo"></div>
30
+ </body>
31
+ </html>
package/x/index.html.js CHANGED
@@ -1,33 +1,33 @@
1
- import { ssg, html } from "@e280/scute";
2
- const title = "sly";
3
- const description = "mischievous shadow views";
4
- const domain = "sly.e280.org";
5
- const favicon = "/assets/favicon.png";
6
- export default ssg.page(import.meta.url, async (orb) => ({
7
- title,
8
- js: "demo/demo.bundle.min.js",
9
- css: "demo/demo.css",
10
- favicon,
11
- dark: true,
12
- socialCard: {
13
- themeColor: "#95ff7b",
14
- title,
15
- description,
16
- siteName: "@e280/sly",
17
- image: "https://" + domain + favicon,
18
- },
19
- head: html `
20
- <meta name="example" value="whatever"/>
21
- `,
22
- body: html `
23
- <img class=icon alt="" src="/assets/favicon.png"/>
24
- <h1>sly testing page</h1>
25
- <p><a href="https://github.com/e280/sly">github.com/e280/sly</a></p>
26
- <p class=lil>v${orb.packageVersion()}</p>
1
+ import { template, html, socialCard } from "@e280/scute";
2
+ export default template(import.meta.url, async (orb) => html `
3
+ <!doctype html>
4
+ <html>
5
+ <head>
6
+ <meta charset="utf-8"/>
7
+ <meta name="viewport" content="width=device-width,initial-scale=1"/>
8
+ <meta name="darkreader-lock"/>
9
+ <style>@layer base{html{background:#000}}</style>
27
10
 
28
- <fastcount-element></fastcount-element>
29
- <counter-component start=280 step=2>component</counter-component>
30
- <demo-component></demo-component>
31
- `,
32
- }));
11
+ <title>sly</title>
12
+ <link rel="icon" href="/assets/favicon.png"/>
13
+ <link rel="stylesheet" href="${orb.hashurl("demo/demo.css")}"/>
14
+ <script type="module" src="${orb.hashurl("demo/demo.bundle.min.js")}"></script>
15
+
16
+ ${socialCard({
17
+ themeColor: "#95ff7b",
18
+ title: "sly",
19
+ description: "mischievous shadow views",
20
+ siteName: "@e280/sly",
21
+ image: "https://sly.e280.org/assets/favicon.png",
22
+ })}
23
+ </head>
24
+ <body>
25
+ <img class=icon alt="" src="/assets/favicon.png"/>
26
+ <h1>sly testing page</h1>
27
+ <p><a href="https://github.com/e280/sly">github.com/e280/sly</a></p>
28
+ <p class=lil>v${orb.packageVersion()}</p>
29
+ <div class="demo"></div>
30
+ </body>
31
+ </html>
32
+ `);
33
33
  //# sourceMappingURL=index.html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.html.js","sourceRoot":"","sources":["../s/index.html.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,aAAa,CAAA;AAErC,MAAM,KAAK,GAAG,KAAK,CAAA;AACnB,MAAM,WAAW,GAAG,0BAA0B,CAAA;AAC9C,MAAM,MAAM,GAAG,cAAc,CAAA;AAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAErC,eAAe,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,CAAC;IACtD,KAAK;IACL,EAAE,EAAE,yBAAyB;IAC7B,GAAG,EAAE,eAAe;IACpB,OAAO;IACP,IAAI,EAAE,IAAI;IACV,UAAU,EAAE;QACX,UAAU,EAAE,SAAS;QACrB,KAAK;QACL,WAAW;QACX,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO;KACpC;IAED,IAAI,EAAE,IAAI,CAAA;;EAET;IAED,IAAI,EAAE,IAAI,CAAA;;;;kBAIO,GAAG,CAAC,cAAc,EAAE;;;;;EAKpC;CACD,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.html.js","sourceRoot":"","sources":["../s/index.html.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AAEtD,eAAe,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;kCAWxB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;gCAC9B,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC;;KAEjE,UAAU,CAAC;IACZ,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,0BAA0B;IACvC,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,yCAAyC;CAChD,CAAC;;;;;;mBAMc,GAAG,CAAC,cAAc,EAAE;;;;CAItC,CAAC,CAAA"}
package/x/index.js CHANGED
@@ -1,8 +1,6 @@
1
- export * from "./base/index.js";
2
1
  export * from "./dom/index.js";
3
2
  export * from "./loaders/index.js";
4
3
  export * from "./loot/index.js";
5
4
  export * from "./ops/index.js";
6
- export * from "./spa/index.js";
7
5
  export * from "./view/index.js";
8
6
  //# sourceMappingURL=index.js.map
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { Loader } from "./types.js";
2
- import type { Content } from "../view/types.js";
2
+ import { Content } from "../view/types.js";
3
3
  export declare function make(loading?: () => Content, error?: (error: any) => Content): Loader;
@@ -1,6 +1,6 @@
1
1
  import { Content } from "../../view/types.js";
2
2
  export declare function makeAsciiAnim(hz: number, frames: string[]): () => Content;
3
- export declare const AsciiAnim: import("../../view/types.js").View<[{
3
+ export declare const AsciiAnim: import("../../view/types.js").ShadowView<[{
4
4
  hz: number;
5
5
  frames: string[];
6
6
  }]>;
@@ -1,15 +1,14 @@
1
1
  import { css } from "lit";
2
2
  import { nap, cycle } from "@e280/stz";
3
- import { view } from "../../view/view.js";
4
- import { cssReset } from "../../base/css-reset.js";
3
+ import { cssReset, shadow, useMount, useName, useSignal, useStyles } from "../../view/index.js";
5
4
  export function makeAsciiAnim(hz, frames) {
6
5
  return () => AsciiAnim({ hz, frames });
7
6
  }
8
- export const AsciiAnim = view(use => ({ hz, frames }) => {
9
- use.name("loading");
10
- use.styles(cssReset, style);
11
- const frame = use.signal(0);
12
- use.mount(() => cycle(async () => {
7
+ export const AsciiAnim = shadow(({ hz, frames }) => {
8
+ useName("loading");
9
+ useStyles(cssReset, style);
10
+ const frame = useSignal(0);
11
+ useMount(() => cycle(async () => {
13
12
  await nap(1000 / hz);
14
13
  const next = frame.get() + 1;
15
14
  frame.set(next >= frames.length ? 0 : next);
@@ -1 +1 @@
1
- {"version":3,"file":"ascii-anim.js","sourceRoot":"","sources":["../../../s/loaders/parts/ascii-anim.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAA;AAEvC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAEhD,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,MAAgB;IACzD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,MAAM,EAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAC,EAAE,EAAE,MAAM,EAG/C,EAAE,EAAE;IAEL,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE3B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAE3B,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,IAAG,EAAE;QAC/B,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAC,CAAA;IAEH,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;CAMhB,CAAA"}
1
+ {"version":3,"file":"ascii-anim.js","sourceRoot":"","sources":["../../../s/loaders/parts/ascii-anim.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAE7F,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,MAAgB;IACzD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,MAAM,EAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAC,EAAE,EAAE,MAAM,EAG1C,EAAE,EAAE;IAEL,OAAO,CAAC,SAAS,CAAC,CAAA;IAClB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE1B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IAE1B,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,IAAG,EAAE;QAC9B,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAC,CAAA;IAEH,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;CAMhB,CAAA"}
@@ -1 +1 @@
1
- export declare const ErrorDisplay: import("../../index.js").View<[error: any]>;
1
+ export declare const ErrorDisplay: import("../../view/types.js").ShadowView<[error: any]>;
@@ -1,9 +1,9 @@
1
1
  import { css, html } from "lit";
2
- import { view } from "../../view/view.js";
3
- import { cssReset } from "../../base/css-reset.js";
4
- export const ErrorDisplay = view(use => (error) => {
5
- use.name("error");
6
- use.styles(cssReset, style);
2
+ import { shadow } from "../../view/shadow.js";
3
+ import { cssReset, useName, useStyles } from "../../view/index.js";
4
+ export const ErrorDisplay = shadow((error) => {
5
+ useName("error");
6
+ useStyles(cssReset, style);
7
7
  if (typeof error === "string")
8
8
  return error;
9
9
  else if (error instanceof Error)
@@ -12,9 +12,9 @@ export const ErrorDisplay = view(use => (error) => {
12
12
  return `error`;
13
13
  });
14
14
  const style = css `
15
- :host {
16
- font-family: monospace;
17
- color: red;
18
- }
15
+ :host {
16
+ font-family: monospace;
17
+ color: red;
18
+ }
19
19
  `;
20
20
  //# sourceMappingURL=error-display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-display.js","sourceRoot":"","sources":["../../../s/loaders/parts/error-display.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAU,EAAE,EAAE;IACtD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE3B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAA;SAER,IAAI,KAAK,YAAY,KAAK;QAC9B,OAAO,IAAI,CAAA,WAAW,KAAK,CAAC,IAAI,oBAAoB,KAAK,CAAC,OAAO,SAAS,CAAA;;QAG1E,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;CAKhB,CAAA"}
1
+ {"version":3,"file":"error-display.js","sourceRoot":"","sources":["../../../s/loaders/parts/error-display.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAA;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE;IACjD,OAAO,CAAC,OAAO,CAAC,CAAA;IAChB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAA;SAER,IAAI,KAAK,YAAY,KAAK;QAC9B,OAAO,IAAI,CAAA,WAAW,KAAK,CAAC,IAAI,oBAAoB,KAAK,CAAC,OAAO,SAAS,CAAA;;QAG1E,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;CAKhB,CAAA"}
package/x/tests.test.js CHANGED
@@ -1,6 +1,3 @@
1
1
  import { Science } from "@e280/science";
2
- import spa from "./spa/spa.test.js";
3
- await Science.run({
4
- spa,
5
- });
2
+ await Science.run({});
6
3
  //# sourceMappingURL=tests.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,GAAG,MAAM,mBAAmB,CAAA;AAEnC,MAAM,OAAO,CAAC,GAAG,CAAC;IACjB,GAAG;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"tests.test.js","sourceRoot":"","sources":["../s/tests.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { css } from "lit";
2
+ export const cssReset = css `
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+
8
+ scrollbar-width: thin;
9
+ scrollbar-color: #888 transparent;
10
+ }
11
+
12
+ ::-webkit-scrollbar { width: 8px; }
13
+ ::-webkit-scrollbar-track { background: transparent; }
14
+ ::-webkit-scrollbar-thumb { background: #888; border-radius: 1em; }
15
+ ::-webkit-scrollbar-thumb:hover { background: #999; }
16
+ `;
17
+ //# sourceMappingURL=css-reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-reset.js","sourceRoot":"","sources":["../../../s/view/common/css-reset.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAA;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAmB,GAAG,CAAA;;;;;;;;;;;;;;CAc1C,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { Hookscope } from "./hookscope.js";
2
+ export declare class Hooks {
3
+ #private;
4
+ get scope(): Hookscope;
5
+ increment(): {
6
+ scope: Hookscope;
7
+ position: number;
8
+ };
9
+ wrap<Ret>(scope: Hookscope, fn: () => Ret): Ret;
10
+ }
11
+ export declare const hooks: Hooks;
@@ -0,0 +1,26 @@
1
+ export class Hooks {
2
+ #scopes = [];
3
+ get scope() {
4
+ const scope = this.#scopes.at(-1);
5
+ if (!scope)
6
+ throw new Error("hooks must be called within a render fn");
7
+ return scope;
8
+ }
9
+ increment() {
10
+ const scope = this.scope;
11
+ const position = scope.position++;
12
+ return { scope, position };
13
+ }
14
+ wrap(scope, fn) {
15
+ scope.position = 0;
16
+ this.#scopes.push(scope);
17
+ try {
18
+ return fn();
19
+ }
20
+ finally {
21
+ this.#scopes.pop();
22
+ }
23
+ }
24
+ }
25
+ export const hooks = globalThis[Symbol.for("e280.hooks")] ??= new Hooks();
26
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../s/view/hooks/plumbing/hooks.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,KAAK;IACjB,OAAO,GAAgB,EAAE,CAAA;IAEzB,IAAI,KAAK;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QACtE,OAAO,KAAK,CAAA;IACb,CAAC;IAED,SAAS;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QACjC,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAA;IACzB,CAAC;IAED,IAAI,CAAM,KAAgB,EAAE,EAAa;QACxC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,CAAC;YAAC,OAAO,EAAE,EAAE,CAAA;QAAC,CAAC;gBACX,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;QAAC,CAAC;IAC/B,CAAC;CACD;AAED,MAAM,CAAC,MAAM,KAAK,GAAW,UAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { GMap } from "@e280/stz";
2
+ import { Mounts } from "../use-mount.js";
3
+ import { LightCx, ShadowCx } from "../../parts/cx.js";
4
+ export declare class Hookscope {
5
+ cx: LightCx | ShadowCx;
6
+ position: number;
7
+ values: GMap<number, any>;
8
+ mounts: Mounts;
9
+ constructor(cx: LightCx | ShadowCx);
10
+ }
@@ -0,0 +1,12 @@
1
+ import { GMap } from "@e280/stz";
2
+ import { Mounts } from "../use-mount.js";
3
+ export class Hookscope {
4
+ cx;
5
+ position = 0;
6
+ values = new GMap();
7
+ mounts = new Mounts();
8
+ constructor(cx) {
9
+ this.cx = cx;
10
+ }
11
+ }
12
+ //# sourceMappingURL=hookscope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hookscope.js","sourceRoot":"","sources":["../../../../s/view/hooks/plumbing/hookscope.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAA;AAGtC,MAAM,OAAO,SAAS;IAIF;IAHnB,QAAQ,GAAG,CAAC,CAAA;IACZ,MAAM,GAAG,IAAI,IAAI,EAAe,CAAA;IAChC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IACrB,YAAmB,EAAsB;QAAtB,OAAE,GAAF,EAAE,CAAoB;IAAG,CAAC;CAC7C"}