kiru 1.4.0 → 1.5.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.
- 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 +108 -63
- 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 +83 -39
- 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/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.map +1 -1
- package/dist/signals/tracking.js +13 -14
- 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 +133 -80
- 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 +112 -44
- package/src/router/client/index.ts +2 -2
- 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 +17 -15
- 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/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
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import type { Signal as SignalClass } from "./signals"
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import type { Signal as SignalClass } from "./signals/base.js"
|
|
2
|
+
import type {
|
|
3
|
+
$CONTEXT,
|
|
4
|
+
$ERROR_BOUNDARY,
|
|
5
|
+
$FRAGMENT,
|
|
6
|
+
$INLINE_FN,
|
|
7
|
+
} from "./constants.js"
|
|
8
|
+
import type { KiruGlobalContext } from "./globalContext.js"
|
|
4
9
|
import type {
|
|
5
10
|
GlobalAttributes,
|
|
6
11
|
HtmlElementAttributes,
|
|
@@ -10,14 +15,14 @@ import type {
|
|
|
10
15
|
HtmlElementBindableProps,
|
|
11
16
|
HTMLTagToElement,
|
|
12
17
|
SVGTagToElement,
|
|
13
|
-
} from "./types.dom"
|
|
18
|
+
} from "./types.dom.js"
|
|
14
19
|
import type {
|
|
15
20
|
AsyncTaskState,
|
|
16
21
|
Prettify,
|
|
17
22
|
Signalable,
|
|
18
23
|
SomeDom,
|
|
19
|
-
} from "./types.utils"
|
|
20
|
-
import type { AppHandle } from "./appHandle"
|
|
24
|
+
} from "./types.utils.js"
|
|
25
|
+
import type { AppHandle } from "./appHandle.js"
|
|
21
26
|
|
|
22
27
|
export type { AsyncTaskState, ElementProps, Prettify, Signalable, StyleObject }
|
|
23
28
|
|
|
@@ -131,7 +136,6 @@ declare global {
|
|
|
131
136
|
input: HTMLElementProps<"input">
|
|
132
137
|
ins: HTMLElementProps<"ins">
|
|
133
138
|
kbd: HTMLElementProps<"kbd">
|
|
134
|
-
//keygen: HTMLElementProps<"keygen">
|
|
135
139
|
label: HTMLElementProps<"label">
|
|
136
140
|
legend: HTMLElementProps<"legend">
|
|
137
141
|
li: HTMLElementProps<"li">
|
|
@@ -140,7 +144,6 @@ declare global {
|
|
|
140
144
|
map: HTMLElementProps<"map">
|
|
141
145
|
mark: HTMLElementProps<"mark">
|
|
142
146
|
menu: HTMLElementProps<"menu">
|
|
143
|
-
//menuitem: HTMLElementProps<"menuitem">
|
|
144
147
|
meta: HTMLElementProps<"meta">
|
|
145
148
|
meter: HTMLElementProps<"meter">
|
|
146
149
|
nav: HTMLElementProps<"nav">
|
|
@@ -187,12 +190,11 @@ declare global {
|
|
|
187
190
|
ul: HTMLElementProps<"ul">
|
|
188
191
|
var: HTMLElementProps<"var">
|
|
189
192
|
video: HTMLElementProps<"video">
|
|
190
|
-
|
|
191
|
-
//webview: HTMLElementProps<"webview">
|
|
193
|
+
wbr: HTMLElementProps<"wbr">
|
|
192
194
|
|
|
193
195
|
// SVG
|
|
194
|
-
|
|
195
|
-
|
|
196
|
+
animate: SVGElementProps<"animate">
|
|
197
|
+
animateMotion: SVGElementProps<"animateMotion">
|
|
196
198
|
animateTransform: SVGElementProps<"animateTransform">
|
|
197
199
|
circle: SVGElementProps<"circle">
|
|
198
200
|
clipPath: SVGElementProps<"clipPath">
|
|
@@ -200,11 +202,11 @@ declare global {
|
|
|
200
202
|
desc: SVGElementProps<"desc">
|
|
201
203
|
ellipse: SVGElementProps<"ellipse">
|
|
202
204
|
feBlend: SVGElementProps<"feBlend">
|
|
203
|
-
|
|
205
|
+
feColorMatrix: SVGElementProps<"feColorMatrix">
|
|
204
206
|
feComponentTransfer: SVGElementProps<"feComponentTransfer">
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
207
|
+
feComposite: SVGElementProps<"feComposite">
|
|
208
|
+
feConvolveMatrix: SVGElementProps<"feConvolveMatrix">
|
|
209
|
+
feDiffuseLighting: SVGElementProps<"feDiffuseLighting">
|
|
208
210
|
feDisplacementMap: SVGElementProps<"feDisplacementMap">
|
|
209
211
|
feDropShadow: SVGElementProps<"feDropShadow">
|
|
210
212
|
feFlood: SVGElementProps<"feFlood">
|
|
@@ -213,40 +215,41 @@ declare global {
|
|
|
213
215
|
feFuncG: SVGElementProps<"feFuncG">
|
|
214
216
|
feFuncR: SVGElementProps<"feFuncR">
|
|
215
217
|
feGaussianBlur: SVGElementProps<"feGaussianBlur">
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
218
|
+
feImage: SVGElementProps<"feImage">
|
|
219
|
+
feMerge: SVGElementProps<"feMerge">
|
|
220
|
+
feMergeNode: SVGElementProps<"feMergeNode">
|
|
221
|
+
feMorphology: SVGElementProps<"feMorphology">
|
|
222
|
+
feOffset: SVGElementProps<"feOffset">
|
|
223
|
+
feSpotLight: SVGElementProps<"feSpotLight">
|
|
224
|
+
feSpecularLighting: SVGElementProps<"feSpecularLighting">
|
|
225
|
+
feTile: SVGElementProps<"feTile">
|
|
223
226
|
feTurbulence: SVGElementProps<"feTurbulence">
|
|
224
227
|
filter: SVGElementProps<"filter">
|
|
225
|
-
|
|
228
|
+
foreignObject: SVGElementProps<"foreignObject">
|
|
226
229
|
g: SVGElementProps<"g">
|
|
227
230
|
image: SVGElementProps<"image">
|
|
228
231
|
line: SVGElementProps<"line">
|
|
229
232
|
linearGradient: SVGElementProps<"linearGradient">
|
|
230
|
-
|
|
233
|
+
marker: SVGElementProps<"marker">
|
|
231
234
|
mask: SVGElementProps<"mask">
|
|
232
|
-
|
|
233
|
-
|
|
235
|
+
metadata: SVGElementProps<"metadata">
|
|
236
|
+
mpath: SVGElementProps<"mpath">
|
|
234
237
|
path: SVGElementProps<"path">
|
|
235
238
|
pattern: SVGElementProps<"pattern">
|
|
236
239
|
polygon: SVGElementProps<"polygon">
|
|
237
240
|
polyline: SVGElementProps<"polyline">
|
|
238
241
|
radialGradient: SVGElementProps<"radialGradient">
|
|
239
242
|
rect: SVGElementProps<"rect">
|
|
240
|
-
|
|
243
|
+
set: SVGElementProps<"set">
|
|
241
244
|
stop: SVGElementProps<"stop">
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
switch: SVGElementProps<"switch">
|
|
246
|
+
symbol: SVGElementProps<"symbol">
|
|
244
247
|
text: SVGElementProps<"text">
|
|
245
248
|
textPath: SVGElementProps<"textPath">
|
|
246
249
|
tspan: SVGElementProps<"tspan">
|
|
247
250
|
svg: SVGElementProps<"svg">
|
|
248
|
-
|
|
249
|
-
|
|
251
|
+
use: SVGElementProps<"use">
|
|
252
|
+
view: SVGElementProps<"view">
|
|
250
253
|
}
|
|
251
254
|
|
|
252
255
|
interface IntrinsicAttributes {
|
|
@@ -332,6 +335,7 @@ declare global {
|
|
|
332
335
|
| typeof $FRAGMENT
|
|
333
336
|
| typeof $CONTEXT
|
|
334
337
|
| typeof $ERROR_BOUNDARY
|
|
338
|
+
| typeof $INLINE_FN
|
|
335
339
|
|
|
336
340
|
interface Element {
|
|
337
341
|
type:
|
package/src/types.utils.ts
CHANGED
|
@@ -1,26 +1,53 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type {
|
|
2
|
+
$CONTEXT,
|
|
3
|
+
$ERROR_BOUNDARY,
|
|
4
|
+
$FRAGMENT,
|
|
5
|
+
$INLINE_FN,
|
|
6
|
+
} from "./constants.js"
|
|
7
|
+
import type { Signal } from "./signals/base.js"
|
|
8
|
+
import type { ErrorBoundaryProps } from "./components/errorBoundary.js"
|
|
4
9
|
|
|
5
|
-
export type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
export type {
|
|
11
|
+
SomeElement,
|
|
12
|
+
SomeDom,
|
|
13
|
+
MaybeElement,
|
|
14
|
+
MaybeDom,
|
|
15
|
+
FunctionVNode,
|
|
16
|
+
ElementVNode,
|
|
17
|
+
DomVNode,
|
|
18
|
+
ContextNode,
|
|
19
|
+
ErrorBoundaryNode,
|
|
20
|
+
FragmentNode,
|
|
21
|
+
InlineFnNode,
|
|
22
|
+
Prettify,
|
|
23
|
+
Signalable,
|
|
24
|
+
AsyncTaskState,
|
|
25
|
+
Guard,
|
|
26
|
+
ArrayHas,
|
|
27
|
+
RecordHas,
|
|
28
|
+
Falsy,
|
|
29
|
+
Truthy,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
type SomeElement = HTMLElement | SVGElement
|
|
33
|
+
type SomeDom = HTMLElement | SVGElement | Text
|
|
34
|
+
type MaybeElement = SomeElement | undefined
|
|
35
|
+
type MaybeDom = SomeDom | undefined
|
|
9
36
|
|
|
10
|
-
|
|
37
|
+
interface FunctionVNode extends Kiru.VNode {
|
|
11
38
|
type: (props: Record<string, unknown>) => JSX.Element
|
|
12
39
|
}
|
|
13
40
|
|
|
14
|
-
|
|
41
|
+
interface ElementVNode extends Kiru.VNode {
|
|
15
42
|
dom: SomeElement
|
|
16
43
|
type: string
|
|
17
44
|
}
|
|
18
|
-
|
|
45
|
+
interface DomVNode extends Kiru.VNode {
|
|
19
46
|
dom: SomeDom
|
|
20
47
|
type: "#text" | (string & {})
|
|
21
48
|
}
|
|
22
49
|
|
|
23
|
-
|
|
50
|
+
interface ContextNode<T> extends Kiru.VNode {
|
|
24
51
|
type: typeof $CONTEXT
|
|
25
52
|
props: Kiru.VNode["props"] & {
|
|
26
53
|
value: T
|
|
@@ -28,23 +55,30 @@ export interface ContextNode<T> extends Kiru.VNode {
|
|
|
28
55
|
}
|
|
29
56
|
}
|
|
30
57
|
|
|
31
|
-
|
|
58
|
+
interface ErrorBoundaryNode extends Kiru.VNode {
|
|
32
59
|
type: typeof $ERROR_BOUNDARY
|
|
33
60
|
props: ErrorBoundaryProps
|
|
34
61
|
error?: Error
|
|
35
62
|
}
|
|
36
63
|
|
|
37
|
-
|
|
64
|
+
interface FragmentNode extends Kiru.VNode {
|
|
38
65
|
type: typeof $FRAGMENT
|
|
39
66
|
}
|
|
40
67
|
|
|
41
|
-
|
|
68
|
+
interface InlineFnNode extends Kiru.VNode {
|
|
69
|
+
type: typeof $INLINE_FN
|
|
70
|
+
props: {
|
|
71
|
+
expr: () => JSX.Element
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type Prettify<T> = {
|
|
42
76
|
[K in keyof T]: T[K]
|
|
43
77
|
} & {}
|
|
44
78
|
|
|
45
|
-
|
|
79
|
+
type Signalable<T> = T | Signal<T>
|
|
46
80
|
|
|
47
|
-
|
|
81
|
+
type AsyncTaskState<T, E extends Error = Error> =
|
|
48
82
|
| {
|
|
49
83
|
data: null
|
|
50
84
|
error: null
|
|
@@ -61,19 +95,19 @@ export type AsyncTaskState<T, E extends Error = Error> =
|
|
|
61
95
|
loading: false
|
|
62
96
|
}
|
|
63
97
|
|
|
64
|
-
|
|
98
|
+
type Guard<T, K extends keyof T> = {
|
|
65
99
|
[P in K]: T[P]
|
|
66
100
|
}
|
|
67
101
|
|
|
68
|
-
|
|
102
|
+
type ArrayHas<T extends any[], U> =
|
|
69
103
|
// does the union of element types intersect U?
|
|
70
104
|
Extract<T[number], U> extends never ? false : true
|
|
71
105
|
|
|
72
|
-
|
|
73
|
-
Extract<T[keyof T], U
|
|
106
|
+
type RecordHas<T extends Record<string, any>, U> = [
|
|
107
|
+
Extract<T[keyof T], U>,
|
|
74
108
|
] extends [never]
|
|
75
109
|
? false
|
|
76
110
|
: true
|
|
77
111
|
|
|
78
|
-
|
|
79
|
-
|
|
112
|
+
type Falsy = false | 0 | 0n | "" | null | undefined
|
|
113
|
+
type Truthy<T> = Exclude<T, Falsy>
|
package/src/utils/vdom.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
FLAG_UPDATE,
|
|
6
6
|
$ERROR_BOUNDARY,
|
|
7
7
|
$CONTEXT,
|
|
8
|
+
$INLINE_FN,
|
|
8
9
|
} from "../constants.js"
|
|
9
10
|
import { createElement } from "../index.js"
|
|
10
11
|
import { KiruError } from "../error.js"
|
|
@@ -70,7 +71,12 @@ function isValidTextChild(thing: unknown): thing is string | number | bigint {
|
|
|
70
71
|
}
|
|
71
72
|
|
|
72
73
|
function isExoticType(type: Kiru.VNode["type"]): type is Kiru.ExoticSymbol {
|
|
73
|
-
return
|
|
74
|
+
return (
|
|
75
|
+
type === $FRAGMENT ||
|
|
76
|
+
type === $CONTEXT ||
|
|
77
|
+
type === $ERROR_BOUNDARY ||
|
|
78
|
+
type === $INLINE_FN
|
|
79
|
+
)
|
|
74
80
|
}
|
|
75
81
|
|
|
76
82
|
function isFragment(
|