@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
@@ -1,374 +0,0 @@
1
- export declare const CounterView: import("../../index.js").View<[start: number, step: number]>;
2
- declare const CounterComponent_base: import("../../index.js").ComponentClass<{
3
- new (): {
4
- attrs: import("../../index.js").AttrTypes<{
5
- start: NumberConstructor;
6
- step: NumberConstructor;
7
- }>;
8
- readonly shadow: ShadowRoot;
9
- "__#private@#use": import("../../index.js").Use;
10
- "__#private@#mountCount": number;
11
- "__#private@#reactor": import("../../base/utils/reactor.js").Reactor;
12
- "__#private@#attrWatcher": import("../../base/utils/attr-watcher.js").AttrWatcher;
13
- createShadow(): ShadowRoot;
14
- render(_use: import("../../index.js").Use): import("../../index.js").Content;
15
- updateNow: () => void;
16
- update: import("@e280/stz").DebounceReturn<() => void>;
17
- connectedCallback(): void;
18
- disconnectedCallback(): void;
19
- accessKey: string;
20
- readonly accessKeyLabel: string;
21
- autocapitalize: string;
22
- autocorrect: boolean;
23
- dir: string;
24
- draggable: boolean;
25
- hidden: boolean;
26
- inert: boolean;
27
- innerText: string;
28
- lang: string;
29
- readonly offsetHeight: number;
30
- readonly offsetLeft: number;
31
- readonly offsetParent: Element | null;
32
- readonly offsetTop: number;
33
- readonly offsetWidth: number;
34
- outerText: string;
35
- popover: string | null;
36
- spellcheck: boolean;
37
- title: string;
38
- translate: boolean;
39
- writingSuggestions: string;
40
- attachInternals(): ElementInternals;
41
- click(): void;
42
- hidePopover(): void;
43
- showPopover(): void;
44
- togglePopover(options?: boolean): boolean;
45
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
46
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
47
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
48
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
49
- readonly attributes: NamedNodeMap;
50
- get classList(): DOMTokenList;
51
- set classList(value: string);
52
- className: string;
53
- readonly clientHeight: number;
54
- readonly clientLeft: number;
55
- readonly clientTop: number;
56
- readonly clientWidth: number;
57
- readonly currentCSSZoom: number;
58
- id: string;
59
- innerHTML: string;
60
- readonly localName: string;
61
- readonly namespaceURI: string | null;
62
- onfullscreenchange: ((this: Element, ev: Event) => any) | null;
63
- onfullscreenerror: ((this: Element, ev: Event) => any) | null;
64
- outerHTML: string;
65
- readonly ownerDocument: Document;
66
- get part(): DOMTokenList;
67
- set part(value: string);
68
- readonly prefix: string | null;
69
- readonly scrollHeight: number;
70
- scrollLeft: number;
71
- scrollTop: number;
72
- readonly scrollWidth: number;
73
- readonly shadowRoot: ShadowRoot | null;
74
- slot: string;
75
- readonly tagName: string;
76
- attachShadow(init: ShadowRootInit): ShadowRoot;
77
- checkVisibility(options?: CheckVisibilityOptions): boolean;
78
- closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
79
- closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
80
- closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
81
- closest<E extends Element = Element>(selectors: string): E | null;
82
- computedStyleMap(): StylePropertyMapReadOnly;
83
- getAttribute(qualifiedName: string): string | null;
84
- getAttributeNS(namespace: string | null, localName: string): string | null;
85
- getAttributeNames(): string[];
86
- getAttributeNode(qualifiedName: string): Attr | null;
87
- getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
88
- getBoundingClientRect(): DOMRect;
89
- getClientRects(): DOMRectList;
90
- getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
91
- getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
92
- getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
93
- getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
94
- getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
95
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
96
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
97
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
98
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
99
- getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
100
- getHTML(options?: GetHTMLOptions): string;
101
- hasAttribute(qualifiedName: string): boolean;
102
- hasAttributeNS(namespace: string | null, localName: string): boolean;
103
- hasAttributes(): boolean;
104
- hasPointerCapture(pointerId: number): boolean;
105
- insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
106
- insertAdjacentHTML(position: InsertPosition, string: string): void;
107
- insertAdjacentText(where: InsertPosition, data: string): void;
108
- matches(selectors: string): boolean;
109
- releasePointerCapture(pointerId: number): void;
110
- removeAttribute(qualifiedName: string): void;
111
- removeAttributeNS(namespace: string | null, localName: string): void;
112
- removeAttributeNode(attr: Attr): Attr;
113
- requestFullscreen(options?: FullscreenOptions): Promise<void>;
114
- requestPointerLock(options?: PointerLockOptions): Promise<void>;
115
- scroll(options?: ScrollToOptions): void;
116
- scroll(x: number, y: number): void;
117
- scrollBy(options?: ScrollToOptions): void;
118
- scrollBy(x: number, y: number): void;
119
- scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
120
- scrollTo(options?: ScrollToOptions): void;
121
- scrollTo(x: number, y: number): void;
122
- setAttribute(qualifiedName: string, value: string): void;
123
- setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
124
- setAttributeNode(attr: Attr): Attr | null;
125
- setAttributeNodeNS(attr: Attr): Attr | null;
126
- setHTMLUnsafe(html: string): void;
127
- setPointerCapture(pointerId: number): void;
128
- toggleAttribute(qualifiedName: string, force?: boolean): boolean;
129
- webkitMatchesSelector(selectors: string): boolean;
130
- get textContent(): string;
131
- set textContent(value: string | null);
132
- readonly baseURI: string;
133
- readonly childNodes: NodeListOf<ChildNode>;
134
- readonly firstChild: ChildNode | null;
135
- readonly isConnected: boolean;
136
- readonly lastChild: ChildNode | null;
137
- readonly nextSibling: ChildNode | null;
138
- readonly nodeName: string;
139
- readonly nodeType: number;
140
- nodeValue: string | null;
141
- readonly parentElement: HTMLElement | null;
142
- readonly parentNode: ParentNode | null;
143
- readonly previousSibling: ChildNode | null;
144
- appendChild<T extends Node>(node: T): T;
145
- cloneNode(subtree?: boolean): Node;
146
- compareDocumentPosition(other: Node): number;
147
- contains(other: Node | null): boolean;
148
- getRootNode(options?: GetRootNodeOptions): Node;
149
- hasChildNodes(): boolean;
150
- insertBefore<T extends Node>(node: T, child: Node | null): T;
151
- isDefaultNamespace(namespace: string | null): boolean;
152
- isEqualNode(otherNode: Node | null): boolean;
153
- isSameNode(otherNode: Node | null): boolean;
154
- lookupNamespaceURI(prefix: string | null): string | null;
155
- lookupPrefix(namespace: string | null): string | null;
156
- normalize(): void;
157
- removeChild<T extends Node>(child: T): T;
158
- replaceChild<T extends Node>(node: Node, child: T): T;
159
- readonly ELEMENT_NODE: 1;
160
- readonly ATTRIBUTE_NODE: 2;
161
- readonly TEXT_NODE: 3;
162
- readonly CDATA_SECTION_NODE: 4;
163
- readonly ENTITY_REFERENCE_NODE: 5;
164
- readonly ENTITY_NODE: 6;
165
- readonly PROCESSING_INSTRUCTION_NODE: 7;
166
- readonly COMMENT_NODE: 8;
167
- readonly DOCUMENT_NODE: 9;
168
- readonly DOCUMENT_TYPE_NODE: 10;
169
- readonly DOCUMENT_FRAGMENT_NODE: 11;
170
- readonly NOTATION_NODE: 12;
171
- readonly DOCUMENT_POSITION_DISCONNECTED: 1;
172
- readonly DOCUMENT_POSITION_PRECEDING: 2;
173
- readonly DOCUMENT_POSITION_FOLLOWING: 4;
174
- readonly DOCUMENT_POSITION_CONTAINS: 8;
175
- readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
176
- readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
177
- dispatchEvent(event: Event): boolean;
178
- ariaActiveDescendantElement: Element | null;
179
- ariaAtomic: string | null;
180
- ariaAutoComplete: string | null;
181
- ariaBrailleLabel: string | null;
182
- ariaBrailleRoleDescription: string | null;
183
- ariaBusy: string | null;
184
- ariaChecked: string | null;
185
- ariaColCount: string | null;
186
- ariaColIndex: string | null;
187
- ariaColIndexText: string | null;
188
- ariaColSpan: string | null;
189
- ariaControlsElements: ReadonlyArray<Element> | null;
190
- ariaCurrent: string | null;
191
- ariaDescribedByElements: ReadonlyArray<Element> | null;
192
- ariaDescription: string | null;
193
- ariaDetailsElements: ReadonlyArray<Element> | null;
194
- ariaDisabled: string | null;
195
- ariaErrorMessageElements: ReadonlyArray<Element> | null;
196
- ariaExpanded: string | null;
197
- ariaFlowToElements: ReadonlyArray<Element> | null;
198
- ariaHasPopup: string | null;
199
- ariaHidden: string | null;
200
- ariaInvalid: string | null;
201
- ariaKeyShortcuts: string | null;
202
- ariaLabel: string | null;
203
- ariaLabelledByElements: ReadonlyArray<Element> | null;
204
- ariaLevel: string | null;
205
- ariaLive: string | null;
206
- ariaModal: string | null;
207
- ariaMultiLine: string | null;
208
- ariaMultiSelectable: string | null;
209
- ariaOrientation: string | null;
210
- ariaOwnsElements: ReadonlyArray<Element> | null;
211
- ariaPlaceholder: string | null;
212
- ariaPosInSet: string | null;
213
- ariaPressed: string | null;
214
- ariaReadOnly: string | null;
215
- ariaRelevant: string | null;
216
- ariaRequired: string | null;
217
- ariaRoleDescription: string | null;
218
- ariaRowCount: string | null;
219
- ariaRowIndex: string | null;
220
- ariaRowIndexText: string | null;
221
- ariaRowSpan: string | null;
222
- ariaSelected: string | null;
223
- ariaSetSize: string | null;
224
- ariaSort: string | null;
225
- ariaValueMax: string | null;
226
- ariaValueMin: string | null;
227
- ariaValueNow: string | null;
228
- ariaValueText: string | null;
229
- role: string | null;
230
- animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
231
- getAnimations(options?: GetAnimationsOptions): Animation[];
232
- after(...nodes: (Node | string)[]): void;
233
- before(...nodes: (Node | string)[]): void;
234
- remove(): void;
235
- replaceWith(...nodes: (Node | string)[]): void;
236
- readonly nextElementSibling: Element | null;
237
- readonly previousElementSibling: Element | null;
238
- readonly childElementCount: number;
239
- readonly children: HTMLCollection;
240
- readonly firstElementChild: Element | null;
241
- readonly lastElementChild: Element | null;
242
- append(...nodes: (Node | string)[]): void;
243
- prepend(...nodes: (Node | string)[]): void;
244
- querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
245
- querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
246
- querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
247
- querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
248
- querySelector<E extends Element = Element>(selectors: string): E | null;
249
- querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
250
- querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
251
- querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
252
- querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
253
- querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
254
- replaceChildren(...nodes: (Node | string)[]): void;
255
- readonly assignedSlot: HTMLSlotElement | null;
256
- readonly attributeStyleMap: StylePropertyMap;
257
- get style(): CSSStyleDeclaration;
258
- set style(cssText: string);
259
- contentEditable: string;
260
- enterKeyHint: string;
261
- inputMode: string;
262
- readonly isContentEditable: boolean;
263
- onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
264
- onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
265
- onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
266
- onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
267
- onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
268
- onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
269
- onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
270
- onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;
271
- onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
272
- onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
273
- oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
274
- oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
275
- oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
276
- onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
277
- onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
278
- onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
279
- oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
280
- oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
281
- oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
282
- oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
283
- oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
284
- oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
285
- ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
286
- ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
287
- ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
288
- ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
289
- ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
290
- ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
291
- ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
292
- ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
293
- ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
294
- onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
295
- onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
296
- onerror: OnErrorEventHandler;
297
- onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
298
- onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
299
- ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
300
- oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
301
- oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
302
- onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
303
- onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
304
- onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
305
- onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
306
- onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
307
- onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
308
- onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
309
- onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
310
- onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
311
- onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
312
- onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
313
- onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
314
- onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
315
- onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
316
- onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
317
- onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
318
- onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
319
- onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
320
- onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
321
- onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
322
- onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
323
- onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
324
- onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
325
- onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
326
- onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
327
- onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
328
- onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
329
- onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
330
- onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
331
- onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
332
- onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
333
- onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
334
- onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
335
- onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
336
- onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
337
- onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
338
- onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
339
- onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
340
- onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
341
- onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
342
- onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
343
- onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
344
- onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
345
- onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
346
- ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
347
- ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
348
- ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
349
- ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
350
- ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
351
- ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
352
- ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
353
- ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
354
- ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
355
- ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
356
- onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
357
- onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
358
- onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
359
- onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
360
- onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
361
- onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
362
- onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
363
- autofocus: boolean;
364
- readonly dataset: DOMStringMap;
365
- nonce?: string;
366
- tabIndex: number;
367
- blur(): void;
368
- focus(options?: FocusOptions): void;
369
- };
370
- styles: import("lit").CSSResultGroup | undefined;
371
- }, [start: number, step: number]>;
372
- export declare class CounterComponent extends CounterComponent_base {
373
- }
374
- export {};
@@ -1,42 +0,0 @@
1
- import { css, html } from "lit";
2
- import { dom } from "../../dom/dom.js";
3
- import { view } from "../../view/view.js";
4
- import { cssReset } from "../../base/css-reset.js";
5
- import { BaseElement } from "../../base/element.js";
6
- export const CounterView = view(use => (start, step) => {
7
- use.name("counter");
8
- use.styles(cssReset, styles);
9
- const $count = use.signal(start);
10
- const increment = () => { $count.value += step; };
11
- return html `
12
- <slot></slot>
13
- <div>
14
- <span>${$count()}</span>
15
- </div>
16
- <div>
17
- <button @click="${increment}">++</button>
18
- </div>
19
- `;
20
- });
21
- // convert a view into a web component
22
- export class CounterComponent extends (CounterView
23
- .component(class extends BaseElement {
24
- attrs = dom.attrs(this).spec({
25
- start: Number,
26
- step: Number,
27
- });
28
- })
29
- .props(c => [c.attrs.start ?? 0, c.attrs.step ?? 1])) {
30
- }
31
- const styles = css `
32
- :host {
33
- display: flex;
34
- justify-content: center;
35
- gap: 1em;
36
- }
37
-
38
- button {
39
- padding: 0.2em 0.5em;
40
- }
41
- `;
42
- //# sourceMappingURL=counter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"counter.js","sourceRoot":"","sources":["../../../s/demo/views/counter.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAE7B,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AACpC,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;IACtE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAA,CAAC,CAAC,CAAA;IAEhD,OAAO,IAAI,CAAA;;;WAGD,MAAM,EAAE;;;qBAGE,SAAS;;EAE5B,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,sCAAsC;AACtC,MAAM,OAAO,gBAAiB,SAAQ,CACrC,WAAW;KACT,SAAS,CAAC,KAAM,SAAQ,WAAW;IACnC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,MAAM;KACZ,CAAC,CAAA;CACF,CAAC;KACD,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CACrD;CAAG;AAEJ,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;CAUjB,CAAA"}
@@ -1,12 +0,0 @@
1
- import { Use } from "../../base/use.js";
2
- import { BaseElement } from "../../base/element.js";
3
- export declare class FastcountElement extends BaseElement {
4
- static styles: import("lit").CSSResult;
5
- attrs: import("../../index.js").AttrTypes<{
6
- value: NumberConstructor;
7
- }>;
8
- something: {
9
- whatever: string;
10
- };
11
- render(use: Use): import("lit-html").TemplateResult<1>;
12
- }
@@ -1,21 +0,0 @@
1
- import { css, html } from "lit";
2
- import { nap, cycle } from "@e280/stz";
3
- import { dom } from "../../dom/dom.js";
4
- import { BaseElement } from "../../base/element.js";
5
- export class FastcountElement extends BaseElement {
6
- static styles = css `span{color:orange}`;
7
- attrs = dom.attrs(this).spec({ value: Number });
8
- something = { whatever: "rofl" };
9
- render(use) {
10
- const { value = 1 } = this.attrs;
11
- const $count = use.signal(0);
12
- use.mount(() => cycle(async () => {
13
- await nap(10);
14
- await $count($count() + 1);
15
- }));
16
- return html `
17
- <span>${$count() * value}</span>
18
- `;
19
- }
20
- }
21
- //# sourceMappingURL=fastcount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastcount.js","sourceRoot":"","sources":["../../../s/demo/views/fastcount.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAEpC,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AAEjD,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAChD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA,oBAAoB,CAAA;IAEvC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;IAC7C,SAAS,GAAG,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAA;IAE9B,MAAM,CAAC,GAAQ;QACd,MAAM,EAAC,KAAK,GAAG,CAAC,EAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAE5B,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,IAAG,EAAE;YAC/B,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;YACb,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAC,CAAA;QAEH,OAAO,IAAI,CAAA;WACF,MAAM,EAAE,GAAG,KAAK;GACxB,CAAA;IACF,CAAC"}
@@ -1,4 +0,0 @@
1
- export { route } from "./plumbing/braces.js";
2
- export type { Navigable } from "./plumbing/primitives.js";
3
- export { RouterOptions, Hasher, Route, Routes, Navigables, Params } from "./plumbing/types.js";
4
- export { Router } from "./router.js";
@@ -1,3 +0,0 @@
1
- export { route } from "./plumbing/braces.js";
2
- export { Router } from "./router.js";
3
- //# sourceMappingURL=index.barrel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.barrel.js","sourceRoot":"","sources":["../../s/spa/index.barrel.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAA;AAG1C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA"}
package/x/spa/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * as spa from "./index.barrel.js";
2
- export type * from "./index.barrel.js";
package/x/spa/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * as spa from "./index.barrel.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/spa/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA"}
@@ -1,12 +0,0 @@
1
- import { Hasher, Route } from "./types.js";
2
- import type { Content } from "../../view/types.js";
3
- type ParamKeys<S extends string> = S extends `${string}{${infer P}}${infer R}` ? (string & P) | ParamKeys<R> : never;
4
- type ParamsOf<S extends string> = [
5
- ParamKeys<S>
6
- ] extends [never] ? {} : {
7
- [K in ParamKeys<S>]: string;
8
- };
9
- type ParamsTuple<S extends string> = keyof ParamsOf<S> extends never ? [] : [ParamsOf<S>];
10
- export declare function hasher<S extends string>(spec: S): Hasher<ParamsTuple<S>>;
11
- export declare function route<S extends string>(spec: S, fn: (...params: ParamsTuple<S>) => Promise<Content>): Route<ParamsTuple<S>>;
12
- export {};
@@ -1,55 +0,0 @@
1
- export function hasher(spec) {
2
- if (!spec.startsWith("#/"))
3
- throw new Error(`hash route spec must start with "#/"`);
4
- const specparts = spec.split("/");
5
- const braceregex = /\{([^\}\/]+)\}/;
6
- function parse(hash) {
7
- if (!hash.startsWith("#/"))
8
- throw new Error(`hash must start with "#/"`);
9
- const hashparts = hash.split("/");
10
- const params = {};
11
- if (hashparts.length !== specparts.length)
12
- return null;
13
- for (const [index, specpart] of specparts.entries()) {
14
- const hashpart = hashparts.at(index);
15
- if (hashpart === undefined)
16
- return null;
17
- const bracematch = specpart.match(braceregex);
18
- try {
19
- if (bracematch)
20
- params[bracematch[1]] = decodeURIComponent(hashpart);
21
- else if (hashpart !== specpart)
22
- return null;
23
- }
24
- catch {
25
- return null;
26
- }
27
- }
28
- return (Object.keys(params).length === 0)
29
- ? []
30
- : [params];
31
- }
32
- function make(...[braces]) {
33
- const get = (param) => {
34
- const p = param;
35
- if (p in braces)
36
- return braces[p];
37
- else
38
- throw new Error(`missing param "${p}"`);
39
- };
40
- return specparts.map(specpart => {
41
- const bracematch = specpart.match(braceregex);
42
- return bracematch
43
- ? encodeURIComponent(get(bracematch[1]))
44
- : specpart;
45
- }).join("/");
46
- }
47
- return { parse, make };
48
- }
49
- export function route(spec, fn) {
50
- return {
51
- hasher: hasher(spec),
52
- fn,
53
- };
54
- }
55
- //# sourceMappingURL=braces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"braces.js","sourceRoot":"","sources":["../../../s/spa/plumbing/braces.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,MAAM,CAAmB,IAAO;IAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAExD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,UAAU,GAAG,gBAAgB,CAAA;IAEnC,SAAS,KAAK,CAAC,IAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,MAAM,GAA2B,EAAE,CAAA;QAEzC,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YACxC,OAAO,IAAI,CAAA;QAEZ,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAC7C,IAAI,CAAC;gBACJ,IAAI,UAAU;oBAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;qBAC/D,IAAI,QAAQ,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAA;YAC5C,CAAC;YACD,MAAM,CAAC;gBACN,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YACxC,CAAC,CAAE,EAAqB;YACxB,CAAC,CAAE,CAAC,MAAqB,CAAoB,CAAA;IAC/C,CAAC;IAED,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,CAAQ;QAC/B,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,KAAY,CAAA;YACtB,IAAI,CAAC,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;;gBAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAC7C,CAAC,CAAA;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAC7C,OAAO,UAAU;gBAChB,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC,CAAC,QAAQ,CAAA;QACZ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,IAAO,EACP,EAAmD;IAGpD,OAAO;QACN,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACpB,EAAE;KACF,CAAA;AACF,CAAC"}
@@ -1,22 +0,0 @@
1
- import { ResolvedRoute, Route, Params, Routes } from "./types.js";
2
- export declare function eraseWindowHash(): void;
3
- export declare function normalizeHash(hash: string): string;
4
- export declare class HashNormalizer {
5
- location: Location;
6
- constructor(location: Location);
7
- get hash(): string;
8
- set hash(hash: string);
9
- }
10
- export declare class Navigable<P extends any[] = any[]> {
11
- route: Route<P>;
12
- private isActive;
13
- go: (...params: P) => Promise<ResolvedRoute<P>>;
14
- static all<R extends Routes>(routes: R, getRoute: () => Route | null, navigate: (hash: string) => Promise<ResolvedRoute>): {
15
- [K in keyof R]: Navigable<Params<R[K]>>;
16
- };
17
- constructor(route: Route<P>, isActive: () => boolean, go: (...params: P) => Promise<ResolvedRoute<P>>);
18
- get active(): boolean;
19
- hash(...params: P): string;
20
- }
21
- export declare function resolveRoute<R extends Routes>(hash: string, routes: R): ResolvedRoute | null;
22
- export declare function onHashChange(fn: (event: HashChangeEvent) => void): () => void;
@@ -1,65 +0,0 @@
1
- import { ev, ob } from "@e280/stz";
2
- import { Op } from "../../ops/op.js";
3
- export function eraseWindowHash() {
4
- const { pathname, search } = window.location;
5
- history.replaceState(null, "", pathname + search);
6
- }
7
- export function normalizeHash(hash) {
8
- const homeEquivalents = [/^$/, /^#$/, /^#\/$/];
9
- return (homeEquivalents.some(regex => regex.test(hash)))
10
- ? "#/"
11
- : hash;
12
- }
13
- export class HashNormalizer {
14
- location;
15
- constructor(location) {
16
- this.location = location;
17
- }
18
- get hash() {
19
- const hash = normalizeHash(this.location.hash);
20
- if (hash === "#/")
21
- eraseWindowHash();
22
- return hash;
23
- }
24
- set hash(hash) {
25
- this.location.hash = hash;
26
- }
27
- }
28
- export class Navigable {
29
- route;
30
- isActive;
31
- go;
32
- static all(routes, getRoute, navigate) {
33
- return ob(routes).map(route => new this(route, () => (getRoute() === route), async (...params) => navigate(route.hasher.make(...params))));
34
- }
35
- constructor(route, isActive, go) {
36
- this.route = route;
37
- this.isActive = isActive;
38
- this.go = go;
39
- }
40
- get active() {
41
- return this.isActive();
42
- }
43
- hash(...params) {
44
- return this.route.hasher.make(...params);
45
- }
46
- }
47
- export function resolveRoute(hash, routes) {
48
- for (const key in routes) {
49
- const route = routes[key];
50
- const params = route.hasher.parse(hash);
51
- if (params) {
52
- return {
53
- key,
54
- route,
55
- params,
56
- op: Op.promise(route.fn(...params))
57
- };
58
- }
59
- }
60
- return null;
61
- }
62
- export function onHashChange(fn) {
63
- return ev(window, { hashchange: fn });
64
- }
65
- //# sourceMappingURL=primitives.js.map