sinho 0.3.4 → 0.3.6

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.
@@ -1,1147 +0,0 @@
1
- /**
2
- * Represents a signal-based computation.
3
- */
4
- interface SignalLike<out T> {
5
- /**
6
- * Gets the current value of the signal with tracking by default.
7
- */
8
- (): T;
9
- }
10
- /**
11
- * Represents a value that tracks changes over time.
12
- */
13
- interface Signal<out T> extends SignalLike<T> {
14
- /** @ignore */
15
- _effects: Set<Effect>;
16
- /**
17
- * Accesses the current value of the signal without tracking.
18
- */
19
- peek(): T;
20
- }
21
- interface SignalOptions<T> extends SetSignalOptions {
22
- /**
23
- * A custom equality function to compare the new value with the old value.
24
- */
25
- equals?: (a: T, b: T) => boolean;
26
- }
27
- interface SetSignalOptions {
28
- /**
29
- * Whether to force the update of the signal even if the new value has the
30
- * same reference.
31
- */
32
- force?: boolean;
33
- /**
34
- * Whether to suppress the update of the signal's effects.
35
- */
36
- silent?: boolean;
37
- }
38
- /**
39
- * Can be used to update a signal with a new value.
40
- */
41
- interface SignalSetter<in T, out U = T> {
42
- (update: (value: U) => T, opts?: SetSignalOptions): void;
43
- (value: T extends Function ? never : T, opts?: SetSignalOptions): void;
44
- }
45
- interface SubscopeOptions {
46
- details?: object;
47
- }
48
- interface Effect {
49
- _scope: Scope;
50
- _pure: boolean;
51
- _clean?: Cleanup;
52
- _deps: Set<Signal<unknown>>;
53
- _run(): void;
54
- }
55
- /**
56
- * Represents the cleanup function of an effect.
57
- */
58
- type Cleanup = (() => void) | void | undefined | null;
59
- interface Scope<out T = {}> {
60
- readonly _parent?: Scope;
61
- _effects: Effect[];
62
- _subscopes: Scope[];
63
- _details: T;
64
- _run<T>(fn: () => T): T;
65
- _cleanup(): void;
66
- }
67
- /** @ignore */
68
- declare const useScope: <T = {}>() => Scope<T>;
69
- /**
70
- * Creates a new signal with the given value.
71
- * @returns A tuple with the signal and its setter.
72
- */
73
- declare const useSignal: (<T>(value: T, opts?: SignalOptions<T>) => readonly [Signal<T>, SignalSetter<T>]) & (<T>(value?: T, opts?: SignalOptions<T | undefined>) => readonly [Signal<T | undefined>, SignalSetter<T | undefined>]);
74
- /**
75
- * Runs the given function in a batch.
76
- *
77
- * @param fn Any calls to signal setters inside the function will be batched
78
- * and updated at the same time.
79
- */
80
- declare const useBatch: <T>(fn: () => T) => T;
81
- declare const flushBatch: () => void;
82
- /**
83
- * Creates a memoized signal.
84
- *
85
- * @param fn The computation function.
86
- */
87
- declare const useMemo: <T>(fn: () => T, opts?: SignalOptions<T>) => Signal<T>;
88
- /**
89
- * Executes a function inside a subscope which can be manually destroyed.
90
- *
91
- * @param fn The function to run in the subscope.
92
- * @returns A function to manually destroy the subscope.
93
- */
94
- declare const useSubscope: <T>(fn: () => T, opts?: SubscopeOptions) => [T, () => void];
95
- /**
96
- * Provide write capabilities to a signal.
97
- */
98
- interface RefSignal<in out T> extends Signal<T>, RefSignalSetter<T> {
99
- /**
100
- * Sets the value of the signal.
101
- */
102
- set: SignalSetter<T>;
103
- }
104
- /**
105
- * A contravariant variant of {@link RefSignal}.
106
- */
107
- interface RefSignalSetter<in T> {
108
- /**
109
- * Sets the value of the signal.
110
- */
111
- set: SignalSetter<T, unknown>;
112
- }
113
- /**
114
- * Creates a new signal with write capabilities.
115
- */
116
- declare const useRef: (<T>(value: T, opts?: SignalOptions<T>) => RefSignal<T>) & (<T>(value?: T, opts?: SignalOptions<T | undefined>) => RefSignal<T | undefined>);
117
- /**
118
- * Represents a value that can be a signal or a constant value.
119
- *
120
- * Note that functions are not allowed as constant values.
121
- */
122
- type MaybeSignal<T> = SignalLike<T> | (T extends Function ? never : T);
123
- /**
124
- * @namespace
125
- */
126
- declare const MaybeSignal: {
127
- /**
128
- * Transforms the given {@link MaybeSignal} into a {@link Signal}.
129
- */
130
- upgrade: <T>(signal: MaybeSignal<T>) => SignalLike<T>;
131
- /**
132
- * Gets the value of the given {@link MaybeSignal}.
133
- */
134
- get: <T>(signal: MaybeSignal<T>) => T;
135
- /**
136
- * Accesses the value of the given {@link MaybeSignal} without tracking.
137
- */
138
- peek<T>(signal: MaybeSignal<T>): T;
139
- };
140
-
141
- interface DomIntrinsicElements {
142
- a: HtmlProps<HTMLAnchorElement> & DomEventProps<HTMLAnchorElement>;
143
- abbr: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
144
- address: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
145
- area: HtmlProps<HTMLAreaElement> & DomEventProps<HTMLAreaElement>;
146
- article: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
147
- aside: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
148
- audio: HtmlProps<HTMLAudioElement> & DomEventProps<HTMLAudioElement>;
149
- b: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
150
- base: HtmlProps<HTMLBaseElement> & DomEventProps<HTMLBaseElement>;
151
- bdi: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
152
- bdo: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
153
- big: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
154
- blockquote: HtmlProps<HTMLQuoteElement> & DomEventProps<HTMLQuoteElement>;
155
- body: HtmlProps<HTMLBodyElement> & DomEventProps<HTMLBodyElement>;
156
- br: HtmlProps<HTMLBRElement> & DomEventProps<HTMLBRElement>;
157
- button: HtmlProps<HTMLButtonElement> & DomEventProps<HTMLButtonElement>;
158
- canvas: HtmlProps<HTMLCanvasElement> & DomEventProps<HTMLCanvasElement>;
159
- caption: HtmlProps<HTMLTableCaptionElement> & DomEventProps<HTMLTableCaptionElement>;
160
- cite: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
161
- code: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
162
- col: HtmlProps<HTMLTableColElement> & DomEventProps<HTMLTableColElement>;
163
- colgroup: HtmlProps<HTMLTableColElement> & DomEventProps<HTMLTableColElement>;
164
- data: HtmlProps<HTMLDataElement> & DomEventProps<HTMLDataElement>;
165
- datalist: HtmlProps<HTMLDataListElement> & DomEventProps<HTMLDataListElement>;
166
- dd: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
167
- del: HtmlProps<HTMLModElement> & DomEventProps<HTMLModElement>;
168
- details: HtmlProps<HTMLDetailsElement> & DomEventProps<HTMLDetailsElement>;
169
- dfn: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
170
- dialog: HtmlProps<HTMLDialogElement> & DomEventProps<HTMLDialogElement>;
171
- div: HtmlProps<HTMLDivElement> & DomEventProps<HTMLDivElement>;
172
- dl: HtmlProps<HTMLDListElement> & DomEventProps<HTMLDListElement>;
173
- dt: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
174
- em: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
175
- embed: HtmlProps<HTMLEmbedElement> & DomEventProps<HTMLEmbedElement>;
176
- fieldset: HtmlProps<HTMLFieldSetElement> & DomEventProps<HTMLFieldSetElement>;
177
- figcaption: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
178
- figure: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
179
- footer: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
180
- form: HtmlProps<HTMLFormElement> & DomEventProps<HTMLFormElement>;
181
- h1: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
182
- h2: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
183
- h3: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
184
- h4: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
185
- h5: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
186
- h6: HtmlProps<HTMLHeadingElement> & DomEventProps<HTMLHeadingElement>;
187
- head: HtmlProps<HTMLHeadElement> & DomEventProps<HTMLHeadElement>;
188
- header: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
189
- hgroup: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
190
- hr: HtmlProps<HTMLHRElement> & DomEventProps<HTMLHRElement>;
191
- html: HtmlProps<HTMLHtmlElement> & DomEventProps<HTMLHtmlElement>;
192
- i: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
193
- iframe: HtmlProps<HTMLIFrameElement> & DomEventProps<HTMLIFrameElement>;
194
- img: HtmlProps<HTMLImageElement> & DomEventProps<HTMLImageElement>;
195
- input: HtmlProps<HTMLInputElement> & DomEventProps<HTMLInputElement>;
196
- ins: HtmlProps<HTMLModElement> & DomEventProps<HTMLModElement>;
197
- kbd: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
198
- keygen: HtmlProps<HTMLUnknownElement> & DomEventProps<HTMLUnknownElement>;
199
- label: HtmlProps<HTMLLabelElement> & DomEventProps<HTMLLabelElement>;
200
- legend: HtmlProps<HTMLLegendElement> & DomEventProps<HTMLLegendElement>;
201
- li: HtmlProps<HTMLLIElement> & DomEventProps<HTMLLIElement>;
202
- link: HtmlProps<HTMLLinkElement> & DomEventProps<HTMLLinkElement>;
203
- main: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
204
- map: HtmlProps<HTMLMapElement> & DomEventProps<HTMLMapElement>;
205
- mark: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
206
- marquee: HtmlProps<HTMLMarqueeElement> & DomEventProps<HTMLMarqueeElement>;
207
- menu: HtmlProps<HTMLMenuElement> & DomEventProps<HTMLMenuElement>;
208
- menuitem: HtmlProps<HTMLUnknownElement> & DomEventProps<HTMLUnknownElement>;
209
- meta: HtmlProps<HTMLMetaElement> & DomEventProps<HTMLMetaElement>;
210
- meter: HtmlProps<HTMLMeterElement> & DomEventProps<HTMLMeterElement>;
211
- nav: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
212
- noscript: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
213
- object: HtmlProps<HTMLObjectElement> & DomEventProps<HTMLObjectElement>;
214
- ol: HtmlProps<HTMLOListElement> & DomEventProps<HTMLOListElement>;
215
- optgroup: HtmlProps<HTMLOptGroupElement> & DomEventProps<HTMLOptGroupElement>;
216
- option: HtmlProps<HTMLOptionElement> & DomEventProps<HTMLOptionElement>;
217
- output: HtmlProps<HTMLOutputElement> & DomEventProps<HTMLOutputElement>;
218
- p: HtmlProps<HTMLParagraphElement> & DomEventProps<HTMLParagraphElement>;
219
- param: HtmlProps<HTMLParamElement> & DomEventProps<HTMLParamElement>;
220
- picture: HtmlProps<HTMLPictureElement> & DomEventProps<HTMLPictureElement>;
221
- pre: HtmlProps<HTMLPreElement> & DomEventProps<HTMLPreElement>;
222
- progress: HtmlProps<HTMLProgressElement> & DomEventProps<HTMLProgressElement>;
223
- q: HtmlProps<HTMLQuoteElement> & DomEventProps<HTMLQuoteElement>;
224
- rp: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
225
- rt: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
226
- ruby: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
227
- s: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
228
- samp: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
229
- script: HtmlProps<HTMLScriptElement> & DomEventProps<HTMLScriptElement>;
230
- section: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
231
- select: HtmlProps<HTMLSelectElement> & DomEventProps<HTMLSelectElement>;
232
- slot: HtmlProps<HTMLSlotElement> & DomEventProps<HTMLSlotElement>;
233
- small: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
234
- source: HtmlProps<HTMLSourceElement> & DomEventProps<HTMLSourceElement>;
235
- span: HtmlProps<HTMLSpanElement> & DomEventProps<HTMLSpanElement>;
236
- strong: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
237
- style: HtmlProps<HTMLStyleElement> & DomEventProps<HTMLStyleElement>;
238
- sub: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
239
- summary: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
240
- sup: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
241
- table: HtmlProps<HTMLTableElement> & DomEventProps<HTMLTableElement>;
242
- tbody: HtmlProps<HTMLTableSectionElement> & DomEventProps<HTMLTableSectionElement>;
243
- td: HtmlProps<HTMLTableCellElement> & DomEventProps<HTMLTableCellElement>;
244
- textarea: HtmlProps<HTMLTextAreaElement> & DomEventProps<HTMLTextAreaElement>;
245
- tfoot: HtmlProps<HTMLTableSectionElement> & DomEventProps<HTMLTableSectionElement>;
246
- th: HtmlProps<HTMLTableCellElement> & DomEventProps<HTMLTableCellElement>;
247
- thead: HtmlProps<HTMLTableSectionElement> & DomEventProps<HTMLTableSectionElement>;
248
- time: HtmlProps<HTMLTimeElement> & DomEventProps<HTMLTimeElement>;
249
- title: HtmlProps<HTMLTitleElement> & DomEventProps<HTMLTitleElement>;
250
- tr: HtmlProps<HTMLTableRowElement> & DomEventProps<HTMLTableRowElement>;
251
- track: HtmlProps<HTMLTrackElement> & DomEventProps<HTMLTrackElement>;
252
- u: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
253
- ul: HtmlProps<HTMLUListElement> & DomEventProps<HTMLUListElement>;
254
- var: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
255
- video: HtmlProps<HTMLVideoElement> & DomEventProps<HTMLVideoElement>;
256
- wbr: HtmlProps<HTMLElement> & DomEventProps<HTMLElement>;
257
- svg: SvgProps<SVGSVGElement> & DomEventProps<SVGSVGElement>;
258
- animate: SvgProps<SVGAnimateElement> & DomEventProps<SVGAnimateElement>;
259
- circle: SvgProps<SVGCircleElement> & DomEventProps<SVGCircleElement>;
260
- animateTransform: SvgProps<SVGAnimateElement> & DomEventProps<SVGAnimateElement>;
261
- clipPath: SvgProps<SVGClipPathElement> & DomEventProps<SVGClipPathElement>;
262
- defs: SvgProps<SVGDefsElement> & DomEventProps<SVGDefsElement>;
263
- desc: SvgProps<SVGDescElement> & DomEventProps<SVGDescElement>;
264
- ellipse: SvgProps<SVGEllipseElement> & DomEventProps<SVGEllipseElement>;
265
- feBlend: SvgProps<SVGFEBlendElement> & DomEventProps<SVGFEBlendElement>;
266
- feColorMatrix: SvgProps<SVGFEColorMatrixElement> & DomEventProps<SVGFEColorMatrixElement>;
267
- feComponentTransfer: SvgProps<SVGFEComponentTransferElement> & DomEventProps<SVGFEComponentTransferElement>;
268
- feComposite: SvgProps<SVGFECompositeElement> & DomEventProps<SVGFECompositeElement>;
269
- feConvolveMatrix: SvgProps<SVGFEConvolveMatrixElement> & DomEventProps<SVGFEConvolveMatrixElement>;
270
- feDiffuseLighting: SvgProps<SVGFEDiffuseLightingElement> & DomEventProps<SVGFEDiffuseLightingElement>;
271
- feDisplacementMap: SvgProps<SVGFEDisplacementMapElement> & DomEventProps<SVGFEDisplacementMapElement>;
272
- feDropShadow: SvgProps<SVGFEDropShadowElement> & DomEventProps<SVGFEDropShadowElement>;
273
- feFlood: SvgProps<SVGFEFloodElement> & DomEventProps<SVGFEFloodElement>;
274
- feFuncA: SvgProps<SVGFEFuncAElement> & DomEventProps<SVGFEFuncAElement>;
275
- feFuncB: SvgProps<SVGFEFuncBElement> & DomEventProps<SVGFEFuncBElement>;
276
- feFuncG: SvgProps<SVGFEFuncGElement> & DomEventProps<SVGFEFuncGElement>;
277
- feFuncR: SvgProps<SVGFEFuncRElement> & DomEventProps<SVGFEFuncRElement>;
278
- feGaussianBlur: SvgProps<SVGFEGaussianBlurElement> & DomEventProps<SVGFEGaussianBlurElement>;
279
- feImage: SvgProps<SVGFEImageElement> & DomEventProps<SVGFEImageElement>;
280
- feMerge: SvgProps<SVGFEMergeElement> & DomEventProps<SVGFEMergeElement>;
281
- feMergeNode: SvgProps<SVGFEMergeNodeElement> & DomEventProps<SVGFEMergeNodeElement>;
282
- feMorphology: SvgProps<SVGFEMorphologyElement> & DomEventProps<SVGFEMorphologyElement>;
283
- feOffset: SvgProps<SVGFEOffsetElement> & DomEventProps<SVGFEOffsetElement>;
284
- feSpecularLighting: SvgProps<SVGFESpecularLightingElement> & DomEventProps<SVGFESpecularLightingElement>;
285
- feTile: SvgProps<SVGFETileElement> & DomEventProps<SVGFETileElement>;
286
- feTurbulence: SvgProps<SVGFETurbulenceElement> & DomEventProps<SVGFETurbulenceElement>;
287
- filter: SvgProps<SVGFilterElement> & DomEventProps<SVGFilterElement>;
288
- foreignObject: SvgProps<SVGForeignObjectElement> & DomEventProps<SVGForeignObjectElement>;
289
- g: SvgProps<SVGGElement> & DomEventProps<SVGGElement>;
290
- image: SvgProps<SVGImageElement> & DomEventProps<SVGImageElement>;
291
- line: SvgProps<SVGLineElement> & DomEventProps<SVGLineElement>;
292
- linearGradient: SvgProps<SVGLinearGradientElement> & DomEventProps<SVGLinearGradientElement>;
293
- marker: SvgProps<SVGMarkerElement> & DomEventProps<SVGMarkerElement>;
294
- mask: SvgProps<SVGMaskElement> & DomEventProps<SVGMaskElement>;
295
- path: SvgProps<SVGPathElement> & DomEventProps<SVGPathElement>;
296
- pattern: SvgProps<SVGPatternElement> & DomEventProps<SVGPatternElement>;
297
- polygon: SvgProps<SVGPolygonElement> & DomEventProps<SVGPolygonElement>;
298
- polyline: SvgProps<SVGPolylineElement> & DomEventProps<SVGPolylineElement>;
299
- radialGradient: SvgProps<SVGRadialGradientElement> & DomEventProps<SVGRadialGradientElement>;
300
- rect: SvgProps<SVGRectElement> & DomEventProps<SVGRectElement>;
301
- stop: SvgProps<SVGStopElement> & DomEventProps<SVGStopElement>;
302
- symbol: SvgProps<SVGSymbolElement> & DomEventProps<SVGSymbolElement>;
303
- text: SvgProps<SVGTextElement> & DomEventProps<SVGTextElement>;
304
- textPath: SvgProps<SVGTextPathElement> & DomEventProps<SVGTextPathElement>;
305
- tspan: SvgProps<SVGTSpanElement> & DomEventProps<SVGTSpanElement>;
306
- use: SvgProps<SVGUseElement> & DomEventProps<SVGUseElement>;
307
- [tagName: string]: DomProps<any> & Record<string, any>;
308
- }
309
- type Styles = {
310
- [K in Exclude<keyof CSSStyleDeclaration, "item" | "setProperty" | "removeProperty" | "getPropertyValue" | "getPropertyPriority" | typeof Symbol.iterator | number>]?: MaybeSignal<string | number | null | undefined>;
311
- } & {
312
- [key: string]: MaybeSignal<string | number | null | undefined>;
313
- };
314
- type ExcludeNeverValues<T> = T[Exclude<keyof T, {
315
- [K in keyof T]: T[K] extends never ? K : never;
316
- }[keyof T]>];
317
- type EventMap = Pick<ElementEventMap & DocumentEventMap & GlobalEventHandlersEventMap, ExcludeNeverValues<{
318
- [K in keyof (ElementEventMap & DocumentEventMap & GlobalEventHandlersEventMap)]: K extends Lowercase<K> ? K : never;
319
- }>>;
320
- type EventHandler<K extends keyof EventMap, E> = (this: E, evt: Omit<EventMap[K], "currentTarget"> & {
321
- currentTarget: E;
322
- }) => void;
323
- type DomEventProps<E> = {
324
- [K in keyof EventMap as `on${K}`]?: EventHandler<K, E>;
325
- };
326
- interface DangerousHtml {
327
- __html: string;
328
- }
329
- interface DomProps<in E> {
330
- ref?: RefSignalSetter<E | undefined>;
331
- class?: MaybeSignal<string | undefined>;
332
- style?: Styles;
333
- dangerouslySetInnerHTML?: MaybeSignal<DangerousHtml>;
334
- children?: Children;
335
- }
336
- interface HtmlProps<in E> extends DomProps<E> {
337
- accept?: MaybeSignal<string | undefined>;
338
- acceptCharset?: MaybeSignal<string | undefined>;
339
- accessKey?: MaybeSignal<string | undefined>;
340
- action?: MaybeSignal<string | undefined>;
341
- allow?: MaybeSignal<string | undefined>;
342
- allowFullScreen?: MaybeSignal<boolean | undefined>;
343
- allowTransparency?: MaybeSignal<boolean | undefined>;
344
- alt?: MaybeSignal<string | undefined>;
345
- as?: MaybeSignal<string | undefined>;
346
- async?: MaybeSignal<boolean | undefined>;
347
- autocomplete?: MaybeSignal<string | undefined>;
348
- autoComplete?: MaybeSignal<string | undefined>;
349
- autocorrect?: MaybeSignal<string | undefined>;
350
- autoCorrect?: MaybeSignal<string | undefined>;
351
- autofocus?: MaybeSignal<boolean | undefined>;
352
- autoFocus?: MaybeSignal<boolean | undefined>;
353
- autoPlay?: MaybeSignal<boolean | undefined>;
354
- capture?: MaybeSignal<string | undefined>;
355
- cellPadding?: MaybeSignal<string | undefined>;
356
- cellSpacing?: MaybeSignal<string | undefined>;
357
- charSet?: MaybeSignal<string | undefined>;
358
- challenge?: MaybeSignal<string | undefined>;
359
- checked?: MaybeSignal<boolean | undefined>;
360
- cite?: MaybeSignal<string | undefined>;
361
- cols?: MaybeSignal<number | undefined>;
362
- colSpan?: MaybeSignal<number | undefined>;
363
- content?: MaybeSignal<string | undefined>;
364
- contentEditable?: MaybeSignal<boolean | undefined>;
365
- contextMenu?: MaybeSignal<string | undefined>;
366
- controls?: MaybeSignal<boolean | undefined>;
367
- controlsList?: MaybeSignal<string | undefined>;
368
- coords?: MaybeSignal<string | undefined>;
369
- crossOrigin?: MaybeSignal<string | undefined>;
370
- data?: MaybeSignal<string | undefined>;
371
- dateTime?: MaybeSignal<string | undefined>;
372
- default?: MaybeSignal<boolean | undefined>;
373
- defaultChecked?: MaybeSignal<boolean | undefined>;
374
- defaultValue?: MaybeSignal<string | string[] | number | undefined>;
375
- defer?: MaybeSignal<boolean | undefined>;
376
- dir?: MaybeSignal<"auto" | "rtl" | "ltr" | undefined>;
377
- disabled?: MaybeSignal<boolean | undefined>;
378
- disableRemotePlayback?: MaybeSignal<boolean | undefined>;
379
- download?: MaybeSignal<any | undefined>;
380
- decoding?: MaybeSignal<"sync" | "async" | "auto" | undefined>;
381
- draggable?: MaybeSignal<boolean | undefined>;
382
- encType?: MaybeSignal<string | undefined>;
383
- enterkeyhint?: MaybeSignal<"enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined>;
384
- for?: MaybeSignal<string | undefined>;
385
- form?: MaybeSignal<string | undefined>;
386
- formAction?: MaybeSignal<string | undefined>;
387
- formEncType?: MaybeSignal<string | undefined>;
388
- formMethod?: MaybeSignal<string | undefined>;
389
- formNoValidate?: MaybeSignal<boolean | undefined>;
390
- formTarget?: MaybeSignal<string | undefined>;
391
- frameBorder?: MaybeSignal<number | string | undefined>;
392
- headers?: MaybeSignal<string | undefined>;
393
- height?: MaybeSignal<number | string | undefined>;
394
- hidden?: MaybeSignal<boolean | undefined>;
395
- high?: MaybeSignal<number | undefined>;
396
- href?: MaybeSignal<string | undefined>;
397
- hrefLang?: MaybeSignal<string | undefined>;
398
- httpEquiv?: MaybeSignal<string | undefined>;
399
- icon?: MaybeSignal<string | undefined>;
400
- inputMode?: MaybeSignal<string | undefined>;
401
- integrity?: MaybeSignal<string | undefined>;
402
- is?: MaybeSignal<string | undefined>;
403
- keyParams?: MaybeSignal<string | undefined>;
404
- keyType?: MaybeSignal<string | undefined>;
405
- kind?: MaybeSignal<string | undefined>;
406
- label?: MaybeSignal<string | undefined>;
407
- lang?: MaybeSignal<string | undefined>;
408
- list?: MaybeSignal<string | undefined>;
409
- loading?: MaybeSignal<"eager" | "lazy" | undefined>;
410
- loop?: MaybeSignal<boolean | undefined>;
411
- low?: MaybeSignal<number | undefined>;
412
- manifest?: MaybeSignal<string | undefined>;
413
- marginHeight?: MaybeSignal<number | undefined>;
414
- marginWidth?: MaybeSignal<number | undefined>;
415
- max?: MaybeSignal<string | undefined>;
416
- maxLength?: MaybeSignal<number | undefined>;
417
- media?: MaybeSignal<string | undefined>;
418
- mediaGroup?: MaybeSignal<string | undefined>;
419
- method?: MaybeSignal<string | undefined>;
420
- min?: MaybeSignal<string | undefined>;
421
- minLength?: MaybeSignal<number | undefined>;
422
- multiple?: MaybeSignal<boolean | undefined>;
423
- muted?: MaybeSignal<boolean | undefined>;
424
- name?: MaybeSignal<string | undefined>;
425
- nomodule?: MaybeSignal<boolean | undefined>;
426
- nonce?: MaybeSignal<string | undefined>;
427
- noValidate?: MaybeSignal<boolean | undefined>;
428
- open?: MaybeSignal<boolean | undefined>;
429
- optimum?: MaybeSignal<number | undefined>;
430
- part?: MaybeSignal<string | undefined>;
431
- pattern?: MaybeSignal<string | undefined>;
432
- ping?: MaybeSignal<string | undefined>;
433
- placeholder?: MaybeSignal<string | undefined>;
434
- playsInline?: MaybeSignal<boolean | undefined>;
435
- poster?: MaybeSignal<string | undefined>;
436
- preload?: MaybeSignal<string | undefined>;
437
- radioGroup?: MaybeSignal<string | undefined>;
438
- readonly?: MaybeSignal<boolean | undefined>;
439
- readOnly?: MaybeSignal<boolean | undefined>;
440
- referrerpolicy?: MaybeSignal<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined>;
441
- rel?: MaybeSignal<string | undefined>;
442
- required?: MaybeSignal<boolean | undefined>;
443
- reversed?: MaybeSignal<boolean | undefined>;
444
- role?: MaybeSignal<string | undefined>;
445
- rows?: MaybeSignal<number | undefined>;
446
- rowSpan?: MaybeSignal<number | undefined>;
447
- sandbox?: MaybeSignal<string | undefined>;
448
- scope?: MaybeSignal<string | undefined>;
449
- scoped?: MaybeSignal<boolean | undefined>;
450
- scrolling?: MaybeSignal<string | undefined>;
451
- seamless?: MaybeSignal<boolean | undefined>;
452
- selected?: MaybeSignal<boolean | undefined>;
453
- shape?: MaybeSignal<string | undefined>;
454
- size?: MaybeSignal<number | undefined>;
455
- sizes?: MaybeSignal<string | undefined>;
456
- slot?: MaybeSignal<string | undefined>;
457
- span?: MaybeSignal<number | undefined>;
458
- spellcheck?: MaybeSignal<boolean | undefined>;
459
- spellCheck?: MaybeSignal<boolean | undefined>;
460
- src?: MaybeSignal<string | undefined>;
461
- srcset?: MaybeSignal<string | undefined>;
462
- srcDoc?: MaybeSignal<string | undefined>;
463
- srcLang?: MaybeSignal<string | undefined>;
464
- srcSet?: MaybeSignal<string | undefined>;
465
- start?: MaybeSignal<number | undefined>;
466
- step?: MaybeSignal<number | string | undefined>;
467
- summary?: MaybeSignal<string | undefined>;
468
- tabIndex?: MaybeSignal<number | undefined>;
469
- target?: MaybeSignal<string | undefined>;
470
- title?: MaybeSignal<string | undefined>;
471
- type?: MaybeSignal<string | undefined>;
472
- useMap?: MaybeSignal<string | undefined>;
473
- value?: MaybeSignal<string | string[] | number | undefined>;
474
- volume?: MaybeSignal<string | number | undefined>;
475
- width?: MaybeSignal<number | string | undefined>;
476
- wmode?: MaybeSignal<string | undefined>;
477
- wrap?: MaybeSignal<string | undefined>;
478
- autocapitalize?: MaybeSignal<"off" | "none" | "on" | "sentences" | "words" | "characters" | undefined>;
479
- autoCapitalize?: MaybeSignal<"off" | "none" | "on" | "sentences" | "words" | "characters" | undefined>;
480
- disablePictureInPicture?: MaybeSignal<boolean | undefined>;
481
- results?: MaybeSignal<number | undefined>;
482
- translate?: MaybeSignal<"yes" | "no" | undefined>;
483
- about?: MaybeSignal<string | undefined>;
484
- datatype?: MaybeSignal<string | undefined>;
485
- inlist?: MaybeSignal<any | undefined>;
486
- prefix?: MaybeSignal<string | undefined>;
487
- property?: MaybeSignal<string | undefined>;
488
- resource?: MaybeSignal<string | undefined>;
489
- typeof?: MaybeSignal<string | undefined>;
490
- vocab?: MaybeSignal<string | undefined>;
491
- itemProp?: MaybeSignal<string | undefined>;
492
- itemScope?: MaybeSignal<boolean | undefined>;
493
- itemType?: MaybeSignal<string | undefined>;
494
- itemID?: MaybeSignal<string | undefined>;
495
- itemRef?: MaybeSignal<string | undefined>;
496
- [name: string]: any;
497
- }
498
- interface SvgProps<in E> extends HtmlProps<E> {
499
- accentHeight?: MaybeSignal<number | string | undefined>;
500
- accumulate?: MaybeSignal<"none" | "sum" | undefined>;
501
- additive?: MaybeSignal<"replace" | "sum" | undefined>;
502
- alignmentBaseline?: MaybeSignal<"auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "inherit" | undefined>;
503
- allowReorder?: MaybeSignal<"no" | "yes" | undefined>;
504
- alphabetic?: MaybeSignal<number | string | undefined>;
505
- amplitude?: MaybeSignal<number | string | undefined>;
506
- arabicForm?: MaybeSignal<"initial" | "medial" | "terminal" | "isolated" | undefined>;
507
- ascent?: MaybeSignal<number | string | undefined>;
508
- attributeName?: MaybeSignal<string | undefined>;
509
- attributeType?: MaybeSignal<string | undefined>;
510
- autoReverse?: MaybeSignal<number | string | undefined>;
511
- azimuth?: MaybeSignal<number | string | undefined>;
512
- baseFrequency?: MaybeSignal<number | string | undefined>;
513
- baselineShift?: MaybeSignal<number | string | undefined>;
514
- baseProfile?: MaybeSignal<number | string | undefined>;
515
- bbox?: MaybeSignal<number | string | undefined>;
516
- begin?: MaybeSignal<number | string | undefined>;
517
- bias?: MaybeSignal<number | string | undefined>;
518
- by?: MaybeSignal<number | string | undefined>;
519
- calcMode?: MaybeSignal<number | string | undefined>;
520
- capHeight?: MaybeSignal<number | string | undefined>;
521
- clip?: MaybeSignal<number | string | undefined>;
522
- clipPath?: MaybeSignal<string | undefined>;
523
- clipPathUnits?: MaybeSignal<number | string | undefined>;
524
- clipRule?: MaybeSignal<number | string | undefined>;
525
- colorInterpolation?: MaybeSignal<number | string | undefined>;
526
- colorInterpolationFilters?: MaybeSignal<"auto" | "sRGB" | "linearRGB" | "inherit" | undefined>;
527
- colorProfile?: MaybeSignal<number | string | undefined>;
528
- colorRendering?: MaybeSignal<number | string | undefined>;
529
- contentScriptType?: MaybeSignal<number | string | undefined>;
530
- contentStyleType?: MaybeSignal<number | string | undefined>;
531
- cursor?: MaybeSignal<number | string | undefined>;
532
- cx?: MaybeSignal<number | string | undefined>;
533
- cy?: MaybeSignal<number | string | undefined>;
534
- d?: MaybeSignal<string | undefined>;
535
- decelerate?: MaybeSignal<number | string | undefined>;
536
- descent?: MaybeSignal<number | string | undefined>;
537
- diffuseConstant?: MaybeSignal<number | string | undefined>;
538
- direction?: MaybeSignal<number | string | undefined>;
539
- display?: MaybeSignal<number | string | undefined>;
540
- divisor?: MaybeSignal<number | string | undefined>;
541
- dominantBaseline?: MaybeSignal<number | string | undefined>;
542
- dur?: MaybeSignal<number | string | undefined>;
543
- dx?: MaybeSignal<number | string | undefined>;
544
- dy?: MaybeSignal<number | string | undefined>;
545
- edgeMode?: MaybeSignal<number | string | undefined>;
546
- elevation?: MaybeSignal<number | string | undefined>;
547
- enableBackground?: MaybeSignal<number | string | undefined>;
548
- end?: MaybeSignal<number | string | undefined>;
549
- exponent?: MaybeSignal<number | string | undefined>;
550
- externalResourcesRequired?: MaybeSignal<number | string | undefined>;
551
- fill?: MaybeSignal<string | undefined>;
552
- fillOpacity?: MaybeSignal<number | string | undefined>;
553
- fillRule?: MaybeSignal<"nonzero" | "evenodd" | "inherit" | undefined>;
554
- filter?: MaybeSignal<string | undefined>;
555
- filterRes?: MaybeSignal<number | string | undefined>;
556
- filterUnits?: MaybeSignal<number | string | undefined>;
557
- floodColor?: MaybeSignal<number | string | undefined>;
558
- floodOpacity?: MaybeSignal<number | string | undefined>;
559
- focusable?: MaybeSignal<number | string | undefined>;
560
- fontFamily?: MaybeSignal<string | undefined>;
561
- fontSize?: MaybeSignal<number | string | undefined>;
562
- fontSizeAdjust?: MaybeSignal<number | string | undefined>;
563
- fontStretch?: MaybeSignal<number | string | undefined>;
564
- fontStyle?: MaybeSignal<number | string | undefined>;
565
- fontVariant?: MaybeSignal<number | string | undefined>;
566
- fontWeight?: MaybeSignal<number | string | undefined>;
567
- format?: MaybeSignal<number | string | undefined>;
568
- from?: MaybeSignal<number | string | undefined>;
569
- fx?: MaybeSignal<number | string | undefined>;
570
- fy?: MaybeSignal<number | string | undefined>;
571
- g1?: MaybeSignal<number | string | undefined>;
572
- g2?: MaybeSignal<number | string | undefined>;
573
- glyphName?: MaybeSignal<number | string | undefined>;
574
- glyphOrientationHorizontal?: MaybeSignal<number | string | undefined>;
575
- glyphOrientationVertical?: MaybeSignal<number | string | undefined>;
576
- glyphRef?: MaybeSignal<number | string | undefined>;
577
- gradientTransform?: MaybeSignal<string | undefined>;
578
- gradientUnits?: MaybeSignal<string | undefined>;
579
- hanging?: MaybeSignal<number | string | undefined>;
580
- horizAdvX?: MaybeSignal<number | string | undefined>;
581
- horizOriginX?: MaybeSignal<number | string | undefined>;
582
- ideographic?: MaybeSignal<number | string | undefined>;
583
- imageRendering?: MaybeSignal<number | string | undefined>;
584
- in2?: MaybeSignal<number | string | undefined>;
585
- in?: MaybeSignal<string | undefined>;
586
- intercept?: MaybeSignal<number | string | undefined>;
587
- k1?: MaybeSignal<number | string | undefined>;
588
- k2?: MaybeSignal<number | string | undefined>;
589
- k3?: MaybeSignal<number | string | undefined>;
590
- k4?: MaybeSignal<number | string | undefined>;
591
- k?: MaybeSignal<number | string | undefined>;
592
- kernelMatrix?: MaybeSignal<number | string | undefined>;
593
- kernelUnitLength?: MaybeSignal<number | string | undefined>;
594
- kerning?: MaybeSignal<number | string | undefined>;
595
- keyPoints?: MaybeSignal<number | string | undefined>;
596
- keySplines?: MaybeSignal<number | string | undefined>;
597
- keyTimes?: MaybeSignal<number | string | undefined>;
598
- lengthAdjust?: MaybeSignal<number | string | undefined>;
599
- letterSpacing?: MaybeSignal<number | string | undefined>;
600
- lightingColor?: MaybeSignal<number | string | undefined>;
601
- limitingConeAngle?: MaybeSignal<number | string | undefined>;
602
- local?: MaybeSignal<number | string | undefined>;
603
- markerEnd?: MaybeSignal<string | undefined>;
604
- markerHeight?: MaybeSignal<number | string | undefined>;
605
- markerMid?: MaybeSignal<string | undefined>;
606
- markerStart?: MaybeSignal<string | undefined>;
607
- markerUnits?: MaybeSignal<number | string | undefined>;
608
- markerWidth?: MaybeSignal<number | string | undefined>;
609
- mask?: MaybeSignal<string | undefined>;
610
- maskContentUnits?: MaybeSignal<number | string | undefined>;
611
- maskUnits?: MaybeSignal<number | string | undefined>;
612
- mathematical?: MaybeSignal<number | string | undefined>;
613
- mode?: MaybeSignal<number | string | undefined>;
614
- numOctaves?: MaybeSignal<number | string | undefined>;
615
- offset?: MaybeSignal<number | string | undefined>;
616
- opacity?: MaybeSignal<number | string | undefined>;
617
- operator?: MaybeSignal<number | string | undefined>;
618
- order?: MaybeSignal<number | string | undefined>;
619
- orient?: MaybeSignal<number | string | undefined>;
620
- orientation?: MaybeSignal<number | string | undefined>;
621
- origin?: MaybeSignal<number | string | undefined>;
622
- overflow?: MaybeSignal<number | string | undefined>;
623
- overlinePosition?: MaybeSignal<number | string | undefined>;
624
- overlineThickness?: MaybeSignal<number | string | undefined>;
625
- paintOrder?: MaybeSignal<number | string | undefined>;
626
- panose1?: MaybeSignal<number | string | undefined>;
627
- pathLength?: MaybeSignal<number | string | undefined>;
628
- patternContentUnits?: MaybeSignal<string | undefined>;
629
- patternTransform?: MaybeSignal<number | string | undefined>;
630
- patternUnits?: MaybeSignal<string | undefined>;
631
- pointerEvents?: MaybeSignal<number | string | undefined>;
632
- points?: MaybeSignal<string | undefined>;
633
- pointsAtX?: MaybeSignal<number | string | undefined>;
634
- pointsAtY?: MaybeSignal<number | string | undefined>;
635
- pointsAtZ?: MaybeSignal<number | string | undefined>;
636
- preserveAlpha?: MaybeSignal<number | string | undefined>;
637
- preserveAspectRatio?: MaybeSignal<string | undefined>;
638
- primitiveUnits?: MaybeSignal<number | string | undefined>;
639
- r?: MaybeSignal<number | string | undefined>;
640
- radius?: MaybeSignal<number | string | undefined>;
641
- refX?: MaybeSignal<number | string | undefined>;
642
- refY?: MaybeSignal<number | string | undefined>;
643
- renderingIntent?: MaybeSignal<number | string | undefined>;
644
- repeatCount?: MaybeSignal<number | string | undefined>;
645
- repeatDur?: MaybeSignal<number | string | undefined>;
646
- requiredExtensions?: MaybeSignal<number | string | undefined>;
647
- requiredFeatures?: MaybeSignal<number | string | undefined>;
648
- restart?: MaybeSignal<number | string | undefined>;
649
- result?: MaybeSignal<string | undefined>;
650
- rotate?: MaybeSignal<number | string | undefined>;
651
- rx?: MaybeSignal<number | string | undefined>;
652
- ry?: MaybeSignal<number | string | undefined>;
653
- scale?: MaybeSignal<number | string | undefined>;
654
- seed?: MaybeSignal<number | string | undefined>;
655
- shapeRendering?: MaybeSignal<number | string | undefined>;
656
- slope?: MaybeSignal<number | string | undefined>;
657
- spacing?: MaybeSignal<number | string | undefined>;
658
- specularConstant?: MaybeSignal<number | string | undefined>;
659
- specularExponent?: MaybeSignal<number | string | undefined>;
660
- speed?: MaybeSignal<number | string | undefined>;
661
- spreadMethod?: MaybeSignal<string | undefined>;
662
- startOffset?: MaybeSignal<number | string | undefined>;
663
- stdDeviation?: MaybeSignal<number | string | undefined>;
664
- stemh?: MaybeSignal<number | string | undefined>;
665
- stemv?: MaybeSignal<number | string | undefined>;
666
- stitchTiles?: MaybeSignal<number | string | undefined>;
667
- stopColor?: MaybeSignal<string | undefined>;
668
- stopOpacity?: MaybeSignal<number | string | undefined>;
669
- strikethroughPosition?: MaybeSignal<number | string | undefined>;
670
- strikethroughThickness?: MaybeSignal<number | string | undefined>;
671
- string?: MaybeSignal<number | string | undefined>;
672
- stroke?: MaybeSignal<string | undefined>;
673
- strokeDasharray?: MaybeSignal<number | string | undefined>;
674
- strokeDashoffset?: MaybeSignal<number | string | undefined>;
675
- strokeLinecap?: MaybeSignal<"butt" | "round" | "square" | "inherit" | undefined>;
676
- strokeLinejoin?: MaybeSignal<"miter" | "round" | "bevel" | "inherit" | undefined>;
677
- strokeMiterlimit?: MaybeSignal<number | string | undefined>;
678
- strokeOpacity?: MaybeSignal<number | string | undefined>;
679
- strokeWidth?: MaybeSignal<number | string | undefined>;
680
- surfaceScale?: MaybeSignal<number | string | undefined>;
681
- systemLanguage?: MaybeSignal<number | string | undefined>;
682
- tableValues?: MaybeSignal<number | string | undefined>;
683
- targetX?: MaybeSignal<number | string | undefined>;
684
- targetY?: MaybeSignal<number | string | undefined>;
685
- textAnchor?: MaybeSignal<string | undefined>;
686
- textDecoration?: MaybeSignal<number | string | undefined>;
687
- textLength?: MaybeSignal<number | string | undefined>;
688
- textRendering?: MaybeSignal<number | string | undefined>;
689
- to?: MaybeSignal<number | string | undefined>;
690
- transform?: MaybeSignal<string | undefined>;
691
- u1?: MaybeSignal<number | string | undefined>;
692
- u2?: MaybeSignal<number | string | undefined>;
693
- underlinePosition?: MaybeSignal<number | string | undefined>;
694
- underlineThickness?: MaybeSignal<number | string | undefined>;
695
- unicode?: MaybeSignal<number | string | undefined>;
696
- unicodeBidi?: MaybeSignal<number | string | undefined>;
697
- unicodeRange?: MaybeSignal<number | string | undefined>;
698
- unitsPerEm?: MaybeSignal<number | string | undefined>;
699
- vAlphabetic?: MaybeSignal<number | string | undefined>;
700
- values?: MaybeSignal<string | undefined>;
701
- vectorEffect?: MaybeSignal<number | string | undefined>;
702
- version?: MaybeSignal<string | undefined>;
703
- vertAdvY?: MaybeSignal<number | string | undefined>;
704
- vertOriginX?: MaybeSignal<number | string | undefined>;
705
- vertOriginY?: MaybeSignal<number | string | undefined>;
706
- vHanging?: MaybeSignal<number | string | undefined>;
707
- vIdeographic?: MaybeSignal<number | string | undefined>;
708
- viewBox?: MaybeSignal<string | undefined>;
709
- viewTarget?: MaybeSignal<number | string | undefined>;
710
- visibility?: MaybeSignal<number | string | undefined>;
711
- vMathematical?: MaybeSignal<number | string | undefined>;
712
- widths?: MaybeSignal<number | string | undefined>;
713
- wordSpacing?: MaybeSignal<number | string | undefined>;
714
- writingMode?: MaybeSignal<number | string | undefined>;
715
- x1?: MaybeSignal<number | string | undefined>;
716
- x2?: MaybeSignal<number | string | undefined>;
717
- x?: MaybeSignal<number | string | undefined>;
718
- xChannelSelector?: MaybeSignal<string | undefined>;
719
- xHeight?: MaybeSignal<number | string | undefined>;
720
- xlinkActuate?: MaybeSignal<string | undefined>;
721
- xlinkArcrole?: MaybeSignal<string | undefined>;
722
- xlinkHref?: MaybeSignal<string | undefined>;
723
- xlinkRole?: MaybeSignal<string | undefined>;
724
- xlinkShow?: MaybeSignal<string | undefined>;
725
- xlinkTitle?: MaybeSignal<string | undefined>;
726
- xlinkType?: MaybeSignal<string | undefined>;
727
- xmlBase?: MaybeSignal<string | undefined>;
728
- xmlLang?: MaybeSignal<string | undefined>;
729
- xmlns?: MaybeSignal<string | undefined>;
730
- xmlnsXlink?: MaybeSignal<string | undefined>;
731
- xmlSpace?: MaybeSignal<string | undefined>;
732
- y1?: MaybeSignal<number | string | undefined>;
733
- y2?: MaybeSignal<number | string | undefined>;
734
- y?: MaybeSignal<number | string | undefined>;
735
- yChannelSelector?: MaybeSignal<string | undefined>;
736
- z?: MaybeSignal<number | string | undefined>;
737
- zoomAndPan?: MaybeSignal<string | undefined>;
738
- }
739
-
740
- type RemoveOn<S extends string> = S extends `on${infer R}` ? Uncapitalize<R> : never;
741
- type CamelCaseToKebabCase<S extends string> = S extends `${infer F}${infer R}` ? F extends Lowercase<F> ? `${F}${CamelCaseToKebabCase<R>}` : `-${Lowercase<F>}${CamelCaseToKebabCase<R>}` : Lowercase<S>;
742
- type JsxPropNameToEventName<S extends string> = CamelCaseToKebabCase<RemoveOn<S>>;
743
-
744
- declare const contextSym: unique symbol;
745
- /**
746
- * A value that can be passed through the component tree without having to be
747
- * explicitly passed as a prop.
748
- */
749
- interface Context<in out T> {
750
- readonly [contextSym]: string;
751
- /** @ignore */
752
- readonly _init: T;
753
- /** @ignore */
754
- readonly _opts?: SetSignalOptions;
755
- }
756
- /**
757
- * Creates a new context with the given value.
758
- */
759
- declare const createContext: (<T>(value: T, opts?: SetSignalOptions) => Context<T>) & (<T>(value?: T, opts?: SetSignalOptions) => Context<T | undefined>);
760
- declare const useContext: <T>(context: Context<T>) => Signal<T>;
761
-
762
- type TemplateNodes = (Node | TemplateNodes)[];
763
- declare namespace TemplateNodes {
764
- const forEach: (nodes: TemplateNodes, fn: (node: Node) => void) => void;
765
- const last: (nodes: TemplateNodes, lastIndex?: number) => Node | undefined;
766
- }
767
- /**
768
- * Represents a render result of a component.
769
- */
770
- interface Template {
771
- /**
772
- * Build the DOM elements represented by this template.
773
- */
774
- build(): TemplateNodes;
775
- }
776
-
777
- interface Tagged<in out T> {
778
- _tag: T;
779
- }
780
- type OmitNever<T> = Omit<T, {
781
- [K in keyof T]: T[K] extends never ? K : never;
782
- }[keyof T]>;
783
- type PartialRequire<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
784
- /** @ignore */
785
- interface PropMeta<T> extends PropOptions<T>, Tagged<"p"> {
786
- _type?: [T];
787
- _defaultOrContext: T;
788
- }
789
- interface AttributeOptions<T> {
790
- /**
791
- * The name of the attribute to observe.
792
- *
793
- * Defaults to the kebab-case version of the prop.
794
- */
795
- name?: string;
796
- /**
797
- * A function to transform the attribute value to the prop value.
798
- */
799
- transform: (value: string) => T;
800
- /**
801
- * Set to `true` to not observe the attribute for changes.
802
- *
803
- * @default false
804
- */
805
- static?: boolean;
806
- }
807
- type PartialPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
808
- interface PropOptions<T> {
809
- attribute?: ((value: string) => T) | (string extends T ? PartialPartial<AttributeOptions<T>, "transform"> : AttributeOptions<T>);
810
- }
811
- type Props<M> = OmitNever<{
812
- readonly [K in keyof M]: M[K] extends PropMeta<infer T> ? Signal<T> : never;
813
- }>;
814
- type EventConstructor<T = any, E = Event> = new (name: string, arg: T) => E;
815
- /** @ignore */
816
- interface EventMeta<out E extends EventConstructor> extends Tagged<"e"> {
817
- _event: E;
818
- }
819
- type Events<M> = OmitNever<Omit<{
820
- readonly [K in keyof M]: K extends `on${string}` ? M[K] extends EventMeta<infer E> ? E : never : never;
821
- }, `on${Lowercase<keyof HTMLElementEventMap>}`>>;
822
- type GeneralJsxProps<T> = Partial<OmitNever<{
823
- [K in keyof T]: K extends typeof jsxPropsSym | keyof DomProps<any> | `on${string}` | `${Uppercase<infer _>}${string}` | "accessKeyLabel" | "offsetHeight" | "offsetLeft" | "offsetParent" | "offsetTop" | "offsetWidth" | "attributes" | "classList" | "clientHeight" | "clientLeft" | "clientTop" | "clientWidth" | "localName" | "namespaceURI" | "ownerDocument" | "part" | "prefix" | "scrollHeight" | "scrollWidth" | "shadowRoot" | "tagName" | "baseURI" | "childNodes" | "firstChild" | "isConnected" | "lastChild" | "nextSibling" | "nodeName" | "nodeType" | "parentElement" | "parentNode" | "previousSibling" | "nextElementSibling" | "previousElementSibling" | "childElementCount" | "firstElementChild" | "lastElementChild" | "assignedSlot" | "attributeStyleMap" | "isContentEditable" | "dataset" ? never : T[K] extends Function ? never : MaybeSignal<T[K]>;
824
- }>> & DomProps<any> & DomEventProps<never> & Record<string, any>;
825
- type JsxProps<T extends HTMLElement> = typeof jsxPropsSym extends keyof T ? NonNullable<T[typeof jsxPropsSym]> : any;
826
- type ComponentJsxProps<M> = Partial<OmitNever<{
827
- [K in keyof Props<M>]: Props<M>[K] extends Signal<infer T> ? MaybeSignal<T> : never;
828
- }> & {
829
- [K in keyof Events<M>]: (evt: InstanceType<Events<M>[K]>) => void;
830
- }> & GeneralJsxProps<HTMLElement>;
831
- type EventEmitters<M> = OmitNever<Omit<{
832
- [K in keyof Events<M>]: Events<M>[K] extends EventConstructor<infer E> ? undefined extends E ? (arg?: E) => boolean : (arg: E) => boolean : never;
833
- }, `on${Lowercase<keyof HTMLElementEventMap>}`>>;
834
- /**
835
- * Defines a property in your component metadata that can be set from outside
836
- * of the component.
837
- *
838
- * Make sure to avoid conflicts with native `HTMLElement` properties.
839
- *
840
- * You can get properties by accessing the {@link Signal} in `this.props`.
841
- * It's also possible to set the properties directly on the component instance.
842
- *
843
- * It's also possible to define an attribute for the property by setting the
844
- * `attribute` option. By default, the attribute name is the kebab-case version
845
- * of the property name. The attribute will be observed and the signal updated
846
- * on changes. You can also provide a custom name and a transform function to
847
- * convert the attribute value to the property value.
848
- *
849
- * @example
850
- * ```tsx
851
- * class App extends Component("x-app", {
852
- * greetingMessage: prop<string>("Hello, world!", {
853
- * attribute: {
854
- * name: "greeting",
855
- * }
856
- * }),
857
- * }) {
858
- * render() {
859
- * return <h1>{this.props.greetingMessage}</h1>;
860
- * }
861
- * }
862
- *
863
- * defineComponents(App);
864
- *
865
- * const app = new App();
866
- * app.greetingMessage = "Hello, universe!";
867
- * ```
868
- */
869
- declare const prop: (<T>(context: Context<T>, opts?: PropOptions<T>) => PropMeta<T | undefined>) & (<T>(defaultValue: T, opts?: PropOptions<T>) => PropMeta<T>) & (<T>(defaultValue?: T, opts?: PropOptions<T | undefined>) => PropMeta<T | undefined>);
870
- type _CustomEventContructor<T> = undefined extends T ? typeof CustomEvent<T> : EventConstructor<PartialRequire<CustomEventInit<T>, "detail">, CustomEvent<T>>;
871
- /**
872
- * Defines an event in your component metadata that can be dispatched by
873
- * the component.
874
- *
875
- * Make sure your event name starts with `on` and to avoid conflicts with
876
- * native `HTMLElement` events. The event name will be converted to kebab-case.
877
- *
878
- * You can dispatch events either using `HTMLElement.dispatchEvent` or by
879
- * calling the event emitter function in `this.events` inside the `render`
880
- * function of a component.
881
- *
882
- * @example
883
- * ```tsx
884
- * class App extends Component("x-app", {
885
- * onSomethingHappen: event<string>(),
886
- * // Event name will be `something-happen`
887
- * }) {
888
- * render() {
889
- * // …
890
- * this.events.onSomethingHappen({ detail: "Something happened! "});
891
- * }
892
- * }
893
- *
894
- * const app = new App();
895
- * app.addEventListener("something-happen", (evt) => {
896
- * // `evt` is `CustomEvent<string>`
897
- * console.log(evt.detail);
898
- * });
899
- * ```
900
- *
901
- * You can also provide a custom event constructor:
902
- *
903
- * @example
904
- * ```tsx
905
- * class App extends Component("x-app", {
906
- * onSomethingClick: event(() => MouseEvent),
907
- * }) {
908
- * render() {
909
- * return (
910
- * <button onclick={evt => this.events.onSomethingClick(evt)}>
911
- * Click me!
912
- * </button>
913
- * );
914
- * }
915
- * }
916
- * ```
917
- */
918
- declare const event: (() => EventMeta<_CustomEventContructor<undefined>>) & (<T>() => EventMeta<_CustomEventContructor<T>>) & (<E extends EventConstructor>(eventConstructor: E) => EventMeta<E>);
919
- type Metadata = {
920
- [K in keyof ComponentInner<any> | "props" | "events"]?: never;
921
- } & {
922
- [K in keyof DomProps<any>]?: never;
923
- } & {
924
- [K in keyof HTMLElement]?: never;
925
- } & {
926
- [name: string]: PropMeta<any> | EventMeta<any>;
927
- };
928
- declare const componentSym: unique symbol;
929
- declare const jsxPropsSym: unique symbol;
930
- declare abstract class ComponentInner<M extends Metadata> {
931
- protected props: Props<M>;
932
- protected events: EventEmitters<M>;
933
- readonly [jsxPropsSym]?: ComponentJsxProps<M>;
934
- readonly [componentSym]: {
935
- _scope?: ReturnType<typeof useScope>;
936
- _destroy?: (() => void) | void;
937
- };
938
- connectedCallback(): void;
939
- disconnectedCallback(): void;
940
- attributeChangedCallback(name: string, oldValue: string | null, value: string | null): void;
941
- addEventListener<K extends keyof Events<M> & string>(type: JsxPropNameToEventName<K>, listener: (event: InstanceType<Events<M>[K]>) => void, options?: boolean | AddEventListenerOptions): void;
942
- removeEventListener<K extends keyof Events<M> & string>(type: JsxPropNameToEventName<K>, listener: (event: InstanceType<Events<M>[K]>) => void, options?: boolean | EventListenerOptions): void;
943
- abstract render(): Template;
944
- }
945
- interface ComponentConstructor<M extends Metadata = {}> {
946
- /** @ignore */
947
- readonly [componentSym]: {
948
- readonly _tagName: string;
949
- };
950
- readonly observedAttributes: readonly string[];
951
- new (): Component<M>;
952
- }
953
- interface ComponentOptions {
954
- /**
955
- * Shadow DOM options. Set to `false` to disable shadow DOM.
956
- *
957
- * @default { mode: "open" }
958
- */
959
- shadow?: ShadowRootInit | false;
960
- }
961
- /**
962
- * Creates an effect which will rerun when any accessed signal changes.
963
- *
964
- * If used inside of a component and the component is not yet mounted, the
965
- * effect will run only after the component is mounted. Otherwise, the effect
966
- * will run immediately.
967
- *
968
- * @param fn The function to run; it may return a cleanup function.
969
- */
970
- declare const useMountEffect: (fn: () => Cleanup, deps?: SignalLike<unknown>[]) => void;
971
- type Component<M extends Metadata = {}> = {
972
- -readonly [K in keyof Props<M>]: Props<M>[K] extends Signal<infer T> ? T : never;
973
- } & ComponentInner<M> & HTMLElement;
974
- /**
975
- * Creates a new web component class.
976
- *
977
- * Specify props and events using the `metadata` parameter.
978
- *
979
- * @example
980
- * ```tsx
981
- * class MyComponent extends Component("my-component", {
982
- * myProp: prop<string>("Hello, world!"),
983
- * onMyEvent: event(),
984
- * }) {
985
- * render() {
986
- * return (
987
- * <>
988
- * <h1>{this.props.myProp}</h1>
989
- * <button onclick={() => this.events.onMyEvent()}>Click me</button>
990
- * </>
991
- * );
992
- * },
993
- * }
994
- *
995
- * customElements.define("my-component", MyComponent);
996
- * ```
997
- */
998
- declare const Component: ((tagName: string) => ComponentConstructor<{}>) & (<const M extends Metadata>(tagName: string, metadata: M, opts?: ComponentOptions) => ComponentConstructor<M>);
999
- /**
1000
- * Determines whether the given value is a component created by
1001
- * extending {@link ComponentConstructor}.
1002
- */
1003
- declare const isComponent: (value: any) => value is ComponentConstructor | Component;
1004
- /**
1005
- * Represents a functional component.
1006
- *
1007
- * @example
1008
- * ```tsx
1009
- * const MyComponent: FunctionalComponent<{
1010
- * name: MaybeSignal<string>;
1011
- * }> = ({ name }) => {
1012
- * return <h1>Hello, {name}!</h1>;
1013
- * };
1014
- * ```
1015
- */
1016
- interface FunctionalComponent<in P extends object = {}> {
1017
- (props: P): Template;
1018
- }
1019
- /**
1020
- * Defines a set of components with the given prefix.
1021
- */
1022
- declare const defineComponents: ((...components: ComponentConstructor[]) => void) & ((prefix: string, ...components: ComponentConstructor[]) => void);
1023
-
1024
- type Children = Template | MaybeSignal<string | number | null | undefined> | Children[];
1025
- /**
1026
- * Fragment is a component that can be used to wrap multiple children without
1027
- * introducing an extra DOM element.
1028
- *
1029
- * @example
1030
- * ```tsx
1031
- * render() {
1032
- * return (
1033
- * <>
1034
- * <h1>Hello World</h1>
1035
- * <p>This is a paragraph.</p>
1036
- * </>
1037
- * );
1038
- * }
1039
- * ```
1040
- */
1041
- declare const Fragment: FunctionalComponent<{
1042
- children?: Children;
1043
- }>;
1044
-
1045
- /**
1046
- * Creates a template based on the given component type.
1047
- *
1048
- * @example
1049
- * ```tsx
1050
- * render() {
1051
- * return createElement("div", { id: "app" }, [
1052
- * createElement("h1", {}, "Hello, World!"),
1053
- * ]);
1054
- * }
1055
- * ```
1056
- */
1057
- declare const createElement: (<K extends keyof DomIntrinsicElements & string>(type: K, props?: DomIntrinsicElements[K], children?: Children) => Template) & (<T extends HTMLElement>(...args: [
1058
- type: new () => T,
1059
- ...({} extends JsxProps<T> ? [props?: JsxProps<T>] : [props: JsxProps<T>]),
1060
- children?: DomProps<T>["children"]
1061
- ]) => Template) & (<P extends object>(...args: [
1062
- type: FunctionalComponent<P>,
1063
- ...({} extends P ? [props?: P] : [props: P]),
1064
- ...(P extends {
1065
- children?: unknown;
1066
- } ? undefined extends P["children"] ? [children?: P["children"]] : [children: P["children"]] : [])
1067
- ]) => Template);
1068
- /**
1069
- * Shorthand for {@link createElement} with convenience methods for intrinsic
1070
- * elements.
1071
- *
1072
- * @example
1073
- * ```tsx
1074
- * render() {
1075
- * return h.div({ id: "app" }, [
1076
- * h.h1({}, "Hello, World!"),
1077
- * ]);
1078
- * }
1079
- * ```
1080
- */
1081
- declare const h: typeof createElement & {
1082
- [K in keyof DomIntrinsicElements]: (props?: DomIntrinsicElements[K], children?: Children) => Template;
1083
- };
1084
-
1085
- /**
1086
- * `For` is a component that can be used to render a list of items.
1087
- */
1088
- declare const For: <T>(props: {
1089
- each?: MaybeSignal<readonly T[]>;
1090
- key?: (item: T, index: number) => string | number;
1091
- children?: (item: Signal<T>, index: Signal<number>, arr: SignalLike<readonly T[]>) => Template;
1092
- }) => Template;
1093
-
1094
- /**
1095
- * `If` is a component that can be used to render conditionally.
1096
- */
1097
- declare const If: FunctionalComponent<{
1098
- condition?: MaybeSignal<boolean>;
1099
- children?: Children;
1100
- }>;
1101
- /**
1102
- * `ElseIf` serves as an `else if` block for {@link If}. It can also be chained
1103
- * multiple times.
1104
- */
1105
- declare const ElseIf: FunctionalComponent<{
1106
- condition?: MaybeSignal<boolean>;
1107
- children?: Children;
1108
- }>;
1109
- /**
1110
- * `Else` indicates the `else` block for {@link If} and {@link ElseIf}.
1111
- */
1112
- declare const Else: FunctionalComponent<{
1113
- children?: Children;
1114
- }>;
1115
-
1116
- declare const Portal: FunctionalComponent<{
1117
- mount: Node;
1118
- children?: Children;
1119
- }>;
1120
-
1121
- declare const Style: FunctionalComponent<{
1122
- light?: boolean;
1123
- children?: MaybeSignal<string>;
1124
- }>;
1125
- declare const css: (strings: TemplateStringsArray, ...values: MaybeSignal<string | number>[]) => MaybeSignal<string>;
1126
-
1127
- /** @ignore */
1128
- declare const jsx: (type: any, props?: object & {
1129
- key?: unknown;
1130
- }, key?: unknown) => Template;
1131
- /** @ignore */
1132
- declare namespace JSX {
1133
- type Element = Template;
1134
- type ElementClass = Omit<HTMLElement, typeof jsxPropsSym>;
1135
- interface ElementAttributesProperty {
1136
- [jsxPropsSym]: {};
1137
- }
1138
- interface ElementChildrenAttribute {
1139
- children: {};
1140
- }
1141
- type IntrinsicElements = DomIntrinsicElements;
1142
- interface IntrinsicClassAttributes<T> extends DomProps<T>, DomEventProps<T> {
1143
- }
1144
- }
1145
-
1146
- export { Component, Else, ElseIf, For, Fragment, If, JSX, MaybeSignal, Portal, Style, TemplateNodes, createContext, createElement, css, defineComponents, event, flushBatch, h, isComponent, jsx, jsx as jsxDEV, jsx as jsxs, prop, useBatch, useContext, useMountEffect as useEffect, useMemo, useRef, useSignal, useSubscope };
1147
- export type { AttributeOptions, Children, Cleanup, ComponentConstructor, ComponentOptions, Context, DangerousHtml, EventConstructor, FunctionalComponent, Metadata, PropOptions, RefSignal, RefSignalSetter, SetSignalOptions, Signal, SignalLike, SignalSetter, Styles, SubscopeOptions, Template };