@typed/template 0.2.0 → 0.3.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 (213) hide show
  1. package/dist/cjs/Directive.js +1 -1
  2. package/dist/cjs/Directive.js.map +1 -1
  3. package/dist/cjs/ElementRef.js +23 -13
  4. package/dist/cjs/ElementRef.js.map +1 -1
  5. package/dist/cjs/ElementSource.js +16 -18
  6. package/dist/cjs/ElementSource.js.map +1 -1
  7. package/dist/cjs/EventHandler.js +1 -1
  8. package/dist/cjs/EventHandler.js.map +1 -1
  9. package/dist/cjs/Html.js +31 -32
  10. package/dist/cjs/Html.js.map +1 -1
  11. package/dist/cjs/HtmlChunk.js +4 -1
  12. package/dist/cjs/HtmlChunk.js.map +1 -1
  13. package/dist/cjs/Hydrate.js +1 -1
  14. package/dist/cjs/Hydrate.js.map +1 -1
  15. package/dist/cjs/Many.js +14 -13
  16. package/dist/cjs/Many.js.map +1 -1
  17. package/dist/cjs/Parser.js +11 -323
  18. package/dist/cjs/Parser.js.map +1 -1
  19. package/dist/cjs/Placeholder.js +3 -3
  20. package/dist/cjs/Placeholder.js.map +1 -1
  21. package/dist/cjs/Platform.js +4 -4
  22. package/dist/cjs/Platform.js.map +1 -1
  23. package/dist/cjs/Render.js +1 -1
  24. package/dist/cjs/Render.js.map +1 -1
  25. package/dist/cjs/RenderContext.js +48 -27
  26. package/dist/cjs/RenderContext.js.map +1 -1
  27. package/dist/cjs/RenderTemplate.js +2 -17
  28. package/dist/cjs/RenderTemplate.js.map +1 -1
  29. package/dist/cjs/Template.js +27 -1
  30. package/dist/cjs/Template.js.map +1 -1
  31. package/dist/cjs/TemplateInstance.js +2 -2
  32. package/dist/cjs/TemplateInstance.js.map +1 -1
  33. package/dist/cjs/Test.js +20 -7
  34. package/dist/cjs/Test.js.map +1 -1
  35. package/dist/cjs/index.js +0 -12
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/internal/EventSource.js +95 -0
  38. package/dist/cjs/internal/EventSource.js.map +1 -0
  39. package/dist/cjs/internal/browser.js +11 -11
  40. package/dist/cjs/internal/browser.js.map +1 -1
  41. package/dist/cjs/internal/hydrate.js +49 -50
  42. package/dist/cjs/internal/hydrate.js.map +1 -1
  43. package/dist/cjs/internal/indexRefCounter.js +49 -2
  44. package/dist/cjs/internal/indexRefCounter.js.map +1 -1
  45. package/dist/cjs/internal/parser.js +60 -17
  46. package/dist/cjs/internal/parser.js.map +1 -1
  47. package/dist/cjs/internal/parts.js +128 -28
  48. package/dist/cjs/internal/parts.js.map +1 -1
  49. package/dist/cjs/internal/render.js +486 -53
  50. package/dist/cjs/internal/render.js.map +1 -1
  51. package/dist/cjs/internal/server.js +5 -2
  52. package/dist/cjs/internal/server.js.map +1 -1
  53. package/dist/dts/Directive.d.ts.map +1 -1
  54. package/dist/dts/ElementRef.d.ts +4 -2
  55. package/dist/dts/ElementRef.d.ts.map +1 -1
  56. package/dist/dts/ElementSource.d.ts +10 -5
  57. package/dist/dts/ElementSource.d.ts.map +1 -1
  58. package/dist/dts/EventHandler.d.ts.map +1 -1
  59. package/dist/dts/Html.d.ts +1 -1
  60. package/dist/dts/Html.d.ts.map +1 -1
  61. package/dist/dts/HtmlChunk.d.ts.map +1 -1
  62. package/dist/dts/Many.d.ts +13 -11
  63. package/dist/dts/Many.d.ts.map +1 -1
  64. package/dist/dts/Parser.d.ts +3 -6
  65. package/dist/dts/Parser.d.ts.map +1 -1
  66. package/dist/dts/Part.d.ts +13 -3
  67. package/dist/dts/Part.d.ts.map +1 -1
  68. package/dist/dts/Placeholder.d.ts +2 -2
  69. package/dist/dts/Placeholder.d.ts.map +1 -1
  70. package/dist/dts/Render.d.ts +2 -1
  71. package/dist/dts/Render.d.ts.map +1 -1
  72. package/dist/dts/RenderContext.d.ts +5 -4
  73. package/dist/dts/RenderContext.d.ts.map +1 -1
  74. package/dist/dts/RenderTemplate.d.ts +2 -16
  75. package/dist/dts/RenderTemplate.d.ts.map +1 -1
  76. package/dist/dts/Renderable.d.ts +2 -2
  77. package/dist/dts/Renderable.d.ts.map +1 -1
  78. package/dist/dts/Template.d.ts +21 -3
  79. package/dist/dts/Template.d.ts.map +1 -1
  80. package/dist/dts/TemplateInstance.d.ts +3 -2
  81. package/dist/dts/TemplateInstance.d.ts.map +1 -1
  82. package/dist/dts/Test.d.ts +4 -6
  83. package/dist/dts/Test.d.ts.map +1 -1
  84. package/dist/dts/index.d.ts +0 -4
  85. package/dist/dts/index.d.ts.map +1 -1
  86. package/dist/dts/internal/EventSource.d.ts +12 -0
  87. package/dist/dts/internal/EventSource.d.ts.map +1 -0
  88. package/dist/dts/internal/browser.d.ts.map +1 -1
  89. package/dist/dts/internal/hydrate.d.ts +5 -5
  90. package/dist/dts/internal/hydrate.d.ts.map +1 -1
  91. package/dist/dts/internal/indexRefCounter.d.ts +5 -0
  92. package/dist/dts/internal/indexRefCounter.d.ts.map +1 -1
  93. package/dist/dts/internal/module-augmentation.d.ts +0 -4
  94. package/dist/dts/internal/module-augmentation.d.ts.map +1 -1
  95. package/dist/dts/internal/parser.d.ts +8 -0
  96. package/dist/dts/internal/parser.d.ts.map +1 -1
  97. package/dist/dts/internal/parts.d.ts +66 -56
  98. package/dist/dts/internal/parts.d.ts.map +1 -1
  99. package/dist/dts/internal/render.d.ts +7 -7
  100. package/dist/dts/internal/render.d.ts.map +1 -1
  101. package/dist/dts/internal/server.d.ts.map +1 -1
  102. package/dist/esm/Directive.js +1 -1
  103. package/dist/esm/Directive.js.map +1 -1
  104. package/dist/esm/ElementRef.js +12 -7
  105. package/dist/esm/ElementRef.js.map +1 -1
  106. package/dist/esm/ElementSource.js +16 -13
  107. package/dist/esm/ElementSource.js.map +1 -1
  108. package/dist/esm/EventHandler.js +1 -1
  109. package/dist/esm/EventHandler.js.map +1 -1
  110. package/dist/esm/Html.js +29 -24
  111. package/dist/esm/Html.js.map +1 -1
  112. package/dist/esm/HtmlChunk.js +6 -1
  113. package/dist/esm/HtmlChunk.js.map +1 -1
  114. package/dist/esm/Hydrate.js +1 -1
  115. package/dist/esm/Hydrate.js.map +1 -1
  116. package/dist/esm/Many.js +14 -10
  117. package/dist/esm/Many.js.map +1 -1
  118. package/dist/esm/Parser.js +6 -335
  119. package/dist/esm/Parser.js.map +1 -1
  120. package/dist/esm/Placeholder.js +2 -2
  121. package/dist/esm/Placeholder.js.map +1 -1
  122. package/dist/esm/Platform.js +2 -2
  123. package/dist/esm/Platform.js.map +1 -1
  124. package/dist/esm/Render.js +1 -1
  125. package/dist/esm/Render.js.map +1 -1
  126. package/dist/esm/RenderContext.js +38 -17
  127. package/dist/esm/RenderContext.js.map +1 -1
  128. package/dist/esm/RenderTemplate.js +2 -12
  129. package/dist/esm/RenderTemplate.js.map +1 -1
  130. package/dist/esm/Template.js +24 -0
  131. package/dist/esm/Template.js.map +1 -1
  132. package/dist/esm/TemplateInstance.js +2 -2
  133. package/dist/esm/TemplateInstance.js.map +1 -1
  134. package/dist/esm/Test.js +20 -7
  135. package/dist/esm/Test.js.map +1 -1
  136. package/dist/esm/index.js +0 -4
  137. package/dist/esm/index.js.map +1 -1
  138. package/dist/esm/internal/EventSource.js +91 -0
  139. package/dist/esm/internal/EventSource.js.map +1 -0
  140. package/dist/esm/internal/browser.js +12 -12
  141. package/dist/esm/internal/browser.js.map +1 -1
  142. package/dist/esm/internal/hydrate.js +45 -46
  143. package/dist/esm/internal/hydrate.js.map +1 -1
  144. package/dist/esm/internal/indexRefCounter.js +50 -2
  145. package/dist/esm/internal/indexRefCounter.js.map +1 -1
  146. package/dist/esm/internal/parser.js +84 -17
  147. package/dist/esm/internal/parser.js.map +1 -1
  148. package/dist/esm/internal/parts.js +110 -27
  149. package/dist/esm/internal/parts.js.map +1 -1
  150. package/dist/esm/internal/render.js +476 -58
  151. package/dist/esm/internal/render.js.map +1 -1
  152. package/dist/esm/internal/server.js +5 -4
  153. package/dist/esm/internal/server.js.map +1 -1
  154. package/package.json +10 -26
  155. package/src/Directive.ts +1 -1
  156. package/src/ElementRef.ts +18 -14
  157. package/src/ElementSource.ts +62 -47
  158. package/src/EventHandler.ts +1 -1
  159. package/src/Html.ts +58 -57
  160. package/src/HtmlChunk.ts +15 -1
  161. package/src/Hydrate.ts +1 -1
  162. package/src/Many.ts +53 -43
  163. package/src/Parser.ts +10 -453
  164. package/src/Part.ts +15 -3
  165. package/src/Placeholder.ts +4 -4
  166. package/src/Platform.ts +2 -2
  167. package/src/Render.ts +7 -2
  168. package/src/RenderContext.ts +47 -19
  169. package/src/RenderTemplate.ts +9 -54
  170. package/src/Renderable.ts +2 -1
  171. package/src/Template.ts +26 -0
  172. package/src/TemplateInstance.ts +9 -9
  173. package/src/Test.ts +40 -21
  174. package/src/index.ts +0 -4
  175. package/src/internal/EventSource.ts +153 -0
  176. package/src/internal/browser.ts +26 -25
  177. package/src/internal/hydrate.ts +68 -61
  178. package/src/internal/indexRefCounter.ts +63 -2
  179. package/src/internal/module-augmentation.ts +0 -4
  180. package/src/internal/parser.ts +92 -19
  181. package/src/internal/parts.ts +158 -73
  182. package/src/internal/render.ts +701 -89
  183. package/src/internal/server.ts +5 -3
  184. package/Token/package.json +0 -6
  185. package/Tokenizer/package.json +0 -6
  186. package/dist/cjs/Token.js +0 -270
  187. package/dist/cjs/Token.js.map +0 -1
  188. package/dist/cjs/Tokenizer.js +0 -18
  189. package/dist/cjs/Tokenizer.js.map +0 -1
  190. package/dist/cjs/internal/readAttribute.js +0 -34
  191. package/dist/cjs/internal/readAttribute.js.map +0 -1
  192. package/dist/cjs/internal/tokenizer.js +0 -264
  193. package/dist/cjs/internal/tokenizer.js.map +0 -1
  194. package/dist/dts/Token.d.ts +0 -202
  195. package/dist/dts/Token.d.ts.map +0 -1
  196. package/dist/dts/Tokenizer.d.ts +0 -6
  197. package/dist/dts/Tokenizer.d.ts.map +0 -1
  198. package/dist/dts/internal/readAttribute.d.ts +0 -9
  199. package/dist/dts/internal/readAttribute.d.ts.map +0 -1
  200. package/dist/dts/internal/tokenizer.d.ts +0 -3
  201. package/dist/dts/internal/tokenizer.d.ts.map +0 -1
  202. package/dist/esm/Token.js +0 -264
  203. package/dist/esm/Token.js.map +0 -1
  204. package/dist/esm/Tokenizer.js +0 -9
  205. package/dist/esm/Tokenizer.js.map +0 -1
  206. package/dist/esm/internal/readAttribute.js +0 -24
  207. package/dist/esm/internal/readAttribute.js.map +0 -1
  208. package/dist/esm/internal/tokenizer.js +0 -296
  209. package/dist/esm/internal/tokenizer.js.map +0 -1
  210. package/src/Token.ts +0 -269
  211. package/src/Tokenizer.ts +0 -10
  212. package/src/internal/readAttribute.ts +0 -28
  213. package/src/internal/tokenizer.ts +0 -338
@@ -1,18 +1,17 @@
1
- import { type Rendered } from "@typed/wire";
2
1
  import type { Cause } from "effect/Cause";
3
2
  import * as Effect from "effect/Effect";
4
- import type { Equivalence } from "effect/Equivalence";
3
+ import * as Equivalence from "effect/Equivalence";
5
4
  import type { Scope } from "effect/Scope";
6
- import type { ElementRef } from "../ElementRef.js";
7
5
  import type { ElementSource } from "../ElementSource.js";
8
- import type { AttributePart, BooleanPart, ClassNamePart, CommentPart, DataPart, EventPart, NodePart, PropertyPart, RefPart, SparseAttributePart, SparseClassNamePart, SparseCommentPart, StaticText, TextPart } from "../Part.js";
6
+ import type { EventHandler } from "../EventHandler.js";
7
+ import type { AttributePart, BooleanPart, ClassNamePart, CommentPart, DataPart, EventPart, NodePart, PropertiesPart, PropertyPart, RefPart, SparseAttributePart, SparseClassNamePart, SparseCommentPart, StaticText, TextPart } from "../Part.js";
9
8
  import type { RenderContext } from "../RenderContext.js";
10
9
  declare const AttributePartImpl_base: {
11
10
  new (index: number, commit: (params: {
12
11
  previous: string | null | undefined;
13
12
  value: string | null | undefined;
14
13
  part: AttributePart;
15
- }) => Effect.Effect<Scope, never, void>, value: string | null | undefined, eq?: Equivalence<string | null | undefined>): {
14
+ }) => Effect.Effect<Scope, never, void>, value: string | null | undefined, eq?: Equivalence.Equivalence<string | null | undefined>): {
16
15
  readonly _tag: "attribute";
17
16
  readonly index: number;
18
17
  readonly commit: (params: {
@@ -21,8 +20,8 @@ declare const AttributePartImpl_base: {
21
20
  part: AttributePart;
22
21
  }) => Effect.Effect<Scope, never, void>;
23
22
  value: string | null | undefined;
24
- readonly eq: Equivalence<string | null | undefined>;
25
- update(input: string | null | undefined): Effect.Effect<Scope, never, void>;
23
+ readonly eq: Equivalence.Equivalence<string | null | undefined>;
24
+ update(input: string | null | undefined): Effect.Effect<Scope, never, any>;
26
25
  getValue(value: unknown): unknown;
27
26
  };
28
27
  };
@@ -37,7 +36,7 @@ declare const BooleanPartImpl_base: {
37
36
  previous: boolean | null | undefined;
38
37
  value: boolean | null | undefined;
39
38
  part: BooleanPart;
40
- }) => Effect.Effect<Scope, never, void>, value: boolean | null | undefined, eq?: Equivalence<boolean | null | undefined>): {
39
+ }) => Effect.Effect<Scope, never, void>, value: boolean | null | undefined, eq?: Equivalence.Equivalence<boolean | null | undefined>): {
41
40
  readonly _tag: "boolean";
42
41
  readonly index: number;
43
42
  readonly commit: (params: {
@@ -46,8 +45,8 @@ declare const BooleanPartImpl_base: {
46
45
  part: BooleanPart;
47
46
  }) => Effect.Effect<Scope, never, void>;
48
47
  value: boolean | null | undefined;
49
- readonly eq: Equivalence<boolean | null | undefined>;
50
- update(input: boolean | null | undefined): Effect.Effect<Scope, never, void>;
48
+ readonly eq: Equivalence.Equivalence<boolean | null | undefined>;
49
+ update(input: boolean | null | undefined): Effect.Effect<Scope, never, any>;
51
50
  getValue(value: unknown): unknown;
52
51
  };
53
52
  };
@@ -62,7 +61,7 @@ declare const ClassNamePartImpl_base: {
62
61
  previous: readonly string[] | null | undefined;
63
62
  value: readonly string[] | null | undefined;
64
63
  part: ClassNamePart;
65
- }) => Effect.Effect<Scope, never, void>, value: readonly string[] | null | undefined, eq?: Equivalence<readonly string[] | null | undefined>): {
64
+ }) => Effect.Effect<Scope, never, void>, value: readonly string[] | null | undefined, eq?: Equivalence.Equivalence<readonly string[] | null | undefined>): {
66
65
  readonly _tag: "className";
67
66
  readonly index: number;
68
67
  readonly commit: (params: {
@@ -71,8 +70,8 @@ declare const ClassNamePartImpl_base: {
71
70
  part: ClassNamePart;
72
71
  }) => Effect.Effect<Scope, never, void>;
73
72
  value: readonly string[] | null | undefined;
74
- readonly eq: Equivalence<readonly string[] | null | undefined>;
75
- update(input: readonly string[] | null | undefined): Effect.Effect<Scope, never, void>;
73
+ readonly eq: Equivalence.Equivalence<readonly string[] | null | undefined>;
74
+ update(input: readonly string[] | null | undefined): Effect.Effect<Scope, never, any>;
76
75
  getValue(value: unknown): unknown;
77
76
  };
78
77
  };
@@ -87,7 +86,7 @@ declare const CommentPartImpl_base: {
87
86
  previous: string | null | undefined;
88
87
  value: string | null | undefined;
89
88
  part: CommentPart;
90
- }) => Effect.Effect<Scope, never, void>, value: string | null | undefined, eq?: Equivalence<string | null | undefined>): {
89
+ }) => Effect.Effect<Scope, never, void>, value: string | null | undefined, eq?: Equivalence.Equivalence<string | null | undefined>): {
91
90
  readonly _tag: "comment";
92
91
  readonly index: number;
93
92
  readonly commit: (params: {
@@ -96,8 +95,8 @@ declare const CommentPartImpl_base: {
96
95
  part: CommentPart;
97
96
  }) => Effect.Effect<Scope, never, void>;
98
97
  value: string | null | undefined;
99
- readonly eq: Equivalence<string | null | undefined>;
100
- update(input: string | null | undefined): Effect.Effect<Scope, never, void>;
98
+ readonly eq: Equivalence.Equivalence<string | null | undefined>;
99
+ update(input: string | null | undefined): Effect.Effect<Scope, never, any>;
101
100
  getValue(value: unknown): unknown;
102
101
  };
103
102
  };
@@ -110,7 +109,7 @@ declare const DataPartImpl_base: {
110
109
  previous: Readonly<Record<string, string | undefined>> | null | undefined;
111
110
  value: Readonly<Record<string, string | undefined>> | null | undefined;
112
111
  part: DataPart;
113
- }) => Effect.Effect<Scope, never, void>, value: Readonly<Record<string, string | undefined>> | null | undefined, eq?: Equivalence<Readonly<Record<string, string | undefined>> | null | undefined>): {
112
+ }) => Effect.Effect<Scope, never, void>, value: Readonly<Record<string, string | undefined>> | null | undefined, eq?: Equivalence.Equivalence<Readonly<Record<string, string | undefined>> | null | undefined>): {
114
113
  readonly _tag: "data";
115
114
  readonly index: number;
116
115
  readonly commit: (params: {
@@ -119,8 +118,8 @@ declare const DataPartImpl_base: {
119
118
  part: DataPart;
120
119
  }) => Effect.Effect<Scope, never, void>;
121
120
  value: Readonly<Record<string, string | undefined>> | null | undefined;
122
- readonly eq: Equivalence<Readonly<Record<string, string | undefined>> | null | undefined>;
123
- update(input: Readonly<Record<string, string | undefined>> | null | undefined): Effect.Effect<Scope, never, void>;
121
+ readonly eq: Equivalence.Equivalence<Readonly<Record<string, string | undefined>> | null | undefined>;
122
+ update(input: Readonly<Record<string, string | undefined>> | null | undefined): Effect.Effect<Scope, never, any>;
124
123
  getValue(value: unknown): unknown;
125
124
  };
126
125
  };
@@ -128,37 +127,22 @@ export declare class DataPartImpl extends DataPartImpl_base implements DataPart
128
127
  static browser(index: number, element: HTMLElement | SVGElement, ctx: RenderContext): DataPartImpl;
129
128
  static server(index: number, commit: DataPartImpl["commit"]): DataPartImpl;
130
129
  }
131
- declare const EventPartImpl_base: {
132
- new (index: number, commit: (params: {
133
- previous: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined;
134
- value: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined;
135
- part: EventPart;
136
- }) => Effect.Effect<Scope, never, void>, value: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined, eq?: Equivalence<import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined>): {
137
- readonly _tag: "event";
138
- readonly index: number;
139
- readonly commit: (params: {
140
- previous: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined;
141
- value: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined;
142
- part: EventPart;
143
- }) => Effect.Effect<Scope, never, void>;
144
- value: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined;
145
- readonly eq: Equivalence<import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined>;
146
- update(input: import("../EventHandler.js").EventHandler<unknown, never, Event> | null | undefined): Effect.Effect<Scope, never, void>;
147
- getValue(value: unknown): unknown;
148
- };
149
- };
150
- export declare class EventPartImpl extends EventPartImpl_base implements EventPart {
130
+ export declare class EventPartImpl implements EventPart {
151
131
  readonly name: string;
132
+ readonly index: number;
133
+ readonly source: ElementSource<any>;
152
134
  readonly onCause: <E>(cause: Cause<E>) => Effect.Effect<never, never, unknown>;
153
- constructor(name: string, onCause: <E>(cause: Cause<E>) => Effect.Effect<never, never, unknown>, index: number, commit: EventPartImpl["commit"], value: EventPart["value"]);
154
- static browser<T extends Rendered, E>(name: string, index: number, ref: ElementRef<T>, element: HTMLElement | SVGElement, onCause: (cause: Cause<E>) => Effect.Effect<never, never, unknown>): Effect.Effect<unknown, never, void>;
135
+ readonly addEventListener: <Ev extends Event>(handler: EventHandler<never, never, Ev>) => void;
136
+ readonly _tag = "event";
137
+ readonly value: EventPart["value"];
138
+ constructor(name: string, index: number, source: ElementSource<any>, onCause: <E>(cause: Cause<E>) => Effect.Effect<never, never, unknown>, addEventListener: <Ev extends Event>(handler: EventHandler<never, never, Ev>) => void);
155
139
  }
156
140
  declare const NodePartImpl_base: {
157
141
  new (index: number, commit: (params: {
158
142
  previous: unknown;
159
143
  value: unknown;
160
144
  part: NodePart;
161
- }) => Effect.Effect<Scope, never, void>, value: unknown, eq?: Equivalence<unknown>): {
145
+ }) => Effect.Effect<Scope, never, void>, value: unknown, eq?: Equivalence.Equivalence<unknown>): {
162
146
  readonly _tag: "node";
163
147
  readonly index: number;
164
148
  readonly commit: (params: {
@@ -167,8 +151,8 @@ declare const NodePartImpl_base: {
167
151
  part: NodePart;
168
152
  }) => Effect.Effect<Scope, never, void>;
169
153
  value: unknown;
170
- readonly eq: Equivalence<unknown>;
171
- update(input: unknown): Effect.Effect<Scope, never, void>;
154
+ readonly eq: Equivalence.Equivalence<unknown>;
155
+ update(input: unknown): Effect.Effect<Scope, never, any>;
172
156
  getValue(value: unknown): unknown;
173
157
  };
174
158
  };
@@ -179,7 +163,7 @@ declare const PropertyPartImpl_base: {
179
163
  previous: unknown;
180
164
  value: unknown;
181
165
  part: PropertyPart;
182
- }) => Effect.Effect<Scope, never, void>, value: unknown, eq?: Equivalence<unknown>): {
166
+ }) => Effect.Effect<Scope, never, void>, value: unknown, eq?: Equivalence.Equivalence<unknown>): {
183
167
  readonly _tag: "property";
184
168
  readonly index: number;
185
169
  readonly commit: (params: {
@@ -188,8 +172,8 @@ declare const PropertyPartImpl_base: {
188
172
  part: PropertyPart;
189
173
  }) => Effect.Effect<Scope, never, void>;
190
174
  value: unknown;
191
- readonly eq: Equivalence<unknown>;
192
- update(input: unknown): Effect.Effect<Scope, never, void>;
175
+ readonly eq: Equivalence.Equivalence<unknown>;
176
+ update(input: unknown): Effect.Effect<Scope, never, any>;
193
177
  getValue(value: unknown): unknown;
194
178
  };
195
179
  };
@@ -209,7 +193,7 @@ declare const TextPartImpl_base: {
209
193
  previous: string | null | undefined;
210
194
  value: string | null | undefined;
211
195
  part: TextPart;
212
- }) => Effect.Effect<Scope, never, void>, value: string | null | undefined, eq?: Equivalence<string | null | undefined>): {
196
+ }) => Effect.Effect<Scope, never, void>, value: string | null | undefined, eq?: Equivalence.Equivalence<string | null | undefined>): {
213
197
  readonly _tag: "text";
214
198
  readonly index: number;
215
199
  readonly commit: (params: {
@@ -218,13 +202,39 @@ declare const TextPartImpl_base: {
218
202
  part: TextPart;
219
203
  }) => Effect.Effect<Scope, never, void>;
220
204
  value: string | null | undefined;
221
- readonly eq: Equivalence<string | null | undefined>;
222
- update(input: string | null | undefined): Effect.Effect<Scope, never, void>;
205
+ readonly eq: Equivalence.Equivalence<string | null | undefined>;
206
+ update(input: string | null | undefined): Effect.Effect<Scope, never, any>;
223
207
  getValue(value: unknown): unknown;
224
208
  };
225
209
  };
226
210
  export declare class TextPartImpl extends TextPartImpl_base implements TextPart {
227
211
  static browser(document: Document, index: number, element: Element, ctx: RenderContext): TextPartImpl;
212
+ static fromText(text: Text, index: number, ctx: RenderContext): TextPartImpl;
213
+ static getOrCreateText(document: Document, index: number, element: Element): string | Text | null;
214
+ }
215
+ declare const PropertiesPartImpl_base: {
216
+ new (index: number, commit: (params: {
217
+ previous: Readonly<Record<string, any>> | null | undefined;
218
+ value: Readonly<Record<string, any>> | null | undefined;
219
+ part: PropertiesPart;
220
+ }) => Effect.Effect<Scope, never, void>, value: Readonly<Record<string, any>> | null | undefined, eq?: Equivalence.Equivalence<Readonly<Record<string, any>> | null | undefined>): {
221
+ readonly _tag: "properties";
222
+ readonly index: number;
223
+ readonly commit: (params: {
224
+ previous: Readonly<Record<string, any>> | null | undefined;
225
+ value: Readonly<Record<string, any>> | null | undefined;
226
+ part: PropertiesPart;
227
+ }) => Effect.Effect<Scope, never, void>;
228
+ value: Readonly<Record<string, any>> | null | undefined;
229
+ readonly eq: Equivalence.Equivalence<Readonly<Record<string, any>> | null | undefined>;
230
+ update(input: Readonly<Record<string, any>> | null | undefined): Effect.Effect<Scope, never, any>;
231
+ getValue(value: unknown): unknown;
232
+ };
233
+ };
234
+ export declare class PropertiesPartImpl extends PropertiesPartImpl_base implements PropertiesPart {
235
+ constructor(index: number, commit: PropertiesPartImpl["commit"], value: PropertiesPartImpl["value"]);
236
+ getValue(value: unknown): unknown;
237
+ static browser(index: number, element: HTMLElement | SVGElement, ctx: RenderContext): PropertiesPartImpl;
228
238
  }
229
239
  type SparseAttributeValues<T extends ReadonlyArray<AttributePart | ClassNamePart | CommentPart | StaticText>> = ReadonlyArray<SparseAttributeValue<T[number]>>;
230
240
  type SparseAttributeValue<T extends AttributePart | ClassNamePart | CommentPart | StaticText> = T["value"];
@@ -233,7 +243,7 @@ declare const SparseAttributePartImpl_base: {
233
243
  previous: SparseAttributeValues<readonly (AttributePart | StaticText)[]>;
234
244
  value: SparseAttributeValues<readonly (AttributePart | StaticText)[]>;
235
245
  part: SparseAttributePart;
236
- }) => Effect.Effect<Scope, never, void>, value: SparseAttributeValues<readonly (AttributePart | StaticText)[]>, eq?: Equivalence<SparseAttributeValues<readonly (AttributePart | StaticText)[]>>): {
246
+ }) => Effect.Effect<Scope, never, void>, value: SparseAttributeValues<readonly (AttributePart | StaticText)[]>, eq?: Equivalence.Equivalence<SparseAttributeValues<readonly (AttributePart | StaticText)[]>>): {
237
247
  readonly _tag: "sparse/attribute";
238
248
  readonly commit: (params: {
239
249
  previous: SparseAttributeValues<readonly (AttributePart | StaticText)[]>;
@@ -241,7 +251,7 @@ declare const SparseAttributePartImpl_base: {
241
251
  part: SparseAttributePart;
242
252
  }) => Effect.Effect<Scope, never, void>;
243
253
  value: SparseAttributeValues<readonly (AttributePart | StaticText)[]>;
244
- readonly eq: Equivalence<SparseAttributeValues<readonly (AttributePart | StaticText)[]>>;
254
+ readonly eq: Equivalence.Equivalence<SparseAttributeValues<readonly (AttributePart | StaticText)[]>>;
245
255
  update: (value: SparseAttributeValues<readonly (AttributePart | StaticText)[]>) => Effect.Effect<Scope, never, void>;
246
256
  };
247
257
  };
@@ -256,7 +266,7 @@ declare const SparseClassNamePartImpl_base: {
256
266
  previous: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>;
257
267
  value: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>;
258
268
  part: SparseClassNamePart;
259
- }) => Effect.Effect<Scope, never, void>, value: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>, eq?: Equivalence<SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>>): {
269
+ }) => Effect.Effect<Scope, never, void>, value: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>, eq?: Equivalence.Equivalence<SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>>): {
260
270
  readonly _tag: "sparse/className";
261
271
  readonly commit: (params: {
262
272
  previous: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>;
@@ -264,7 +274,7 @@ declare const SparseClassNamePartImpl_base: {
264
274
  part: SparseClassNamePart;
265
275
  }) => Effect.Effect<Scope, never, void>;
266
276
  value: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>;
267
- readonly eq: Equivalence<SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>>;
277
+ readonly eq: Equivalence.Equivalence<SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>>;
268
278
  update: (value: SparseAttributeValues<readonly (ClassNamePart | StaticText)[]>) => Effect.Effect<Scope, never, void>;
269
279
  };
270
280
  };
@@ -278,7 +288,7 @@ declare const SparseCommentPartImpl_base: {
278
288
  previous: SparseAttributeValues<readonly (CommentPart | StaticText)[]>;
279
289
  value: SparseAttributeValues<readonly (CommentPart | StaticText)[]>;
280
290
  part: SparseCommentPart;
281
- }) => Effect.Effect<Scope, never, void>, value: SparseAttributeValues<readonly (CommentPart | StaticText)[]>, eq?: Equivalence<SparseAttributeValues<readonly (CommentPart | StaticText)[]>>): {
291
+ }) => Effect.Effect<Scope, never, void>, value: SparseAttributeValues<readonly (CommentPart | StaticText)[]>, eq?: Equivalence.Equivalence<SparseAttributeValues<readonly (CommentPart | StaticText)[]>>): {
282
292
  readonly _tag: "sparse/comment";
283
293
  readonly commit: (params: {
284
294
  previous: SparseAttributeValues<readonly (CommentPart | StaticText)[]>;
@@ -286,7 +296,7 @@ declare const SparseCommentPartImpl_base: {
286
296
  part: SparseCommentPart;
287
297
  }) => Effect.Effect<Scope, never, void>;
288
298
  value: SparseAttributeValues<readonly (CommentPart | StaticText)[]>;
289
- readonly eq: Equivalence<SparseAttributeValues<readonly (CommentPart | StaticText)[]>>;
299
+ readonly eq: Equivalence.Equivalence<SparseAttributeValues<readonly (CommentPart | StaticText)[]>>;
290
300
  update: (value: SparseAttributeValues<readonly (CommentPart | StaticText)[]>) => Effect.Effect<Scope, never, void>;
291
301
  };
292
302
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../src/internal/parts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../src/internal/parts.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import type { Rendered } from "@typed/wire";
2
1
  import { Effect } from "effect";
3
2
  import type { Cause } from "effect/Cause";
4
- import type { Scope } from "effect/Scope";
5
- import * as ElementRef from "../ElementRef.js";
3
+ import * as Context from "effect/Context";
4
+ import { Scope } from "effect/Scope";
6
5
  import type { BrowserEntry } from "../Entry.js";
7
6
  import type { Part, Parts, SparsePart } from "../Part.js";
8
7
  import type { Placeholder } from "../Placeholder.js";
@@ -12,6 +11,7 @@ import type { RenderContext } from "../RenderContext.js";
12
11
  import type { RenderEvent } from "../RenderEvent.js";
13
12
  import type { RenderTemplate } from "../RenderTemplate.js";
14
13
  import type * as Template from "../Template.js";
14
+ import { type EventSource } from "./EventSource.js";
15
15
  import { HydrateContext } from "./HydrateContext.js";
16
16
  import type { IndexRefCounter } from "./indexRefCounter.js";
17
17
  import type { ParentChildNodes } from "./utils.js";
@@ -19,12 +19,12 @@ import type { ParentChildNodes } from "./utils.js";
19
19
  * Here for "standard" browser rendering, a TemplateInstance is effectively a live
20
20
  * view into the contents rendered by the Template.
21
21
  */
22
- export declare const renderTemplate: (document: Document, ctx: RenderContext) => RenderTemplate;
23
- export declare function renderValues<Values extends ReadonlyArray<Renderable<any, any>>>(values: Values, parts: Parts, refCounter: IndexRefCounter, onCause: (cause: Cause<Placeholder.Error<Values[number]>>) => Effect.Effect<never, never, unknown>, makeHydrateContext?: (index: number) => HydrateContext): Effect.Effect<Placeholder.Context<Values[number]> | Scope, never, void>;
22
+ export declare const renderTemplate: (document: Document, renderContext: RenderContext) => RenderTemplate;
23
+ export declare function renderValues<Values extends ReadonlyArray<Renderable<any, any>>>(values: Values, parts: Parts, refCounter: IndexRefCounter, ctx: Context.Context<any> | Context.Context<never>, makeHydrateContext?: (index: number) => HydrateContext): Effect.Effect<Placeholder.Context<Values[number]> | Scope, never, void>;
24
24
  export declare function renderSparsePart(values: ReadonlyArray<Renderable<any, any>>, part: SparsePart, refCounter: IndexRefCounter): Effect.Effect<unknown, never, import("effect/Fiber").RuntimeFiber<unknown, void>>;
25
- export declare function renderPart<Values extends ReadonlyArray<Renderable<any, any>>>(values: Values, part: Part, refCounter: IndexRefCounter, onCause: (cause: Cause<Placeholder.Error<Values[number]>>) => Effect.Effect<never, never, unknown>, hydrateCtx?: () => HydrateContext): Effect.Effect<any, never, void>;
25
+ export declare function renderPart<Values extends ReadonlyArray<Renderable<any, any>>>(values: Values, part: Part, refCounter: IndexRefCounter, ctx: Context.Context<any> | Context.Context<never>, hydrateCtx?: () => HydrateContext): Effect.Effect<any, never, void>;
26
26
  export declare function attachRoot<T extends RenderEvent | null>(cache: RenderContext["renderCache"], where: HTMLElement, what: RenderEvent | null): Effect.Effect<never, never, ToRendered<T>>;
27
27
  export declare function getBrowserEntry(document: Document, ctx: RenderContext, templateStrings: TemplateStringsArray): BrowserEntry;
28
- export declare function buildParts<T extends Rendered, E>(document: Document, ctx: RenderContext, template: Template.Template, content: ParentChildNodes, ref: ElementRef.ElementRef<T>, onCause: (cause: Cause<E>) => Effect.Effect<never, never, void>, isHydrating: boolean): Effect.Effect<Scope, never, Parts>;
28
+ export declare function buildParts<E>(document: Document, ctx: RenderContext, template: Template.Template, content: ParentChildNodes, eventSource: EventSource, onCause: (cause: Cause<E>) => Effect.Effect<never, never, void>, isHydrating: boolean): Parts;
29
29
  export declare function buildTemplate(document: Document, { nodes }: Template.Template): DocumentFragment;
30
30
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/internal/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/internal/render.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/internal/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,KAAK,EAIV,IAAI,EAIJ,UAAU,EAEX,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAA0E,MAAM,gBAAgB,CAAA;AAgBtH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IACxB,eAAe,GACf,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GACrB,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE/B,qBAAa,eAAe;IAIxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAJxB,QAAQ,CAAC,IAAI,UAAS;gBAGX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;CAEzB;AAED,qBAAa,eAAe,CAAC,CAAC,EAAE,CAAC;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IANvC,QAAQ,CAAC,IAAI,UAAS;gBAGX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;CAExC;AAED,qBAAa,qBAAqB,CAAC,CAAC,EAAE,CAAC;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,eAAe;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAN/C,QAAQ,CAAC,IAAI,iBAAgB;gBAGlB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAEhD;AAgCD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAC3C,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,EAChC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,uBAU7E;AA0BD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAC7D,IAAI,CAEN"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/internal/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,KAAK,EAIV,IAAI,EAIJ,UAAU,EAEX,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAA0E,MAAM,gBAAgB,CAAA;AAiBtH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IACxB,eAAe,GACf,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GACrB,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE/B,qBAAa,eAAe;IAIxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAJxB,QAAQ,CAAC,IAAI,UAAS;gBAGX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;CAEzB;AAED,qBAAa,eAAe,CAAC,CAAC,EAAE,CAAC;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IANvC,QAAQ,CAAC,IAAI,UAAS;gBAGX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;CAExC;AAED,qBAAa,qBAAqB,CAAC,CAAC,EAAE,CAAC;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,eAAe;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAN/C,QAAQ,CAAC,IAAI,iBAAgB;gBAGlB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAEhD;AAgCD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAC3C,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,EAChC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,uBAU7E;AA2BD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAC7D,IAAI,CAEN"}
@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
5
5
  /**
6
6
  * @since 1.0.0
7
7
  */
8
- export const DirectiveTypeId = Symbol.for(".Directive");
8
+ export const DirectiveTypeId = Symbol.for("@typed/template/Directive");
9
9
  /**
10
10
  * @since 1.0.0
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../../src/Directive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAevD;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,SAA4D;IAE5D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACnD,CAAC,eAAe,CAAC,EAAE,eAAe;KACnC,CAAoB,CAAA;AACvB,CAAC;AAED,MAAM,OAAO,GAAG,CAA8B,GAAM,EAAE,EAAE,CACxD,CACE,SAA2F,EAC1E,EAAE,CACnB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAC/G,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAEC,OAAO,CAAC,WAAW,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAEC,OAAO,CAAC,WAAW,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC,CAAA;AAElB;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GACnB,OAAO,CAAC,UAAU,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAA+F,OAAO,CACpH,KAAK,CACN,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,UAAU,WAAW,CAAO,UAAmB;IACnD,OAAO,OAAO,UAAU,KAAK,UAAU,IAAI,eAAe,IAAK,UAAkB,CAAA;AACnF,CAAC"}
1
+ {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../../src/Directive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAetE;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,SAA4D;IAE5D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACnD,CAAC,eAAe,CAAC,EAAE,eAAe;KACnC,CAAoB,CAAA;AACvB,CAAC;AAED,MAAM,OAAO,GAAG,CAA8B,GAAM,EAAE,EAAE,CACxD,CACE,SAA2F,EAC1E,EAAE,CACnB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAC/G,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAEC,OAAO,CAAC,WAAW,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAEC,OAAO,CAAC,WAAW,CAAC,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC,CAAA;AAElB;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GACnB,OAAO,CAAC,UAAU,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAA+F,OAAO,CACpH,KAAK,CACN,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,UAAU,WAAW,CAAO,UAAmB;IACnD,OAAO,OAAO,UAAU,KAAK,UAAU,IAAI,eAAe,IAAK,UAAkB,CAAA;AACnF,CAAC"}
@@ -1,24 +1,26 @@
1
1
  import { compact, FxEffectBase } from "@typed/fx/Fx";
2
2
  import * as RefSubject from "@typed/fx/RefSubject";
3
- import { Effect, Option } from "effect";
3
+ import * as Effect from "effect/Effect";
4
4
  import { dual } from "effect/Function";
5
+ import * as Option from "effect/Option";
6
+ import { hasProperty } from "effect/Predicate";
5
7
  import { ElementSource, getElements } from "./ElementSource.js";
6
8
  import { adjustTime } from "./internal/utils.js";
7
- export const ElementRefTypeId = Symbol.for("./ElementRef.js");
9
+ export const ElementRefTypeId = Symbol.for("@typed/template/ElementRef");
8
10
  const strictEqual = Option.getEquivalence((a, b) => a === b);
9
11
  /**
10
12
  * @since 1.0.0
11
13
  */
12
14
  export function make() {
13
- return Effect.map(RefSubject.of(Option.none(), strictEqual), (ref) => new ElementRefImpl(ref));
15
+ return Effect.map(RefSubject.of(Option.none(), { eq: strictEqual }), (ref) => new ElementRefImpl(ref));
14
16
  }
15
17
  /**
16
18
  * @since 1.0.0
17
19
  */
18
20
  export function of(rendered) {
19
- return Effect.map(RefSubject.of(Option.some(rendered), strictEqual), (ref) => new ElementRefImpl(ref));
21
+ return Effect.map(RefSubject.of(Option.some(rendered), { eq: strictEqual }), (ref) => new ElementRefImpl(ref));
20
22
  }
21
- // @ts-expect-error placeholder issues
23
+ // @ts-expect-error does not implement Placeholder
22
24
  class ElementRefImpl extends FxEffectBase {
23
25
  ref;
24
26
  [ElementRefTypeId];
@@ -43,14 +45,14 @@ class ElementRefImpl extends FxEffectBase {
43
45
  return compact(this.ref);
44
46
  }
45
47
  toEffect() {
46
- return Effect.flatten(this.ref.get);
48
+ return Effect.flatten(this.ref);
47
49
  }
48
50
  }
49
51
  /**
50
52
  * @since 1.0.0
51
53
  */
52
54
  export const set = dual(2, function set(elementRef, value) {
53
- return Effect.as(elementRef[ElementRefTypeId].set(Option.some(value)), value);
55
+ return Effect.as(RefSubject.set(elementRef[ElementRefTypeId], Option.some(value)), value);
54
56
  });
55
57
  /**
56
58
  * @since 1.0.0
@@ -68,4 +70,7 @@ export function dispatchEvent(ref, event) {
68
70
  // Allow additional fibers to start
69
71
  Effect.zipRight(adjustTime(1)));
70
72
  }
73
+ export function isElementRef(value) {
74
+ return hasProperty(value, ElementRefTypeId);
75
+ }
71
76
  //# sourceMappingURL=ElementRef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementRef.js","sourceRoot":"","sources":["../../src/ElementRef.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ElementRef.js","sourceRoot":"","sources":["../../src/ElementRef.ts"],"names":[],"mappings":"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"}
@@ -2,22 +2,26 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import { addEventListener } from "@typed/dom/EventTarget";
5
- import { Filtered } from "@typed/fx/Filtered";
6
5
  import * as Fx from "@typed/fx/Fx";
7
6
  import { FxEffectBase } from "@typed/fx/Fx";
8
7
  import * as Versioned from "@typed/fx/Versioned";
9
8
  import { isWire } from "@typed/wire";
10
9
  import * as Effect from "effect/Effect";
11
10
  import { pipe } from "effect/Function";
12
- import * as Scope from "effect/Scope";
13
11
  import { adjustTime } from "./internal/utils.js";
14
- import { PlaceholderTypeId } from "./Placeholder.js";
12
+ import * as RefSubject from "@typed/fx/RefSubject";
15
13
  /**
16
14
  * @since 1.0.0
17
15
  */
18
16
  export function ElementSource(rootElement) {
19
17
  return new ElementSourceImpl(rootElement);
20
18
  }
19
+ /**
20
+ * @since 1.0.0
21
+ */
22
+ export function fromElement(rootElement) {
23
+ return ElementSourceImpl.fromElement(rootElement);
24
+ }
21
25
  /**
22
26
  * @since 1.0.0
23
27
  */
@@ -77,10 +81,10 @@ function makeEventStream(cssSelectors, eventName, options = {}) {
77
81
  const cssSelector = cssSelectors.join(" ");
78
82
  const lastTwoCssSelectors = cssSelectors.slice(-2).join("");
79
83
  const elements = getElements(element);
80
- const event$ = Fx.merge(elements.map((element) => Fx.filter(Fx.withScopedFork(({ scope, sink }) => Effect.zipRight(Effect.provideService(addEventListener(element, {
84
+ const event$ = Fx.mergeAll(elements.map((element) => Fx.filter(Fx.make((sink) => Effect.scoped(Effect.zipRight(addEventListener(element, {
81
85
  eventName,
82
86
  handler: (ev) => sink.onSuccess(ev)
83
- }), Scope.Scope, scope), Effect.never)), (event) => ensureMatches(cssSelector, element, event, capture) ||
87
+ }), Effect.never))), (event) => ensureMatches(cssSelector, element, event, capture) ||
84
88
  ensureMatches(lastTwoCssSelectors, element, event, capture))));
85
89
  if (capture) {
86
90
  return pipe(event$, Fx.map(findCurrentTarget(cssSelector, element)));
@@ -92,10 +96,10 @@ function makeElementEventStream(currentTarget, eventName, options = {}) {
92
96
  return function (rendered) {
93
97
  const { capture } = options;
94
98
  const elements = getElements(rendered);
95
- const event$ = Fx.merge(elements.map((element) => Fx.filter(Fx.withScopedFork(({ scope, sink }) => Effect.zipRight(Effect.provideService(addEventListener(element, {
99
+ const event$ = Fx.mergeAll(elements.map((element) => Fx.filter(Fx.make((sink) => Effect.scoped(Effect.zipRight(addEventListener(element, {
96
100
  eventName,
97
101
  handler: (ev) => sink.onSuccess(ev)
98
- }), Scope.Scope, scope), Effect.never)), (event) => event.target ? currentTarget.contains(event.target) : false)));
102
+ }), Effect.never))), (event) => event.target ? currentTarget.contains(event.target) : false)));
99
103
  if (capture) {
100
104
  return event$.pipe(Fx.map((ev) => cloneEvent(ev, currentTarget)));
101
105
  }
@@ -150,11 +154,10 @@ function isElement(element) {
150
154
  * @internal
151
155
  * @since 1.0.0
152
156
  */
153
- // @ts-expect-error
157
+ // @ts-expect-error Doesn't implement Placeholder
154
158
  export class ElementSourceImpl extends FxEffectBase {
155
159
  rootElement;
156
160
  selector;
157
- [PlaceholderTypeId];
158
161
  bubbleMap = new Map();
159
162
  captureMap = new Map();
160
163
  elements;
@@ -166,12 +169,12 @@ export class ElementSourceImpl extends FxEffectBase {
166
169
  this.query = this.query.bind(this);
167
170
  this.events = this.events.bind(this);
168
171
  this.elements = this.selector._tag === "css" ?
169
- this.rootElement.map(findMatchingElements(this.selector.selectors)) :
170
- Filtered(Versioned.of(this.selector.element), (x) => Effect.succeedSome([x]));
172
+ RefSubject.map(this.rootElement, findMatchingElements(this.selector.selectors)) :
173
+ RefSubject.filterMapEffect(Versioned.of(this.selector.element), (x) => Effect.succeedSome([x]));
171
174
  this.version = this.elements.version;
172
175
  }
173
176
  static fromElement(rootElement) {
174
- return new ElementSourceImpl(Filtered(Versioned.of(rootElement), Effect.succeedSome));
177
+ return new ElementSourceImpl(RefSubject.filterMapEffect(Versioned.of(rootElement), Effect.succeedSome));
175
178
  }
176
179
  toEffect() {
177
180
  return this.elements;
@@ -201,7 +204,7 @@ export class ElementSourceImpl extends FxEffectBase {
201
204
  let current = map.get(type);
202
205
  if (current === undefined) {
203
206
  if (this.selector._tag === "css") {
204
- current = this.rootElement.map(findMostSpecificElement(this.selector.selectors)).pipe(Fx.switchMap(makeEventStream(this.selector.selectors, type, options)), Fx.multicast);
207
+ current = RefSubject.map(this.rootElement, findMostSpecificElement(this.selector.selectors)).pipe(Fx.switchMap(makeEventStream(this.selector.selectors, type, options)), Fx.multicast);
205
208
  }
206
209
  else {
207
210
  current = this.rootElement.pipe(Fx.switchMap(makeElementEventStream(this.selector.element, type, options)), Fx.multicast);