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
package/index.def.js ADDED
@@ -0,0 +1,1086 @@
1
+ /**
2
+ * @fileoverview JSDoc type definitions for NativeDocument HTML elements.
3
+ * Provides IDE autocomplete for element attributes.
4
+ * Compound attribute names are listed in both their original (lowercase)
5
+ * and camelCase forms so both conventions trigger autocomplete.
6
+ */
7
+
8
+ // ─────────────────────────────────────────────
9
+ // Base types
10
+ // ─────────────────────────────────────────────
11
+
12
+ /**
13
+ * An ObservableItem or a raw value.
14
+ * @template T
15
+ * @typedef {import('./native-document.dev').ObservableItem | T} Observable
16
+ */
17
+
18
+ /**
19
+ * A valid child — string, number, boolean, HTMLElement, DocumentFragment,
20
+ * ObservableItem, NDElement, or an array of those.
21
+ * @typedef {string|number|boolean|HTMLElement|DocumentFragment|ObservableItem|NDElement|Array} NdChild
22
+ */
23
+
24
+ /**
25
+ * Reactive style binding.
26
+ * Maps CSS property names (camelCase or kebab-case) to observable or plain values.
27
+ * WebStorm will suggest all standard CSS properties.
28
+ * @typedef {Object} NdStyleMap
29
+ * @property {Observable<string>|string} [accentColor] - CSS accent-color
30
+ * @property {Observable<string>|string} [accent-color] - CSS accent-color (kebab-case)
31
+ * @property {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} [alignContent] - CSS align-content
32
+ * @property {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} [align-content] - CSS align-content (kebab-case)
33
+ * @property {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} [alignItems] - CSS align-items
34
+ * @property {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} [align-items] - CSS align-items (kebab-case)
35
+ * @property {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} [alignSelf] - CSS align-self
36
+ * @property {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} [align-self] - CSS align-self (kebab-case)
37
+ * @property {Observable<string>|string} [animation] - CSS animation
38
+ * @property {Observable<string>|string} [animationComposition] - CSS animation-composition
39
+ * @property {Observable<string>|string} [animation-composition] - CSS animation-composition (kebab-case)
40
+ * @property {Observable<string>|string} [animationDelay] - CSS animation-delay
41
+ * @property {Observable<string>|string} [animation-delay] - CSS animation-delay (kebab-case)
42
+ * @property {Observable<'normal'|'reverse'|'alternate'|'alternate-reverse'|string>|'normal'|'reverse'|'alternate'|'alternate-reverse'|string} [animationDirection] - CSS animation-direction
43
+ * @property {Observable<'normal'|'reverse'|'alternate'|'alternate-reverse'|string>|'normal'|'reverse'|'alternate'|'alternate-reverse'|string} [animation-direction] - CSS animation-direction (kebab-case)
44
+ * @property {Observable<string>|string} [animationDuration] - CSS animation-duration
45
+ * @property {Observable<string>|string} [animation-duration] - CSS animation-duration (kebab-case)
46
+ * @property {Observable<'none'|'forwards'|'backwards'|'both'|string>|'none'|'forwards'|'backwards'|'both'|string} [animationFillMode] - CSS animation-fill-mode
47
+ * @property {Observable<'none'|'forwards'|'backwards'|'both'|string>|'none'|'forwards'|'backwards'|'both'|string} [animation-fill-mode] - CSS animation-fill-mode (kebab-case)
48
+ * @property {Observable<string>|string} [animationIterationCount] - CSS animation-iteration-count
49
+ * @property {Observable<string>|string} [animation-iteration-count] - CSS animation-iteration-count (kebab-case)
50
+ * @property {Observable<string>|string} [animationName] - CSS animation-name
51
+ * @property {Observable<string>|string} [animation-name] - CSS animation-name (kebab-case)
52
+ * @property {Observable<'running'|'paused'|string>|'running'|'paused'|string} [animationPlayState] - CSS animation-play-state
53
+ * @property {Observable<'running'|'paused'|string>|'running'|'paused'|string} [animation-play-state] - CSS animation-play-state (kebab-case)
54
+ * @property {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} [animationTimingFunction] - CSS animation-timing-function
55
+ * @property {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} [animation-timing-function] - CSS animation-timing-function (kebab-case)
56
+ * @property {Observable<'none'|'auto'|'button'|'textfield'|'menulist'|string>|'none'|'auto'|'button'|'textfield'|'menulist'|string} [appearance] - CSS appearance
57
+ * @property {Observable<string>|string} [aspectRatio] - CSS aspect-ratio
58
+ * @property {Observable<string>|string} [aspect-ratio] - CSS aspect-ratio (kebab-case)
59
+ * @property {Observable<string>|string} [backdropFilter] - CSS backdrop-filter
60
+ * @property {Observable<string>|string} [backdrop-filter] - CSS backdrop-filter (kebab-case)
61
+ * @property {Observable<'visible'|'hidden'|string>|'visible'|'hidden'|string} [backfaceVisibility] - CSS backface-visibility
62
+ * @property {Observable<'visible'|'hidden'|string>|'visible'|'hidden'|string} [backface-visibility] - CSS backface-visibility (kebab-case)
63
+ * @property {Observable<string>|string} [background] - CSS background
64
+ * @property {Observable<'scroll'|'fixed'|'local'|string>|'scroll'|'fixed'|'local'|string} [backgroundAttachment] - CSS background-attachment
65
+ * @property {Observable<'scroll'|'fixed'|'local'|string>|'scroll'|'fixed'|'local'|string} [background-attachment] - CSS background-attachment (kebab-case)
66
+ * @property {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} [backgroundBlendMode] - CSS background-blend-mode
67
+ * @property {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} [background-blend-mode] - CSS background-blend-mode (kebab-case)
68
+ * @property {Observable<'border-box'|'padding-box'|'content-box'|'text'|string>|'border-box'|'padding-box'|'content-box'|'text'|string} [backgroundClip] - CSS background-clip
69
+ * @property {Observable<'border-box'|'padding-box'|'content-box'|'text'|string>|'border-box'|'padding-box'|'content-box'|'text'|string} [background-clip] - CSS background-clip (kebab-case)
70
+ * @property {Observable<string>|string} [backgroundColor] - CSS background-color
71
+ * @property {Observable<string>|string} [background-color] - CSS background-color (kebab-case)
72
+ * @property {Observable<string>|string} [backgroundImage] - CSS background-image
73
+ * @property {Observable<string>|string} [background-image] - CSS background-image (kebab-case)
74
+ * @property {Observable<'border-box'|'padding-box'|'content-box'|string>|'border-box'|'padding-box'|'content-box'|string} [backgroundOrigin] - CSS background-origin
75
+ * @property {Observable<'border-box'|'padding-box'|'content-box'|string>|'border-box'|'padding-box'|'content-box'|string} [background-origin] - CSS background-origin (kebab-case)
76
+ * @property {Observable<string>|string} [backgroundPosition] - CSS background-position
77
+ * @property {Observable<string>|string} [background-position] - CSS background-position (kebab-case)
78
+ * @property {Observable<string>|string} [backgroundPositionX] - CSS background-position-x
79
+ * @property {Observable<string>|string} [background-position-x] - CSS background-position-x (kebab-case)
80
+ * @property {Observable<string>|string} [backgroundPositionY] - CSS background-position-y
81
+ * @property {Observable<string>|string} [background-position-y] - CSS background-position-y (kebab-case)
82
+ * @property {Observable<'repeat'|'no-repeat'|'repeat-x'|'repeat-y'|'round'|'space'|string>|'repeat'|'no-repeat'|'repeat-x'|'repeat-y'|'round'|'space'|string} [backgroundRepeat] - CSS background-repeat
83
+ * @property {Observable<'repeat'|'no-repeat'|'repeat-x'|'repeat-y'|'round'|'space'|string>|'repeat'|'no-repeat'|'repeat-x'|'repeat-y'|'round'|'space'|string} [background-repeat] - CSS background-repeat (kebab-case)
84
+ * @property {Observable<'cover'|'contain'|'auto'|string>|'cover'|'contain'|'auto'|string} [backgroundSize] - CSS background-size
85
+ * @property {Observable<'cover'|'contain'|'auto'|string>|'cover'|'contain'|'auto'|string} [background-size] - CSS background-size (kebab-case)
86
+ * @property {Observable<string>|string} [border] - CSS border
87
+ * @property {Observable<string>|string} [borderBlock] - CSS border-block
88
+ * @property {Observable<string>|string} [border-block] - CSS border-block (kebab-case)
89
+ * @property {Observable<string>|string} [borderBlockEnd] - CSS border-block-end
90
+ * @property {Observable<string>|string} [border-block-end] - CSS border-block-end (kebab-case)
91
+ * @property {Observable<string>|string} [borderBlockStart] - CSS border-block-start
92
+ * @property {Observable<string>|string} [border-block-start] - CSS border-block-start (kebab-case)
93
+ * @property {Observable<string>|string} [borderBottom] - CSS border-bottom
94
+ * @property {Observable<string>|string} [border-bottom] - CSS border-bottom (kebab-case)
95
+ * @property {Observable<string>|string} [borderBottomColor] - CSS border-bottom-color
96
+ * @property {Observable<string>|string} [border-bottom-color] - CSS border-bottom-color (kebab-case)
97
+ * @property {Observable<string>|string} [borderBottomLeftRadius] - CSS border-bottom-left-radius
98
+ * @property {Observable<string>|string} [border-bottom-left-radius] - CSS border-bottom-left-radius (kebab-case)
99
+ * @property {Observable<string>|string} [borderBottomRightRadius] - CSS border-bottom-right-radius
100
+ * @property {Observable<string>|string} [border-bottom-right-radius] - CSS border-bottom-right-radius (kebab-case)
101
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [borderBottomStyle] - CSS border-bottom-style
102
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [border-bottom-style] - CSS border-bottom-style (kebab-case)
103
+ * @property {Observable<string>|string} [borderBottomWidth] - CSS border-bottom-width
104
+ * @property {Observable<string>|string} [border-bottom-width] - CSS border-bottom-width (kebab-case)
105
+ * @property {Observable<'collapse'|'separate'|string>|'collapse'|'separate'|string} [borderCollapse] - CSS border-collapse
106
+ * @property {Observable<'collapse'|'separate'|string>|'collapse'|'separate'|string} [border-collapse] - CSS border-collapse (kebab-case)
107
+ * @property {Observable<string>|string} [borderColor] - CSS border-color
108
+ * @property {Observable<string>|string} [border-color] - CSS border-color (kebab-case)
109
+ * @property {Observable<string>|string} [borderEndEndRadius] - CSS border-end-end-radius
110
+ * @property {Observable<string>|string} [border-end-end-radius] - CSS border-end-end-radius (kebab-case)
111
+ * @property {Observable<string>|string} [borderEndStartRadius] - CSS border-end-start-radius
112
+ * @property {Observable<string>|string} [border-end-start-radius] - CSS border-end-start-radius (kebab-case)
113
+ * @property {Observable<string>|string} [borderImage] - CSS border-image
114
+ * @property {Observable<string>|string} [border-image] - CSS border-image (kebab-case)
115
+ * @property {Observable<string>|string} [borderImageOutset] - CSS border-image-outset
116
+ * @property {Observable<string>|string} [border-image-outset] - CSS border-image-outset (kebab-case)
117
+ * @property {Observable<'stretch'|'repeat'|'round'|'space'|string>|'stretch'|'repeat'|'round'|'space'|string} [borderImageRepeat] - CSS border-image-repeat
118
+ * @property {Observable<'stretch'|'repeat'|'round'|'space'|string>|'stretch'|'repeat'|'round'|'space'|string} [border-image-repeat] - CSS border-image-repeat (kebab-case)
119
+ * @property {Observable<string>|string} [borderImageSlice] - CSS border-image-slice
120
+ * @property {Observable<string>|string} [border-image-slice] - CSS border-image-slice (kebab-case)
121
+ * @property {Observable<string>|string} [borderImageSource] - CSS border-image-source
122
+ * @property {Observable<string>|string} [border-image-source] - CSS border-image-source (kebab-case)
123
+ * @property {Observable<string>|string} [borderImageWidth] - CSS border-image-width
124
+ * @property {Observable<string>|string} [border-image-width] - CSS border-image-width (kebab-case)
125
+ * @property {Observable<string>|string} [borderInline] - CSS border-inline
126
+ * @property {Observable<string>|string} [border-inline] - CSS border-inline (kebab-case)
127
+ * @property {Observable<string>|string} [borderInlineEnd] - CSS border-inline-end
128
+ * @property {Observable<string>|string} [border-inline-end] - CSS border-inline-end (kebab-case)
129
+ * @property {Observable<string>|string} [borderInlineStart] - CSS border-inline-start
130
+ * @property {Observable<string>|string} [border-inline-start] - CSS border-inline-start (kebab-case)
131
+ * @property {Observable<string>|string} [borderLeft] - CSS border-left
132
+ * @property {Observable<string>|string} [border-left] - CSS border-left (kebab-case)
133
+ * @property {Observable<string>|string} [borderLeftColor] - CSS border-left-color
134
+ * @property {Observable<string>|string} [border-left-color] - CSS border-left-color (kebab-case)
135
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [borderLeftStyle] - CSS border-left-style
136
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [border-left-style] - CSS border-left-style (kebab-case)
137
+ * @property {Observable<string>|string} [borderLeftWidth] - CSS border-left-width
138
+ * @property {Observable<string>|string} [border-left-width] - CSS border-left-width (kebab-case)
139
+ * @property {Observable<string>|string} [borderRadius] - CSS border-radius
140
+ * @property {Observable<string>|string} [border-radius] - CSS border-radius (kebab-case)
141
+ * @property {Observable<string>|string} [borderRight] - CSS border-right
142
+ * @property {Observable<string>|string} [border-right] - CSS border-right (kebab-case)
143
+ * @property {Observable<string>|string} [borderRightColor] - CSS border-right-color
144
+ * @property {Observable<string>|string} [border-right-color] - CSS border-right-color (kebab-case)
145
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [borderRightStyle] - CSS border-right-style
146
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [border-right-style] - CSS border-right-style (kebab-case)
147
+ * @property {Observable<string>|string} [borderRightWidth] - CSS border-right-width
148
+ * @property {Observable<string>|string} [border-right-width] - CSS border-right-width (kebab-case)
149
+ * @property {Observable<string>|string} [borderSpacing] - CSS border-spacing
150
+ * @property {Observable<string>|string} [border-spacing] - CSS border-spacing (kebab-case)
151
+ * @property {Observable<string>|string} [borderStartEndRadius] - CSS border-start-end-radius
152
+ * @property {Observable<string>|string} [border-start-end-radius] - CSS border-start-end-radius (kebab-case)
153
+ * @property {Observable<string>|string} [borderStartStartRadius] - CSS border-start-start-radius
154
+ * @property {Observable<string>|string} [border-start-start-radius] - CSS border-start-start-radius (kebab-case)
155
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [borderStyle] - CSS border-style
156
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [border-style] - CSS border-style (kebab-case)
157
+ * @property {Observable<string>|string} [borderTop] - CSS border-top
158
+ * @property {Observable<string>|string} [border-top] - CSS border-top (kebab-case)
159
+ * @property {Observable<string>|string} [borderTopColor] - CSS border-top-color
160
+ * @property {Observable<string>|string} [border-top-color] - CSS border-top-color (kebab-case)
161
+ * @property {Observable<string>|string} [borderTopLeftRadius] - CSS border-top-left-radius
162
+ * @property {Observable<string>|string} [border-top-left-radius] - CSS border-top-left-radius (kebab-case)
163
+ * @property {Observable<string>|string} [borderTopRightRadius] - CSS border-top-right-radius
164
+ * @property {Observable<string>|string} [border-top-right-radius] - CSS border-top-right-radius (kebab-case)
165
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [borderTopStyle] - CSS border-top-style
166
+ * @property {Observable<'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string>|'none'|'hidden'|'solid'|'dashed'|'dotted'|'double'|'groove'|'ridge'|'inset'|'outset'|string} [border-top-style] - CSS border-top-style (kebab-case)
167
+ * @property {Observable<string>|string} [borderTopWidth] - CSS border-top-width
168
+ * @property {Observable<string>|string} [border-top-width] - CSS border-top-width (kebab-case)
169
+ * @property {Observable<string>|string} [borderWidth] - CSS border-width
170
+ * @property {Observable<string>|string} [border-width] - CSS border-width (kebab-case)
171
+ * @property {Observable<string>|string} [bottom] - CSS bottom
172
+ * @property {Observable<'slice'|'clone'|string>|'slice'|'clone'|string} [boxDecorationBreak] - CSS box-decoration-break
173
+ * @property {Observable<'slice'|'clone'|string>|'slice'|'clone'|string} [box-decoration-break] - CSS box-decoration-break (kebab-case)
174
+ * @property {Observable<string>|string} [boxShadow] - CSS box-shadow
175
+ * @property {Observable<string>|string} [box-shadow] - CSS box-shadow (kebab-case)
176
+ * @property {Observable<'border-box'|'content-box'|string>|'border-box'|'content-box'|string} [boxSizing] - CSS box-sizing
177
+ * @property {Observable<'border-box'|'content-box'|string>|'border-box'|'content-box'|string} [box-sizing] - CSS box-sizing (kebab-case)
178
+ * @property {Observable<'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string>|'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string} [breakAfter] - CSS break-after
179
+ * @property {Observable<'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string>|'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string} [break-after] - CSS break-after (kebab-case)
180
+ * @property {Observable<'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string>|'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string} [breakBefore] - CSS break-before
181
+ * @property {Observable<'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string>|'auto'|'avoid'|'always'|'all'|'avoid-page'|'page'|'left'|'right'|'column'|string} [break-before] - CSS break-before (kebab-case)
182
+ * @property {Observable<'auto'|'avoid'|'avoid-page'|'avoid-column'|string>|'auto'|'avoid'|'avoid-page'|'avoid-column'|string} [breakInside] - CSS break-inside
183
+ * @property {Observable<'auto'|'avoid'|'avoid-page'|'avoid-column'|string>|'auto'|'avoid'|'avoid-page'|'avoid-column'|string} [break-inside] - CSS break-inside (kebab-case)
184
+ * @property {Observable<'top'|'bottom'|'block-start'|'block-end'|'inline-start'|'inline-end'|string>|'top'|'bottom'|'block-start'|'block-end'|'inline-start'|'inline-end'|string} [captionSide] - CSS caption-side
185
+ * @property {Observable<'top'|'bottom'|'block-start'|'block-end'|'inline-start'|'inline-end'|string>|'top'|'bottom'|'block-start'|'block-end'|'inline-start'|'inline-end'|string} [caption-side] - CSS caption-side (kebab-case)
186
+ * @property {Observable<string>|string} [caretColor] - CSS caret-color
187
+ * @property {Observable<string>|string} [caret-color] - CSS caret-color (kebab-case)
188
+ * @property {Observable<'left'|'right'|'both'|'none'|'inline-start'|'inline-end'|string>|'left'|'right'|'both'|'none'|'inline-start'|'inline-end'|string} [clear] - CSS clear
189
+ * @property {Observable<string>|string} [clipPath] - CSS clip-path
190
+ * @property {Observable<string>|string} [clip-path] - CSS clip-path (kebab-case)
191
+ * @property {Observable<'nonzero'|'evenodd'|string>|'nonzero'|'evenodd'|string} [clipRule] - CSS clip-rule
192
+ * @property {Observable<'nonzero'|'evenodd'|string>|'nonzero'|'evenodd'|string} [clip-rule] - CSS clip-rule (kebab-case)
193
+ * @property {Observable<string>|string} [color] - CSS color
194
+ * @property {Observable<'auto'|'optimizeSpeed'|'optimizeQuality'|string>|'auto'|'optimizeSpeed'|'optimizeQuality'|string} [colorRendering] - CSS color-rendering
195
+ * @property {Observable<'auto'|'optimizeSpeed'|'optimizeQuality'|string>|'auto'|'optimizeSpeed'|'optimizeQuality'|string} [color-rendering] - CSS color-rendering (kebab-case)
196
+ * @property {Observable<'normal'|'light'|'dark'|'light dark'|string>|'normal'|'light'|'dark'|'light dark'|string} [colorScheme] - CSS color-scheme
197
+ * @property {Observable<'normal'|'light'|'dark'|'light dark'|string>|'normal'|'light'|'dark'|'light dark'|string} [color-scheme] - CSS color-scheme (kebab-case)
198
+ * @property {Observable<string>|string} [columnCount] - CSS column-count
199
+ * @property {Observable<string>|string} [column-count] - CSS column-count (kebab-case)
200
+ * @property {Observable<'balance'|'auto'|'balance-all'|string>|'balance'|'auto'|'balance-all'|string} [columnFill] - CSS column-fill
201
+ * @property {Observable<'balance'|'auto'|'balance-all'|string>|'balance'|'auto'|'balance-all'|string} [column-fill] - CSS column-fill (kebab-case)
202
+ * @property {Observable<string>|string} [columnGap] - CSS column-gap
203
+ * @property {Observable<string>|string} [column-gap] - CSS column-gap (kebab-case)
204
+ * @property {Observable<string>|string} [columnRule] - CSS column-rule
205
+ * @property {Observable<string>|string} [column-rule] - CSS column-rule (kebab-case)
206
+ * @property {Observable<string>|string} [columnRuleColor] - CSS column-rule-color
207
+ * @property {Observable<string>|string} [column-rule-color] - CSS column-rule-color (kebab-case)
208
+ * @property {Observable<string>|string} [columnRuleStyle] - CSS column-rule-style
209
+ * @property {Observable<string>|string} [column-rule-style] - CSS column-rule-style (kebab-case)
210
+ * @property {Observable<string>|string} [columnRuleWidth] - CSS column-rule-width
211
+ * @property {Observable<string>|string} [column-rule-width] - CSS column-rule-width (kebab-case)
212
+ * @property {Observable<'none'|'all'|string>|'none'|'all'|string} [columnSpan] - CSS column-span
213
+ * @property {Observable<'none'|'all'|string>|'none'|'all'|string} [column-span] - CSS column-span (kebab-case)
214
+ * @property {Observable<string>|string} [columnWidth] - CSS column-width
215
+ * @property {Observable<string>|string} [column-width] - CSS column-width (kebab-case)
216
+ * @property {Observable<string>|string} [columns] - CSS columns
217
+ * @property {Observable<'none'|'strict'|'content'|'size'|'layout'|'style'|'paint'|string>|'none'|'strict'|'content'|'size'|'layout'|'style'|'paint'|string} [contain] - CSS contain
218
+ * @property {Observable<string>|string} [content] - CSS content
219
+ * @property {Observable<'visible'|'hidden'|'auto'|string>|'visible'|'hidden'|'auto'|string} [contentVisibility] - CSS content-visibility
220
+ * @property {Observable<'visible'|'hidden'|'auto'|string>|'visible'|'hidden'|'auto'|string} [content-visibility] - CSS content-visibility (kebab-case)
221
+ * @property {Observable<string>|string} [counterIncrement] - CSS counter-increment
222
+ * @property {Observable<string>|string} [counter-increment] - CSS counter-increment (kebab-case)
223
+ * @property {Observable<string>|string} [counterReset] - CSS counter-reset
224
+ * @property {Observable<string>|string} [counter-reset] - CSS counter-reset (kebab-case)
225
+ * @property {Observable<string>|string} [counterSet] - CSS counter-set
226
+ * @property {Observable<string>|string} [counter-set] - CSS counter-set (kebab-case)
227
+ * @property {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} [cursor] - CSS cursor
228
+ * @property {Observable<'ltr'|'rtl'|string>|'ltr'|'rtl'|string} [direction] - CSS direction
229
+ * @property {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} [display] - CSS display
230
+ * @property {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} [dominantBaseline] - CSS dominant-baseline
231
+ * @property {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} [dominant-baseline] - CSS dominant-baseline (kebab-case)
232
+ * @property {Observable<'show'|'hide'|string>|'show'|'hide'|string} [emptyCells] - CSS empty-cells
233
+ * @property {Observable<'show'|'hide'|string>|'show'|'hide'|string} [empty-cells] - CSS empty-cells (kebab-case)
234
+ * @property {Observable<string>|string} [fill] - CSS fill
235
+ * @property {Observable<string>|string} [fillOpacity] - CSS fill-opacity
236
+ * @property {Observable<string>|string} [fill-opacity] - CSS fill-opacity (kebab-case)
237
+ * @property {Observable<'nonzero'|'evenodd'|string>|'nonzero'|'evenodd'|string} [fillRule] - CSS fill-rule
238
+ * @property {Observable<'nonzero'|'evenodd'|string>|'nonzero'|'evenodd'|string} [fill-rule] - CSS fill-rule (kebab-case)
239
+ * @property {Observable<string>|string} [filter] - CSS filter
240
+ * @property {Observable<string>|string} [flex] - CSS flex
241
+ * @property {Observable<string>|string} [flexBasis] - CSS flex-basis
242
+ * @property {Observable<string>|string} [flex-basis] - CSS flex-basis (kebab-case)
243
+ * @property {Observable<'row'|'column'|'row-reverse'|'column-reverse'|string>|'row'|'column'|'row-reverse'|'column-reverse'|string} [flexDirection] - CSS flex-direction
244
+ * @property {Observable<'row'|'column'|'row-reverse'|'column-reverse'|string>|'row'|'column'|'row-reverse'|'column-reverse'|string} [flex-direction] - CSS flex-direction (kebab-case)
245
+ * @property {Observable<string>|string} [flexFlow] - CSS flex-flow
246
+ * @property {Observable<string>|string} [flex-flow] - CSS flex-flow (kebab-case)
247
+ * @property {Observable<string>|string} [flexGrow] - CSS flex-grow
248
+ * @property {Observable<string>|string} [flex-grow] - CSS flex-grow (kebab-case)
249
+ * @property {Observable<string>|string} [flexShrink] - CSS flex-shrink
250
+ * @property {Observable<string>|string} [flex-shrink] - CSS flex-shrink (kebab-case)
251
+ * @property {Observable<'nowrap'|'wrap'|'wrap-reverse'|string>|'nowrap'|'wrap'|'wrap-reverse'|string} [flexWrap] - CSS flex-wrap
252
+ * @property {Observable<'nowrap'|'wrap'|'wrap-reverse'|string>|'nowrap'|'wrap'|'wrap-reverse'|string} [flex-wrap] - CSS flex-wrap (kebab-case)
253
+ * @property {Observable<'left'|'right'|'none'|'inline-start'|'inline-end'|string>|'left'|'right'|'none'|'inline-start'|'inline-end'|string} [float] - CSS float
254
+ * @property {Observable<string>|string} [font] - CSS font
255
+ * @property {Observable<string>|string} [fontDisplay] - CSS font-display
256
+ * @property {Observable<string>|string} [font-display] - CSS font-display (kebab-case)
257
+ * @property {Observable<string>|string} [fontFamily] - CSS font-family
258
+ * @property {Observable<string>|string} [font-family] - CSS font-family (kebab-case)
259
+ * @property {Observable<string>|string} [fontFeatureSettings] - CSS font-feature-settings
260
+ * @property {Observable<string>|string} [font-feature-settings] - CSS font-feature-settings (kebab-case)
261
+ * @property {Observable<'auto'|'normal'|'none'|string>|'auto'|'normal'|'none'|string} [fontKerning] - CSS font-kerning
262
+ * @property {Observable<'auto'|'normal'|'none'|string>|'auto'|'normal'|'none'|string} [font-kerning] - CSS font-kerning (kebab-case)
263
+ * @property {Observable<string>|string} [fontOpticalSizing] - CSS font-optical-sizing
264
+ * @property {Observable<string>|string} [font-optical-sizing] - CSS font-optical-sizing (kebab-case)
265
+ * @property {Observable<string>|string} [fontSize] - CSS font-size
266
+ * @property {Observable<string>|string} [font-size] - CSS font-size (kebab-case)
267
+ * @property {Observable<string>|string} [fontSizeAdjust] - CSS font-size-adjust
268
+ * @property {Observable<string>|string} [font-size-adjust] - CSS font-size-adjust (kebab-case)
269
+ * @property {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} [fontStretch] - CSS font-stretch
270
+ * @property {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} [font-stretch] - CSS font-stretch (kebab-case)
271
+ * @property {Observable<'normal'|'italic'|'oblique'|string>|'normal'|'italic'|'oblique'|string} [fontStyle] - CSS font-style
272
+ * @property {Observable<'normal'|'italic'|'oblique'|string>|'normal'|'italic'|'oblique'|string} [font-style] - CSS font-style (kebab-case)
273
+ * @property {Observable<'normal'|'small-caps'|string>|'normal'|'small-caps'|string} [fontVariant] - CSS font-variant
274
+ * @property {Observable<'normal'|'small-caps'|string>|'normal'|'small-caps'|string} [font-variant] - CSS font-variant (kebab-case)
275
+ * @property {Observable<string>|string} [fontVariationSettings] - CSS font-variation-settings
276
+ * @property {Observable<string>|string} [font-variation-settings] - CSS font-variation-settings (kebab-case)
277
+ * @property {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} [fontWeight] - CSS font-weight
278
+ * @property {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} [font-weight] - CSS font-weight (kebab-case)
279
+ * @property {Observable<string>|string} [forcedColorAdjust] - CSS forced-color-adjust
280
+ * @property {Observable<string>|string} [forced-color-adjust] - CSS forced-color-adjust (kebab-case)
281
+ * @property {Observable<string>|string} [gap] - CSS gap
282
+ * @property {Observable<string>|string} [grid] - CSS grid
283
+ * @property {Observable<string>|string} [gridArea] - CSS grid-area
284
+ * @property {Observable<string>|string} [grid-area] - CSS grid-area (kebab-case)
285
+ * @property {Observable<string>|string} [gridAutoColumns] - CSS grid-auto-columns
286
+ * @property {Observable<string>|string} [grid-auto-columns] - CSS grid-auto-columns (kebab-case)
287
+ * @property {Observable<'row'|'column'|'dense'|'row dense'|'column dense'|string>|'row'|'column'|'dense'|'row dense'|'column dense'|string} [gridAutoFlow] - CSS grid-auto-flow
288
+ * @property {Observable<'row'|'column'|'dense'|'row dense'|'column dense'|string>|'row'|'column'|'dense'|'row dense'|'column dense'|string} [grid-auto-flow] - CSS grid-auto-flow (kebab-case)
289
+ * @property {Observable<string>|string} [gridAutoRows] - CSS grid-auto-rows
290
+ * @property {Observable<string>|string} [grid-auto-rows] - CSS grid-auto-rows (kebab-case)
291
+ * @property {Observable<string>|string} [gridColumn] - CSS grid-column
292
+ * @property {Observable<string>|string} [grid-column] - CSS grid-column (kebab-case)
293
+ * @property {Observable<string>|string} [gridColumnEnd] - CSS grid-column-end
294
+ * @property {Observable<string>|string} [grid-column-end] - CSS grid-column-end (kebab-case)
295
+ * @property {Observable<string>|string} [gridColumnStart] - CSS grid-column-start
296
+ * @property {Observable<string>|string} [grid-column-start] - CSS grid-column-start (kebab-case)
297
+ * @property {Observable<string>|string} [gridRow] - CSS grid-row
298
+ * @property {Observable<string>|string} [grid-row] - CSS grid-row (kebab-case)
299
+ * @property {Observable<string>|string} [gridRowEnd] - CSS grid-row-end
300
+ * @property {Observable<string>|string} [grid-row-end] - CSS grid-row-end (kebab-case)
301
+ * @property {Observable<string>|string} [gridRowStart] - CSS grid-row-start
302
+ * @property {Observable<string>|string} [grid-row-start] - CSS grid-row-start (kebab-case)
303
+ * @property {Observable<string>|string} [gridTemplate] - CSS grid-template
304
+ * @property {Observable<string>|string} [grid-template] - CSS grid-template (kebab-case)
305
+ * @property {Observable<string>|string} [gridTemplateAreas] - CSS grid-template-areas
306
+ * @property {Observable<string>|string} [grid-template-areas] - CSS grid-template-areas (kebab-case)
307
+ * @property {Observable<string>|string} [gridTemplateColumns] - CSS grid-template-columns
308
+ * @property {Observable<string>|string} [grid-template-columns] - CSS grid-template-columns (kebab-case)
309
+ * @property {Observable<string>|string} [gridTemplateRows] - CSS grid-template-rows
310
+ * @property {Observable<string>|string} [grid-template-rows] - CSS grid-template-rows (kebab-case)
311
+ * @property {Observable<string>|string} [height] - CSS height
312
+ * @property {Observable<string>|string} [hyphenateCharacter] - CSS hyphenate-character
313
+ * @property {Observable<string>|string} [hyphenate-character] - CSS hyphenate-character (kebab-case)
314
+ * @property {Observable<'none'|'manual'|'auto'|string>|'none'|'manual'|'auto'|string} [hyphens] - CSS hyphens
315
+ * @property {Observable<'none'|'from-image'|string>|'none'|'from-image'|string} [imageOrientation] - CSS image-orientation
316
+ * @property {Observable<'none'|'from-image'|string>|'none'|'from-image'|string} [image-orientation] - CSS image-orientation (kebab-case)
317
+ * @property {Observable<'auto'|'crisp-edges'|'pixelated'|'smooth'|string>|'auto'|'crisp-edges'|'pixelated'|'smooth'|string} [imageRendering] - CSS image-rendering
318
+ * @property {Observable<'auto'|'crisp-edges'|'pixelated'|'smooth'|string>|'auto'|'crisp-edges'|'pixelated'|'smooth'|string} [image-rendering] - CSS image-rendering (kebab-case)
319
+ * @property {Observable<string>|string} [inset] - CSS inset
320
+ * @property {Observable<string>|string} [insetBlock] - CSS inset-block
321
+ * @property {Observable<string>|string} [inset-block] - CSS inset-block (kebab-case)
322
+ * @property {Observable<string>|string} [insetBlockEnd] - CSS inset-block-end
323
+ * @property {Observable<string>|string} [inset-block-end] - CSS inset-block-end (kebab-case)
324
+ * @property {Observable<string>|string} [insetBlockStart] - CSS inset-block-start
325
+ * @property {Observable<string>|string} [inset-block-start] - CSS inset-block-start (kebab-case)
326
+ * @property {Observable<string>|string} [insetInline] - CSS inset-inline
327
+ * @property {Observable<string>|string} [inset-inline] - CSS inset-inline (kebab-case)
328
+ * @property {Observable<string>|string} [insetInlineEnd] - CSS inset-inline-end
329
+ * @property {Observable<string>|string} [inset-inline-end] - CSS inset-inline-end (kebab-case)
330
+ * @property {Observable<string>|string} [insetInlineStart] - CSS inset-inline-start
331
+ * @property {Observable<string>|string} [inset-inline-start] - CSS inset-inline-start (kebab-case)
332
+ * @property {Observable<'auto'|'isolate'|string>|'auto'|'isolate'|string} [isolation] - CSS isolation
333
+ * @property {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} [justifyContent] - CSS justify-content
334
+ * @property {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} [justify-content] - CSS justify-content (kebab-case)
335
+ * @property {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} [justifyItems] - CSS justify-items
336
+ * @property {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} [justify-items] - CSS justify-items (kebab-case)
337
+ * @property {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} [justifySelf] - CSS justify-self
338
+ * @property {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} [justify-self] - CSS justify-self (kebab-case)
339
+ * @property {Observable<string>|string} [left] - CSS left
340
+ * @property {Observable<string>|string} [letterSpacing] - CSS letter-spacing
341
+ * @property {Observable<string>|string} [letter-spacing] - CSS letter-spacing (kebab-case)
342
+ * @property {Observable<'auto'|'loose'|'normal'|'strict'|'anywhere'|string>|'auto'|'loose'|'normal'|'strict'|'anywhere'|string} [lineBreak] - CSS line-break
343
+ * @property {Observable<'auto'|'loose'|'normal'|'strict'|'anywhere'|string>|'auto'|'loose'|'normal'|'strict'|'anywhere'|string} [line-break] - CSS line-break (kebab-case)
344
+ * @property {Observable<string>|string} [lineHeight] - CSS line-height
345
+ * @property {Observable<string>|string} [line-height] - CSS line-height (kebab-case)
346
+ * @property {Observable<string>|string} [listStyle] - CSS list-style
347
+ * @property {Observable<string>|string} [list-style] - CSS list-style (kebab-case)
348
+ * @property {Observable<string>|string} [listStyleImage] - CSS list-style-image
349
+ * @property {Observable<string>|string} [list-style-image] - CSS list-style-image (kebab-case)
350
+ * @property {Observable<'inside'|'outside'|string>|'inside'|'outside'|string} [listStylePosition] - CSS list-style-position
351
+ * @property {Observable<'inside'|'outside'|string>|'inside'|'outside'|string} [list-style-position] - CSS list-style-position (kebab-case)
352
+ * @property {Observable<'none'|'disc'|'circle'|'square'|'decimal'|'decimal-leading-zero'|'lower-roman'|'upper-roman'|'lower-alpha'|'upper-alpha'|'lower-latin'|'upper-latin'|string>|'none'|'disc'|'circle'|'square'|'decimal'|'decimal-leading-zero'|'lower-roman'|'upper-roman'|'lower-alpha'|'upper-alpha'|'lower-latin'|'upper-latin'|string} [listStyleType] - CSS list-style-type
353
+ * @property {Observable<'none'|'disc'|'circle'|'square'|'decimal'|'decimal-leading-zero'|'lower-roman'|'upper-roman'|'lower-alpha'|'upper-alpha'|'lower-latin'|'upper-latin'|string>|'none'|'disc'|'circle'|'square'|'decimal'|'decimal-leading-zero'|'lower-roman'|'upper-roman'|'lower-alpha'|'upper-alpha'|'lower-latin'|'upper-latin'|string} [list-style-type] - CSS list-style-type (kebab-case)
354
+ * @property {Observable<string>|string} [margin] - CSS margin
355
+ * @property {Observable<string>|string} [marginBlock] - CSS margin-block
356
+ * @property {Observable<string>|string} [margin-block] - CSS margin-block (kebab-case)
357
+ * @property {Observable<string>|string} [marginBlockEnd] - CSS margin-block-end
358
+ * @property {Observable<string>|string} [margin-block-end] - CSS margin-block-end (kebab-case)
359
+ * @property {Observable<string>|string} [marginBlockStart] - CSS margin-block-start
360
+ * @property {Observable<string>|string} [margin-block-start] - CSS margin-block-start (kebab-case)
361
+ * @property {Observable<string>|string} [marginBottom] - CSS margin-bottom
362
+ * @property {Observable<string>|string} [margin-bottom] - CSS margin-bottom (kebab-case)
363
+ * @property {Observable<string>|string} [marginInline] - CSS margin-inline
364
+ * @property {Observable<string>|string} [margin-inline] - CSS margin-inline (kebab-case)
365
+ * @property {Observable<string>|string} [marginInlineEnd] - CSS margin-inline-end
366
+ * @property {Observable<string>|string} [margin-inline-end] - CSS margin-inline-end (kebab-case)
367
+ * @property {Observable<string>|string} [marginInlineStart] - CSS margin-inline-start
368
+ * @property {Observable<string>|string} [margin-inline-start] - CSS margin-inline-start (kebab-case)
369
+ * @property {Observable<string>|string} [marginLeft] - CSS margin-left
370
+ * @property {Observable<string>|string} [margin-left] - CSS margin-left (kebab-case)
371
+ * @property {Observable<string>|string} [marginRight] - CSS margin-right
372
+ * @property {Observable<string>|string} [margin-right] - CSS margin-right (kebab-case)
373
+ * @property {Observable<string>|string} [marginTop] - CSS margin-top
374
+ * @property {Observable<string>|string} [margin-top] - CSS margin-top (kebab-case)
375
+ * @property {Observable<string>|string} [markerEnd] - CSS marker-end
376
+ * @property {Observable<string>|string} [marker-end] - CSS marker-end (kebab-case)
377
+ * @property {Observable<string>|string} [markerMid] - CSS marker-mid
378
+ * @property {Observable<string>|string} [marker-mid] - CSS marker-mid (kebab-case)
379
+ * @property {Observable<string>|string} [markerStart] - CSS marker-start
380
+ * @property {Observable<string>|string} [marker-start] - CSS marker-start (kebab-case)
381
+ * @property {Observable<string>|string} [mask] - CSS mask
382
+ * @property {Observable<string>|string} [maskClip] - CSS mask-clip
383
+ * @property {Observable<string>|string} [mask-clip] - CSS mask-clip (kebab-case)
384
+ * @property {Observable<string>|string} [maskComposite] - CSS mask-composite
385
+ * @property {Observable<string>|string} [mask-composite] - CSS mask-composite (kebab-case)
386
+ * @property {Observable<string>|string} [maskImage] - CSS mask-image
387
+ * @property {Observable<string>|string} [mask-image] - CSS mask-image (kebab-case)
388
+ * @property {Observable<string>|string} [maskMode] - CSS mask-mode
389
+ * @property {Observable<string>|string} [mask-mode] - CSS mask-mode (kebab-case)
390
+ * @property {Observable<string>|string} [maskOrigin] - CSS mask-origin
391
+ * @property {Observable<string>|string} [mask-origin] - CSS mask-origin (kebab-case)
392
+ * @property {Observable<string>|string} [maskPosition] - CSS mask-position
393
+ * @property {Observable<string>|string} [mask-position] - CSS mask-position (kebab-case)
394
+ * @property {Observable<string>|string} [maskRepeat] - CSS mask-repeat
395
+ * @property {Observable<string>|string} [mask-repeat] - CSS mask-repeat (kebab-case)
396
+ * @property {Observable<string>|string} [maskSize] - CSS mask-size
397
+ * @property {Observable<string>|string} [mask-size] - CSS mask-size (kebab-case)
398
+ * @property {Observable<string>|string} [maxHeight] - CSS max-height
399
+ * @property {Observable<string>|string} [max-height] - CSS max-height (kebab-case)
400
+ * @property {Observable<string>|string} [maxWidth] - CSS max-width
401
+ * @property {Observable<string>|string} [max-width] - CSS max-width (kebab-case)
402
+ * @property {Observable<string>|string} [minHeight] - CSS min-height
403
+ * @property {Observable<string>|string} [min-height] - CSS min-height (kebab-case)
404
+ * @property {Observable<string>|string} [minWidth] - CSS min-width
405
+ * @property {Observable<string>|string} [min-width] - CSS min-width (kebab-case)
406
+ * @property {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} [mixBlendMode] - CSS mix-blend-mode
407
+ * @property {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} [mix-blend-mode] - CSS mix-blend-mode (kebab-case)
408
+ * @property {Observable<'fill'|'contain'|'cover'|'none'|'scale-down'|string>|'fill'|'contain'|'cover'|'none'|'scale-down'|string} [objectFit] - CSS object-fit
409
+ * @property {Observable<'fill'|'contain'|'cover'|'none'|'scale-down'|string>|'fill'|'contain'|'cover'|'none'|'scale-down'|string} [object-fit] - CSS object-fit (kebab-case)
410
+ * @property {Observable<string>|string} [objectPosition] - CSS object-position
411
+ * @property {Observable<string>|string} [object-position] - CSS object-position (kebab-case)
412
+ * @property {Observable<string>|string} [offset] - CSS offset
413
+ * @property {Observable<string>|string} [offsetAnchor] - CSS offset-anchor
414
+ * @property {Observable<string>|string} [offset-anchor] - CSS offset-anchor (kebab-case)
415
+ * @property {Observable<string>|string} [offsetDistance] - CSS offset-distance
416
+ * @property {Observable<string>|string} [offset-distance] - CSS offset-distance (kebab-case)
417
+ * @property {Observable<string>|string} [offsetPath] - CSS offset-path
418
+ * @property {Observable<string>|string} [offset-path] - CSS offset-path (kebab-case)
419
+ * @property {Observable<string>|string} [offsetRotate] - CSS offset-rotate
420
+ * @property {Observable<string>|string} [offset-rotate] - CSS offset-rotate (kebab-case)
421
+ * @property {Observable<string>|string} [opacity] - CSS opacity
422
+ * @property {Observable<string>|string} [order] - CSS order
423
+ * @property {Observable<string>|string} [orphans] - CSS orphans
424
+ * @property {Observable<string>|string} [outline] - CSS outline
425
+ * @property {Observable<string>|string} [outlineColor] - CSS outline-color
426
+ * @property {Observable<string>|string} [outline-color] - CSS outline-color (kebab-case)
427
+ * @property {Observable<string>|string} [outlineOffset] - CSS outline-offset
428
+ * @property {Observable<string>|string} [outline-offset] - CSS outline-offset (kebab-case)
429
+ * @property {Observable<string>|string} [outlineStyle] - CSS outline-style
430
+ * @property {Observable<string>|string} [outline-style] - CSS outline-style (kebab-case)
431
+ * @property {Observable<string>|string} [outlineWidth] - CSS outline-width
432
+ * @property {Observable<string>|string} [outline-width] - CSS outline-width (kebab-case)
433
+ * @property {Observable<'visible'|'hidden'|'scroll'|'auto'|'clip'|string>|'visible'|'hidden'|'scroll'|'auto'|'clip'|string} [overflow] - CSS overflow
434
+ * @property {Observable<string>|string} [overflowClip] - CSS overflow-clip
435
+ * @property {Observable<string>|string} [overflow-clip] - CSS overflow-clip (kebab-case)
436
+ * @property {Observable<'normal'|'break-word'|'anywhere'|string>|'normal'|'break-word'|'anywhere'|string} [overflowWrap] - CSS overflow-wrap
437
+ * @property {Observable<'normal'|'break-word'|'anywhere'|string>|'normal'|'break-word'|'anywhere'|string} [overflow-wrap] - CSS overflow-wrap (kebab-case)
438
+ * @property {Observable<'visible'|'hidden'|'scroll'|'auto'|'clip'|string>|'visible'|'hidden'|'scroll'|'auto'|'clip'|string} [overflowX] - CSS overflow-x
439
+ * @property {Observable<'visible'|'hidden'|'scroll'|'auto'|'clip'|string>|'visible'|'hidden'|'scroll'|'auto'|'clip'|string} [overflow-x] - CSS overflow-x (kebab-case)
440
+ * @property {Observable<'visible'|'hidden'|'scroll'|'auto'|'clip'|string>|'visible'|'hidden'|'scroll'|'auto'|'clip'|string} [overflowY] - CSS overflow-y
441
+ * @property {Observable<'visible'|'hidden'|'scroll'|'auto'|'clip'|string>|'visible'|'hidden'|'scroll'|'auto'|'clip'|string} [overflow-y] - CSS overflow-y (kebab-case)
442
+ * @property {Observable<'auto'|'contain'|'none'|string>|'auto'|'contain'|'none'|string} [overscrollBehavior] - CSS overscroll-behavior
443
+ * @property {Observable<'auto'|'contain'|'none'|string>|'auto'|'contain'|'none'|string} [overscroll-behavior] - CSS overscroll-behavior (kebab-case)
444
+ * @property {Observable<'auto'|'contain'|'none'|string>|'auto'|'contain'|'none'|string} [overscrollBehaviorX] - CSS overscroll-behavior-x
445
+ * @property {Observable<'auto'|'contain'|'none'|string>|'auto'|'contain'|'none'|string} [overscroll-behavior-x] - CSS overscroll-behavior-x (kebab-case)
446
+ * @property {Observable<'auto'|'contain'|'none'|string>|'auto'|'contain'|'none'|string} [overscrollBehaviorY] - CSS overscroll-behavior-y
447
+ * @property {Observable<'auto'|'contain'|'none'|string>|'auto'|'contain'|'none'|string} [overscroll-behavior-y] - CSS overscroll-behavior-y (kebab-case)
448
+ * @property {Observable<string>|string} [padding] - CSS padding
449
+ * @property {Observable<string>|string} [paddingBlock] - CSS padding-block
450
+ * @property {Observable<string>|string} [padding-block] - CSS padding-block (kebab-case)
451
+ * @property {Observable<string>|string} [paddingBlockEnd] - CSS padding-block-end
452
+ * @property {Observable<string>|string} [padding-block-end] - CSS padding-block-end (kebab-case)
453
+ * @property {Observable<string>|string} [paddingBlockStart] - CSS padding-block-start
454
+ * @property {Observable<string>|string} [padding-block-start] - CSS padding-block-start (kebab-case)
455
+ * @property {Observable<string>|string} [paddingBottom] - CSS padding-bottom
456
+ * @property {Observable<string>|string} [padding-bottom] - CSS padding-bottom (kebab-case)
457
+ * @property {Observable<string>|string} [paddingInline] - CSS padding-inline
458
+ * @property {Observable<string>|string} [padding-inline] - CSS padding-inline (kebab-case)
459
+ * @property {Observable<string>|string} [paddingInlineEnd] - CSS padding-inline-end
460
+ * @property {Observable<string>|string} [padding-inline-end] - CSS padding-inline-end (kebab-case)
461
+ * @property {Observable<string>|string} [paddingInlineStart] - CSS padding-inline-start
462
+ * @property {Observable<string>|string} [padding-inline-start] - CSS padding-inline-start (kebab-case)
463
+ * @property {Observable<string>|string} [paddingLeft] - CSS padding-left
464
+ * @property {Observable<string>|string} [padding-left] - CSS padding-left (kebab-case)
465
+ * @property {Observable<string>|string} [paddingRight] - CSS padding-right
466
+ * @property {Observable<string>|string} [padding-right] - CSS padding-right (kebab-case)
467
+ * @property {Observable<string>|string} [paddingTop] - CSS padding-top
468
+ * @property {Observable<string>|string} [padding-top] - CSS padding-top (kebab-case)
469
+ * @property {Observable<'auto'|'always'|'avoid'|'left'|'right'|string>|'auto'|'always'|'avoid'|'left'|'right'|string} [pageBreakAfter] - CSS page-break-after
470
+ * @property {Observable<'auto'|'always'|'avoid'|'left'|'right'|string>|'auto'|'always'|'avoid'|'left'|'right'|string} [page-break-after] - CSS page-break-after (kebab-case)
471
+ * @property {Observable<'auto'|'always'|'avoid'|'left'|'right'|string>|'auto'|'always'|'avoid'|'left'|'right'|string} [pageBreakBefore] - CSS page-break-before
472
+ * @property {Observable<'auto'|'always'|'avoid'|'left'|'right'|string>|'auto'|'always'|'avoid'|'left'|'right'|string} [page-break-before] - CSS page-break-before (kebab-case)
473
+ * @property {Observable<'auto'|'avoid'|string>|'auto'|'avoid'|string} [pageBreakInside] - CSS page-break-inside
474
+ * @property {Observable<'auto'|'avoid'|string>|'auto'|'avoid'|string} [page-break-inside] - CSS page-break-inside (kebab-case)
475
+ * @property {Observable<string>|string} [perspective] - CSS perspective
476
+ * @property {Observable<string>|string} [perspectiveOrigin] - CSS perspective-origin
477
+ * @property {Observable<string>|string} [perspective-origin] - CSS perspective-origin (kebab-case)
478
+ * @property {Observable<string>|string} [placeContent] - CSS place-content
479
+ * @property {Observable<string>|string} [place-content] - CSS place-content (kebab-case)
480
+ * @property {Observable<string>|string} [placeItems] - CSS place-items
481
+ * @property {Observable<string>|string} [place-items] - CSS place-items (kebab-case)
482
+ * @property {Observable<string>|string} [placeSelf] - CSS place-self
483
+ * @property {Observable<string>|string} [place-self] - CSS place-self (kebab-case)
484
+ * @property {Observable<'auto'|'none'|'all'|'fill'|'painted'|'stroke'|'visible'|'visibleFill'|'visiblePainted'|'visibleStroke'|string>|'auto'|'none'|'all'|'fill'|'painted'|'stroke'|'visible'|'visibleFill'|'visiblePainted'|'visibleStroke'|string} [pointerEvents] - CSS pointer-events
485
+ * @property {Observable<'auto'|'none'|'all'|'fill'|'painted'|'stroke'|'visible'|'visibleFill'|'visiblePainted'|'visibleStroke'|string>|'auto'|'none'|'all'|'fill'|'painted'|'stroke'|'visible'|'visibleFill'|'visiblePainted'|'visibleStroke'|string} [pointer-events] - CSS pointer-events (kebab-case)
486
+ * @property {Observable<'static'|'relative'|'absolute'|'fixed'|'sticky'|string>|'static'|'relative'|'absolute'|'fixed'|'sticky'|string} [position] - CSS position
487
+ * @property {Observable<string>|string} [printColorAdjust] - CSS print-color-adjust
488
+ * @property {Observable<string>|string} [print-color-adjust] - CSS print-color-adjust (kebab-case)
489
+ * @property {Observable<string>|string} [quotes] - CSS quotes
490
+ * @property {Observable<'none'|'both'|'horizontal'|'vertical'|'block'|'inline'|string>|'none'|'both'|'horizontal'|'vertical'|'block'|'inline'|string} [resize] - CSS resize
491
+ * @property {Observable<string>|string} [right] - CSS right
492
+ * @property {Observable<string>|string} [rotate] - CSS rotate
493
+ * @property {Observable<string>|string} [rowGap] - CSS row-gap
494
+ * @property {Observable<string>|string} [row-gap] - CSS row-gap (kebab-case)
495
+ * @property {Observable<string>|string} [scale] - CSS scale
496
+ * @property {Observable<'auto'|'smooth'|string>|'auto'|'smooth'|string} [scrollBehavior] - CSS scroll-behavior
497
+ * @property {Observable<'auto'|'smooth'|string>|'auto'|'smooth'|string} [scroll-behavior] - CSS scroll-behavior (kebab-case)
498
+ * @property {Observable<string>|string} [scrollMargin] - CSS scroll-margin
499
+ * @property {Observable<string>|string} [scroll-margin] - CSS scroll-margin (kebab-case)
500
+ * @property {Observable<string>|string} [scrollPadding] - CSS scroll-padding
501
+ * @property {Observable<string>|string} [scroll-padding] - CSS scroll-padding (kebab-case)
502
+ * @property {Observable<'none'|'start'|'end'|'center'|string>|'none'|'start'|'end'|'center'|string} [scrollSnapAlign] - CSS scroll-snap-align
503
+ * @property {Observable<'none'|'start'|'end'|'center'|string>|'none'|'start'|'end'|'center'|string} [scroll-snap-align] - CSS scroll-snap-align (kebab-case)
504
+ * @property {Observable<'normal'|'always'|string>|'normal'|'always'|string} [scrollSnapStop] - CSS scroll-snap-stop
505
+ * @property {Observable<'normal'|'always'|string>|'normal'|'always'|string} [scroll-snap-stop] - CSS scroll-snap-stop (kebab-case)
506
+ * @property {Observable<'none'|'x'|'y'|'block'|'inline'|'both'|string>|'none'|'x'|'y'|'block'|'inline'|'both'|string} [scrollSnapType] - CSS scroll-snap-type
507
+ * @property {Observable<'none'|'x'|'y'|'block'|'inline'|'both'|string>|'none'|'x'|'y'|'block'|'inline'|'both'|string} [scroll-snap-type] - CSS scroll-snap-type (kebab-case)
508
+ * @property {Observable<'auto'|'optimizeSpeed'|'crispEdges'|'geometricPrecision'|string>|'auto'|'optimizeSpeed'|'crispEdges'|'geometricPrecision'|string} [shapeRendering] - CSS shape-rendering
509
+ * @property {Observable<'auto'|'optimizeSpeed'|'crispEdges'|'geometricPrecision'|string>|'auto'|'optimizeSpeed'|'crispEdges'|'geometricPrecision'|string} [shape-rendering] - CSS shape-rendering (kebab-case)
510
+ * @property {Observable<string>|string} [stroke] - CSS stroke
511
+ * @property {Observable<string>|string} [strokeDasharray] - CSS stroke-dasharray
512
+ * @property {Observable<string>|string} [stroke-dasharray] - CSS stroke-dasharray (kebab-case)
513
+ * @property {Observable<string>|string} [strokeDashoffset] - CSS stroke-dashoffset
514
+ * @property {Observable<string>|string} [stroke-dashoffset] - CSS stroke-dashoffset (kebab-case)
515
+ * @property {Observable<'butt'|'round'|'square'|string>|'butt'|'round'|'square'|string} [strokeLinecap] - CSS stroke-linecap
516
+ * @property {Observable<'butt'|'round'|'square'|string>|'butt'|'round'|'square'|string} [stroke-linecap] - CSS stroke-linecap (kebab-case)
517
+ * @property {Observable<'miter'|'round'|'bevel'|string>|'miter'|'round'|'bevel'|string} [strokeLinejoin] - CSS stroke-linejoin
518
+ * @property {Observable<'miter'|'round'|'bevel'|string>|'miter'|'round'|'bevel'|string} [stroke-linejoin] - CSS stroke-linejoin (kebab-case)
519
+ * @property {Observable<string>|string} [strokeMiterlimit] - CSS stroke-miterlimit
520
+ * @property {Observable<string>|string} [stroke-miterlimit] - CSS stroke-miterlimit (kebab-case)
521
+ * @property {Observable<string>|string} [strokeOpacity] - CSS stroke-opacity
522
+ * @property {Observable<string>|string} [stroke-opacity] - CSS stroke-opacity (kebab-case)
523
+ * @property {Observable<string>|string} [strokeWidth] - CSS stroke-width
524
+ * @property {Observable<string>|string} [stroke-width] - CSS stroke-width (kebab-case)
525
+ * @property {Observable<string>|string} [tabSize] - CSS tab-size
526
+ * @property {Observable<string>|string} [tab-size] - CSS tab-size (kebab-case)
527
+ * @property {Observable<'auto'|'fixed'|string>|'auto'|'fixed'|string} [tableLayout] - CSS table-layout
528
+ * @property {Observable<'auto'|'fixed'|string>|'auto'|'fixed'|string} [table-layout] - CSS table-layout (kebab-case)
529
+ * @property {Observable<'left'|'right'|'center'|'justify'|'start'|'end'|'justify-all'|'match-parent'|string>|'left'|'right'|'center'|'justify'|'start'|'end'|'justify-all'|'match-parent'|string} [textAlign] - CSS text-align
530
+ * @property {Observable<'left'|'right'|'center'|'justify'|'start'|'end'|'justify-all'|'match-parent'|string>|'left'|'right'|'center'|'justify'|'start'|'end'|'justify-all'|'match-parent'|string} [text-align] - CSS text-align (kebab-case)
531
+ * @property {Observable<'auto'|'left'|'right'|'center'|'justify'|'start'|'end'|string>|'auto'|'left'|'right'|'center'|'justify'|'start'|'end'|string} [textAlignLast] - CSS text-align-last
532
+ * @property {Observable<'auto'|'left'|'right'|'center'|'justify'|'start'|'end'|string>|'auto'|'left'|'right'|'center'|'justify'|'start'|'end'|string} [text-align-last] - CSS text-align-last (kebab-case)
533
+ * @property {Observable<'start'|'middle'|'end'|string>|'start'|'middle'|'end'|string} [textAnchor] - CSS text-anchor
534
+ * @property {Observable<'start'|'middle'|'end'|string>|'start'|'middle'|'end'|string} [text-anchor] - CSS text-anchor (kebab-case)
535
+ * @property {Observable<'none'|'underline'|'overline'|'line-through'|string>|'none'|'underline'|'overline'|'line-through'|string} [textDecoration] - CSS text-decoration
536
+ * @property {Observable<'none'|'underline'|'overline'|'line-through'|string>|'none'|'underline'|'overline'|'line-through'|string} [text-decoration] - CSS text-decoration (kebab-case)
537
+ * @property {Observable<string>|string} [textDecorationColor] - CSS text-decoration-color
538
+ * @property {Observable<string>|string} [text-decoration-color] - CSS text-decoration-color (kebab-case)
539
+ * @property {Observable<'none'|'underline'|'overline'|'line-through'|'blink'|string>|'none'|'underline'|'overline'|'line-through'|'blink'|string} [textDecorationLine] - CSS text-decoration-line
540
+ * @property {Observable<'none'|'underline'|'overline'|'line-through'|'blink'|string>|'none'|'underline'|'overline'|'line-through'|'blink'|string} [text-decoration-line] - CSS text-decoration-line (kebab-case)
541
+ * @property {Observable<'solid'|'double'|'dotted'|'dashed'|'wavy'|string>|'solid'|'double'|'dotted'|'dashed'|'wavy'|string} [textDecorationStyle] - CSS text-decoration-style
542
+ * @property {Observable<'solid'|'double'|'dotted'|'dashed'|'wavy'|string>|'solid'|'double'|'dotted'|'dashed'|'wavy'|string} [text-decoration-style] - CSS text-decoration-style (kebab-case)
543
+ * @property {Observable<string>|string} [textDecorationThickness] - CSS text-decoration-thickness
544
+ * @property {Observable<string>|string} [text-decoration-thickness] - CSS text-decoration-thickness (kebab-case)
545
+ * @property {Observable<string>|string} [textIndent] - CSS text-indent
546
+ * @property {Observable<string>|string} [text-indent] - CSS text-indent (kebab-case)
547
+ * @property {Observable<'clip'|'ellipsis'|string>|'clip'|'ellipsis'|string} [textOverflow] - CSS text-overflow
548
+ * @property {Observable<'clip'|'ellipsis'|string>|'clip'|'ellipsis'|string} [text-overflow] - CSS text-overflow (kebab-case)
549
+ * @property {Observable<'auto'|'optimizeSpeed'|'optimizeLegibility'|'geometricPrecision'|string>|'auto'|'optimizeSpeed'|'optimizeLegibility'|'geometricPrecision'|string} [textRendering] - CSS text-rendering
550
+ * @property {Observable<'auto'|'optimizeSpeed'|'optimizeLegibility'|'geometricPrecision'|string>|'auto'|'optimizeSpeed'|'optimizeLegibility'|'geometricPrecision'|string} [text-rendering] - CSS text-rendering (kebab-case)
551
+ * @property {Observable<string>|string} [textShadow] - CSS text-shadow
552
+ * @property {Observable<string>|string} [text-shadow] - CSS text-shadow (kebab-case)
553
+ * @property {Observable<string>|string} [textSizeAdjust] - CSS text-size-adjust
554
+ * @property {Observable<string>|string} [text-size-adjust] - CSS text-size-adjust (kebab-case)
555
+ * @property {Observable<'none'|'uppercase'|'lowercase'|'capitalize'|'full-width'|string>|'none'|'uppercase'|'lowercase'|'capitalize'|'full-width'|string} [textTransform] - CSS text-transform
556
+ * @property {Observable<'none'|'uppercase'|'lowercase'|'capitalize'|'full-width'|string>|'none'|'uppercase'|'lowercase'|'capitalize'|'full-width'|string} [text-transform] - CSS text-transform (kebab-case)
557
+ * @property {Observable<string>|string} [textUnderlineOffset] - CSS text-underline-offset
558
+ * @property {Observable<string>|string} [text-underline-offset] - CSS text-underline-offset (kebab-case)
559
+ * @property {Observable<'wrap'|'nowrap'|'balance'|'pretty'|'stable'|string>|'wrap'|'nowrap'|'balance'|'pretty'|'stable'|string} [textWrap] - CSS text-wrap
560
+ * @property {Observable<'wrap'|'nowrap'|'balance'|'pretty'|'stable'|string>|'wrap'|'nowrap'|'balance'|'pretty'|'stable'|string} [text-wrap] - CSS text-wrap (kebab-case)
561
+ * @property {Observable<string>|string} [top] - CSS top
562
+ * @property {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} [touchAction] - CSS touch-action
563
+ * @property {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} [touch-action] - CSS touch-action (kebab-case)
564
+ * @property {Observable<string>|string} [transform] - CSS transform
565
+ * @property {Observable<'content-box'|'border-box'|'fill-box'|'stroke-box'|'view-box'|string>|'content-box'|'border-box'|'fill-box'|'stroke-box'|'view-box'|string} [transformBox] - CSS transform-box
566
+ * @property {Observable<'content-box'|'border-box'|'fill-box'|'stroke-box'|'view-box'|string>|'content-box'|'border-box'|'fill-box'|'stroke-box'|'view-box'|string} [transform-box] - CSS transform-box (kebab-case)
567
+ * @property {Observable<string>|string} [transformOrigin] - CSS transform-origin
568
+ * @property {Observable<string>|string} [transform-origin] - CSS transform-origin (kebab-case)
569
+ * @property {Observable<'flat'|'preserve-3d'|string>|'flat'|'preserve-3d'|string} [transformStyle] - CSS transform-style
570
+ * @property {Observable<'flat'|'preserve-3d'|string>|'flat'|'preserve-3d'|string} [transform-style] - CSS transform-style (kebab-case)
571
+ * @property {Observable<string>|string} [transition] - CSS transition
572
+ * @property {Observable<string>|string} [transitionBehavior] - CSS transition-behavior
573
+ * @property {Observable<string>|string} [transition-behavior] - CSS transition-behavior (kebab-case)
574
+ * @property {Observable<string>|string} [transitionDelay] - CSS transition-delay
575
+ * @property {Observable<string>|string} [transition-delay] - CSS transition-delay (kebab-case)
576
+ * @property {Observable<string>|string} [transitionDuration] - CSS transition-duration
577
+ * @property {Observable<string>|string} [transition-duration] - CSS transition-duration (kebab-case)
578
+ * @property {Observable<string>|string} [transitionProperty] - CSS transition-property
579
+ * @property {Observable<string>|string} [transition-property] - CSS transition-property (kebab-case)
580
+ * @property {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} [transitionTimingFunction] - CSS transition-timing-function
581
+ * @property {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} [transition-timing-function] - CSS transition-timing-function (kebab-case)
582
+ * @property {Observable<string>|string} [translate] - CSS translate
583
+ * @property {Observable<'normal'|'embed'|'bidi-override'|'isolate'|'isolate-override'|'plaintext'|string>|'normal'|'embed'|'bidi-override'|'isolate'|'isolate-override'|'plaintext'|string} [unicodeBidi] - CSS unicode-bidi
584
+ * @property {Observable<'normal'|'embed'|'bidi-override'|'isolate'|'isolate-override'|'plaintext'|string>|'normal'|'embed'|'bidi-override'|'isolate'|'isolate-override'|'plaintext'|string} [unicode-bidi] - CSS unicode-bidi (kebab-case)
585
+ * @property {Observable<'none'|'auto'|'text'|'all'|'contain'|string>|'none'|'auto'|'text'|'all'|'contain'|string} [userSelect] - CSS user-select
586
+ * @property {Observable<'none'|'auto'|'text'|'all'|'contain'|string>|'none'|'auto'|'text'|'all'|'contain'|string} [user-select] - CSS user-select (kebab-case)
587
+ * @property {Observable<'baseline'|'top'|'middle'|'bottom'|'text-top'|'text-bottom'|'sub'|'super'|string>|'baseline'|'top'|'middle'|'bottom'|'text-top'|'text-bottom'|'sub'|'super'|string} [verticalAlign] - CSS vertical-align
588
+ * @property {Observable<'baseline'|'top'|'middle'|'bottom'|'text-top'|'text-bottom'|'sub'|'super'|string>|'baseline'|'top'|'middle'|'bottom'|'text-top'|'text-bottom'|'sub'|'super'|string} [vertical-align] - CSS vertical-align (kebab-case)
589
+ * @property {Observable<'visible'|'hidden'|'collapse'|string>|'visible'|'hidden'|'collapse'|string} [visibility] - CSS visibility
590
+ * @property {Observable<'normal'|'nowrap'|'pre'|'pre-wrap'|'pre-line'|'break-spaces'|string>|'normal'|'nowrap'|'pre'|'pre-wrap'|'pre-line'|'break-spaces'|string} [whiteSpace] - CSS white-space
591
+ * @property {Observable<'normal'|'nowrap'|'pre'|'pre-wrap'|'pre-line'|'break-spaces'|string>|'normal'|'nowrap'|'pre'|'pre-wrap'|'pre-line'|'break-spaces'|string} [white-space] - CSS white-space (kebab-case)
592
+ * @property {Observable<'collapse'|'preserve'|'preserve-breaks'|'preserve-spaces'|'break-spaces'|string>|'collapse'|'preserve'|'preserve-breaks'|'preserve-spaces'|'break-spaces'|string} [whiteSpaceCollapse] - CSS white-space-collapse
593
+ * @property {Observable<'collapse'|'preserve'|'preserve-breaks'|'preserve-spaces'|'break-spaces'|string>|'collapse'|'preserve'|'preserve-breaks'|'preserve-spaces'|'break-spaces'|string} [white-space-collapse] - CSS white-space-collapse (kebab-case)
594
+ * @property {Observable<string>|string} [widows] - CSS widows
595
+ * @property {Observable<string>|string} [width] - CSS width
596
+ * @property {Observable<string>|string} [willChange] - CSS will-change
597
+ * @property {Observable<string>|string} [will-change] - CSS will-change (kebab-case)
598
+ * @property {Observable<'normal'|'break-all'|'keep-all'|'break-word'|string>|'normal'|'break-all'|'keep-all'|'break-word'|string} [wordBreak] - CSS word-break
599
+ * @property {Observable<'normal'|'break-all'|'keep-all'|'break-word'|string>|'normal'|'break-all'|'keep-all'|'break-word'|string} [word-break] - CSS word-break (kebab-case)
600
+ * @property {Observable<string>|string} [wordSpacing] - CSS word-spacing
601
+ * @property {Observable<string>|string} [word-spacing] - CSS word-spacing (kebab-case)
602
+ * @property {Observable<'normal'|'break-word'|'anywhere'|string>|'normal'|'break-word'|'anywhere'|string} [wordWrap] - CSS word-wrap
603
+ * @property {Observable<'normal'|'break-word'|'anywhere'|string>|'normal'|'break-word'|'anywhere'|string} [word-wrap] - CSS word-wrap (kebab-case)
604
+ * @property {Observable<'horizontal-tb'|'vertical-rl'|'vertical-lr'|'sideways-rl'|'sideways-lr'|string>|'horizontal-tb'|'vertical-rl'|'vertical-lr'|'sideways-rl'|'sideways-lr'|string} [writingMode] - CSS writing-mode
605
+ * @property {Observable<'horizontal-tb'|'vertical-rl'|'vertical-lr'|'sideways-rl'|'sideways-lr'|string>|'horizontal-tb'|'vertical-rl'|'vertical-lr'|'sideways-rl'|'sideways-lr'|string} [writing-mode] - CSS writing-mode (kebab-case)
606
+ * @property {Observable<string>|string} [zIndex] - CSS z-index
607
+ * @property {Observable<string>|string} [z-index] - CSS z-index (kebab-case)
608
+ */
609
+
610
+ /**
611
+ * Reactive class binding — maps class names to observable or plain booleans.
612
+ * @typedef {Object.<string, Observable<boolean>|boolean>} NdClassMap
613
+ */
614
+
615
+ /**
616
+ * Custom data attributes (data-*).
617
+ * Any key prefixed with "data-" is valid. Values are always strings in the DOM.
618
+ * @typedef {Object} NdDataAttributes
619
+ * @property {string} [data-id] - Element identifier
620
+ * @property {string} [data-name] - Element name
621
+ * @property {string} [data-value] - Element value
622
+ * @property {string} [data-type] - Element type
623
+ * @property {string} [data-index] - Element index
624
+ * @property {string} [data-key] - Element key
625
+ * @property {string} [data-label] - Element label
626
+ * @property {string} [data-title] - Element title
627
+ * @property {string} [data-href] - Element href
628
+ * @property {string} [data-src] - Element src
629
+ * @property {string} [data-target] - Element target
630
+ * @property {string} [data-action] - Element action
631
+ * @property {string} [data-method] - Element method
632
+ * @property {string} [data-url] - Element url
633
+ * @property {string} [data-route] - Router route name
634
+ * @property {string} [data-component] - Component name
635
+ * @property {string} [data-state] - Component state
636
+ * @property {string} [data-size] - Element size
637
+ * @property {string} [data-color] - Element color
638
+ * @property {string} [data-theme] - Theme name
639
+ * @property {string} [data-variant] - Variant name
640
+ * @property {string} [data-disabled] - Disabled state
641
+ * @property {string} [data-active] - Active state
642
+ * @property {string} [data-selected] - Selected state
643
+ * @property {string} [data-checked] - Checked state
644
+ * @property {string} [data-open] - Open state
645
+ * @property {string} [data-visible] - Visible state
646
+ * @property {string} [data-loading] - Loading state
647
+ * @property {string} [data-error] - Error state
648
+ * @property {string} [data-count] - Item count
649
+ * @property {string} [data-total] - Total count
650
+ * @property {string} [data-page] - Page number
651
+ * @property {string} [data-step] - Step number
652
+ * @property {string} [data-min] - Minimum value
653
+ * @property {string} [data-max] - Maximum value
654
+ * @property {string} [data-format] - Data format
655
+ * @property {string} [data-locale] - Locale string
656
+ * @property {string} [data-tooltip] - Tooltip content
657
+ * @property {string} [data-placement] - Tooltip/popover placement
658
+ * @property {string} [data-trigger] - Trigger type
659
+ * @property {string} [data-toggle] - Toggle target
660
+ * @property {string} [data-dismiss] - Dismiss target
661
+ * @property {string} [data-testid] - Test identifier
662
+ * @property {string} [data-cy] - Cypress test identifier
663
+ */
664
+
665
+ /**
666
+ * ARIA accessibility attributes.
667
+ * @typedef {Object} NdAriaAttributes
668
+ * @property {'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'} [role] - ARIA role
669
+ * @property {Observable<string>|string} [aria-activedescendant] - aria-activedescendant
670
+ * @property {Observable<string>|string} [ariaactivedescendant] - aria-activedescendant (camelCase)
671
+ * @property {Observable<string>|string} [aria-atomic] - aria-atomic
672
+ * @property {Observable<string>|string} [ariaatomic] - aria-atomic (camelCase)
673
+ * @property {Observable<string>|string} [aria-autocomplete] - aria-autocomplete
674
+ * @property {Observable<string>|string} [ariaautocomplete] - aria-autocomplete (camelCase)
675
+ * @property {Observable<string>|string} [aria-braillelabel] - aria-braillelabel
676
+ * @property {Observable<string>|string} [ariabraillelabel] - aria-braillelabel (camelCase)
677
+ * @property {Observable<string>|string} [aria-brailleroledescription] - aria-brailleroledescription
678
+ * @property {Observable<string>|string} [ariabrailleroledescription] - aria-brailleroledescription (camelCase)
679
+ * @property {Observable<string>|string} [aria-busy] - aria-busy
680
+ * @property {Observable<string>|string} [ariabusy] - aria-busy (camelCase)
681
+ * @property {Observable<string>|string} [aria-checked] - aria-checked
682
+ * @property {Observable<string>|string} [ariachecked] - aria-checked (camelCase)
683
+ * @property {Observable<string>|string} [aria-colcount] - aria-colcount
684
+ * @property {Observable<string>|string} [ariacolcount] - aria-colcount (camelCase)
685
+ * @property {Observable<string>|string} [aria-colindex] - aria-colindex
686
+ * @property {Observable<string>|string} [ariacolindex] - aria-colindex (camelCase)
687
+ * @property {Observable<string>|string} [aria-colindextext] - aria-colindextext
688
+ * @property {Observable<string>|string} [ariacolindextext] - aria-colindextext (camelCase)
689
+ * @property {Observable<string>|string} [aria-colspan] - aria-colspan
690
+ * @property {Observable<string>|string} [ariacolspan] - aria-colspan (camelCase)
691
+ * @property {Observable<string>|string} [aria-controls] - aria-controls
692
+ * @property {Observable<string>|string} [ariacontrols] - aria-controls (camelCase)
693
+ * @property {Observable<string>|string} [aria-current] - aria-current
694
+ * @property {Observable<string>|string} [ariacurrent] - aria-current (camelCase)
695
+ * @property {Observable<string>|string} [aria-describedby] - aria-describedby
696
+ * @property {Observable<string>|string} [ariadescribedby] - aria-describedby (camelCase)
697
+ * @property {Observable<string>|string} [aria-description] - aria-description
698
+ * @property {Observable<string>|string} [ariadescription] - aria-description (camelCase)
699
+ * @property {Observable<string>|string} [aria-details] - aria-details
700
+ * @property {Observable<string>|string} [ariadetails] - aria-details (camelCase)
701
+ * @property {Observable<string>|string} [aria-disabled] - aria-disabled
702
+ * @property {Observable<string>|string} [ariadisabled] - aria-disabled (camelCase)
703
+ * @property {Observable<string>|string} [aria-dropeffect] - aria-dropeffect
704
+ * @property {Observable<string>|string} [ariadropeffect] - aria-dropeffect (camelCase)
705
+ * @property {Observable<string>|string} [aria-errormessage] - aria-errormessage
706
+ * @property {Observable<string>|string} [ariaerrormessage] - aria-errormessage (camelCase)
707
+ * @property {Observable<string>|string} [aria-expanded] - aria-expanded
708
+ * @property {Observable<string>|string} [ariaexpanded] - aria-expanded (camelCase)
709
+ * @property {Observable<string>|string} [aria-flowto] - aria-flowto
710
+ * @property {Observable<string>|string} [ariaflowto] - aria-flowto (camelCase)
711
+ * @property {Observable<string>|string} [aria-grabbed] - aria-grabbed
712
+ * @property {Observable<string>|string} [ariagrabbed] - aria-grabbed (camelCase)
713
+ * @property {Observable<string>|string} [aria-haspopup] - aria-haspopup
714
+ * @property {Observable<string>|string} [ariahaspopup] - aria-haspopup (camelCase)
715
+ * @property {Observable<string>|string} [aria-hidden] - aria-hidden
716
+ * @property {Observable<string>|string} [ariahidden] - aria-hidden (camelCase)
717
+ * @property {Observable<string>|string} [aria-invalid] - aria-invalid
718
+ * @property {Observable<string>|string} [ariainvalid] - aria-invalid (camelCase)
719
+ * @property {Observable<string>|string} [aria-keyshortcuts] - aria-keyshortcuts
720
+ * @property {Observable<string>|string} [ariakeyshortcuts] - aria-keyshortcuts (camelCase)
721
+ * @property {Observable<string>|string} [aria-label] - aria-label
722
+ * @property {Observable<string>|string} [arialabel] - aria-label (camelCase)
723
+ * @property {Observable<string>|string} [aria-labelledby] - aria-labelledby
724
+ * @property {Observable<string>|string} [arialabelledby] - aria-labelledby (camelCase)
725
+ * @property {Observable<string>|string} [aria-level] - aria-level
726
+ * @property {Observable<string>|string} [arialevel] - aria-level (camelCase)
727
+ * @property {Observable<string>|string} [aria-live] - aria-live
728
+ * @property {Observable<string>|string} [arialive] - aria-live (camelCase)
729
+ * @property {Observable<string>|string} [aria-modal] - aria-modal
730
+ * @property {Observable<string>|string} [ariamodal] - aria-modal (camelCase)
731
+ * @property {Observable<string>|string} [aria-multiline] - aria-multiline
732
+ * @property {Observable<string>|string} [ariamultiline] - aria-multiline (camelCase)
733
+ * @property {Observable<string>|string} [aria-multiselectable] - aria-multiselectable
734
+ * @property {Observable<string>|string} [ariamultiselectable] - aria-multiselectable (camelCase)
735
+ * @property {Observable<string>|string} [aria-orientation] - aria-orientation
736
+ * @property {Observable<string>|string} [ariaorientation] - aria-orientation (camelCase)
737
+ * @property {Observable<string>|string} [aria-owns] - aria-owns
738
+ * @property {Observable<string>|string} [ariaowns] - aria-owns (camelCase)
739
+ * @property {Observable<string>|string} [aria-placeholder] - aria-placeholder
740
+ * @property {Observable<string>|string} [ariaplaceholder] - aria-placeholder (camelCase)
741
+ * @property {Observable<string>|string} [aria-posinset] - aria-posinset
742
+ * @property {Observable<string>|string} [ariaposinset] - aria-posinset (camelCase)
743
+ * @property {Observable<string>|string} [aria-pressed] - aria-pressed
744
+ * @property {Observable<string>|string} [ariapressed] - aria-pressed (camelCase)
745
+ * @property {Observable<string>|string} [aria-readonly] - aria-readonly
746
+ * @property {Observable<string>|string} [ariareadonly] - aria-readonly (camelCase)
747
+ * @property {Observable<string>|string} [aria-relevant] - aria-relevant
748
+ * @property {Observable<string>|string} [ariarelevant] - aria-relevant (camelCase)
749
+ * @property {Observable<string>|string} [aria-required] - aria-required
750
+ * @property {Observable<string>|string} [ariarequired] - aria-required (camelCase)
751
+ * @property {Observable<string>|string} [aria-roledescription] - aria-roledescription
752
+ * @property {Observable<string>|string} [ariaroledescription] - aria-roledescription (camelCase)
753
+ * @property {Observable<string>|string} [aria-rowcount] - aria-rowcount
754
+ * @property {Observable<string>|string} [ariarowcount] - aria-rowcount (camelCase)
755
+ * @property {Observable<string>|string} [aria-rowindex] - aria-rowindex
756
+ * @property {Observable<string>|string} [ariarowindex] - aria-rowindex (camelCase)
757
+ * @property {Observable<string>|string} [aria-rowindextext] - aria-rowindextext
758
+ * @property {Observable<string>|string} [ariarowindextext] - aria-rowindextext (camelCase)
759
+ * @property {Observable<string>|string} [aria-rowspan] - aria-rowspan
760
+ * @property {Observable<string>|string} [ariarowspan] - aria-rowspan (camelCase)
761
+ * @property {Observable<string>|string} [aria-selected] - aria-selected
762
+ * @property {Observable<string>|string} [ariaselected] - aria-selected (camelCase)
763
+ * @property {Observable<string>|string} [aria-setsize] - aria-setsize
764
+ * @property {Observable<string>|string} [ariasetsize] - aria-setsize (camelCase)
765
+ * @property {Observable<string>|string} [aria-sort] - aria-sort
766
+ * @property {Observable<string>|string} [ariasort] - aria-sort (camelCase)
767
+ * @property {Observable<string>|string} [aria-valuemax] - aria-valuemax
768
+ * @property {Observable<string>|string} [ariavaluemax] - aria-valuemax (camelCase)
769
+ * @property {Observable<string>|string} [aria-valuemin] - aria-valuemin
770
+ * @property {Observable<string>|string} [ariavaluemin] - aria-valuemin (camelCase)
771
+ * @property {Observable<string>|string} [aria-valuenow] - aria-valuenow
772
+ * @property {Observable<string>|string} [ariavaluenow] - aria-valuenow (camelCase)
773
+ * @property {Observable<string>|string} [aria-valuetext] - aria-valuetext
774
+ * @property {Observable<string>|string} [ariavaluetext] - aria-valuetext (camelCase)
775
+ */
776
+
777
+ /**
778
+ * Global HTML attributes shared by all elements.
779
+ * @typedef {NdDataAttributes & NdAriaAttributes & Object} GlobalAttributes
780
+ * @property {Observable<string>|string} [id] - Unique identifier
781
+ * @property {Observable<string>|NdClassMap|string} [class] - CSS classes (string or reactive map)
782
+ * @property {Observable<NdStyleMap>|NdStyleMap} [style] - Inline styles
783
+ * @property {string} [title] - Tooltip text
784
+ * @property {string} [lang] - Language code
785
+ * @property {string} [dir] - Text direction: 'ltr'|'rtl'|'auto'
786
+ * @property {Observable<boolean>|boolean} [hidden] - Hide element
787
+ * @property {Observable<boolean>|boolean} [draggable] - Make element draggable
788
+ * @property {Observable<boolean>|boolean} [contenteditable] - Make content editable
789
+ * @property {Observable<boolean>|boolean} [contentEditable] - Make content editable (camelCase)
790
+ * @property {string} [tabindex] - Tab order
791
+ * @property {string} [tabIndex] - Tab order (camelCase)
792
+ * @property {string} [accesskey] - Keyboard shortcut
793
+ * @property {string} [accessKey] - Keyboard shortcut (camelCase)
794
+ * @property {Observable<boolean>|boolean} [spellcheck] - Enable spellcheck
795
+ * @property {Observable<boolean>|boolean} [spellCheck] - Enable spellcheck (camelCase)
796
+ */
797
+
798
+ /**
799
+ * Attributes shared by form-related elements.
800
+ * @typedef {Object} SharedFormAttributes
801
+ * @property {string} [name] - Field name
802
+ * @property {Observable<boolean>|boolean} [disabled] - Disable the field
803
+ * @property {Observable<boolean>|boolean} [required] - Mark as required
804
+ * @property {Observable<boolean>|boolean} [autofocus] - Auto-focus on page load
805
+ * @property {Observable<boolean>|boolean} [autoFocus] - Auto-focus on page load (camelCase)
806
+ * @property {string} [form] - Associated form id
807
+ */
808
+
809
+ // ─────────────────────────────────────────────
810
+ // Element-specific attribute types
811
+ // ─────────────────────────────────────────────
812
+
813
+ /**
814
+ * @typedef {GlobalAttributes & {
815
+ * src: Observable<string>|string,
816
+ * alt: Observable<string>|string,
817
+ * width: Observable<string>|string|number,
818
+ * height: Observable<string>|string|number,
819
+ * loading: 'lazy'|'eager'|'auto',
820
+ * decoding: 'async'|'sync'|'auto',
821
+ * srcset: string,
822
+ * srcSet: string,
823
+ * sizes: string,
824
+ * crossorigin: 'anonymous'|'use-credentials',
825
+ * crossOrigin: 'anonymous'|'use-credentials',
826
+ * referrerpolicy: string,
827
+ * referrerPolicy: string,
828
+ * fetchpriority: 'high'|'low'|'auto',
829
+ * fetchPriority: 'high'|'low'|'auto',
830
+ * }} ImgAttributes
831
+ */
832
+
833
+ /**
834
+ * @typedef {GlobalAttributes & {
835
+ * href: Observable<string>|string,
836
+ * target: '_blank'|'_self'|'_parent'|'_top'|string,
837
+ * rel: string,
838
+ * download: Observable<boolean>|boolean|string,
839
+ * hreflang: string,
840
+ * hrefLang: string,
841
+ * type: string,
842
+ * referrerpolicy: string,
843
+ * referrerPolicy: string,
844
+ * }} AnchorAttributes
845
+ */
846
+
847
+ /**
848
+ * @typedef {GlobalAttributes & SharedFormAttributes & {
849
+ * type: 'button'|'submit'|'reset',
850
+ * value: Observable<string>|string,
851
+ * }} ButtonAttributes
852
+ */
853
+
854
+ /**
855
+ * @typedef {GlobalAttributes & SharedFormAttributes & {
856
+ * type: 'text'|'email'|'password'|'number'|'tel'|'url'|'search'|
857
+ * 'date'|'time'|'datetime-local'|'week'|'month'|
858
+ * 'checkbox'|'radio'|'range'|'color'|'file'|'hidden',
859
+ * value: Observable<string>|string,
860
+ * placeholder: Observable<string>|string,
861
+ * checked: Observable<boolean>|boolean,
862
+ * readonly: Observable<boolean>|boolean,
863
+ * readOnly: Observable<boolean>|boolean,
864
+ * multiple: Observable<boolean>|boolean,
865
+ * min: Observable<string>|string|number,
866
+ * max: Observable<string>|string|number,
867
+ * step: Observable<string>|string|number,
868
+ * minlength: number,
869
+ * minLength: number,
870
+ * maxlength: number,
871
+ * maxLength: number,
872
+ * pattern: string,
873
+ * accept: string,
874
+ * autocomplete: 'on'|'off'|string,
875
+ * autoComplete: 'on'|'off'|string,
876
+ * list: string,
877
+ * }} InputAttributes
878
+ */
879
+
880
+ /**
881
+ * @typedef {GlobalAttributes & SharedFormAttributes & {
882
+ * value: Observable<string>|string,
883
+ * placeholder: Observable<string>|string,
884
+ * readonly: Observable<boolean>|boolean,
885
+ * readOnly: Observable<boolean>|boolean,
886
+ * rows: number,
887
+ * cols: number,
888
+ * minlength: number,
889
+ * minLength: number,
890
+ * maxlength: number,
891
+ * maxLength: number,
892
+ * wrap: 'hard'|'soft'|'off',
893
+ * autocomplete: 'on'|'off'|string,
894
+ * autoComplete: 'on'|'off'|string,
895
+ * spellcheck: Observable<boolean>|boolean,
896
+ * spellCheck: Observable<boolean>|boolean,
897
+ * }} TextAreaAttributes
898
+ */
899
+
900
+ /**
901
+ * @typedef {GlobalAttributes & SharedFormAttributes & {
902
+ * value: Observable<string>|string,
903
+ * multiple: Observable<boolean>|boolean,
904
+ * size: number,
905
+ * }} SelectAttributes
906
+ */
907
+
908
+ /**
909
+ * @typedef {GlobalAttributes & {
910
+ * value: Observable<string>|string,
911
+ * selected: Observable<boolean>|boolean,
912
+ * disabled: Observable<boolean>|boolean,
913
+ * }} OptionAttributes
914
+ */
915
+
916
+ /**
917
+ * @typedef {GlobalAttributes & SharedFormAttributes & {
918
+ * action: string,
919
+ * method: 'get'|'post',
920
+ * enctype: 'application/x-www-form-urlencoded'|'multipart/form-data'|'text/plain',
921
+ * encType: 'application/x-www-form-urlencoded'|'multipart/form-data'|'text/plain',
922
+ * novalidate: Observable<boolean>|boolean,
923
+ * noValidate: Observable<boolean>|boolean,
924
+ * target: '_blank'|'_self'|'_parent'|'_top'|string,
925
+ * autocomplete: 'on'|'off',
926
+ * autoComplete: 'on'|'off',
927
+ * }} FormAttributes
928
+ */
929
+
930
+ /**
931
+ * @typedef {GlobalAttributes & {
932
+ * src: Observable<string>|string,
933
+ * autoplay: Observable<boolean>|boolean,
934
+ * autoPlay: Observable<boolean>|boolean,
935
+ * controls: Observable<boolean>|boolean,
936
+ * loop: Observable<boolean>|boolean,
937
+ * muted: Observable<boolean>|boolean,
938
+ * preload: 'auto'|'metadata'|'none',
939
+ * width: Observable<string>|string|number,
940
+ * height: Observable<string>|string|number,
941
+ * poster: string,
942
+ * playsinline: Observable<boolean>|boolean,
943
+ * playsInline: Observable<boolean>|boolean,
944
+ * crossorigin: 'anonymous'|'use-credentials',
945
+ * crossOrigin: 'anonymous'|'use-credentials',
946
+ * }} VideoAttributes
947
+ */
948
+
949
+ /**
950
+ * @typedef {GlobalAttributes & {
951
+ * src: Observable<string>|string,
952
+ * autoplay: Observable<boolean>|boolean,
953
+ * autoPlay: Observable<boolean>|boolean,
954
+ * controls: Observable<boolean>|boolean,
955
+ * loop: Observable<boolean>|boolean,
956
+ * muted: Observable<boolean>|boolean,
957
+ * preload: 'auto'|'metadata'|'none',
958
+ * crossorigin: 'anonymous'|'use-credentials',
959
+ * crossOrigin: 'anonymous'|'use-credentials',
960
+ * }} AudioAttributes
961
+ */
962
+
963
+ /**
964
+ * @typedef {GlobalAttributes & {
965
+ * width: Observable<string>|string|number,
966
+ * height: Observable<string>|string|number,
967
+ * }} CanvasAttributes
968
+ */
969
+
970
+ /**
971
+ * @typedef {GlobalAttributes & {
972
+ * open: Observable<boolean>|boolean,
973
+ * }} DetailsAttributes
974
+ */
975
+
976
+ /**
977
+ * @typedef {GlobalAttributes & {
978
+ * open: Observable<boolean>|boolean,
979
+ * }} DialogAttributes
980
+ */
981
+
982
+ /**
983
+ * @typedef {GlobalAttributes & {
984
+ * value: Observable<string>|string|number,
985
+ * max: number,
986
+ * }} ProgressAttributes
987
+ */
988
+
989
+ /**
990
+ * @typedef {GlobalAttributes & {
991
+ * value: Observable<string>|string|number,
992
+ * min: number,
993
+ * max: number,
994
+ * low: number,
995
+ * high: number,
996
+ * optimum: number,
997
+ * }} MeterAttributes
998
+ */
999
+
1000
+ /**
1001
+ * @typedef {GlobalAttributes & {
1002
+ * src: string,
1003
+ * type: string,
1004
+ * media: string,
1005
+ * }} SourceAttributes
1006
+ */
1007
+
1008
+ /**
1009
+ * @typedef {GlobalAttributes & {
1010
+ * colspan: number,
1011
+ * colSpan: number,
1012
+ * rowspan: number,
1013
+ * rowSpan: number,
1014
+ * headers: string,
1015
+ * scope: 'row'|'col'|'rowgroup'|'colgroup',
1016
+ * }} ThAttributes
1017
+ */
1018
+
1019
+ /**
1020
+ * @typedef {GlobalAttributes & {
1021
+ * colspan: number,
1022
+ * colSpan: number,
1023
+ * rowspan: number,
1024
+ * rowSpan: number,
1025
+ * headers: string,
1026
+ * }} TdAttributes
1027
+ */
1028
+
1029
+ /**
1030
+ * @typedef {GlobalAttributes & {
1031
+ * for: string,
1032
+ * htmlFor: string,
1033
+ * }} LabelAttributes
1034
+ */
1035
+
1036
+ /**
1037
+ * @typedef {GlobalAttributes & {
1038
+ * for: string,
1039
+ * form: string,
1040
+ * name: string,
1041
+ * }} OutputAttributes
1042
+ */
1043
+
1044
+ /**
1045
+ * @typedef {GlobalAttributes & {
1046
+ * datetime: string,
1047
+ * dateTime: string,
1048
+ * }} TimeAttributes
1049
+ */
1050
+
1051
+ /**
1052
+ * @typedef {GlobalAttributes & {
1053
+ * cite: string,
1054
+ * datetime: string,
1055
+ * dateTime: string,
1056
+ * }} ModAttributes
1057
+ */
1058
+
1059
+ /**
1060
+ * @typedef {GlobalAttributes & {
1061
+ * reversed: Observable<boolean>|boolean,
1062
+ * start: number,
1063
+ * type: '1'|'a'|'A'|'i'|'I',
1064
+ * }} OlAttributes
1065
+ */
1066
+
1067
+ /**
1068
+ * @typedef {GlobalAttributes & {
1069
+ * viewBox: string,
1070
+ * viewbox: string,
1071
+ * xmlns: string,
1072
+ * width: Observable<string>|string|number,
1073
+ * height: Observable<string>|string|number,
1074
+ * }} SvgAttributes
1075
+ */
1076
+
1077
+ /**
1078
+ * @typedef {GlobalAttributes & {
1079
+ * src: string,
1080
+ * kind: 'subtitles'|'captions'|'descriptions'|'chapters'|'metadata',
1081
+ * srclang: string,
1082
+ * srcLang: string,
1083
+ * label: string,
1084
+ * default: Observable<boolean>|boolean,
1085
+ * }} TrackAttributes
1086
+ */