native-document 1.0.15 → 1.0.16-8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. package/.npmrc.example +1 -0
  2. package/.vitepress/config.js +166 -0
  3. package/CHANGELOG.md +153 -0
  4. package/cdn.js +19 -0
  5. package/components.d.ts +2 -0
  6. package/components.js +30 -0
  7. package/devtools/ComponentRegistry.js +113 -0
  8. package/devtools/index.js +8 -0
  9. package/devtools/plugin/dev-tools-plugin.js +15 -0
  10. package/devtools/transformers/nd-vite-devtools.js +55 -0
  11. package/devtools/transformers/src/transformComponentForHrm.js +73 -0
  12. package/devtools/transformers/src/transformJsFile.js +9 -0
  13. package/devtools/transformers/src/utils.js +79 -0
  14. package/devtools/transformers/templates/hrm.hook.template.js +46 -0
  15. package/devtools/transformers/templates/hrm.orbservable.hook.template.js +76 -0
  16. package/devtools/widget/Widget.js +49 -0
  17. package/devtools/widget/widget.css +81 -0
  18. package/devtools/widget.js +23 -0
  19. package/dist/native-document.components.min.css +1 -0
  20. package/dist/native-document.components.min.js +23847 -0
  21. package/dist/native-document.dev.js +8421 -1492
  22. package/dist/native-document.dev.js.map +1 -0
  23. package/dist/native-document.devtools.min.js +1 -0
  24. package/dist/native-document.min.js +1 -1
  25. package/docs/advanced-components.md +419 -0
  26. package/docs/anchor.md +181 -257
  27. package/docs/cache.md +180 -0
  28. package/docs/cli.md +179 -0
  29. package/docs/components/accordion.md +172 -0
  30. package/docs/components/alert.md +99 -0
  31. package/docs/components/avatar.md +160 -0
  32. package/docs/components/badge.md +102 -0
  33. package/docs/components/breadcrumb.md +89 -0
  34. package/docs/components/button.md +183 -0
  35. package/docs/components/card.md +69 -0
  36. package/docs/components/context-menu.md +118 -0
  37. package/docs/components/data-table.md +345 -0
  38. package/docs/components/dropdown.md +214 -0
  39. package/docs/components/form/autocomplete-field.md +81 -0
  40. package/docs/components/form/checkbox-field.md +41 -0
  41. package/docs/components/form/checkbox-group-field.md +54 -0
  42. package/docs/components/form/color-field.md +64 -0
  43. package/docs/components/form/date-field.md +92 -0
  44. package/docs/components/form/field-collection.md +63 -0
  45. package/docs/components/form/file-field.md +203 -0
  46. package/docs/components/form/form-control.md +87 -0
  47. package/docs/components/form/image-field.md +90 -0
  48. package/docs/components/form/index.md +115 -0
  49. package/docs/components/form/number-field.md +65 -0
  50. package/docs/components/form/radio-field.md +51 -0
  51. package/docs/components/form/select-field.md +123 -0
  52. package/docs/components/form/slider.md +136 -0
  53. package/docs/components/form/string-field.md +134 -0
  54. package/docs/components/form/textarea-field.md +65 -0
  55. package/docs/components/form-fields.md +372 -0
  56. package/docs/components/getting-started.md +264 -0
  57. package/docs/components/index.md +337 -0
  58. package/docs/components/layout.md +279 -0
  59. package/docs/components/list.md +73 -0
  60. package/docs/components/menu.md +215 -0
  61. package/docs/components/modal.md +156 -0
  62. package/docs/components/pagination.md +95 -0
  63. package/docs/components/popover.md +131 -0
  64. package/docs/components/progress.md +111 -0
  65. package/docs/components/shortcut-manager.md +221 -0
  66. package/docs/components/simple-table.md +107 -0
  67. package/docs/components/skeleton.md +155 -0
  68. package/docs/components/spinner.md +100 -0
  69. package/docs/components/splitter.md +133 -0
  70. package/docs/components/stepper.md +163 -0
  71. package/docs/components/switch.md +113 -0
  72. package/docs/components/tabs.md +153 -0
  73. package/docs/components/toast.md +119 -0
  74. package/docs/components/tooltip.md +151 -0
  75. package/docs/components/traits.md +261 -0
  76. package/docs/conditional-rendering.md +177 -502
  77. package/docs/contributing.md +300 -25
  78. package/docs/core-concepts.md +207 -366
  79. package/docs/elements.md +266 -254
  80. package/docs/extending-native-document-element.md +259 -0
  81. package/docs/filters.md +247 -0
  82. package/docs/getting-started.md +195 -257
  83. package/docs/i18n.md +241 -0
  84. package/docs/index.md +76 -0
  85. package/docs/lifecycle-events.md +146 -67
  86. package/docs/list-rendering.md +240 -460
  87. package/docs/memory-management.md +135 -46
  88. package/docs/native-document-element.md +487 -0
  89. package/docs/native-fetch.md +213 -0
  90. package/docs/observable-resource.md +364 -0
  91. package/docs/observables.md +690 -357
  92. package/docs/routing.md +246 -646
  93. package/docs/state-management.md +213 -306
  94. package/docs/svg-elements.md +231 -0
  95. package/docs/theming.md +409 -0
  96. package/docs/tutorials/.gitkeep +0 -0
  97. package/docs/validation.md +98 -91
  98. package/docs/vitepress-conventions.md +219 -0
  99. package/elements.d.ts +7 -0
  100. package/elements.js +3 -4
  101. package/eslint.config.js +35 -0
  102. package/i18n.js +1 -0
  103. package/i18n.ts +2 -0
  104. package/index.d.ts +21 -0
  105. package/index.def.js +1086 -0
  106. package/index.js +19 -13
  107. package/package.json +59 -9
  108. package/readme.md +296 -93
  109. package/rollup.config.js +52 -3
  110. package/router.d.ts +7 -0
  111. package/router.js +0 -0
  112. package/src/components/$traits/has-draggable/HasDraggable.d.ts +4 -0
  113. package/src/components/$traits/has-draggable/HasDraggable.js +82 -0
  114. package/src/components/$traits/has-draggable/has-draggable.css +8 -0
  115. package/src/components/$traits/has-items/HasItems.d.ts +9 -0
  116. package/src/components/$traits/has-items/HasItems.js +64 -0
  117. package/src/components/$traits/has-position/HasFullPosition.d.ts +14 -0
  118. package/src/components/$traits/has-position/HasFullPosition.js +95 -0
  119. package/src/components/$traits/has-position/HasPosition.d.ts +7 -0
  120. package/src/components/$traits/has-position/HasPosition.js +45 -0
  121. package/src/components/$traits/has-resizable/HasResizable.d.ts +13 -0
  122. package/src/components/$traits/has-resizable/HasResizable.js +122 -0
  123. package/src/components/$traits/has-resizable/has-resizable.css +121 -0
  124. package/src/components/$traits/has-validation/HasValidation.d.ts +17 -0
  125. package/src/components/$traits/has-validation/HasValidation.js +133 -0
  126. package/src/components/BaseComponent.d.ts +32 -0
  127. package/src/components/BaseComponent.js +247 -0
  128. package/src/components/accordion/Accordion.js +268 -0
  129. package/src/components/accordion/AccordionItem.js +233 -0
  130. package/src/components/accordion/index.js +7 -0
  131. package/src/components/accordion/types/Accordion.d.ts +47 -0
  132. package/src/components/accordion/types/AccordionItem.d.ts +48 -0
  133. package/src/components/alert/Alert.js +350 -0
  134. package/src/components/alert/index.js +6 -0
  135. package/src/components/alert/types/Alert.d.ts +62 -0
  136. package/src/components/avatar/Avatar.js +430 -0
  137. package/src/components/avatar/AvatarGroup.js +97 -0
  138. package/src/components/avatar/index.js +7 -0
  139. package/src/components/avatar/types/Avatar.d.ts +74 -0
  140. package/src/components/avatar/types/AvatarGroup.d.ts +32 -0
  141. package/src/components/badge/Badge.js +245 -0
  142. package/src/components/badge/index.js +6 -0
  143. package/src/components/badge/types/Badge.d.ts +51 -0
  144. package/src/components/base-component.css +0 -0
  145. package/src/components/breadcrumb/BreadCrumb.js +138 -0
  146. package/src/components/breadcrumb/index.js +5 -0
  147. package/src/components/breadcrumb/types/BreadCrumb.d.ts +42 -0
  148. package/src/components/button/Button.js +320 -0
  149. package/src/components/button/index.js +5 -0
  150. package/src/components/button/types/Button.d.ts +62 -0
  151. package/src/components/card/Card.js +282 -0
  152. package/src/components/card/index.js +5 -0
  153. package/src/components/card/types/Card.d.ts +42 -0
  154. package/src/components/context-menu/ContextMenu.js +127 -0
  155. package/src/components/context-menu/ContextMenuGroup.js +29 -0
  156. package/src/components/context-menu/ContextMenuItem.js +28 -0
  157. package/src/components/context-menu/index.js +10 -0
  158. package/src/components/context-menu/types/ContextMenu.d.ts +30 -0
  159. package/src/components/context-menu/types/ContextMenuGroup.d.ts +18 -0
  160. package/src/components/context-menu/types/ContextMenuItem.d.ts +18 -0
  161. package/src/components/divider/Divider.js +256 -0
  162. package/src/components/divider/index.js +6 -0
  163. package/src/components/divider/types/Divider.d.ts +55 -0
  164. package/src/components/dropdown/Dropdown.js +531 -0
  165. package/src/components/dropdown/DropdownDivider.js +45 -0
  166. package/src/components/dropdown/DropdownGroup.js +83 -0
  167. package/src/components/dropdown/DropdownItem.js +150 -0
  168. package/src/components/dropdown/DropdownTrigger.js +93 -0
  169. package/src/components/dropdown/helpers.js +53 -0
  170. package/src/components/dropdown/index.js +13 -0
  171. package/src/components/dropdown/types/Dropdown.d.ts +88 -0
  172. package/src/components/dropdown/types/DropdownDivider.d.ts +20 -0
  173. package/src/components/dropdown/types/DropdownGroup.d.ts +25 -0
  174. package/src/components/dropdown/types/DropdownItem.d.ts +41 -0
  175. package/src/components/dropdown/types/DropdownTrigger.d.ts +32 -0
  176. package/src/components/form/FormControl.js +498 -0
  177. package/src/components/form/field/Field.js +419 -0
  178. package/src/components/form/field/FieldCollection.js +292 -0
  179. package/src/components/form/field/types/AutocompleteField.js +168 -0
  180. package/src/components/form/field/types/CheckboxField.js +77 -0
  181. package/src/components/form/field/types/CheckboxGroupField.js +171 -0
  182. package/src/components/form/field/types/ColorField.js +102 -0
  183. package/src/components/form/field/types/DateField.js +315 -0
  184. package/src/components/form/field/types/EmailField.js +104 -0
  185. package/src/components/form/field/types/FileField.js +276 -0
  186. package/src/components/form/field/types/HiddenField.js +44 -0
  187. package/src/components/form/field/types/ImageField.js +138 -0
  188. package/src/components/form/field/types/NumberField.js +177 -0
  189. package/src/components/form/field/types/PasswordField.js +200 -0
  190. package/src/components/form/field/types/RadioField.js +145 -0
  191. package/src/components/form/field/types/RangeField.js +117 -0
  192. package/src/components/form/field/types/SearchField.js +66 -0
  193. package/src/components/form/field/types/SelectField.js +247 -0
  194. package/src/components/form/field/types/StringField.js +148 -0
  195. package/src/components/form/field/types/TelField.js +98 -0
  196. package/src/components/form/field/types/TextAreaField.js +142 -0
  197. package/src/components/form/field/types/TimeField.js +215 -0
  198. package/src/components/form/field/types/UrlField.js +115 -0
  199. package/src/components/form/field/types/file-field-mode/FileAvatarMode.js +183 -0
  200. package/src/components/form/field/types/file-field-mode/FileDropzoneMode.js +117 -0
  201. package/src/components/form/field/types/file-field-mode/FileItemPreview.js +150 -0
  202. package/src/components/form/field/types/file-field-mode/FileNativeMode.js +43 -0
  203. package/src/components/form/field/types/file-field-mode/FileUploadButtonMode.js +120 -0
  204. package/src/components/form/field/types/file-field-mode/FileWallMode.js +106 -0
  205. package/src/components/form/index.js +61 -0
  206. package/src/components/form/merge +0 -0
  207. package/src/components/form/types/Field.d.ts +73 -0
  208. package/src/components/form/types/FieldCollection.d.ts +53 -0
  209. package/src/components/form/types/FormControl.d.ts +64 -0
  210. package/src/components/form/types/fields/AutocompleteField.d.ts +48 -0
  211. package/src/components/form/types/fields/CheckboxField.d.ts +33 -0
  212. package/src/components/form/types/fields/CheckboxGroupField.d.ts +49 -0
  213. package/src/components/form/types/fields/ColorField.d.ts +37 -0
  214. package/src/components/form/types/fields/DateField.d.ts +70 -0
  215. package/src/components/form/types/fields/EmailField.d.ts +35 -0
  216. package/src/components/form/types/fields/FileAvatarMode.d.ts +46 -0
  217. package/src/components/form/types/fields/FileDropzoneMode.d.ts +28 -0
  218. package/src/components/form/types/fields/FileField.d.ts +56 -0
  219. package/src/components/form/types/fields/FileItemPreview.d.ts +35 -0
  220. package/src/components/form/types/fields/FileNativeMode.d.ts +21 -0
  221. package/src/components/form/types/fields/FileUploadButtonMode.d.ts +34 -0
  222. package/src/components/form/types/fields/FileWallMode.d.ts +32 -0
  223. package/src/components/form/types/fields/HiddenField.d.ts +26 -0
  224. package/src/components/form/types/fields/ImageField.d.ts +45 -0
  225. package/src/components/form/types/fields/NumberField.d.ts +48 -0
  226. package/src/components/form/types/fields/PasswordField.d.ts +46 -0
  227. package/src/components/form/types/fields/RadioField.d.ts +48 -0
  228. package/src/components/form/types/fields/RangeField.d.ts +44 -0
  229. package/src/components/form/types/fields/SearchField.d.ts +34 -0
  230. package/src/components/form/types/fields/SelectField.d.ts +71 -0
  231. package/src/components/form/types/fields/StringField.d.ts +48 -0
  232. package/src/components/form/types/fields/TelField.d.ts +37 -0
  233. package/src/components/form/types/fields/TextAreaField.d.ts +44 -0
  234. package/src/components/form/types/fields/TimeField.d.ts +51 -0
  235. package/src/components/form/types/fields/UrlField.d.ts +35 -0
  236. package/src/components/form/utils.js +17 -0
  237. package/src/components/form/validation/Validation.js +565 -0
  238. package/src/components/index.d.ts +160 -0
  239. package/src/components/list/HasListItem.js +171 -0
  240. package/src/components/list/List.js +125 -0
  241. package/src/components/list/ListDivider.js +39 -0
  242. package/src/components/list/ListGroup.js +135 -0
  243. package/src/components/list/ListItem.js +212 -0
  244. package/src/components/list/index.js +12 -0
  245. package/src/components/list/types/List.d.ts +43 -0
  246. package/src/components/list/types/ListGroup.d.ts +37 -0
  247. package/src/components/list/types/ListItem.d.ts +53 -0
  248. package/src/components/menu/HasMenuItem.js +182 -0
  249. package/src/components/menu/Menu.js +227 -0
  250. package/src/components/menu/MenuDivider.js +37 -0
  251. package/src/components/menu/MenuGroup.js +126 -0
  252. package/src/components/menu/MenuItem.js +190 -0
  253. package/src/components/menu/MenuLink.js +51 -0
  254. package/src/components/menu/index.js +14 -0
  255. package/src/components/menu/types/Menu.d.ts +60 -0
  256. package/src/components/menu/types/MenuDivider.d.ts +19 -0
  257. package/src/components/menu/types/MenuGroup.d.ts +44 -0
  258. package/src/components/menu/types/MenuItem.d.ts +46 -0
  259. package/src/components/menu/types/MenuLink.d.ts +16 -0
  260. package/src/components/modal/Modal.js +524 -0
  261. package/src/components/modal/index.js +5 -0
  262. package/src/components/modal/types/Modal.d.ts +94 -0
  263. package/src/components/pagination/Pagination.js +411 -0
  264. package/src/components/pagination/index.js +5 -0
  265. package/src/components/pagination/types/Pagination.d.ts +68 -0
  266. package/src/components/popover/Popover.js +459 -0
  267. package/src/components/popover/PopoverFooter.js +61 -0
  268. package/src/components/popover/PopoverHeader.js +68 -0
  269. package/src/components/popover/index.js +10 -0
  270. package/src/components/popover/types/Popover.d.ts +83 -0
  271. package/src/components/popover/types/PopoverFooter.d.ts +24 -0
  272. package/src/components/popover/types/PopoverHeader.d.ts +26 -0
  273. package/src/components/progress/Progress.js +401 -0
  274. package/src/components/progress/index.js +6 -0
  275. package/src/components/progress/types/Progress.d.ts +77 -0
  276. package/src/components/skeleton/Skeleton.js +228 -0
  277. package/src/components/skeleton/index.js +6 -0
  278. package/src/components/skeleton/types/Skeleton.d.ts +55 -0
  279. package/src/components/slider/Slider.js +406 -0
  280. package/src/components/slider/index.js +5 -0
  281. package/src/components/slider/types/Slider.d.ts +82 -0
  282. package/src/components/spacer/Spacer.js +27 -0
  283. package/src/components/spacer/index.js +5 -0
  284. package/src/components/spacer/types/Spacer.d.ts +19 -0
  285. package/src/components/spinner/Spinner.js +350 -0
  286. package/src/components/spinner/index.js +5 -0
  287. package/src/components/spinner/types/Spinner.d.ts +71 -0
  288. package/src/components/splitter/Splitter.js +164 -0
  289. package/src/components/splitter/SplitterGutter.js +140 -0
  290. package/src/components/splitter/SplitterPanel.js +143 -0
  291. package/src/components/splitter/index.js +10 -0
  292. package/src/components/splitter/types/Splitter.d.ts +38 -0
  293. package/src/components/splitter/types/SplitterGutter.d.ts +38 -0
  294. package/src/components/splitter/types/SplitterPanel.d.ts +41 -0
  295. package/src/components/stacks/AbsoluteStack.js +53 -0
  296. package/src/components/stacks/FixedStack.js +53 -0
  297. package/src/components/stacks/HStack.js +54 -0
  298. package/src/components/stacks/PositionStack.js +254 -0
  299. package/src/components/stacks/RelativeStack.js +53 -0
  300. package/src/components/stacks/Stack.js +166 -0
  301. package/src/components/stacks/VStack.js +55 -0
  302. package/src/components/stacks/index.js +21 -0
  303. package/src/components/stacks/types/AbsoluteStack.d.ts +16 -0
  304. package/src/components/stacks/types/FixedStack.d.ts +16 -0
  305. package/src/components/stacks/types/HStack.d.ts +16 -0
  306. package/src/components/stacks/types/PositionStack.d.ts +54 -0
  307. package/src/components/stacks/types/RelativeStack.d.ts +17 -0
  308. package/src/components/stacks/types/Stack.d.ts +39 -0
  309. package/src/components/stacks/types/VStack.d.ts +16 -0
  310. package/src/components/stepper/Stepper.js +461 -0
  311. package/src/components/stepper/StepperStep.js +241 -0
  312. package/src/components/stepper/index.js +8 -0
  313. package/src/components/stepper/types/Stepper.d.ts +68 -0
  314. package/src/components/stepper/types/StepperStep.d.ts +54 -0
  315. package/src/components/switch/Switch.js +266 -0
  316. package/src/components/switch/index.js +6 -0
  317. package/src/components/switch/types/Switch.d.ts +55 -0
  318. package/src/components/table/Column.js +212 -0
  319. package/src/components/table/ColumnGroup.js +90 -0
  320. package/src/components/table/DataTable.js +720 -0
  321. package/src/components/table/SimpleTable.js +139 -0
  322. package/src/components/table/index.js +7 -0
  323. package/src/components/table/types/Column.d.ts +49 -0
  324. package/src/components/table/types/ColumnGroup.d.ts +28 -0
  325. package/src/components/table/types/DataTable.d.ts +97 -0
  326. package/src/components/table/types/SimpleTable.d.ts +40 -0
  327. package/src/components/tabs/Tabs.js +395 -0
  328. package/src/components/tabs/index.js +6 -0
  329. package/src/components/tabs/types/Tabs.d.ts +78 -0
  330. package/src/components/toast/Toast.js +262 -0
  331. package/src/components/toast/ToastError.js +0 -0
  332. package/src/components/toast/ToastInfo.js +0 -0
  333. package/src/components/toast/ToastSuccess.js +0 -0
  334. package/src/components/toast/ToastWarning.js +0 -0
  335. package/src/components/toast/index.js +5 -0
  336. package/src/components/toast/types/Toast.d.ts +57 -0
  337. package/src/components/toast/types/ToastError.d.ts +7 -0
  338. package/src/components/toast/types/ToastInfo.d.ts +7 -0
  339. package/src/components/toast/types/ToastSuccess.d.ts +7 -0
  340. package/src/components/toast/types/ToastWarning.d.ts +7 -0
  341. package/src/components/tooltip/Tooltip.js +359 -0
  342. package/src/components/tooltip/index.js +5 -0
  343. package/src/components/tooltip/prototypes.js +6 -0
  344. package/src/components/tooltip/types/Tooltip.d.ts +65 -0
  345. package/src/{data → core/data}/MemoryManager.js +2 -3
  346. package/src/core/data/Observable.js +227 -0
  347. package/src/core/data/ObservableArray.js +522 -0
  348. package/src/core/data/ObservableChecker.js +39 -0
  349. package/src/core/data/ObservableItem.js +611 -0
  350. package/src/core/data/ObservableObject.js +274 -0
  351. package/src/core/data/ObservableResource.js +315 -0
  352. package/src/core/data/ObservableWhen.js +54 -0
  353. package/src/core/data/Store.js +520 -0
  354. package/src/core/data/observable-helpers/observable.is-to.js +390 -0
  355. package/src/core/data/observable-helpers/observable.prototypes.js +145 -0
  356. package/src/core/elements/anchor/anchor-with-sentinel.js +66 -0
  357. package/src/core/elements/anchor/anchor.js +210 -0
  358. package/src/core/elements/anchor/one-child-anchor-overwriting.js +66 -0
  359. package/src/core/elements/content-formatter.js +169 -0
  360. package/src/core/elements/control/for-each-array.js +292 -0
  361. package/src/{elements → core/elements}/control/for-each.js +42 -23
  362. package/src/core/elements/control/show-if.js +94 -0
  363. package/src/core/elements/control/show-when.js +54 -0
  364. package/src/core/elements/control/switch.js +141 -0
  365. package/src/core/elements/description-list.js +19 -0
  366. package/src/core/elements/form.js +255 -0
  367. package/src/core/elements/fragment.js +8 -0
  368. package/src/core/elements/html5-semantics.js +55 -0
  369. package/src/core/elements/img.js +59 -0
  370. package/src/{elements → core/elements}/index.js +4 -4
  371. package/src/core/elements/interactive.js +25 -0
  372. package/src/core/elements/list.js +37 -0
  373. package/src/core/elements/medias.js +37 -0
  374. package/src/core/elements/meta-data.js +43 -0
  375. package/src/core/elements/svg.js +61 -0
  376. package/src/core/elements/table.js +73 -0
  377. package/src/{errors → core/errors}/ArgTypesError.js +1 -1
  378. package/src/{errors → core/errors}/NativeDocumentError.js +0 -0
  379. package/src/core/utils/HasEventEmitter.js +85 -0
  380. package/src/core/utils/args-types.js +140 -0
  381. package/src/core/utils/cache.js +5 -0
  382. package/src/core/utils/callback-handler.js +50 -0
  383. package/src/core/utils/debug-manager.js +40 -0
  384. package/src/core/utils/events.js +148 -0
  385. package/src/core/utils/filters/date.js +178 -0
  386. package/src/core/utils/filters/index.js +4 -0
  387. package/src/core/utils/filters/standard.js +263 -0
  388. package/src/core/utils/filters/strings.js +67 -0
  389. package/src/core/utils/filters/utils.js +77 -0
  390. package/src/core/utils/formatters.js +90 -0
  391. package/src/core/utils/helpers.js +144 -0
  392. package/src/core/utils/localstorage.js +57 -0
  393. package/src/core/utils/memoize.js +115 -0
  394. package/src/core/utils/plugins-manager.js +81 -0
  395. package/src/core/utils/property-accumulator.js +72 -0
  396. package/src/core/utils/prototypes.js +44 -0
  397. package/src/core/utils/shortcut-manager.js +242 -0
  398. package/src/{utils → core/utils}/validator.js +58 -22
  399. package/src/core/wrappers/AttributesWrapper.js +98 -0
  400. package/src/core/wrappers/DocumentObserver.js +182 -0
  401. package/src/core/wrappers/ElementCreator.js +120 -0
  402. package/src/core/wrappers/HtmlElementWrapper.js +98 -0
  403. package/src/core/wrappers/NDElement.js +613 -0
  404. package/src/core/wrappers/NdPrototype.js +233 -0
  405. package/src/core/wrappers/SingletonView.js +99 -0
  406. package/src/core/wrappers/SvgElementWrapper.js +15 -0
  407. package/src/core/wrappers/TemplateBinding.js +7 -0
  408. package/src/core/wrappers/constants.js +66 -0
  409. package/src/core/wrappers/prototypes/attributes-extensions.js +179 -0
  410. package/src/core/wrappers/prototypes/bind-class-extensions.js +0 -0
  411. package/src/core/wrappers/prototypes/nd-element-extensions.js +157 -0
  412. package/src/core/wrappers/prototypes/nd-element.transition.extensions.js +127 -0
  413. package/src/core/wrappers/template-cloner/NodeCloner.js +209 -0
  414. package/src/core/wrappers/template-cloner/TemplateCloner.js +192 -0
  415. package/src/core/wrappers/template-cloner/attributes-hydrator.js +142 -0
  416. package/src/core/wrappers/template-cloner/utils.js +173 -0
  417. package/src/fetch/NativeFetch.js +89 -0
  418. package/src/i18n/bin/scan.js +132 -0
  419. package/src/i18n/index.d.ts +2 -0
  420. package/src/i18n/service/I18nService.d.ts +27 -0
  421. package/src/i18n/service/I18nService.js +46 -0
  422. package/src/i18n/service/functions.d.ts +22 -0
  423. package/src/i18n/service/functions.js +29 -0
  424. package/src/router/Route.js +33 -8
  425. package/src/router/RouteGroupHelper.js +10 -2
  426. package/src/router/Router.js +63 -22
  427. package/src/router/RouterComponent.js +114 -6
  428. package/src/{errors → router/errors}/RouterError.js +0 -1
  429. package/src/router/link.js +9 -10
  430. package/src/router/modes/HashRouter.js +2 -2
  431. package/src/router/modes/HistoryRouter.js +2 -3
  432. package/src/router/modes/MemoryRouter.js +1 -1
  433. package/src/ui/components/accordion/AccordionItemRender.js +63 -0
  434. package/src/ui/components/accordion/AccordionRender.js +35 -0
  435. package/src/ui/components/accordion/accordion.css +121 -0
  436. package/src/ui/components/alert/AlertRender.js +81 -0
  437. package/src/ui/components/alert/alert.css +163 -0
  438. package/src/ui/components/avatar/avata-group/AvatarGroupRender.js +50 -0
  439. package/src/ui/components/avatar/avata-group/avatar-group.css +38 -0
  440. package/src/ui/components/avatar/avatar/AvatarRender.js +87 -0
  441. package/src/ui/components/avatar/avatar/avatar.css +189 -0
  442. package/src/ui/components/badge/BadgeRender.js +25 -0
  443. package/src/ui/components/badge/badge.css +168 -0
  444. package/src/ui/components/breadcrumb/BreadcrumbRender.js +44 -0
  445. package/src/ui/components/breadcrumb/breadcrumb.css +55 -0
  446. package/src/ui/components/button/ButtonRender.js +65 -0
  447. package/src/ui/components/button/button.css +296 -0
  448. package/src/ui/components/card/CardRender.js +133 -0
  449. package/src/ui/components/card/card.css +169 -0
  450. package/src/ui/components/contextmenu/ContextmenuRender.js +68 -0
  451. package/src/ui/components/contextmenu/contextmenu.css +36 -0
  452. package/src/ui/components/divider/DividerRender.js +70 -0
  453. package/src/ui/components/divider/divider.css +70 -0
  454. package/src/ui/components/dropdown/DropdownRender.js +92 -0
  455. package/src/ui/components/dropdown/divider/DropdownDividerRender.js +9 -0
  456. package/src/ui/components/dropdown/divider/dropdown-divider.css +0 -0
  457. package/src/ui/components/dropdown/dropdown.css +179 -0
  458. package/src/ui/components/dropdown/group/DropdownGroupRender.js +23 -0
  459. package/src/ui/components/dropdown/group/dropdown-group.css +0 -0
  460. package/src/ui/components/dropdown/item/DropdownItemRender.js +29 -0
  461. package/src/ui/components/dropdown/item/dropdown-item.css +0 -0
  462. package/src/ui/components/form/FieldCollectionRender.js +110 -0
  463. package/src/ui/components/form/FormControlRender.js +85 -0
  464. package/src/ui/components/form/field-collection.css +55 -0
  465. package/src/ui/components/form/fields/AutocompleteFieldRender.js +143 -0
  466. package/src/ui/components/form/fields/CheckboxFieldRender.js +59 -0
  467. package/src/ui/components/form/fields/CheckboxGroupFieldRender.js +92 -0
  468. package/src/ui/components/form/fields/ColorFieldRender.js +30 -0
  469. package/src/ui/components/form/fields/DateFieldRender.js +155 -0
  470. package/src/ui/components/form/fields/EmailFieldRender.js +5 -0
  471. package/src/ui/components/form/fields/FieldRender.js +118 -0
  472. package/src/ui/components/form/fields/FileFieldRender.js +41 -0
  473. package/src/ui/components/form/fields/HiddenFieldRender.js +13 -0
  474. package/src/ui/components/form/fields/ImageFieldRender.js +0 -0
  475. package/src/ui/components/form/fields/NumberFieldRender.js +52 -0
  476. package/src/ui/components/form/fields/PasswordFieldRender.js +65 -0
  477. package/src/ui/components/form/fields/RadioFieldRender.js +77 -0
  478. package/src/ui/components/form/fields/RangeFieldRender.js +122 -0
  479. package/src/ui/components/form/fields/SelectFieldRender.js +248 -0
  480. package/src/ui/components/form/fields/SliderFieldRender.js +359 -0
  481. package/src/ui/components/form/fields/StringFieldRender.js +6 -0
  482. package/src/ui/components/form/fields/TelFieldRender.js +6 -0
  483. package/src/ui/components/form/fields/TextAreaFieldRender.js +96 -0
  484. package/src/ui/components/form/fields/TimeFieldRender.js +142 -0
  485. package/src/ui/components/form/fields/UrlFieldRender.js +6 -0
  486. package/src/ui/components/form/fields/date-field.css +32 -0
  487. package/src/ui/components/form/fields/field.css +402 -0
  488. package/src/ui/components/form/fields/file-field.css +79 -0
  489. package/src/ui/components/form/fields/password-field.css +50 -0
  490. package/src/ui/components/form/fields/range-field.css +120 -0
  491. package/src/ui/components/form/fields/slider.css +195 -0
  492. package/src/ui/components/form/file-upload-mode/FileAvatarModeRender.js +143 -0
  493. package/src/ui/components/form/file-upload-mode/FileDropzoneModeRender.js +108 -0
  494. package/src/ui/components/form/file-upload-mode/FileNativeModeRender.js +22 -0
  495. package/src/ui/components/form/file-upload-mode/FileUploadButtonModeRender.js +89 -0
  496. package/src/ui/components/form/file-upload-mode/FileWallModeRender.js +90 -0
  497. package/src/ui/components/form/file-upload-mode/file-avatar-mode.css +139 -0
  498. package/src/ui/components/form/file-upload-mode/file-dropzone-mode.css +88 -0
  499. package/src/ui/components/form/file-upload-mode/file-upload-button-mode.css +44 -0
  500. package/src/ui/components/form/file-upload-mode/file-wall-mode.css +88 -0
  501. package/src/ui/components/form/form-control.css +40 -0
  502. package/src/ui/components/form/helpers.js +111 -0
  503. package/src/ui/components/form/index.js +27 -0
  504. package/src/ui/components/list/ListRender.js +18 -0
  505. package/src/ui/components/list/divider/ListDividerRender.js +10 -0
  506. package/src/ui/components/list/divider/list-divider.css +12 -0
  507. package/src/ui/components/list/group/ListGroupRender.js +61 -0
  508. package/src/ui/components/list/group/list-group.css +62 -0
  509. package/src/ui/components/list/item/ListItemRender.js +238 -0
  510. package/src/ui/components/list/item/list-item.css +191 -0
  511. package/src/ui/components/list/list.css +24 -0
  512. package/src/ui/components/menu/MenuDividerRender.js +12 -0
  513. package/src/ui/components/menu/MenuGroupRender.js +59 -0
  514. package/src/ui/components/menu/MenuItemRender.js +57 -0
  515. package/src/ui/components/menu/MenuLinkRender.js +55 -0
  516. package/src/ui/components/menu/MenuRender.js +22 -0
  517. package/src/ui/components/menu/helpers.js +121 -0
  518. package/src/ui/components/menu/menu.css +308 -0
  519. package/src/ui/components/modal/ModalRender.js +118 -0
  520. package/src/ui/components/modal/modal.css +156 -0
  521. package/src/ui/components/pagination/PaginationRender.js +112 -0
  522. package/src/ui/components/pagination/pagination.css +63 -0
  523. package/src/ui/components/popover/PopoverRender.js +233 -0
  524. package/src/ui/components/popover/popover.css +139 -0
  525. package/src/ui/components/progress/ProgressRender.js +168 -0
  526. package/src/ui/components/progress/progress.css +197 -0
  527. package/src/ui/components/skeleton/SkeletonRender.js +136 -0
  528. package/src/ui/components/skeleton/skeleton.css +154 -0
  529. package/src/ui/components/spacer/SpacerRender.js +10 -0
  530. package/src/ui/components/spinner/SpinnerRender.js +47 -0
  531. package/src/ui/components/spinner/spinner.css +152 -0
  532. package/src/ui/components/splitter/SplitterGutterRender.js +94 -0
  533. package/src/ui/components/splitter/SplitterPanelRender.js +38 -0
  534. package/src/ui/components/splitter/SplitterRender.js +75 -0
  535. package/src/ui/components/splitter/splitter.css +128 -0
  536. package/src/ui/components/stacks/PositionStackRender.js +39 -0
  537. package/src/ui/components/stacks/StackRender.js +41 -0
  538. package/src/ui/components/stacks/absolute-stack/AbsoluteStackRender.js +5 -0
  539. package/src/ui/components/stacks/fixed-stack/FixedStackRender.js +5 -0
  540. package/src/ui/components/stacks/h-stack/HStackRender.js +7 -0
  541. package/src/ui/components/stacks/h-stack/h-stack.css +4 -0
  542. package/src/ui/components/stacks/index.js +5 -0
  543. package/src/ui/components/stacks/position-stack.css +62 -0
  544. package/src/ui/components/stacks/relative-stack/RelativeStackRender.js +7 -0
  545. package/src/ui/components/stacks/relative-stack/relative-stack.css +3 -0
  546. package/src/ui/components/stacks/stack.css +78 -0
  547. package/src/ui/components/stacks/v-stack/VStackRender.js +6 -0
  548. package/src/ui/components/stacks/v-stack/v-stack.css +4 -0
  549. package/src/ui/components/stepper/StepperRender.js +71 -0
  550. package/src/ui/components/stepper/StepperStepRender.js +67 -0
  551. package/src/ui/components/stepper/stepper.css +359 -0
  552. package/src/ui/components/switch/SwitchRender.js +83 -0
  553. package/src/ui/components/switch/switch.css +143 -0
  554. package/src/ui/components/table/data-table/DataTableRender.js +50 -0
  555. package/src/ui/components/table/data-table/bulk-actions.js +34 -0
  556. package/src/ui/components/table/data-table/data-table.css +246 -0
  557. package/src/ui/components/table/data-table/pagination.js +56 -0
  558. package/src/ui/components/table/data-table/tables.js +368 -0
  559. package/src/ui/components/table/data-table/toolbar.js +67 -0
  560. package/src/ui/components/table/simple-table/SimpleTableRender.js +203 -0
  561. package/src/ui/components/table/simple-table/simple-table.css +50 -0
  562. package/src/ui/components/tabs/TabsRender.js +226 -0
  563. package/src/ui/components/tabs/tabs.css +253 -0
  564. package/src/ui/components/toast/ToastRender.js +99 -0
  565. package/src/ui/components/toast/toast.css +201 -0
  566. package/src/ui/components/tooltip/TooltipRender.js +8 -0
  567. package/src/ui/components/tooltip/tooltip.css +113 -0
  568. package/src/ui/index.js +47 -0
  569. package/src/ui/theme.js +0 -0
  570. package/src/ui/theme.scss +1 -0
  571. package/src/ui/tokens/animation.scss +36 -0
  572. package/src/ui/tokens/colors-dark.scss +58 -0
  573. package/src/ui/tokens/colors.scss +54 -0
  574. package/src/ui/tokens/components.scss +32 -0
  575. package/src/ui/tokens/fonts.scss +57 -0
  576. package/src/ui/tokens/glass.scss +10 -0
  577. package/src/ui/tokens/index.scss +38 -0
  578. package/src/ui/tokens/layouts.scss +228 -0
  579. package/src/ui/tokens/opacity.scss +21 -0
  580. package/src/ui/tokens/others.scss +11 -0
  581. package/src/ui/tokens/radius.scss +6 -0
  582. package/src/ui/tokens/reset.scss +51 -0
  583. package/src/ui/tokens/shadows.scss +29 -0
  584. package/src/ui/tokens/spacings.scss +13 -0
  585. package/src/ui/tokens/vars.scss +35 -0
  586. package/src/ui/tokens/viewports.scss +30 -0
  587. package/types/args-types.d.ts +58 -0
  588. package/types/control-flow.d.ts +62 -0
  589. package/types/elements.d.ts +231 -0
  590. package/types/filters/dates.d.ts +43 -0
  591. package/types/filters/index.d.ts +4 -0
  592. package/types/filters/standard.d.ts +70 -0
  593. package/types/filters/strings.d.ts +21 -0
  594. package/types/filters/types.d.ts +20 -0
  595. package/types/forms.d.ts +84 -0
  596. package/types/globals.d.ts +543 -0
  597. package/types/images.d.ts +23 -0
  598. package/types/localStorage.ts +102 -0
  599. package/types/memoize.d.ts +26 -0
  600. package/types/native-fetch.d.ts +72 -0
  601. package/types/nd-element.d.ts +407 -0
  602. package/types/observable-resource.d.ts +3 -0
  603. package/types/observable.d.ts +227 -0
  604. package/types/plugins-manager.d.ts +65 -0
  605. package/types/polyfill.d.ts +18 -0
  606. package/types/property-accumulator.d.ts +33 -0
  607. package/types/router.d.ts +85 -0
  608. package/types/service.d.ts +23 -0
  609. package/types/singleton.d.ts +19 -0
  610. package/types/store.d.ts +63 -0
  611. package/types/template-cloner.ts +43 -0
  612. package/types/validator.ts +66 -0
  613. package/ui.js +1 -0
  614. package/utils.d.ts +4 -0
  615. package/utils.js +12 -0
  616. package/src/data/Observable.js +0 -55
  617. package/src/data/ObservableChecker.js +0 -39
  618. package/src/data/ObservableItem.js +0 -195
  619. package/src/data/Store.js +0 -74
  620. package/src/data/observable-helpers/array.js +0 -74
  621. package/src/data/observable-helpers/batch.js +0 -22
  622. package/src/data/observable-helpers/computed.js +0 -28
  623. package/src/data/observable-helpers/object.js +0 -111
  624. package/src/elements/anchor.js +0 -129
  625. package/src/elements/content-formatter.js +0 -32
  626. package/src/elements/control/for-each-array.js +0 -280
  627. package/src/elements/control/show-if.js +0 -79
  628. package/src/elements/control/switch.js +0 -98
  629. package/src/elements/description-list.js +0 -5
  630. package/src/elements/form.js +0 -71
  631. package/src/elements/html5-semantics.js +0 -12
  632. package/src/elements/img.js +0 -45
  633. package/src/elements/interactive.js +0 -7
  634. package/src/elements/list.js +0 -10
  635. package/src/elements/medias.js +0 -8
  636. package/src/elements/meta-data.js +0 -9
  637. package/src/elements/table.js +0 -14
  638. package/src/utils/args-types.js +0 -100
  639. package/src/utils/debug-manager.js +0 -31
  640. package/src/utils/helpers.js +0 -60
  641. package/src/utils/plugins-manager.js +0 -12
  642. package/src/utils/prototypes.js +0 -45
  643. package/src/wrappers/AttributesWrapper.js +0 -144
  644. package/src/wrappers/DocumentObserver.js +0 -80
  645. package/src/wrappers/ElementCreator.js +0 -114
  646. package/src/wrappers/HtmlElementEventsWrapper.js +0 -64
  647. package/src/wrappers/HtmlElementWrapper.js +0 -50
  648. package/src/wrappers/NdPrototype.js +0 -109
  649. package/src/wrappers/constants.js +0 -2
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
+ */