@mateosuarezdev/flash 0.0.3 → 0.0.5

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
@@ -598,3 +598,900 @@ declare interface VNode {
598
598
  export declare function withViewTransition(mutate: () => void, elements?: HTMLElement[], options?: ViewTransitionOptions): void;
599
599
 
600
600
  export { }
601
+
602
+
603
+ // JSX Types
604
+ // =============================================================================
605
+ // JSX Element type - what JSX expressions return
606
+ // =============================================================================
607
+
608
+ export type JSXElement =
609
+ | IntrinsicVNode
610
+ | VNode
611
+ | ReactiveVNode
612
+ | string
613
+ | number
614
+ | boolean
615
+ | null
616
+ | undefined;
617
+
618
+ // =============================================================================
619
+ // Component types
620
+ // =============================================================================
621
+
622
+ export type Component<P = {}> = (props: P) => JSXElement;
623
+
624
+ export type ParentComponent<P = {}> = (
625
+ props: P & { children?: Children },
626
+ ) => JSXElement;
627
+
628
+ // =============================================================================
629
+ // JSX Namespace
630
+ // =============================================================================
631
+
632
+ declare global {
633
+ namespace JSX {
634
+ type Element = JSXElement;
635
+
636
+ interface ElementAttributesProperty {
637
+ props: {};
638
+ }
639
+
640
+ interface ElementChildrenAttribute {
641
+ children: {};
642
+ }
643
+
644
+ // -------------------------------------------------------------------------
645
+ // Intrinsic elements (HTML + SVG)
646
+ // -------------------------------------------------------------------------
647
+ type IntrinsicElements = {
648
+ [K in keyof HTMLElementTagNameMap]: HTMLAttributes<
649
+ HTMLElementTagNameMap[K]
650
+ > &
651
+ TagSpecificProps<K>;
652
+ } & {
653
+ [K in keyof SVGElementTagNameMap]: SVGAttributes<SVGElementTagNameMap[K]>;
654
+ };
655
+ }
656
+ }
657
+
658
+ // =============================================================================
659
+ // Ref type
660
+ // =============================================================================
661
+
662
+ type Ref<T extends Element = Element> = (el: T) => void;
663
+
664
+ // =============================================================================
665
+ // Reactive wrapper - allows T or () => T for reactive props
666
+ // =============================================================================
667
+
668
+ type MaybeReactive<T> = T | (() => T);
669
+
670
+ // =============================================================================
671
+ // Event Handlers
672
+ // =============================================================================
673
+
674
+ type EventHandler<E extends Event = Event> = (event: E) => void;
675
+
676
+ interface DOMEventHandlers<T extends Element = Element> {
677
+ // Mouse events
678
+ onClick?: EventHandler<MouseEvent>;
679
+ onDblClick?: EventHandler<MouseEvent>;
680
+ onMouseDown?: EventHandler<MouseEvent>;
681
+ onMouseUp?: EventHandler<MouseEvent>;
682
+ onMouseEnter?: EventHandler<MouseEvent>;
683
+ onMouseLeave?: EventHandler<MouseEvent>;
684
+ onMouseMove?: EventHandler<MouseEvent>;
685
+ onMouseOver?: EventHandler<MouseEvent>;
686
+ onMouseOut?: EventHandler<MouseEvent>;
687
+ onContextMenu?: EventHandler<MouseEvent>;
688
+
689
+ // Keyboard events
690
+ onKeyDown?: EventHandler<KeyboardEvent>;
691
+ onKeyUp?: EventHandler<KeyboardEvent>;
692
+ onKeyPress?: EventHandler<KeyboardEvent>;
693
+
694
+ // Focus events
695
+ onFocus?: EventHandler<FocusEvent>;
696
+ onBlur?: EventHandler<FocusEvent>;
697
+ onFocusIn?: EventHandler<FocusEvent>;
698
+ onFocusOut?: EventHandler<FocusEvent>;
699
+
700
+ // Form events
701
+ onInput?: EventHandler<InputEvent>;
702
+ onChange?: EventHandler<Event>;
703
+ onSubmit?: EventHandler<SubmitEvent>;
704
+ onReset?: EventHandler<Event>;
705
+ onInvalid?: EventHandler<Event>;
706
+
707
+ // Touch events
708
+ onTouchStart?: EventHandler<TouchEvent>;
709
+ onTouchEnd?: EventHandler<TouchEvent>;
710
+ onTouchMove?: EventHandler<TouchEvent>;
711
+ onTouchCancel?: EventHandler<TouchEvent>;
712
+
713
+ // Pointer events
714
+ onPointerDown?: EventHandler<PointerEvent>;
715
+ onPointerUp?: EventHandler<PointerEvent>;
716
+ onPointerMove?: EventHandler<PointerEvent>;
717
+ onPointerEnter?: EventHandler<PointerEvent>;
718
+ onPointerLeave?: EventHandler<PointerEvent>;
719
+ onPointerOver?: EventHandler<PointerEvent>;
720
+ onPointerOut?: EventHandler<PointerEvent>;
721
+ onPointerCancel?: EventHandler<PointerEvent>;
722
+
723
+ // Drag events
724
+ onDrag?: EventHandler<DragEvent>;
725
+ onDragStart?: EventHandler<DragEvent>;
726
+ onDragEnd?: EventHandler<DragEvent>;
727
+ onDragEnter?: EventHandler<DragEvent>;
728
+ onDragLeave?: EventHandler<DragEvent>;
729
+ onDragOver?: EventHandler<DragEvent>;
730
+ onDrop?: EventHandler<DragEvent>;
731
+
732
+ // Clipboard events
733
+ onCopy?: EventHandler<ClipboardEvent>;
734
+ onCut?: EventHandler<ClipboardEvent>;
735
+ onPaste?: EventHandler<ClipboardEvent>;
736
+
737
+ // Scroll/Wheel events
738
+ onScroll?: EventHandler<Event>;
739
+ onWheel?: EventHandler<WheelEvent>;
740
+
741
+ // Animation events
742
+ onAnimationStart?: EventHandler<AnimationEvent>;
743
+ onAnimationEnd?: EventHandler<AnimationEvent>;
744
+ onAnimationIteration?: EventHandler<AnimationEvent>;
745
+
746
+ // Transition events
747
+ onTransitionStart?: EventHandler<TransitionEvent>;
748
+ onTransitionEnd?: EventHandler<TransitionEvent>;
749
+ onTransitionRun?: EventHandler<TransitionEvent>;
750
+ onTransitionCancel?: EventHandler<TransitionEvent>;
751
+
752
+ // Media events
753
+ onLoad?: EventHandler<Event>;
754
+ onError?: EventHandler<Event>;
755
+ }
756
+
757
+ // =============================================================================
758
+ // CSS Properties (for style prop)
759
+ // =============================================================================
760
+
761
+ type CSSProperties = {
762
+ [K in keyof CSSStyleDeclaration]?: CSSStyleDeclaration[K] | number;
763
+ } & {
764
+ // Allow CSS custom properties
765
+ [key: `--${string}`]: string | number;
766
+ };
767
+
768
+ // =============================================================================
769
+ // ARIA attributes
770
+ // =============================================================================
771
+
772
+ interface AriaAttributes {
773
+ role?: string;
774
+ "aria-activedescendant"?: string;
775
+ "aria-atomic"?: boolean | "true" | "false";
776
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both";
777
+ "aria-busy"?: boolean | "true" | "false";
778
+ "aria-checked"?: boolean | "true" | "false" | "mixed";
779
+ "aria-colcount"?: number;
780
+ "aria-colindex"?: number;
781
+ "aria-colspan"?: number;
782
+ "aria-controls"?: string;
783
+ "aria-current"?:
784
+ | boolean
785
+ | "true"
786
+ | "false"
787
+ | "page"
788
+ | "step"
789
+ | "location"
790
+ | "date"
791
+ | "time";
792
+ "aria-describedby"?: string;
793
+ "aria-details"?: string;
794
+ "aria-disabled"?: boolean | "true" | "false";
795
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup";
796
+ "aria-errormessage"?: string;
797
+ "aria-expanded"?: boolean | "true" | "false";
798
+ "aria-flowto"?: string;
799
+ "aria-grabbed"?: boolean | "true" | "false";
800
+ "aria-haspopup"?:
801
+ | boolean
802
+ | "true"
803
+ | "false"
804
+ | "menu"
805
+ | "listbox"
806
+ | "tree"
807
+ | "grid"
808
+ | "dialog";
809
+ "aria-hidden"?: boolean | "true" | "false";
810
+ "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling";
811
+ "aria-keyshortcuts"?: string;
812
+ "aria-label"?: string;
813
+ "aria-labelledby"?: string;
814
+ "aria-level"?: number;
815
+ "aria-live"?: "off" | "assertive" | "polite";
816
+ "aria-modal"?: boolean | "true" | "false";
817
+ "aria-multiline"?: boolean | "true" | "false";
818
+ "aria-multiselectable"?: boolean | "true" | "false";
819
+ "aria-orientation"?: "horizontal" | "vertical";
820
+ "aria-owns"?: string;
821
+ "aria-placeholder"?: string;
822
+ "aria-posinset"?: number;
823
+ "aria-pressed"?: boolean | "true" | "false" | "mixed";
824
+ "aria-readonly"?: boolean | "true" | "false";
825
+ "aria-relevant"?:
826
+ | "additions"
827
+ | "additions removals"
828
+ | "additions text"
829
+ | "all"
830
+ | "removals"
831
+ | "removals additions"
832
+ | "removals text"
833
+ | "text"
834
+ | "text additions"
835
+ | "text removals";
836
+ "aria-required"?: boolean | "true" | "false";
837
+ "aria-roledescription"?: string;
838
+ "aria-rowcount"?: number;
839
+ "aria-rowindex"?: number;
840
+ "aria-rowspan"?: number;
841
+ "aria-selected"?: boolean | "true" | "false";
842
+ "aria-setsize"?: number;
843
+ "aria-sort"?: "none" | "ascending" | "descending" | "other";
844
+ "aria-valuemax"?: number;
845
+ "aria-valuemin"?: number;
846
+ "aria-valuenow"?: number;
847
+ "aria-valuetext"?: string;
848
+ }
849
+
850
+ // =============================================================================
851
+ // HTML Attributes
852
+ // =============================================================================
853
+
854
+ interface HTMLAttributes<T extends Element = Element>
855
+ extends AriaAttributes, DOMEventHandlers<T> {
856
+ // Flash-specific
857
+ ref?: Ref<T>;
858
+ key?: string | number;
859
+ children?: Children;
860
+ innerHTML?: string | object;
861
+
862
+ // Standard HTML attributes
863
+ id?: MaybeReactive<string>;
864
+ class?: MaybeReactive<string>;
865
+ className?: MaybeReactive<string>;
866
+ style?: MaybeReactive<string | CSSProperties>;
867
+ title?: MaybeReactive<string>;
868
+ tabIndex?: MaybeReactive<number>;
869
+ lang?: MaybeReactive<string>;
870
+ dir?: MaybeReactive<"ltr" | "rtl" | "auto">;
871
+ hidden?: MaybeReactive<boolean>;
872
+ draggable?: MaybeReactive<boolean>;
873
+ spellcheck?: MaybeReactive<boolean>;
874
+ contentEditable?: MaybeReactive<boolean | "true" | "false" | "inherit">;
875
+ translate?: MaybeReactive<"yes" | "no">;
876
+ slot?: MaybeReactive<string>;
877
+ accessKey?: MaybeReactive<string>;
878
+ autoCapitalize?: MaybeReactive<string>;
879
+ autoFocus?: MaybeReactive<boolean>;
880
+ enterKeyHint?: MaybeReactive<
881
+ "enter" | "done" | "go" | "next" | "previous" | "search" | "send"
882
+ >;
883
+ inputMode?: MaybeReactive<
884
+ "none" | "text" | "decimal" | "numeric" | "tel" | "search" | "email" | "url"
885
+ >;
886
+ is?: MaybeReactive<string>;
887
+ itemId?: MaybeReactive<string>;
888
+ itemProp?: MaybeReactive<string>;
889
+ itemRef?: MaybeReactive<string>;
890
+ itemScope?: MaybeReactive<boolean>;
891
+ itemType?: MaybeReactive<string>;
892
+ nonce?: MaybeReactive<string>;
893
+ part?: MaybeReactive<string>;
894
+ popover?: MaybeReactive<"auto" | "manual">;
895
+ popoverTarget?: MaybeReactive<string>;
896
+ popoverTargetAction?: MaybeReactive<"hide" | "show" | "toggle">;
897
+
898
+ // Data attributes
899
+ [key: `data-${string}`]: MaybeReactive<string | number | boolean>;
900
+ }
901
+
902
+ // =============================================================================
903
+ // Tag-specific props
904
+ // =============================================================================
905
+
906
+ type TagSpecificProps<K extends keyof HTMLElementTagNameMap> =
907
+ K extends keyof TagExtraProps ? TagExtraProps[K] : {};
908
+
909
+ interface TagExtraProps {
910
+ a: {
911
+ href?: MaybeReactive<string>;
912
+ target?: MaybeReactive<"_blank" | "_self" | "_parent" | "_top" | string>;
913
+ rel?: MaybeReactive<string>;
914
+ download?: MaybeReactive<boolean | string>;
915
+ hreflang?: MaybeReactive<string>;
916
+ ping?: MaybeReactive<string>;
917
+ referrerPolicy?: MaybeReactive<ReferrerPolicy>;
918
+ type?: MaybeReactive<string>;
919
+ };
920
+ area: {
921
+ alt?: MaybeReactive<string>;
922
+ coords?: MaybeReactive<string>;
923
+ download?: MaybeReactive<boolean | string>;
924
+ href?: MaybeReactive<string>;
925
+ hreflang?: MaybeReactive<string>;
926
+ ping?: MaybeReactive<string>;
927
+ referrerPolicy?: MaybeReactive<ReferrerPolicy>;
928
+ rel?: MaybeReactive<string>;
929
+ shape?: MaybeReactive<"rect" | "circle" | "poly" | "default">;
930
+ target?: MaybeReactive<string>;
931
+ };
932
+ audio: MediaProps;
933
+ base: {
934
+ href?: MaybeReactive<string>;
935
+ target?: MaybeReactive<string>;
936
+ };
937
+ blockquote: {
938
+ cite?: MaybeReactive<string>;
939
+ };
940
+ button: {
941
+ type?: MaybeReactive<"button" | "submit" | "reset">;
942
+ disabled?: MaybeReactive<boolean>;
943
+ form?: MaybeReactive<string>;
944
+ formAction?: MaybeReactive<string>;
945
+ formEncType?: MaybeReactive<string>;
946
+ formMethod?: MaybeReactive<string>;
947
+ formNoValidate?: MaybeReactive<boolean>;
948
+ formTarget?: MaybeReactive<string>;
949
+ name?: MaybeReactive<string>;
950
+ value?: MaybeReactive<string>;
951
+ popoverTarget?: MaybeReactive<string>;
952
+ popoverTargetAction?: MaybeReactive<"hide" | "show" | "toggle">;
953
+ };
954
+ canvas: {
955
+ width?: MaybeReactive<number | string>;
956
+ height?: MaybeReactive<number | string>;
957
+ };
958
+ col: {
959
+ span?: MaybeReactive<number>;
960
+ };
961
+ colgroup: {
962
+ span?: MaybeReactive<number>;
963
+ };
964
+ del: {
965
+ cite?: MaybeReactive<string>;
966
+ dateTime?: MaybeReactive<string>;
967
+ };
968
+ details: {
969
+ open?: MaybeReactive<boolean>;
970
+ onToggle?: EventHandler<Event>;
971
+ };
972
+ dialog: {
973
+ open?: MaybeReactive<boolean>;
974
+ onClose?: EventHandler<Event>;
975
+ onCancel?: EventHandler<Event>;
976
+ };
977
+ embed: {
978
+ height?: MaybeReactive<number | string>;
979
+ src?: MaybeReactive<string>;
980
+ type?: MaybeReactive<string>;
981
+ width?: MaybeReactive<number | string>;
982
+ };
983
+ fieldset: {
984
+ disabled?: MaybeReactive<boolean>;
985
+ form?: MaybeReactive<string>;
986
+ name?: MaybeReactive<string>;
987
+ };
988
+ form: {
989
+ action?: MaybeReactive<string>;
990
+ method?: MaybeReactive<"get" | "post" | "dialog">;
991
+ encType?: MaybeReactive<string>;
992
+ target?: MaybeReactive<string>;
993
+ autoComplete?: MaybeReactive<"on" | "off">;
994
+ noValidate?: MaybeReactive<boolean>;
995
+ name?: MaybeReactive<string>;
996
+ acceptCharset?: MaybeReactive<string>;
997
+ rel?: MaybeReactive<string>;
998
+ };
999
+ html: {
1000
+ manifest?: MaybeReactive<string>;
1001
+ };
1002
+ iframe: {
1003
+ allow?: MaybeReactive<string>;
1004
+ allowFullScreen?: MaybeReactive<boolean>;
1005
+ height?: MaybeReactive<number | string>;
1006
+ loading?: MaybeReactive<"eager" | "lazy">;
1007
+ name?: MaybeReactive<string>;
1008
+ referrerPolicy?: MaybeReactive<ReferrerPolicy>;
1009
+ sandbox?: MaybeReactive<string>;
1010
+ src?: MaybeReactive<string>;
1011
+ srcdoc?: MaybeReactive<string>;
1012
+ width?: MaybeReactive<number | string>;
1013
+ };
1014
+ img: {
1015
+ alt?: MaybeReactive<string>;
1016
+ crossOrigin?: MaybeReactive<"anonymous" | "use-credentials" | "">;
1017
+ decoding?: MaybeReactive<"async" | "auto" | "sync">;
1018
+ height?: MaybeReactive<number | string>;
1019
+ loading?: MaybeReactive<"eager" | "lazy">;
1020
+ referrerPolicy?: MaybeReactive<ReferrerPolicy>;
1021
+ sizes?: MaybeReactive<string>;
1022
+ src?: MaybeReactive<string>;
1023
+ srcSet?: MaybeReactive<string>;
1024
+ useMap?: MaybeReactive<string>;
1025
+ width?: MaybeReactive<number | string>;
1026
+ fetchPriority?: MaybeReactive<"high" | "low" | "auto">;
1027
+ };
1028
+ input: {
1029
+ accept?: MaybeReactive<string>;
1030
+ alt?: MaybeReactive<string>;
1031
+ autoComplete?: MaybeReactive<string>;
1032
+ capture?: MaybeReactive<boolean | "user" | "environment">;
1033
+ checked?: MaybeReactive<boolean>;
1034
+ disabled?: MaybeReactive<boolean>;
1035
+ form?: MaybeReactive<string>;
1036
+ formAction?: MaybeReactive<string>;
1037
+ formEncType?: MaybeReactive<string>;
1038
+ formMethod?: MaybeReactive<string>;
1039
+ formNoValidate?: MaybeReactive<boolean>;
1040
+ formTarget?: MaybeReactive<string>;
1041
+ height?: MaybeReactive<number | string>;
1042
+ list?: MaybeReactive<string>;
1043
+ max?: MaybeReactive<number | string>;
1044
+ maxLength?: MaybeReactive<number>;
1045
+ min?: MaybeReactive<number | string>;
1046
+ minLength?: MaybeReactive<number>;
1047
+ multiple?: MaybeReactive<boolean>;
1048
+ name?: MaybeReactive<string>;
1049
+ pattern?: MaybeReactive<string>;
1050
+ placeholder?: MaybeReactive<string>;
1051
+ readOnly?: MaybeReactive<boolean>;
1052
+ required?: MaybeReactive<boolean>;
1053
+ size?: MaybeReactive<number>;
1054
+ src?: MaybeReactive<string>;
1055
+ step?: MaybeReactive<number | string>;
1056
+ type?: MaybeReactive<
1057
+ | "button"
1058
+ | "checkbox"
1059
+ | "color"
1060
+ | "date"
1061
+ | "datetime-local"
1062
+ | "email"
1063
+ | "file"
1064
+ | "hidden"
1065
+ | "image"
1066
+ | "month"
1067
+ | "number"
1068
+ | "password"
1069
+ | "radio"
1070
+ | "range"
1071
+ | "reset"
1072
+ | "search"
1073
+ | "submit"
1074
+ | "tel"
1075
+ | "text"
1076
+ | "time"
1077
+ | "url"
1078
+ | "week"
1079
+ >;
1080
+ value?: MaybeReactive<string | number | readonly string[]>;
1081
+ width?: MaybeReactive<number | string>;
1082
+ };
1083
+ ins: {
1084
+ cite?: MaybeReactive<string>;
1085
+ dateTime?: MaybeReactive<string>;
1086
+ };
1087
+ label: {
1088
+ for?: MaybeReactive<string>;
1089
+ htmlFor?: MaybeReactive<string>;
1090
+ };
1091
+ li: {
1092
+ value?: MaybeReactive<number>;
1093
+ };
1094
+ link: {
1095
+ as?: MaybeReactive<string>;
1096
+ crossOrigin?: MaybeReactive<"anonymous" | "use-credentials" | "">;
1097
+ disabled?: MaybeReactive<boolean>;
1098
+ href?: MaybeReactive<string>;
1099
+ hreflang?: MaybeReactive<string>;
1100
+ imageSizes?: MaybeReactive<string>;
1101
+ imageSrcSet?: MaybeReactive<string>;
1102
+ integrity?: MaybeReactive<string>;
1103
+ media?: MaybeReactive<string>;
1104
+ referrerPolicy?: MaybeReactive<ReferrerPolicy>;
1105
+ rel?: MaybeReactive<string>;
1106
+ sizes?: MaybeReactive<string>;
1107
+ type?: MaybeReactive<string>;
1108
+ fetchPriority?: MaybeReactive<"high" | "low" | "auto">;
1109
+ };
1110
+ map: {
1111
+ name?: MaybeReactive<string>;
1112
+ };
1113
+ meta: {
1114
+ charSet?: MaybeReactive<string>;
1115
+ content?: MaybeReactive<string>;
1116
+ httpEquiv?: MaybeReactive<string>;
1117
+ name?: MaybeReactive<string>;
1118
+ media?: MaybeReactive<string>;
1119
+ };
1120
+ meter: {
1121
+ high?: MaybeReactive<number>;
1122
+ low?: MaybeReactive<number>;
1123
+ max?: MaybeReactive<number>;
1124
+ min?: MaybeReactive<number>;
1125
+ optimum?: MaybeReactive<number>;
1126
+ value?: MaybeReactive<number>;
1127
+ };
1128
+ object: {
1129
+ data?: MaybeReactive<string>;
1130
+ form?: MaybeReactive<string>;
1131
+ height?: MaybeReactive<number | string>;
1132
+ name?: MaybeReactive<string>;
1133
+ type?: MaybeReactive<string>;
1134
+ useMap?: MaybeReactive<string>;
1135
+ width?: MaybeReactive<number | string>;
1136
+ };
1137
+ ol: {
1138
+ reversed?: MaybeReactive<boolean>;
1139
+ start?: MaybeReactive<number>;
1140
+ type?: MaybeReactive<"1" | "a" | "A" | "i" | "I">;
1141
+ };
1142
+ optgroup: {
1143
+ disabled?: MaybeReactive<boolean>;
1144
+ label?: MaybeReactive<string>;
1145
+ };
1146
+ option: {
1147
+ disabled?: MaybeReactive<boolean>;
1148
+ label?: MaybeReactive<string>;
1149
+ selected?: MaybeReactive<boolean>;
1150
+ value?: MaybeReactive<string | number>;
1151
+ };
1152
+ output: {
1153
+ for?: MaybeReactive<string>;
1154
+ htmlFor?: MaybeReactive<string>;
1155
+ form?: MaybeReactive<string>;
1156
+ name?: MaybeReactive<string>;
1157
+ };
1158
+ progress: {
1159
+ max?: MaybeReactive<number>;
1160
+ value?: MaybeReactive<number>;
1161
+ };
1162
+ q: {
1163
+ cite?: MaybeReactive<string>;
1164
+ };
1165
+ script: {
1166
+ async?: MaybeReactive<boolean>;
1167
+ crossOrigin?: MaybeReactive<"anonymous" | "use-credentials" | "">;
1168
+ defer?: MaybeReactive<boolean>;
1169
+ integrity?: MaybeReactive<string>;
1170
+ noModule?: MaybeReactive<boolean>;
1171
+ referrerPolicy?: MaybeReactive<ReferrerPolicy>;
1172
+ src?: MaybeReactive<string>;
1173
+ type?: MaybeReactive<string>;
1174
+ fetchPriority?: MaybeReactive<"high" | "low" | "auto">;
1175
+ };
1176
+ select: {
1177
+ autoComplete?: MaybeReactive<string>;
1178
+ disabled?: MaybeReactive<boolean>;
1179
+ form?: MaybeReactive<string>;
1180
+ multiple?: MaybeReactive<boolean>;
1181
+ name?: MaybeReactive<string>;
1182
+ required?: MaybeReactive<boolean>;
1183
+ size?: MaybeReactive<number>;
1184
+ value?: MaybeReactive<string | number | readonly string[]>;
1185
+ };
1186
+ slot: {
1187
+ name?: MaybeReactive<string>;
1188
+ };
1189
+ source: {
1190
+ height?: MaybeReactive<number | string>;
1191
+ media?: MaybeReactive<string>;
1192
+ sizes?: MaybeReactive<string>;
1193
+ src?: MaybeReactive<string>;
1194
+ srcSet?: MaybeReactive<string>;
1195
+ type?: MaybeReactive<string>;
1196
+ width?: MaybeReactive<number | string>;
1197
+ };
1198
+ style: {
1199
+ media?: MaybeReactive<string>;
1200
+ scoped?: MaybeReactive<boolean>;
1201
+ };
1202
+ table: {
1203
+ cellPadding?: MaybeReactive<number | string>;
1204
+ cellSpacing?: MaybeReactive<number | string>;
1205
+ };
1206
+ td: TableCellProps;
1207
+ textarea: {
1208
+ autoComplete?: MaybeReactive<string>;
1209
+ cols?: MaybeReactive<number>;
1210
+ disabled?: MaybeReactive<boolean>;
1211
+ form?: MaybeReactive<string>;
1212
+ maxLength?: MaybeReactive<number>;
1213
+ minLength?: MaybeReactive<number>;
1214
+ name?: MaybeReactive<string>;
1215
+ placeholder?: MaybeReactive<string>;
1216
+ readOnly?: MaybeReactive<boolean>;
1217
+ required?: MaybeReactive<boolean>;
1218
+ rows?: MaybeReactive<number>;
1219
+ value?: MaybeReactive<string>;
1220
+ wrap?: MaybeReactive<"hard" | "soft" | "off">;
1221
+ };
1222
+ th: TableCellProps & {
1223
+ scope?: MaybeReactive<"row" | "col" | "rowgroup" | "colgroup">;
1224
+ abbr?: MaybeReactive<string>;
1225
+ };
1226
+ time: {
1227
+ dateTime?: MaybeReactive<string>;
1228
+ };
1229
+ track: {
1230
+ default?: MaybeReactive<boolean>;
1231
+ kind?: MaybeReactive<
1232
+ "subtitles" | "captions" | "descriptions" | "chapters" | "metadata"
1233
+ >;
1234
+ label?: MaybeReactive<string>;
1235
+ src?: MaybeReactive<string>;
1236
+ srclang?: MaybeReactive<string>;
1237
+ };
1238
+ video: MediaProps & {
1239
+ height?: MaybeReactive<number | string>;
1240
+ playsInline?: MaybeReactive<boolean>;
1241
+ poster?: MaybeReactive<string>;
1242
+ width?: MaybeReactive<number | string>;
1243
+ disablePictureInPicture?: MaybeReactive<boolean>;
1244
+ disableRemotePlayback?: MaybeReactive<boolean>;
1245
+ };
1246
+ }
1247
+
1248
+ interface MediaProps {
1249
+ autoPlay?: MaybeReactive<boolean>;
1250
+ controls?: MaybeReactive<boolean>;
1251
+ crossOrigin?: MaybeReactive<"anonymous" | "use-credentials" | "">;
1252
+ loop?: MaybeReactive<boolean>;
1253
+ muted?: MaybeReactive<boolean>;
1254
+ preload?: MaybeReactive<"none" | "metadata" | "auto" | "">;
1255
+ src?: MaybeReactive<string>;
1256
+ onAbort?: EventHandler<Event>;
1257
+ onCanPlay?: EventHandler<Event>;
1258
+ onCanPlayThrough?: EventHandler<Event>;
1259
+ onDurationChange?: EventHandler<Event>;
1260
+ onEmptied?: EventHandler<Event>;
1261
+ onEnded?: EventHandler<Event>;
1262
+ onLoadedData?: EventHandler<Event>;
1263
+ onLoadedMetadata?: EventHandler<Event>;
1264
+ onLoadStart?: EventHandler<Event>;
1265
+ onPause?: EventHandler<Event>;
1266
+ onPlay?: EventHandler<Event>;
1267
+ onPlaying?: EventHandler<Event>;
1268
+ onProgress?: EventHandler<Event>;
1269
+ onRateChange?: EventHandler<Event>;
1270
+ onSeeked?: EventHandler<Event>;
1271
+ onSeeking?: EventHandler<Event>;
1272
+ onStalled?: EventHandler<Event>;
1273
+ onSuspend?: EventHandler<Event>;
1274
+ onTimeUpdate?: EventHandler<Event>;
1275
+ onVolumeChange?: EventHandler<Event>;
1276
+ onWaiting?: EventHandler<Event>;
1277
+ }
1278
+
1279
+ interface TableCellProps {
1280
+ colSpan?: MaybeReactive<number>;
1281
+ headers?: MaybeReactive<string>;
1282
+ rowSpan?: MaybeReactive<number>;
1283
+ }
1284
+
1285
+ // =============================================================================
1286
+ // SVG Attributes
1287
+ // =============================================================================
1288
+
1289
+ interface SVGAttributes<T extends SVGElement = SVGElement>
1290
+ extends AriaAttributes, DOMEventHandlers<T> {
1291
+ // Flash-specific
1292
+ ref?: Ref<T>;
1293
+ key?: string | number;
1294
+ children?: Children;
1295
+ innerHTML?: string | object;
1296
+
1297
+ // Core SVG attributes
1298
+ id?: MaybeReactive<string>;
1299
+ class?: MaybeReactive<string>;
1300
+ className?: MaybeReactive<string>;
1301
+ style?: MaybeReactive<string | CSSProperties>;
1302
+ tabIndex?: MaybeReactive<number>;
1303
+ lang?: MaybeReactive<string>;
1304
+
1305
+ // Presentation attributes
1306
+ "alignment-baseline"?: MaybeReactive<string>;
1307
+ "baseline-shift"?: MaybeReactive<string>;
1308
+ clip?: MaybeReactive<string>;
1309
+ "clip-path"?: MaybeReactive<string>;
1310
+ "clip-rule"?: MaybeReactive<"nonzero" | "evenodd" | "inherit">;
1311
+ color?: MaybeReactive<string>;
1312
+ "color-interpolation"?: MaybeReactive<string>;
1313
+ "color-interpolation-filters"?: MaybeReactive<string>;
1314
+ cursor?: MaybeReactive<string>;
1315
+ direction?: MaybeReactive<string>;
1316
+ display?: MaybeReactive<string>;
1317
+ "dominant-baseline"?: MaybeReactive<string>;
1318
+ fill?: MaybeReactive<string>;
1319
+ "fill-opacity"?: MaybeReactive<number | string>;
1320
+ "fill-rule"?: MaybeReactive<"nonzero" | "evenodd" | "inherit">;
1321
+ filter?: MaybeReactive<string>;
1322
+ "flood-color"?: MaybeReactive<string>;
1323
+ "flood-opacity"?: MaybeReactive<number | string>;
1324
+ "font-family"?: MaybeReactive<string>;
1325
+ "font-size"?: MaybeReactive<string>;
1326
+ "font-size-adjust"?: MaybeReactive<string>;
1327
+ "font-stretch"?: MaybeReactive<string>;
1328
+ "font-style"?: MaybeReactive<string>;
1329
+ "font-variant"?: MaybeReactive<string>;
1330
+ "font-weight"?: MaybeReactive<string>;
1331
+ "glyph-orientation-horizontal"?: MaybeReactive<string>;
1332
+ "glyph-orientation-vertical"?: MaybeReactive<string>;
1333
+ "image-rendering"?: MaybeReactive<string>;
1334
+ kerning?: MaybeReactive<string>;
1335
+ "letter-spacing"?: MaybeReactive<string>;
1336
+ "lighting-color"?: MaybeReactive<string>;
1337
+ "marker-end"?: MaybeReactive<string>;
1338
+ "marker-mid"?: MaybeReactive<string>;
1339
+ "marker-start"?: MaybeReactive<string>;
1340
+ mask?: MaybeReactive<string>;
1341
+ opacity?: MaybeReactive<number | string>;
1342
+ overflow?: MaybeReactive<string>;
1343
+ "pointer-events"?: MaybeReactive<string>;
1344
+ "shape-rendering"?: MaybeReactive<string>;
1345
+ "stop-color"?: MaybeReactive<string>;
1346
+ "stop-opacity"?: MaybeReactive<number | string>;
1347
+ stroke?: MaybeReactive<string>;
1348
+ "stroke-dasharray"?: MaybeReactive<string>;
1349
+ "stroke-dashoffset"?: MaybeReactive<number | string>;
1350
+ "stroke-linecap"?: MaybeReactive<"butt" | "round" | "square" | "inherit">;
1351
+ "stroke-linejoin"?: MaybeReactive<"miter" | "round" | "bevel" | "inherit">;
1352
+ "stroke-miterlimit"?: MaybeReactive<number | string>;
1353
+ "stroke-opacity"?: MaybeReactive<number | string>;
1354
+ "stroke-width"?: MaybeReactive<number | string>;
1355
+ "text-anchor"?: MaybeReactive<"start" | "middle" | "end" | "inherit">;
1356
+ "text-decoration"?: MaybeReactive<string>;
1357
+ "text-rendering"?: MaybeReactive<string>;
1358
+ transform?: MaybeReactive<string>;
1359
+ "transform-origin"?: MaybeReactive<string>;
1360
+ "unicode-bidi"?: MaybeReactive<string>;
1361
+ "vector-effect"?: MaybeReactive<string>;
1362
+ visibility?: MaybeReactive<string>;
1363
+ "word-spacing"?: MaybeReactive<string>;
1364
+ "writing-mode"?: MaybeReactive<string>;
1365
+
1366
+ // Common SVG element attributes
1367
+ x?: MaybeReactive<number | string>;
1368
+ y?: MaybeReactive<number | string>;
1369
+ width?: MaybeReactive<number | string>;
1370
+ height?: MaybeReactive<number | string>;
1371
+ viewBox?: MaybeReactive<string>;
1372
+ preserveAspectRatio?: MaybeReactive<string>;
1373
+ xmlns?: MaybeReactive<string>;
1374
+ "xmlns:xlink"?: MaybeReactive<string>;
1375
+
1376
+ // Path
1377
+ d?: MaybeReactive<string>;
1378
+ pathLength?: MaybeReactive<number>;
1379
+
1380
+ // Circle/Ellipse
1381
+ cx?: MaybeReactive<number | string>;
1382
+ cy?: MaybeReactive<number | string>;
1383
+ r?: MaybeReactive<number | string>;
1384
+ rx?: MaybeReactive<number | string>;
1385
+ ry?: MaybeReactive<number | string>;
1386
+
1387
+ // Line
1388
+ x1?: MaybeReactive<number | string>;
1389
+ y1?: MaybeReactive<number | string>;
1390
+ x2?: MaybeReactive<number | string>;
1391
+ y2?: MaybeReactive<number | string>;
1392
+
1393
+ // Polygon/Polyline
1394
+ points?: MaybeReactive<string>;
1395
+
1396
+ // Text
1397
+ dx?: MaybeReactive<number | string>;
1398
+ dy?: MaybeReactive<number | string>;
1399
+ textLength?: MaybeReactive<number | string>;
1400
+ lengthAdjust?: MaybeReactive<"spacing" | "spacingAndGlyphs">;
1401
+
1402
+ // Use/Image
1403
+ href?: MaybeReactive<string>;
1404
+ "xlink:href"?: MaybeReactive<string>;
1405
+
1406
+ // Gradient
1407
+ gradientUnits?: MaybeReactive<"userSpaceOnUse" | "objectBoundingBox">;
1408
+ gradientTransform?: MaybeReactive<string>;
1409
+ spreadMethod?: MaybeReactive<"pad" | "reflect" | "repeat">;
1410
+ fx?: MaybeReactive<number | string>;
1411
+ fy?: MaybeReactive<number | string>;
1412
+ offset?: MaybeReactive<number | string>;
1413
+
1414
+ // Filter
1415
+ result?: MaybeReactive<string>;
1416
+ in?: MaybeReactive<string>;
1417
+ in2?: MaybeReactive<string>;
1418
+ mode?: MaybeReactive<string>;
1419
+ values?: MaybeReactive<string>;
1420
+ type?: MaybeReactive<string>;
1421
+ tableValues?: MaybeReactive<string>;
1422
+ slope?: MaybeReactive<number | string>;
1423
+ intercept?: MaybeReactive<number | string>;
1424
+ amplitude?: MaybeReactive<number | string>;
1425
+ exponent?: MaybeReactive<number | string>;
1426
+ stdDeviation?: MaybeReactive<number | string>;
1427
+ baseFrequency?: MaybeReactive<number | string>;
1428
+ numOctaves?: MaybeReactive<number>;
1429
+ seed?: MaybeReactive<number>;
1430
+ stitchTiles?: MaybeReactive<"stitch" | "noStitch">;
1431
+ scale?: MaybeReactive<number>;
1432
+ xChannelSelector?: MaybeReactive<"R" | "G" | "B" | "A">;
1433
+ yChannelSelector?: MaybeReactive<"R" | "G" | "B" | "A">;
1434
+ azimuth?: MaybeReactive<number>;
1435
+ elevation?: MaybeReactive<number>;
1436
+ surfaceScale?: MaybeReactive<number>;
1437
+ diffuseConstant?: MaybeReactive<number>;
1438
+ specularConstant?: MaybeReactive<number>;
1439
+ specularExponent?: MaybeReactive<number>;
1440
+ kernelUnitLength?: MaybeReactive<number | string>;
1441
+ order?: MaybeReactive<number | string>;
1442
+ kernelMatrix?: MaybeReactive<string>;
1443
+ divisor?: MaybeReactive<number>;
1444
+ bias?: MaybeReactive<number>;
1445
+ targetX?: MaybeReactive<number>;
1446
+ targetY?: MaybeReactive<number>;
1447
+ edgeMode?: MaybeReactive<"duplicate" | "wrap" | "none">;
1448
+ preserveAlpha?: MaybeReactive<boolean>;
1449
+ radius?: MaybeReactive<number | string>;
1450
+ k1?: MaybeReactive<number>;
1451
+ k2?: MaybeReactive<number>;
1452
+ k3?: MaybeReactive<number>;
1453
+ k4?: MaybeReactive<number>;
1454
+ operator?: MaybeReactive<string>;
1455
+
1456
+ // Marker
1457
+ markerWidth?: MaybeReactive<number | string>;
1458
+ markerHeight?: MaybeReactive<number | string>;
1459
+ refX?: MaybeReactive<number | string>;
1460
+ refY?: MaybeReactive<number | string>;
1461
+ orient?: MaybeReactive<string>;
1462
+ markerUnits?: MaybeReactive<"strokeWidth" | "userSpaceOnUse">;
1463
+
1464
+ // ClipPath/Mask
1465
+ clipPathUnits?: MaybeReactive<"userSpaceOnUse" | "objectBoundingBox">;
1466
+ maskUnits?: MaybeReactive<"userSpaceOnUse" | "objectBoundingBox">;
1467
+ maskContentUnits?: MaybeReactive<"userSpaceOnUse" | "objectBoundingBox">;
1468
+
1469
+ // Pattern
1470
+ patternUnits?: MaybeReactive<"userSpaceOnUse" | "objectBoundingBox">;
1471
+ patternContentUnits?: MaybeReactive<"userSpaceOnUse" | "objectBoundingBox">;
1472
+ patternTransform?: MaybeReactive<string>;
1473
+
1474
+ // Animation
1475
+ attributeName?: MaybeReactive<string>;
1476
+ attributeType?: MaybeReactive<string>;
1477
+ begin?: MaybeReactive<string>;
1478
+ dur?: MaybeReactive<string>;
1479
+ end?: MaybeReactive<string>;
1480
+ min?: MaybeReactive<string>;
1481
+ max?: MaybeReactive<string>;
1482
+ restart?: MaybeReactive<"always" | "whenNotActive" | "never">;
1483
+ repeatCount?: MaybeReactive<number | "indefinite">;
1484
+ repeatDur?: MaybeReactive<string>;
1485
+ calcMode?: MaybeReactive<"discrete" | "linear" | "paced" | "spline">;
1486
+ keyTimes?: MaybeReactive<string>;
1487
+ keySplines?: MaybeReactive<string>;
1488
+ from?: MaybeReactive<string>;
1489
+ to?: MaybeReactive<string>;
1490
+ by?: MaybeReactive<string>;
1491
+ additive?: MaybeReactive<"replace" | "sum">;
1492
+ accumulate?: MaybeReactive<"none" | "sum">;
1493
+
1494
+ // Allow any other attributes
1495
+ [key: string]: any;
1496
+ }
1497
+