sinho 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 (117) hide show
  1. package/.github/workflows/ci.yml +24 -0
  2. package/.github/workflows/deploy-docs.yml +47 -0
  3. package/.prettierrc +3 -0
  4. package/LICENSE.md +21 -0
  5. package/README.md +33 -0
  6. package/ci/check-size.js +8 -0
  7. package/dist/array_mutation.d.ts +16 -0
  8. package/dist/array_mutation.js +75 -0
  9. package/dist/array_mutation.js.map +1 -0
  10. package/dist/bundle.d.ts +1126 -0
  11. package/dist/bundle.js +1074 -0
  12. package/dist/bundle.min.js +1 -0
  13. package/dist/component.d.ts +253 -0
  14. package/dist/component.js +256 -0
  15. package/dist/component.js.map +1 -0
  16. package/dist/context.d.ts +21 -0
  17. package/dist/context.js +34 -0
  18. package/dist/context.js.map +1 -0
  19. package/dist/create_element.d.ts +43 -0
  20. package/dist/create_element.js +43 -0
  21. package/dist/create_element.js.map +1 -0
  22. package/dist/dom.d.ts +602 -0
  23. package/dist/dom.js +97 -0
  24. package/dist/dom.js.map +1 -0
  25. package/dist/intrinsic/ClassComponent.d.ts +2 -0
  26. package/dist/intrinsic/ClassComponent.js +10 -0
  27. package/dist/intrinsic/ClassComponent.js.map +1 -0
  28. package/dist/intrinsic/Dynamic.d.ts +33 -0
  29. package/dist/intrinsic/Dynamic.js +53 -0
  30. package/dist/intrinsic/Dynamic.js.map +1 -0
  31. package/dist/intrinsic/ErrorBoundary.d.ts +14 -0
  32. package/dist/intrinsic/ErrorBoundary.js +36 -0
  33. package/dist/intrinsic/ErrorBoundary.js.map +1 -0
  34. package/dist/intrinsic/For.d.ts +10 -0
  35. package/dist/intrinsic/For.js +81 -0
  36. package/dist/intrinsic/For.js.map +1 -0
  37. package/dist/intrinsic/Fragment.d.ts +23 -0
  38. package/dist/intrinsic/Fragment.js +28 -0
  39. package/dist/intrinsic/Fragment.js.map +1 -0
  40. package/dist/intrinsic/If.d.ts +24 -0
  41. package/dist/intrinsic/If.js +47 -0
  42. package/dist/intrinsic/If.js.map +1 -0
  43. package/dist/intrinsic/Portal.d.ts +6 -0
  44. package/dist/intrinsic/Portal.js +15 -0
  45. package/dist/intrinsic/Portal.js.map +1 -0
  46. package/dist/intrinsic/Style.d.ts +7 -0
  47. package/dist/intrinsic/Style.js +70 -0
  48. package/dist/intrinsic/Style.js.map +1 -0
  49. package/dist/intrinsic/TagComponent.d.ts +4 -0
  50. package/dist/intrinsic/TagComponent.js +67 -0
  51. package/dist/intrinsic/TagComponent.js.map +1 -0
  52. package/dist/intrinsic/Text.d.ts +6 -0
  53. package/dist/intrinsic/Text.js +16 -0
  54. package/dist/intrinsic/Text.js.map +1 -0
  55. package/dist/intrinsic/mod.d.ts +5 -0
  56. package/dist/intrinsic/mod.js +6 -0
  57. package/dist/intrinsic/mod.js.map +1 -0
  58. package/dist/jsx-runtime/mod.d.ts +23 -0
  59. package/dist/jsx-runtime/mod.js +11 -0
  60. package/dist/jsx-runtime/mod.js.map +1 -0
  61. package/dist/mod.d.ts +8 -0
  62. package/dist/mod.js +7 -0
  63. package/dist/mod.js.map +1 -0
  64. package/dist/renderer.d.ts +13 -0
  65. package/dist/renderer.js +25 -0
  66. package/dist/renderer.js.map +1 -0
  67. package/dist/scope.d.ts +138 -0
  68. package/dist/scope.js +228 -0
  69. package/dist/scope.js.map +1 -0
  70. package/dist/template.d.ts +10 -0
  71. package/dist/template.js +7 -0
  72. package/dist/template.js.map +1 -0
  73. package/dist/utils.d.ts +6 -0
  74. package/dist/utils.js +13 -0
  75. package/dist/utils.js.map +1 -0
  76. package/package.json +71 -0
  77. package/src/array_mutation.ts +118 -0
  78. package/src/component.ts +624 -0
  79. package/src/context.ts +70 -0
  80. package/src/create_element.ts +89 -0
  81. package/src/dom.ts +819 -0
  82. package/src/intrinsic/ClassComponent.ts +17 -0
  83. package/src/intrinsic/For.ts +122 -0
  84. package/src/intrinsic/Fragment.ts +38 -0
  85. package/src/intrinsic/If.ts +73 -0
  86. package/src/intrinsic/Portal.ts +25 -0
  87. package/src/intrinsic/Style.ts +120 -0
  88. package/src/intrinsic/TagComponent.ts +102 -0
  89. package/src/intrinsic/Text.ts +24 -0
  90. package/src/intrinsic/mod.ts +5 -0
  91. package/src/jsx-runtime/mod.ts +41 -0
  92. package/src/mod.ts +37 -0
  93. package/src/renderer.ts +45 -0
  94. package/src/scope.ts +404 -0
  95. package/src/template.ts +16 -0
  96. package/src/utils.ts +29 -0
  97. package/terser.config.json +16 -0
  98. package/tsconfig.json +18 -0
  99. package/web/README.md +41 -0
  100. package/web/babel.config.js +3 -0
  101. package/web/dist/shingo.min.d.ts +1131 -0
  102. package/web/dist/shingo.min.js +1 -0
  103. package/web/docusaurus.config.ts +151 -0
  104. package/web/package-lock.json +14850 -0
  105. package/web/package.json +54 -0
  106. package/web/sidebars.ts +31 -0
  107. package/web/src/components/monacoEditor.tsx +72 -0
  108. package/web/src/components/playground.tsx +89 -0
  109. package/web/src/components/playgroundComponent.tsx +168 -0
  110. package/web/src/css/custom.css +37 -0
  111. package/web/src/pages/index.module.css +31 -0
  112. package/web/src/pages/index.tsx +73 -0
  113. package/web/src/pages/playground.tsx +64 -0
  114. package/web/static/.nojekyll +0 -0
  115. package/web/static/dist/bundle.d.ts +1126 -0
  116. package/web/static/dist/bundle.min.js +1 -0
  117. package/web/tsconfig.json +8 -0
package/src/dom.ts ADDED
@@ -0,0 +1,819 @@
1
+ /*
2
+ * The following functions are lifted from Preact <https://preactjs.com/> and
3
+ * modified.
4
+ *
5
+ * The MIT License (MIT)
6
+ *
7
+ * Copyright (c) 2015-present Jason Miller
8
+ *
9
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ * of this software and associated documentation files (the "Software"), to deal
11
+ * in the Software without restriction, including without limitation the rights
12
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ * copies of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in all
17
+ * copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ * SOFTWARE.
26
+ */
27
+
28
+ import type {
29
+ Children,
30
+ MaybeSignal,
31
+ RefSignalSetter,
32
+ SignalLike,
33
+ } from "./mod.js";
34
+
35
+ const IS_NON_DIMENSIONAL =
36
+ /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
37
+
38
+ export const setStyle = (
39
+ node: ElementCSSInlineStyle,
40
+ key: any,
41
+ value: string | number | null | undefined,
42
+ ): void => {
43
+ if (key[0] == "-") {
44
+ node.style.setProperty(key, `${value}`);
45
+ } else {
46
+ node.style[key] =
47
+ value == null
48
+ ? ""
49
+ : typeof value != "number" || IS_NON_DIMENSIONAL.test(key)
50
+ ? `${value}`
51
+ : `${value}px`;
52
+ }
53
+ };
54
+
55
+ export const setAttr = (
56
+ node: any,
57
+ name: string,
58
+ value: unknown,
59
+ heuristic?: boolean,
60
+ ): void => {
61
+ const removeAttribute =
62
+ value == null || (value === false && !name.includes("-"));
63
+
64
+ if (name.startsWith("prop:")) {
65
+ node[name] = value;
66
+ } else if (name.startsWith("attr:")) {
67
+ if (!removeAttribute) {
68
+ node.setAttribute(name, value);
69
+ } else {
70
+ node.removeAttribute(name);
71
+ }
72
+ } else if (!["innerHTML", "outerHTML"].includes(name)) {
73
+ if (
74
+ ![
75
+ // Default value in browsers is `-1` and an empty string is
76
+ // cast to `0` instead
77
+ "tabIndex",
78
+ "role",
79
+ ...(heuristic
80
+ ? [
81
+ "width",
82
+ "height",
83
+ "href",
84
+ "list",
85
+ "form",
86
+ "download",
87
+ "rowSpan",
88
+ "colSpan",
89
+ ]
90
+ : []),
91
+ ].includes(name) &&
92
+ name in node
93
+ ) {
94
+ try {
95
+ node[name] = value == null ? "" : value;
96
+ return;
97
+ } catch (e) {}
98
+ }
99
+
100
+ // aria- and data- attributes have no boolean representation.
101
+ // A `false` value is different from the attribute not being
102
+ // present, so we can't remove it. For non-boolean aria
103
+ // attributes we could treat false as a removal, but the
104
+ // amount of exceptions would cost too many bytes. On top of
105
+ // that other frameworks generally stringify `false`.
106
+
107
+ if (typeof value == "function") {
108
+ // never serialize functions as attribute values
109
+ } else if (!removeAttribute) {
110
+ node.setAttribute(name, value);
111
+ } else {
112
+ node.removeAttribute(name);
113
+ }
114
+ }
115
+ };
116
+
117
+ export interface DomIntrinsicElements {
118
+ // HTML
119
+ a: HtmlProps<HTMLAnchorElement> & DomEventProps<HTMLAnchorElement>;
120
+ abbr: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
121
+ address: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
122
+ area: HtmlProps<HTMLAreaElement> & DomEventProps<HTMLAreaElement>;
123
+ article: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
124
+ aside: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
125
+ audio: HtmlProps<HTMLAudioElement> & DomEventProps<HTMLAudioElement>;
126
+ b: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
127
+ base: HtmlProps<HTMLBaseElement> & DomEventProps<HTMLBaseElement>;
128
+ bdi: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
129
+ bdo: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
130
+ big: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
131
+ blockquote: HtmlProps<HTMLQuoteElement> & DomEventProps<HTMLQuoteElement>;
132
+ body: HtmlProps<HTMLBodyElement> & DomEventProps<HTMLBodyElement>;
133
+ br: HtmlProps<HTMLBRElement> & DomEventProps<HTMLBRElement>;
134
+ button: HtmlProps<HTMLButtonElement> & DomEventProps<HTMLButtonElement>;
135
+ canvas: HtmlProps<HTMLCanvasElement> & DomEventProps<HTMLCanvasElement>;
136
+ caption: HtmlProps<HTMLTableCaptionElement> &
137
+ DomEventProps<HTMLTableCaptionElement>;
138
+ cite: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
139
+ code: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
140
+ col: HtmlProps<HTMLTableColElement> & DomEventProps<HTMLTableColElement>;
141
+ colgroup: HtmlProps<HTMLTableColElement> & DomEventProps<HTMLTableColElement>;
142
+ data: HtmlProps<HTMLDataElement> & DomEventProps<HTMLDataElement>;
143
+ datalist: HtmlProps<HTMLDataListElement> & DomEventProps<HTMLDataListElement>;
144
+ dd: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
145
+ del: HtmlProps<HTMLModElement> & DomEventProps<HTMLModElement>;
146
+ details: HtmlProps<HTMLDetailsElement> & DomEventProps<HTMLDetailsElement>;
147
+ dfn: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
148
+ dialog: HtmlProps<HTMLDialogElement> & DomEventProps<HTMLDialogElement>;
149
+ div: HtmlProps<HTMLDivElement> & DomEventProps<HTMLDivElement>;
150
+ dl: HtmlProps<HTMLDListElement> & DomEventProps<HTMLDListElement>;
151
+ dt: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
152
+ em: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
153
+ embed: HtmlProps<HTMLEmbedElement> & DomEventProps<HTMLEmbedElement>;
154
+ fieldset: HtmlProps<HTMLFieldSetElement> & DomEventProps<HTMLFieldSetElement>;
155
+ figcaption: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
156
+ figure: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
157
+ footer: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
158
+ form: HtmlProps<HTMLFormElement> & DomEventProps<HTMLFormElement>;
159
+ h1: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
160
+ h2: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
161
+ h3: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
162
+ h4: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
163
+ h5: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
164
+ h6: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
165
+ head: HtmlProps<HTMLHeadElement> & DomEventProps<HTMLHeadElement>;
166
+ header: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
167
+ hgroup: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
168
+ hr: HtmlProps<HTMLHRElement> & DomEventProps<HTMLHRElement>;
169
+ html: HtmlProps<HTMLHtmlElement> & DomEventProps<HTMLHtmlElement>;
170
+ i: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
171
+ iframe: HtmlProps<HTMLIFrameElement> & DomEventProps<HTMLIFrameElement>;
172
+ img: HtmlProps<HTMLImageElement> & DomEventProps<HTMLImageElement>;
173
+ input: HtmlProps<HTMLInputElement> & DomEventProps<HTMLInputElement>;
174
+ ins: HtmlProps<HTMLModElement> & DomEventProps<HTMLModElement>;
175
+ kbd: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
176
+ keygen: HtmlProps<HTMLUnknownElement> & DomEventProps<HTMLUnknownElement>;
177
+ label: HtmlProps<HTMLLabelElement> & DomEventProps<HTMLLabelElement>;
178
+ legend: HtmlProps<HTMLLegendElement> & DomEventProps<HTMLLegendElement>;
179
+ li: HtmlProps<HTMLLIElement> & DomEventProps<HTMLLIElement>;
180
+ link: HtmlProps<HTMLLinkElement> & DomEventProps<HTMLLinkElement>;
181
+ main: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
182
+ map: HtmlProps<HTMLMapElement> & DomEventProps<HTMLMapElement>;
183
+ mark: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
184
+ marquee: HtmlProps<HTMLMarqueeElement> & DomEventProps<HTMLMarqueeElement>;
185
+ menu: HtmlProps<HTMLMenuElement> & DomEventProps<HTMLMenuElement>;
186
+ menuitem: HtmlProps<HTMLUnknownElement> & DomEventProps<HTMLUnknownElement>;
187
+ meta: HtmlProps<HTMLMetaElement> & DomEventProps<HTMLMetaElement>;
188
+ meter: HtmlProps<HTMLMeterElement> & DomEventProps<HTMLMeterElement>;
189
+ nav: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
190
+ noscript: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
191
+ object: HtmlProps<HTMLObjectElement> & DomEventProps<HTMLObjectElement>;
192
+ ol: HtmlProps<HTMLOListElement> & DomEventProps<HTMLOListElement>;
193
+ optgroup: HtmlProps<HTMLOptGroupElement> & DomEventProps<HTMLOptGroupElement>;
194
+ option: HtmlProps<HTMLOptionElement> & DomEventProps<HTMLOptionElement>;
195
+ output: HtmlProps<HTMLOutputElement> & DomEventProps<HTMLOutputElement>;
196
+ p: HtmlProps<HTMLParagraphElement> & DomEventProps<HTMLParagraphElement>;
197
+ param: HtmlProps<HTMLParamElement> & DomEventProps<HTMLParamElement>;
198
+ picture: HtmlProps<HTMLPictureElement> & DomEventProps<HTMLPictureElement>;
199
+ pre: HtmlProps<HTMLPreElement> & DomEventProps<HTMLPreElement>;
200
+ progress: HtmlProps<HTMLProgressElement> & DomEventProps<HTMLProgressElement>;
201
+ q: HtmlProps<HTMLQuoteElement> & DomEventProps<HTMLQuoteElement>;
202
+ rp: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
203
+ rt: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
204
+ ruby: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
205
+ s: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
206
+ samp: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
207
+ script: HtmlProps<HTMLScriptElement> & DomEventProps<HTMLScriptElement>;
208
+ section: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
209
+ select: HtmlProps<HTMLSelectElement> & DomEventProps<HTMLSelectElement>;
210
+ slot: HtmlProps<HTMLSlotElement> & DomEventProps<HTMLSlotElement>;
211
+ small: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
212
+ source: HtmlProps<HTMLSourceElement> & DomEventProps<HTMLSourceElement>;
213
+ span: HtmlProps<HTMLSpanElement> & DomEventProps<HTMLSpanElement>;
214
+ strong: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
215
+ style: HtmlProps<HTMLStyleElement> & DomEventProps<HTMLStyleElement>;
216
+ sub: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
217
+ summary: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
218
+ sup: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
219
+ table: HtmlProps<HTMLTableElement> & DomEventProps<HTMLTableElement>;
220
+ tbody: HtmlProps<HTMLTableSectionElement> &
221
+ DomEventProps<HTMLTableSectionElement>;
222
+ td: HtmlProps<HTMLTableCellElement> & DomEventProps<HTMLTableCellElement>;
223
+ textarea: HtmlProps<HTMLTextAreaElement> & DomEventProps<HTMLTextAreaElement>;
224
+ tfoot: HtmlProps<HTMLTableSectionElement> &
225
+ DomEventProps<HTMLTableSectionElement>;
226
+ th: HtmlProps<HTMLTableCellElement> & DomEventProps<HTMLTableCellElement>;
227
+ thead: HtmlProps<HTMLTableSectionElement> &
228
+ DomEventProps<HTMLTableSectionElement>;
229
+ time: HtmlProps<HTMLTimeElement> & DomEventProps<HTMLTimeElement>;
230
+ title: HtmlProps<HTMLTitleElement> & DomEventProps<HTMLTitleElement>;
231
+ tr: HtmlProps<HTMLTableRowElement> & DomEventProps<HTMLTableRowElement>;
232
+ track: HtmlProps<HTMLTrackElement> & DomEventProps<HTMLTrackElement>;
233
+ u: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
234
+ ul: HtmlProps<HTMLUListElement> & DomEventProps<HTMLUListElement>;
235
+ var: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
236
+ video: HtmlProps<HTMLVideoElement> & DomEventProps<HTMLVideoElement>;
237
+ wbr: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
238
+
239
+ //SVG
240
+ svg: SvgProps<SVGSVGElement> & DomEventProps<SVGSVGElement>;
241
+ animate: SvgProps<SVGAnimateElement> & DomEventProps<SVGAnimateElement>;
242
+ circle: SvgProps<SVGCircleElement> & DomEventProps<SVGCircleElement>;
243
+ animateTransform: SvgProps<SVGAnimateElement> &
244
+ DomEventProps<SVGAnimateElement>;
245
+ clipPath: SvgProps<SVGClipPathElement> & DomEventProps<SVGClipPathElement>;
246
+ defs: SvgProps<SVGDefsElement> & DomEventProps<SVGDefsElement>;
247
+ desc: SvgProps<SVGDescElement> & DomEventProps<SVGDescElement>;
248
+ ellipse: SvgProps<SVGEllipseElement> & DomEventProps<SVGEllipseElement>;
249
+ feBlend: SvgProps<SVGFEBlendElement> & DomEventProps<SVGFEBlendElement>;
250
+ feColorMatrix: SvgProps<SVGFEColorMatrixElement> &
251
+ DomEventProps<SVGFEColorMatrixElement>;
252
+ feComponentTransfer: SvgProps<SVGFEComponentTransferElement> &
253
+ DomEventProps<SVGFEComponentTransferElement>;
254
+ feComposite: SvgProps<SVGFECompositeElement> &
255
+ DomEventProps<SVGFECompositeElement>;
256
+ feConvolveMatrix: SvgProps<SVGFEConvolveMatrixElement> &
257
+ DomEventProps<SVGFEConvolveMatrixElement>;
258
+ feDiffuseLighting: SvgProps<SVGFEDiffuseLightingElement> &
259
+ DomEventProps<SVGFEDiffuseLightingElement>;
260
+ feDisplacementMap: SvgProps<SVGFEDisplacementMapElement> &
261
+ DomEventProps<SVGFEDisplacementMapElement>;
262
+ feDropShadow: SvgProps<SVGFEDropShadowElement> &
263
+ DomEventProps<SVGFEDropShadowElement>;
264
+ feFlood: SvgProps<SVGFEFloodElement> & DomEventProps<SVGFEFloodElement>;
265
+ feFuncA: SvgProps<SVGFEFuncAElement> & DomEventProps<SVGFEFuncAElement>;
266
+ feFuncB: SvgProps<SVGFEFuncBElement> & DomEventProps<SVGFEFuncBElement>;
267
+ feFuncG: SvgProps<SVGFEFuncGElement> & DomEventProps<SVGFEFuncGElement>;
268
+ feFuncR: SvgProps<SVGFEFuncRElement> & DomEventProps<SVGFEFuncRElement>;
269
+ feGaussianBlur: SvgProps<SVGFEGaussianBlurElement> &
270
+ DomEventProps<SVGFEGaussianBlurElement>;
271
+ feImage: SvgProps<SVGFEImageElement> & DomEventProps<SVGFEImageElement>;
272
+ feMerge: SvgProps<SVGFEMergeElement> & DomEventProps<SVGFEMergeElement>;
273
+ feMergeNode: SvgProps<SVGFEMergeNodeElement> &
274
+ DomEventProps<SVGFEMergeNodeElement>;
275
+ feMorphology: SvgProps<SVGFEMorphologyElement> &
276
+ DomEventProps<SVGFEMorphologyElement>;
277
+ feOffset: SvgProps<SVGFEOffsetElement> & DomEventProps<SVGFEOffsetElement>;
278
+ feSpecularLighting: SvgProps<SVGFESpecularLightingElement> &
279
+ DomEventProps<SVGFESpecularLightingElement>;
280
+ feTile: SvgProps<SVGFETileElement> & DomEventProps<SVGFETileElement>;
281
+ feTurbulence: SvgProps<SVGFETurbulenceElement> &
282
+ DomEventProps<SVGFETurbulenceElement>;
283
+ filter: SvgProps<SVGFilterElement> & DomEventProps<SVGFilterElement>;
284
+ foreignObject: SvgProps<SVGForeignObjectElement> &
285
+ DomEventProps<SVGForeignObjectElement>;
286
+ g: SvgProps<SVGGElement> & DomEventProps<SVGGElement>;
287
+ image: SvgProps<SVGImageElement> & DomEventProps<SVGImageElement>;
288
+ line: SvgProps<SVGLineElement> & DomEventProps<SVGLineElement>;
289
+ linearGradient: SvgProps<SVGLinearGradientElement> &
290
+ DomEventProps<SVGLinearGradientElement>;
291
+ marker: SvgProps<SVGMarkerElement> & DomEventProps<SVGMarkerElement>;
292
+ mask: SvgProps<SVGMaskElement> & DomEventProps<SVGMaskElement>;
293
+ path: SvgProps<SVGPathElement> & DomEventProps<SVGPathElement>;
294
+ pattern: SvgProps<SVGPatternElement> & DomEventProps<SVGPatternElement>;
295
+ polygon: SvgProps<SVGPolygonElement> & DomEventProps<SVGPolygonElement>;
296
+ polyline: SvgProps<SVGPolylineElement> & DomEventProps<SVGPolylineElement>;
297
+ radialGradient: SvgProps<SVGRadialGradientElement> &
298
+ DomEventProps<SVGRadialGradientElement>;
299
+ rect: SvgProps<SVGRectElement> & DomEventProps<SVGRectElement>;
300
+ stop: SvgProps<SVGStopElement> & DomEventProps<SVGStopElement>;
301
+ symbol: SvgProps<SVGSymbolElement> & DomEventProps<SVGSymbolElement>;
302
+ text: SvgProps<SVGTextElement> & DomEventProps<SVGTextElement>;
303
+ textPath: SvgProps<SVGTextPathElement> & DomEventProps<SVGTextPathElement>;
304
+ tspan: SvgProps<SVGTSpanElement> & DomEventProps<SVGTSpanElement>;
305
+ use: SvgProps<SVGUseElement> & DomEventProps<SVGUseElement>;
306
+
307
+ [tagName: string]: DomProps<any> & Record<string, any>;
308
+ }
309
+
310
+ export type Styles = {
311
+ [K in Exclude<
312
+ keyof CSSStyleDeclaration,
313
+ | "item"
314
+ | "setProperty"
315
+ | "removeProperty"
316
+ | "getPropertyValue"
317
+ | "getPropertyPriority"
318
+ | typeof Symbol.iterator
319
+ | number
320
+ >]?: MaybeSignal<string | number | null | undefined>;
321
+ } & {
322
+ [key: string]: MaybeSignal<string | number | null | undefined>;
323
+ };
324
+
325
+ type ExcludeNeverValues<T> = T[Exclude<
326
+ keyof T,
327
+ { [K in keyof T]: T[K] extends never ? K : never }[keyof T]
328
+ >];
329
+
330
+ type EventMap = Pick<
331
+ ElementEventMap & DocumentEventMap & GlobalEventHandlersEventMap,
332
+ ExcludeNeverValues<{
333
+ [K in keyof (ElementEventMap &
334
+ DocumentEventMap &
335
+ GlobalEventHandlersEventMap)]: K extends Lowercase<K> ? K : never;
336
+ }>
337
+ >;
338
+
339
+ export type EventHandler<K extends keyof EventMap, E> = (
340
+ this: E,
341
+ evt: Omit<EventMap[K], "currentTarget"> & {
342
+ currentTarget: E;
343
+ },
344
+ ) => void;
345
+
346
+ export type DomEventProps<E> = {
347
+ [K in keyof EventMap as `on${K}`]?: EventHandler<K, E>;
348
+ };
349
+
350
+ export interface DangerousHtml {
351
+ __html: string;
352
+ }
353
+
354
+ export interface DomProps<in E> {
355
+ ref?: RefSignalSetter<E | undefined>;
356
+ class?: MaybeSignal<string | undefined>;
357
+ style?: Styles;
358
+ dangerouslySetInnerHTML?: MaybeSignal<DangerousHtml>;
359
+ children?: Children;
360
+ }
361
+
362
+ interface HtmlProps<in E> extends DomProps<E> {
363
+ // Standard HTML Attributes
364
+ accept?: MaybeSignal<string | undefined>;
365
+ acceptCharset?: MaybeSignal<string | undefined>;
366
+ accessKey?: MaybeSignal<string | undefined>;
367
+ action?: MaybeSignal<string | undefined>;
368
+ allow?: MaybeSignal<string | undefined>;
369
+ allowFullScreen?: MaybeSignal<boolean | undefined>;
370
+ allowTransparency?: MaybeSignal<boolean | undefined>;
371
+ alt?: MaybeSignal<string | undefined>;
372
+ as?: MaybeSignal<string | undefined>;
373
+ async?: MaybeSignal<boolean | undefined>;
374
+ autocomplete?: MaybeSignal<string | undefined>;
375
+ autoComplete?: MaybeSignal<string | undefined>;
376
+ autocorrect?: MaybeSignal<string | undefined>;
377
+ autoCorrect?: MaybeSignal<string | undefined>;
378
+ autofocus?: MaybeSignal<boolean | undefined>;
379
+ autoFocus?: MaybeSignal<boolean | undefined>;
380
+ autoPlay?: MaybeSignal<boolean | undefined>;
381
+ capture?: MaybeSignal<string | undefined>;
382
+ cellPadding?: MaybeSignal<string | undefined>;
383
+ cellSpacing?: MaybeSignal<string | undefined>;
384
+ charSet?: MaybeSignal<string | undefined>;
385
+ challenge?: MaybeSignal<string | undefined>;
386
+ checked?: MaybeSignal<boolean | undefined>;
387
+ cite?: MaybeSignal<string | undefined>;
388
+ cols?: MaybeSignal<number | undefined>;
389
+ colSpan?: MaybeSignal<number | undefined>;
390
+ content?: MaybeSignal<string | undefined>;
391
+ contentEditable?: MaybeSignal<boolean | undefined>;
392
+ contextMenu?: MaybeSignal<string | undefined>;
393
+ controls?: MaybeSignal<boolean | undefined>;
394
+ controlsList?: MaybeSignal<string | undefined>;
395
+ coords?: MaybeSignal<string | undefined>;
396
+ crossOrigin?: MaybeSignal<string | undefined>;
397
+ data?: MaybeSignal<string | undefined>;
398
+ dateTime?: MaybeSignal<string | undefined>;
399
+ default?: MaybeSignal<boolean | undefined>;
400
+ defaultChecked?: MaybeSignal<boolean | undefined>;
401
+ defaultValue?: MaybeSignal<string | string[] | number | undefined>;
402
+ defer?: MaybeSignal<boolean | undefined>;
403
+ dir?: MaybeSignal<"auto" | "rtl" | "ltr" | undefined>;
404
+ disabled?: MaybeSignal<boolean | undefined>;
405
+ disableRemotePlayback?: MaybeSignal<boolean | undefined>;
406
+ download?: MaybeSignal<any | undefined>;
407
+ decoding?: MaybeSignal<"sync" | "async" | "auto" | undefined>;
408
+ draggable?: MaybeSignal<boolean | undefined>;
409
+ encType?: MaybeSignal<string | undefined>;
410
+ enterkeyhint?: MaybeSignal<
411
+ | "enter"
412
+ | "done"
413
+ | "go"
414
+ | "next"
415
+ | "previous"
416
+ | "search"
417
+ | "send"
418
+ | undefined
419
+ >;
420
+ for?: MaybeSignal<string | undefined>;
421
+ form?: MaybeSignal<string | undefined>;
422
+ formAction?: MaybeSignal<string | undefined>;
423
+ formEncType?: MaybeSignal<string | undefined>;
424
+ formMethod?: MaybeSignal<string | undefined>;
425
+ formNoValidate?: MaybeSignal<boolean | undefined>;
426
+ formTarget?: MaybeSignal<string | undefined>;
427
+ frameBorder?: MaybeSignal<number | string | undefined>;
428
+ headers?: MaybeSignal<string | undefined>;
429
+ height?: MaybeSignal<number | string | undefined>;
430
+ hidden?: MaybeSignal<boolean | undefined>;
431
+ high?: MaybeSignal<number | undefined>;
432
+ href?: MaybeSignal<string | undefined>;
433
+ hrefLang?: MaybeSignal<string | undefined>;
434
+ httpEquiv?: MaybeSignal<string | undefined>;
435
+ icon?: MaybeSignal<string | undefined>;
436
+ inputMode?: MaybeSignal<string | undefined>;
437
+ integrity?: MaybeSignal<string | undefined>;
438
+ is?: MaybeSignal<string | undefined>;
439
+ keyParams?: MaybeSignal<string | undefined>;
440
+ keyType?: MaybeSignal<string | undefined>;
441
+ kind?: MaybeSignal<string | undefined>;
442
+ label?: MaybeSignal<string | undefined>;
443
+ lang?: MaybeSignal<string | undefined>;
444
+ list?: MaybeSignal<string | undefined>;
445
+ loading?: MaybeSignal<"eager" | "lazy" | undefined>;
446
+ loop?: MaybeSignal<boolean | undefined>;
447
+ low?: MaybeSignal<number | undefined>;
448
+ manifest?: MaybeSignal<string | undefined>;
449
+ marginHeight?: MaybeSignal<number | undefined>;
450
+ marginWidth?: MaybeSignal<number | undefined>;
451
+ max?: MaybeSignal<string | undefined>;
452
+ maxLength?: MaybeSignal<number | undefined>;
453
+ media?: MaybeSignal<string | undefined>;
454
+ mediaGroup?: MaybeSignal<string | undefined>;
455
+ method?: MaybeSignal<string | undefined>;
456
+ min?: MaybeSignal<string | undefined>;
457
+ minLength?: MaybeSignal<number | undefined>;
458
+ multiple?: MaybeSignal<boolean | undefined>;
459
+ muted?: MaybeSignal<boolean | undefined>;
460
+ name?: MaybeSignal<string | undefined>;
461
+ nomodule?: MaybeSignal<boolean | undefined>;
462
+ nonce?: MaybeSignal<string | undefined>;
463
+ noValidate?: MaybeSignal<boolean | undefined>;
464
+ open?: MaybeSignal<boolean | undefined>;
465
+ optimum?: MaybeSignal<number | undefined>;
466
+ part?: MaybeSignal<string | undefined>;
467
+ pattern?: MaybeSignal<string | undefined>;
468
+ ping?: MaybeSignal<string | undefined>;
469
+ placeholder?: MaybeSignal<string | undefined>;
470
+ playsInline?: MaybeSignal<boolean | undefined>;
471
+ poster?: MaybeSignal<string | undefined>;
472
+ preload?: MaybeSignal<string | undefined>;
473
+ radioGroup?: MaybeSignal<string | undefined>;
474
+ readonly?: MaybeSignal<boolean | undefined>;
475
+ readOnly?: MaybeSignal<boolean | undefined>;
476
+ referrerpolicy?: MaybeSignal<
477
+ | "no-referrer"
478
+ | "no-referrer-when-downgrade"
479
+ | "origin"
480
+ | "origin-when-cross-origin"
481
+ | "same-origin"
482
+ | "strict-origin"
483
+ | "strict-origin-when-cross-origin"
484
+ | "unsafe-url"
485
+ | undefined
486
+ >;
487
+ rel?: MaybeSignal<string | undefined>;
488
+ required?: MaybeSignal<boolean | undefined>;
489
+ reversed?: MaybeSignal<boolean | undefined>;
490
+ role?: MaybeSignal<string | undefined>;
491
+ rows?: MaybeSignal<number | undefined>;
492
+ rowSpan?: MaybeSignal<number | undefined>;
493
+ sandbox?: MaybeSignal<string | undefined>;
494
+ scope?: MaybeSignal<string | undefined>;
495
+ scoped?: MaybeSignal<boolean | undefined>;
496
+ scrolling?: MaybeSignal<string | undefined>;
497
+ seamless?: MaybeSignal<boolean | undefined>;
498
+ selected?: MaybeSignal<boolean | undefined>;
499
+ shape?: MaybeSignal<string | undefined>;
500
+ size?: MaybeSignal<number | undefined>;
501
+ sizes?: MaybeSignal<string | undefined>;
502
+ slot?: MaybeSignal<string | undefined>;
503
+ span?: MaybeSignal<number | undefined>;
504
+ spellcheck?: MaybeSignal<boolean | undefined>;
505
+ spellCheck?: MaybeSignal<boolean | undefined>;
506
+ src?: MaybeSignal<string | undefined>;
507
+ srcset?: MaybeSignal<string | undefined>;
508
+ srcDoc?: MaybeSignal<string | undefined>;
509
+ srcLang?: MaybeSignal<string | undefined>;
510
+ srcSet?: MaybeSignal<string | undefined>;
511
+ start?: MaybeSignal<number | undefined>;
512
+ step?: MaybeSignal<number | string | undefined>;
513
+ summary?: MaybeSignal<string | undefined>;
514
+ tabIndex?: MaybeSignal<number | undefined>;
515
+ target?: MaybeSignal<string | undefined>;
516
+ title?: MaybeSignal<string | undefined>;
517
+ type?: MaybeSignal<string | undefined>;
518
+ useMap?: MaybeSignal<string | undefined>;
519
+ value?: MaybeSignal<string | string[] | number | undefined>;
520
+ volume?: MaybeSignal<string | number | undefined>;
521
+ width?: MaybeSignal<number | string | undefined>;
522
+ wmode?: MaybeSignal<string | undefined>;
523
+ wrap?: MaybeSignal<string | undefined>;
524
+
525
+ // Non-standard Attributes
526
+ autocapitalize?: MaybeSignal<
527
+ "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined
528
+ >;
529
+ autoCapitalize?: MaybeSignal<
530
+ "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined
531
+ >;
532
+ disablePictureInPicture?: MaybeSignal<boolean | undefined>;
533
+ results?: MaybeSignal<number | undefined>;
534
+ translate?: MaybeSignal<"yes" | "no" | undefined>;
535
+
536
+ // RDFa Attributes
537
+ about?: MaybeSignal<string | undefined>;
538
+ datatype?: MaybeSignal<string | undefined>;
539
+ inlist?: MaybeSignal<any | undefined>;
540
+ prefix?: MaybeSignal<string | undefined>;
541
+ property?: MaybeSignal<string | undefined>;
542
+ resource?: MaybeSignal<string | undefined>;
543
+ typeof?: MaybeSignal<string | undefined>;
544
+ vocab?: MaybeSignal<string | undefined>;
545
+
546
+ // Microdata Attributes
547
+ itemProp?: MaybeSignal<string | undefined>;
548
+ itemScope?: MaybeSignal<boolean | undefined>;
549
+ itemType?: MaybeSignal<string | undefined>;
550
+ itemID?: MaybeSignal<string | undefined>;
551
+ itemRef?: MaybeSignal<string | undefined>;
552
+
553
+ [name: string]: any;
554
+ }
555
+
556
+ interface SvgProps<in E> extends HtmlProps<E> {
557
+ accentHeight?: MaybeSignal<number | string | undefined>;
558
+ accumulate?: MaybeSignal<"none" | "sum" | undefined>;
559
+ additive?: MaybeSignal<"replace" | "sum" | undefined>;
560
+ alignmentBaseline?: MaybeSignal<
561
+ | "auto"
562
+ | "baseline"
563
+ | "before-edge"
564
+ | "text-before-edge"
565
+ | "middle"
566
+ | "central"
567
+ | "after-edge"
568
+ | "text-after-edge"
569
+ | "ideographic"
570
+ | "alphabetic"
571
+ | "hanging"
572
+ | "mathematical"
573
+ | "inherit"
574
+ | undefined
575
+ >;
576
+ allowReorder?: MaybeSignal<"no" | "yes" | undefined>;
577
+ alphabetic?: MaybeSignal<number | string | undefined>;
578
+ amplitude?: MaybeSignal<number | string | undefined>;
579
+ arabicForm?: MaybeSignal<
580
+ "initial" | "medial" | "terminal" | "isolated" | undefined
581
+ >;
582
+ ascent?: MaybeSignal<number | string | undefined>;
583
+ attributeName?: MaybeSignal<string | undefined>;
584
+ attributeType?: MaybeSignal<string | undefined>;
585
+ autoReverse?: MaybeSignal<number | string | undefined>;
586
+ azimuth?: MaybeSignal<number | string | undefined>;
587
+ baseFrequency?: MaybeSignal<number | string | undefined>;
588
+ baselineShift?: MaybeSignal<number | string | undefined>;
589
+ baseProfile?: MaybeSignal<number | string | undefined>;
590
+ bbox?: MaybeSignal<number | string | undefined>;
591
+ begin?: MaybeSignal<number | string | undefined>;
592
+ bias?: MaybeSignal<number | string | undefined>;
593
+ by?: MaybeSignal<number | string | undefined>;
594
+ calcMode?: MaybeSignal<number | string | undefined>;
595
+ capHeight?: MaybeSignal<number | string | undefined>;
596
+ clip?: MaybeSignal<number | string | undefined>;
597
+ clipPath?: MaybeSignal<string | undefined>;
598
+ clipPathUnits?: MaybeSignal<number | string | undefined>;
599
+ clipRule?: MaybeSignal<number | string | undefined>;
600
+ colorInterpolation?: MaybeSignal<number | string | undefined>;
601
+ colorInterpolationFilters?: MaybeSignal<
602
+ "auto" | "sRGB" | "linearRGB" | "inherit" | undefined
603
+ >;
604
+ colorProfile?: MaybeSignal<number | string | undefined>;
605
+ colorRendering?: MaybeSignal<number | string | undefined>;
606
+ contentScriptType?: MaybeSignal<number | string | undefined>;
607
+ contentStyleType?: MaybeSignal<number | string | undefined>;
608
+ cursor?: MaybeSignal<number | string | undefined>;
609
+ cx?: MaybeSignal<number | string | undefined>;
610
+ cy?: MaybeSignal<number | string | undefined>;
611
+ d?: MaybeSignal<string | undefined>;
612
+ decelerate?: MaybeSignal<number | string | undefined>;
613
+ descent?: MaybeSignal<number | string | undefined>;
614
+ diffuseConstant?: MaybeSignal<number | string | undefined>;
615
+ direction?: MaybeSignal<number | string | undefined>;
616
+ display?: MaybeSignal<number | string | undefined>;
617
+ divisor?: MaybeSignal<number | string | undefined>;
618
+ dominantBaseline?: MaybeSignal<number | string | undefined>;
619
+ dur?: MaybeSignal<number | string | undefined>;
620
+ dx?: MaybeSignal<number | string | undefined>;
621
+ dy?: MaybeSignal<number | string | undefined>;
622
+ edgeMode?: MaybeSignal<number | string | undefined>;
623
+ elevation?: MaybeSignal<number | string | undefined>;
624
+ enableBackground?: MaybeSignal<number | string | undefined>;
625
+ end?: MaybeSignal<number | string | undefined>;
626
+ exponent?: MaybeSignal<number | string | undefined>;
627
+ externalResourcesRequired?: MaybeSignal<number | string | undefined>;
628
+ fill?: MaybeSignal<string | undefined>;
629
+ fillOpacity?: MaybeSignal<number | string | undefined>;
630
+ fillRule?: MaybeSignal<"nonzero" | "evenodd" | "inherit" | undefined>;
631
+ filter?: MaybeSignal<string | undefined>;
632
+ filterRes?: MaybeSignal<number | string | undefined>;
633
+ filterUnits?: MaybeSignal<number | string | undefined>;
634
+ floodColor?: MaybeSignal<number | string | undefined>;
635
+ floodOpacity?: MaybeSignal<number | string | undefined>;
636
+ focusable?: MaybeSignal<number | string | undefined>;
637
+ fontFamily?: MaybeSignal<string | undefined>;
638
+ fontSize?: MaybeSignal<number | string | undefined>;
639
+ fontSizeAdjust?: MaybeSignal<number | string | undefined>;
640
+ fontStretch?: MaybeSignal<number | string | undefined>;
641
+ fontStyle?: MaybeSignal<number | string | undefined>;
642
+ fontVariant?: MaybeSignal<number | string | undefined>;
643
+ fontWeight?: MaybeSignal<number | string | undefined>;
644
+ format?: MaybeSignal<number | string | undefined>;
645
+ from?: MaybeSignal<number | string | undefined>;
646
+ fx?: MaybeSignal<number | string | undefined>;
647
+ fy?: MaybeSignal<number | string | undefined>;
648
+ g1?: MaybeSignal<number | string | undefined>;
649
+ g2?: MaybeSignal<number | string | undefined>;
650
+ glyphName?: MaybeSignal<number | string | undefined>;
651
+ glyphOrientationHorizontal?: MaybeSignal<number | string | undefined>;
652
+ glyphOrientationVertical?: MaybeSignal<number | string | undefined>;
653
+ glyphRef?: MaybeSignal<number | string | undefined>;
654
+ gradientTransform?: MaybeSignal<string | undefined>;
655
+ gradientUnits?: MaybeSignal<string | undefined>;
656
+ hanging?: MaybeSignal<number | string | undefined>;
657
+ horizAdvX?: MaybeSignal<number | string | undefined>;
658
+ horizOriginX?: MaybeSignal<number | string | undefined>;
659
+ ideographic?: MaybeSignal<number | string | undefined>;
660
+ imageRendering?: MaybeSignal<number | string | undefined>;
661
+ in2?: MaybeSignal<number | string | undefined>;
662
+ in?: MaybeSignal<string | undefined>;
663
+ intercept?: MaybeSignal<number | string | undefined>;
664
+ k1?: MaybeSignal<number | string | undefined>;
665
+ k2?: MaybeSignal<number | string | undefined>;
666
+ k3?: MaybeSignal<number | string | undefined>;
667
+ k4?: MaybeSignal<number | string | undefined>;
668
+ k?: MaybeSignal<number | string | undefined>;
669
+ kernelMatrix?: MaybeSignal<number | string | undefined>;
670
+ kernelUnitLength?: MaybeSignal<number | string | undefined>;
671
+ kerning?: MaybeSignal<number | string | undefined>;
672
+ keyPoints?: MaybeSignal<number | string | undefined>;
673
+ keySplines?: MaybeSignal<number | string | undefined>;
674
+ keyTimes?: MaybeSignal<number | string | undefined>;
675
+ lengthAdjust?: MaybeSignal<number | string | undefined>;
676
+ letterSpacing?: MaybeSignal<number | string | undefined>;
677
+ lightingColor?: MaybeSignal<number | string | undefined>;
678
+ limitingConeAngle?: MaybeSignal<number | string | undefined>;
679
+ local?: MaybeSignal<number | string | undefined>;
680
+ markerEnd?: MaybeSignal<string | undefined>;
681
+ markerHeight?: MaybeSignal<number | string | undefined>;
682
+ markerMid?: MaybeSignal<string | undefined>;
683
+ markerStart?: MaybeSignal<string | undefined>;
684
+ markerUnits?: MaybeSignal<number | string | undefined>;
685
+ markerWidth?: MaybeSignal<number | string | undefined>;
686
+ mask?: MaybeSignal<string | undefined>;
687
+ maskContentUnits?: MaybeSignal<number | string | undefined>;
688
+ maskUnits?: MaybeSignal<number | string | undefined>;
689
+ mathematical?: MaybeSignal<number | string | undefined>;
690
+ mode?: MaybeSignal<number | string | undefined>;
691
+ numOctaves?: MaybeSignal<number | string | undefined>;
692
+ offset?: MaybeSignal<number | string | undefined>;
693
+ opacity?: MaybeSignal<number | string | undefined>;
694
+ operator?: MaybeSignal<number | string | undefined>;
695
+ order?: MaybeSignal<number | string | undefined>;
696
+ orient?: MaybeSignal<number | string | undefined>;
697
+ orientation?: MaybeSignal<number | string | undefined>;
698
+ origin?: MaybeSignal<number | string | undefined>;
699
+ overflow?: MaybeSignal<number | string | undefined>;
700
+ overlinePosition?: MaybeSignal<number | string | undefined>;
701
+ overlineThickness?: MaybeSignal<number | string | undefined>;
702
+ paintOrder?: MaybeSignal<number | string | undefined>;
703
+ panose1?: MaybeSignal<number | string | undefined>;
704
+ pathLength?: MaybeSignal<number | string | undefined>;
705
+ patternContentUnits?: MaybeSignal<string | undefined>;
706
+ patternTransform?: MaybeSignal<number | string | undefined>;
707
+ patternUnits?: MaybeSignal<string | undefined>;
708
+ pointerEvents?: MaybeSignal<number | string | undefined>;
709
+ points?: MaybeSignal<string | undefined>;
710
+ pointsAtX?: MaybeSignal<number | string | undefined>;
711
+ pointsAtY?: MaybeSignal<number | string | undefined>;
712
+ pointsAtZ?: MaybeSignal<number | string | undefined>;
713
+ preserveAlpha?: MaybeSignal<number | string | undefined>;
714
+ preserveAspectRatio?: MaybeSignal<string | undefined>;
715
+ primitiveUnits?: MaybeSignal<number | string | undefined>;
716
+ r?: MaybeSignal<number | string | undefined>;
717
+ radius?: MaybeSignal<number | string | undefined>;
718
+ refX?: MaybeSignal<number | string | undefined>;
719
+ refY?: MaybeSignal<number | string | undefined>;
720
+ renderingIntent?: MaybeSignal<number | string | undefined>;
721
+ repeatCount?: MaybeSignal<number | string | undefined>;
722
+ repeatDur?: MaybeSignal<number | string | undefined>;
723
+ requiredExtensions?: MaybeSignal<number | string | undefined>;
724
+ requiredFeatures?: MaybeSignal<number | string | undefined>;
725
+ restart?: MaybeSignal<number | string | undefined>;
726
+ result?: MaybeSignal<string | undefined>;
727
+ rotate?: MaybeSignal<number | string | undefined>;
728
+ rx?: MaybeSignal<number | string | undefined>;
729
+ ry?: MaybeSignal<number | string | undefined>;
730
+ scale?: MaybeSignal<number | string | undefined>;
731
+ seed?: MaybeSignal<number | string | undefined>;
732
+ shapeRendering?: MaybeSignal<number | string | undefined>;
733
+ slope?: MaybeSignal<number | string | undefined>;
734
+ spacing?: MaybeSignal<number | string | undefined>;
735
+ specularConstant?: MaybeSignal<number | string | undefined>;
736
+ specularExponent?: MaybeSignal<number | string | undefined>;
737
+ speed?: MaybeSignal<number | string | undefined>;
738
+ spreadMethod?: MaybeSignal<string | undefined>;
739
+ startOffset?: MaybeSignal<number | string | undefined>;
740
+ stdDeviation?: MaybeSignal<number | string | undefined>;
741
+ stemh?: MaybeSignal<number | string | undefined>;
742
+ stemv?: MaybeSignal<number | string | undefined>;
743
+ stitchTiles?: MaybeSignal<number | string | undefined>;
744
+ stopColor?: MaybeSignal<string | undefined>;
745
+ stopOpacity?: MaybeSignal<number | string | undefined>;
746
+ strikethroughPosition?: MaybeSignal<number | string | undefined>;
747
+ strikethroughThickness?: MaybeSignal<number | string | undefined>;
748
+ string?: MaybeSignal<number | string | undefined>;
749
+ stroke?: MaybeSignal<string | undefined>;
750
+ strokeDasharray?: MaybeSignal<number | string | undefined>;
751
+ strokeDashoffset?: MaybeSignal<number | string | undefined>;
752
+ strokeLinecap?: MaybeSignal<
753
+ "butt" | "round" | "square" | "inherit" | undefined
754
+ >;
755
+ strokeLinejoin?: MaybeSignal<
756
+ "miter" | "round" | "bevel" | "inherit" | undefined
757
+ >;
758
+ strokeMiterlimit?: MaybeSignal<number | string | undefined>;
759
+ strokeOpacity?: MaybeSignal<number | string | undefined>;
760
+ strokeWidth?: MaybeSignal<number | string | undefined>;
761
+ surfaceScale?: MaybeSignal<number | string | undefined>;
762
+ systemLanguage?: MaybeSignal<number | string | undefined>;
763
+ tableValues?: MaybeSignal<number | string | undefined>;
764
+ targetX?: MaybeSignal<number | string | undefined>;
765
+ targetY?: MaybeSignal<number | string | undefined>;
766
+ textAnchor?: MaybeSignal<string | undefined>;
767
+ textDecoration?: MaybeSignal<number | string | undefined>;
768
+ textLength?: MaybeSignal<number | string | undefined>;
769
+ textRendering?: MaybeSignal<number | string | undefined>;
770
+ to?: MaybeSignal<number | string | undefined>;
771
+ transform?: MaybeSignal<string | undefined>;
772
+ u1?: MaybeSignal<number | string | undefined>;
773
+ u2?: MaybeSignal<number | string | undefined>;
774
+ underlinePosition?: MaybeSignal<number | string | undefined>;
775
+ underlineThickness?: MaybeSignal<number | string | undefined>;
776
+ unicode?: MaybeSignal<number | string | undefined>;
777
+ unicodeBidi?: MaybeSignal<number | string | undefined>;
778
+ unicodeRange?: MaybeSignal<number | string | undefined>;
779
+ unitsPerEm?: MaybeSignal<number | string | undefined>;
780
+ vAlphabetic?: MaybeSignal<number | string | undefined>;
781
+ values?: MaybeSignal<string | undefined>;
782
+ vectorEffect?: MaybeSignal<number | string | undefined>;
783
+ version?: MaybeSignal<string | undefined>;
784
+ vertAdvY?: MaybeSignal<number | string | undefined>;
785
+ vertOriginX?: MaybeSignal<number | string | undefined>;
786
+ vertOriginY?: MaybeSignal<number | string | undefined>;
787
+ vHanging?: MaybeSignal<number | string | undefined>;
788
+ vIdeographic?: MaybeSignal<number | string | undefined>;
789
+ viewBox?: MaybeSignal<string | undefined>;
790
+ viewTarget?: MaybeSignal<number | string | undefined>;
791
+ visibility?: MaybeSignal<number | string | undefined>;
792
+ vMathematical?: MaybeSignal<number | string | undefined>;
793
+ widths?: MaybeSignal<number | string | undefined>;
794
+ wordSpacing?: MaybeSignal<number | string | undefined>;
795
+ writingMode?: MaybeSignal<number | string | undefined>;
796
+ x1?: MaybeSignal<number | string | undefined>;
797
+ x2?: MaybeSignal<number | string | undefined>;
798
+ x?: MaybeSignal<number | string | undefined>;
799
+ xChannelSelector?: MaybeSignal<string | undefined>;
800
+ xHeight?: MaybeSignal<number | string | undefined>;
801
+ xlinkActuate?: MaybeSignal<string | undefined>;
802
+ xlinkArcrole?: MaybeSignal<string | undefined>;
803
+ xlinkHref?: MaybeSignal<string | undefined>;
804
+ xlinkRole?: MaybeSignal<string | undefined>;
805
+ xlinkShow?: MaybeSignal<string | undefined>;
806
+ xlinkTitle?: MaybeSignal<string | undefined>;
807
+ xlinkType?: MaybeSignal<string | undefined>;
808
+ xmlBase?: MaybeSignal<string | undefined>;
809
+ xmlLang?: MaybeSignal<string | undefined>;
810
+ xmlns?: MaybeSignal<string | undefined>;
811
+ xmlnsXlink?: MaybeSignal<string | undefined>;
812
+ xmlSpace?: MaybeSignal<string | undefined>;
813
+ y1?: MaybeSignal<number | string | undefined>;
814
+ y2?: MaybeSignal<number | string | undefined>;
815
+ y?: MaybeSignal<number | string | undefined>;
816
+ yChannelSelector?: MaybeSignal<string | undefined>;
817
+ z?: MaybeSignal<number | string | undefined>;
818
+ zoomAndPan?: MaybeSignal<string | undefined>;
819
+ }