@typed/template 0.1.0

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 (285) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/cjs/Directive.js +76 -0
  4. package/dist/cjs/Directive.js.map +1 -0
  5. package/dist/cjs/ElementRef.js +83 -0
  6. package/dist/cjs/ElementRef.js.map +1 -0
  7. package/dist/cjs/ElementSource.js +244 -0
  8. package/dist/cjs/ElementSource.js.map +1 -0
  9. package/dist/cjs/Entry.js +6 -0
  10. package/dist/cjs/Entry.js.map +1 -0
  11. package/dist/cjs/EventHandler.js +65 -0
  12. package/dist/cjs/EventHandler.js.map +1 -0
  13. package/dist/cjs/Html.js +169 -0
  14. package/dist/cjs/Html.js.map +1 -0
  15. package/dist/cjs/HtmlChunk.js +257 -0
  16. package/dist/cjs/HtmlChunk.js.map +1 -0
  17. package/dist/cjs/Hydrate.js +49 -0
  18. package/dist/cjs/Hydrate.js.map +1 -0
  19. package/dist/cjs/Many.js +45 -0
  20. package/dist/cjs/Many.js.map +1 -0
  21. package/dist/cjs/Meta.js +37 -0
  22. package/dist/cjs/Meta.js.map +1 -0
  23. package/dist/cjs/Parser.js +331 -0
  24. package/dist/cjs/Parser.js.map +1 -0
  25. package/dist/cjs/Part.js +6 -0
  26. package/dist/cjs/Part.js.map +1 -0
  27. package/dist/cjs/Placeholder.js +38 -0
  28. package/dist/cjs/Placeholder.js.map +1 -0
  29. package/dist/cjs/Platform.js +64 -0
  30. package/dist/cjs/Platform.js.map +1 -0
  31. package/dist/cjs/Render.js +39 -0
  32. package/dist/cjs/Render.js.map +1 -0
  33. package/dist/cjs/RenderContext.js +130 -0
  34. package/dist/cjs/RenderContext.js.map +1 -0
  35. package/dist/cjs/RenderEvent.js +44 -0
  36. package/dist/cjs/RenderEvent.js.map +1 -0
  37. package/dist/cjs/RenderTemplate.js +41 -0
  38. package/dist/cjs/RenderTemplate.js.map +1 -0
  39. package/dist/cjs/Renderable.js +6 -0
  40. package/dist/cjs/Renderable.js.map +1 -0
  41. package/dist/cjs/Template.js +266 -0
  42. package/dist/cjs/Template.js.map +1 -0
  43. package/dist/cjs/TemplateInstance.js +51 -0
  44. package/dist/cjs/TemplateInstance.js.map +1 -0
  45. package/dist/cjs/Test.js +90 -0
  46. package/dist/cjs/Test.js.map +1 -0
  47. package/dist/cjs/Token.js +270 -0
  48. package/dist/cjs/Token.js.map +1 -0
  49. package/dist/cjs/Tokenizer.js +18 -0
  50. package/dist/cjs/Tokenizer.js.map +1 -0
  51. package/dist/cjs/Vitest.js +44 -0
  52. package/dist/cjs/Vitest.js.map +1 -0
  53. package/dist/cjs/index.js +147 -0
  54. package/dist/cjs/index.js.map +1 -0
  55. package/dist/cjs/internal/HydrateContext.js +13 -0
  56. package/dist/cjs/internal/HydrateContext.js.map +1 -0
  57. package/dist/cjs/internal/browser.js +109 -0
  58. package/dist/cjs/internal/browser.js.map +1 -0
  59. package/dist/cjs/internal/chunks.js +54 -0
  60. package/dist/cjs/internal/chunks.js.map +1 -0
  61. package/dist/cjs/internal/errors.js +23 -0
  62. package/dist/cjs/internal/errors.js.map +1 -0
  63. package/dist/cjs/internal/hydrate.js +197 -0
  64. package/dist/cjs/internal/hydrate.js.map +1 -0
  65. package/dist/cjs/internal/indexRefCounter.js +32 -0
  66. package/dist/cjs/internal/indexRefCounter.js.map +1 -0
  67. package/dist/cjs/internal/module-augmentation.js +6 -0
  68. package/dist/cjs/internal/module-augmentation.js.map +1 -0
  69. package/dist/cjs/internal/parser.js +492 -0
  70. package/dist/cjs/internal/parser.js.map +1 -0
  71. package/dist/cjs/internal/parts.js +350 -0
  72. package/dist/cjs/internal/parts.js.map +1 -0
  73. package/dist/cjs/internal/readAttribute.js +34 -0
  74. package/dist/cjs/internal/readAttribute.js.map +1 -0
  75. package/dist/cjs/internal/render.js +332 -0
  76. package/dist/cjs/internal/render.js.map +1 -0
  77. package/dist/cjs/internal/server.js +219 -0
  78. package/dist/cjs/internal/server.js.map +1 -0
  79. package/dist/cjs/internal/tokenizer.js +264 -0
  80. package/dist/cjs/internal/tokenizer.js.map +1 -0
  81. package/dist/cjs/internal/utils.js +68 -0
  82. package/dist/cjs/internal/utils.js.map +1 -0
  83. package/dist/dts/Directive.d.ts +70 -0
  84. package/dist/dts/Directive.d.ts.map +1 -0
  85. package/dist/dts/ElementRef.d.ts +40 -0
  86. package/dist/dts/ElementRef.d.ts.map +1 -0
  87. package/dist/dts/ElementSource.d.ts +72 -0
  88. package/dist/dts/ElementSource.d.ts.map +1 -0
  89. package/dist/dts/Entry.d.ts +26 -0
  90. package/dist/dts/Entry.d.ts.map +1 -0
  91. package/dist/dts/EventHandler.d.ts +61 -0
  92. package/dist/dts/EventHandler.d.ts.map +1 -0
  93. package/dist/dts/Html.d.ts +17 -0
  94. package/dist/dts/Html.d.ts.map +1 -0
  95. package/dist/dts/HtmlChunk.d.ts +56 -0
  96. package/dist/dts/HtmlChunk.d.ts.map +1 -0
  97. package/dist/dts/Hydrate.d.ts +20 -0
  98. package/dist/dts/Hydrate.d.ts.map +1 -0
  99. package/dist/dts/Many.d.ts +32 -0
  100. package/dist/dts/Many.d.ts.map +1 -0
  101. package/dist/dts/Meta.d.ts +24 -0
  102. package/dist/dts/Meta.d.ts.map +1 -0
  103. package/dist/dts/Parser.d.ts +16 -0
  104. package/dist/dts/Parser.d.ts.map +1 -0
  105. package/dist/dts/Part.d.ts +147 -0
  106. package/dist/dts/Part.d.ts.map +1 -0
  107. package/dist/dts/Placeholder.d.ts +51 -0
  108. package/dist/dts/Placeholder.d.ts.map +1 -0
  109. package/dist/dts/Platform.d.ts +23 -0
  110. package/dist/dts/Platform.d.ts.map +1 -0
  111. package/dist/dts/Render.d.ts +23 -0
  112. package/dist/dts/Render.d.ts.map +1 -0
  113. package/dist/dts/RenderContext.d.ts +88 -0
  114. package/dist/dts/RenderContext.d.ts.map +1 -0
  115. package/dist/dts/RenderEvent.d.ts +37 -0
  116. package/dist/dts/RenderEvent.d.ts.map +1 -0
  117. package/dist/dts/RenderTemplate.d.ts +38 -0
  118. package/dist/dts/RenderTemplate.d.ts.map +1 -0
  119. package/dist/dts/Renderable.d.ts +28 -0
  120. package/dist/dts/Renderable.d.ts.map +1 -0
  121. package/dist/dts/Template.d.ts +218 -0
  122. package/dist/dts/Template.d.ts.map +1 -0
  123. package/dist/dts/TemplateInstance.d.ts +32 -0
  124. package/dist/dts/TemplateInstance.d.ts.map +1 -0
  125. package/dist/dts/Test.d.ts +58 -0
  126. package/dist/dts/Test.d.ts.map +1 -0
  127. package/dist/dts/Token.d.ts +202 -0
  128. package/dist/dts/Token.d.ts.map +1 -0
  129. package/dist/dts/Tokenizer.d.ts +6 -0
  130. package/dist/dts/Tokenizer.d.ts.map +1 -0
  131. package/dist/dts/Vitest.d.ts +28 -0
  132. package/dist/dts/Vitest.d.ts.map +1 -0
  133. package/dist/dts/index.d.ts +65 -0
  134. package/dist/dts/index.d.ts.map +1 -0
  135. package/dist/dts/internal/HydrateContext.d.ts +2 -0
  136. package/dist/dts/internal/HydrateContext.d.ts.map +1 -0
  137. package/dist/dts/internal/browser.d.ts +8 -0
  138. package/dist/dts/internal/browser.d.ts.map +1 -0
  139. package/dist/dts/internal/chunks.d.ts +22 -0
  140. package/dist/dts/internal/chunks.d.ts.map +1 -0
  141. package/dist/dts/internal/errors.d.ts +9 -0
  142. package/dist/dts/internal/errors.d.ts.map +1 -0
  143. package/dist/dts/internal/hydrate.d.ts +37 -0
  144. package/dist/dts/internal/hydrate.d.ts.map +1 -0
  145. package/dist/dts/internal/indexRefCounter.d.ts +6 -0
  146. package/dist/dts/internal/indexRefCounter.d.ts.map +1 -0
  147. package/dist/dts/internal/module-augmentation.d.ts +36 -0
  148. package/dist/dts/internal/module-augmentation.d.ts.map +1 -0
  149. package/dist/dts/internal/parser.d.ts +12 -0
  150. package/dist/dts/internal/parser.d.ts.map +1 -0
  151. package/dist/dts/internal/parts.d.ts +304 -0
  152. package/dist/dts/internal/parts.d.ts.map +1 -0
  153. package/dist/dts/internal/readAttribute.d.ts +9 -0
  154. package/dist/dts/internal/readAttribute.d.ts.map +1 -0
  155. package/dist/dts/internal/render.d.ts +30 -0
  156. package/dist/dts/internal/render.d.ts.map +1 -0
  157. package/dist/dts/internal/server.d.ts +31 -0
  158. package/dist/dts/internal/server.d.ts.map +1 -0
  159. package/dist/dts/internal/tokenizer.d.ts +3 -0
  160. package/dist/dts/internal/tokenizer.d.ts.map +1 -0
  161. package/dist/dts/internal/utils.d.ts +15 -0
  162. package/dist/dts/internal/utils.d.ts.map +1 -0
  163. package/dist/esm/Directive.js +64 -0
  164. package/dist/esm/Directive.js.map +1 -0
  165. package/dist/esm/ElementRef.js +72 -0
  166. package/dist/esm/ElementRef.js.map +1 -0
  167. package/dist/esm/ElementSource.js +237 -0
  168. package/dist/esm/ElementSource.js.map +1 -0
  169. package/dist/esm/Entry.js +2 -0
  170. package/dist/esm/Entry.js.map +1 -0
  171. package/dist/esm/EventHandler.js +52 -0
  172. package/dist/esm/EventHandler.js.map +1 -0
  173. package/dist/esm/Html.js +167 -0
  174. package/dist/esm/Html.js.map +1 -0
  175. package/dist/esm/HtmlChunk.js +274 -0
  176. package/dist/esm/HtmlChunk.js.map +1 -0
  177. package/dist/esm/Hydrate.js +37 -0
  178. package/dist/esm/Hydrate.js.map +1 -0
  179. package/dist/esm/Many.js +33 -0
  180. package/dist/esm/Many.js.map +1 -0
  181. package/dist/esm/Meta.js +29 -0
  182. package/dist/esm/Meta.js.map +1 -0
  183. package/dist/esm/Parser.js +342 -0
  184. package/dist/esm/Parser.js.map +1 -0
  185. package/dist/esm/Part.js +5 -0
  186. package/dist/esm/Part.js.map +1 -0
  187. package/dist/esm/Placeholder.js +30 -0
  188. package/dist/esm/Placeholder.js.map +1 -0
  189. package/dist/esm/Platform.js +41 -0
  190. package/dist/esm/Platform.js.map +1 -0
  191. package/dist/esm/Render.js +27 -0
  192. package/dist/esm/Render.js.map +1 -0
  193. package/dist/esm/RenderContext.js +113 -0
  194. package/dist/esm/RenderContext.js.map +1 -0
  195. package/dist/esm/RenderEvent.js +36 -0
  196. package/dist/esm/RenderEvent.js.map +1 -0
  197. package/dist/esm/RenderTemplate.js +26 -0
  198. package/dist/esm/RenderTemplate.js.map +1 -0
  199. package/dist/esm/Renderable.js +2 -0
  200. package/dist/esm/Renderable.js.map +1 -0
  201. package/dist/esm/Template.js +239 -0
  202. package/dist/esm/Template.js.map +1 -0
  203. package/dist/esm/TemplateInstance.js +43 -0
  204. package/dist/esm/TemplateInstance.js.map +1 -0
  205. package/dist/esm/Test.js +68 -0
  206. package/dist/esm/Test.js.map +1 -0
  207. package/dist/esm/Token.js +264 -0
  208. package/dist/esm/Token.js.map +1 -0
  209. package/dist/esm/Tokenizer.js +9 -0
  210. package/dist/esm/Tokenizer.js.map +1 -0
  211. package/dist/esm/Vitest.js +29 -0
  212. package/dist/esm/Vitest.js.map +1 -0
  213. package/dist/esm/index.js +65 -0
  214. package/dist/esm/index.js.map +1 -0
  215. package/dist/esm/internal/HydrateContext.js +7 -0
  216. package/dist/esm/internal/HydrateContext.js.map +1 -0
  217. package/dist/esm/internal/browser.js +102 -0
  218. package/dist/esm/internal/browser.js.map +1 -0
  219. package/dist/esm/internal/chunks.js +47 -0
  220. package/dist/esm/internal/chunks.js.map +1 -0
  221. package/dist/esm/internal/errors.js +15 -0
  222. package/dist/esm/internal/errors.js.map +1 -0
  223. package/dist/esm/internal/hydrate.js +165 -0
  224. package/dist/esm/internal/hydrate.js.map +1 -0
  225. package/dist/esm/internal/indexRefCounter.js +24 -0
  226. package/dist/esm/internal/indexRefCounter.js.map +1 -0
  227. package/dist/esm/internal/module-augmentation.js +2 -0
  228. package/dist/esm/internal/module-augmentation.js.map +1 -0
  229. package/dist/esm/internal/parser.js +493 -0
  230. package/dist/esm/internal/parser.js.map +1 -0
  231. package/dist/esm/internal/parts.js +291 -0
  232. package/dist/esm/internal/parts.js.map +1 -0
  233. package/dist/esm/internal/readAttribute.js +24 -0
  234. package/dist/esm/internal/readAttribute.js.map +1 -0
  235. package/dist/esm/internal/render.js +329 -0
  236. package/dist/esm/internal/render.js.map +1 -0
  237. package/dist/esm/internal/server.js +174 -0
  238. package/dist/esm/internal/server.js.map +1 -0
  239. package/dist/esm/internal/tokenizer.js +296 -0
  240. package/dist/esm/internal/tokenizer.js.map +1 -0
  241. package/dist/esm/internal/utils.js +52 -0
  242. package/dist/esm/internal/utils.js.map +1 -0
  243. package/dist/esm/package.json +4 -0
  244. package/package.json +242 -0
  245. package/src/Directive.ts +114 -0
  246. package/src/ElementRef.ts +123 -0
  247. package/src/ElementSource.ts +417 -0
  248. package/src/Entry.ts +28 -0
  249. package/src/EventHandler.ts +104 -0
  250. package/src/Html.ts +258 -0
  251. package/src/HtmlChunk.ts +346 -0
  252. package/src/Hydrate.ts +53 -0
  253. package/src/Many.ts +128 -0
  254. package/src/Meta.ts +32 -0
  255. package/src/Parser.ts +457 -0
  256. package/src/Part.ts +186 -0
  257. package/src/Placeholder.ts +70 -0
  258. package/src/Platform.ts +71 -0
  259. package/src/Render.ts +45 -0
  260. package/src/RenderContext.ts +221 -0
  261. package/src/RenderEvent.ts +67 -0
  262. package/src/RenderTemplate.ts +88 -0
  263. package/src/Renderable.ts +34 -0
  264. package/src/Template.ts +284 -0
  265. package/src/TemplateInstance.ts +83 -0
  266. package/src/Test.ts +151 -0
  267. package/src/Token.ts +269 -0
  268. package/src/Tokenizer.ts +10 -0
  269. package/src/Vitest.ts +61 -0
  270. package/src/index.ts +66 -0
  271. package/src/internal/HydrateContext.ts +23 -0
  272. package/src/internal/browser.ts +132 -0
  273. package/src/internal/chunks.ts +73 -0
  274. package/src/internal/errors.ts +11 -0
  275. package/src/internal/external.d.ts +11 -0
  276. package/src/internal/hydrate.ts +262 -0
  277. package/src/internal/indexRefCounter.ts +33 -0
  278. package/src/internal/module-augmentation.ts +48 -0
  279. package/src/internal/parser.ts +637 -0
  280. package/src/internal/parts.ts +527 -0
  281. package/src/internal/readAttribute.ts +28 -0
  282. package/src/internal/render.ts +529 -0
  283. package/src/internal/server.ts +293 -0
  284. package/src/internal/tokenizer.ts +338 -0
  285. package/src/internal/utils.ts +73 -0
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.tokenize = tokenize;
7
+ var Token = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Token"));
8
+ var _chunks = /*#__PURE__*/require("./chunks");
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function tokenize(template) {
12
+ return new Tokenizer(template);
13
+ }
14
+ function templateWithParts(template) {
15
+ const length = template.length;
16
+ const lastIndex = length - 1;
17
+ let output = "";
18
+ for (let i = 0; i < length; i++) {
19
+ const str = template[i];
20
+ if (i === lastIndex) {
21
+ output += str;
22
+ } else {
23
+ output += str + (0, _chunks.PART_STRING)(i);
24
+ }
25
+ }
26
+ return output;
27
+ }
28
+ class Tokenizer {
29
+ template;
30
+ input = "";
31
+ pos = 0;
32
+ context = "text";
33
+ currentTag = null;
34
+ constructor(template) {
35
+ this.template = template;
36
+ }
37
+ *[Symbol.iterator]() {
38
+ this.init();
39
+ // eslint-disable-next-line no-constant-condition
40
+ while (this.pos < this.input.length) {
41
+ switch (this.context) {
42
+ case "element":
43
+ yield* this.nextElementToken();
44
+ break;
45
+ case "self-closing":
46
+ yield* this.nextSelfClosingToken();
47
+ break;
48
+ case "text-only":
49
+ yield* this.nextTextOnlyToken();
50
+ break;
51
+ default:
52
+ yield* this.nextTextToken();
53
+ }
54
+ }
55
+ }
56
+ init() {
57
+ // Convert our template into a string for easier tokenization
58
+ // Remove any whitespace at the beginning or end of the template since we don't care about it.
59
+ this.input = this.template.length === 1 ? this.template[0] : templateWithParts(this.template);
60
+ }
61
+ *nextTextToken() {
62
+ const char = this.nextChar();
63
+ const isOpenBracket = char === "<";
64
+ let next;
65
+ if (isOpenBracket && (next = this.chunk(_chunks.getOpeningTag))) {
66
+ const name = next.match[2];
67
+ this.pushTag(name);
68
+ this.context = Token.SELF_CLOSING_TAGS.has(name) ? "self-closing" : Token.TEXT_ONLY_NODES_REGEX.has(name) ? "text-only" : "element";
69
+ yield new Token.OpeningTagToken(name);
70
+ } else if (isOpenBracket && (next = this.chunk(_chunks.getClosingTag))) {
71
+ yield new Token.ClosingTagToken(next.match[3]);
72
+ this.popTag();
73
+ } else if (isOpenBracket && (next = this.chunk(_chunks.getComment))) {
74
+ yield* this.parseComment(next.match[2]);
75
+ } else if (next = this.chunk(_chunks.getPart)) {
76
+ yield new Token.PartToken(parseInt(next.match[2], 10));
77
+ } else if (next = this.chunk(_chunks.getWhitespace)) {
78
+ yield new Token.TextToken(next.match[1]);
79
+ } else if (next = this.chunk(_chunks.getTextUntilCloseBrace)) {
80
+ yield* parseTextAndParts(next.match[1]);
81
+ } else {
82
+ yield new Token.TextToken(this.takeNextChar());
83
+ }
84
+ }
85
+ *nextElementToken() {
86
+ let next;
87
+ if (next = this.chunk(_chunks.getAttributeWithQuotes)) {
88
+ yield* this.parseAttribute(next.match[2], next.match[4]);
89
+ } else if (next = this.chunk(_chunks.getAttributeWithoutQuotes)) {
90
+ yield* this.parseAttribute(next.match[2], next.match[4]);
91
+ } else if (next = this.chunk(_chunks.getOpeningTagEnd)) {
92
+ this.context = "text";
93
+ yield new Token.OpeningTagEndToken(this.currentTag.value);
94
+ } else if (next = this.chunk(_chunks.getSelfClosingTagEnd)) {
95
+ yield new Token.OpeningTagEndToken(this.currentTag.value, false);
96
+ yield new Token.ClosingTagToken(this.currentTag.value);
97
+ this.popTag();
98
+ this.context = "text";
99
+ } else if (next = this.chunk(_chunks.getBooleanAttribute)) {
100
+ yield new Token.BooleanAttributeToken(next.match[2]);
101
+ } else if (next = this.chunk(_chunks.getWhitespace)) {
102
+ // Continue
103
+ } else {
104
+ this.invalidTemplate();
105
+ }
106
+ }
107
+ *nextSelfClosingToken() {
108
+ let next;
109
+ if (next = this.chunk(_chunks.getAttributeWithQuotes)) {
110
+ yield* this.parseAttribute(next.match[2], next.match[4]);
111
+ } else if (next = this.chunk(_chunks.getAttributeWithoutQuotes)) {
112
+ yield* this.parseAttribute(next.match[2], next.match[4]);
113
+ } else if (next = this.chunk(_chunks.getSelfClosingTagEnd)) {
114
+ yield new Token.OpeningTagEndToken(this.currentTag.value, true);
115
+ this.popTag();
116
+ this.context = "text";
117
+ } else if (next = this.chunk(_chunks.getBooleanAttribute)) {
118
+ yield new Token.BooleanAttributeToken(next.match[2]);
119
+ } else {
120
+ this.invalidTemplate();
121
+ }
122
+ }
123
+ *nextTextOnlyToken() {
124
+ let next;
125
+ if (next = this.chunk(_chunks.getAttributeWithQuotes)) {
126
+ yield* this.parseAttribute(next.match[2], next.match[4]);
127
+ } else if (next = this.chunk(_chunks.getAttributeWithoutQuotes)) {
128
+ yield* this.parseAttribute(next.match[2], next.match[4]);
129
+ } else if (next = this.chunk(_chunks.getOpeningTagEnd)) {
130
+ yield new Token.OpeningTagEndToken(this.currentTag.value);
131
+ } else if (next = this.chunk(_chunks.getClosingTag)) {
132
+ yield new Token.ClosingTagToken(next.match[3]);
133
+ this.context = "text";
134
+ } else if (next = this.chunk((0, _chunks.getAllTextUntilElementClose)(this.currentTag.value))) {
135
+ const text = next.match[1];
136
+ if (_chunks.PART_REGEX.test(text)) {
137
+ yield* parseTextAndParts(text);
138
+ } else {
139
+ yield new Token.TextToken(text);
140
+ }
141
+ this.context = "text";
142
+ } else {
143
+ this.invalidTemplate();
144
+ }
145
+ }
146
+ *parseComment(comment) {
147
+ const parts = Array.from(parseTextAndParts(comment));
148
+ if (parts.length === 1 && parts[0]._tag === "text") {
149
+ yield new Token.CommentToken(parts[0].value);
150
+ return;
151
+ }
152
+ yield new Token.CommentStartToken("<!--");
153
+ for (const part of parts) {
154
+ yield part;
155
+ }
156
+ yield new Token.CommentEndToken("-->");
157
+ }
158
+ *parseAttribute(name, value) {
159
+ const parts = Array.from(parseTextAndParts(value));
160
+ if (value === "") {
161
+ yield new Token.BooleanAttributeToken(name);
162
+ return;
163
+ }
164
+ if (parts.length === 1 && parts[0]._tag === "text") {
165
+ yield getAttributeToken(name, value);
166
+ return;
167
+ }
168
+ yield getAttributeTokenPartial(name, "start");
169
+ for (const part of parts) {
170
+ yield part;
171
+ }
172
+ yield getAttributeTokenPartial(name, "end");
173
+ }
174
+ nextChar() {
175
+ return this.input.charAt(this.pos);
176
+ }
177
+ takeNextChar() {
178
+ const text = this.input.substring(this.pos, this.pos + 1);
179
+ this.pos += 1;
180
+ return text;
181
+ }
182
+ chunk(f) {
183
+ const chunk = f(this.input, this.pos);
184
+ if (chunk) {
185
+ this.pos += chunk.length;
186
+ }
187
+ return chunk;
188
+ }
189
+ pushTag(name) {
190
+ this.currentTag = new Stack(name, this.currentTag);
191
+ }
192
+ popTag() {
193
+ if (this.currentTag) {
194
+ this.currentTag = this.currentTag.previous;
195
+ }
196
+ }
197
+ invalidTemplate() {
198
+ let message = `Invalid template ${this.input}`;
199
+ message += "\n\nFrom:\n\n";
200
+ message += this.input.substring(this.pos);
201
+ throw new SyntaxError(message);
202
+ }
203
+ }
204
+ class Stack {
205
+ value;
206
+ previous;
207
+ constructor(value, previous) {
208
+ this.value = value;
209
+ this.previous = previous;
210
+ }
211
+ }
212
+ function* parseTextAndParts(s) {
213
+ let next;
214
+ let pos = 0;
215
+ while (pos < s.length) {
216
+ if (next = (0, _chunks.getPart)(s, pos)) {
217
+ yield new Token.PartToken(parseInt(next.match[2], 10));
218
+ pos += next.length;
219
+ } else if (next = (0, _chunks.getTextUntilPart)(s, pos)) {
220
+ yield new Token.TextToken(next.match[1]);
221
+ pos += next.length;
222
+ } else {
223
+ yield new Token.TextToken(s.substring(pos));
224
+ break;
225
+ }
226
+ }
227
+ }
228
+ function getAttributeTokenPartial(name, ctx) {
229
+ switch (name[0]) {
230
+ case "?":
231
+ return ctx === "start" ? new Token.BooleanAttributeStartToken(name.substring(1)) : new Token.BooleanAttributeEndToken(name.substring(1));
232
+ case ".":
233
+ {
234
+ const propertyName = name.substring(1);
235
+ switch (propertyName) {
236
+ case "data":
237
+ return ctx === "start" ? new Token.DataAttributeStartToken() : new Token.DataAttributeEndToken();
238
+ default:
239
+ return ctx === "start" ? new Token.PropertyAttributeStartToken(propertyName) : new Token.PropertyAttributeEndToken(propertyName);
240
+ }
241
+ }
242
+ case "@":
243
+ return ctx === "start" ? new Token.EventAttributeStartToken(name.substring(1)) : new Token.EventAttributeEndToken(name.substring(1));
244
+ case "o":
245
+ if (name[1] === "n") {
246
+ return ctx === "start" ? new Token.EventAttributeStartToken(name.substring(2)) : new Token.EventAttributeEndToken(name.substring(2));
247
+ }
248
+ }
249
+ switch (name.toLowerCase()) {
250
+ case "class":
251
+ case "classname":
252
+ return ctx === "start" ? new Token.ClassNameAttributeStartToken() : new Token.ClassNameAttributeEndToken();
253
+ case "ref":
254
+ return ctx === "start" ? new Token.RefAttributeStartToken() : new Token.RefAttributeEndToken();
255
+ }
256
+ return ctx === "start" ? new Token.AttributeStartToken(name) : new Token.AttributeEndToken(name);
257
+ }
258
+ function getAttributeToken(name, value) {
259
+ if (name[0] === "?") {
260
+ return new Token.BooleanAttributeToken(name.substring(1));
261
+ }
262
+ return new Token.AttributeToken(name, value);
263
+ }
264
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","names":["Token","_interopRequireWildcard","require","_chunks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","tokenize","template","Tokenizer","templateWithParts","length","lastIndex","output","str","PART_STRING","input","pos","context","currentTag","constructor","Symbol","iterator","init","nextElementToken","nextSelfClosingToken","nextTextOnlyToken","nextTextToken","char","nextChar","isOpenBracket","next","chunk","getOpeningTag","name","match","pushTag","SELF_CLOSING_TAGS","TEXT_ONLY_NODES_REGEX","OpeningTagToken","getClosingTag","ClosingTagToken","popTag","getComment","parseComment","getPart","PartToken","parseInt","getWhitespace","TextToken","getTextUntilCloseBrace","parseTextAndParts","takeNextChar","getAttributeWithQuotes","parseAttribute","getAttributeWithoutQuotes","getOpeningTagEnd","OpeningTagEndToken","value","getSelfClosingTagEnd","getBooleanAttribute","BooleanAttributeToken","invalidTemplate","getAllTextUntilElementClose","text","PART_REGEX","test","comment","parts","Array","from","_tag","CommentToken","CommentStartToken","part","CommentEndToken","getAttributeToken","getAttributeTokenPartial","charAt","substring","f","Stack","previous","message","SyntaxError","s","getTextUntilPart","ctx","BooleanAttributeStartToken","BooleanAttributeEndToken","propertyName","DataAttributeStartToken","DataAttributeEndToken","PropertyAttributeStartToken","PropertyAttributeEndToken","EventAttributeStartToken","EventAttributeEndToken","toLowerCase","ClassNameAttributeStartToken","ClassNameAttributeEndToken","RefAttributeStartToken","RefAttributeEndToken","AttributeStartToken","AttributeEndToken","AttributeToken"],"sources":["../../../src/internal/tokenizer.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.adjustTime = adjustTime;
7
+ exports.findHoleComment = findHoleComment;
8
+ exports.findPath = void 0;
9
+ exports.getPreviousNodes = getPreviousNodes;
10
+ exports.isComment = isComment;
11
+ exports.isCommentWithValue = isCommentWithValue;
12
+ exports.isHtmlElement = isHtmlElement;
13
+ var _context = /*#__PURE__*/require("@typed/context");
14
+ var Chunk = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Chunk"));
15
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
16
+ var _Option = /*#__PURE__*/require("effect/Option");
17
+ var _TestClock = /*#__PURE__*/require("effect/TestClock");
18
+ var _Meta = /*#__PURE__*/require("../Meta");
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ function isComment(node) {
22
+ return node.nodeType === node.COMMENT_NODE;
23
+ }
24
+ function isCommentWithValue(node, value) {
25
+ return isComment(node) && node.nodeValue === value;
26
+ }
27
+ function isHtmlElement(node) {
28
+ return node.nodeType === node.ELEMENT_NODE;
29
+ }
30
+ function findHoleComment(parent, index) {
31
+ const childNodes = parent.childNodes;
32
+ for (let i = 0; i < childNodes.length; ++i) {
33
+ const node = childNodes[i];
34
+ if (node.nodeType === 8 && node.nodeValue === `hole${index}`) {
35
+ return node;
36
+ }
37
+ }
38
+ throw new Error(`Unable to find hole comment for index ${index}`);
39
+ }
40
+ const previousComments = /*#__PURE__*/new Set([_Meta.TEXT_START, _Meta.TYPED_START]);
41
+ function getPreviousNodes(comment, index) {
42
+ const nodes = [];
43
+ let node = comment.previousSibling;
44
+ const previousHole = `hole${index - 1}`;
45
+ previousComments.add(previousHole);
46
+ while (node && !previousComments.has(String(node.nodeValue))) {
47
+ nodes.unshift(node);
48
+ node = node.previousSibling;
49
+ }
50
+ previousComments.delete(previousHole);
51
+ return nodes;
52
+ }
53
+ const findPath = (node, path) => Chunk.reduce(path, node, ({
54
+ childNodes
55
+ }, index) => childNodes[index]);
56
+ exports.findPath = findPath;
57
+ function adjustTime(input) {
58
+ return Effect.gen(function* (_) {
59
+ const ctx = yield* _(Effect.context());
60
+ const testClock = (0, _context.getOption)(ctx, _TestClock.TestClock);
61
+ if ((0, _Option.isSome)(testClock)) {
62
+ yield* _(testClock.value.adjust(input ?? 1));
63
+ } else if (input) {
64
+ yield* _(Effect.sleep(input));
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["_context","require","Chunk","_interopRequireWildcard","Effect","_Option","_TestClock","_Meta","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","isComment","node","nodeType","COMMENT_NODE","isCommentWithValue","value","nodeValue","isHtmlElement","ELEMENT_NODE","findHoleComment","parent","index","childNodes","length","Error","previousComments","Set","TEXT_START","TYPED_START","getPreviousNodes","comment","nodes","previousSibling","previousHole","add","String","unshift","delete","findPath","path","reduce","exports","adjustTime","input","gen","_","ctx","context","testClock","getOption","TestClock","isSome","adjust","sleep"],"sources":["../../../src/internal/utils.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Effect from "effect/Effect";
5
+ import type * as Part from "./Part";
6
+ import type { Placeholder } from "./Placeholder";
7
+ /**
8
+ * @since 1.0.0
9
+ */
10
+ export declare const DirectiveTypeId: unique symbol;
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export type DirectiveTypeId = typeof DirectiveTypeId;
15
+ /**
16
+ * @since 1.0.0
17
+ */
18
+ export interface Directive<R, E> extends Placeholder<R, E, unknown> {
19
+ readonly [DirectiveTypeId]: DirectiveTypeId;
20
+ (part: Part.Part): Effect.Effect<R, E, unknown>;
21
+ }
22
+ /**
23
+ * @since 1.0.0
24
+ */
25
+ export declare function Directive<R, E>(directive: (part: Part.Part) => Effect.Effect<R, E, unknown>): Directive<R, E>;
26
+ /**
27
+ * @since 1.0.0
28
+ */
29
+ export declare const attribute: <R, E>(directive: (part: Part.AttributePart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
30
+ /**
31
+ * @since 1.0.0
32
+ */
33
+ export declare const boolean: <R, E>(directive: (part: Part.BooleanPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
34
+ /**
35
+ * @since 1.0.0
36
+ */
37
+ export declare const className: <R, E>(directive: (part: Part.ClassNamePart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
38
+ /**
39
+ * @since 1.0.0
40
+ */
41
+ export declare const data: <R, E>(directive: (part: Part.DataPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
42
+ /**
43
+ * @since 1.0.0
44
+ */
45
+ export declare const event: <R, E>(directive: (part: Part.EventPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+ export declare const property: <R, E>(directive: (part: Part.PropertyPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
50
+ /**
51
+ * @since 1.0.0
52
+ */
53
+ export declare const ref: <R, E>(directive: (part: Part.RefPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
54
+ /**
55
+ * @since 1.0.0
56
+ */
57
+ export declare const comment: <R, E>(directive: (part: Part.CommentPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
58
+ /**
59
+ * @since 1.0.0
60
+ */
61
+ export declare const text: <R, E>(directive: (part: Part.TextPart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
62
+ /**
63
+ * @since 1.0.0
64
+ */
65
+ export declare const node: <R, E>(directive: (part: Part.NodePart) => Effect.Effect<R, E, unknown>) => Directive<R, E>;
66
+ /**
67
+ * @since 1.0.0
68
+ */
69
+ export declare function isDirective<R, E>(renderable: unknown): renderable is Directive<R, E>;
70
+ //# sourceMappingURL=Directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Directive.d.ts","sourceRoot":"","sources":["../../src/Directive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import * as RefSubject from "@typed/fx/RefSubject";
2
+ import type { Versioned } from "@typed/fx/Versioned";
3
+ import { type Rendered } from "@typed/wire";
4
+ import type { Scope } from "effect";
5
+ import { Effect, Option } from "effect";
6
+ import type { NoSuchElementException } from "effect/Cause";
7
+ import { ElementSource } from "./ElementSource";
8
+ export declare const ElementRefTypeId: unique symbol;
9
+ export type ElementRefTypeId = typeof ElementRefTypeId;
10
+ /**
11
+ * A reference to a rendered element.
12
+ * @since 1.0.0
13
+ */
14
+ export interface ElementRef<T extends Rendered = Rendered> extends Versioned<never, never, never, never, T, never, NoSuchElementException, T> {
15
+ readonly [ElementRefTypeId]: RefSubject.RefSubject<never, never, Option.Option<T>>;
16
+ readonly query: ElementSource<T>["query"];
17
+ readonly events: ElementSource<T>["events"];
18
+ readonly elements: ElementSource<T>["elements"];
19
+ readonly dispatchEvent: ElementSource<T>["dispatchEvent"];
20
+ }
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export declare function make<T extends Rendered = Rendered>(): Effect.Effect<Scope.Scope, never, ElementRef<T>>;
25
+ /**
26
+ * @since 1.0.0
27
+ */
28
+ export declare function of<T extends Rendered>(rendered: T): Effect.Effect<Scope.Scope, never, ElementRef<T>>;
29
+ /**
30
+ * @since 1.0.0
31
+ */
32
+ export declare const set: {
33
+ <A extends Rendered>(value: A): (elementRef: ElementRef<A>) => Effect.Effect<never, never, A>;
34
+ <A extends Rendered>(elementRef: ElementRef<A>, value: A): Effect.Effect<never, never, A>;
35
+ };
36
+ /**
37
+ * @since 1.0.0
38
+ */
39
+ export declare function dispatchEvent<T extends Rendered>(ref: ElementRef<T>, event: Event): Effect.Effect<never, NoSuchElementException, void>;
40
+ //# sourceMappingURL=ElementRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementRef.d.ts","sourceRoot":"","sources":["../../src/ElementRef.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAG1D,OAAO,EAAE,aAAa,EAAe,MAAM,iBAAiB,CAAA;AAI5D,eAAO,MAAM,gBAAgB,eAA6B,CAAA;AAC1D,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CACvD,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAElF,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAElF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAC/C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;CAC1D;AAID;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAKtG;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAKpG;AAwCD;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7F,CAAC,CAAC,SAAS,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;CAGzF,CAAA;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,sDAajF"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { EventWithCurrentTarget } from "@typed/dom/EventTarget";
5
+ import { Filtered } from "@typed/fx/Filtered";
6
+ import * as Fx from "@typed/fx/Fx";
7
+ import * as Versioned from "@typed/fx/Versioned";
8
+ import type { Rendered } from "@typed/wire";
9
+ import type { NoSuchElementException } from "effect/Cause";
10
+ import type { DurationInput } from "effect/Duration";
11
+ import * as Effect from "effect/Effect";
12
+ import type * as TQS from "typed-query-selector/parser";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export interface ElementSource<T extends Rendered = Element, EventMap extends {} = DefaultEventMap<Rendered.Elements<T>[number]>> extends Versioned.Versioned<never, never, never, never, Rendered.Elements<T>, never, never, Rendered.Elements<T>> {
17
+ readonly selector: Selector;
18
+ readonly query: {
19
+ <S extends string, Ev extends {} = DefaultEventMap<ParseSelector<S, Element>>>(selector: S): ElementSource<ParseSelector<S, Element>, Ev>;
20
+ <Target extends Rendered, EventMap extends {} = DefaultEventMap<Target>>(rendered: Target): ElementSource<Target, EventMap>;
21
+ };
22
+ readonly elements: Filtered<never, never, Rendered.Elements<T>>;
23
+ readonly events: <Type extends keyof EventMap>(type: Type, options?: AddEventListenerOptions) => Fx.Fx<never, never, EventWithCurrentTarget<Rendered.Elements<T>[number], EventMap[Type]>>;
24
+ readonly dispatchEvent: (event: Event, wait?: DurationInput) => Effect.Effect<never, NoSuchElementException, void>;
25
+ }
26
+ /**
27
+ * @since 1.0.0
28
+ */
29
+ export declare function ElementSource<T extends Rendered, EventMap extends {} = DefaultEventMap<T>>(rootElement: Filtered<never, never, T>): ElementSource<T, EventMap>;
30
+ /**
31
+ * @since 1.0.0
32
+ */
33
+ export type ParseSelector<T extends string, Fallback> = [T] extends [typeof ROOT_CSS_SELECTOR] ? Fallback : Fallback extends globalThis.Element ? TQS.ParseSelector<T, Fallback> : Fallback;
34
+ /**
35
+ * @since 1.0.0
36
+ */
37
+ export type DefaultEventMap<T> = T extends Window ? WindowEventMap : T extends Document ? DocumentEventMap : T extends HTMLVideoElement ? HTMLVideoElementEventMap : T extends HTMLMediaElement ? HTMLMediaElementEventMap : T extends HTMLElement ? HTMLElementEventMap : T extends SVGElement ? SVGElementEventMap : T extends Element ? ElementEventMap & Readonly<Record<string, Event>> : Readonly<Record<string, Event>>;
38
+ /**
39
+ * @since 1.0.0
40
+ */
41
+ export declare const ROOT_CSS_SELECTOR: ":root";
42
+ /**
43
+ * @since 1.0.0
44
+ */
45
+ export declare function getElements<T extends Rendered>(element: T): ReadonlyArray<Element>;
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+ export type Selector = CssSelectors | ElementSelector;
50
+ /**
51
+ * @since 1.0.0
52
+ */
53
+ export interface CssSelectors {
54
+ readonly _tag: "css";
55
+ readonly selectors: ReadonlyArray<string>;
56
+ }
57
+ /**
58
+ * @since 1.0.0
59
+ */
60
+ export declare function CssSelectors(selectors: ReadonlyArray<string>): CssSelectors;
61
+ /**
62
+ * @since 1.0.0
63
+ */
64
+ export interface ElementSelector {
65
+ readonly _tag: "element";
66
+ readonly element: Element;
67
+ }
68
+ /**
69
+ * @since 1.0.0
70
+ */
71
+ export declare function ElementSelector(element: Element): ElementSelector;
72
+ //# sourceMappingURL=ElementSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementSource.d.ts","sourceRoot":"","sources":["../../src/ElementSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAMvC,OAAO,KAAK,KAAK,GAAG,MAAM,6BAA6B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,aAAa,CAC5B,CAAC,SAAS,QAAQ,GAAG,OAAO,EAC5B,QAAQ,SAAS,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CACnE,SAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE3B,QAAQ,CAAC,KAAK,EAAE;QACd,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAC3E,QAAQ,EAAE,CAAC,GACV,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAE/C,CAAC,MAAM,SAAS,QAAQ,EAAE,QAAQ,SAAS,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EACrE,QAAQ,EAAE,MAAM,GACf,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;KACnC,CAAA;IAED,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,MAAM,QAAQ,EAC3C,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,uBAAuB,KAC9B,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE9F,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAA;CACnH;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,SAAS,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EACxF,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GACrC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAE5B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,iBAAiB,CAAC,GAAG,QAAQ,GACrG,QAAQ,SAAS,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,GACpE,QAAQ,CAAA;AAEZ;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,cAAc,GAC9D,CAAC,SAAS,QAAQ,GAAG,gBAAgB,GACrC,CAAC,SAAS,gBAAgB,GAAG,wBAAwB,GACrD,CAAC,SAAS,gBAAgB,GAAG,wBAAwB,GACrD,CAAC,SAAS,WAAW,GAAG,mBAAmB,GAC3C,CAAC,SAAS,UAAU,GAAG,kBAAkB,GACzC,CAAC,SAAS,OAAO,GAAG,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GACrE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;AAEnC;;GAEG;AACH,eAAO,MAAM,iBAAiB,SAAmB,CAAA;AAIjD;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAclF;AAkRD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,eAAe,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC1C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,YAAY,CAK3E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAKjE"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { HtmlChunk } from "./HtmlChunk";
5
+ import type { Template } from "./Template";
6
+ /**
7
+ * @since 1.0.0
8
+ */
9
+ export type Entry = BrowserEntry | ServerEntry;
10
+ /**
11
+ * @since 1.0.0
12
+ */
13
+ export interface BrowserEntry {
14
+ readonly _tag: "Browser";
15
+ readonly template: Template;
16
+ readonly content: DocumentFragment;
17
+ }
18
+ /**
19
+ * @since 1.0.0
20
+ */
21
+ export interface ServerEntry {
22
+ readonly _tag: "Server";
23
+ readonly template: Template;
24
+ readonly chunks: ReadonlyArray<HtmlChunk>;
25
+ }
26
+ //# sourceMappingURL=Entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entry.d.ts","sourceRoot":"","sources":["../../src/Entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,YAAY,GAAG,WAAW,CAAA;AAE9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAC1C"}