@e280/sly 0.2.4 → 0.3.0-1

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 (256) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +302 -614
  3. package/package.json +6 -8
  4. package/s/_archive/README.md +1221 -0
  5. package/s/{base → _archive/base}/element.ts +5 -2
  6. package/s/_archive/view/index.ts +7 -0
  7. package/s/_archive/view/types.ts +45 -0
  8. package/s/{view → _archive/view}/utils/parts/capsule.ts +9 -2
  9. package/s/demo/demo.bundle.ts +2 -9
  10. package/s/demo/views/counter-light.ts +13 -0
  11. package/s/demo/views/counter-shadow.ts +16 -0
  12. package/s/demo/views/demo.ts +24 -18
  13. package/s/demo/views/loaders.ts +7 -7
  14. package/s/index.html.ts +30 -33
  15. package/s/index.ts +0 -2
  16. package/s/loaders/make.ts +1 -1
  17. package/s/loaders/parts/ascii-anim.ts +6 -8
  18. package/s/loaders/parts/error-display.ts +9 -9
  19. package/s/tests.test.ts +1 -4
  20. package/s/view/common/css-reset.ts +19 -0
  21. package/s/view/hooks/plumbing/hooks.ts +28 -0
  22. package/s/view/hooks/plumbing/hookscope.ts +12 -0
  23. package/s/view/hooks/use-css.ts +14 -0
  24. package/s/view/hooks/use-cx.ts +41 -0
  25. package/s/view/hooks/use-life.ts +17 -0
  26. package/s/view/hooks/use-mount.ts +30 -0
  27. package/s/view/hooks/use-name.ts +10 -0
  28. package/s/view/hooks/use-once.ts +9 -0
  29. package/s/view/hooks/use-op.ts +12 -0
  30. package/s/view/hooks/use-ref.ts +11 -0
  31. package/s/view/hooks/use-signal.ts +16 -0
  32. package/s/view/hooks/use-state.ts +20 -0
  33. package/s/view/hooks/use-wake.ts +8 -0
  34. package/s/view/index.ts +17 -4
  35. package/s/view/light.ts +50 -0
  36. package/s/view/parts/apply-attrs.ts +22 -0
  37. package/s/view/parts/apply-styles.ts +21 -0
  38. package/s/view/parts/cx.ts +26 -0
  39. package/s/view/parts/reactivity.ts +22 -0
  40. package/s/view/parts/sly-shadow.ts +8 -0
  41. package/s/view/shadow.ts +93 -0
  42. package/s/view/types.ts +15 -34
  43. package/x/demo/demo.bundle.js +2 -8
  44. package/x/demo/demo.bundle.js.map +1 -1
  45. package/x/demo/demo.bundle.min.js +45 -58
  46. package/x/demo/demo.bundle.min.js.map +4 -4
  47. package/x/demo/views/counter-light.d.ts +1 -0
  48. package/x/demo/views/counter-light.js +10 -0
  49. package/x/demo/views/counter-light.js.map +1 -0
  50. package/x/demo/views/counter-shadow.d.ts +1 -0
  51. package/x/demo/views/counter-shadow.js +12 -0
  52. package/x/demo/views/counter-shadow.js.map +1 -0
  53. package/x/demo/views/demo.d.ts +1 -4
  54. package/x/demo/views/demo.js +23 -18
  55. package/x/demo/views/demo.js.map +1 -1
  56. package/x/demo/views/loaders.d.ts +1 -1
  57. package/x/demo/views/loaders.js +7 -7
  58. package/x/demo/views/loaders.js.map +1 -1
  59. package/x/index.d.ts +0 -2
  60. package/x/index.html +30 -140
  61. package/x/index.html.js +31 -31
  62. package/x/index.html.js.map +1 -1
  63. package/x/index.js +0 -2
  64. package/x/index.js.map +1 -1
  65. package/x/loaders/make.d.ts +1 -1
  66. package/x/loaders/parts/ascii-anim.d.ts +1 -1
  67. package/x/loaders/parts/ascii-anim.js +6 -7
  68. package/x/loaders/parts/ascii-anim.js.map +1 -1
  69. package/x/loaders/parts/error-display.d.ts +1 -1
  70. package/x/loaders/parts/error-display.js +9 -9
  71. package/x/loaders/parts/error-display.js.map +1 -1
  72. package/x/tests.test.js +1 -4
  73. package/x/tests.test.js.map +1 -1
  74. package/x/view/common/css-reset.js +17 -0
  75. package/x/view/common/css-reset.js.map +1 -0
  76. package/x/view/hooks/plumbing/hooks.d.ts +11 -0
  77. package/x/view/hooks/plumbing/hooks.js +26 -0
  78. package/x/view/hooks/plumbing/hooks.js.map +1 -0
  79. package/x/view/hooks/plumbing/hookscope.d.ts +10 -0
  80. package/x/view/hooks/plumbing/hookscope.js +12 -0
  81. package/x/view/hooks/plumbing/hookscope.js.map +1 -0
  82. package/x/view/hooks/use-css.d.ts +4 -0
  83. package/x/view/hooks/use-css.js +10 -0
  84. package/x/view/hooks/use-css.js.map +1 -0
  85. package/x/view/hooks/use-cx.d.ts +10 -0
  86. package/x/view/hooks/use-cx.js +33 -0
  87. package/x/view/hooks/use-cx.js.map +1 -0
  88. package/x/view/hooks/use-life.d.ts +2 -0
  89. package/x/view/hooks/use-life.js +13 -0
  90. package/x/view/hooks/use-life.js.map +1 -0
  91. package/x/{base/utils/mounts.d.ts → view/hooks/use-mount.d.ts} +1 -0
  92. package/x/{base/utils/mounts.js → view/hooks/use-mount.js} +7 -1
  93. package/x/view/hooks/use-mount.js.map +1 -0
  94. package/x/view/hooks/use-name.d.ts +2 -0
  95. package/x/view/hooks/use-name.js +8 -0
  96. package/x/view/hooks/use-name.js.map +1 -0
  97. package/x/view/hooks/use-once.d.ts +2 -0
  98. package/x/view/hooks/use-once.js +7 -0
  99. package/x/view/hooks/use-once.js.map +1 -0
  100. package/x/view/hooks/use-op.d.ts +3 -0
  101. package/x/view/hooks/use-op.js +9 -0
  102. package/x/view/hooks/use-op.js.map +1 -0
  103. package/x/view/hooks/use-ref.d.ts +5 -0
  104. package/x/view/hooks/use-ref.js +11 -0
  105. package/x/view/hooks/use-ref.js.map +1 -0
  106. package/x/view/hooks/use-signal.d.ts +3 -0
  107. package/x/view/hooks/use-signal.js +12 -0
  108. package/x/view/hooks/use-signal.js.map +1 -0
  109. package/x/view/hooks/use-state.d.ts +1 -0
  110. package/x/view/hooks/use-state.js +17 -0
  111. package/x/view/hooks/use-state.js.map +1 -0
  112. package/x/view/hooks/use-wake.d.ts +2 -0
  113. package/x/view/hooks/use-wake.js +6 -0
  114. package/x/view/hooks/use-wake.js.map +1 -0
  115. package/x/view/index.d.ts +15 -4
  116. package/x/view/index.js +15 -4
  117. package/x/view/index.js.map +1 -1
  118. package/x/view/light.d.ts +2 -0
  119. package/x/view/light.js +41 -0
  120. package/x/view/light.js.map +1 -0
  121. package/x/view/parts/apply-attrs.d.ts +2 -0
  122. package/x/view/parts/apply-attrs.js +22 -0
  123. package/x/view/parts/apply-attrs.js.map +1 -0
  124. package/x/{base/utils → view/parts}/apply-styles.js.map +1 -1
  125. package/x/view/parts/cx.d.ts +12 -0
  126. package/x/view/parts/cx.js +24 -0
  127. package/x/view/parts/cx.js.map +1 -0
  128. package/x/view/parts/reactivity.d.ts +5 -0
  129. package/x/view/parts/reactivity.js +18 -0
  130. package/x/view/parts/reactivity.js.map +1 -0
  131. package/x/view/parts/sly-shadow.d.ts +3 -0
  132. package/x/view/parts/sly-shadow.js +7 -0
  133. package/x/view/parts/sly-shadow.js.map +1 -0
  134. package/x/view/shadow.d.ts +6 -0
  135. package/x/view/shadow.js +72 -0
  136. package/x/view/shadow.js.map +1 -0
  137. package/x/view/types.d.ts +13 -21
  138. package/s/demo/views/counter.ts +0 -50
  139. package/s/demo/views/fastcount.ts +0 -29
  140. package/x/base/css-reset.js +0 -19
  141. package/x/base/css-reset.js.map +0 -1
  142. package/x/base/element.d.ts +0 -19
  143. package/x/base/element.js +0 -52
  144. package/x/base/element.js.map +0 -1
  145. package/x/base/index.d.ts +0 -5
  146. package/x/base/index.js +0 -6
  147. package/x/base/index.js.map +0 -1
  148. package/x/base/types.d.ts +0 -3
  149. package/x/base/types.js +0 -3
  150. package/x/base/types.js.map +0 -1
  151. package/x/base/use.d.ts +0 -59
  152. package/x/base/use.js +0 -129
  153. package/x/base/use.js.map +0 -1
  154. package/x/base/utils/attr-watcher.d.ts +0 -8
  155. package/x/base/utils/attr-watcher.js +0 -20
  156. package/x/base/utils/attr-watcher.js.map +0 -1
  157. package/x/base/utils/mounts.js.map +0 -1
  158. package/x/base/utils/reactor.d.ts +0 -5
  159. package/x/base/utils/reactor.js +0 -25
  160. package/x/base/utils/reactor.js.map +0 -1
  161. package/x/base/utils/states.d.ts +0 -13
  162. package/x/base/utils/states.js +0 -41
  163. package/x/base/utils/states.js.map +0 -1
  164. package/x/base/utils/use-attrs.d.ts +0 -11
  165. package/x/base/utils/use-attrs.js +0 -18
  166. package/x/base/utils/use-attrs.js.map +0 -1
  167. package/x/demo/views/counter.d.ts +0 -374
  168. package/x/demo/views/counter.js +0 -42
  169. package/x/demo/views/counter.js.map +0 -1
  170. package/x/demo/views/fastcount.d.ts +0 -12
  171. package/x/demo/views/fastcount.js +0 -21
  172. package/x/demo/views/fastcount.js.map +0 -1
  173. package/x/spa/index.barrel.d.ts +0 -4
  174. package/x/spa/index.barrel.js +0 -3
  175. package/x/spa/index.barrel.js.map +0 -1
  176. package/x/spa/index.d.ts +0 -2
  177. package/x/spa/index.js +0 -2
  178. package/x/spa/index.js.map +0 -1
  179. package/x/spa/plumbing/braces.d.ts +0 -12
  180. package/x/spa/plumbing/braces.js +0 -55
  181. package/x/spa/plumbing/braces.js.map +0 -1
  182. package/x/spa/plumbing/primitives.d.ts +0 -22
  183. package/x/spa/plumbing/primitives.js +0 -65
  184. package/x/spa/plumbing/primitives.js.map +0 -1
  185. package/x/spa/plumbing/router-core.d.ts +0 -13
  186. package/x/spa/plumbing/router-core.js +0 -38
  187. package/x/spa/plumbing/router-core.js.map +0 -1
  188. package/x/spa/plumbing/types.d.ts +0 -35
  189. package/x/spa/plumbing/types.js +0 -2
  190. package/x/spa/plumbing/types.js.map +0 -1
  191. package/x/spa/router.d.ts +0 -13
  192. package/x/spa/router.js +0 -39
  193. package/x/spa/router.js.map +0 -1
  194. package/x/spa/spa.test.d.ts +0 -15
  195. package/x/spa/spa.test.js +0 -78
  196. package/x/spa/spa.test.js.map +0 -1
  197. package/x/view/utils/contextualize.d.ts +0 -13
  198. package/x/view/utils/contextualize.js +0 -18
  199. package/x/view/utils/contextualize.js.map +0 -1
  200. package/x/view/utils/make-component.d.ts +0 -5
  201. package/x/view/utils/make-component.js +0 -17
  202. package/x/view/utils/make-component.js.map +0 -1
  203. package/x/view/utils/make-view.d.ts +0 -2
  204. package/x/view/utils/make-view.js +0 -32
  205. package/x/view/utils/make-view.js.map +0 -1
  206. package/x/view/utils/parts/capsule.d.ts +0 -12
  207. package/x/view/utils/parts/capsule.js +0 -50
  208. package/x/view/utils/parts/capsule.js.map +0 -1
  209. package/x/view/utils/parts/chain.d.ts +0 -13
  210. package/x/view/utils/parts/chain.js +0 -26
  211. package/x/view/utils/parts/chain.js.map +0 -1
  212. package/x/view/utils/parts/context.d.ts +0 -9
  213. package/x/view/utils/parts/context.js +0 -10
  214. package/x/view/utils/parts/context.js.map +0 -1
  215. package/x/view/utils/parts/directive.d.ts +0 -5
  216. package/x/view/utils/parts/directive.js +0 -20
  217. package/x/view/utils/parts/directive.js.map +0 -1
  218. package/x/view/utils/parts/naked.d.ts +0 -18
  219. package/x/view/utils/parts/naked.js +0 -57
  220. package/x/view/utils/parts/naked.js.map +0 -1
  221. package/x/view/utils/parts/sly-view.d.ts +0 -6
  222. package/x/view/utils/parts/sly-view.js +0 -16
  223. package/x/view/utils/parts/sly-view.js.map +0 -1
  224. package/x/view/view.d.ts +0 -11
  225. package/x/view/view.js +0 -15
  226. package/x/view/view.js.map +0 -1
  227. /package/s/{base → _archive/base}/css-reset.ts +0 -0
  228. /package/s/{base → _archive/base}/index.ts +0 -0
  229. /package/s/{base → _archive/base}/types.ts +0 -0
  230. /package/s/{base → _archive/base}/use.ts +0 -0
  231. /package/s/{base → _archive/base}/utils/apply-styles.ts +0 -0
  232. /package/s/{base → _archive/base}/utils/attr-watcher.ts +0 -0
  233. /package/s/{base → _archive/base}/utils/mounts.ts +0 -0
  234. /package/s/{base → _archive/base}/utils/reactor.ts +0 -0
  235. /package/s/{base → _archive/base}/utils/states.ts +0 -0
  236. /package/s/{base → _archive/base}/utils/use-attrs.ts +0 -0
  237. /package/s/{spa → _archive/spa}/index.barrel.ts +0 -0
  238. /package/s/{spa → _archive/spa}/index.ts +0 -0
  239. /package/s/{spa → _archive/spa}/plumbing/braces.ts +0 -0
  240. /package/s/{spa → _archive/spa}/plumbing/primitives.ts +0 -0
  241. /package/s/{spa → _archive/spa}/plumbing/router-core.ts +0 -0
  242. /package/s/{spa → _archive/spa}/plumbing/types.ts +0 -0
  243. /package/s/{spa → _archive/spa}/router.ts +0 -0
  244. /package/s/{spa → _archive/spa}/spa.test.ts +0 -0
  245. /package/s/{view → _archive/view}/utils/contextualize.ts +0 -0
  246. /package/s/{view → _archive/view}/utils/make-component.ts +0 -0
  247. /package/s/{view → _archive/view}/utils/make-view.ts +0 -0
  248. /package/s/{view → _archive/view}/utils/parts/chain.ts +0 -0
  249. /package/s/{view → _archive/view}/utils/parts/context.ts +0 -0
  250. /package/s/{view → _archive/view}/utils/parts/directive.ts +0 -0
  251. /package/s/{view → _archive/view}/utils/parts/naked.ts +0 -0
  252. /package/s/{view → _archive/view}/utils/parts/sly-view.ts +0 -0
  253. /package/s/{view → _archive/view}/view.ts +0 -0
  254. /package/x/{base → view/common}/css-reset.d.ts +0 -0
  255. /package/x/{base/utils → view/parts}/apply-styles.d.ts +0 -0
  256. /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,26 +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 { cssReset } from "../../base/css-reset.js";
6
- export class DemoComponent extends (view.component(use => {
7
- use.name("demo");
8
- 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);
9
9
  return html `
10
- ${CounterView
11
- .props(768, 3)
12
- .children("view")
13
- .render()}
10
+ <p>light ${CounterLight(123)}</p>
11
+
12
+ <p>
13
+ shadow ${CounterShadow.with({
14
+ props: [234],
15
+ attrs: { "data-lol": 555 },
16
+ children: html `<p>hello</p>`,
17
+ })}
18
+ </p>
19
+
14
20
  ${LoadersView()}
15
21
  `;
16
- })) {
17
- }
22
+ });
18
23
  const styles = css `
19
- :host {
20
- display: flex;
21
- flex-direction: column;
22
- align-items: center;
23
- gap: 1em;
24
- }
24
+ :host {
25
+ display: flex;
26
+ flex-direction: column;
27
+ align-items: center;
28
+ gap: 1em;
29
+ }
25
30
  `;
26
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,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;IAC5B,OAAO,IAAI,CAAA;IACR,WAAW;SACX,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;SACb,QAAQ,CAAC,MAAM,CAAC;SAChB,MAAM,EAAE;IACR,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/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=1ed4863fcfb8"></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.4</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=9c2a5e03f3a3"></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-1</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"}
@@ -0,0 +1,4 @@
1
+ import { CSSResultGroup } from "lit";
2
+ /** attach stylesheets to the shadow root */
3
+ export declare function useCss(...styles: CSSResultGroup[]): void;
4
+ export declare const useStyles: typeof useCss;
@@ -0,0 +1,10 @@
1
+ import { useShadow } from "./use-cx.js";
2
+ import { useOnce } from "./use-once.js";
3
+ import { applyStyles } from "../parts/apply-styles.js";
4
+ /** attach stylesheets to the shadow root */
5
+ export function useCss(...styles) {
6
+ const shadow = useShadow();
7
+ useOnce(() => applyStyles(shadow, styles));
8
+ }
9
+ export const useStyles = useCss;
10
+ //# sourceMappingURL=use-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-css.js","sourceRoot":"","sources":["../../../s/view/hooks/use-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAA;AAEpD,4CAA4C;AAC5C,MAAM,UAAU,MAAM,CAAC,GAAG,MAAwB;IACjD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAA"}