@microsoft/fast-element 2.10.4 → 3.0.0-rc.1

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 (349) hide show
  1. package/ARCHITECTURE_HTML_TAGGED_TEMPLATE_LITERAL.md +1 -1
  2. package/ARCHITECTURE_OVERVIEW.md +2 -2
  3. package/CHANGELOG.json +1 -1
  4. package/CHANGELOG.md +2 -2
  5. package/DECLARATIVE_DESIGN.md +806 -0
  6. package/DECLARATIVE_HTML.md +470 -0
  7. package/DECLARATIVE_MIGRATION.md +215 -0
  8. package/DECLARATIVE_RENDERING.md +530 -0
  9. package/DECLARATIVE_RENDERING_LIFECYCLE.md +288 -0
  10. package/DECLARATIVE_SCHEMA_OBSERVER_MAP.md +489 -0
  11. package/DESIGN.md +138 -33
  12. package/MIGRATION.md +387 -0
  13. package/README.md +208 -1
  14. package/SIZES.md +25 -0
  15. package/api-extractor.arrays.json +15 -0
  16. package/api-extractor.context.json +1 -0
  17. package/api-extractor.declarative.json +15 -0
  18. package/api-extractor.di.json +1 -0
  19. package/api-extractor.hydration.json +15 -0
  20. package/api-extractor.styles.json +15 -0
  21. package/dist/arrays/arrays.api.json +2621 -0
  22. package/dist/declarative/declarative.api.json +7844 -0
  23. package/dist/di/di.api.json +1 -1
  24. package/dist/dts/array-observer.d.ts +2 -0
  25. package/dist/dts/arrays.d.ts +2 -0
  26. package/dist/dts/attr.d.ts +1 -0
  27. package/dist/dts/binding/signal.d.ts +6 -6
  28. package/dist/dts/binding/two-way.d.ts +1 -0
  29. package/dist/dts/binding.d.ts +7 -0
  30. package/dist/dts/components/attributes.d.ts +2 -5
  31. package/dist/dts/components/definition-schema-transforms.d.ts +9 -0
  32. package/dist/dts/components/element-controller.d.ts +80 -114
  33. package/dist/dts/components/element-hydration.d.ts +1 -1
  34. package/dist/dts/components/enable-hydration.d.ts +34 -0
  35. package/dist/dts/components/fast-definitions.d.ts +91 -42
  36. package/dist/dts/components/fast-element.d.ts +5 -8
  37. package/dist/dts/components/hydration-tracker.d.ts +40 -0
  38. package/dist/dts/components/hydration.d.ts +18 -53
  39. package/dist/dts/components/schema.d.ts +205 -0
  40. package/dist/dts/context.d.ts +6 -6
  41. package/dist/dts/css.d.ts +3 -0
  42. package/dist/dts/debug.d.ts +5 -1
  43. package/dist/dts/declarative/attribute-map.d.ts +58 -0
  44. package/dist/dts/declarative/debug.d.ts +5 -0
  45. package/dist/dts/declarative/index.d.ts +13 -0
  46. package/dist/dts/declarative/interfaces.d.ts +9 -0
  47. package/dist/dts/declarative/observer-map-utilities.d.ts +58 -0
  48. package/dist/dts/declarative/observer-map.d.ts +89 -0
  49. package/dist/dts/declarative/runtime.d.ts +5 -0
  50. package/dist/dts/declarative/syntax.d.ts +21 -0
  51. package/dist/dts/declarative/template-bridge.d.ts +33 -0
  52. package/dist/dts/declarative/template-parser.d.ts +98 -0
  53. package/dist/dts/declarative/template.d.ts +9 -0
  54. package/dist/dts/declarative/utilities.d.ts +312 -0
  55. package/dist/dts/di/di.d.ts +1 -1
  56. package/dist/dts/directives/children.d.ts +2 -0
  57. package/dist/dts/directives/node-observation.d.ts +2 -0
  58. package/dist/dts/directives/ref.d.ts +2 -0
  59. package/dist/dts/directives/repeat.d.ts +4 -0
  60. package/dist/dts/directives/slotted.d.ts +2 -0
  61. package/dist/dts/directives/when.d.ts +3 -0
  62. package/dist/dts/dom-policy.d.ts +1 -1
  63. package/dist/dts/html.d.ts +5 -0
  64. package/dist/dts/hydration/runtime.d.ts +7 -0
  65. package/dist/dts/hydration/target-builder.d.ts +15 -12
  66. package/dist/dts/hydration.d.ts +14 -0
  67. package/dist/dts/index.d.ts +38 -42
  68. package/dist/dts/index.debug.d.ts +0 -1
  69. package/dist/dts/index.rollup.debug.d.ts +0 -1
  70. package/dist/dts/interfaces.d.ts +1 -49
  71. package/dist/dts/observable.d.ts +3 -6
  72. package/dist/dts/observation/arrays.d.ts +1 -1
  73. package/dist/dts/observation/update-queue.d.ts +1 -1
  74. package/dist/dts/platform.d.ts +25 -4
  75. package/dist/dts/render.d.ts +7 -0
  76. package/dist/dts/schema.d.ts +1 -0
  77. package/dist/dts/state/exports.d.ts +1 -1
  78. package/dist/dts/state/state.d.ts +2 -2
  79. package/dist/dts/styles/css-directive.d.ts +5 -12
  80. package/dist/dts/styles/css.d.ts +5 -7
  81. package/dist/dts/styles/element-styles.d.ts +0 -10
  82. package/dist/dts/styles.d.ts +6 -0
  83. package/dist/dts/templating/children.d.ts +1 -1
  84. package/dist/dts/templating/html-binding-directive.d.ts +4 -0
  85. package/dist/dts/templating/html-directive.d.ts +17 -0
  86. package/dist/dts/templating/hydration-view.d.ts +109 -0
  87. package/dist/dts/templating/ref.d.ts +1 -1
  88. package/dist/dts/templating/render.d.ts +1 -1
  89. package/dist/dts/templating/repeat.d.ts +2 -2
  90. package/dist/dts/templating/slotted.d.ts +1 -1
  91. package/dist/dts/templating/template.d.ts +17 -9
  92. package/dist/dts/templating/view.d.ts +25 -102
  93. package/dist/dts/templating/when.d.ts +1 -1
  94. package/dist/dts/templating.d.ts +10 -0
  95. package/dist/dts/testing/exports.d.ts +2 -2
  96. package/dist/dts/updates.d.ts +1 -0
  97. package/dist/dts/volatile.d.ts +2 -0
  98. package/dist/esm/array-observer.js +1 -0
  99. package/dist/esm/arrays.js +1 -0
  100. package/dist/esm/attr.js +1 -0
  101. package/dist/esm/binding/normalize.js +1 -1
  102. package/dist/esm/binding/signal.js +4 -4
  103. package/dist/esm/binding/two-way.js +2 -1
  104. package/dist/esm/binding.js +4 -0
  105. package/dist/esm/components/attributes.js +8 -5
  106. package/dist/esm/components/definition-schema-transforms.js +23 -0
  107. package/dist/esm/components/element-controller.js +200 -269
  108. package/dist/esm/components/element-hydration.js +1 -1
  109. package/dist/esm/components/enable-hydration.js +100 -0
  110. package/dist/esm/components/fast-definitions.js +211 -49
  111. package/dist/esm/components/fast-element.js +18 -27
  112. package/dist/esm/components/hydration-tracker.js +93 -0
  113. package/dist/esm/components/hydration.js +62 -144
  114. package/dist/esm/components/schema.js +253 -0
  115. package/dist/esm/context.js +6 -6
  116. package/dist/esm/css.js +3 -0
  117. package/dist/esm/debug.js +26 -26
  118. package/dist/esm/declarative/attribute-map.js +121 -0
  119. package/dist/esm/declarative/debug.js +5 -0
  120. package/dist/esm/declarative/index.js +3 -0
  121. package/dist/esm/declarative/interfaces.js +10 -0
  122. package/dist/esm/declarative/observer-map-utilities.js +562 -0
  123. package/dist/esm/declarative/observer-map.js +216 -0
  124. package/dist/esm/declarative/runtime.js +14 -0
  125. package/dist/esm/declarative/syntax.js +36 -0
  126. package/dist/esm/declarative/template-bridge.js +170 -0
  127. package/dist/esm/declarative/template-parser.js +306 -0
  128. package/dist/esm/declarative/template.js +142 -0
  129. package/dist/esm/declarative/utilities.js +834 -0
  130. package/dist/esm/di/di.js +6 -8
  131. package/dist/esm/directives/children.js +1 -0
  132. package/dist/esm/directives/node-observation.js +1 -0
  133. package/dist/esm/directives/ref.js +1 -0
  134. package/dist/esm/directives/repeat.js +1 -0
  135. package/dist/esm/directives/slotted.js +1 -0
  136. package/dist/esm/directives/when.js +1 -0
  137. package/dist/esm/dom-policy.js +2 -2
  138. package/dist/esm/dom.js +1 -1
  139. package/dist/esm/html.js +2 -0
  140. package/dist/esm/hydration/runtime.js +33 -0
  141. package/dist/esm/hydration/target-builder.js +97 -90
  142. package/dist/esm/hydration.js +4 -0
  143. package/dist/esm/index.debug.js +2 -1
  144. package/dist/esm/index.js +34 -29
  145. package/dist/esm/index.rollup.debug.js +3 -2
  146. package/dist/esm/index.rollup.js +1 -1
  147. package/dist/esm/interfaces.js +1 -45
  148. package/dist/esm/observable.js +1 -4
  149. package/dist/esm/observation/arrays.js +1 -1
  150. package/dist/esm/observation/observable.js +5 -5
  151. package/dist/esm/observation/update-queue.js +47 -58
  152. package/dist/esm/platform.js +31 -30
  153. package/dist/esm/render.js +1 -0
  154. package/dist/esm/schema.js +1 -0
  155. package/dist/esm/state/exports.js +1 -1
  156. package/dist/esm/styles/css-directive.js +1 -2
  157. package/dist/esm/styles/css.js +15 -56
  158. package/dist/esm/styles/element-styles.js +69 -15
  159. package/dist/esm/styles.js +2 -0
  160. package/dist/esm/templating/html-binding-directive.js +10 -8
  161. package/dist/esm/templating/hydration-view.js +235 -0
  162. package/dist/esm/templating/render.js +1 -1
  163. package/dist/esm/templating/repeat.js +36 -34
  164. package/dist/esm/templating/template.js +7 -7
  165. package/dist/esm/templating/view.js +24 -233
  166. package/dist/esm/templating.js +7 -0
  167. package/dist/esm/testing/exports.js +2 -2
  168. package/dist/esm/updates.js +1 -0
  169. package/dist/esm/volatile.js +1 -0
  170. package/dist/fast-element.api.json +9016 -6995
  171. package/dist/fast-element.d.ts +3557 -796
  172. package/dist/fast-element.debug.js +5088 -4437
  173. package/dist/fast-element.debug.min.js +2 -2
  174. package/dist/fast-element.js +5369 -4649
  175. package/dist/fast-element.min.js +2 -2
  176. package/dist/fast-element.untrimmed.d.ts +863 -475
  177. package/dist/hydration/hydration.api.json +5237 -0
  178. package/dist/styles/styles.api.json +2672 -0
  179. package/docs/api-report.api.md +343 -166
  180. package/docs/arrays/api-report.api.md +114 -0
  181. package/docs/declarative/api-report.api.md +397 -0
  182. package/docs/hydration/api-report.api.md +285 -0
  183. package/docs/styles/api-report.api.md +135 -0
  184. package/package.json +149 -41
  185. package/playwright.declarative.config.ts +26 -0
  186. package/playwright.declarative.webui.config.ts +20 -0
  187. package/scripts/declarative/build-fixtures-with-webui.js +135 -0
  188. package/scripts/declarative/build-fixtures.js +49 -0
  189. package/scripts/declarative/build-fixtures.utilities.js +101 -0
  190. package/scripts/measure-sizes.js +219 -0
  191. package/scripts/run-api-extractor.js +39 -20
  192. package/test/declarative/fixtures/README.md +72 -0
  193. package/test/declarative/fixtures/WRITING_FIXTURES.md +330 -0
  194. package/test/declarative/fixtures/bindings/README.md +12 -0
  195. package/test/declarative/fixtures/bindings/attribute/entry.html +13 -0
  196. package/test/declarative/fixtures/bindings/attribute/fast-build.config.json +6 -0
  197. package/test/declarative/fixtures/bindings/attribute/index.html +25 -0
  198. package/test/declarative/fixtures/bindings/attribute/main.ts +41 -0
  199. package/test/declarative/fixtures/bindings/attribute/state.json +8 -0
  200. package/test/declarative/fixtures/bindings/attribute/templates.html +11 -0
  201. package/test/declarative/fixtures/bindings/content/entry.html +12 -0
  202. package/test/declarative/fixtures/bindings/content/fast-build.config.json +6 -0
  203. package/test/declarative/fixtures/bindings/content/index.html +19 -0
  204. package/test/declarative/fixtures/bindings/content/main.ts +27 -0
  205. package/test/declarative/fixtures/bindings/content/state.json +4 -0
  206. package/test/declarative/fixtures/bindings/content/templates.html +6 -0
  207. package/test/declarative/fixtures/bindings/dot-syntax/entry.html +11 -0
  208. package/test/declarative/fixtures/bindings/dot-syntax/fast-build.config.json +6 -0
  209. package/test/declarative/fixtures/bindings/dot-syntax/index.html +47 -0
  210. package/test/declarative/fixtures/bindings/dot-syntax/main.ts +59 -0
  211. package/test/declarative/fixtures/bindings/dot-syntax/state.json +16 -0
  212. package/test/declarative/fixtures/bindings/dot-syntax/templates.html +17 -0
  213. package/test/declarative/fixtures/bindings/event/entry.html +11 -0
  214. package/test/declarative/fixtures/bindings/event/fast-build.config.json +6 -0
  215. package/test/declarative/fixtures/bindings/event/index.html +43 -0
  216. package/test/declarative/fixtures/bindings/event/main.ts +43 -0
  217. package/test/declarative/fixtures/bindings/event/state.json +3 -0
  218. package/test/declarative/fixtures/bindings/event/templates.html +18 -0
  219. package/test/declarative/fixtures/bindings/host/entry.html +40 -0
  220. package/test/declarative/fixtures/bindings/host/fast-build.config.json +6 -0
  221. package/test/declarative/fixtures/bindings/host/index.html +96 -0
  222. package/test/declarative/fixtures/bindings/host/main.ts +222 -0
  223. package/test/declarative/fixtures/bindings/host/state.json +9 -0
  224. package/test/declarative/fixtures/bindings/host/templates.html +55 -0
  225. package/test/declarative/fixtures/directives/README.md +12 -0
  226. package/test/declarative/fixtures/directives/children/entry.html +11 -0
  227. package/test/declarative/fixtures/directives/children/fast-build.config.json +6 -0
  228. package/test/declarative/fixtures/directives/children/index.html +15 -0
  229. package/test/declarative/fixtures/directives/children/main.ts +22 -0
  230. package/test/declarative/fixtures/directives/children/state.json +3 -0
  231. package/test/declarative/fixtures/directives/children/templates.html +3 -0
  232. package/test/declarative/fixtures/directives/ref/entry.html +11 -0
  233. package/test/declarative/fixtures/directives/ref/fast-build.config.json +6 -0
  234. package/test/declarative/fixtures/directives/ref/index.html +15 -0
  235. package/test/declarative/fixtures/directives/ref/main.ts +17 -0
  236. package/test/declarative/fixtures/directives/ref/state.json +1 -0
  237. package/test/declarative/fixtures/directives/ref/templates.html +3 -0
  238. package/test/declarative/fixtures/directives/repeat/entry.html +21 -0
  239. package/test/declarative/fixtures/directives/repeat/fast-build.config.json +6 -0
  240. package/test/declarative/fixtures/directives/repeat/index.html +133 -0
  241. package/test/declarative/fixtures/directives/repeat/main.ts +110 -0
  242. package/test/declarative/fixtures/directives/repeat/sprites.svg +8 -0
  243. package/test/declarative/fixtures/directives/repeat/state.json +10 -0
  244. package/test/declarative/fixtures/directives/repeat/templates.html +75 -0
  245. package/test/declarative/fixtures/directives/slotted/entry.html +17 -0
  246. package/test/declarative/fixtures/directives/slotted/fast-build.config.json +6 -0
  247. package/test/declarative/fixtures/directives/slotted/index.html +27 -0
  248. package/test/declarative/fixtures/directives/slotted/main.ts +29 -0
  249. package/test/declarative/fixtures/directives/slotted/state.json +1 -0
  250. package/test/declarative/fixtures/directives/slotted/templates.html +7 -0
  251. package/test/declarative/fixtures/directives/when/entry.html +51 -0
  252. package/test/declarative/fixtures/directives/when/fast-build.config.json +6 -0
  253. package/test/declarative/fixtures/directives/when/index.html +136 -0
  254. package/test/declarative/fixtures/directives/when/main.ts +172 -0
  255. package/test/declarative/fixtures/directives/when/state.json +12 -0
  256. package/test/declarative/fixtures/directives/when/templates.html +75 -0
  257. package/test/declarative/fixtures/ecosystem/README.md +11 -0
  258. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/entry.html +12 -0
  259. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/fast-build.config.json +6 -0
  260. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/index.html +20 -0
  261. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/main.ts +68 -0
  262. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/state.json +4 -0
  263. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/templates.html +7 -0
  264. package/test/declarative/fixtures/ecosystem/errors/entry.html +12 -0
  265. package/test/declarative/fixtures/ecosystem/errors/fast-build.config.json +6 -0
  266. package/test/declarative/fixtures/ecosystem/errors/index.html +20 -0
  267. package/test/declarative/fixtures/ecosystem/errors/main.ts +17 -0
  268. package/test/declarative/fixtures/ecosystem/errors/state.json +1 -0
  269. package/test/declarative/fixtures/ecosystem/errors/templates.html +7 -0
  270. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/entry.html +17 -0
  271. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/fast-build.config.json +6 -0
  272. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/index.html +56 -0
  273. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/main.ts +134 -0
  274. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/state.json +12 -0
  275. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/templates.html +34 -0
  276. package/test/declarative/fixtures/ecosystem/performance-metrics/entry.html +25 -0
  277. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-build.config.json +6 -0
  278. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-card.css +10 -0
  279. package/test/declarative/fixtures/ecosystem/performance-metrics/index.html +181 -0
  280. package/test/declarative/fixtures/ecosystem/performance-metrics/main.ts +58 -0
  281. package/test/declarative/fixtures/ecosystem/performance-metrics/state.json +6 -0
  282. package/test/declarative/fixtures/ecosystem/performance-metrics/templates.html +15 -0
  283. package/test/declarative/fixtures/extensions/README.md +15 -0
  284. package/test/declarative/fixtures/extensions/attribute-map/entry.html +14 -0
  285. package/test/declarative/fixtures/extensions/attribute-map/fast-build.config.json +6 -0
  286. package/test/declarative/fixtures/extensions/attribute-map/index.html +31 -0
  287. package/test/declarative/fixtures/extensions/attribute-map/main.ts +40 -0
  288. package/test/declarative/fixtures/extensions/attribute-map/state.json +4 -0
  289. package/test/declarative/fixtures/extensions/attribute-map/templates.html +14 -0
  290. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/entry.html +12 -0
  291. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/fast-build.config.json +7 -0
  292. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/index.html +25 -0
  293. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/main.ts +31 -0
  294. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/state.json +5 -0
  295. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/templates.html +11 -0
  296. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/entry.html +13 -0
  297. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/fast-build.config.json +7 -0
  298. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/index.html +23 -0
  299. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/main.ts +37 -0
  300. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/state.json +1 -0
  301. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/templates.html +9 -0
  302. package/test/declarative/fixtures/extensions/observer-map/entry.html +15 -0
  303. package/test/declarative/fixtures/extensions/observer-map/fast-build.config.json +6 -0
  304. package/test/declarative/fixtures/extensions/observer-map/index.html +442 -0
  305. package/test/declarative/fixtures/extensions/observer-map/main.ts +482 -0
  306. package/test/declarative/fixtures/extensions/observer-map/state.json +158 -0
  307. package/test/declarative/fixtures/extensions/observer-map/templates.html +172 -0
  308. package/test/declarative/fixtures/extensions/observer-map-config-object/entry.html +16 -0
  309. package/test/declarative/fixtures/extensions/observer-map-config-object/fast-build.config.json +6 -0
  310. package/test/declarative/fixtures/extensions/observer-map-config-object/index.html +27 -0
  311. package/test/declarative/fixtures/extensions/observer-map-config-object/main.ts +53 -0
  312. package/test/declarative/fixtures/extensions/observer-map-config-object/state.json +9 -0
  313. package/test/declarative/fixtures/extensions/observer-map-config-object/templates.html +12 -0
  314. package/test/declarative/fixtures/extensions/observer-map-deep-merge/README.md +98 -0
  315. package/test/declarative/fixtures/extensions/observer-map-deep-merge/entry.html +156 -0
  316. package/test/declarative/fixtures/extensions/observer-map-deep-merge/fast-build.config.json +6 -0
  317. package/test/declarative/fixtures/extensions/observer-map-deep-merge/index.html +376 -0
  318. package/test/declarative/fixtures/extensions/observer-map-deep-merge/main.ts +366 -0
  319. package/test/declarative/fixtures/extensions/observer-map-deep-merge/state.json +69 -0
  320. package/test/declarative/fixtures/extensions/observer-map-deep-merge/templates.html +91 -0
  321. package/test/declarative/fixtures/extensions/observer-map-properties/entry.html +14 -0
  322. package/test/declarative/fixtures/extensions/observer-map-properties/fast-build.config.json +6 -0
  323. package/test/declarative/fixtures/extensions/observer-map-properties/index.html +110 -0
  324. package/test/declarative/fixtures/extensions/observer-map-properties/main.ts +175 -0
  325. package/test/declarative/fixtures/extensions/observer-map-properties/state.json +29 -0
  326. package/test/declarative/fixtures/extensions/observer-map-properties/templates.html +55 -0
  327. package/test/declarative/fixtures/scenarios/README.md +7 -0
  328. package/test/declarative/fixtures/scenarios/nested-elements/entry.html +16 -0
  329. package/test/declarative/fixtures/scenarios/nested-elements/fast-build.config.json +6 -0
  330. package/test/declarative/fixtures/scenarios/nested-elements/index.html +126 -0
  331. package/test/declarative/fixtures/scenarios/nested-elements/main.ts +214 -0
  332. package/test/declarative/fixtures/scenarios/nested-elements/state.json +10 -0
  333. package/test/declarative/fixtures/scenarios/nested-elements/templates.html +54 -0
  334. package/test/declarative/index.html +12 -0
  335. package/test/declarative/vite.config.ts +55 -0
  336. package/test/declarative-main.ts +6 -0
  337. package/test/extension-subpaths-main.ts +9 -0
  338. package/test/main.ts +38 -33
  339. package/test/pure-declarative-main.ts +1 -0
  340. package/dist/dts/components/install-hydration.d.ts +0 -1
  341. package/dist/dts/pending-task.d.ts +0 -32
  342. package/dist/dts/polyfills.d.ts +0 -0
  343. package/dist/dts/styles/css-binding-directive.d.ts +0 -60
  344. package/dist/dts/templating/install-hydratable-view-templates.d.ts +0 -1
  345. package/dist/esm/components/install-hydration.js +0 -3
  346. package/dist/esm/pending-task.js +0 -28
  347. package/dist/esm/polyfills.js +0 -60
  348. package/dist/esm/styles/css-binding-directive.js +0 -76
  349. package/dist/esm/templating/install-hydratable-view-templates.js +0 -23
@@ -0,0 +1,114 @@
1
+ ## API Report File for "@microsoft/fast-element"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ // @public
8
+ export interface ArrayObserver extends SubscriberSet {
9
+ addSort(sort: Sort): void;
10
+ addSplice(splice: Splice): void;
11
+ flush(): void;
12
+ readonly lengthObserver: LengthObserver;
13
+ reset(oldCollection: any[] | undefined): void;
14
+ readonly sortObserver: SortObserver;
15
+ strategy: SpliceStrategy | null;
16
+ }
17
+
18
+ // @public
19
+ export const ArrayObserver: Readonly<{
20
+ readonly sorted: 0;
21
+ readonly enable: () => void;
22
+ }>;
23
+
24
+ // @public
25
+ export interface LengthObserver extends Subscriber {
26
+ length: number;
27
+ }
28
+
29
+ // @public
30
+ export function lengthOf<T>(array: readonly T[]): number;
31
+
32
+ // @public
33
+ export interface Notifier {
34
+ notify(args: any): void;
35
+ readonly subject: any;
36
+ subscribe(subscriber: Subscriber, propertyToWatch?: any): void;
37
+ unsubscribe(subscriber: Subscriber, propertyToUnwatch?: any): void;
38
+ }
39
+
40
+ // @public
41
+ export class Sort {
42
+ constructor(sorted?: number[] | undefined);
43
+ // (undocumented)
44
+ sorted?: number[] | undefined;
45
+ }
46
+
47
+ // @public
48
+ export function sortedCount<T>(array: readonly T[]): number;
49
+
50
+ // @public
51
+ export interface SortObserver extends Subscriber {
52
+ sorted: number;
53
+ }
54
+
55
+ // @public
56
+ export class Splice {
57
+ constructor(index: number, removed: any[], addedCount: number);
58
+ // (undocumented)
59
+ addedCount: number;
60
+ adjustTo(array: any[]): this;
61
+ // (undocumented)
62
+ index: number;
63
+ // (undocumented)
64
+ removed: any[];
65
+ reset?: boolean;
66
+ }
67
+
68
+ // @public
69
+ export interface SpliceStrategy {
70
+ normalize(previous: unknown[] | undefined, current: unknown[], changes: Splice[] | undefined): readonly Splice[];
71
+ pop(array: any[], observer: ArrayObserver, pop: typeof Array.prototype.pop, args: any[]): any;
72
+ push(array: any[], observer: ArrayObserver, push: typeof Array.prototype.push, args: any[]): any;
73
+ reverse(array: any[], observer: ArrayObserver, reverse: typeof Array.prototype.reverse, args: any[]): any;
74
+ shift(array: any[], observer: ArrayObserver, shift: typeof Array.prototype.shift, args: any[]): any;
75
+ sort(array: any[], observer: ArrayObserver, sort: typeof Array.prototype.sort, args: any[]): any[];
76
+ splice(array: any[], observer: ArrayObserver, splice: typeof Array.prototype.splice, args: any[]): any;
77
+ readonly support: SpliceStrategySupport;
78
+ unshift(array: any[], observer: ArrayObserver, unshift: typeof Array.prototype.unshift, args: any[]): any[];
79
+ }
80
+
81
+ // @public
82
+ export const SpliceStrategy: Readonly<{
83
+ readonly reset: Splice[];
84
+ readonly setDefaultStrategy: (strategy: SpliceStrategy) => void;
85
+ }>;
86
+
87
+ // @public
88
+ export const SpliceStrategySupport: Readonly<{
89
+ readonly reset: 1;
90
+ readonly splice: 2;
91
+ readonly optimized: 3;
92
+ }>;
93
+
94
+ // @public
95
+ export type SpliceStrategySupport = (typeof SpliceStrategySupport)[keyof typeof SpliceStrategySupport];
96
+
97
+ // @public
98
+ export interface Subscriber {
99
+ handleChange(subject: any, args: any): void;
100
+ }
101
+
102
+ // @public
103
+ export class SubscriberSet implements Notifier {
104
+ constructor(subject: any, initialSubscriber?: Subscriber);
105
+ has(subscriber: Subscriber): boolean;
106
+ notify(args: any): void;
107
+ readonly subject: any;
108
+ subscribe(subscriber: Subscriber): void;
109
+ unsubscribe(subscriber: Subscriber): void;
110
+ }
111
+
112
+ // (No @packageDocumentation comment for this package)
113
+
114
+ ```
@@ -0,0 +1,397 @@
1
+ ## API Report File for "@microsoft/fast-element"
2
+
3
+ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
+
5
+ ```ts
6
+
7
+ // @public
8
+ export interface AccessCachedPath extends CachedPathCommon {
9
+ // (undocumented)
10
+ type: "access";
11
+ }
12
+
13
+ // @public
14
+ export interface Accessor {
15
+ getValue(source: any): any;
16
+ name: string;
17
+ setValue(source: any, value: any): void;
18
+ }
19
+
20
+ // @public
21
+ export type AttributeConfiguration = {
22
+ property: string;
23
+ attribute?: string;
24
+ mode?: AttributeMode;
25
+ converter?: ValueConverter;
26
+ };
27
+
28
+ // @public
29
+ export const AttributeConfiguration: Readonly<{
30
+ locate: (target: {}) => AttributeConfiguration[];
31
+ }>;
32
+
33
+ // @public
34
+ export class AttributeDefinition implements Accessor {
35
+ constructor(Owner: Function, name: string, attribute?: string, mode?: AttributeMode, converter?: ValueConverter);
36
+ readonly attribute: string;
37
+ // @internal
38
+ static collect(Owner: Function, ...attributeLists: (ReadonlyArray<string | AttributeConfiguration> | undefined)[]): ReadonlyArray<AttributeDefinition>;
39
+ readonly converter?: ValueConverter;
40
+ getValue(source: HTMLElement): any;
41
+ readonly mode: AttributeMode;
42
+ readonly name: string;
43
+ // @internal (undocumented)
44
+ onAttributeChangedCallback(element: HTMLElement, value: any): void;
45
+ readonly Owner: Function;
46
+ setValue(source: HTMLElement, newValue: any): void;
47
+ }
48
+
49
+ // @public
50
+ export type AttributeMode = "reflect" | "boolean" | "fromView";
51
+
52
+ // @public
53
+ export type CachedPath = DefaultCachedPath | RepeatCachedPath | AccessCachedPath | EventCachedPath;
54
+
55
+ // @public
56
+ export interface CachedPathCommon {
57
+ // (undocumented)
58
+ currentContext: string | null;
59
+ // (undocumented)
60
+ parentContext: string | null;
61
+ // (undocumented)
62
+ path: string;
63
+ }
64
+
65
+ // @public
66
+ export type CachedPathMap = Map<string, Map<string, JSONSchema>>;
67
+
68
+ // @public
69
+ export interface CaptureType {
70
+ }
71
+
72
+ // @public
73
+ export interface ChildrenMap {
74
+ // (undocumented)
75
+ attributeName: string;
76
+ // (undocumented)
77
+ customElementName: string;
78
+ }
79
+
80
+ // @public
81
+ export type ComposableStyles = string | ElementStyles | CSSStyleSheet;
82
+
83
+ // @public
84
+ export type Constructable<T = {}> = {
85
+ new (...args: any[]): T;
86
+ };
87
+
88
+ // @public
89
+ export type ConstructibleStyleStrategy = {
90
+ new (styles: (string | CSSStyleSheet)[]): StyleStrategy;
91
+ };
92
+
93
+ // @public
94
+ export function declarativeTemplate(callbacks?: TemplateLifecycleCallbacks): FASTElementTemplateResolver;
95
+
96
+ // @public
97
+ export interface DefaultCachedPath extends CachedPathCommon {
98
+ // (undocumented)
99
+ type: "default";
100
+ }
101
+
102
+ // @public
103
+ export interface DOMPolicy {
104
+ createHTML(value: string): string;
105
+ // Warning: (ae-forgotten-export) The symbol "DOMAspect" needs to be exported by the entry point index.d.ts
106
+ // Warning: (ae-forgotten-export) The symbol "DOMSink" needs to be exported by the entry point index.d.ts
107
+ protect(tagName: string | null, aspect: DOMAspect, aspectName: string, sink: DOMSink): DOMSink;
108
+ }
109
+
110
+ // @public
111
+ export class ElementStyles {
112
+ constructor(styles: ReadonlyArray<ComposableStyles>);
113
+ // @internal (undocumented)
114
+ addStylesTo(target: StyleTarget): void;
115
+ // @internal (undocumented)
116
+ isAttachedTo(target: StyleTarget): boolean;
117
+ static normalize(styles: ComposableStyles | ComposableStyles[] | undefined): ElementStyles | undefined;
118
+ // @internal (undocumented)
119
+ removeStylesFrom(target: StyleTarget): void;
120
+ static setDefaultStrategy(Strategy: ConstructibleStyleStrategy): void;
121
+ get strategy(): StyleStrategy;
122
+ // (undocumented)
123
+ readonly styles: ReadonlyArray<ComposableStyles>;
124
+ static readonly supportsAdoptedStyleSheets: boolean;
125
+ withStrategy(Strategy: ConstructibleStyleStrategy): this;
126
+ }
127
+
128
+ // Warning: (ae-forgotten-export) The symbol "View" needs to be exported by the entry point index.d.ts
129
+ //
130
+ // @public
131
+ export interface ElementView<TSource = any, TParent = any> extends View<TSource, TParent> {
132
+ appendTo(node: Node): void;
133
+ onUnbind(behavior: {
134
+ unbind(controller: ViewController<TSource, TParent>): any;
135
+ }): void;
136
+ // Warning: (ae-forgotten-export) The symbol "SourceLifetime" needs to be exported by the entry point index.d.ts
137
+ readonly sourceLifetime?: SourceLifetime;
138
+ }
139
+
140
+ // @public
141
+ export interface ElementViewTemplate<TSource = any, TParent = any> {
142
+ create(hostBindingTarget: Element): ElementView<TSource, TParent>;
143
+ render(source: TSource, host: Node, hostBindingTarget?: Element): ElementView<TSource, TParent>;
144
+ }
145
+
146
+ // @public
147
+ export interface EventCachedPath extends CachedPathCommon {
148
+ // (undocumented)
149
+ type: "event";
150
+ }
151
+
152
+ // @public
153
+ export class FASTElementDefinition<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> {
154
+ readonly attributeLookup: Record<string, AttributeDefinition>;
155
+ readonly attributes: ReadonlyArray<AttributeDefinition>;
156
+ static compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
157
+ define(registry?: CustomElementRegistry, extensions?: FASTElementExtension[]): this;
158
+ readonly elementOptions: ElementDefinitionOptions;
159
+ static readonly getByType: (key: Function) => FASTElementDefinition<Constructable<HTMLElement>> | undefined;
160
+ static readonly getForInstance: (object: any) => FASTElementDefinition<Constructable<HTMLElement>> | undefined;
161
+ get isDefined(): boolean;
162
+ static isRegistered: Record<string, Function>;
163
+ readonly lifecycleCallbacks?: TemplateLifecycleCallbacks;
164
+ readonly name: string;
165
+ readonly propertyLookup: Record<string, AttributeDefinition>;
166
+ // @alpha
167
+ static register: (name: string, registry?: CustomElementRegistry) => Promise<Function>;
168
+ // @internal
169
+ static registerBaseType(type: Function): void;
170
+ readonly registry: CustomElementRegistry;
171
+ schema?: Schema;
172
+ shadowOptions?: ShadowRootOptions;
173
+ readonly styles?: ElementStyles;
174
+ template?: ElementViewTemplate<InstanceType<TType>>;
175
+ readonly type: TType;
176
+ }
177
+
178
+ // @public
179
+ export type FASTElementExtension = (definition: FASTElementDefinition) => void;
180
+
181
+ // @public
182
+ export type FASTElementTemplateResolver<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> = (definition: FASTElementDefinition<TType>) => ElementViewTemplate<InstanceType<TType>> | Promise<ElementViewTemplate<InstanceType<TType>>>;
183
+
184
+ // @public
185
+ export interface HTMLTemplateCompilationResult<TSource = any, TParent = any> {
186
+ createView(hostBindingTarget?: Element): HTMLView<TSource, TParent>;
187
+ // Warning: (ae-forgotten-export) The symbol "CompiledViewBehaviorFactory" needs to be exported by the entry point index.d.ts
188
+ //
189
+ // (undocumented)
190
+ readonly factories: CompiledViewBehaviorFactory[];
191
+ }
192
+
193
+ // Warning: (ae-forgotten-export) The symbol "DefaultExecutionContext" needs to be exported by the entry point index.d.ts
194
+ // Warning: (ae-forgotten-export) The symbol "SyntheticView" needs to be exported by the entry point index.d.ts
195
+ // Warning: (ae-forgotten-export) The symbol "ExecutionContext" needs to be exported by the entry point index.d.ts
196
+ //
197
+ // @public
198
+ export class HTMLView<TSource = any, TParent = any> extends DefaultExecutionContext<TParent> implements ElementView<TSource, TParent>, SyntheticView<TSource, TParent>, ExecutionContext<TParent> {
199
+ constructor(fragment: DocumentFragment, factories: ReadonlyArray<CompiledViewBehaviorFactory>, targets: ViewBehaviorTargets);
200
+ appendTo(node: Node): void;
201
+ bind(source: TSource, context?: ExecutionContext<TParent>): void;
202
+ context: ExecutionContext<TParent>;
203
+ dispose(): void;
204
+ static disposeContiguousBatch(views: SyntheticView[]): void;
205
+ firstChild: Node;
206
+ insertBefore(node: Node): void;
207
+ isBound: boolean;
208
+ isHydrated: Promise<boolean>;
209
+ isPrerendered: Promise<boolean>;
210
+ lastChild: Node;
211
+ // (undocumented)
212
+ onUnbind(behavior: {
213
+ unbind(controller: ViewController<TSource, TParent>): void;
214
+ }): void;
215
+ remove(): void;
216
+ // @internal
217
+ _skipAttrUpdates: boolean;
218
+ source: TSource | null;
219
+ readonly sourceLifetime: SourceLifetime;
220
+ // Warning: (ae-forgotten-export) The symbol "ViewBehaviorTargets" needs to be exported by the entry point index.d.ts
221
+ //
222
+ // (undocumented)
223
+ readonly targets: ViewBehaviorTargets;
224
+ unbind(): void;
225
+ }
226
+
227
+ // @public
228
+ export interface JSONSchema extends JSONSchemaCommon {
229
+ // (undocumented)
230
+ $defs?: Record<string, JSONSchemaDefinition>;
231
+ // (undocumented)
232
+ $id: string;
233
+ // (undocumented)
234
+ $schema: string;
235
+ }
236
+
237
+ // @public
238
+ export interface JSONSchemaCommon {
239
+ $observe?: boolean;
240
+ // (undocumented)
241
+ $ref?: string;
242
+ // (undocumented)
243
+ anyOf?: Array<any>;
244
+ // (undocumented)
245
+ items?: any;
246
+ // (undocumented)
247
+ properties?: any;
248
+ // (undocumented)
249
+ type?: string;
250
+ }
251
+
252
+ // @public
253
+ export interface JSONSchemaDefinition extends JSONSchemaCommon {
254
+ // (undocumented)
255
+ $fast_context: string;
256
+ // (undocumented)
257
+ $fast_parent_contexts: Array<string>;
258
+ }
259
+
260
+ // @public
261
+ export interface PartialFASTElementDefinition<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> {
262
+ readonly attributes?: (AttributeConfiguration | string)[];
263
+ readonly elementOptions?: ElementDefinitionOptions;
264
+ readonly lifecycleCallbacks?: TemplateLifecycleCallbacks;
265
+ readonly name: string;
266
+ readonly registry?: CustomElementRegistry;
267
+ readonly schema?: Schema;
268
+ readonly shadowOptions?: Partial<ShadowRootOptions> | null;
269
+ readonly styles?: ComposableStyles | ComposableStyles[];
270
+ readonly template?: ElementViewTemplate<InstanceType<TType>> | FASTElementTemplateResolver<TType>;
271
+ }
272
+
273
+ // @public
274
+ export interface RegisterPathConfig {
275
+ // (undocumented)
276
+ childrenMap: ChildrenMap | null;
277
+ // (undocumented)
278
+ pathConfig: CachedPath;
279
+ // (undocumented)
280
+ rootPropertyName: string;
281
+ }
282
+
283
+ // @public
284
+ export interface RepeatCachedPath extends CachedPathCommon {
285
+ // (undocumented)
286
+ type: "repeat";
287
+ }
288
+
289
+ // @public
290
+ export interface ResolvedStringsAndValues {
291
+ // (undocumented)
292
+ strings: Array<string>;
293
+ // (undocumented)
294
+ values: Array<any>;
295
+ }
296
+
297
+ // @public
298
+ export class Schema {
299
+ constructor(name: string);
300
+ addPath(config: RegisterPathConfig): void;
301
+ getRootProperties(): IterableIterator<string>;
302
+ getSchema(rootPropertyName: string): JSONSchema | null;
303
+ }
304
+
305
+ // @public
306
+ export const schemaRegistry: CachedPathMap;
307
+
308
+ // @public
309
+ export interface ShadowRootOptions extends ShadowRootInit {
310
+ // @beta
311
+ registry?: CustomElementRegistry;
312
+ }
313
+
314
+ // @public
315
+ export interface StyleStrategy {
316
+ addStylesTo(target: StyleTarget): void;
317
+ removeStylesFrom(target: StyleTarget): void;
318
+ }
319
+
320
+ // @public
321
+ export interface StyleTarget extends Pick<Node, "getRootNode"> {
322
+ adoptedStyleSheets?: CSSStyleSheet[];
323
+ append(styles: HTMLStyleElement): void;
324
+ querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
325
+ removeChild(styles: HTMLStyleElement): void;
326
+ }
327
+
328
+ // @public
329
+ export interface SyntheticViewTemplate<TSource = any, TParent = any> {
330
+ create(): SyntheticView<TSource, TParent>;
331
+ inline(): CaptureType;
332
+ }
333
+
334
+ // @public
335
+ export interface TemplateLifecycleCallbacks {
336
+ elementDidDefine?(name: string): void;
337
+ elementDidHydrate?(source: HTMLElement): void;
338
+ elementDidRegister?(name: string): void;
339
+ elementWillHydrate?(source: HTMLElement): void;
340
+ templateDidUpdate?(name: string): void;
341
+ templateWillUpdate?(name: string): void;
342
+ }
343
+
344
+ // @public
345
+ export class TemplateParser {
346
+ createTemplate(strings: Array<string>, values: Array<any>): ViewTemplate<any, any>;
347
+ parse(innerHTML: string, schema: Schema): ResolvedStringsAndValues;
348
+ }
349
+
350
+ // Warning: (ae-forgotten-export) The symbol "Expression" needs to be exported by the entry point index.d.ts
351
+ // Warning: (ae-forgotten-export) The symbol "Binding" needs to be exported by the entry point index.d.ts
352
+ // Warning: (ae-forgotten-export) The symbol "HTMLDirective" needs to be exported by the entry point index.d.ts
353
+ //
354
+ // @public
355
+ export type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType;
356
+
357
+ // @public
358
+ export interface ValueConverter {
359
+ fromView(value: any): any;
360
+ toView(value: any): any;
361
+ }
362
+
363
+ // @public
364
+ export interface ViewBehavior<TSource = any, TParent = any> {
365
+ bind(controller: ViewController<TSource, TParent>): void;
366
+ }
367
+
368
+ // @public
369
+ export interface ViewBehaviorFactory {
370
+ createBehavior(): ViewBehavior;
371
+ id?: string;
372
+ policy?: DOMPolicy;
373
+ targetNodeId?: string;
374
+ targetTagName?: string | null;
375
+ }
376
+
377
+ // @public
378
+ export class ViewTemplate<TSource = any, TParent = any> implements ElementViewTemplate<TSource, TParent>, SyntheticViewTemplate<TSource, TParent> {
379
+ constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy | undefined);
380
+ // @internal (undocumented)
381
+ compile(): HTMLTemplateCompilationResult<TSource, TParent>;
382
+ create(hostBindingTarget?: Element): HTMLView<TSource, TParent>;
383
+ static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy): ViewTemplate<TSource, TParent>;
384
+ readonly factories: Record<string, ViewBehaviorFactory>;
385
+ readonly html: string | HTMLTemplateElement;
386
+ inline(): CaptureType;
387
+ render(source: TSource, host: Node, hostBindingTarget?: Element): HTMLView<TSource, TParent>;
388
+ withPolicy(policy: DOMPolicy): this;
389
+ }
390
+
391
+ // Warnings were encountered during analysis:
392
+ //
393
+ // dist/dts/templating/view.d.ts:45:9 - (ae-forgotten-export) The symbol "ViewController" needs to be exported by the entry point index.d.ts
394
+
395
+ // (No @packageDocumentation comment for this package)
396
+
397
+ ```