@ktjs/core 0.26.1 → 0.26.2

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/index.d.ts CHANGED
@@ -56,10 +56,13 @@ declare function effect(effectFn: () => void, reactives: Array<KTReactive<any>>,
56
56
 
57
57
  type KTReactive<T> = KTRef<T> | KTComputed<T>;
58
58
  declare const toReactive: <T>(value: T | KTReactive<T>, onChange?: ReactiveChangeHandler<T>) => KTReactive<T>;
59
- type KTReactify<T> = T extends any ? KTReactive<T> | T : never;
59
+ type KTReactify<T> = T extends any ? KTReactive<T> : never;
60
60
  type KTReactifyObject<T extends object> = {
61
61
  [K in keyof T]: KTReactify<T[K]>;
62
62
  };
63
+ type KTReactifyProps<T extends object> = {
64
+ [K in keyof T]: KTReactify<Exclude<T[K], undefined>> | T[K];
65
+ };
63
66
 
64
67
  declare const enum KTReactiveType {
65
68
  REF = 1,
@@ -246,7 +249,7 @@ type KTComponent = (
246
249
  * ## About
247
250
  * @package @ktjs/core
248
251
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
249
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
252
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
250
253
  * @license MIT
251
254
  * @link https://github.com/baendlorel/kt.js
252
255
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -298,7 +301,7 @@ declare function createRedrawable<T>(creator: () => T): KTRef<T> & {
298
301
 
299
302
  // Base events available to all HTML elements
300
303
  type BaseAttr = KTPrefixedEventAttribute &
301
- KTReactifyObject<{
304
+ KTReactifyProps<{
302
305
  [k: string]: any;
303
306
 
304
307
  // # base attributes
@@ -310,7 +313,7 @@ type BaseAttr = KTPrefixedEventAttribute &
310
313
  interface AttributesMap {
311
314
  // Anchor element
312
315
  a: BaseAttr &
313
- KTReactifyObject<{
316
+ KTReactifyProps<{
314
317
  download?: string;
315
318
  href?: string;
316
319
  hreflang?: string;
@@ -331,7 +334,7 @@ interface AttributesMap {
331
334
 
332
335
  // Area element
333
336
  area: BaseAttr &
334
- KTReactifyObject<{
337
+ KTReactifyProps<{
335
338
  alt?: string;
336
339
  coords?: string;
337
340
  download?: string;
@@ -353,7 +356,7 @@ interface AttributesMap {
353
356
 
354
357
  // Audio element
355
358
  audio: BaseAttr &
356
- KTReactifyObject<{
359
+ KTReactifyProps<{
357
360
  autoplay?: boolean;
358
361
  controls?: boolean;
359
362
  crossorigin?: 'anonymous' | 'use-credentials' | '';
@@ -365,20 +368,20 @@ interface AttributesMap {
365
368
 
366
369
  // Base element
367
370
  base: BaseAttr &
368
- KTReactifyObject<{
371
+ KTReactifyProps<{
369
372
  href?: string;
370
373
  target?: '_self' | '_blank' | '_parent' | '_top' | string;
371
374
  }>;
372
375
 
373
376
  // Body element
374
- body: BaseAttr & KTReactifyObject<{}>;
377
+ body: BaseAttr & KTReactifyProps<{}>;
375
378
 
376
379
  // BR element
377
- br: BaseAttr & KTReactifyObject<{}>;
380
+ br: BaseAttr & KTReactifyProps<{}>;
378
381
 
379
382
  // Button element
380
383
  button: BaseAttr &
381
- KTReactifyObject<{
384
+ KTReactifyProps<{
382
385
  disabled?: boolean;
383
386
  form?: string;
384
387
  formaction?: string;
@@ -393,57 +396,57 @@ interface AttributesMap {
393
396
 
394
397
  // Canvas element
395
398
  canvas: BaseAttr &
396
- KTReactifyObject<{
399
+ KTReactifyProps<{
397
400
  height?: number | string;
398
401
  width?: number | string;
399
402
  }>;
400
403
 
401
404
  // Table caption element
402
- caption: BaseAttr & KTReactifyObject<{}>;
405
+ caption: BaseAttr & KTReactifyProps<{}>;
403
406
 
404
407
  // Col element
405
408
  col: BaseAttr &
406
- KTReactifyObject<{
409
+ KTReactifyProps<{
407
410
  span?: number | string;
408
411
  }>;
409
412
 
410
413
  // Colgroup element
411
414
  colgroup: BaseAttr &
412
- KTReactifyObject<{
415
+ KTReactifyProps<{
413
416
  span?: number | string;
414
417
  }>;
415
418
 
416
419
  // Data element
417
420
  data: BaseAttr &
418
- KTReactifyObject<{
421
+ KTReactifyProps<{
419
422
  value?: string;
420
423
  }>;
421
424
 
422
425
  // Datalist element
423
- datalist: BaseAttr & KTReactifyObject<{}>;
426
+ datalist: BaseAttr & KTReactifyProps<{}>;
424
427
 
425
428
  // Del element
426
429
  del: BaseAttr &
427
- KTReactifyObject<{
430
+ KTReactifyProps<{
428
431
  cite?: string;
429
432
  datetime?: string;
430
433
  }>;
431
434
 
432
435
  // Details element
433
436
  details: BaseAttr &
434
- KTReactifyObject<{
437
+ KTReactifyProps<{
435
438
  open?: boolean;
436
439
  }>;
437
440
 
438
441
  // Dialog element
439
442
  dialog: BaseAttr &
440
- KTReactifyObject<{
443
+ KTReactifyProps<{
441
444
  open?: boolean;
442
445
  }>;
443
446
 
444
447
  // Embed element
445
448
  embed: BaseAttr &
446
- KTReactifyObject<{
449
+ KTReactifyProps<{
447
450
  height?: number | string;
448
451
  src?: string;
449
452
  type?: string;
@@ -452,7 +455,7 @@ interface AttributesMap {
452
455
 
453
456
  // Fieldset element
454
457
  fieldset: BaseAttr &
455
- KTReactifyObject<{
458
+ KTReactifyProps<{
456
459
  disabled?: boolean;
457
460
  form?: string;
458
461
  name?: string;
@@ -460,7 +463,7 @@ interface AttributesMap {
460
463
 
461
464
  // Form element
462
465
  form: BaseAttr &
463
- KTReactifyObject<{
466
+ KTReactifyProps<{
464
467
  'accept-charset'?: string;
465
468
  action?: string;
466
469
  autocomplete?: 'on' | 'off';
@@ -473,17 +476,17 @@ interface AttributesMap {
473
476
  }>;
474
477
 
475
478
  // Head element
476
- head: BaseAttr & KTReactifyObject<{}>;
479
+ head: BaseAttr & KTReactifyProps<{}>;
477
480
 
478
481
  // HR element
479
- hr: BaseAttr & KTReactifyObject<{}>;
482
+ hr: BaseAttr & KTReactifyProps<{}>;
480
483
 
481
484
  // HTML element
482
- html: BaseAttr & KTReactifyObject<{}>;
485
+ html: BaseAttr & KTReactifyProps<{}>;
483
486
 
484
487
  // IFrame element
485
488
  iframe: BaseAttr &
486
- KTReactifyObject<{
489
+ KTReactifyProps<{
487
490
  allow?: string;
488
491
  allowfullscreen?: boolean;
489
492
  allowpaymentrequest?: boolean;
@@ -507,7 +510,7 @@ interface AttributesMap {
507
510
 
508
511
  // Image element
509
512
  img: BaseAttr &
510
- KTReactifyObject<{
513
+ KTReactifyProps<{
511
514
  alt?: string;
512
515
  crossorigin?: 'anonymous' | 'use-credentials' | '';
513
516
  decoding?: 'sync' | 'async' | 'auto';
@@ -532,7 +535,7 @@ interface AttributesMap {
532
535
 
533
536
  // Input element
534
537
  input: BaseAttr &
535
- KTReactifyObject<{
538
+ KTReactifyProps<{
536
539
  accept?: string;
537
540
  alt?: string;
538
541
  autocomplete?: string;
@@ -589,29 +592,29 @@ interface AttributesMap {
589
592
 
590
593
  // Ins element
591
594
  ins: BaseAttr &
592
- KTReactifyObject<{
595
+ KTReactifyProps<{
593
596
  cite?: string;
594
597
  datetime?: string;
595
598
  }>;
596
599
 
597
600
  // Label element
598
601
  label: BaseAttr &
599
- KTReactifyObject<{
602
+ KTReactifyProps<{
600
603
  for?: string;
601
604
  }>;
602
605
 
603
606
  // Legend element
604
- legend: BaseAttr & KTReactifyObject<{}>;
607
+ legend: BaseAttr & KTReactifyProps<{}>;
605
608
 
606
609
  // LI element
607
610
  li: BaseAttr &
608
- KTReactifyObject<{
611
+ KTReactifyProps<{
609
612
  value?: number | string;
610
613
  }>;
611
614
 
612
615
  // Link element
613
616
  link: BaseAttr &
614
- KTReactifyObject<{
617
+ KTReactifyProps<{
615
618
  as?: string;
616
619
  crossorigin?: 'anonymous' | 'use-credentials' | '';
617
620
  disabled?: boolean;
@@ -637,16 +640,16 @@ interface AttributesMap {
637
640
 
638
641
  // Map element
639
642
  map: BaseAttr &
640
- KTReactifyObject<{
643
+ KTReactifyProps<{
641
644
  name?: string;
642
645
  }>;
643
646
 
644
647
  // Menu element
645
- menu: BaseAttr & KTReactifyObject<{}>;
648
+ menu: BaseAttr & KTReactifyProps<{}>;
646
649
 
647
650
  // Meta element
648
651
  meta: BaseAttr &
649
- KTReactifyObject<{
652
+ KTReactifyProps<{
650
653
  charset?: string;
651
654
  content?: string;
652
655
  'http-equiv'?: 'content-security-policy' | 'content-type' | 'default-style' | 'refresh' | string;
@@ -655,7 +658,7 @@ interface AttributesMap {
655
658
 
656
659
  // Meter element
657
660
  meter: BaseAttr &
658
- KTReactifyObject<{
661
+ KTReactifyProps<{
659
662
  form?: string;
660
663
  high?: number | string;
661
664
  low?: number | string;
@@ -667,7 +670,7 @@ interface AttributesMap {
667
670
 
668
671
  // Object element
669
672
  object: BaseAttr &
670
- KTReactifyObject<{
673
+ KTReactifyProps<{
671
674
  data?: string;
672
675
  form?: string;
673
676
  height?: number | string;
@@ -679,7 +682,7 @@ interface AttributesMap {
679
682
 
680
683
  // OL element
681
684
  ol: BaseAttr &
682
- KTReactifyObject<{
685
+ KTReactifyProps<{
683
686
  reversed?: boolean;
684
687
  start?: number | string;
685
688
  type?: '1' | 'a' | 'A' | 'i' | 'I';
@@ -687,14 +690,14 @@ interface AttributesMap {
687
690
 
688
691
  // Optgroup element
689
692
  optgroup: BaseAttr &
690
- KTReactifyObject<{
693
+ KTReactifyProps<{
691
694
  disabled?: boolean;
692
695
  label?: string;
693
696
  }>;
694
697
 
695
698
  // Option element
696
699
  option: BaseAttr &
697
- KTReactifyObject<{
700
+ KTReactifyProps<{
698
701
  disabled?: boolean;
699
702
  label?: string;
700
703
  selected?: boolean;
@@ -703,39 +706,39 @@ interface AttributesMap {
703
706
 
704
707
  // Output element
705
708
  output: BaseAttr &
706
- KTReactifyObject<{
709
+ KTReactifyProps<{
707
710
  for?: string;
708
711
  form?: string;
709
712
  name?: string;
710
713
  }>;
711
714
 
712
715
  // Picture element
713
- picture: BaseAttr & KTReactifyObject<{}>;
716
+ picture: BaseAttr & KTReactifyProps<{}>;
714
717
 
715
718
  // Pre element
716
- pre: BaseAttr & KTReactifyObject<{}>;
719
+ pre: BaseAttr & KTReactifyProps<{}>;
717
720
 
718
721
  // Progress element
719
722
  progress: BaseAttr &
720
- KTReactifyObject<{
723
+ KTReactifyProps<{
721
724
  max?: number | string;
722
725
  value?: number | string;
723
726
  }>;
724
727
 
725
728
  // Quote element (q and blockquote)
726
729
  q: BaseAttr &
727
- KTReactifyObject<{
730
+ KTReactifyProps<{
728
731
  cite?: string;
729
732
  }>;
730
733
 
731
734
  blockquote: BaseAttr &
732
- KTReactifyObject<{
735
+ KTReactifyProps<{
733
736
  cite?: string;
734
737
  }>;
735
738
 
736
739
  // Script element
737
740
  script: BaseAttr &
738
- KTReactifyObject<{
741
+ KTReactifyProps<{
739
742
  async?: boolean;
740
743
  crossorigin?: 'anonymous' | 'use-credentials' | '';
741
744
  defer?: boolean;
@@ -756,7 +759,7 @@ interface AttributesMap {
756
759
 
757
760
  // Select element
758
761
  select: BaseAttr &
759
- KTReactifyObject<{
762
+ KTReactifyProps<{
760
763
  autocomplete?: string;
761
764
  disabled?: boolean;
762
765
  form?: string;
@@ -768,13 +771,13 @@ interface AttributesMap {
768
771
 
769
772
  // Slot element
770
773
  slot: BaseAttr &
771
- KTReactifyObject<{
774
+ KTReactifyProps<{
772
775
  name?: string;
773
776
  }>;
774
777
 
775
778
  // Source element
776
779
  source: BaseAttr &
777
- KTReactifyObject<{
780
+ KTReactifyProps<{
778
781
  height?: number | string;
779
782
  media?: string;
780
783
  sizes?: string;
@@ -786,30 +789,30 @@ interface AttributesMap {
786
789
 
787
790
  // Style element
788
791
  style: BaseAttr &
789
- KTReactifyObject<{
792
+ KTReactifyProps<{
790
793
  media?: string;
791
794
  }>;
792
795
 
793
796
  // Table element
794
- table: BaseAttr & KTReactifyObject<{}>;
797
+ table: BaseAttr & KTReactifyProps<{}>;
795
798
 
796
799
  // Table body/footer/header elements
797
- tbody: BaseAttr & KTReactifyObject<{}>;
800
+ tbody: BaseAttr & KTReactifyProps<{}>;
798
801
 
799
- tfoot: BaseAttr & KTReactifyObject<{}>;
802
+ tfoot: BaseAttr & KTReactifyProps<{}>;
800
803
 
801
- thead: BaseAttr & KTReactifyObject<{}>;
804
+ thead: BaseAttr & KTReactifyProps<{}>;
802
805
 
803
806
  // Table cell elements
804
807
  td: BaseAttr &
805
- KTReactifyObject<{
808
+ KTReactifyProps<{
806
809
  colspan?: number | string;
807
810
  headers?: string;
808
811
  rowspan?: number | string;
809
812
  }>;
810
813
 
811
814
  th: BaseAttr &
812
- KTReactifyObject<{
815
+ KTReactifyProps<{
813
816
  abbr?: string;
814
817
  colspan?: number | string;
815
818
  headers?: string;
@@ -818,11 +821,11 @@ interface AttributesMap {
818
821
  }>;
819
822
 
820
823
  // Template element
821
- template: BaseAttr & KTReactifyObject<{}>;
824
+ template: BaseAttr & KTReactifyProps<{}>;
822
825
 
823
826
  // Textarea element
824
827
  textarea: BaseAttr &
825
- KTReactifyObject<{
828
+ KTReactifyProps<{
826
829
  autocomplete?: string;
827
830
  cols?: number | string;
828
831
  dirname?: string;
@@ -840,19 +843,19 @@ interface AttributesMap {
840
843
 
841
844
  // Time element
842
845
  time: BaseAttr &
843
- KTReactifyObject<{
846
+ KTReactifyProps<{
844
847
  datetime?: string;
845
848
  }>;
846
849
 
847
850
  // Title element
848
- title: BaseAttr & KTReactifyObject<{}>;
851
+ title: BaseAttr & KTReactifyProps<{}>;
849
852
 
850
853
  // TR element
851
- tr: BaseAttr & KTReactifyObject<{}>;
854
+ tr: BaseAttr & KTReactifyProps<{}>;
852
855
 
853
856
  // Track element
854
857
  track: BaseAttr &
855
- KTReactifyObject<{
858
+ KTReactifyProps<{
856
859
  default?: boolean;
857
860
  kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata';
858
861
  label?: string;
@@ -861,11 +864,11 @@ interface AttributesMap {
861
864
  }>;
862
865
 
863
866
  // UL element
864
- ul: BaseAttr & KTReactifyObject<{}>;
867
+ ul: BaseAttr & KTReactifyProps<{}>;
865
868
 
866
869
  // Video element
867
870
  video: BaseAttr &
868
- KTReactifyObject<{
871
+ KTReactifyProps<{
869
872
  autoplay?: boolean;
870
873
  controls?: boolean;
871
874
  crossorigin?: 'anonymous' | 'use-credentials' | '';
@@ -880,55 +883,55 @@ interface AttributesMap {
880
883
  }>;
881
884
 
882
885
  // Generic HTMLElement (no specific attributes beyond BaseEvent)
883
- abbr: BaseAttr & KTReactifyObject<{}>;
884
- address: BaseAttr & KTReactifyObject<{}>;
885
- article: BaseAttr & KTReactifyObject<{}>;
886
- aside: BaseAttr & KTReactifyObject<{}>;
887
- b: BaseAttr & KTReactifyObject<{}>;
888
- bdi: BaseAttr & KTReactifyObject<{}>;
889
- bdo: BaseAttr & KTReactifyObject<{}>;
890
- cite: BaseAttr & KTReactifyObject<{}>;
891
- code: BaseAttr & KTReactifyObject<{}>;
892
- dd: BaseAttr & KTReactifyObject<{}>;
893
- dfn: BaseAttr & KTReactifyObject<{}>;
894
- div: BaseAttr & KTReactifyObject<{}>;
895
- dl: BaseAttr & KTReactifyObject<{}>;
896
- dt: BaseAttr & KTReactifyObject<{}>;
897
- em: BaseAttr & KTReactifyObject<{}>;
898
- figcaption: BaseAttr & KTReactifyObject<{}>;
899
- figure: BaseAttr & KTReactifyObject<{}>;
900
- footer: BaseAttr & KTReactifyObject<{}>;
901
- h1: BaseAttr & KTReactifyObject<{}>;
902
- h2: BaseAttr & KTReactifyObject<{}>;
903
- h3: BaseAttr & KTReactifyObject<{}>;
904
- h4: BaseAttr & KTReactifyObject<{}>;
905
- h5: BaseAttr & KTReactifyObject<{}>;
906
- h6: BaseAttr & KTReactifyObject<{}>;
907
- header: BaseAttr & KTReactifyObject<{}>;
908
- hgroup: BaseAttr & KTReactifyObject<{}>;
909
- i: BaseAttr & KTReactifyObject<{}>;
910
- kbd: BaseAttr & KTReactifyObject<{}>;
911
- main: BaseAttr & KTReactifyObject<{}>;
912
- mark: BaseAttr & KTReactifyObject<{}>;
913
- nav: BaseAttr & KTReactifyObject<{}>;
914
- noscript: BaseAttr & KTReactifyObject<{}>;
915
- p: BaseAttr & KTReactifyObject<{}>;
916
- rp: BaseAttr & KTReactifyObject<{}>;
917
- rt: BaseAttr & KTReactifyObject<{}>;
918
- ruby: BaseAttr & KTReactifyObject<{}>;
919
- s: BaseAttr & KTReactifyObject<{}>;
920
- samp: BaseAttr & KTReactifyObject<{}>;
921
- search: BaseAttr & KTReactifyObject<{}>;
922
- section: BaseAttr & KTReactifyObject<{}>;
923
- small: BaseAttr & KTReactifyObject<{}>;
924
- span: BaseAttr & KTReactifyObject<{}>;
925
- strong: BaseAttr & KTReactifyObject<{}>;
926
- sub: BaseAttr & KTReactifyObject<{}>;
927
- summary: BaseAttr & KTReactifyObject<{}>;
928
- sup: BaseAttr & KTReactifyObject<{}>;
929
- u: BaseAttr & KTReactifyObject<{}>;
930
- var: BaseAttr & KTReactifyObject<{}>;
931
- wbr: BaseAttr & KTReactifyObject<{}>;
886
+ abbr: BaseAttr & KTReactifyProps<{}>;
887
+ address: BaseAttr & KTReactifyProps<{}>;
888
+ article: BaseAttr & KTReactifyProps<{}>;
889
+ aside: BaseAttr & KTReactifyProps<{}>;
890
+ b: BaseAttr & KTReactifyProps<{}>;
891
+ bdi: BaseAttr & KTReactifyProps<{}>;
892
+ bdo: BaseAttr & KTReactifyProps<{}>;
893
+ cite: BaseAttr & KTReactifyProps<{}>;
894
+ code: BaseAttr & KTReactifyProps<{}>;
895
+ dd: BaseAttr & KTReactifyProps<{}>;
896
+ dfn: BaseAttr & KTReactifyProps<{}>;
897
+ div: BaseAttr & KTReactifyProps<{}>;
898
+ dl: BaseAttr & KTReactifyProps<{}>;
899
+ dt: BaseAttr & KTReactifyProps<{}>;
900
+ em: BaseAttr & KTReactifyProps<{}>;
901
+ figcaption: BaseAttr & KTReactifyProps<{}>;
902
+ figure: BaseAttr & KTReactifyProps<{}>;
903
+ footer: BaseAttr & KTReactifyProps<{}>;
904
+ h1: BaseAttr & KTReactifyProps<{}>;
905
+ h2: BaseAttr & KTReactifyProps<{}>;
906
+ h3: BaseAttr & KTReactifyProps<{}>;
907
+ h4: BaseAttr & KTReactifyProps<{}>;
908
+ h5: BaseAttr & KTReactifyProps<{}>;
909
+ h6: BaseAttr & KTReactifyProps<{}>;
910
+ header: BaseAttr & KTReactifyProps<{}>;
911
+ hgroup: BaseAttr & KTReactifyProps<{}>;
912
+ i: BaseAttr & KTReactifyProps<{}>;
913
+ kbd: BaseAttr & KTReactifyProps<{}>;
914
+ main: BaseAttr & KTReactifyProps<{}>;
915
+ mark: BaseAttr & KTReactifyProps<{}>;
916
+ nav: BaseAttr & KTReactifyProps<{}>;
917
+ noscript: BaseAttr & KTReactifyProps<{}>;
918
+ p: BaseAttr & KTReactifyProps<{}>;
919
+ rp: BaseAttr & KTReactifyProps<{}>;
920
+ rt: BaseAttr & KTReactifyProps<{}>;
921
+ ruby: BaseAttr & KTReactifyProps<{}>;
922
+ s: BaseAttr & KTReactifyProps<{}>;
923
+ samp: BaseAttr & KTReactifyProps<{}>;
924
+ search: BaseAttr & KTReactifyProps<{}>;
925
+ section: BaseAttr & KTReactifyProps<{}>;
926
+ small: BaseAttr & KTReactifyProps<{}>;
927
+ span: BaseAttr & KTReactifyProps<{}>;
928
+ strong: BaseAttr & KTReactifyProps<{}>;
929
+ sub: BaseAttr & KTReactifyProps<{}>;
930
+ summary: BaseAttr & KTReactifyProps<{}>;
931
+ sup: BaseAttr & KTReactifyProps<{}>;
932
+ u: BaseAttr & KTReactifyProps<{}>;
933
+ var: BaseAttr & KTReactifyProps<{}>;
934
+ wbr: BaseAttr & KTReactifyProps<{}>;
932
935
 
933
936
  svg: BaseAttr & {
934
937
  class?: string;
@@ -1410,4 +1413,4 @@ interface KTForProps<T> {
1410
1413
  declare function KTFor<T>(props: KTForProps<T>): KTForElement;
1411
1414
 
1412
1415
  export { $modelOrRef, Fragment, KTAsync, KTComputed, KTFor, KTReactiveType, KTRef, computed, h as createElement, createRedrawable, deref, effect, h, isComputed, isKT, isRef, jsx, jsxDEV, jsxs, ref, surfaceRef, toReactive, toRef };
1413
- export type { EventHandler, HTMLTag, InputElementTag, KTAttribute, KTForElement, KTForProps, KTPrefixedEventAttribute, KTRawAttr, KTRawContent, KTRawContents, KTReactify, KTReactifyObject, KTReactive, KTSurfaceRef, MathMLTag, ReactiveChangeHandler, SVGTag };
1416
+ export type { EventHandler, HTMLTag, InputElementTag, KTAttribute, KTForElement, KTForProps, KTPrefixedEventAttribute, KTRawAttr, KTRawContent, KTRawContents, KTReactify, KTReactifyObject, KTReactifyProps, KTReactive, KTSurfaceRef, MathMLTag, ReactiveChangeHandler, SVGTag };
@@ -93,9 +93,6 @@ var __ktjs_core__ = (function (exports) {
93
93
  // Shared utilities and cached native methods for kt.js framework
94
94
  Object.defineProperty(window, '__ktjs__', { value: '0.22.8' });
95
95
 
96
- // export const KT_TYPE_REF = 1 as const;
97
- // export const KT_TYPE_COMPUTED = 2 as const;
98
- // export type KTReactiveTypeEnum = typeof KT_TYPE_REF | typeof KT_TYPE_COMPUTED;
99
96
  const isKT = (obj) => obj?.isKT;
100
97
  const isRef = (obj) => obj?.ktType === 1 /* KTReactiveType.REF */;
101
98
  const isComputed = (obj) => obj?.ktType === 2 /* KTReactiveType.COMPUTED */;
@@ -159,12 +156,10 @@ var __ktjs_core__ = (function (exports) {
159
156
  classValue.addOnChange((v) => element.setAttribute('class', v));
160
157
  }
161
158
  else {
162
- // todo 这里要让undefined 排除出reactify类型工具之外
163
159
  element.setAttribute('class', classValue);
164
160
  }
165
161
  }
166
162
  // todo 这里加入reactive支持
167
- // todo 类型定义也要支持reactive响应式
168
163
  const style = attr.style;
169
164
  if (style) {
170
165
  if (typeof style === 'string') {
@@ -599,7 +594,7 @@ var __ktjs_core__ = (function (exports) {
599
594
  * ## About
600
595
  * @package @ktjs/core
601
596
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
602
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
597
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
603
598
  * @license MIT
604
599
  * @link https://github.com/baendlorel/kt.js
605
600
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -93,9 +93,6 @@ var __ktjs_core__ = (function (exports) {
93
93
  // Shared utilities and cached native methods for kt.js framework
94
94
  Object.defineProperty(window, '__ktjs__', { value: '0.22.8' });
95
95
 
96
- // export const KT_TYPE_REF = 1 as const;
97
- // export const KT_TYPE_COMPUTED = 2 as const;
98
- // export type KTReactiveTypeEnum = typeof KT_TYPE_REF | typeof KT_TYPE_COMPUTED;
99
96
  var isKT = function (obj) { return obj === null || obj === void 0 ? void 0 : obj.isKT; };
100
97
  var isRef = function (obj) { return (obj === null || obj === void 0 ? void 0 : obj.ktType) === 1 /* KTReactiveType.REF */; };
101
98
  var isComputed = function (obj) { return (obj === null || obj === void 0 ? void 0 : obj.ktType) === 2 /* KTReactiveType.COMPUTED */; };
@@ -161,12 +158,10 @@ var __ktjs_core__ = (function (exports) {
161
158
  classValue.addOnChange(function (v) { return element.setAttribute('class', v); });
162
159
  }
163
160
  else {
164
- // todo 这里要让undefined 排除出reactify类型工具之外
165
161
  element.setAttribute('class', classValue);
166
162
  }
167
163
  }
168
164
  // todo 这里加入reactive支持
169
- // todo 类型定义也要支持reactive响应式
170
165
  var style = attr.style;
171
166
  if (style) {
172
167
  if (typeof style === 'string') {
@@ -602,7 +597,7 @@ var __ktjs_core__ = (function (exports) {
602
597
  * ## About
603
598
  * @package @ktjs/core
604
599
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
605
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
600
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
606
601
  * @license MIT
607
602
  * @link https://github.com/baendlorel/kt.js
608
603
  * @link https://baendlorel.github.io/ Welcome to my site!
package/dist/index.mjs CHANGED
@@ -90,9 +90,6 @@ if (typeof Symbol === 'undefined') {
90
90
  // Shared utilities and cached native methods for kt.js framework
91
91
  Object.defineProperty(window, '__ktjs__', { value: '0.22.8' });
92
92
 
93
- // export const KT_TYPE_REF = 1 as const;
94
- // export const KT_TYPE_COMPUTED = 2 as const;
95
- // export type KTReactiveTypeEnum = typeof KT_TYPE_REF | typeof KT_TYPE_COMPUTED;
96
93
  const isKT = (obj) => obj?.isKT;
97
94
  const isRef = (obj) => obj?.ktType === 1 /* KTReactiveType.REF */;
98
95
  const isComputed = (obj) => obj?.ktType === 2 /* KTReactiveType.COMPUTED */;
@@ -156,12 +153,10 @@ function attrIsObject(element, attr) {
156
153
  classValue.addOnChange((v) => element.setAttribute('class', v));
157
154
  }
158
155
  else {
159
- // todo 这里要让undefined 排除出reactify类型工具之外
160
156
  element.setAttribute('class', classValue);
161
157
  }
162
158
  }
163
159
  // todo 这里加入reactive支持
164
- // todo 类型定义也要支持reactive响应式
165
160
  const style = attr.style;
166
161
  if (style) {
167
162
  if (typeof style === 'string') {
@@ -596,7 +591,7 @@ let creator = htmlCreator;
596
591
  * ## About
597
592
  * @package @ktjs/core
598
593
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
599
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
594
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
600
595
  * @license MIT
601
596
  * @link https://github.com/baendlorel/kt.js
602
597
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -33,9 +33,9 @@ declare class KTComputed<T> {
33
33
  }
34
34
 
35
35
  type KTReactive<T> = KTRef<T> | KTComputed<T>;
36
- type KTReactify<T> = T extends any ? KTReactive<T> | T : never;
37
- type KTReactifyObject<T extends object> = {
38
- [K in keyof T]: KTReactify<T[K]>;
36
+ type KTReactify<T> = T extends any ? KTReactive<T> : never;
37
+ type KTReactifyProps<T extends object> = {
38
+ [K in keyof T]: KTReactify<Exclude<T[K], undefined>> | T[K];
39
39
  };
40
40
 
41
41
  declare const enum KTReactiveType {
@@ -172,7 +172,7 @@ type KTAttribute = KTBaseAttribute & KTPrefixedEventAttribute;
172
172
  * ## About
173
173
  * @package @ktjs/core
174
174
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
175
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
175
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
176
176
  * @license MIT
177
177
  * @link https://github.com/baendlorel/kt.js
178
178
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -224,7 +224,7 @@ declare function createRedrawable<T>(creator: () => T): KTRef<T> & {
224
224
 
225
225
  // Base events available to all HTML elements
226
226
  type BaseAttr = KTPrefixedEventAttribute &
227
- KTReactifyObject<{
227
+ KTReactifyProps<{
228
228
  [k: string]: any;
229
229
 
230
230
  // # base attributes
@@ -236,7 +236,7 @@ type BaseAttr = KTPrefixedEventAttribute &
236
236
  interface AttributesMap {
237
237
  // Anchor element
238
238
  a: BaseAttr &
239
- KTReactifyObject<{
239
+ KTReactifyProps<{
240
240
  download?: string;
241
241
  href?: string;
242
242
  hreflang?: string;
@@ -257,7 +257,7 @@ interface AttributesMap {
257
257
 
258
258
  // Area element
259
259
  area: BaseAttr &
260
- KTReactifyObject<{
260
+ KTReactifyProps<{
261
261
  alt?: string;
262
262
  coords?: string;
263
263
  download?: string;
@@ -279,7 +279,7 @@ interface AttributesMap {
279
279
 
280
280
  // Audio element
281
281
  audio: BaseAttr &
282
- KTReactifyObject<{
282
+ KTReactifyProps<{
283
283
  autoplay?: boolean;
284
284
  controls?: boolean;
285
285
  crossorigin?: 'anonymous' | 'use-credentials' | '';
@@ -291,20 +291,20 @@ interface AttributesMap {
291
291
 
292
292
  // Base element
293
293
  base: BaseAttr &
294
- KTReactifyObject<{
294
+ KTReactifyProps<{
295
295
  href?: string;
296
296
  target?: '_self' | '_blank' | '_parent' | '_top' | string;
297
297
  }>;
298
298
 
299
299
  // Body element
300
- body: BaseAttr & KTReactifyObject<{}>;
300
+ body: BaseAttr & KTReactifyProps<{}>;
301
301
 
302
302
  // BR element
303
- br: BaseAttr & KTReactifyObject<{}>;
303
+ br: BaseAttr & KTReactifyProps<{}>;
304
304
 
305
305
  // Button element
306
306
  button: BaseAttr &
307
- KTReactifyObject<{
307
+ KTReactifyProps<{
308
308
  disabled?: boolean;
309
309
  form?: string;
310
310
  formaction?: string;
@@ -319,57 +319,57 @@ interface AttributesMap {
319
319
 
320
320
  // Canvas element
321
321
  canvas: BaseAttr &
322
- KTReactifyObject<{
322
+ KTReactifyProps<{
323
323
  height?: number | string;
324
324
  width?: number | string;
325
325
  }>;
326
326
 
327
327
  // Table caption element
328
- caption: BaseAttr & KTReactifyObject<{}>;
328
+ caption: BaseAttr & KTReactifyProps<{}>;
329
329
 
330
330
  // Col element
331
331
  col: BaseAttr &
332
- KTReactifyObject<{
332
+ KTReactifyProps<{
333
333
  span?: number | string;
334
334
  }>;
335
335
 
336
336
  // Colgroup element
337
337
  colgroup: BaseAttr &
338
- KTReactifyObject<{
338
+ KTReactifyProps<{
339
339
  span?: number | string;
340
340
  }>;
341
341
 
342
342
  // Data element
343
343
  data: BaseAttr &
344
- KTReactifyObject<{
344
+ KTReactifyProps<{
345
345
  value?: string;
346
346
  }>;
347
347
 
348
348
  // Datalist element
349
- datalist: BaseAttr & KTReactifyObject<{}>;
349
+ datalist: BaseAttr & KTReactifyProps<{}>;
350
350
 
351
351
  // Del element
352
352
  del: BaseAttr &
353
- KTReactifyObject<{
353
+ KTReactifyProps<{
354
354
  cite?: string;
355
355
  datetime?: string;
356
356
  }>;
357
357
 
358
358
  // Details element
359
359
  details: BaseAttr &
360
- KTReactifyObject<{
360
+ KTReactifyProps<{
361
361
  open?: boolean;
362
362
  }>;
363
363
 
364
364
  // Dialog element
365
365
  dialog: BaseAttr &
366
- KTReactifyObject<{
366
+ KTReactifyProps<{
367
367
  open?: boolean;
368
368
  }>;
369
369
 
370
370
  // Embed element
371
371
  embed: BaseAttr &
372
- KTReactifyObject<{
372
+ KTReactifyProps<{
373
373
  height?: number | string;
374
374
  src?: string;
375
375
  type?: string;
@@ -378,7 +378,7 @@ interface AttributesMap {
378
378
 
379
379
  // Fieldset element
380
380
  fieldset: BaseAttr &
381
- KTReactifyObject<{
381
+ KTReactifyProps<{
382
382
  disabled?: boolean;
383
383
  form?: string;
384
384
  name?: string;
@@ -386,7 +386,7 @@ interface AttributesMap {
386
386
 
387
387
  // Form element
388
388
  form: BaseAttr &
389
- KTReactifyObject<{
389
+ KTReactifyProps<{
390
390
  'accept-charset'?: string;
391
391
  action?: string;
392
392
  autocomplete?: 'on' | 'off';
@@ -399,17 +399,17 @@ interface AttributesMap {
399
399
  }>;
400
400
 
401
401
  // Head element
402
- head: BaseAttr & KTReactifyObject<{}>;
402
+ head: BaseAttr & KTReactifyProps<{}>;
403
403
 
404
404
  // HR element
405
- hr: BaseAttr & KTReactifyObject<{}>;
405
+ hr: BaseAttr & KTReactifyProps<{}>;
406
406
 
407
407
  // HTML element
408
- html: BaseAttr & KTReactifyObject<{}>;
408
+ html: BaseAttr & KTReactifyProps<{}>;
409
409
 
410
410
  // IFrame element
411
411
  iframe: BaseAttr &
412
- KTReactifyObject<{
412
+ KTReactifyProps<{
413
413
  allow?: string;
414
414
  allowfullscreen?: boolean;
415
415
  allowpaymentrequest?: boolean;
@@ -433,7 +433,7 @@ interface AttributesMap {
433
433
 
434
434
  // Image element
435
435
  img: BaseAttr &
436
- KTReactifyObject<{
436
+ KTReactifyProps<{
437
437
  alt?: string;
438
438
  crossorigin?: 'anonymous' | 'use-credentials' | '';
439
439
  decoding?: 'sync' | 'async' | 'auto';
@@ -458,7 +458,7 @@ interface AttributesMap {
458
458
 
459
459
  // Input element
460
460
  input: BaseAttr &
461
- KTReactifyObject<{
461
+ KTReactifyProps<{
462
462
  accept?: string;
463
463
  alt?: string;
464
464
  autocomplete?: string;
@@ -515,29 +515,29 @@ interface AttributesMap {
515
515
 
516
516
  // Ins element
517
517
  ins: BaseAttr &
518
- KTReactifyObject<{
518
+ KTReactifyProps<{
519
519
  cite?: string;
520
520
  datetime?: string;
521
521
  }>;
522
522
 
523
523
  // Label element
524
524
  label: BaseAttr &
525
- KTReactifyObject<{
525
+ KTReactifyProps<{
526
526
  for?: string;
527
527
  }>;
528
528
 
529
529
  // Legend element
530
- legend: BaseAttr & KTReactifyObject<{}>;
530
+ legend: BaseAttr & KTReactifyProps<{}>;
531
531
 
532
532
  // LI element
533
533
  li: BaseAttr &
534
- KTReactifyObject<{
534
+ KTReactifyProps<{
535
535
  value?: number | string;
536
536
  }>;
537
537
 
538
538
  // Link element
539
539
  link: BaseAttr &
540
- KTReactifyObject<{
540
+ KTReactifyProps<{
541
541
  as?: string;
542
542
  crossorigin?: 'anonymous' | 'use-credentials' | '';
543
543
  disabled?: boolean;
@@ -563,16 +563,16 @@ interface AttributesMap {
563
563
 
564
564
  // Map element
565
565
  map: BaseAttr &
566
- KTReactifyObject<{
566
+ KTReactifyProps<{
567
567
  name?: string;
568
568
  }>;
569
569
 
570
570
  // Menu element
571
- menu: BaseAttr & KTReactifyObject<{}>;
571
+ menu: BaseAttr & KTReactifyProps<{}>;
572
572
 
573
573
  // Meta element
574
574
  meta: BaseAttr &
575
- KTReactifyObject<{
575
+ KTReactifyProps<{
576
576
  charset?: string;
577
577
  content?: string;
578
578
  'http-equiv'?: 'content-security-policy' | 'content-type' | 'default-style' | 'refresh' | string;
@@ -581,7 +581,7 @@ interface AttributesMap {
581
581
 
582
582
  // Meter element
583
583
  meter: BaseAttr &
584
- KTReactifyObject<{
584
+ KTReactifyProps<{
585
585
  form?: string;
586
586
  high?: number | string;
587
587
  low?: number | string;
@@ -593,7 +593,7 @@ interface AttributesMap {
593
593
 
594
594
  // Object element
595
595
  object: BaseAttr &
596
- KTReactifyObject<{
596
+ KTReactifyProps<{
597
597
  data?: string;
598
598
  form?: string;
599
599
  height?: number | string;
@@ -605,7 +605,7 @@ interface AttributesMap {
605
605
 
606
606
  // OL element
607
607
  ol: BaseAttr &
608
- KTReactifyObject<{
608
+ KTReactifyProps<{
609
609
  reversed?: boolean;
610
610
  start?: number | string;
611
611
  type?: '1' | 'a' | 'A' | 'i' | 'I';
@@ -613,14 +613,14 @@ interface AttributesMap {
613
613
 
614
614
  // Optgroup element
615
615
  optgroup: BaseAttr &
616
- KTReactifyObject<{
616
+ KTReactifyProps<{
617
617
  disabled?: boolean;
618
618
  label?: string;
619
619
  }>;
620
620
 
621
621
  // Option element
622
622
  option: BaseAttr &
623
- KTReactifyObject<{
623
+ KTReactifyProps<{
624
624
  disabled?: boolean;
625
625
  label?: string;
626
626
  selected?: boolean;
@@ -629,39 +629,39 @@ interface AttributesMap {
629
629
 
630
630
  // Output element
631
631
  output: BaseAttr &
632
- KTReactifyObject<{
632
+ KTReactifyProps<{
633
633
  for?: string;
634
634
  form?: string;
635
635
  name?: string;
636
636
  }>;
637
637
 
638
638
  // Picture element
639
- picture: BaseAttr & KTReactifyObject<{}>;
639
+ picture: BaseAttr & KTReactifyProps<{}>;
640
640
 
641
641
  // Pre element
642
- pre: BaseAttr & KTReactifyObject<{}>;
642
+ pre: BaseAttr & KTReactifyProps<{}>;
643
643
 
644
644
  // Progress element
645
645
  progress: BaseAttr &
646
- KTReactifyObject<{
646
+ KTReactifyProps<{
647
647
  max?: number | string;
648
648
  value?: number | string;
649
649
  }>;
650
650
 
651
651
  // Quote element (q and blockquote)
652
652
  q: BaseAttr &
653
- KTReactifyObject<{
653
+ KTReactifyProps<{
654
654
  cite?: string;
655
655
  }>;
656
656
 
657
657
  blockquote: BaseAttr &
658
- KTReactifyObject<{
658
+ KTReactifyProps<{
659
659
  cite?: string;
660
660
  }>;
661
661
 
662
662
  // Script element
663
663
  script: BaseAttr &
664
- KTReactifyObject<{
664
+ KTReactifyProps<{
665
665
  async?: boolean;
666
666
  crossorigin?: 'anonymous' | 'use-credentials' | '';
667
667
  defer?: boolean;
@@ -682,7 +682,7 @@ interface AttributesMap {
682
682
 
683
683
  // Select element
684
684
  select: BaseAttr &
685
- KTReactifyObject<{
685
+ KTReactifyProps<{
686
686
  autocomplete?: string;
687
687
  disabled?: boolean;
688
688
  form?: string;
@@ -694,13 +694,13 @@ interface AttributesMap {
694
694
 
695
695
  // Slot element
696
696
  slot: BaseAttr &
697
- KTReactifyObject<{
697
+ KTReactifyProps<{
698
698
  name?: string;
699
699
  }>;
700
700
 
701
701
  // Source element
702
702
  source: BaseAttr &
703
- KTReactifyObject<{
703
+ KTReactifyProps<{
704
704
  height?: number | string;
705
705
  media?: string;
706
706
  sizes?: string;
@@ -712,30 +712,30 @@ interface AttributesMap {
712
712
 
713
713
  // Style element
714
714
  style: BaseAttr &
715
- KTReactifyObject<{
715
+ KTReactifyProps<{
716
716
  media?: string;
717
717
  }>;
718
718
 
719
719
  // Table element
720
- table: BaseAttr & KTReactifyObject<{}>;
720
+ table: BaseAttr & KTReactifyProps<{}>;
721
721
 
722
722
  // Table body/footer/header elements
723
- tbody: BaseAttr & KTReactifyObject<{}>;
723
+ tbody: BaseAttr & KTReactifyProps<{}>;
724
724
 
725
- tfoot: BaseAttr & KTReactifyObject<{}>;
725
+ tfoot: BaseAttr & KTReactifyProps<{}>;
726
726
 
727
- thead: BaseAttr & KTReactifyObject<{}>;
727
+ thead: BaseAttr & KTReactifyProps<{}>;
728
728
 
729
729
  // Table cell elements
730
730
  td: BaseAttr &
731
- KTReactifyObject<{
731
+ KTReactifyProps<{
732
732
  colspan?: number | string;
733
733
  headers?: string;
734
734
  rowspan?: number | string;
735
735
  }>;
736
736
 
737
737
  th: BaseAttr &
738
- KTReactifyObject<{
738
+ KTReactifyProps<{
739
739
  abbr?: string;
740
740
  colspan?: number | string;
741
741
  headers?: string;
@@ -744,11 +744,11 @@ interface AttributesMap {
744
744
  }>;
745
745
 
746
746
  // Template element
747
- template: BaseAttr & KTReactifyObject<{}>;
747
+ template: BaseAttr & KTReactifyProps<{}>;
748
748
 
749
749
  // Textarea element
750
750
  textarea: BaseAttr &
751
- KTReactifyObject<{
751
+ KTReactifyProps<{
752
752
  autocomplete?: string;
753
753
  cols?: number | string;
754
754
  dirname?: string;
@@ -766,19 +766,19 @@ interface AttributesMap {
766
766
 
767
767
  // Time element
768
768
  time: BaseAttr &
769
- KTReactifyObject<{
769
+ KTReactifyProps<{
770
770
  datetime?: string;
771
771
  }>;
772
772
 
773
773
  // Title element
774
- title: BaseAttr & KTReactifyObject<{}>;
774
+ title: BaseAttr & KTReactifyProps<{}>;
775
775
 
776
776
  // TR element
777
- tr: BaseAttr & KTReactifyObject<{}>;
777
+ tr: BaseAttr & KTReactifyProps<{}>;
778
778
 
779
779
  // Track element
780
780
  track: BaseAttr &
781
- KTReactifyObject<{
781
+ KTReactifyProps<{
782
782
  default?: boolean;
783
783
  kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata';
784
784
  label?: string;
@@ -787,11 +787,11 @@ interface AttributesMap {
787
787
  }>;
788
788
 
789
789
  // UL element
790
- ul: BaseAttr & KTReactifyObject<{}>;
790
+ ul: BaseAttr & KTReactifyProps<{}>;
791
791
 
792
792
  // Video element
793
793
  video: BaseAttr &
794
- KTReactifyObject<{
794
+ KTReactifyProps<{
795
795
  autoplay?: boolean;
796
796
  controls?: boolean;
797
797
  crossorigin?: 'anonymous' | 'use-credentials' | '';
@@ -806,55 +806,55 @@ interface AttributesMap {
806
806
  }>;
807
807
 
808
808
  // Generic HTMLElement (no specific attributes beyond BaseEvent)
809
- abbr: BaseAttr & KTReactifyObject<{}>;
810
- address: BaseAttr & KTReactifyObject<{}>;
811
- article: BaseAttr & KTReactifyObject<{}>;
812
- aside: BaseAttr & KTReactifyObject<{}>;
813
- b: BaseAttr & KTReactifyObject<{}>;
814
- bdi: BaseAttr & KTReactifyObject<{}>;
815
- bdo: BaseAttr & KTReactifyObject<{}>;
816
- cite: BaseAttr & KTReactifyObject<{}>;
817
- code: BaseAttr & KTReactifyObject<{}>;
818
- dd: BaseAttr & KTReactifyObject<{}>;
819
- dfn: BaseAttr & KTReactifyObject<{}>;
820
- div: BaseAttr & KTReactifyObject<{}>;
821
- dl: BaseAttr & KTReactifyObject<{}>;
822
- dt: BaseAttr & KTReactifyObject<{}>;
823
- em: BaseAttr & KTReactifyObject<{}>;
824
- figcaption: BaseAttr & KTReactifyObject<{}>;
825
- figure: BaseAttr & KTReactifyObject<{}>;
826
- footer: BaseAttr & KTReactifyObject<{}>;
827
- h1: BaseAttr & KTReactifyObject<{}>;
828
- h2: BaseAttr & KTReactifyObject<{}>;
829
- h3: BaseAttr & KTReactifyObject<{}>;
830
- h4: BaseAttr & KTReactifyObject<{}>;
831
- h5: BaseAttr & KTReactifyObject<{}>;
832
- h6: BaseAttr & KTReactifyObject<{}>;
833
- header: BaseAttr & KTReactifyObject<{}>;
834
- hgroup: BaseAttr & KTReactifyObject<{}>;
835
- i: BaseAttr & KTReactifyObject<{}>;
836
- kbd: BaseAttr & KTReactifyObject<{}>;
837
- main: BaseAttr & KTReactifyObject<{}>;
838
- mark: BaseAttr & KTReactifyObject<{}>;
839
- nav: BaseAttr & KTReactifyObject<{}>;
840
- noscript: BaseAttr & KTReactifyObject<{}>;
841
- p: BaseAttr & KTReactifyObject<{}>;
842
- rp: BaseAttr & KTReactifyObject<{}>;
843
- rt: BaseAttr & KTReactifyObject<{}>;
844
- ruby: BaseAttr & KTReactifyObject<{}>;
845
- s: BaseAttr & KTReactifyObject<{}>;
846
- samp: BaseAttr & KTReactifyObject<{}>;
847
- search: BaseAttr & KTReactifyObject<{}>;
848
- section: BaseAttr & KTReactifyObject<{}>;
849
- small: BaseAttr & KTReactifyObject<{}>;
850
- span: BaseAttr & KTReactifyObject<{}>;
851
- strong: BaseAttr & KTReactifyObject<{}>;
852
- sub: BaseAttr & KTReactifyObject<{}>;
853
- summary: BaseAttr & KTReactifyObject<{}>;
854
- sup: BaseAttr & KTReactifyObject<{}>;
855
- u: BaseAttr & KTReactifyObject<{}>;
856
- var: BaseAttr & KTReactifyObject<{}>;
857
- wbr: BaseAttr & KTReactifyObject<{}>;
809
+ abbr: BaseAttr & KTReactifyProps<{}>;
810
+ address: BaseAttr & KTReactifyProps<{}>;
811
+ article: BaseAttr & KTReactifyProps<{}>;
812
+ aside: BaseAttr & KTReactifyProps<{}>;
813
+ b: BaseAttr & KTReactifyProps<{}>;
814
+ bdi: BaseAttr & KTReactifyProps<{}>;
815
+ bdo: BaseAttr & KTReactifyProps<{}>;
816
+ cite: BaseAttr & KTReactifyProps<{}>;
817
+ code: BaseAttr & KTReactifyProps<{}>;
818
+ dd: BaseAttr & KTReactifyProps<{}>;
819
+ dfn: BaseAttr & KTReactifyProps<{}>;
820
+ div: BaseAttr & KTReactifyProps<{}>;
821
+ dl: BaseAttr & KTReactifyProps<{}>;
822
+ dt: BaseAttr & KTReactifyProps<{}>;
823
+ em: BaseAttr & KTReactifyProps<{}>;
824
+ figcaption: BaseAttr & KTReactifyProps<{}>;
825
+ figure: BaseAttr & KTReactifyProps<{}>;
826
+ footer: BaseAttr & KTReactifyProps<{}>;
827
+ h1: BaseAttr & KTReactifyProps<{}>;
828
+ h2: BaseAttr & KTReactifyProps<{}>;
829
+ h3: BaseAttr & KTReactifyProps<{}>;
830
+ h4: BaseAttr & KTReactifyProps<{}>;
831
+ h5: BaseAttr & KTReactifyProps<{}>;
832
+ h6: BaseAttr & KTReactifyProps<{}>;
833
+ header: BaseAttr & KTReactifyProps<{}>;
834
+ hgroup: BaseAttr & KTReactifyProps<{}>;
835
+ i: BaseAttr & KTReactifyProps<{}>;
836
+ kbd: BaseAttr & KTReactifyProps<{}>;
837
+ main: BaseAttr & KTReactifyProps<{}>;
838
+ mark: BaseAttr & KTReactifyProps<{}>;
839
+ nav: BaseAttr & KTReactifyProps<{}>;
840
+ noscript: BaseAttr & KTReactifyProps<{}>;
841
+ p: BaseAttr & KTReactifyProps<{}>;
842
+ rp: BaseAttr & KTReactifyProps<{}>;
843
+ rt: BaseAttr & KTReactifyProps<{}>;
844
+ ruby: BaseAttr & KTReactifyProps<{}>;
845
+ s: BaseAttr & KTReactifyProps<{}>;
846
+ samp: BaseAttr & KTReactifyProps<{}>;
847
+ search: BaseAttr & KTReactifyProps<{}>;
848
+ section: BaseAttr & KTReactifyProps<{}>;
849
+ small: BaseAttr & KTReactifyProps<{}>;
850
+ span: BaseAttr & KTReactifyProps<{}>;
851
+ strong: BaseAttr & KTReactifyProps<{}>;
852
+ sub: BaseAttr & KTReactifyProps<{}>;
853
+ summary: BaseAttr & KTReactifyProps<{}>;
854
+ sup: BaseAttr & KTReactifyProps<{}>;
855
+ u: BaseAttr & KTReactifyProps<{}>;
856
+ var: BaseAttr & KTReactifyProps<{}>;
857
+ wbr: BaseAttr & KTReactifyProps<{}>;
858
858
 
859
859
  svg: BaseAttr & {
860
860
  class?: string;
@@ -83,9 +83,6 @@ if (typeof Symbol === 'undefined') {
83
83
  // Shared utilities and cached native methods for kt.js framework
84
84
  Object.defineProperty(window, '__ktjs__', { value: '0.22.8' });
85
85
 
86
- // export const KT_TYPE_REF = 1 as const;
87
- // export const KT_TYPE_COMPUTED = 2 as const;
88
- // export type KTReactiveTypeEnum = typeof KT_TYPE_REF | typeof KT_TYPE_COMPUTED;
89
86
  const isKT = (obj) => obj?.isKT;
90
87
  const isRef = (obj) => obj?.ktType === 1 /* KTReactiveType.REF */;
91
88
  const isComputed = (obj) => obj?.ktType === 2 /* KTReactiveType.COMPUTED */;
@@ -149,12 +146,10 @@ function attrIsObject(element, attr) {
149
146
  classValue.addOnChange((v) => element.setAttribute('class', v));
150
147
  }
151
148
  else {
152
- // todo 这里要让undefined 排除出reactify类型工具之外
153
149
  element.setAttribute('class', classValue);
154
150
  }
155
151
  }
156
152
  // todo 这里加入reactive支持
157
- // todo 类型定义也要支持reactive响应式
158
153
  const style = attr.style;
159
154
  if (style) {
160
155
  if (typeof style === 'string') {
@@ -388,7 +383,7 @@ let creator = htmlCreator;
388
383
  * ## About
389
384
  * @package @ktjs/core
390
385
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
391
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
386
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
392
387
  * @license MIT
393
388
  * @link https://github.com/baendlorel/kt.js
394
389
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -141,7 +141,7 @@ type KTAttribute = KTBaseAttribute & KTPrefixedEventAttribute;
141
141
  * ## About
142
142
  * @package @ktjs/core
143
143
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
144
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
144
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
145
145
  * @license MIT
146
146
  * @link https://github.com/baendlorel/kt.js
147
147
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -83,9 +83,6 @@ if (typeof Symbol === 'undefined') {
83
83
  // Shared utilities and cached native methods for kt.js framework
84
84
  Object.defineProperty(window, '__ktjs__', { value: '0.22.8' });
85
85
 
86
- // export const KT_TYPE_REF = 1 as const;
87
- // export const KT_TYPE_COMPUTED = 2 as const;
88
- // export type KTReactiveTypeEnum = typeof KT_TYPE_REF | typeof KT_TYPE_COMPUTED;
89
86
  const isKT = (obj) => obj?.isKT;
90
87
  const isRef = (obj) => obj?.ktType === 1 /* KTReactiveType.REF */;
91
88
  const isComputed = (obj) => obj?.ktType === 2 /* KTReactiveType.COMPUTED */;
@@ -149,12 +146,10 @@ function attrIsObject(element, attr) {
149
146
  classValue.addOnChange((v) => element.setAttribute('class', v));
150
147
  }
151
148
  else {
152
- // todo 这里要让undefined 排除出reactify类型工具之外
153
149
  element.setAttribute('class', classValue);
154
150
  }
155
151
  }
156
152
  // todo 这里加入reactive支持
157
- // todo 类型定义也要支持reactive响应式
158
153
  const style = attr.style;
159
154
  if (style) {
160
155
  if (typeof style === 'string') {
@@ -388,7 +383,7 @@ let creator = htmlCreator;
388
383
  * ## About
389
384
  * @package @ktjs/core
390
385
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
391
- * @version 0.26.1 (Last Update: 2026.02.05 17:35:29.547)
386
+ * @version 0.26.2 (Last Update: 2026.02.05 20:44:45.309)
392
387
  * @license MIT
393
388
  * @link https://github.com/baendlorel/kt.js
394
389
  * @link https://baendlorel.github.io/ Welcome to my site!
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ktjs/core",
3
- "version": "0.26.1",
3
+ "version": "0.26.2",
4
4
  "description": "Core functionality for kt.js - DOM manipulation utilities with JSX/TSX support",
5
5
  "type": "module",
6
6
  "module": "./dist/index.mjs",