kiru 1.4.1 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/derive.d.ts +1 -1
- package/dist/components/derive.d.ts.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/devtools.d.ts +1 -1
- package/dist/devtools.d.ts.map +1 -1
- package/dist/dom/nodes.d.ts +1 -1
- package/dist/dom/nodes.d.ts.map +1 -1
- package/dist/dom/nodes.js.map +1 -1
- package/dist/dom/props.js.map +1 -1
- package/dist/globalContext.d.ts +2 -2
- package/dist/globalContext.d.ts.map +1 -1
- package/dist/headlessRender.d.ts.map +1 -1
- package/dist/headlessRender.js +3 -0
- package/dist/headlessRender.js.map +1 -1
- package/dist/hooks/onCleanup.d.ts.map +1 -1
- package/dist/hooks/onCleanup.js +3 -1
- package/dist/hooks/onCleanup.js.map +1 -1
- package/dist/hooks/setup.d.ts.map +1 -1
- package/dist/hooks/setup.js +11 -28
- package/dist/hooks/setup.js.map +1 -1
- package/dist/hooks/utils.d.ts.map +1 -1
- package/dist/hooks/utils.js +2 -1
- package/dist/hooks/utils.js.map +1 -1
- package/dist/hydration.d.ts +1 -1
- package/dist/hydration.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/profiling.d.ts +1 -1
- package/dist/profiling.d.ts.map +1 -1
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +38 -6
- package/dist/reconciler.js.map +1 -1
- package/dist/resource.d.ts +11 -5
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +90 -40
- package/dist/resource.js.map +1 -1
- package/dist/router/client/index.d.ts +1 -1
- package/dist/router/client/index.d.ts.map +1 -1
- package/dist/router/fileRouterController.d.ts.map +1 -1
- package/dist/router/fileRouterController.js +1 -1
- package/dist/router/fileRouterController.js.map +1 -1
- package/dist/router/globals.d.ts +2 -2
- package/dist/router/globals.d.ts.map +1 -1
- package/dist/router/link.d.ts +1 -1
- package/dist/router/link.d.ts.map +1 -1
- package/dist/router/pageConfig.d.ts +1 -1
- package/dist/router/pageConfig.d.ts.map +1 -1
- package/dist/router/types.d.ts +3 -3
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.internal.d.ts +2 -2
- package/dist/router/types.internal.d.ts.map +1 -1
- package/dist/router/utils/index.d.ts +2 -2
- package/dist/router/utils/index.d.ts.map +1 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +15 -2
- package/dist/scheduler.js.map +1 -1
- package/dist/signals/base.d.ts +1 -0
- package/dist/signals/base.d.ts.map +1 -1
- package/dist/signals/base.js +14 -2
- package/dist/signals/base.js.map +1 -1
- package/dist/signals/effect.d.ts.map +1 -1
- package/dist/signals/effect.js +8 -0
- package/dist/signals/effect.js.map +1 -1
- package/dist/signals/tracking.d.ts +1 -1
- package/dist/signals/tracking.d.ts.map +1 -1
- package/dist/signals/tracking.js +14 -15
- package/dist/signals/tracking.js.map +1 -1
- package/dist/ssr/client.d.ts +1 -1
- package/dist/ssr/client.d.ts.map +1 -1
- package/dist/types.d.ts +31 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.dom.d.ts +190 -2
- package/dist/types.dom.d.ts.map +1 -1
- package/dist/types.utils.d.ts +28 -21
- package/dist/types.utils.d.ts.map +1 -1
- package/dist/utils/vdom.d.ts.map +1 -1
- package/dist/utils/vdom.js +5 -2
- package/dist/utils/vdom.js.map +1 -1
- package/package.json +1 -1
- package/src/components/derive.ts +1 -1
- package/src/constants.ts +2 -0
- package/src/devtools.ts +1 -1
- package/src/dom/commit.ts +1 -1
- package/src/dom/nodes.ts +8 -3
- package/src/dom/props.ts +6 -6
- package/src/globalContext.ts +2 -2
- package/src/headlessRender.ts +4 -1
- package/src/hooks/onCleanup.ts +3 -1
- package/src/hooks/setup.ts +17 -31
- package/src/hooks/utils.ts +2 -1
- package/src/hydration.ts +1 -1
- package/src/index.ts +1 -1
- package/src/profiling.ts +1 -1
- package/src/reconciler.ts +51 -9
- package/src/resource.ts +119 -45
- package/src/router/client/index.ts +2 -2
- package/src/router/fileRouterController.ts +5 -5
- package/src/router/globals.ts +2 -2
- package/src/router/link.ts +1 -1
- package/src/router/pageConfig.ts +1 -1
- package/src/router/types.internal.ts +2 -2
- package/src/router/types.ts +3 -3
- package/src/router/utils/index.ts +1 -1
- package/src/scheduler.ts +20 -3
- package/src/signals/base.ts +20 -2
- package/src/signals/effect.ts +8 -0
- package/src/signals/tracking.ts +18 -16
- package/src/ssr/client.ts +1 -1
- package/src/types.dom.ts +270 -53
- package/src/types.ts +36 -32
- package/src/types.utils.ts +56 -22
- package/src/utils/vdom.ts +7 -1
package/src/scheduler.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
DomVNode,
|
|
3
|
+
ErrorBoundaryNode,
|
|
4
|
+
FunctionVNode,
|
|
5
|
+
InlineFnNode,
|
|
6
|
+
} from "./types.utils.js"
|
|
2
7
|
import {
|
|
3
8
|
$ERROR_BOUNDARY,
|
|
9
|
+
$INLINE_FN,
|
|
4
10
|
CONSECUTIVE_DIRTY_LIMIT,
|
|
5
11
|
FLAG_DELETION,
|
|
6
12
|
FLAG_DIRTY,
|
|
@@ -30,7 +36,7 @@ import { node, postEffectCleanups, renderMode, setups } from "./globals.js"
|
|
|
30
36
|
import { hydrationStack } from "./hydration.js"
|
|
31
37
|
import { reconcileChildren } from "./reconciler.js"
|
|
32
38
|
import { isHmrUpdate } from "./hmr.js"
|
|
33
|
-
import type { AppHandle } from "./appHandle"
|
|
39
|
+
import type { AppHandle } from "./appHandle.js"
|
|
34
40
|
|
|
35
41
|
type VNode = Kiru.VNode
|
|
36
42
|
|
|
@@ -298,7 +304,18 @@ function updateExoticComponent(vNode: VNode): VNode | null {
|
|
|
298
304
|
const { props, type } = vNode
|
|
299
305
|
let children = props.children
|
|
300
306
|
|
|
301
|
-
if (type === $
|
|
307
|
+
if (type === $INLINE_FN) {
|
|
308
|
+
node.current = vNode
|
|
309
|
+
let render = (props as InlineFnNode["props"]).expr
|
|
310
|
+
if (__DEV__) {
|
|
311
|
+
render = latest(render)
|
|
312
|
+
}
|
|
313
|
+
try {
|
|
314
|
+
children = render()
|
|
315
|
+
} finally {
|
|
316
|
+
node.current = null
|
|
317
|
+
}
|
|
318
|
+
} else if (type === $ERROR_BOUNDARY) {
|
|
302
319
|
const n = vNode as ErrorBoundaryNode
|
|
303
320
|
const { error } = n
|
|
304
321
|
if (error) {
|
package/src/signals/base.ts
CHANGED
|
@@ -5,8 +5,14 @@ import {
|
|
|
5
5
|
generateRandomID,
|
|
6
6
|
registerVNodeCleanup,
|
|
7
7
|
} from "../utils/index.js"
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
$DEV_FILE_LINK,
|
|
10
|
+
$HMR_ACCEPT,
|
|
11
|
+
$INLINE_FN,
|
|
12
|
+
$SIGNAL,
|
|
13
|
+
} from "../constants.js"
|
|
9
14
|
import { __DEV__, isBrowser } from "../env.js"
|
|
15
|
+
import { KiruError } from "../error.js"
|
|
10
16
|
import { node } from "../globals.js"
|
|
11
17
|
import { requestUpdate } from "../scheduler.js"
|
|
12
18
|
import { tracking } from "./tracking.js"
|
|
@@ -58,7 +64,15 @@ export class Signal<T> {
|
|
|
58
64
|
|
|
59
65
|
const n = node.current
|
|
60
66
|
if (n) {
|
|
61
|
-
|
|
67
|
+
if (__DEV__ && n.type === $INLINE_FN) {
|
|
68
|
+
throw new KiruError({
|
|
69
|
+
message: "Signals cannot be created inside inline functions",
|
|
70
|
+
vNode: n,
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
if (sideEffectsEnabled()) {
|
|
74
|
+
registerVNodeCleanup(n, this.$id, Signal.dispose.bind(null, this))
|
|
75
|
+
}
|
|
62
76
|
}
|
|
63
77
|
}
|
|
64
78
|
|
|
@@ -151,6 +165,10 @@ export class Signal<T> {
|
|
|
151
165
|
return typeof x === "object" && !!x && $SIGNAL in x
|
|
152
166
|
}
|
|
153
167
|
|
|
168
|
+
static id(signal: Signal<any>) {
|
|
169
|
+
return signal.$id
|
|
170
|
+
}
|
|
171
|
+
|
|
154
172
|
static subscribers(signal: Signal<any>) {
|
|
155
173
|
return signal.$subs
|
|
156
174
|
}
|
package/src/signals/effect.ts
CHANGED
|
@@ -11,6 +11,8 @@ import {
|
|
|
11
11
|
import type { Signal } from "./base.js"
|
|
12
12
|
import type { SignalValues } from "./types.js"
|
|
13
13
|
import { node } from "../globals.js"
|
|
14
|
+
import { $INLINE_FN } from "../constants.js"
|
|
15
|
+
import { KiruError } from "../error.js"
|
|
14
16
|
|
|
15
17
|
type EffectCallbackReturn = (() => void) | void
|
|
16
18
|
|
|
@@ -37,6 +39,12 @@ export class Effect<const Deps extends readonly Signal<unknown>[] = []> {
|
|
|
37
39
|
}
|
|
38
40
|
const n = node.current
|
|
39
41
|
if (n) {
|
|
42
|
+
if (__DEV__ && n.type === $INLINE_FN) {
|
|
43
|
+
throw new KiruError({
|
|
44
|
+
message: "Effects cannot be created inside inline functions",
|
|
45
|
+
vNode: n,
|
|
46
|
+
})
|
|
47
|
+
}
|
|
40
48
|
if (!sideEffectsEnabled()) return // prevent side effects in non-browser environments
|
|
41
49
|
registerVNodeCleanup(n, this.id, this.stop.bind(this))
|
|
42
50
|
}
|
package/src/signals/tracking.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type TrackingStackObservations = Map<string, Signal<unknown>>
|
|
|
9
9
|
export const tracking = {
|
|
10
10
|
enabled: true,
|
|
11
11
|
stack: new Array<TrackingStackObservations>(),
|
|
12
|
-
current
|
|
12
|
+
current(): TrackingStackObservations | undefined {
|
|
13
13
|
return this.stack[this.stack.length - 1]
|
|
14
14
|
},
|
|
15
15
|
}
|
|
@@ -32,25 +32,19 @@ export function executeWithTracking<T, Deps extends readonly Signal<unknown>[]>(
|
|
|
32
32
|
ctx: TrackedExecutionContext<T, Deps>
|
|
33
33
|
): T {
|
|
34
34
|
const { id, subs, fn, deps = [], onDepChanged } = ctx
|
|
35
|
-
let observations:
|
|
35
|
+
let observations: TrackingStackObservations | undefined
|
|
36
36
|
|
|
37
37
|
effectQueue.delete(id)
|
|
38
|
-
const isServer = !!node.current && !sideEffectsEnabled()
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
// Prevent side effects in non-browser environments while rendering
|
|
40
|
+
if (!node.current || sideEffectsEnabled()) {
|
|
41
|
+
observations = new Map()
|
|
42
42
|
tracking.stack.push(observations)
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
const result = fn(...(deps.map((s) => s.value) as SignalValues<Deps>))
|
|
46
46
|
|
|
47
|
-
if (
|
|
48
|
-
for (const [id, unsub] of subs) {
|
|
49
|
-
if (observations!.has(id)) continue
|
|
50
|
-
unsub()
|
|
51
|
-
subs.delete(id)
|
|
52
|
-
}
|
|
53
|
-
|
|
47
|
+
if (observations) {
|
|
54
48
|
const effect = () => {
|
|
55
49
|
if (!effectQueue.size) {
|
|
56
50
|
queueMicrotask(tick)
|
|
@@ -58,11 +52,19 @@ export function executeWithTracking<T, Deps extends readonly Signal<unknown>[]>(
|
|
|
58
52
|
effectQueue.set(id, onDepChanged)
|
|
59
53
|
}
|
|
60
54
|
|
|
61
|
-
for (const [id,
|
|
62
|
-
if (subs.has(id))
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
for (const [id, signal] of observations) {
|
|
56
|
+
if (!subs.has(id)) {
|
|
57
|
+
subs.set(id, signal.subscribe(effect))
|
|
58
|
+
}
|
|
65
59
|
}
|
|
60
|
+
|
|
61
|
+
for (const [id, unsub] of subs) {
|
|
62
|
+
if (!observations.has(id)) {
|
|
63
|
+
unsub()
|
|
64
|
+
subs.delete(id)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
66
68
|
tracking.stack.pop()
|
|
67
69
|
}
|
|
68
70
|
|
package/src/ssr/client.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AppHandle, AppHandleOptions } from "../appHandle"
|
|
1
|
+
import type { AppHandle, AppHandleOptions } from "../appHandle.js"
|
|
2
2
|
import { hydrationStack } from "../hydration.js"
|
|
3
3
|
import { hydrationMode, renderMode } from "../globals.js"
|
|
4
4
|
import { mount } from "../index.js"
|
package/src/types.dom.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Signal } from "./signals"
|
|
2
|
-
import type { Prettify, Signalable } from "./types.utils"
|
|
1
|
+
import type { Signal } from "./signals/base.js"
|
|
2
|
+
import type { Prettify, Signalable } from "./types.utils.js"
|
|
3
3
|
|
|
4
4
|
export type {
|
|
5
5
|
HTMLTagToElement,
|
|
@@ -16,8 +16,8 @@ type HTMLTagToElement<T extends keyof HtmlElementAttributes> =
|
|
|
16
16
|
T extends keyof HTMLElementTagNameMap
|
|
17
17
|
? HTMLElementTagNameMap[T]
|
|
18
18
|
: T extends keyof HTMLElementDeprecatedTagNameMap
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
? HTMLElementDeprecatedTagNameMap[T]
|
|
20
|
+
: never
|
|
21
21
|
|
|
22
22
|
type SVGTagToElement<T extends keyof SvgElementAttributes> =
|
|
23
23
|
T extends keyof SVGElementTagNameMap ? SVGElementTagNameMap[T] : never
|
|
@@ -369,53 +369,81 @@ declare global {
|
|
|
369
369
|
bivarianceHack(event: E): void
|
|
370
370
|
}["bivarianceHack"]
|
|
371
371
|
|
|
372
|
-
interface BaseEvent<T extends DomElement = DomElement>
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
interface
|
|
382
|
-
extends
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
interface
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
interface
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
372
|
+
interface BaseEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
373
|
+
Event,
|
|
374
|
+
T
|
|
375
|
+
> {}
|
|
376
|
+
|
|
377
|
+
interface AnimationEvent<
|
|
378
|
+
T extends DomElement = DomElement,
|
|
379
|
+
> extends DOMEvent<NativeAnimationEvent, T> {}
|
|
380
|
+
|
|
381
|
+
interface ClipboardEvent<
|
|
382
|
+
T extends DomElement = DomElement,
|
|
383
|
+
> extends DOMEvent<NativeClipboardEvent, T> {}
|
|
384
|
+
|
|
385
|
+
interface CompositionEvent<
|
|
386
|
+
T extends DomElement = DomElement,
|
|
387
|
+
> extends DOMEvent<NativeCompositionEvent, T> {}
|
|
388
|
+
|
|
389
|
+
interface DragEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
390
|
+
NativeDragEvent,
|
|
391
|
+
T
|
|
392
|
+
> {}
|
|
393
|
+
|
|
394
|
+
interface FocusEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
395
|
+
NativeFocusEvent,
|
|
396
|
+
T
|
|
397
|
+
> {}
|
|
398
|
+
|
|
399
|
+
interface FormEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
400
|
+
Event,
|
|
401
|
+
T
|
|
402
|
+
> {}
|
|
403
|
+
|
|
404
|
+
interface KeyboardEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
405
|
+
NativeKeyboardEvent,
|
|
406
|
+
T
|
|
407
|
+
> {}
|
|
408
|
+
|
|
409
|
+
interface MouseEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
410
|
+
NativeMouseEvent,
|
|
411
|
+
T
|
|
412
|
+
> {}
|
|
413
|
+
|
|
414
|
+
interface PointerEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
415
|
+
NativePointerEvent,
|
|
416
|
+
T
|
|
417
|
+
> {}
|
|
418
|
+
|
|
419
|
+
interface SubmitEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
420
|
+
NativeSubmitEvent,
|
|
421
|
+
T
|
|
422
|
+
> {}
|
|
423
|
+
|
|
424
|
+
interface TouchEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
425
|
+
NativeTouchEvent,
|
|
426
|
+
T
|
|
427
|
+
> {}
|
|
428
|
+
|
|
429
|
+
interface ToggleEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
430
|
+
NativeToggleEvent,
|
|
431
|
+
T
|
|
432
|
+
> {}
|
|
433
|
+
|
|
434
|
+
interface TransitionEvent<
|
|
435
|
+
T extends DomElement = DomElement,
|
|
436
|
+
> extends DOMEvent<NativeTransitionEvent, T> {}
|
|
437
|
+
|
|
438
|
+
interface UIEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
439
|
+
NativeUIEvent,
|
|
440
|
+
T
|
|
441
|
+
> {}
|
|
442
|
+
|
|
443
|
+
interface WheelEvent<T extends DomElement = DomElement> extends DOMEvent<
|
|
444
|
+
NativeWheelEvent,
|
|
445
|
+
T
|
|
446
|
+
> {}
|
|
419
447
|
|
|
420
448
|
type BaseEventHandler<T extends DomElement = DomElement> = EventHandler<
|
|
421
449
|
BaseEvent<T>
|
|
@@ -466,8 +494,9 @@ declare global {
|
|
|
466
494
|
) => void
|
|
467
495
|
}
|
|
468
496
|
|
|
469
|
-
interface EventAttributes<
|
|
470
|
-
extends
|
|
497
|
+
interface EventAttributes<
|
|
498
|
+
T extends DomElement = DomElement,
|
|
499
|
+
> extends CustomEventAttributes {
|
|
471
500
|
// Clipboard Events
|
|
472
501
|
oncopy?: ClipboardEventHandler<T> | undefined
|
|
473
502
|
oncut?: ClipboardEventHandler<T> | undefined
|
|
@@ -1035,6 +1064,7 @@ interface HtmlElementAttributes {
|
|
|
1035
1064
|
ev: PictureInPictureEvent
|
|
1036
1065
|
) => void
|
|
1037
1066
|
}
|
|
1067
|
+
wbr: {}
|
|
1038
1068
|
}
|
|
1039
1069
|
|
|
1040
1070
|
interface SvgGlobalAttributes {
|
|
@@ -1091,6 +1121,46 @@ interface FeFuncAttributes {
|
|
|
1091
1121
|
}
|
|
1092
1122
|
|
|
1093
1123
|
interface SvgElementAttributes {
|
|
1124
|
+
animate: {
|
|
1125
|
+
begin?: string
|
|
1126
|
+
dur?: string
|
|
1127
|
+
end?: string
|
|
1128
|
+
min?: string
|
|
1129
|
+
max?: string
|
|
1130
|
+
restart?: "always" | "whenNotActive" | "never"
|
|
1131
|
+
repeatCount?: "indefinite" | number
|
|
1132
|
+
repeatDur?: string
|
|
1133
|
+
fill?: "freeze" | "remove" | "default"
|
|
1134
|
+
calcMode?: "linear" | "discrete" | "spline" | "paced"
|
|
1135
|
+
keyTimes?: string
|
|
1136
|
+
keySplines?: string
|
|
1137
|
+
values?: string
|
|
1138
|
+
from?: string
|
|
1139
|
+
to?: string
|
|
1140
|
+
by?: string
|
|
1141
|
+
attributeName?: string
|
|
1142
|
+
attributeType?: "CSS" | "XML"
|
|
1143
|
+
additive?: "replace" | "sum"
|
|
1144
|
+
accumulate?: "none" | "sum"
|
|
1145
|
+
}
|
|
1146
|
+
animateMotion: {
|
|
1147
|
+
begin?: string
|
|
1148
|
+
dur?: string
|
|
1149
|
+
end?: string
|
|
1150
|
+
min?: string
|
|
1151
|
+
max?: string
|
|
1152
|
+
restart?: "always" | "whenNotActive" | "never"
|
|
1153
|
+
repeatCount?: "indefinite" | number
|
|
1154
|
+
repeatDur?: string
|
|
1155
|
+
fill?: "freeze" | "remove" | "default"
|
|
1156
|
+
calcMode?: "linear" | "discrete" | "spline" | "paced"
|
|
1157
|
+
keyTimes?: string
|
|
1158
|
+
keySplines?: string
|
|
1159
|
+
path?: string
|
|
1160
|
+
keyPoints?: string
|
|
1161
|
+
rotate?: "none" | (string & {})
|
|
1162
|
+
origin?: string
|
|
1163
|
+
}
|
|
1094
1164
|
animateTransform: {
|
|
1095
1165
|
begin?: string
|
|
1096
1166
|
dur?: string
|
|
@@ -1126,6 +1196,69 @@ interface SvgElementAttributes {
|
|
|
1126
1196
|
}
|
|
1127
1197
|
defs: {}
|
|
1128
1198
|
desc: {}
|
|
1199
|
+
foreignObject: {
|
|
1200
|
+
x?: string | number
|
|
1201
|
+
y?: string | number
|
|
1202
|
+
width?: string | number
|
|
1203
|
+
height?: string | number
|
|
1204
|
+
requiredExtensions?: string
|
|
1205
|
+
requiredFeatures?: string
|
|
1206
|
+
systemLanguage?: string
|
|
1207
|
+
}
|
|
1208
|
+
marker: {
|
|
1209
|
+
markerUnits?: "userSpaceOnUse" | "strokeWidth"
|
|
1210
|
+
markerWidth?: string | number
|
|
1211
|
+
markerHeight?: string | number
|
|
1212
|
+
refX?: string | number
|
|
1213
|
+
refY?: string | number
|
|
1214
|
+
orient?: "auto" | "auto-start-reverse" | string
|
|
1215
|
+
viewBox?: string
|
|
1216
|
+
}
|
|
1217
|
+
metadata: {}
|
|
1218
|
+
mpath: {
|
|
1219
|
+
href?: string
|
|
1220
|
+
"xlink:href"?: string
|
|
1221
|
+
}
|
|
1222
|
+
set: {
|
|
1223
|
+
begin?: string
|
|
1224
|
+
dur?: string
|
|
1225
|
+
end?: string
|
|
1226
|
+
min?: string
|
|
1227
|
+
max?: string
|
|
1228
|
+
restart?: "always" | "whenNotActive" | "never"
|
|
1229
|
+
repeatCount?: "indefinite" | number
|
|
1230
|
+
repeatDur?: string
|
|
1231
|
+
fill?: "freeze" | "remove" | "default"
|
|
1232
|
+
attributeName?: string
|
|
1233
|
+
attributeType?: "CSS" | "XML"
|
|
1234
|
+
to?: string
|
|
1235
|
+
}
|
|
1236
|
+
switch: {
|
|
1237
|
+
requiredExtensions?: string
|
|
1238
|
+
requiredFeatures?: string
|
|
1239
|
+
systemLanguage?: string
|
|
1240
|
+
}
|
|
1241
|
+
symbol: {
|
|
1242
|
+
x?: string | number
|
|
1243
|
+
y?: string | number
|
|
1244
|
+
width?: string | number
|
|
1245
|
+
height?: string | number
|
|
1246
|
+
viewBox?: string
|
|
1247
|
+
preserveAspectRatio?: string
|
|
1248
|
+
}
|
|
1249
|
+
use: {
|
|
1250
|
+
href?: string
|
|
1251
|
+
"xlink:href"?: string
|
|
1252
|
+
x?: string | number
|
|
1253
|
+
y?: string | number
|
|
1254
|
+
width?: string | number
|
|
1255
|
+
height?: string | number
|
|
1256
|
+
}
|
|
1257
|
+
view: {
|
|
1258
|
+
viewBox?: string
|
|
1259
|
+
preserveAspectRatio?: string
|
|
1260
|
+
zoomAndPan?: "magnify" | "disable" | string
|
|
1261
|
+
}
|
|
1129
1262
|
ellipse: SvgStrokeAttributes & {
|
|
1130
1263
|
cx?: string | number
|
|
1131
1264
|
cy?: string | number
|
|
@@ -1140,6 +1273,90 @@ interface SvgElementAttributes {
|
|
|
1140
1273
|
in2?: string
|
|
1141
1274
|
result?: string
|
|
1142
1275
|
}
|
|
1276
|
+
feColorMatrix: {
|
|
1277
|
+
in?: string
|
|
1278
|
+
type?: "matrix" | "saturate" | "hueRotate" | "luminanceToAlpha"
|
|
1279
|
+
values?: string
|
|
1280
|
+
result?: string
|
|
1281
|
+
}
|
|
1282
|
+
feComposite: {
|
|
1283
|
+
in?: string
|
|
1284
|
+
in2?: string
|
|
1285
|
+
operator?: "over" | "in" | "out" | "atop" | "xor" | "arithmetic"
|
|
1286
|
+
k1?: string | number
|
|
1287
|
+
k2?: string | number
|
|
1288
|
+
k3?: string | number
|
|
1289
|
+
k4?: string | number
|
|
1290
|
+
result?: string
|
|
1291
|
+
}
|
|
1292
|
+
feConvolveMatrix: {
|
|
1293
|
+
in?: string
|
|
1294
|
+
order?: string
|
|
1295
|
+
kernelMatrix?: string
|
|
1296
|
+
divisor?: string | number
|
|
1297
|
+
bias?: string | number
|
|
1298
|
+
targetX?: string | number
|
|
1299
|
+
targetY?: string | number
|
|
1300
|
+
edgeMode?: "duplicate" | "wrap" | "none"
|
|
1301
|
+
preserveAlpha?: boolean
|
|
1302
|
+
result?: string
|
|
1303
|
+
}
|
|
1304
|
+
feDiffuseLighting: {
|
|
1305
|
+
in?: string
|
|
1306
|
+
surfaceScale?: string | number
|
|
1307
|
+
diffuseConstant?: string | number
|
|
1308
|
+
kernelUnitLength?: string
|
|
1309
|
+
lightingColor?: string
|
|
1310
|
+
azimuth?: string | number
|
|
1311
|
+
elevation?: string | number
|
|
1312
|
+
result?: string
|
|
1313
|
+
}
|
|
1314
|
+
feImage: {
|
|
1315
|
+
x?: string | number
|
|
1316
|
+
y?: string | number
|
|
1317
|
+
width?: string | number
|
|
1318
|
+
height?: string | number
|
|
1319
|
+
preserveAspectRatio?: string
|
|
1320
|
+
href?: string
|
|
1321
|
+
result?: string
|
|
1322
|
+
}
|
|
1323
|
+
feMerge: {
|
|
1324
|
+
result?: string
|
|
1325
|
+
}
|
|
1326
|
+
feMergeNode: {
|
|
1327
|
+
in?: string
|
|
1328
|
+
}
|
|
1329
|
+
feMorphology: {
|
|
1330
|
+
in?: string
|
|
1331
|
+
operator?: "erode" | "dilate"
|
|
1332
|
+
radius?: string | number
|
|
1333
|
+
result?: string
|
|
1334
|
+
}
|
|
1335
|
+
feOffset: {
|
|
1336
|
+
in?: string
|
|
1337
|
+
dx?: string | number
|
|
1338
|
+
dy?: string | number
|
|
1339
|
+
result?: string
|
|
1340
|
+
}
|
|
1341
|
+
feSpecularLighting: {
|
|
1342
|
+
in?: string
|
|
1343
|
+
surfaceScale?: string | number
|
|
1344
|
+
specularConstant?: string | number
|
|
1345
|
+
specularExponent?: string | number
|
|
1346
|
+
kernelUnitLength?: string
|
|
1347
|
+
lightingColor?: string
|
|
1348
|
+
azimuth?: string | number
|
|
1349
|
+
elevation?: string | number
|
|
1350
|
+
result?: string
|
|
1351
|
+
}
|
|
1352
|
+
feTile: {
|
|
1353
|
+
in?: string
|
|
1354
|
+
x?: string | number
|
|
1355
|
+
y?: string | number
|
|
1356
|
+
width?: string | number
|
|
1357
|
+
height?: string | number
|
|
1358
|
+
result?: string
|
|
1359
|
+
}
|
|
1143
1360
|
feFuncR: FeFuncAttributes
|
|
1144
1361
|
feFuncG: FeFuncAttributes
|
|
1145
1362
|
feFuncB: FeFuncAttributes
|