native-document 1.0.93 → 1.0.95

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.
Files changed (37) hide show
  1. package/dist/native-document.components.min.js +667 -62
  2. package/dist/native-document.dev.js +878 -111
  3. package/dist/native-document.dev.js.map +1 -1
  4. package/dist/native-document.devtools.min.js +1 -1
  5. package/dist/native-document.min.js +1 -1
  6. package/elements.js +1 -0
  7. package/index.def.js +1086 -0
  8. package/package.json +1 -1
  9. package/src/core/elements/anchor.js +28 -20
  10. package/src/core/elements/content-formatter.js +138 -1
  11. package/src/core/elements/control/for-each-array.js +1 -1
  12. package/src/core/elements/control/for-each.js +2 -2
  13. package/src/core/elements/control/show-if.js +3 -3
  14. package/src/core/elements/control/show-when.js +2 -2
  15. package/src/core/elements/control/switch.js +1 -1
  16. package/src/core/elements/description-list.js +14 -0
  17. package/src/core/elements/form.js +188 -4
  18. package/src/core/elements/html5-semantics.js +44 -1
  19. package/src/core/elements/img.js +22 -10
  20. package/src/core/elements/index.js +5 -0
  21. package/src/core/elements/interactive.js +19 -1
  22. package/src/core/elements/list.js +28 -1
  23. package/src/core/elements/medias.js +29 -0
  24. package/src/core/elements/meta-data.js +34 -0
  25. package/src/core/elements/table.js +59 -0
  26. package/src/core/utils/helpers.js +7 -2
  27. package/src/core/utils/memoize.js +1 -1
  28. package/src/core/wrappers/DocumentObserver.js +102 -31
  29. package/src/core/wrappers/ElementCreator.js +5 -0
  30. package/src/core/wrappers/HtmlElementWrapper.js +2 -2
  31. package/src/core/wrappers/NDElement.js +33 -2
  32. package/src/core/wrappers/TemplateCloner.js +1 -1
  33. package/src/core/wrappers/prototypes/nd-element.transition.extensions.js +83 -0
  34. package/types/elements.d.ts +1073 -113
  35. package/types/forms.d.ts +85 -48
  36. package/types/images.d.ts +16 -9
  37. package/types/nd-element.d.ts +6 -0
@@ -1,8 +1,11 @@
1
- // DOM elements and components type definitions - Version complète
1
+ // DOM elements and components type definitions
2
2
  import { ObservableItem } from './observable';
3
- import {BindingHydrator} from "./template-cloner";
4
- import {NDElement} from "./nd-element";
3
+ import { BindingHydrator } from "./template-cloner";
4
+ import { NDElement } from "./nd-element";
5
5
 
6
+ // ─────────────────────────────────────────────
7
+ // Base types
8
+ // ─────────────────────────────────────────────
6
9
 
7
10
  export type ValidChild =
8
11
  | string
@@ -18,128 +21,1085 @@ export type ValidChild =
18
21
  | ValidChild[]
19
22
  | ((...args: any[]) => ValidChild);
20
23
 
24
+ type Observable<T> = ObservableItem<T> | T;
21
25
 
22
- export type Attributes = Record<string, any> & {
23
- class?: string | Record<string, boolean | ObservableItem<boolean>>;
24
- style?: string | Record<string, string | ObservableItem<string>>;
25
- };
26
+ type NdClassMap = Record<string, Observable<boolean>>;
27
+ interface NdStyleMap {
28
+ accentColor?: Observable<string> | string;
29
+ 'accent-color'?: Observable<string> | string;
30
+ alignContent?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string;
31
+ 'align-content'?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string;
32
+ alignItems?: Observable<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
33
+ 'align-items'?: Observable<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
34
+ alignSelf?: Observable<'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
35
+ 'align-self'?: Observable<'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
36
+ animation?: Observable<string> | string;
37
+ animationComposition?: Observable<string> | string;
38
+ 'animation-composition'?: Observable<string> | string;
39
+ animationDelay?: Observable<string> | string;
40
+ 'animation-delay'?: Observable<string> | string;
41
+ animationDirection?: Observable<'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string> | 'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string;
42
+ 'animation-direction'?: Observable<'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string> | 'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string;
43
+ animationDuration?: Observable<string> | string;
44
+ 'animation-duration'?: Observable<string> | string;
45
+ animationFillMode?: Observable<'none' | 'forwards' | 'backwards' | 'both' | string> | 'none' | 'forwards' | 'backwards' | 'both' | string;
46
+ 'animation-fill-mode'?: Observable<'none' | 'forwards' | 'backwards' | 'both' | string> | 'none' | 'forwards' | 'backwards' | 'both' | string;
47
+ animationIterationCount?: Observable<string> | string;
48
+ 'animation-iteration-count'?: Observable<string> | string;
49
+ animationName?: Observable<string> | string;
50
+ 'animation-name'?: Observable<string> | string;
51
+ animationPlayState?: Observable<'running' | 'paused' | string> | 'running' | 'paused' | string;
52
+ 'animation-play-state'?: Observable<'running' | 'paused' | string> | 'running' | 'paused' | string;
53
+ animationTimingFunction?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
54
+ 'animation-timing-function'?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
55
+ appearance?: Observable<'none' | 'auto' | 'button' | 'textfield' | 'menulist' | string> | 'none' | 'auto' | 'button' | 'textfield' | 'menulist' | string;
56
+ aspectRatio?: Observable<string> | string;
57
+ 'aspect-ratio'?: Observable<string> | string;
58
+ backdropFilter?: Observable<string> | string;
59
+ 'backdrop-filter'?: Observable<string> | string;
60
+ backfaceVisibility?: Observable<'visible' | 'hidden' | string> | 'visible' | 'hidden' | string;
61
+ 'backface-visibility'?: Observable<'visible' | 'hidden' | string> | 'visible' | 'hidden' | string;
62
+ background?: Observable<string> | string;
63
+ backgroundAttachment?: Observable<'scroll' | 'fixed' | 'local' | string> | 'scroll' | 'fixed' | 'local' | string;
64
+ 'background-attachment'?: Observable<'scroll' | 'fixed' | 'local' | string> | 'scroll' | 'fixed' | 'local' | string;
65
+ backgroundBlendMode?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
66
+ 'background-blend-mode'?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
67
+ backgroundClip?: Observable<'border-box' | 'padding-box' | 'content-box' | 'text' | string> | 'border-box' | 'padding-box' | 'content-box' | 'text' | string;
68
+ 'background-clip'?: Observable<'border-box' | 'padding-box' | 'content-box' | 'text' | string> | 'border-box' | 'padding-box' | 'content-box' | 'text' | string;
69
+ backgroundColor?: Observable<string> | string;
70
+ 'background-color'?: Observable<string> | string;
71
+ backgroundImage?: Observable<string> | string;
72
+ 'background-image'?: Observable<string> | string;
73
+ backgroundOrigin?: Observable<'border-box' | 'padding-box' | 'content-box' | string> | 'border-box' | 'padding-box' | 'content-box' | string;
74
+ 'background-origin'?: Observable<'border-box' | 'padding-box' | 'content-box' | string> | 'border-box' | 'padding-box' | 'content-box' | string;
75
+ backgroundPosition?: Observable<string> | string;
76
+ 'background-position'?: Observable<string> | string;
77
+ backgroundPositionX?: Observable<string> | string;
78
+ 'background-position-x'?: Observable<string> | string;
79
+ backgroundPositionY?: Observable<string> | string;
80
+ 'background-position-y'?: Observable<string> | string;
81
+ backgroundRepeat?: Observable<'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string> | 'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string;
82
+ 'background-repeat'?: Observable<'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string> | 'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string;
83
+ backgroundSize?: Observable<'cover' | 'contain' | 'auto' | string> | 'cover' | 'contain' | 'auto' | string;
84
+ 'background-size'?: Observable<'cover' | 'contain' | 'auto' | string> | 'cover' | 'contain' | 'auto' | string;
85
+ border?: Observable<string> | string;
86
+ borderBlock?: Observable<string> | string;
87
+ 'border-block'?: Observable<string> | string;
88
+ borderBlockEnd?: Observable<string> | string;
89
+ 'border-block-end'?: Observable<string> | string;
90
+ borderBlockStart?: Observable<string> | string;
91
+ 'border-block-start'?: Observable<string> | string;
92
+ borderBottom?: Observable<string> | string;
93
+ 'border-bottom'?: Observable<string> | string;
94
+ borderBottomColor?: Observable<string> | string;
95
+ 'border-bottom-color'?: Observable<string> | string;
96
+ borderBottomLeftRadius?: Observable<string> | string;
97
+ 'border-bottom-left-radius'?: Observable<string> | string;
98
+ borderBottomRightRadius?: Observable<string> | string;
99
+ 'border-bottom-right-radius'?: Observable<string> | string;
100
+ borderBottomStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
101
+ 'border-bottom-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
102
+ borderBottomWidth?: Observable<string> | string;
103
+ 'border-bottom-width'?: Observable<string> | string;
104
+ borderCollapse?: Observable<'collapse' | 'separate' | string> | 'collapse' | 'separate' | string;
105
+ 'border-collapse'?: Observable<'collapse' | 'separate' | string> | 'collapse' | 'separate' | string;
106
+ borderColor?: Observable<string> | string;
107
+ 'border-color'?: Observable<string> | string;
108
+ borderEndEndRadius?: Observable<string> | string;
109
+ 'border-end-end-radius'?: Observable<string> | string;
110
+ borderEndStartRadius?: Observable<string> | string;
111
+ 'border-end-start-radius'?: Observable<string> | string;
112
+ borderImage?: Observable<string> | string;
113
+ 'border-image'?: Observable<string> | string;
114
+ borderImageOutset?: Observable<string> | string;
115
+ 'border-image-outset'?: Observable<string> | string;
116
+ borderImageRepeat?: Observable<'stretch' | 'repeat' | 'round' | 'space' | string> | 'stretch' | 'repeat' | 'round' | 'space' | string;
117
+ 'border-image-repeat'?: Observable<'stretch' | 'repeat' | 'round' | 'space' | string> | 'stretch' | 'repeat' | 'round' | 'space' | string;
118
+ borderImageSlice?: Observable<string> | string;
119
+ 'border-image-slice'?: Observable<string> | string;
120
+ borderImageSource?: Observable<string> | string;
121
+ 'border-image-source'?: Observable<string> | string;
122
+ borderImageWidth?: Observable<string> | string;
123
+ 'border-image-width'?: Observable<string> | string;
124
+ borderInline?: Observable<string> | string;
125
+ 'border-inline'?: Observable<string> | string;
126
+ borderInlineEnd?: Observable<string> | string;
127
+ 'border-inline-end'?: Observable<string> | string;
128
+ borderInlineStart?: Observable<string> | string;
129
+ 'border-inline-start'?: Observable<string> | string;
130
+ borderLeft?: Observable<string> | string;
131
+ 'border-left'?: Observable<string> | string;
132
+ borderLeftColor?: Observable<string> | string;
133
+ 'border-left-color'?: Observable<string> | string;
134
+ borderLeftStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
135
+ 'border-left-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
136
+ borderLeftWidth?: Observable<string> | string;
137
+ 'border-left-width'?: Observable<string> | string;
138
+ borderRadius?: Observable<string> | string;
139
+ 'border-radius'?: Observable<string> | string;
140
+ borderRight?: Observable<string> | string;
141
+ 'border-right'?: Observable<string> | string;
142
+ borderRightColor?: Observable<string> | string;
143
+ 'border-right-color'?: Observable<string> | string;
144
+ borderRightStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
145
+ 'border-right-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
146
+ borderRightWidth?: Observable<string> | string;
147
+ 'border-right-width'?: Observable<string> | string;
148
+ borderSpacing?: Observable<string> | string;
149
+ 'border-spacing'?: Observable<string> | string;
150
+ borderStartEndRadius?: Observable<string> | string;
151
+ 'border-start-end-radius'?: Observable<string> | string;
152
+ borderStartStartRadius?: Observable<string> | string;
153
+ 'border-start-start-radius'?: Observable<string> | string;
154
+ borderStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
155
+ 'border-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
156
+ borderTop?: Observable<string> | string;
157
+ 'border-top'?: Observable<string> | string;
158
+ borderTopColor?: Observable<string> | string;
159
+ 'border-top-color'?: Observable<string> | string;
160
+ borderTopLeftRadius?: Observable<string> | string;
161
+ 'border-top-left-radius'?: Observable<string> | string;
162
+ borderTopRightRadius?: Observable<string> | string;
163
+ 'border-top-right-radius'?: Observable<string> | string;
164
+ borderTopStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
165
+ 'border-top-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
166
+ borderTopWidth?: Observable<string> | string;
167
+ 'border-top-width'?: Observable<string> | string;
168
+ borderWidth?: Observable<string> | string;
169
+ 'border-width'?: Observable<string> | string;
170
+ bottom?: Observable<string> | string;
171
+ boxDecorationBreak?: Observable<'slice' | 'clone' | string> | 'slice' | 'clone' | string;
172
+ 'box-decoration-break'?: Observable<'slice' | 'clone' | string> | 'slice' | 'clone' | string;
173
+ boxShadow?: Observable<string> | string;
174
+ 'box-shadow'?: Observable<string> | string;
175
+ boxSizing?: Observable<'border-box' | 'content-box' | string> | 'border-box' | 'content-box' | string;
176
+ 'box-sizing'?: Observable<'border-box' | 'content-box' | string> | 'border-box' | 'content-box' | string;
177
+ breakAfter?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
178
+ 'break-after'?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
179
+ breakBefore?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
180
+ 'break-before'?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
181
+ breakInside?: Observable<'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string> | 'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string;
182
+ 'break-inside'?: Observable<'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string> | 'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string;
183
+ captionSide?: Observable<'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string> | 'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string;
184
+ 'caption-side'?: Observable<'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string> | 'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string;
185
+ caretColor?: Observable<string> | string;
186
+ 'caret-color'?: Observable<string> | string;
187
+ clear?: Observable<'left' | 'right' | 'both' | 'none' | 'inline-start' | 'inline-end' | string> | 'left' | 'right' | 'both' | 'none' | 'inline-start' | 'inline-end' | string;
188
+ clipPath?: Observable<string> | string;
189
+ 'clip-path'?: Observable<string> | string;
190
+ clipRule?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
191
+ 'clip-rule'?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
192
+ color?: Observable<string> | string;
193
+ colorRendering?: Observable<'auto' | 'optimizeSpeed' | 'optimizeQuality' | string> | 'auto' | 'optimizeSpeed' | 'optimizeQuality' | string;
194
+ 'color-rendering'?: Observable<'auto' | 'optimizeSpeed' | 'optimizeQuality' | string> | 'auto' | 'optimizeSpeed' | 'optimizeQuality' | string;
195
+ colorScheme?: Observable<'normal' | 'light' | 'dark' | 'light dark' | string> | 'normal' | 'light' | 'dark' | 'light dark' | string;
196
+ 'color-scheme'?: Observable<'normal' | 'light' | 'dark' | 'light dark' | string> | 'normal' | 'light' | 'dark' | 'light dark' | string;
197
+ columnCount?: Observable<string | number> | string | number;
198
+ 'column-count'?: Observable<string | number> | string | number;
199
+ columnFill?: Observable<'balance' | 'auto' | 'balance-all' | string> | 'balance' | 'auto' | 'balance-all' | string;
200
+ 'column-fill'?: Observable<'balance' | 'auto' | 'balance-all' | string> | 'balance' | 'auto' | 'balance-all' | string;
201
+ columnGap?: Observable<string> | string;
202
+ 'column-gap'?: Observable<string> | string;
203
+ columnRule?: Observable<string> | string;
204
+ 'column-rule'?: Observable<string> | string;
205
+ columnRuleColor?: Observable<string> | string;
206
+ 'column-rule-color'?: Observable<string> | string;
207
+ columnRuleStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
208
+ 'column-rule-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
209
+ columnRuleWidth?: Observable<string> | string;
210
+ 'column-rule-width'?: Observable<string> | string;
211
+ columnSpan?: Observable<'none' | 'all' | string> | 'none' | 'all' | string;
212
+ 'column-span'?: Observable<'none' | 'all' | string> | 'none' | 'all' | string;
213
+ columnWidth?: Observable<string> | string;
214
+ 'column-width'?: Observable<string> | string;
215
+ columns?: Observable<string> | string;
216
+ contain?: Observable<'none' | 'strict' | 'content' | 'size' | 'layout' | 'style' | 'paint' | string> | 'none' | 'strict' | 'content' | 'size' | 'layout' | 'style' | 'paint' | string;
217
+ content?: Observable<string> | string;
218
+ contentVisibility?: Observable<'visible' | 'hidden' | 'auto' | string> | 'visible' | 'hidden' | 'auto' | string;
219
+ 'content-visibility'?: Observable<'visible' | 'hidden' | 'auto' | string> | 'visible' | 'hidden' | 'auto' | string;
220
+ counterIncrement?: Observable<string> | string;
221
+ 'counter-increment'?: Observable<string> | string;
222
+ counterReset?: Observable<string> | string;
223
+ 'counter-reset'?: Observable<string> | string;
224
+ counterSet?: Observable<string> | string;
225
+ 'counter-set'?: Observable<string> | string;
226
+ cursor?: Observable<'auto' | 'default' | 'none' | 'pointer' | 'crosshair' | 'move' | 'grab' | 'grabbing' | 'text' | 'wait' | 'help' | 'progress' | 'not-allowed' | 'no-drop' | 'copy' | 'alias' | 'zoom-in' | 'zoom-out' | 'col-resize' | 'row-resize' | 'n-resize' | 's-resize' | 'e-resize' | 'w-resize' | 'ne-resize' | 'nw-resize' | 'se-resize' | 'sw-resize' | 'ew-resize' | 'ns-resize' | 'nesw-resize' | 'nwse-resize' | 'cell' | 'context-menu' | 'vertical-text' | string> | 'auto' | 'default' | 'none' | 'pointer' | 'crosshair' | 'move' | 'grab' | 'grabbing' | 'text' | 'wait' | 'help' | 'progress' | 'not-allowed' | 'no-drop' | 'copy' | 'alias' | 'zoom-in' | 'zoom-out' | 'col-resize' | 'row-resize' | 'n-resize' | 's-resize' | 'e-resize' | 'w-resize' | 'ne-resize' | 'nw-resize' | 'se-resize' | 'sw-resize' | 'ew-resize' | 'ns-resize' | 'nesw-resize' | 'nwse-resize' | 'cell' | 'context-menu' | 'vertical-text' | string;
227
+ direction?: Observable<'ltr' | 'rtl' | string> | 'ltr' | 'rtl' | string;
228
+ display?: Observable<'block' | 'flex' | 'grid' | 'inline' | 'inline-flex' | 'inline-block' | 'inline-grid' | 'none' | 'contents' | 'table' | 'table-cell' | 'table-row' | 'list-item' | 'flow-root' | string> | 'block' | 'flex' | 'grid' | 'inline' | 'inline-flex' | 'inline-block' | 'inline-grid' | 'none' | 'contents' | 'table' | 'table-cell' | 'table-row' | 'list-item' | 'flow-root' | string;
229
+ dominantBaseline?: Observable<'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string> | 'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string;
230
+ 'dominant-baseline'?: Observable<'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string> | 'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string;
231
+ emptyCells?: Observable<'show' | 'hide' | string> | 'show' | 'hide' | string;
232
+ 'empty-cells'?: Observable<'show' | 'hide' | string> | 'show' | 'hide' | string;
233
+ fill?: Observable<string> | string;
234
+ fillOpacity?: Observable<string | number> | string | number;
235
+ 'fill-opacity'?: Observable<string | number> | string | number;
236
+ fillRule?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
237
+ 'fill-rule'?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
238
+ filter?: Observable<string> | string;
239
+ flex?: Observable<string> | string;
240
+ flexBasis?: Observable<string> | string;
241
+ 'flex-basis'?: Observable<string> | string;
242
+ flexDirection?: Observable<'row' | 'column' | 'row-reverse' | 'column-reverse' | string> | 'row' | 'column' | 'row-reverse' | 'column-reverse' | string;
243
+ 'flex-direction'?: Observable<'row' | 'column' | 'row-reverse' | 'column-reverse' | string> | 'row' | 'column' | 'row-reverse' | 'column-reverse' | string;
244
+ flexFlow?: Observable<string> | string;
245
+ 'flex-flow'?: Observable<string> | string;
246
+ flexGrow?: Observable<string | number> | string | number;
247
+ 'flex-grow'?: Observable<string | number> | string | number;
248
+ flexShrink?: Observable<string | number> | string | number;
249
+ 'flex-shrink'?: Observable<string | number> | string | number;
250
+ flexWrap?: Observable<'nowrap' | 'wrap' | 'wrap-reverse' | string> | 'nowrap' | 'wrap' | 'wrap-reverse' | string;
251
+ 'flex-wrap'?: Observable<'nowrap' | 'wrap' | 'wrap-reverse' | string> | 'nowrap' | 'wrap' | 'wrap-reverse' | string;
252
+ float?: Observable<'left' | 'right' | 'none' | 'inline-start' | 'inline-end' | string> | 'left' | 'right' | 'none' | 'inline-start' | 'inline-end' | string;
253
+ font?: Observable<string> | string;
254
+ fontFamily?: Observable<string> | string;
255
+ 'font-family'?: Observable<string> | string;
256
+ fontFeatureSettings?: Observable<string> | string;
257
+ 'font-feature-settings'?: Observable<string> | string;
258
+ fontKerning?: Observable<'auto' | 'normal' | 'none' | string> | 'auto' | 'normal' | 'none' | string;
259
+ 'font-kerning'?: Observable<'auto' | 'normal' | 'none' | string> | 'auto' | 'normal' | 'none' | string;
260
+ fontOpticalSizing?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
261
+ 'font-optical-sizing'?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
262
+ fontSize?: Observable<string> | string;
263
+ 'font-size'?: Observable<string> | string;
264
+ fontSizeAdjust?: Observable<string> | string;
265
+ 'font-size-adjust'?: Observable<string> | string;
266
+ fontStretch?: Observable<'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string> | 'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string;
267
+ 'font-stretch'?: Observable<'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string> | 'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string;
268
+ fontStyle?: Observable<'normal' | 'italic' | 'oblique' | string> | 'normal' | 'italic' | 'oblique' | string;
269
+ 'font-style'?: Observable<'normal' | 'italic' | 'oblique' | string> | 'normal' | 'italic' | 'oblique' | string;
270
+ fontVariant?: Observable<'normal' | 'small-caps' | string> | 'normal' | 'small-caps' | string;
271
+ 'font-variant'?: Observable<'normal' | 'small-caps' | string> | 'normal' | 'small-caps' | string;
272
+ fontVariationSettings?: Observable<string> | string;
273
+ 'font-variation-settings'?: Observable<string> | string;
274
+ fontWeight?: Observable<'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string> | 'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string;
275
+ 'font-weight'?: Observable<'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string> | 'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string;
276
+ forcedColorAdjust?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
277
+ 'forced-color-adjust'?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
278
+ gap?: Observable<string> | string;
279
+ grid?: Observable<string> | string;
280
+ gridArea?: Observable<string> | string;
281
+ 'grid-area'?: Observable<string> | string;
282
+ gridAutoColumns?: Observable<string> | string;
283
+ 'grid-auto-columns'?: Observable<string> | string;
284
+ gridAutoFlow?: Observable<'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string> | 'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string;
285
+ 'grid-auto-flow'?: Observable<'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string> | 'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string;
286
+ gridAutoRows?: Observable<string> | string;
287
+ 'grid-auto-rows'?: Observable<string> | string;
288
+ gridColumn?: Observable<string> | string;
289
+ 'grid-column'?: Observable<string> | string;
290
+ gridColumnEnd?: Observable<string> | string;
291
+ 'grid-column-end'?: Observable<string> | string;
292
+ gridColumnStart?: Observable<string> | string;
293
+ 'grid-column-start'?: Observable<string> | string;
294
+ gridRow?: Observable<string> | string;
295
+ 'grid-row'?: Observable<string> | string;
296
+ gridRowEnd?: Observable<string> | string;
297
+ 'grid-row-end'?: Observable<string> | string;
298
+ gridRowStart?: Observable<string> | string;
299
+ 'grid-row-start'?: Observable<string> | string;
300
+ gridTemplate?: Observable<string> | string;
301
+ 'grid-template'?: Observable<string> | string;
302
+ gridTemplateAreas?: Observable<string> | string;
303
+ 'grid-template-areas'?: Observable<string> | string;
304
+ gridTemplateColumns?: Observable<string> | string;
305
+ 'grid-template-columns'?: Observable<string> | string;
306
+ gridTemplateRows?: Observable<string> | string;
307
+ 'grid-template-rows'?: Observable<string> | string;
308
+ height?: Observable<string> | string;
309
+ hyphenateCharacter?: Observable<string> | string;
310
+ 'hyphenate-character'?: Observable<string> | string;
311
+ hyphens?: Observable<'none' | 'manual' | 'auto' | string> | 'none' | 'manual' | 'auto' | string;
312
+ imageOrientation?: Observable<'none' | 'from-image' | string> | 'none' | 'from-image' | string;
313
+ 'image-orientation'?: Observable<'none' | 'from-image' | string> | 'none' | 'from-image' | string;
314
+ imageRendering?: Observable<'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string> | 'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string;
315
+ 'image-rendering'?: Observable<'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string> | 'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string;
316
+ inset?: Observable<string> | string;
317
+ insetBlock?: Observable<string> | string;
318
+ 'inset-block'?: Observable<string> | string;
319
+ insetBlockEnd?: Observable<string> | string;
320
+ 'inset-block-end'?: Observable<string> | string;
321
+ insetBlockStart?: Observable<string> | string;
322
+ 'inset-block-start'?: Observable<string> | string;
323
+ insetInline?: Observable<string> | string;
324
+ 'inset-inline'?: Observable<string> | string;
325
+ insetInlineEnd?: Observable<string> | string;
326
+ 'inset-inline-end'?: Observable<string> | string;
327
+ insetInlineStart?: Observable<string> | string;
328
+ 'inset-inline-start'?: Observable<string> | string;
329
+ isolation?: Observable<'auto' | 'isolate' | string> | 'auto' | 'isolate' | string;
330
+ justifyContent?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string;
331
+ 'justify-content'?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string;
332
+ justifyItems?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
333
+ 'justify-items'?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
334
+ justifySelf?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
335
+ 'justify-self'?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
336
+ left?: Observable<string> | string;
337
+ letterSpacing?: Observable<string> | string;
338
+ 'letter-spacing'?: Observable<string> | string;
339
+ lineBreak?: Observable<'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string> | 'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string;
340
+ 'line-break'?: Observable<'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string> | 'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string;
341
+ lineHeight?: Observable<string> | string;
342
+ 'line-height'?: Observable<string> | string;
343
+ listStyle?: Observable<string> | string;
344
+ 'list-style'?: Observable<string> | string;
345
+ listStyleImage?: Observable<string> | string;
346
+ 'list-style-image'?: Observable<string> | string;
347
+ listStylePosition?: Observable<'inside' | 'outside' | string> | 'inside' | 'outside' | string;
348
+ 'list-style-position'?: Observable<'inside' | 'outside' | string> | 'inside' | 'outside' | string;
349
+ listStyleType?: Observable<'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string> | 'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string;
350
+ 'list-style-type'?: Observable<'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string> | 'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string;
351
+ margin?: Observable<string> | string;
352
+ marginBlock?: Observable<string> | string;
353
+ 'margin-block'?: Observable<string> | string;
354
+ marginBlockEnd?: Observable<string> | string;
355
+ 'margin-block-end'?: Observable<string> | string;
356
+ marginBlockStart?: Observable<string> | string;
357
+ 'margin-block-start'?: Observable<string> | string;
358
+ marginBottom?: Observable<string> | string;
359
+ 'margin-bottom'?: Observable<string> | string;
360
+ marginInline?: Observable<string> | string;
361
+ 'margin-inline'?: Observable<string> | string;
362
+ marginInlineEnd?: Observable<string> | string;
363
+ 'margin-inline-end'?: Observable<string> | string;
364
+ marginInlineStart?: Observable<string> | string;
365
+ 'margin-inline-start'?: Observable<string> | string;
366
+ marginLeft?: Observable<string> | string;
367
+ 'margin-left'?: Observable<string> | string;
368
+ marginRight?: Observable<string> | string;
369
+ 'margin-right'?: Observable<string> | string;
370
+ marginTop?: Observable<string> | string;
371
+ 'margin-top'?: Observable<string> | string;
372
+ markerEnd?: Observable<string> | string;
373
+ 'marker-end'?: Observable<string> | string;
374
+ markerMid?: Observable<string> | string;
375
+ 'marker-mid'?: Observable<string> | string;
376
+ markerStart?: Observable<string> | string;
377
+ 'marker-start'?: Observable<string> | string;
378
+ mask?: Observable<string> | string;
379
+ maskClip?: Observable<string> | string;
380
+ 'mask-clip'?: Observable<string> | string;
381
+ maskComposite?: Observable<string> | string;
382
+ 'mask-composite'?: Observable<string> | string;
383
+ maskImage?: Observable<string> | string;
384
+ 'mask-image'?: Observable<string> | string;
385
+ maskMode?: Observable<string> | string;
386
+ 'mask-mode'?: Observable<string> | string;
387
+ maskOrigin?: Observable<string> | string;
388
+ 'mask-origin'?: Observable<string> | string;
389
+ maskPosition?: Observable<string> | string;
390
+ 'mask-position'?: Observable<string> | string;
391
+ maskRepeat?: Observable<string> | string;
392
+ 'mask-repeat'?: Observable<string> | string;
393
+ maskSize?: Observable<string> | string;
394
+ 'mask-size'?: Observable<string> | string;
395
+ maxHeight?: Observable<string> | string;
396
+ 'max-height'?: Observable<string> | string;
397
+ maxWidth?: Observable<string> | string;
398
+ 'max-width'?: Observable<string> | string;
399
+ minHeight?: Observable<string> | string;
400
+ 'min-height'?: Observable<string> | string;
401
+ minWidth?: Observable<string> | string;
402
+ 'min-width'?: Observable<string> | string;
403
+ mixBlendMode?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
404
+ 'mix-blend-mode'?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
405
+ objectFit?: Observable<'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string> | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string;
406
+ 'object-fit'?: Observable<'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string> | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string;
407
+ objectPosition?: Observable<string> | string;
408
+ 'object-position'?: Observable<string> | string;
409
+ offset?: Observable<string> | string;
410
+ offsetAnchor?: Observable<string> | string;
411
+ 'offset-anchor'?: Observable<string> | string;
412
+ offsetDistance?: Observable<string> | string;
413
+ 'offset-distance'?: Observable<string> | string;
414
+ offsetPath?: Observable<string> | string;
415
+ 'offset-path'?: Observable<string> | string;
416
+ offsetRotate?: Observable<string> | string;
417
+ 'offset-rotate'?: Observable<string> | string;
418
+ opacity?: Observable<string | number> | string | number;
419
+ order?: Observable<string | number> | string | number;
420
+ orphans?: Observable<string | number> | string | number;
421
+ outline?: Observable<string> | string;
422
+ outlineColor?: Observable<string> | string;
423
+ 'outline-color'?: Observable<string> | string;
424
+ outlineOffset?: Observable<string> | string;
425
+ 'outline-offset'?: Observable<string> | string;
426
+ outlineStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
427
+ 'outline-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
428
+ outlineWidth?: Observable<string> | string;
429
+ 'outline-width'?: Observable<string> | string;
430
+ overflow?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
431
+ overflowClip?: Observable<string> | string;
432
+ 'overflow-clip'?: Observable<string> | string;
433
+ overflowWrap?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
434
+ 'overflow-wrap'?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
435
+ overflowX?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
436
+ 'overflow-x'?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
437
+ overflowY?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
438
+ 'overflow-y'?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
439
+ overscrollBehavior?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
440
+ 'overscroll-behavior'?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
441
+ overscrollBehaviorX?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
442
+ 'overscroll-behavior-x'?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
443
+ overscrollBehaviorY?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
444
+ 'overscroll-behavior-y'?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
445
+ padding?: Observable<string> | string;
446
+ paddingBlock?: Observable<string> | string;
447
+ 'padding-block'?: Observable<string> | string;
448
+ paddingBlockEnd?: Observable<string> | string;
449
+ 'padding-block-end'?: Observable<string> | string;
450
+ paddingBlockStart?: Observable<string> | string;
451
+ 'padding-block-start'?: Observable<string> | string;
452
+ paddingBottom?: Observable<string> | string;
453
+ 'padding-bottom'?: Observable<string> | string;
454
+ paddingInline?: Observable<string> | string;
455
+ 'padding-inline'?: Observable<string> | string;
456
+ paddingInlineEnd?: Observable<string> | string;
457
+ 'padding-inline-end'?: Observable<string> | string;
458
+ paddingInlineStart?: Observable<string> | string;
459
+ 'padding-inline-start'?: Observable<string> | string;
460
+ paddingLeft?: Observable<string> | string;
461
+ 'padding-left'?: Observable<string> | string;
462
+ paddingRight?: Observable<string> | string;
463
+ 'padding-right'?: Observable<string> | string;
464
+ paddingTop?: Observable<string> | string;
465
+ 'padding-top'?: Observable<string> | string;
466
+ pageBreakAfter?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
467
+ 'page-break-after'?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
468
+ pageBreakBefore?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
469
+ 'page-break-before'?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
470
+ pageBreakInside?: Observable<'auto' | 'avoid' | string> | 'auto' | 'avoid' | string;
471
+ 'page-break-inside'?: Observable<'auto' | 'avoid' | string> | 'auto' | 'avoid' | string;
472
+ perspective?: Observable<string> | string;
473
+ perspectiveOrigin?: Observable<string> | string;
474
+ 'perspective-origin'?: Observable<string> | string;
475
+ placeContent?: Observable<string> | string;
476
+ 'place-content'?: Observable<string> | string;
477
+ placeItems?: Observable<string> | string;
478
+ 'place-items'?: Observable<string> | string;
479
+ placeSelf?: Observable<string> | string;
480
+ 'place-self'?: Observable<string> | string;
481
+ pointerEvents?: Observable<'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string> | 'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string;
482
+ 'pointer-events'?: Observable<'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string> | 'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string;
483
+ position?: Observable<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | string> | 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | string;
484
+ printColorAdjust?: Observable<'economy' | 'exact' | string> | 'economy' | 'exact' | string;
485
+ 'print-color-adjust'?: Observable<'economy' | 'exact' | string> | 'economy' | 'exact' | string;
486
+ quotes?: Observable<string> | string;
487
+ resize?: Observable<'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline' | string> | 'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline' | string;
488
+ right?: Observable<string> | string;
489
+ rotate?: Observable<string> | string;
490
+ rowGap?: Observable<string> | string;
491
+ 'row-gap'?: Observable<string> | string;
492
+ scale?: Observable<string> | string;
493
+ scrollBehavior?: Observable<'auto' | 'smooth' | string> | 'auto' | 'smooth' | string;
494
+ 'scroll-behavior'?: Observable<'auto' | 'smooth' | string> | 'auto' | 'smooth' | string;
495
+ scrollMargin?: Observable<string> | string;
496
+ 'scroll-margin'?: Observable<string> | string;
497
+ scrollPadding?: Observable<string> | string;
498
+ 'scroll-padding'?: Observable<string> | string;
499
+ scrollSnapAlign?: Observable<'none' | 'start' | 'end' | 'center' | string> | 'none' | 'start' | 'end' | 'center' | string;
500
+ 'scroll-snap-align'?: Observable<'none' | 'start' | 'end' | 'center' | string> | 'none' | 'start' | 'end' | 'center' | string;
501
+ scrollSnapStop?: Observable<'normal' | 'always' | string> | 'normal' | 'always' | string;
502
+ 'scroll-snap-stop'?: Observable<'normal' | 'always' | string> | 'normal' | 'always' | string;
503
+ scrollSnapType?: Observable<'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string> | 'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string;
504
+ 'scroll-snap-type'?: Observable<'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string> | 'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string;
505
+ shapeRendering?: Observable<'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string;
506
+ 'shape-rendering'?: Observable<'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string;
507
+ stroke?: Observable<string> | string;
508
+ strokeDasharray?: Observable<string> | string;
509
+ 'stroke-dasharray'?: Observable<string> | string;
510
+ strokeDashoffset?: Observable<string> | string;
511
+ 'stroke-dashoffset'?: Observable<string> | string;
512
+ strokeLinecap?: Observable<'butt' | 'round' | 'square' | string> | 'butt' | 'round' | 'square' | string;
513
+ 'stroke-linecap'?: Observable<'butt' | 'round' | 'square' | string> | 'butt' | 'round' | 'square' | string;
514
+ strokeLinejoin?: Observable<'miter' | 'round' | 'bevel' | string> | 'miter' | 'round' | 'bevel' | string;
515
+ 'stroke-linejoin'?: Observable<'miter' | 'round' | 'bevel' | string> | 'miter' | 'round' | 'bevel' | string;
516
+ strokeMiterlimit?: Observable<string | number> | string | number;
517
+ 'stroke-miterlimit'?: Observable<string | number> | string | number;
518
+ strokeOpacity?: Observable<string | number> | string | number;
519
+ 'stroke-opacity'?: Observable<string | number> | string | number;
520
+ strokeWidth?: Observable<string> | string;
521
+ 'stroke-width'?: Observable<string> | string;
522
+ tabSize?: Observable<string | number> | string | number;
523
+ 'tab-size'?: Observable<string | number> | string | number;
524
+ tableLayout?: Observable<'auto' | 'fixed' | string> | 'auto' | 'fixed' | string;
525
+ 'table-layout'?: Observable<'auto' | 'fixed' | string> | 'auto' | 'fixed' | string;
526
+ textAlign?: Observable<'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string> | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string;
527
+ 'text-align'?: Observable<'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string> | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string;
528
+ textAlignLast?: Observable<'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string> | 'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string;
529
+ 'text-align-last'?: Observable<'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string> | 'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string;
530
+ textAnchor?: Observable<'start' | 'middle' | 'end' | string> | 'start' | 'middle' | 'end' | string;
531
+ 'text-anchor'?: Observable<'start' | 'middle' | 'end' | string> | 'start' | 'middle' | 'end' | string;
532
+ textDecoration?: Observable<'none' | 'underline' | 'overline' | 'line-through' | string> | 'none' | 'underline' | 'overline' | 'line-through' | string;
533
+ 'text-decoration'?: Observable<'none' | 'underline' | 'overline' | 'line-through' | string> | 'none' | 'underline' | 'overline' | 'line-through' | string;
534
+ textDecorationColor?: Observable<string> | string;
535
+ 'text-decoration-color'?: Observable<string> | string;
536
+ textDecorationLine?: Observable<'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string> | 'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string;
537
+ 'text-decoration-line'?: Observable<'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string> | 'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string;
538
+ textDecorationStyle?: Observable<'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string> | 'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string;
539
+ 'text-decoration-style'?: Observable<'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string> | 'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string;
540
+ textDecorationThickness?: Observable<string> | string;
541
+ 'text-decoration-thickness'?: Observable<string> | string;
542
+ textIndent?: Observable<string> | string;
543
+ 'text-indent'?: Observable<string> | string;
544
+ textOverflow?: Observable<'clip' | 'ellipsis' | string> | 'clip' | 'ellipsis' | string;
545
+ 'text-overflow'?: Observable<'clip' | 'ellipsis' | string> | 'clip' | 'ellipsis' | string;
546
+ textRendering?: Observable<'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string;
547
+ 'text-rendering'?: Observable<'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string;
548
+ textShadow?: Observable<string> | string;
549
+ 'text-shadow'?: Observable<string> | string;
550
+ textSizeAdjust?: Observable<string> | string;
551
+ 'text-size-adjust'?: Observable<string> | string;
552
+ textTransform?: Observable<'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string> | 'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string;
553
+ 'text-transform'?: Observable<'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string> | 'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string;
554
+ textUnderlineOffset?: Observable<string> | string;
555
+ 'text-underline-offset'?: Observable<string> | string;
556
+ textWrap?: Observable<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string> | 'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string;
557
+ 'text-wrap'?: Observable<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string> | 'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string;
558
+ top?: Observable<string> | string;
559
+ touchAction?: Observable<'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string> | 'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string;
560
+ 'touch-action'?: Observable<'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string> | 'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string;
561
+ transform?: Observable<string> | string;
562
+ transformBox?: Observable<'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string> | 'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string;
563
+ 'transform-box'?: Observable<'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string> | 'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string;
564
+ transformOrigin?: Observable<string> | string;
565
+ 'transform-origin'?: Observable<string> | string;
566
+ transformStyle?: Observable<'flat' | 'preserve-3d' | string> | 'flat' | 'preserve-3d' | string;
567
+ 'transform-style'?: Observable<'flat' | 'preserve-3d' | string> | 'flat' | 'preserve-3d' | string;
568
+ transition?: Observable<string> | string;
569
+ transitionBehavior?: Observable<'normal' | 'allow-discrete' | string> | 'normal' | 'allow-discrete' | string;
570
+ 'transition-behavior'?: Observable<'normal' | 'allow-discrete' | string> | 'normal' | 'allow-discrete' | string;
571
+ transitionDelay?: Observable<string> | string;
572
+ 'transition-delay'?: Observable<string> | string;
573
+ transitionDuration?: Observable<string> | string;
574
+ 'transition-duration'?: Observable<string> | string;
575
+ transitionProperty?: Observable<string> | string;
576
+ 'transition-property'?: Observable<string> | string;
577
+ transitionTimingFunction?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
578
+ 'transition-timing-function'?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
579
+ translate?: Observable<string> | string;
580
+ unicodeBidi?: Observable<'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string> | 'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string;
581
+ 'unicode-bidi'?: Observable<'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string> | 'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string;
582
+ userSelect?: Observable<'none' | 'auto' | 'text' | 'all' | 'contain' | string> | 'none' | 'auto' | 'text' | 'all' | 'contain' | string;
583
+ 'user-select'?: Observable<'none' | 'auto' | 'text' | 'all' | 'contain' | string> | 'none' | 'auto' | 'text' | 'all' | 'contain' | string;
584
+ verticalAlign?: Observable<'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string> | 'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string;
585
+ 'vertical-align'?: Observable<'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string> | 'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string;
586
+ visibility?: Observable<'visible' | 'hidden' | 'collapse' | string> | 'visible' | 'hidden' | 'collapse' | string;
587
+ whiteSpace?: Observable<'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string> | 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string;
588
+ 'white-space'?: Observable<'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string> | 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string;
589
+ whiteSpaceCollapse?: Observable<'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string> | 'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string;
590
+ 'white-space-collapse'?: Observable<'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string> | 'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string;
591
+ widows?: Observable<string | number> | string | number;
592
+ width?: Observable<string> | string;
593
+ willChange?: Observable<string> | string;
594
+ 'will-change'?: Observable<string> | string;
595
+ wordBreak?: Observable<'normal' | 'break-all' | 'keep-all' | 'break-word' | string> | 'normal' | 'break-all' | 'keep-all' | 'break-word' | string;
596
+ 'word-break'?: Observable<'normal' | 'break-all' | 'keep-all' | 'break-word' | string> | 'normal' | 'break-all' | 'keep-all' | 'break-word' | string;
597
+ wordSpacing?: Observable<string> | string;
598
+ 'word-spacing'?: Observable<string> | string;
599
+ wordWrap?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
600
+ 'word-wrap'?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
601
+ writingMode?: Observable<'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string> | 'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string;
602
+ 'writing-mode'?: Observable<'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string> | 'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string;
603
+ zIndex?: Observable<string | number> | string | number;
604
+ 'z-index'?: Observable<string | number> | string | number;
605
+ }
606
+
607
+ // ─────────────────────────────────────────────
608
+ // Shared attribute sets
609
+ // ─────────────────────────────────────────────
610
+
611
+ interface GlobalAttributes {
612
+ id?: Observable<string>;
613
+ class?: Observable<string> | NdClassMap | string;
614
+ style?: Observable<NdStyleMap> | NdStyleMap | string;
615
+ title?: string;
616
+ lang?: string;
617
+ dir?: 'ltr' | 'rtl' | 'auto';
618
+ hidden?: Observable<boolean>;
619
+ draggable?: Observable<boolean>;
620
+ contenteditable?: Observable<boolean>;
621
+ contentEditable?: Observable<boolean>;
622
+ tabindex?: string | number;
623
+ tabIndex?: string | number;
624
+ accesskey?: string;
625
+ accessKey?: string;
626
+ spellcheck?: Observable<boolean>;
627
+ spellCheck?: Observable<boolean>;
628
+ role?: 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'button' | 'cell' | 'checkbox' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'dialog' | 'directory' | 'document' | 'feed' | 'figure' | 'form' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'marquee' | 'math' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'navigation' | 'none' | 'note' | 'option' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem' | string;
629
+ [key: `data-${string}`]: string;
630
+ [key: `aria-${string}`]: string;
631
+ }
632
+
633
+ interface SharedFormAttributes {
634
+ name?: string;
635
+ disabled?: Observable<boolean>;
636
+ required?: Observable<boolean>;
637
+ autofocus?: Observable<boolean>;
638
+ autoFocus?: Observable<boolean>;
639
+ form?: string;
640
+ }
641
+
642
+ // ─────────────────────────────────────────────
643
+ // Element-specific attribute interfaces
644
+ // ─────────────────────────────────────────────
645
+
646
+ interface AnchorAttributes extends GlobalAttributes {
647
+ href?: Observable<string>;
648
+ target?: '_blank' | '_self' | '_parent' | '_top' | string;
649
+ rel?: string;
650
+ download?: Observable<boolean> | boolean | string;
651
+ hreflang?: string;
652
+ hrefLang?: string;
653
+ type?: string;
654
+ referrerpolicy?: string;
655
+ referrerPolicy?: string;
656
+ }
657
+
658
+ interface ImgAttributes extends GlobalAttributes {
659
+ src?: Observable<string>;
660
+ alt?: Observable<string>;
661
+ width?: Observable<string> | string | number;
662
+ height?: Observable<string> | string | number;
663
+ loading?: 'lazy' | 'eager' | 'auto';
664
+ decoding?: 'async' | 'sync' | 'auto';
665
+ srcset?: string;
666
+ srcSet?: string;
667
+ sizes?: string;
668
+ crossorigin?: 'anonymous' | 'use-credentials';
669
+ crossOrigin?: 'anonymous' | 'use-credentials';
670
+ referrerpolicy?: string;
671
+ referrerPolicy?: string;
672
+ fetchpriority?: 'high' | 'low' | 'auto';
673
+ fetchPriority?: 'high' | 'low' | 'auto';
674
+ }
675
+
676
+ interface InputAttributes extends GlobalAttributes, SharedFormAttributes {
677
+ type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' |
678
+ 'date' | 'time' | 'datetime-local' | 'week' | 'month' |
679
+ 'checkbox' | 'radio' | 'range' | 'color' | 'file' | 'hidden';
680
+ value?: Observable<string>;
681
+ placeholder?: Observable<string>;
682
+ checked?: Observable<boolean>;
683
+ readonly?: Observable<boolean>;
684
+ readOnly?: Observable<boolean>;
685
+ multiple?: Observable<boolean>;
686
+ min?: Observable<string> | string | number;
687
+ max?: Observable<string> | string | number;
688
+ step?: Observable<string> | string | number;
689
+ minlength?: number;
690
+ minLength?: number;
691
+ maxlength?: number;
692
+ maxLength?: number;
693
+ pattern?: string;
694
+ accept?: string;
695
+ autocomplete?: 'on' | 'off' | string;
696
+ autoComplete?: 'on' | 'off' | string;
697
+ list?: string;
698
+ }
699
+
700
+ interface TextAreaAttributes extends GlobalAttributes, SharedFormAttributes {
701
+ value?: Observable<string>;
702
+ placeholder?: Observable<string>;
703
+ readonly?: Observable<boolean>;
704
+ readOnly?: Observable<boolean>;
705
+ rows?: number;
706
+ cols?: number;
707
+ minlength?: number;
708
+ minLength?: number;
709
+ maxlength?: number;
710
+ maxLength?: number;
711
+ wrap?: 'hard' | 'soft' | 'off';
712
+ autocomplete?: 'on' | 'off' | string;
713
+ autoComplete?: 'on' | 'off' | string;
714
+ spellcheck?: Observable<boolean>;
715
+ spellCheck?: Observable<boolean>;
716
+ }
717
+
718
+ interface SelectAttributes extends GlobalAttributes, SharedFormAttributes {
719
+ value?: Observable<string>;
720
+ multiple?: Observable<boolean>;
721
+ size?: number;
722
+ }
723
+
724
+ interface OptionAttributes extends GlobalAttributes {
725
+ value?: Observable<string>;
726
+ selected?: Observable<boolean>;
727
+ disabled?: Observable<boolean>;
728
+ }
729
+
730
+ interface FormAttributes extends GlobalAttributes, SharedFormAttributes {
731
+ action?: string;
732
+ method?: 'get' | 'post';
733
+ enctype?: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
734
+ encType?: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
735
+ novalidate?: Observable<boolean>;
736
+ noValidate?: Observable<boolean>;
737
+ target?: '_blank' | '_self' | '_parent' | '_top' | string;
738
+ autocomplete?: 'on' | 'off';
739
+ autoComplete?: 'on' | 'off';
740
+ }
741
+
742
+ interface ButtonAttributes extends GlobalAttributes, SharedFormAttributes {
743
+ type?: 'button' | 'submit' | 'reset';
744
+ value?: Observable<string>;
745
+ }
746
+
747
+ interface VideoAttributes extends GlobalAttributes {
748
+ src?: Observable<string>;
749
+ autoplay?: Observable<boolean>;
750
+ autoPlay?: Observable<boolean>;
751
+ controls?: Observable<boolean>;
752
+ loop?: Observable<boolean>;
753
+ muted?: Observable<boolean>;
754
+ preload?: 'auto' | 'metadata' | 'none';
755
+ width?: Observable<string> | string | number;
756
+ height?: Observable<string> | string | number;
757
+ poster?: string;
758
+ playsinline?: Observable<boolean>;
759
+ playsInline?: Observable<boolean>;
760
+ crossorigin?: 'anonymous' | 'use-credentials';
761
+ crossOrigin?: 'anonymous' | 'use-credentials';
762
+ }
763
+
764
+ interface AudioAttributes extends GlobalAttributes {
765
+ src?: Observable<string>;
766
+ autoplay?: Observable<boolean>;
767
+ autoPlay?: Observable<boolean>;
768
+ controls?: Observable<boolean>;
769
+ loop?: Observable<boolean>;
770
+ muted?: Observable<boolean>;
771
+ preload?: 'auto' | 'metadata' | 'none';
772
+ crossorigin?: 'anonymous' | 'use-credentials';
773
+ crossOrigin?: 'anonymous' | 'use-credentials';
774
+ }
775
+
776
+ interface CanvasAttributes extends GlobalAttributes {
777
+ width?: Observable<string> | string | number;
778
+ height?: Observable<string> | string | number;
779
+ }
780
+
781
+ interface DetailsAttributes extends GlobalAttributes {
782
+ open?: Observable<boolean>;
783
+ }
784
+
785
+ interface DialogAttributes extends GlobalAttributes {
786
+ open?: Observable<boolean>;
787
+ }
788
+
789
+ interface ProgressAttributes extends GlobalAttributes {
790
+ value?: Observable<string> | string | number;
791
+ max?: number;
792
+ }
793
+
794
+ interface MeterAttributes extends GlobalAttributes {
795
+ value?: Observable<string> | string | number;
796
+ min?: number;
797
+ max?: number;
798
+ low?: number;
799
+ high?: number;
800
+ optimum?: number;
801
+ }
802
+
803
+ interface SourceAttributes extends GlobalAttributes {
804
+ src?: string;
805
+ type?: string;
806
+ media?: string;
807
+ }
808
+
809
+ interface TrackAttributes extends GlobalAttributes {
810
+ src?: string;
811
+ kind?: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata';
812
+ srclang?: string;
813
+ srcLang?: string;
814
+ label?: string;
815
+ default?: Observable<boolean>;
816
+ }
817
+
818
+ interface ThAttributes extends GlobalAttributes {
819
+ colspan?: number;
820
+ colSpan?: number;
821
+ rowspan?: number;
822
+ rowSpan?: number;
823
+ headers?: string;
824
+ scope?: 'row' | 'col' | 'rowgroup' | 'colgroup';
825
+ }
826
+
827
+ interface TdAttributes extends GlobalAttributes {
828
+ colspan?: number;
829
+ colSpan?: number;
830
+ rowspan?: number;
831
+ rowSpan?: number;
832
+ headers?: string;
833
+ }
834
+
835
+ interface LabelAttributes extends GlobalAttributes {
836
+ for?: string;
837
+ htmlFor?: string;
838
+ }
839
+
840
+ interface OutputAttributes extends GlobalAttributes {
841
+ for?: string;
842
+ form?: string;
843
+ name?: string;
844
+ }
845
+
846
+ interface TimeAttributes extends GlobalAttributes {
847
+ datetime?: string;
848
+ dateTime?: string;
849
+ }
850
+
851
+ interface ModAttributes extends GlobalAttributes {
852
+ cite?: string;
853
+ datetime?: string;
854
+ dateTime?: string;
855
+ }
856
+
857
+ interface OlAttributes extends GlobalAttributes {
858
+ reversed?: Observable<boolean>;
859
+ start?: number;
860
+ type?: '1' | 'a' | 'A' | 'i' | 'I';
861
+ }
862
+
863
+ interface SvgAttributes extends GlobalAttributes {
864
+ viewBox?: string;
865
+ viewbox?: string;
866
+ xmlns?: string;
867
+ width?: Observable<string> | string | number;
868
+ height?: Observable<string> | string | number;
869
+ }
870
+
871
+ // ─────────────────────────────────────────────
872
+ // Element function return type
873
+ // ─────────────────────────────────────────────
874
+
875
+ type NdElement<T extends Element = HTMLElement> = T & { nd: NDElement };
26
876
 
27
- export type ElementFunction = (attributes?: Attributes, children?: ValidChild) => HTMLElement & { nd: NDElement };
28
- export type ElementFunctionWithoutAttrs = (children?: ValidChild) => HTMLElement & { nd: NDElement };
29
-
30
- // HTML Elements
31
- export declare const Link: ElementFunction;
32
- export declare const Abbr: ElementFunction;
33
- export declare const Cite: ElementFunction;
34
- export declare const Quote: ElementFunction;
35
-
36
- // Lists
37
- export declare const Dl: ElementFunction;
38
- export declare const Dt: ElementFunction;
39
- export declare const Dd: ElementFunction;
40
-
41
- export declare const Div: ElementFunction;
42
- export declare const Span: ElementFunction;
43
- export declare const P: ElementFunction;
44
- export declare const Paragraph: ElementFunction;
45
- export declare const Strong: ElementFunction;
46
- export declare const H1: ElementFunction;
47
- export declare const H2: ElementFunction;
48
- export declare const H3: ElementFunction;
49
- export declare const H4: ElementFunction;
50
- export declare const H5: ElementFunction;
51
- export declare const H6: ElementFunction;
52
- export declare const Label: ElementFunction;
53
- export declare const Br: ElementFunctionWithoutAttrs;
54
- export declare const Hr: ElementFunctionWithoutAttrs;
55
-
56
- export declare const Pre: ElementFunction;
57
- export declare const Code: ElementFunction;
58
- export declare const Blockquote: ElementFunction;
59
- export declare const Em: ElementFunction;
60
- export declare const Small: ElementFunction;
61
- export declare const Mark: ElementFunction;
62
- export declare const Del: ElementFunction;
63
- export declare const Ins: ElementFunction;
64
- export declare const Sub: ElementFunction;
65
- export declare const Sup: ElementFunction;
877
+ type ElementFunction<A = GlobalAttributes, T extends Element = HTMLElement> =
878
+ (attributes?: A, children?: ValidChild) => NdElement<T>;
66
879
 
880
+ type ElementFunctionNoChildren<A = GlobalAttributes, T extends Element = HTMLElement> =
881
+ (attributes?: A) => NdElement<T>;
882
+
883
+ // ─────────────────────────────────────────────
884
+ // Text elements
885
+ // ─────────────────────────────────────────────
886
+
887
+ export declare const Div: ElementFunction<GlobalAttributes, HTMLDivElement>;
888
+ export declare const Span: ElementFunction<GlobalAttributes, HTMLSpanElement>;
889
+ export declare const P: ElementFunction<GlobalAttributes, HTMLParagraphElement>;
890
+ export declare const Paragraph: typeof P;
891
+ export declare const Strong: ElementFunction<GlobalAttributes, HTMLElement>;
892
+ export declare const H1: ElementFunction<GlobalAttributes, HTMLHeadingElement>;
893
+ export declare const H2: ElementFunction<GlobalAttributes, HTMLHeadingElement>;
894
+ export declare const H3: ElementFunction<GlobalAttributes, HTMLHeadingElement>;
895
+ export declare const H4: ElementFunction<GlobalAttributes, HTMLHeadingElement>;
896
+ export declare const H5: ElementFunction<GlobalAttributes, HTMLHeadingElement>;
897
+ export declare const H6: ElementFunction<GlobalAttributes, HTMLHeadingElement>;
898
+ export declare const Pre: ElementFunction<GlobalAttributes, HTMLPreElement>;
899
+ export declare const Code: ElementFunction<GlobalAttributes, HTMLElement>;
900
+ export declare const Blockquote: ElementFunction<GlobalAttributes & { cite?: string }, HTMLQuoteElement>;
901
+ export declare const Em: ElementFunction<GlobalAttributes, HTMLElement>;
902
+ export declare const Small: ElementFunction<GlobalAttributes, HTMLElement>;
903
+ export declare const Mark: ElementFunction<GlobalAttributes, HTMLElement>;
904
+ export declare const Del: ElementFunction<ModAttributes, HTMLModElement>;
905
+ export declare const Ins: ElementFunction<ModAttributes, HTMLModElement>;
906
+ export declare const Sub: ElementFunction<GlobalAttributes, HTMLElement>;
907
+ export declare const Sup: ElementFunction<GlobalAttributes, HTMLElement>;
908
+ export declare const Abbr: ElementFunction<GlobalAttributes, HTMLElement>;
909
+ export declare const Cite: ElementFunction<GlobalAttributes, HTMLElement>;
910
+ export declare const Quote: ElementFunction<GlobalAttributes & { cite?: string }, HTMLQuoteElement>;
911
+ export declare const Br: ElementFunctionNoChildren<GlobalAttributes, HTMLBRElement>;
912
+ export declare const Hr: ElementFunctionNoChildren<GlobalAttributes, HTMLHRElement>;
913
+
914
+ // ─────────────────────────────────────────────
67
915
  // Semantic elements
68
- export declare const Main: ElementFunction;
69
- export declare const Section: ElementFunction;
70
- export declare const Article: ElementFunction;
71
- export declare const Aside: ElementFunction;
72
- export declare const Nav: ElementFunction;
73
- export declare const Figure: ElementFunction;
74
- export declare const FigCaption: ElementFunction;
75
- export declare const Header: ElementFunction;
76
- export declare const Footer: ElementFunction;
77
-
78
- export declare const Details: ElementFunction;
79
- export declare const Summary: ElementFunction;
80
- export declare const Dialog: ElementFunction;
81
- export declare const Menu: ElementFunction;
82
-
83
- // Lists
84
- export declare const OrderedList: ElementFunction;
85
- export declare const UnorderedList: ElementFunction;
86
- export declare const ListItem: ElementFunction;
87
- export declare const Li: ElementFunction;
88
- export declare const Ol: ElementFunction;
89
- export declare const Ul: ElementFunction;
90
-
91
- // Media
92
- export declare const Audio: ElementFunction;
93
- export declare const Video: ElementFunction;
94
- export declare const Source: ElementFunction;
95
- export declare const Track: ElementFunction;
96
- export declare const Canvas: ElementFunction;
97
- export declare const Svg: ElementFunction;
98
-
99
- // Other elements
100
- export declare const Time: ElementFunction;
101
- export declare const Data: ElementFunction;
102
- export declare const Address: ElementFunction;
103
- export declare const Kbd: ElementFunction;
104
- export declare const Samp: ElementFunction;
105
- export declare const Var: ElementFunction;
106
- export declare const Wbr: ElementFunctionWithoutAttrs;
916
+ // ─────────────────────────────────────────────
917
+
918
+ export declare const Main: ElementFunction<GlobalAttributes, HTMLElement>;
919
+ export declare const Section: ElementFunction<GlobalAttributes, HTMLElement>;
920
+ export declare const Article: ElementFunction<GlobalAttributes, HTMLElement>;
921
+ export declare const Aside: ElementFunction<GlobalAttributes, HTMLElement>;
922
+ export declare const Nav: ElementFunction<GlobalAttributes, HTMLElement>;
923
+ export declare const Figure: ElementFunction<GlobalAttributes, HTMLElement>;
924
+ export declare const FigCaption: ElementFunction<GlobalAttributes, HTMLElement>;
925
+ export declare const Header: ElementFunction<GlobalAttributes, HTMLElement>;
926
+ export declare const Footer: ElementFunction<GlobalAttributes, HTMLElement>;
927
+
928
+ // ─────────────────────────────────────────────
929
+ // Interactive elements
930
+ // ─────────────────────────────────────────────
931
+
932
+ export declare const Details: ElementFunction<DetailsAttributes, HTMLDetailsElement>;
933
+ export declare const Summary: ElementFunction<GlobalAttributes, HTMLElement>;
934
+ export declare const Dialog: ElementFunction<DialogAttributes, HTMLDialogElement>;
935
+ export declare const Menu: ElementFunction<GlobalAttributes, HTMLMenuElement>;
936
+
937
+ // ─────────────────────────────────────────────
938
+ // Link
939
+ // ─────────────────────────────────────────────
940
+
941
+ export declare const Link: ElementFunction<AnchorAttributes, HTMLAnchorElement>;
942
+
943
+ // ─────────────────────────────────────────────
944
+ // Form elements
945
+ // ─────────────────────────────────────────────
946
+
947
+ export declare const Form: (
948
+ attributes?: FormAttributes,
949
+ children?: ValidChild
950
+ ) => NdElement<HTMLFormElement> & {
951
+ submit: (actionOrFn: string | ((e: SubmitEvent) => void)) => NdElement<HTMLFormElement>;
952
+ post: (action: string) => NdElement<HTMLFormElement>;
953
+ get: (action: string) => NdElement<HTMLFormElement>;
954
+ multipartFormData: () => NdElement<HTMLFormElement>;
955
+ };
956
+
957
+ export declare const Input: ElementFunctionNoChildren<InputAttributes, HTMLInputElement>;
958
+ export declare const TextArea: ElementFunction<TextAreaAttributes, HTMLTextAreaElement>;
959
+ export declare const TextInput: typeof TextArea;
960
+ export declare const Select: ElementFunction<SelectAttributes, HTMLSelectElement>;
961
+ export declare const FieldSet: ElementFunction<GlobalAttributes & { disabled?: Observable<boolean> }, HTMLFieldSetElement>;
962
+ export declare const Option: ElementFunction<OptionAttributes, HTMLOptionElement>;
963
+ export declare const Legend: ElementFunction<GlobalAttributes, HTMLLegendElement>;
964
+ export declare const Label: ElementFunction<LabelAttributes, HTMLLabelElement>;
965
+ export declare const Datalist: ElementFunction<GlobalAttributes, HTMLDataListElement>;
966
+ export declare const Output: ElementFunction<OutputAttributes, HTMLOutputElement>;
967
+ export declare const Progress: ElementFunction<ProgressAttributes, HTMLProgressElement>;
968
+ export declare const Meter: ElementFunction<MeterAttributes, HTMLMeterElement>;
969
+
970
+ export declare const ReadonlyInput: (attributes?: Omit<InputAttributes, 'type' | 'readonly' | 'readOnly'>) => NdElement<HTMLInputElement>;
971
+ export declare const HiddenInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
972
+ export declare const FileInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
973
+ export declare const PasswordInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
974
+ export declare const Checkbox: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
975
+ export declare const Radio: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
976
+ export declare const RangeInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
977
+ export declare const ColorInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
978
+ export declare const DateInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
979
+ export declare const TimeInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
980
+ export declare const DateTimeInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
981
+ export declare const WeekInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
982
+ export declare const MonthInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
983
+ export declare const SearchInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
984
+ export declare const TelInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
985
+ export declare const UrlInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
986
+ export declare const EmailInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
987
+ export declare const NumberInput: (attributes?: Omit<InputAttributes, 'type'>) => NdElement<HTMLInputElement>;
988
+
989
+ export declare const Button: ElementFunction<ButtonAttributes, HTMLButtonElement>;
990
+ export declare const SimpleButton: (children?: ValidChild, attributes?: Omit<ButtonAttributes, 'type'>) => NdElement<HTMLButtonElement>;
991
+ export declare const SubmitButton: (children?: ValidChild, attributes?: Omit<ButtonAttributes, 'type'>) => NdElement<HTMLButtonElement>;
992
+
993
+ // ─────────────────────────────────────────────
994
+ // Image elements
995
+ // ─────────────────────────────────────────────
996
+
997
+ export declare const BaseImage: ElementFunctionNoChildren<ImgAttributes, HTMLImageElement>;
107
998
 
999
+ export declare function Img(
1000
+ src: Observable<string>,
1001
+ attributes?: Omit<ImgAttributes, 'src'>
1002
+ ): NdElement<HTMLImageElement>;
1003
+
1004
+ export declare function AsyncImg(
1005
+ src: Observable<string>,
1006
+ defaultImage: string | null,
1007
+ attributes?: Omit<ImgAttributes, 'src'>,
1008
+ callback?: (error: Error | null, img: HTMLImageElement) => void
1009
+ ): NdElement<HTMLImageElement>;
1010
+
1011
+ export declare function LazyImg(
1012
+ src: Observable<string>,
1013
+ attributes?: Omit<ImgAttributes, 'src' | 'loading'>
1014
+ ): NdElement<HTMLImageElement>;
1015
+
1016
+ // ─────────────────────────────────────────────
1017
+ // Media elements
1018
+ // ─────────────────────────────────────────────
1019
+
1020
+ export declare const Audio: ElementFunction<AudioAttributes, HTMLAudioElement>;
1021
+ export declare const Video: ElementFunction<VideoAttributes, HTMLVideoElement>;
1022
+ export declare const Source: ElementFunctionNoChildren<SourceAttributes, HTMLSourceElement>;
1023
+ export declare const Track: ElementFunctionNoChildren<TrackAttributes, HTMLTrackElement>;
1024
+ export declare const Canvas: ElementFunction<CanvasAttributes, HTMLCanvasElement>;
1025
+ export declare const Svg: ElementFunction<SvgAttributes, HTMLElement>;
1026
+
1027
+ // ─────────────────────────────────────────────
1028
+ // List elements
1029
+ // ─────────────────────────────────────────────
1030
+
1031
+ export declare const OrderedList: ElementFunction<OlAttributes, HTMLOListElement>;
1032
+ export declare const UnorderedList: ElementFunction<GlobalAttributes, HTMLUListElement>;
1033
+ export declare const ListItem: ElementFunction<GlobalAttributes & { value?: number }, HTMLLIElement>;
1034
+ export declare const Li: typeof ListItem;
1035
+ export declare const Ol: typeof OrderedList;
1036
+ export declare const Ul: typeof UnorderedList;
1037
+
1038
+ // ─────────────────────────────────────────────
1039
+ // Definition list elements
1040
+ // ─────────────────────────────────────────────
1041
+
1042
+ export declare const Dl: ElementFunction<GlobalAttributes, HTMLDListElement>;
1043
+ export declare const Dt: ElementFunction<GlobalAttributes, HTMLElement>;
1044
+ export declare const Dd: ElementFunction<GlobalAttributes, HTMLElement>;
1045
+
1046
+ // ─────────────────────────────────────────────
108
1047
  // Table elements
109
- export declare const Caption: ElementFunction;
110
- export declare const Table: ElementFunction;
111
- export declare const THead: ElementFunction;
112
- export declare const TFoot: ElementFunction;
113
- export declare const TBody: ElementFunction;
114
- export declare const Tr: ElementFunction;
115
- export declare const TRow: ElementFunction;
116
- export declare const Th: ElementFunction;
117
- export declare const THeadCell: ElementFunction;
118
- export declare const TFootCell: ElementFunction;
119
- export declare const Td: ElementFunction;
120
- export declare const TBodyCell: ElementFunction;
1048
+ // ─────────────────────────────────────────────
1049
+
1050
+ export declare const Caption: ElementFunction<GlobalAttributes, HTMLTableCaptionElement>;
1051
+ export declare const Table: ElementFunction<GlobalAttributes, HTMLTableElement>;
1052
+ export declare const THead: ElementFunction<GlobalAttributes, HTMLTableSectionElement>;
1053
+ export declare const TFoot: ElementFunction<GlobalAttributes, HTMLTableSectionElement>;
1054
+ export declare const TBody: ElementFunction<GlobalAttributes, HTMLTableSectionElement>;
1055
+ export declare const Tr: ElementFunction<GlobalAttributes, HTMLTableRowElement>;
1056
+ export declare const TRow: typeof Tr;
1057
+ export declare const Th: ElementFunction<ThAttributes, HTMLTableCellElement>;
1058
+ export declare const THeadCell: typeof Th;
1059
+ export declare const TFootCell: typeof Th;
1060
+ export declare const Td: ElementFunction<TdAttributes, HTMLTableCellElement>;
1061
+ export declare const TBodyCell: typeof Td;
1062
+
1063
+ // ─────────────────────────────────────────────
1064
+ // Misc elements
1065
+ // ─────────────────────────────────────────────
1066
+
1067
+ export declare const Time: ElementFunction<TimeAttributes, HTMLTimeElement>;
1068
+ export declare const Data: ElementFunction<GlobalAttributes & { value?: Observable<string> }, HTMLDataElement>;
1069
+ export declare const Address: ElementFunction<GlobalAttributes, HTMLElement>;
1070
+ export declare const Kbd: ElementFunction<GlobalAttributes, HTMLElement>;
1071
+ export declare const Samp: ElementFunction<GlobalAttributes, HTMLElement>;
1072
+ export declare const Var: ElementFunction<GlobalAttributes, HTMLElement>;
1073
+ export declare const Wbr: ElementFunctionNoChildren<GlobalAttributes, HTMLElement>;
121
1074
 
1075
+ // ─────────────────────────────────────────────
122
1076
  // Fragment
123
- export declare const Fragment: ElementFunction;
1077
+ // ─────────────────────────────────────────────
1078
+
1079
+ export declare const Fragment: ElementFunction<GlobalAttributes, HTMLElement>;
124
1080
  export declare const NativeDocumentFragment: typeof Anchor;
125
1081
 
1082
+ // ─────────────────────────────────────────────
1083
+ // Anchor
1084
+ // ─────────────────────────────────────────────
126
1085
 
127
1086
  export declare type AnchorDocumentFragment = DocumentFragment & {
128
- detach: () => void;
129
- restore: () => void;
130
- clear: () => void;
131
- remove: () => void;
132
- removeChildren: () => void;
133
- insertBefore: (child: ValidChild, before: HTMLElement|Comment|null) => void;
134
- replaceContent: (child: ValidChild) => void;
135
- setContent: (child: ValidChild) => void;
136
- appendElement: (child: ValidChild, before: HTMLElement|Comment|null) => void;
137
- append: (...args: ValidChild[]) => void;
138
- getByIndex: (index: number) => HTMLElement|null;
139
- endElement: () => Comment;
140
- startElement: () => Comment;
1087
+ detach: () => void;
1088
+ restore: () => void;
1089
+ clear: () => void;
1090
+ remove: () => void;
1091
+ removeChildren: () => void;
1092
+ insertBefore: (child: ValidChild, before: HTMLElement | Comment | null) => void;
1093
+ replaceContent: (child: ValidChild) => void;
1094
+ setContent: (child: ValidChild) => void;
1095
+ appendElement: (child: ValidChild, before: HTMLElement | Comment | null) => void;
1096
+ append: (...args: ValidChild[]) => void;
1097
+ getByIndex: (index: number) => HTMLElement | null;
1098
+ endElement: () => Comment;
1099
+ startElement: () => Comment;
141
1100
  removeWithAnchors: () => void;
142
1101
  };
143
1102
 
144
- // Anchor
145
- export declare function Anchor(name?: string, isUniqueChild?: boolean): AnchorDocumentFragment;
1103
+ export declare function Anchor(name?: string, isUniqueChild?: boolean): AnchorDocumentFragment;
1104
+
1105
+ export type NdHTMLElement<T extends HTMLElement = HTMLElement> = T & { nd: NDElement };