native-document 1.0.94 → 1.0.98

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 (52) hide show
  1. package/{src/devtools/hrm → devtools}/ComponentRegistry.js +2 -2
  2. package/devtools/index.js +8 -0
  3. package/{src/devtools/plugin.js → devtools/plugin/dev-tools-plugin.js} +2 -2
  4. package/{src/devtools/hrm/nd-vite-hot-reload.js → devtools/transformers/nd-vite-devtools.js} +16 -6
  5. package/devtools/transformers/src/transformComponentForHrm.js +74 -0
  6. package/devtools/transformers/src/transformJsFile.js +9 -0
  7. package/devtools/transformers/src/utils.js +79 -0
  8. package/devtools/widget/Widget.js +48 -0
  9. package/devtools/widget/widget.css +81 -0
  10. package/devtools/widget.js +23 -0
  11. package/dist/native-document.components.min.js +2441 -1191
  12. package/dist/native-document.dev.js +2710 -1359
  13. package/dist/native-document.dev.js.map +1 -1
  14. package/dist/native-document.devtools.min.js +1 -1
  15. package/dist/native-document.min.js +1 -1
  16. package/docs/cache.md +1 -1
  17. package/docs/core-concepts.md +1 -1
  18. package/docs/native-document-element.md +51 -15
  19. package/docs/observables.md +310 -306
  20. package/docs/state-management.md +198 -193
  21. package/index.def.js +762 -26
  22. package/package.json +1 -1
  23. package/readme.md +1 -1
  24. package/src/core/data/ObservableChecker.js +2 -0
  25. package/src/core/data/ObservableItem.js +97 -0
  26. package/src/core/data/ObservableObject.js +182 -0
  27. package/src/core/data/Store.js +364 -34
  28. package/src/core/data/observable-helpers/object.js +2 -166
  29. package/src/core/elements/anchor.js +28 -20
  30. package/src/core/elements/control/for-each.js +1 -1
  31. package/src/core/utils/formatters.js +91 -0
  32. package/src/core/utils/localstorage.js +57 -0
  33. package/src/core/utils/validator.js +0 -2
  34. package/src/core/wrappers/DocumentObserver.js +102 -31
  35. package/src/core/wrappers/ElementCreator.js +5 -0
  36. package/src/core/wrappers/NDElement.js +32 -1
  37. package/src/core/wrappers/prototypes/nd-element.transition.extensions.js +83 -0
  38. package/src/devtools.js +9 -0
  39. package/src/fetch/NativeFetch.js +5 -2
  40. package/types/elements.d.ts +580 -2
  41. package/types/nd-element.d.ts +6 -0
  42. package/types/observable.d.ts +71 -15
  43. package/types/plugins-manager.d.ts +1 -1
  44. package/types/store.d.ts +33 -6
  45. package/hrm.js +0 -7
  46. package/src/devtools/app/App.js +0 -66
  47. package/src/devtools/app/app.css +0 -0
  48. package/src/devtools/hrm/transformComponent.js +0 -129
  49. package/src/devtools/index.js +0 -18
  50. package/src/devtools/widget/DevToolsWidget.js +0 -26
  51. /package/{src/devtools/hrm → devtools/transformers/templates}/hrm.hook.template.js +0 -0
  52. /package/{src/devtools/hrm → devtools/transformers/templates}/hrm.orbservable.hook.template.js +0 -0
@@ -24,7 +24,585 @@ export type ValidChild =
24
24
  type Observable<T> = ObservableItem<T> | T;
25
25
 
26
26
  type NdClassMap = Record<string, Observable<boolean>>;
27
- type NdStyleMap = Record<string, Observable<string>>;
27
+ interface NdStyleMap {
28
+ accentColor?: Observable<string> | string;
29
+ 'accent-color'?: Observable<string> | string;
30
+ alignContent?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string;
31
+ 'align-content'?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch' | 'start' | 'end' | 'baseline' | string;
32
+ alignItems?: Observable<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
33
+ 'align-items'?: Observable<'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
34
+ alignSelf?: Observable<'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
35
+ 'align-self'?: Observable<'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string> | 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline' | 'start' | 'end' | 'self-start' | 'self-end' | string;
36
+ animation?: Observable<string> | string;
37
+ animationComposition?: Observable<string> | string;
38
+ 'animation-composition'?: Observable<string> | string;
39
+ animationDelay?: Observable<string> | string;
40
+ 'animation-delay'?: Observable<string> | string;
41
+ animationDirection?: Observable<'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string> | 'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string;
42
+ 'animation-direction'?: Observable<'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string> | 'normal' | 'reverse' | 'alternate' | 'alternate-reverse' | string;
43
+ animationDuration?: Observable<string> | string;
44
+ 'animation-duration'?: Observable<string> | string;
45
+ animationFillMode?: Observable<'none' | 'forwards' | 'backwards' | 'both' | string> | 'none' | 'forwards' | 'backwards' | 'both' | string;
46
+ 'animation-fill-mode'?: Observable<'none' | 'forwards' | 'backwards' | 'both' | string> | 'none' | 'forwards' | 'backwards' | 'both' | string;
47
+ animationIterationCount?: Observable<string> | string;
48
+ 'animation-iteration-count'?: Observable<string> | string;
49
+ animationName?: Observable<string> | string;
50
+ 'animation-name'?: Observable<string> | string;
51
+ animationPlayState?: Observable<'running' | 'paused' | string> | 'running' | 'paused' | string;
52
+ 'animation-play-state'?: Observable<'running' | 'paused' | string> | 'running' | 'paused' | string;
53
+ animationTimingFunction?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
54
+ 'animation-timing-function'?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
55
+ appearance?: Observable<'none' | 'auto' | 'button' | 'textfield' | 'menulist' | string> | 'none' | 'auto' | 'button' | 'textfield' | 'menulist' | string;
56
+ aspectRatio?: Observable<string> | string;
57
+ 'aspect-ratio'?: Observable<string> | string;
58
+ backdropFilter?: Observable<string> | string;
59
+ 'backdrop-filter'?: Observable<string> | string;
60
+ backfaceVisibility?: Observable<'visible' | 'hidden' | string> | 'visible' | 'hidden' | string;
61
+ 'backface-visibility'?: Observable<'visible' | 'hidden' | string> | 'visible' | 'hidden' | string;
62
+ background?: Observable<string> | string;
63
+ backgroundAttachment?: Observable<'scroll' | 'fixed' | 'local' | string> | 'scroll' | 'fixed' | 'local' | string;
64
+ 'background-attachment'?: Observable<'scroll' | 'fixed' | 'local' | string> | 'scroll' | 'fixed' | 'local' | string;
65
+ backgroundBlendMode?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
66
+ 'background-blend-mode'?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
67
+ backgroundClip?: Observable<'border-box' | 'padding-box' | 'content-box' | 'text' | string> | 'border-box' | 'padding-box' | 'content-box' | 'text' | string;
68
+ 'background-clip'?: Observable<'border-box' | 'padding-box' | 'content-box' | 'text' | string> | 'border-box' | 'padding-box' | 'content-box' | 'text' | string;
69
+ backgroundColor?: Observable<string> | string;
70
+ 'background-color'?: Observable<string> | string;
71
+ backgroundImage?: Observable<string> | string;
72
+ 'background-image'?: Observable<string> | string;
73
+ backgroundOrigin?: Observable<'border-box' | 'padding-box' | 'content-box' | string> | 'border-box' | 'padding-box' | 'content-box' | string;
74
+ 'background-origin'?: Observable<'border-box' | 'padding-box' | 'content-box' | string> | 'border-box' | 'padding-box' | 'content-box' | string;
75
+ backgroundPosition?: Observable<string> | string;
76
+ 'background-position'?: Observable<string> | string;
77
+ backgroundPositionX?: Observable<string> | string;
78
+ 'background-position-x'?: Observable<string> | string;
79
+ backgroundPositionY?: Observable<string> | string;
80
+ 'background-position-y'?: Observable<string> | string;
81
+ backgroundRepeat?: Observable<'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string> | 'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string;
82
+ 'background-repeat'?: Observable<'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string> | 'repeat' | 'no-repeat' | 'repeat-x' | 'repeat-y' | 'round' | 'space' | string;
83
+ backgroundSize?: Observable<'cover' | 'contain' | 'auto' | string> | 'cover' | 'contain' | 'auto' | string;
84
+ 'background-size'?: Observable<'cover' | 'contain' | 'auto' | string> | 'cover' | 'contain' | 'auto' | string;
85
+ border?: Observable<string> | string;
86
+ borderBlock?: Observable<string> | string;
87
+ 'border-block'?: Observable<string> | string;
88
+ borderBlockEnd?: Observable<string> | string;
89
+ 'border-block-end'?: Observable<string> | string;
90
+ borderBlockStart?: Observable<string> | string;
91
+ 'border-block-start'?: Observable<string> | string;
92
+ borderBottom?: Observable<string> | string;
93
+ 'border-bottom'?: Observable<string> | string;
94
+ borderBottomColor?: Observable<string> | string;
95
+ 'border-bottom-color'?: Observable<string> | string;
96
+ borderBottomLeftRadius?: Observable<string> | string;
97
+ 'border-bottom-left-radius'?: Observable<string> | string;
98
+ borderBottomRightRadius?: Observable<string> | string;
99
+ 'border-bottom-right-radius'?: Observable<string> | string;
100
+ borderBottomStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
101
+ 'border-bottom-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
102
+ borderBottomWidth?: Observable<string> | string;
103
+ 'border-bottom-width'?: Observable<string> | string;
104
+ borderCollapse?: Observable<'collapse' | 'separate' | string> | 'collapse' | 'separate' | string;
105
+ 'border-collapse'?: Observable<'collapse' | 'separate' | string> | 'collapse' | 'separate' | string;
106
+ borderColor?: Observable<string> | string;
107
+ 'border-color'?: Observable<string> | string;
108
+ borderEndEndRadius?: Observable<string> | string;
109
+ 'border-end-end-radius'?: Observable<string> | string;
110
+ borderEndStartRadius?: Observable<string> | string;
111
+ 'border-end-start-radius'?: Observable<string> | string;
112
+ borderImage?: Observable<string> | string;
113
+ 'border-image'?: Observable<string> | string;
114
+ borderImageOutset?: Observable<string> | string;
115
+ 'border-image-outset'?: Observable<string> | string;
116
+ borderImageRepeat?: Observable<'stretch' | 'repeat' | 'round' | 'space' | string> | 'stretch' | 'repeat' | 'round' | 'space' | string;
117
+ 'border-image-repeat'?: Observable<'stretch' | 'repeat' | 'round' | 'space' | string> | 'stretch' | 'repeat' | 'round' | 'space' | string;
118
+ borderImageSlice?: Observable<string> | string;
119
+ 'border-image-slice'?: Observable<string> | string;
120
+ borderImageSource?: Observable<string> | string;
121
+ 'border-image-source'?: Observable<string> | string;
122
+ borderImageWidth?: Observable<string> | string;
123
+ 'border-image-width'?: Observable<string> | string;
124
+ borderInline?: Observable<string> | string;
125
+ 'border-inline'?: Observable<string> | string;
126
+ borderInlineEnd?: Observable<string> | string;
127
+ 'border-inline-end'?: Observable<string> | string;
128
+ borderInlineStart?: Observable<string> | string;
129
+ 'border-inline-start'?: Observable<string> | string;
130
+ borderLeft?: Observable<string> | string;
131
+ 'border-left'?: Observable<string> | string;
132
+ borderLeftColor?: Observable<string> | string;
133
+ 'border-left-color'?: Observable<string> | string;
134
+ borderLeftStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
135
+ 'border-left-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
136
+ borderLeftWidth?: Observable<string> | string;
137
+ 'border-left-width'?: Observable<string> | string;
138
+ borderRadius?: Observable<string> | string;
139
+ 'border-radius'?: Observable<string> | string;
140
+ borderRight?: Observable<string> | string;
141
+ 'border-right'?: Observable<string> | string;
142
+ borderRightColor?: Observable<string> | string;
143
+ 'border-right-color'?: Observable<string> | string;
144
+ borderRightStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
145
+ 'border-right-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
146
+ borderRightWidth?: Observable<string> | string;
147
+ 'border-right-width'?: Observable<string> | string;
148
+ borderSpacing?: Observable<string> | string;
149
+ 'border-spacing'?: Observable<string> | string;
150
+ borderStartEndRadius?: Observable<string> | string;
151
+ 'border-start-end-radius'?: Observable<string> | string;
152
+ borderStartStartRadius?: Observable<string> | string;
153
+ 'border-start-start-radius'?: Observable<string> | string;
154
+ borderStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
155
+ 'border-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
156
+ borderTop?: Observable<string> | string;
157
+ 'border-top'?: Observable<string> | string;
158
+ borderTopColor?: Observable<string> | string;
159
+ 'border-top-color'?: Observable<string> | string;
160
+ borderTopLeftRadius?: Observable<string> | string;
161
+ 'border-top-left-radius'?: Observable<string> | string;
162
+ borderTopRightRadius?: Observable<string> | string;
163
+ 'border-top-right-radius'?: Observable<string> | string;
164
+ borderTopStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
165
+ 'border-top-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
166
+ borderTopWidth?: Observable<string> | string;
167
+ 'border-top-width'?: Observable<string> | string;
168
+ borderWidth?: Observable<string> | string;
169
+ 'border-width'?: Observable<string> | string;
170
+ bottom?: Observable<string> | string;
171
+ boxDecorationBreak?: Observable<'slice' | 'clone' | string> | 'slice' | 'clone' | string;
172
+ 'box-decoration-break'?: Observable<'slice' | 'clone' | string> | 'slice' | 'clone' | string;
173
+ boxShadow?: Observable<string> | string;
174
+ 'box-shadow'?: Observable<string> | string;
175
+ boxSizing?: Observable<'border-box' | 'content-box' | string> | 'border-box' | 'content-box' | string;
176
+ 'box-sizing'?: Observable<'border-box' | 'content-box' | string> | 'border-box' | 'content-box' | string;
177
+ breakAfter?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
178
+ 'break-after'?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
179
+ breakBefore?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
180
+ 'break-before'?: Observable<'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string> | 'auto' | 'avoid' | 'always' | 'all' | 'avoid-page' | 'page' | 'left' | 'right' | 'column' | string;
181
+ breakInside?: Observable<'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string> | 'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string;
182
+ 'break-inside'?: Observable<'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string> | 'auto' | 'avoid' | 'avoid-page' | 'avoid-column' | string;
183
+ captionSide?: Observable<'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string> | 'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string;
184
+ 'caption-side'?: Observable<'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string> | 'top' | 'bottom' | 'block-start' | 'block-end' | 'inline-start' | 'inline-end' | string;
185
+ caretColor?: Observable<string> | string;
186
+ 'caret-color'?: Observable<string> | string;
187
+ clear?: Observable<'left' | 'right' | 'both' | 'none' | 'inline-start' | 'inline-end' | string> | 'left' | 'right' | 'both' | 'none' | 'inline-start' | 'inline-end' | string;
188
+ clipPath?: Observable<string> | string;
189
+ 'clip-path'?: Observable<string> | string;
190
+ clipRule?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
191
+ 'clip-rule'?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
192
+ color?: Observable<string> | string;
193
+ colorRendering?: Observable<'auto' | 'optimizeSpeed' | 'optimizeQuality' | string> | 'auto' | 'optimizeSpeed' | 'optimizeQuality' | string;
194
+ 'color-rendering'?: Observable<'auto' | 'optimizeSpeed' | 'optimizeQuality' | string> | 'auto' | 'optimizeSpeed' | 'optimizeQuality' | string;
195
+ colorScheme?: Observable<'normal' | 'light' | 'dark' | 'light dark' | string> | 'normal' | 'light' | 'dark' | 'light dark' | string;
196
+ 'color-scheme'?: Observable<'normal' | 'light' | 'dark' | 'light dark' | string> | 'normal' | 'light' | 'dark' | 'light dark' | string;
197
+ columnCount?: Observable<string | number> | string | number;
198
+ 'column-count'?: Observable<string | number> | string | number;
199
+ columnFill?: Observable<'balance' | 'auto' | 'balance-all' | string> | 'balance' | 'auto' | 'balance-all' | string;
200
+ 'column-fill'?: Observable<'balance' | 'auto' | 'balance-all' | string> | 'balance' | 'auto' | 'balance-all' | string;
201
+ columnGap?: Observable<string> | string;
202
+ 'column-gap'?: Observable<string> | string;
203
+ columnRule?: Observable<string> | string;
204
+ 'column-rule'?: Observable<string> | string;
205
+ columnRuleColor?: Observable<string> | string;
206
+ 'column-rule-color'?: Observable<string> | string;
207
+ columnRuleStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
208
+ 'column-rule-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
209
+ columnRuleWidth?: Observable<string> | string;
210
+ 'column-rule-width'?: Observable<string> | string;
211
+ columnSpan?: Observable<'none' | 'all' | string> | 'none' | 'all' | string;
212
+ 'column-span'?: Observable<'none' | 'all' | string> | 'none' | 'all' | string;
213
+ columnWidth?: Observable<string> | string;
214
+ 'column-width'?: Observable<string> | string;
215
+ columns?: Observable<string> | string;
216
+ contain?: Observable<'none' | 'strict' | 'content' | 'size' | 'layout' | 'style' | 'paint' | string> | 'none' | 'strict' | 'content' | 'size' | 'layout' | 'style' | 'paint' | string;
217
+ content?: Observable<string> | string;
218
+ contentVisibility?: Observable<'visible' | 'hidden' | 'auto' | string> | 'visible' | 'hidden' | 'auto' | string;
219
+ 'content-visibility'?: Observable<'visible' | 'hidden' | 'auto' | string> | 'visible' | 'hidden' | 'auto' | string;
220
+ counterIncrement?: Observable<string> | string;
221
+ 'counter-increment'?: Observable<string> | string;
222
+ counterReset?: Observable<string> | string;
223
+ 'counter-reset'?: Observable<string> | string;
224
+ counterSet?: Observable<string> | string;
225
+ 'counter-set'?: Observable<string> | string;
226
+ cursor?: Observable<'auto' | 'default' | 'none' | 'pointer' | 'crosshair' | 'move' | 'grab' | 'grabbing' | 'text' | 'wait' | 'help' | 'progress' | 'not-allowed' | 'no-drop' | 'copy' | 'alias' | 'zoom-in' | 'zoom-out' | 'col-resize' | 'row-resize' | 'n-resize' | 's-resize' | 'e-resize' | 'w-resize' | 'ne-resize' | 'nw-resize' | 'se-resize' | 'sw-resize' | 'ew-resize' | 'ns-resize' | 'nesw-resize' | 'nwse-resize' | 'cell' | 'context-menu' | 'vertical-text' | string> | 'auto' | 'default' | 'none' | 'pointer' | 'crosshair' | 'move' | 'grab' | 'grabbing' | 'text' | 'wait' | 'help' | 'progress' | 'not-allowed' | 'no-drop' | 'copy' | 'alias' | 'zoom-in' | 'zoom-out' | 'col-resize' | 'row-resize' | 'n-resize' | 's-resize' | 'e-resize' | 'w-resize' | 'ne-resize' | 'nw-resize' | 'se-resize' | 'sw-resize' | 'ew-resize' | 'ns-resize' | 'nesw-resize' | 'nwse-resize' | 'cell' | 'context-menu' | 'vertical-text' | string;
227
+ direction?: Observable<'ltr' | 'rtl' | string> | 'ltr' | 'rtl' | string;
228
+ display?: Observable<'block' | 'flex' | 'grid' | 'inline' | 'inline-flex' | 'inline-block' | 'inline-grid' | 'none' | 'contents' | 'table' | 'table-cell' | 'table-row' | 'list-item' | 'flow-root' | string> | 'block' | 'flex' | 'grid' | 'inline' | 'inline-flex' | 'inline-block' | 'inline-grid' | 'none' | 'contents' | 'table' | 'table-cell' | 'table-row' | 'list-item' | 'flow-root' | string;
229
+ dominantBaseline?: Observable<'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string> | 'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string;
230
+ 'dominant-baseline'?: Observable<'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string> | 'auto' | 'middle' | 'central' | 'text-before-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | string;
231
+ emptyCells?: Observable<'show' | 'hide' | string> | 'show' | 'hide' | string;
232
+ 'empty-cells'?: Observable<'show' | 'hide' | string> | 'show' | 'hide' | string;
233
+ fill?: Observable<string> | string;
234
+ fillOpacity?: Observable<string | number> | string | number;
235
+ 'fill-opacity'?: Observable<string | number> | string | number;
236
+ fillRule?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
237
+ 'fill-rule'?: Observable<'nonzero' | 'evenodd' | string> | 'nonzero' | 'evenodd' | string;
238
+ filter?: Observable<string> | string;
239
+ flex?: Observable<string> | string;
240
+ flexBasis?: Observable<string> | string;
241
+ 'flex-basis'?: Observable<string> | string;
242
+ flexDirection?: Observable<'row' | 'column' | 'row-reverse' | 'column-reverse' | string> | 'row' | 'column' | 'row-reverse' | 'column-reverse' | string;
243
+ 'flex-direction'?: Observable<'row' | 'column' | 'row-reverse' | 'column-reverse' | string> | 'row' | 'column' | 'row-reverse' | 'column-reverse' | string;
244
+ flexFlow?: Observable<string> | string;
245
+ 'flex-flow'?: Observable<string> | string;
246
+ flexGrow?: Observable<string | number> | string | number;
247
+ 'flex-grow'?: Observable<string | number> | string | number;
248
+ flexShrink?: Observable<string | number> | string | number;
249
+ 'flex-shrink'?: Observable<string | number> | string | number;
250
+ flexWrap?: Observable<'nowrap' | 'wrap' | 'wrap-reverse' | string> | 'nowrap' | 'wrap' | 'wrap-reverse' | string;
251
+ 'flex-wrap'?: Observable<'nowrap' | 'wrap' | 'wrap-reverse' | string> | 'nowrap' | 'wrap' | 'wrap-reverse' | string;
252
+ float?: Observable<'left' | 'right' | 'none' | 'inline-start' | 'inline-end' | string> | 'left' | 'right' | 'none' | 'inline-start' | 'inline-end' | string;
253
+ font?: Observable<string> | string;
254
+ fontFamily?: Observable<string> | string;
255
+ 'font-family'?: Observable<string> | string;
256
+ fontFeatureSettings?: Observable<string> | string;
257
+ 'font-feature-settings'?: Observable<string> | string;
258
+ fontKerning?: Observable<'auto' | 'normal' | 'none' | string> | 'auto' | 'normal' | 'none' | string;
259
+ 'font-kerning'?: Observable<'auto' | 'normal' | 'none' | string> | 'auto' | 'normal' | 'none' | string;
260
+ fontOpticalSizing?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
261
+ 'font-optical-sizing'?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
262
+ fontSize?: Observable<string> | string;
263
+ 'font-size'?: Observable<string> | string;
264
+ fontSizeAdjust?: Observable<string> | string;
265
+ 'font-size-adjust'?: Observable<string> | string;
266
+ fontStretch?: Observable<'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string> | 'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string;
267
+ 'font-stretch'?: Observable<'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string> | 'normal' | 'condensed' | 'expanded' | 'ultra-condensed' | 'extra-condensed' | 'semi-condensed' | 'semi-expanded' | 'extra-expanded' | 'ultra-expanded' | string;
268
+ fontStyle?: Observable<'normal' | 'italic' | 'oblique' | string> | 'normal' | 'italic' | 'oblique' | string;
269
+ 'font-style'?: Observable<'normal' | 'italic' | 'oblique' | string> | 'normal' | 'italic' | 'oblique' | string;
270
+ fontVariant?: Observable<'normal' | 'small-caps' | string> | 'normal' | 'small-caps' | string;
271
+ 'font-variant'?: Observable<'normal' | 'small-caps' | string> | 'normal' | 'small-caps' | string;
272
+ fontVariationSettings?: Observable<string> | string;
273
+ 'font-variation-settings'?: Observable<string> | string;
274
+ fontWeight?: Observable<'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string> | 'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string;
275
+ 'font-weight'?: Observable<'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string> | 'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | string;
276
+ forcedColorAdjust?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
277
+ 'forced-color-adjust'?: Observable<'auto' | 'none' | string> | 'auto' | 'none' | string;
278
+ gap?: Observable<string> | string;
279
+ grid?: Observable<string> | string;
280
+ gridArea?: Observable<string> | string;
281
+ 'grid-area'?: Observable<string> | string;
282
+ gridAutoColumns?: Observable<string> | string;
283
+ 'grid-auto-columns'?: Observable<string> | string;
284
+ gridAutoFlow?: Observable<'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string> | 'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string;
285
+ 'grid-auto-flow'?: Observable<'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string> | 'row' | 'column' | 'dense' | 'row dense' | 'column dense' | string;
286
+ gridAutoRows?: Observable<string> | string;
287
+ 'grid-auto-rows'?: Observable<string> | string;
288
+ gridColumn?: Observable<string> | string;
289
+ 'grid-column'?: Observable<string> | string;
290
+ gridColumnEnd?: Observable<string> | string;
291
+ 'grid-column-end'?: Observable<string> | string;
292
+ gridColumnStart?: Observable<string> | string;
293
+ 'grid-column-start'?: Observable<string> | string;
294
+ gridRow?: Observable<string> | string;
295
+ 'grid-row'?: Observable<string> | string;
296
+ gridRowEnd?: Observable<string> | string;
297
+ 'grid-row-end'?: Observable<string> | string;
298
+ gridRowStart?: Observable<string> | string;
299
+ 'grid-row-start'?: Observable<string> | string;
300
+ gridTemplate?: Observable<string> | string;
301
+ 'grid-template'?: Observable<string> | string;
302
+ gridTemplateAreas?: Observable<string> | string;
303
+ 'grid-template-areas'?: Observable<string> | string;
304
+ gridTemplateColumns?: Observable<string> | string;
305
+ 'grid-template-columns'?: Observable<string> | string;
306
+ gridTemplateRows?: Observable<string> | string;
307
+ 'grid-template-rows'?: Observable<string> | string;
308
+ height?: Observable<string> | string;
309
+ hyphenateCharacter?: Observable<string> | string;
310
+ 'hyphenate-character'?: Observable<string> | string;
311
+ hyphens?: Observable<'none' | 'manual' | 'auto' | string> | 'none' | 'manual' | 'auto' | string;
312
+ imageOrientation?: Observable<'none' | 'from-image' | string> | 'none' | 'from-image' | string;
313
+ 'image-orientation'?: Observable<'none' | 'from-image' | string> | 'none' | 'from-image' | string;
314
+ imageRendering?: Observable<'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string> | 'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string;
315
+ 'image-rendering'?: Observable<'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string> | 'auto' | 'crisp-edges' | 'pixelated' | 'smooth' | string;
316
+ inset?: Observable<string> | string;
317
+ insetBlock?: Observable<string> | string;
318
+ 'inset-block'?: Observable<string> | string;
319
+ insetBlockEnd?: Observable<string> | string;
320
+ 'inset-block-end'?: Observable<string> | string;
321
+ insetBlockStart?: Observable<string> | string;
322
+ 'inset-block-start'?: Observable<string> | string;
323
+ insetInline?: Observable<string> | string;
324
+ 'inset-inline'?: Observable<string> | string;
325
+ insetInlineEnd?: Observable<string> | string;
326
+ 'inset-inline-end'?: Observable<string> | string;
327
+ insetInlineStart?: Observable<string> | string;
328
+ 'inset-inline-start'?: Observable<string> | string;
329
+ isolation?: Observable<'auto' | 'isolate' | string> | 'auto' | 'isolate' | string;
330
+ justifyContent?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string;
331
+ 'justify-content'?: Observable<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string> | 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' | 'start' | 'end' | 'stretch' | string;
332
+ justifyItems?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
333
+ 'justify-items'?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
334
+ justifySelf?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
335
+ 'justify-self'?: Observable<'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string> | 'auto' | 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'baseline' | string;
336
+ left?: Observable<string> | string;
337
+ letterSpacing?: Observable<string> | string;
338
+ 'letter-spacing'?: Observable<string> | string;
339
+ lineBreak?: Observable<'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string> | 'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string;
340
+ 'line-break'?: Observable<'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string> | 'auto' | 'loose' | 'normal' | 'strict' | 'anywhere' | string;
341
+ lineHeight?: Observable<string> | string;
342
+ 'line-height'?: Observable<string> | string;
343
+ listStyle?: Observable<string> | string;
344
+ 'list-style'?: Observable<string> | string;
345
+ listStyleImage?: Observable<string> | string;
346
+ 'list-style-image'?: Observable<string> | string;
347
+ listStylePosition?: Observable<'inside' | 'outside' | string> | 'inside' | 'outside' | string;
348
+ 'list-style-position'?: Observable<'inside' | 'outside' | string> | 'inside' | 'outside' | string;
349
+ listStyleType?: Observable<'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string> | 'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string;
350
+ 'list-style-type'?: Observable<'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string> | 'none' | 'disc' | 'circle' | 'square' | 'decimal' | 'decimal-leading-zero' | 'lower-roman' | 'upper-roman' | 'lower-alpha' | 'upper-alpha' | string;
351
+ margin?: Observable<string> | string;
352
+ marginBlock?: Observable<string> | string;
353
+ 'margin-block'?: Observable<string> | string;
354
+ marginBlockEnd?: Observable<string> | string;
355
+ 'margin-block-end'?: Observable<string> | string;
356
+ marginBlockStart?: Observable<string> | string;
357
+ 'margin-block-start'?: Observable<string> | string;
358
+ marginBottom?: Observable<string> | string;
359
+ 'margin-bottom'?: Observable<string> | string;
360
+ marginInline?: Observable<string> | string;
361
+ 'margin-inline'?: Observable<string> | string;
362
+ marginInlineEnd?: Observable<string> | string;
363
+ 'margin-inline-end'?: Observable<string> | string;
364
+ marginInlineStart?: Observable<string> | string;
365
+ 'margin-inline-start'?: Observable<string> | string;
366
+ marginLeft?: Observable<string> | string;
367
+ 'margin-left'?: Observable<string> | string;
368
+ marginRight?: Observable<string> | string;
369
+ 'margin-right'?: Observable<string> | string;
370
+ marginTop?: Observable<string> | string;
371
+ 'margin-top'?: Observable<string> | string;
372
+ markerEnd?: Observable<string> | string;
373
+ 'marker-end'?: Observable<string> | string;
374
+ markerMid?: Observable<string> | string;
375
+ 'marker-mid'?: Observable<string> | string;
376
+ markerStart?: Observable<string> | string;
377
+ 'marker-start'?: Observable<string> | string;
378
+ mask?: Observable<string> | string;
379
+ maskClip?: Observable<string> | string;
380
+ 'mask-clip'?: Observable<string> | string;
381
+ maskComposite?: Observable<string> | string;
382
+ 'mask-composite'?: Observable<string> | string;
383
+ maskImage?: Observable<string> | string;
384
+ 'mask-image'?: Observable<string> | string;
385
+ maskMode?: Observable<string> | string;
386
+ 'mask-mode'?: Observable<string> | string;
387
+ maskOrigin?: Observable<string> | string;
388
+ 'mask-origin'?: Observable<string> | string;
389
+ maskPosition?: Observable<string> | string;
390
+ 'mask-position'?: Observable<string> | string;
391
+ maskRepeat?: Observable<string> | string;
392
+ 'mask-repeat'?: Observable<string> | string;
393
+ maskSize?: Observable<string> | string;
394
+ 'mask-size'?: Observable<string> | string;
395
+ maxHeight?: Observable<string> | string;
396
+ 'max-height'?: Observable<string> | string;
397
+ maxWidth?: Observable<string> | string;
398
+ 'max-width'?: Observable<string> | string;
399
+ minHeight?: Observable<string> | string;
400
+ 'min-height'?: Observable<string> | string;
401
+ minWidth?: Observable<string> | string;
402
+ 'min-width'?: Observable<string> | string;
403
+ mixBlendMode?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
404
+ 'mix-blend-mode'?: Observable<'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string> | 'normal' | 'multiply' | 'screen' | 'overlay' | 'darken' | 'lighten' | 'color-dodge' | 'color-burn' | 'hard-light' | 'soft-light' | 'difference' | 'exclusion' | 'hue' | 'saturation' | 'color' | 'luminosity' | string;
405
+ objectFit?: Observable<'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string> | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string;
406
+ 'object-fit'?: Observable<'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string> | 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | string;
407
+ objectPosition?: Observable<string> | string;
408
+ 'object-position'?: Observable<string> | string;
409
+ offset?: Observable<string> | string;
410
+ offsetAnchor?: Observable<string> | string;
411
+ 'offset-anchor'?: Observable<string> | string;
412
+ offsetDistance?: Observable<string> | string;
413
+ 'offset-distance'?: Observable<string> | string;
414
+ offsetPath?: Observable<string> | string;
415
+ 'offset-path'?: Observable<string> | string;
416
+ offsetRotate?: Observable<string> | string;
417
+ 'offset-rotate'?: Observable<string> | string;
418
+ opacity?: Observable<string | number> | string | number;
419
+ order?: Observable<string | number> | string | number;
420
+ orphans?: Observable<string | number> | string | number;
421
+ outline?: Observable<string> | string;
422
+ outlineColor?: Observable<string> | string;
423
+ 'outline-color'?: Observable<string> | string;
424
+ outlineOffset?: Observable<string> | string;
425
+ 'outline-offset'?: Observable<string> | string;
426
+ outlineStyle?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
427
+ 'outline-style'?: Observable<'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string> | 'none' | 'hidden' | 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' | string;
428
+ outlineWidth?: Observable<string> | string;
429
+ 'outline-width'?: Observable<string> | string;
430
+ overflow?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
431
+ overflowClip?: Observable<string> | string;
432
+ 'overflow-clip'?: Observable<string> | string;
433
+ overflowWrap?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
434
+ 'overflow-wrap'?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
435
+ overflowX?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
436
+ 'overflow-x'?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
437
+ overflowY?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
438
+ 'overflow-y'?: Observable<'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string> | 'visible' | 'hidden' | 'scroll' | 'auto' | 'clip' | string;
439
+ overscrollBehavior?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
440
+ 'overscroll-behavior'?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
441
+ overscrollBehaviorX?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
442
+ 'overscroll-behavior-x'?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
443
+ overscrollBehaviorY?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
444
+ 'overscroll-behavior-y'?: Observable<'auto' | 'contain' | 'none' | string> | 'auto' | 'contain' | 'none' | string;
445
+ padding?: Observable<string> | string;
446
+ paddingBlock?: Observable<string> | string;
447
+ 'padding-block'?: Observable<string> | string;
448
+ paddingBlockEnd?: Observable<string> | string;
449
+ 'padding-block-end'?: Observable<string> | string;
450
+ paddingBlockStart?: Observable<string> | string;
451
+ 'padding-block-start'?: Observable<string> | string;
452
+ paddingBottom?: Observable<string> | string;
453
+ 'padding-bottom'?: Observable<string> | string;
454
+ paddingInline?: Observable<string> | string;
455
+ 'padding-inline'?: Observable<string> | string;
456
+ paddingInlineEnd?: Observable<string> | string;
457
+ 'padding-inline-end'?: Observable<string> | string;
458
+ paddingInlineStart?: Observable<string> | string;
459
+ 'padding-inline-start'?: Observable<string> | string;
460
+ paddingLeft?: Observable<string> | string;
461
+ 'padding-left'?: Observable<string> | string;
462
+ paddingRight?: Observable<string> | string;
463
+ 'padding-right'?: Observable<string> | string;
464
+ paddingTop?: Observable<string> | string;
465
+ 'padding-top'?: Observable<string> | string;
466
+ pageBreakAfter?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
467
+ 'page-break-after'?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
468
+ pageBreakBefore?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
469
+ 'page-break-before'?: Observable<'auto' | 'always' | 'avoid' | 'left' | 'right' | string> | 'auto' | 'always' | 'avoid' | 'left' | 'right' | string;
470
+ pageBreakInside?: Observable<'auto' | 'avoid' | string> | 'auto' | 'avoid' | string;
471
+ 'page-break-inside'?: Observable<'auto' | 'avoid' | string> | 'auto' | 'avoid' | string;
472
+ perspective?: Observable<string> | string;
473
+ perspectiveOrigin?: Observable<string> | string;
474
+ 'perspective-origin'?: Observable<string> | string;
475
+ placeContent?: Observable<string> | string;
476
+ 'place-content'?: Observable<string> | string;
477
+ placeItems?: Observable<string> | string;
478
+ 'place-items'?: Observable<string> | string;
479
+ placeSelf?: Observable<string> | string;
480
+ 'place-self'?: Observable<string> | string;
481
+ pointerEvents?: Observable<'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string> | 'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string;
482
+ 'pointer-events'?: Observable<'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string> | 'auto' | 'none' | 'all' | 'fill' | 'painted' | 'stroke' | 'visible' | 'visibleFill' | 'visiblePainted' | 'visibleStroke' | string;
483
+ position?: Observable<'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | string> | 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' | string;
484
+ printColorAdjust?: Observable<'economy' | 'exact' | string> | 'economy' | 'exact' | string;
485
+ 'print-color-adjust'?: Observable<'economy' | 'exact' | string> | 'economy' | 'exact' | string;
486
+ quotes?: Observable<string> | string;
487
+ resize?: Observable<'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline' | string> | 'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline' | string;
488
+ right?: Observable<string> | string;
489
+ rotate?: Observable<string> | string;
490
+ rowGap?: Observable<string> | string;
491
+ 'row-gap'?: Observable<string> | string;
492
+ scale?: Observable<string> | string;
493
+ scrollBehavior?: Observable<'auto' | 'smooth' | string> | 'auto' | 'smooth' | string;
494
+ 'scroll-behavior'?: Observable<'auto' | 'smooth' | string> | 'auto' | 'smooth' | string;
495
+ scrollMargin?: Observable<string> | string;
496
+ 'scroll-margin'?: Observable<string> | string;
497
+ scrollPadding?: Observable<string> | string;
498
+ 'scroll-padding'?: Observable<string> | string;
499
+ scrollSnapAlign?: Observable<'none' | 'start' | 'end' | 'center' | string> | 'none' | 'start' | 'end' | 'center' | string;
500
+ 'scroll-snap-align'?: Observable<'none' | 'start' | 'end' | 'center' | string> | 'none' | 'start' | 'end' | 'center' | string;
501
+ scrollSnapStop?: Observable<'normal' | 'always' | string> | 'normal' | 'always' | string;
502
+ 'scroll-snap-stop'?: Observable<'normal' | 'always' | string> | 'normal' | 'always' | string;
503
+ scrollSnapType?: Observable<'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string> | 'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string;
504
+ 'scroll-snap-type'?: Observable<'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string> | 'none' | 'x' | 'y' | 'block' | 'inline' | 'both' | string;
505
+ shapeRendering?: Observable<'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string;
506
+ 'shape-rendering'?: Observable<'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'crispEdges' | 'geometricPrecision' | string;
507
+ stroke?: Observable<string> | string;
508
+ strokeDasharray?: Observable<string> | string;
509
+ 'stroke-dasharray'?: Observable<string> | string;
510
+ strokeDashoffset?: Observable<string> | string;
511
+ 'stroke-dashoffset'?: Observable<string> | string;
512
+ strokeLinecap?: Observable<'butt' | 'round' | 'square' | string> | 'butt' | 'round' | 'square' | string;
513
+ 'stroke-linecap'?: Observable<'butt' | 'round' | 'square' | string> | 'butt' | 'round' | 'square' | string;
514
+ strokeLinejoin?: Observable<'miter' | 'round' | 'bevel' | string> | 'miter' | 'round' | 'bevel' | string;
515
+ 'stroke-linejoin'?: Observable<'miter' | 'round' | 'bevel' | string> | 'miter' | 'round' | 'bevel' | string;
516
+ strokeMiterlimit?: Observable<string | number> | string | number;
517
+ 'stroke-miterlimit'?: Observable<string | number> | string | number;
518
+ strokeOpacity?: Observable<string | number> | string | number;
519
+ 'stroke-opacity'?: Observable<string | number> | string | number;
520
+ strokeWidth?: Observable<string> | string;
521
+ 'stroke-width'?: Observable<string> | string;
522
+ tabSize?: Observable<string | number> | string | number;
523
+ 'tab-size'?: Observable<string | number> | string | number;
524
+ tableLayout?: Observable<'auto' | 'fixed' | string> | 'auto' | 'fixed' | string;
525
+ 'table-layout'?: Observable<'auto' | 'fixed' | string> | 'auto' | 'fixed' | string;
526
+ textAlign?: Observable<'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string> | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string;
527
+ 'text-align'?: Observable<'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string> | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | 'justify-all' | 'match-parent' | string;
528
+ textAlignLast?: Observable<'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string> | 'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string;
529
+ 'text-align-last'?: Observable<'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string> | 'auto' | 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' | string;
530
+ textAnchor?: Observable<'start' | 'middle' | 'end' | string> | 'start' | 'middle' | 'end' | string;
531
+ 'text-anchor'?: Observable<'start' | 'middle' | 'end' | string> | 'start' | 'middle' | 'end' | string;
532
+ textDecoration?: Observable<'none' | 'underline' | 'overline' | 'line-through' | string> | 'none' | 'underline' | 'overline' | 'line-through' | string;
533
+ 'text-decoration'?: Observable<'none' | 'underline' | 'overline' | 'line-through' | string> | 'none' | 'underline' | 'overline' | 'line-through' | string;
534
+ textDecorationColor?: Observable<string> | string;
535
+ 'text-decoration-color'?: Observable<string> | string;
536
+ textDecorationLine?: Observable<'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string> | 'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string;
537
+ 'text-decoration-line'?: Observable<'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string> | 'none' | 'underline' | 'overline' | 'line-through' | 'blink' | string;
538
+ textDecorationStyle?: Observable<'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string> | 'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string;
539
+ 'text-decoration-style'?: Observable<'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string> | 'solid' | 'double' | 'dotted' | 'dashed' | 'wavy' | string;
540
+ textDecorationThickness?: Observable<string> | string;
541
+ 'text-decoration-thickness'?: Observable<string> | string;
542
+ textIndent?: Observable<string> | string;
543
+ 'text-indent'?: Observable<string> | string;
544
+ textOverflow?: Observable<'clip' | 'ellipsis' | string> | 'clip' | 'ellipsis' | string;
545
+ 'text-overflow'?: Observable<'clip' | 'ellipsis' | string> | 'clip' | 'ellipsis' | string;
546
+ textRendering?: Observable<'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string;
547
+ 'text-rendering'?: Observable<'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string> | 'auto' | 'optimizeSpeed' | 'optimizeLegibility' | 'geometricPrecision' | string;
548
+ textShadow?: Observable<string> | string;
549
+ 'text-shadow'?: Observable<string> | string;
550
+ textSizeAdjust?: Observable<string> | string;
551
+ 'text-size-adjust'?: Observable<string> | string;
552
+ textTransform?: Observable<'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string> | 'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string;
553
+ 'text-transform'?: Observable<'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string> | 'none' | 'uppercase' | 'lowercase' | 'capitalize' | 'full-width' | string;
554
+ textUnderlineOffset?: Observable<string> | string;
555
+ 'text-underline-offset'?: Observable<string> | string;
556
+ textWrap?: Observable<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string> | 'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string;
557
+ 'text-wrap'?: Observable<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string> | 'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable' | string;
558
+ top?: Observable<string> | string;
559
+ touchAction?: Observable<'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string> | 'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string;
560
+ 'touch-action'?: Observable<'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string> | 'auto' | 'none' | 'pan-x' | 'pan-y' | 'pan-left' | 'pan-right' | 'pan-up' | 'pan-down' | 'pinch-zoom' | 'manipulation' | string;
561
+ transform?: Observable<string> | string;
562
+ transformBox?: Observable<'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string> | 'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string;
563
+ 'transform-box'?: Observable<'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string> | 'content-box' | 'border-box' | 'fill-box' | 'stroke-box' | 'view-box' | string;
564
+ transformOrigin?: Observable<string> | string;
565
+ 'transform-origin'?: Observable<string> | string;
566
+ transformStyle?: Observable<'flat' | 'preserve-3d' | string> | 'flat' | 'preserve-3d' | string;
567
+ 'transform-style'?: Observable<'flat' | 'preserve-3d' | string> | 'flat' | 'preserve-3d' | string;
568
+ transition?: Observable<string> | string;
569
+ transitionBehavior?: Observable<'normal' | 'allow-discrete' | string> | 'normal' | 'allow-discrete' | string;
570
+ 'transition-behavior'?: Observable<'normal' | 'allow-discrete' | string> | 'normal' | 'allow-discrete' | string;
571
+ transitionDelay?: Observable<string> | string;
572
+ 'transition-delay'?: Observable<string> | string;
573
+ transitionDuration?: Observable<string> | string;
574
+ 'transition-duration'?: Observable<string> | string;
575
+ transitionProperty?: Observable<string> | string;
576
+ 'transition-property'?: Observable<string> | string;
577
+ transitionTimingFunction?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
578
+ 'transition-timing-function'?: Observable<'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string> | 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'step-start' | 'step-end' | string;
579
+ translate?: Observable<string> | string;
580
+ unicodeBidi?: Observable<'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string> | 'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string;
581
+ 'unicode-bidi'?: Observable<'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string> | 'normal' | 'embed' | 'bidi-override' | 'isolate' | 'isolate-override' | 'plaintext' | string;
582
+ userSelect?: Observable<'none' | 'auto' | 'text' | 'all' | 'contain' | string> | 'none' | 'auto' | 'text' | 'all' | 'contain' | string;
583
+ 'user-select'?: Observable<'none' | 'auto' | 'text' | 'all' | 'contain' | string> | 'none' | 'auto' | 'text' | 'all' | 'contain' | string;
584
+ verticalAlign?: Observable<'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string> | 'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string;
585
+ 'vertical-align'?: Observable<'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string> | 'baseline' | 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'sub' | 'super' | string;
586
+ visibility?: Observable<'visible' | 'hidden' | 'collapse' | string> | 'visible' | 'hidden' | 'collapse' | string;
587
+ whiteSpace?: Observable<'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string> | 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string;
588
+ 'white-space'?: Observable<'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string> | 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line' | 'break-spaces' | string;
589
+ whiteSpaceCollapse?: Observable<'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string> | 'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string;
590
+ 'white-space-collapse'?: Observable<'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string> | 'collapse' | 'preserve' | 'preserve-breaks' | 'preserve-spaces' | 'break-spaces' | string;
591
+ widows?: Observable<string | number> | string | number;
592
+ width?: Observable<string> | string;
593
+ willChange?: Observable<string> | string;
594
+ 'will-change'?: Observable<string> | string;
595
+ wordBreak?: Observable<'normal' | 'break-all' | 'keep-all' | 'break-word' | string> | 'normal' | 'break-all' | 'keep-all' | 'break-word' | string;
596
+ 'word-break'?: Observable<'normal' | 'break-all' | 'keep-all' | 'break-word' | string> | 'normal' | 'break-all' | 'keep-all' | 'break-word' | string;
597
+ wordSpacing?: Observable<string> | string;
598
+ 'word-spacing'?: Observable<string> | string;
599
+ wordWrap?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
600
+ 'word-wrap'?: Observable<'normal' | 'break-word' | 'anywhere' | string> | 'normal' | 'break-word' | 'anywhere' | string;
601
+ writingMode?: Observable<'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string> | 'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string;
602
+ 'writing-mode'?: Observable<'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string> | 'horizontal-tb' | 'vertical-rl' | 'vertical-lr' | 'sideways-rl' | 'sideways-lr' | string;
603
+ zIndex?: Observable<string | number> | string | number;
604
+ 'z-index'?: Observable<string | number> | string | number;
605
+ }
28
606
 
29
607
  // ─────────────────────────────────────────────
30
608
  // Shared attribute sets
@@ -47,7 +625,7 @@ interface GlobalAttributes {
47
625
  accessKey?: string;
48
626
  spellcheck?: Observable<boolean>;
49
627
  spellCheck?: Observable<boolean>;
50
- role?: string;
628
+ role?: 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'button' | 'cell' | 'checkbox' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'dialog' | 'directory' | 'document' | 'feed' | 'figure' | 'form' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'marquee' | 'math' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'navigation' | 'none' | 'note' | 'option' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem' | string;
51
629
  [key: `data-${string}`]: string;
52
630
  [key: `aria-${string}`]: string;
53
631
  }