@microsoft/fast-element 2.10.3 → 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 (351) hide show
  1. package/ARCHITECTURE_HTML_TAGGED_TEMPLATE_LITERAL.md +1 -1
  2. package/ARCHITECTURE_OVERVIEW.md +2 -2
  3. package/CHANGELOG.json +31 -1
  4. package/CHANGELOG.md +10 -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 +143 -34
  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/context/context.api.json +1 -1
  23. package/dist/declarative/declarative.api.json +7844 -0
  24. package/dist/di/di.api.json +2 -2
  25. package/dist/dts/array-observer.d.ts +2 -0
  26. package/dist/dts/arrays.d.ts +2 -0
  27. package/dist/dts/attr.d.ts +1 -0
  28. package/dist/dts/binding/signal.d.ts +6 -6
  29. package/dist/dts/binding/two-way.d.ts +1 -0
  30. package/dist/dts/binding.d.ts +7 -0
  31. package/dist/dts/components/attributes.d.ts +2 -5
  32. package/dist/dts/components/definition-schema-transforms.d.ts +9 -0
  33. package/dist/dts/components/element-controller.d.ts +80 -114
  34. package/dist/dts/components/element-hydration.d.ts +1 -1
  35. package/dist/dts/components/enable-hydration.d.ts +34 -0
  36. package/dist/dts/components/fast-definitions.d.ts +91 -42
  37. package/dist/dts/components/fast-element.d.ts +5 -8
  38. package/dist/dts/components/hydration-tracker.d.ts +40 -0
  39. package/dist/dts/components/hydration.d.ts +18 -53
  40. package/dist/dts/components/schema.d.ts +205 -0
  41. package/dist/dts/context.d.ts +6 -6
  42. package/dist/dts/css.d.ts +3 -0
  43. package/dist/dts/debug.d.ts +5 -1
  44. package/dist/dts/declarative/attribute-map.d.ts +58 -0
  45. package/dist/dts/declarative/debug.d.ts +5 -0
  46. package/dist/dts/declarative/index.d.ts +13 -0
  47. package/dist/dts/declarative/interfaces.d.ts +9 -0
  48. package/dist/dts/declarative/observer-map-utilities.d.ts +58 -0
  49. package/dist/dts/declarative/observer-map.d.ts +89 -0
  50. package/dist/dts/declarative/runtime.d.ts +5 -0
  51. package/dist/dts/declarative/syntax.d.ts +21 -0
  52. package/dist/dts/declarative/template-bridge.d.ts +33 -0
  53. package/dist/dts/declarative/template-parser.d.ts +98 -0
  54. package/dist/dts/declarative/template.d.ts +9 -0
  55. package/dist/dts/declarative/utilities.d.ts +312 -0
  56. package/dist/dts/di/di.d.ts +1 -1
  57. package/dist/dts/directives/children.d.ts +2 -0
  58. package/dist/dts/directives/node-observation.d.ts +2 -0
  59. package/dist/dts/directives/ref.d.ts +2 -0
  60. package/dist/dts/directives/repeat.d.ts +4 -0
  61. package/dist/dts/directives/slotted.d.ts +2 -0
  62. package/dist/dts/directives/when.d.ts +3 -0
  63. package/dist/dts/dom-policy.d.ts +1 -1
  64. package/dist/dts/html.d.ts +5 -0
  65. package/dist/dts/hydration/runtime.d.ts +7 -0
  66. package/dist/dts/hydration/target-builder.d.ts +15 -12
  67. package/dist/dts/hydration.d.ts +14 -0
  68. package/dist/dts/index.d.ts +38 -42
  69. package/dist/dts/index.debug.d.ts +0 -1
  70. package/dist/dts/index.rollup.debug.d.ts +0 -1
  71. package/dist/dts/interfaces.d.ts +1 -49
  72. package/dist/dts/observable.d.ts +3 -6
  73. package/dist/dts/observation/arrays.d.ts +1 -1
  74. package/dist/dts/observation/update-queue.d.ts +1 -1
  75. package/dist/dts/platform.d.ts +25 -4
  76. package/dist/dts/render.d.ts +7 -0
  77. package/dist/dts/schema.d.ts +1 -0
  78. package/dist/dts/state/exports.d.ts +1 -1
  79. package/dist/dts/state/state.d.ts +2 -2
  80. package/dist/dts/styles/css-directive.d.ts +5 -12
  81. package/dist/dts/styles/css.d.ts +5 -7
  82. package/dist/dts/styles/element-styles.d.ts +0 -10
  83. package/dist/dts/styles.d.ts +6 -0
  84. package/dist/dts/templating/children.d.ts +1 -1
  85. package/dist/dts/templating/html-binding-directive.d.ts +10 -0
  86. package/dist/dts/templating/html-directive.d.ts +17 -0
  87. package/dist/dts/templating/hydration-view.d.ts +109 -0
  88. package/dist/dts/templating/ref.d.ts +1 -1
  89. package/dist/dts/templating/render.d.ts +8 -2
  90. package/dist/dts/templating/repeat.d.ts +2 -2
  91. package/dist/dts/templating/slotted.d.ts +1 -1
  92. package/dist/dts/templating/template.d.ts +17 -9
  93. package/dist/dts/templating/view.d.ts +25 -102
  94. package/dist/dts/templating/when.d.ts +1 -1
  95. package/dist/dts/templating.d.ts +10 -0
  96. package/dist/dts/testing/exports.d.ts +2 -2
  97. package/dist/dts/tsdoc-metadata.json +1 -1
  98. package/dist/dts/updates.d.ts +1 -0
  99. package/dist/dts/volatile.d.ts +2 -0
  100. package/dist/esm/array-observer.js +1 -0
  101. package/dist/esm/arrays.js +1 -0
  102. package/dist/esm/attr.js +1 -0
  103. package/dist/esm/binding/normalize.js +1 -1
  104. package/dist/esm/binding/signal.js +4 -4
  105. package/dist/esm/binding/two-way.js +2 -1
  106. package/dist/esm/binding.js +4 -0
  107. package/dist/esm/components/attributes.js +8 -5
  108. package/dist/esm/components/definition-schema-transforms.js +23 -0
  109. package/dist/esm/components/element-controller.js +200 -269
  110. package/dist/esm/components/element-hydration.js +1 -1
  111. package/dist/esm/components/enable-hydration.js +100 -0
  112. package/dist/esm/components/fast-definitions.js +211 -49
  113. package/dist/esm/components/fast-element.js +18 -27
  114. package/dist/esm/components/hydration-tracker.js +93 -0
  115. package/dist/esm/components/hydration.js +62 -144
  116. package/dist/esm/components/schema.js +253 -0
  117. package/dist/esm/context.js +6 -6
  118. package/dist/esm/css.js +3 -0
  119. package/dist/esm/debug.js +26 -26
  120. package/dist/esm/declarative/attribute-map.js +121 -0
  121. package/dist/esm/declarative/debug.js +5 -0
  122. package/dist/esm/declarative/index.js +3 -0
  123. package/dist/esm/declarative/interfaces.js +10 -0
  124. package/dist/esm/declarative/observer-map-utilities.js +562 -0
  125. package/dist/esm/declarative/observer-map.js +216 -0
  126. package/dist/esm/declarative/runtime.js +14 -0
  127. package/dist/esm/declarative/syntax.js +36 -0
  128. package/dist/esm/declarative/template-bridge.js +170 -0
  129. package/dist/esm/declarative/template-parser.js +306 -0
  130. package/dist/esm/declarative/template.js +142 -0
  131. package/dist/esm/declarative/utilities.js +834 -0
  132. package/dist/esm/di/di.js +6 -8
  133. package/dist/esm/directives/children.js +1 -0
  134. package/dist/esm/directives/node-observation.js +1 -0
  135. package/dist/esm/directives/ref.js +1 -0
  136. package/dist/esm/directives/repeat.js +1 -0
  137. package/dist/esm/directives/slotted.js +1 -0
  138. package/dist/esm/directives/when.js +1 -0
  139. package/dist/esm/dom-policy.js +2 -2
  140. package/dist/esm/dom.js +1 -1
  141. package/dist/esm/html.js +2 -0
  142. package/dist/esm/hydration/runtime.js +33 -0
  143. package/dist/esm/hydration/target-builder.js +97 -90
  144. package/dist/esm/hydration.js +4 -0
  145. package/dist/esm/index.debug.js +2 -1
  146. package/dist/esm/index.js +34 -29
  147. package/dist/esm/index.rollup.debug.js +3 -2
  148. package/dist/esm/index.rollup.js +1 -1
  149. package/dist/esm/interfaces.js +1 -45
  150. package/dist/esm/observable.js +1 -4
  151. package/dist/esm/observation/arrays.js +1 -1
  152. package/dist/esm/observation/observable.js +5 -5
  153. package/dist/esm/observation/update-queue.js +47 -58
  154. package/dist/esm/platform.js +31 -30
  155. package/dist/esm/render.js +1 -0
  156. package/dist/esm/schema.js +1 -0
  157. package/dist/esm/state/exports.js +1 -1
  158. package/dist/esm/styles/css-directive.js +1 -2
  159. package/dist/esm/styles/css.js +15 -56
  160. package/dist/esm/styles/element-styles.js +69 -15
  161. package/dist/esm/styles.js +2 -0
  162. package/dist/esm/templating/html-binding-directive.js +24 -10
  163. package/dist/esm/templating/hydration-view.js +235 -0
  164. package/dist/esm/templating/render.js +13 -2
  165. package/dist/esm/templating/repeat.js +36 -34
  166. package/dist/esm/templating/template.js +7 -7
  167. package/dist/esm/templating/view.js +24 -233
  168. package/dist/esm/templating.js +7 -0
  169. package/dist/esm/testing/exports.js +2 -2
  170. package/dist/esm/updates.js +1 -0
  171. package/dist/esm/volatile.js +1 -0
  172. package/dist/fast-element.api.json +9017 -6996
  173. package/dist/fast-element.d.ts +3557 -796
  174. package/dist/fast-element.debug.js +5093 -4419
  175. package/dist/fast-element.debug.min.js +2 -2
  176. package/dist/fast-element.js +5398 -4655
  177. package/dist/fast-element.min.js +2 -2
  178. package/dist/fast-element.untrimmed.d.ts +881 -481
  179. package/dist/hydration/hydration.api.json +5237 -0
  180. package/dist/styles/styles.api.json +2672 -0
  181. package/docs/api-report.api.md +344 -167
  182. package/docs/arrays/api-report.api.md +114 -0
  183. package/docs/declarative/api-report.api.md +397 -0
  184. package/docs/hydration/api-report.api.md +285 -0
  185. package/docs/styles/api-report.api.md +135 -0
  186. package/package.json +149 -40
  187. package/playwright.declarative.config.ts +26 -0
  188. package/playwright.declarative.webui.config.ts +20 -0
  189. package/scripts/declarative/build-fixtures-with-webui.js +135 -0
  190. package/scripts/declarative/build-fixtures.js +49 -0
  191. package/scripts/declarative/build-fixtures.utilities.js +101 -0
  192. package/scripts/measure-sizes.js +219 -0
  193. package/scripts/run-api-extractor.js +39 -20
  194. package/test/declarative/fixtures/README.md +72 -0
  195. package/test/declarative/fixtures/WRITING_FIXTURES.md +330 -0
  196. package/test/declarative/fixtures/bindings/README.md +12 -0
  197. package/test/declarative/fixtures/bindings/attribute/entry.html +13 -0
  198. package/test/declarative/fixtures/bindings/attribute/fast-build.config.json +6 -0
  199. package/test/declarative/fixtures/bindings/attribute/index.html +25 -0
  200. package/test/declarative/fixtures/bindings/attribute/main.ts +41 -0
  201. package/test/declarative/fixtures/bindings/attribute/state.json +8 -0
  202. package/test/declarative/fixtures/bindings/attribute/templates.html +11 -0
  203. package/test/declarative/fixtures/bindings/content/entry.html +12 -0
  204. package/test/declarative/fixtures/bindings/content/fast-build.config.json +6 -0
  205. package/test/declarative/fixtures/bindings/content/index.html +19 -0
  206. package/test/declarative/fixtures/bindings/content/main.ts +27 -0
  207. package/test/declarative/fixtures/bindings/content/state.json +4 -0
  208. package/test/declarative/fixtures/bindings/content/templates.html +6 -0
  209. package/test/declarative/fixtures/bindings/dot-syntax/entry.html +11 -0
  210. package/test/declarative/fixtures/bindings/dot-syntax/fast-build.config.json +6 -0
  211. package/test/declarative/fixtures/bindings/dot-syntax/index.html +47 -0
  212. package/test/declarative/fixtures/bindings/dot-syntax/main.ts +59 -0
  213. package/test/declarative/fixtures/bindings/dot-syntax/state.json +16 -0
  214. package/test/declarative/fixtures/bindings/dot-syntax/templates.html +17 -0
  215. package/test/declarative/fixtures/bindings/event/entry.html +11 -0
  216. package/test/declarative/fixtures/bindings/event/fast-build.config.json +6 -0
  217. package/test/declarative/fixtures/bindings/event/index.html +43 -0
  218. package/test/declarative/fixtures/bindings/event/main.ts +43 -0
  219. package/test/declarative/fixtures/bindings/event/state.json +3 -0
  220. package/test/declarative/fixtures/bindings/event/templates.html +18 -0
  221. package/test/declarative/fixtures/bindings/host/entry.html +40 -0
  222. package/test/declarative/fixtures/bindings/host/fast-build.config.json +6 -0
  223. package/test/declarative/fixtures/bindings/host/index.html +96 -0
  224. package/test/declarative/fixtures/bindings/host/main.ts +222 -0
  225. package/test/declarative/fixtures/bindings/host/state.json +9 -0
  226. package/test/declarative/fixtures/bindings/host/templates.html +55 -0
  227. package/test/declarative/fixtures/directives/README.md +12 -0
  228. package/test/declarative/fixtures/directives/children/entry.html +11 -0
  229. package/test/declarative/fixtures/directives/children/fast-build.config.json +6 -0
  230. package/test/declarative/fixtures/directives/children/index.html +15 -0
  231. package/test/declarative/fixtures/directives/children/main.ts +22 -0
  232. package/test/declarative/fixtures/directives/children/state.json +3 -0
  233. package/test/declarative/fixtures/directives/children/templates.html +3 -0
  234. package/test/declarative/fixtures/directives/ref/entry.html +11 -0
  235. package/test/declarative/fixtures/directives/ref/fast-build.config.json +6 -0
  236. package/test/declarative/fixtures/directives/ref/index.html +15 -0
  237. package/test/declarative/fixtures/directives/ref/main.ts +17 -0
  238. package/test/declarative/fixtures/directives/ref/state.json +1 -0
  239. package/test/declarative/fixtures/directives/ref/templates.html +3 -0
  240. package/test/declarative/fixtures/directives/repeat/entry.html +21 -0
  241. package/test/declarative/fixtures/directives/repeat/fast-build.config.json +6 -0
  242. package/test/declarative/fixtures/directives/repeat/index.html +133 -0
  243. package/test/declarative/fixtures/directives/repeat/main.ts +110 -0
  244. package/test/declarative/fixtures/directives/repeat/sprites.svg +8 -0
  245. package/test/declarative/fixtures/directives/repeat/state.json +10 -0
  246. package/test/declarative/fixtures/directives/repeat/templates.html +75 -0
  247. package/test/declarative/fixtures/directives/slotted/entry.html +17 -0
  248. package/test/declarative/fixtures/directives/slotted/fast-build.config.json +6 -0
  249. package/test/declarative/fixtures/directives/slotted/index.html +27 -0
  250. package/test/declarative/fixtures/directives/slotted/main.ts +29 -0
  251. package/test/declarative/fixtures/directives/slotted/state.json +1 -0
  252. package/test/declarative/fixtures/directives/slotted/templates.html +7 -0
  253. package/test/declarative/fixtures/directives/when/entry.html +51 -0
  254. package/test/declarative/fixtures/directives/when/fast-build.config.json +6 -0
  255. package/test/declarative/fixtures/directives/when/index.html +136 -0
  256. package/test/declarative/fixtures/directives/when/main.ts +172 -0
  257. package/test/declarative/fixtures/directives/when/state.json +12 -0
  258. package/test/declarative/fixtures/directives/when/templates.html +75 -0
  259. package/test/declarative/fixtures/ecosystem/README.md +11 -0
  260. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/entry.html +12 -0
  261. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/fast-build.config.json +6 -0
  262. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/index.html +20 -0
  263. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/main.ts +68 -0
  264. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/state.json +4 -0
  265. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/templates.html +7 -0
  266. package/test/declarative/fixtures/ecosystem/errors/entry.html +12 -0
  267. package/test/declarative/fixtures/ecosystem/errors/fast-build.config.json +6 -0
  268. package/test/declarative/fixtures/ecosystem/errors/index.html +20 -0
  269. package/test/declarative/fixtures/ecosystem/errors/main.ts +17 -0
  270. package/test/declarative/fixtures/ecosystem/errors/state.json +1 -0
  271. package/test/declarative/fixtures/ecosystem/errors/templates.html +7 -0
  272. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/entry.html +17 -0
  273. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/fast-build.config.json +6 -0
  274. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/index.html +56 -0
  275. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/main.ts +134 -0
  276. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/state.json +12 -0
  277. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/templates.html +34 -0
  278. package/test/declarative/fixtures/ecosystem/performance-metrics/entry.html +25 -0
  279. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-build.config.json +6 -0
  280. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-card.css +10 -0
  281. package/test/declarative/fixtures/ecosystem/performance-metrics/index.html +181 -0
  282. package/test/declarative/fixtures/ecosystem/performance-metrics/main.ts +58 -0
  283. package/test/declarative/fixtures/ecosystem/performance-metrics/state.json +6 -0
  284. package/test/declarative/fixtures/ecosystem/performance-metrics/templates.html +15 -0
  285. package/test/declarative/fixtures/extensions/README.md +15 -0
  286. package/test/declarative/fixtures/extensions/attribute-map/entry.html +14 -0
  287. package/test/declarative/fixtures/extensions/attribute-map/fast-build.config.json +6 -0
  288. package/test/declarative/fixtures/extensions/attribute-map/index.html +31 -0
  289. package/test/declarative/fixtures/extensions/attribute-map/main.ts +40 -0
  290. package/test/declarative/fixtures/extensions/attribute-map/state.json +4 -0
  291. package/test/declarative/fixtures/extensions/attribute-map/templates.html +14 -0
  292. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/entry.html +12 -0
  293. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/fast-build.config.json +7 -0
  294. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/index.html +25 -0
  295. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/main.ts +31 -0
  296. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/state.json +5 -0
  297. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/templates.html +11 -0
  298. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/entry.html +13 -0
  299. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/fast-build.config.json +7 -0
  300. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/index.html +23 -0
  301. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/main.ts +37 -0
  302. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/state.json +1 -0
  303. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/templates.html +9 -0
  304. package/test/declarative/fixtures/extensions/observer-map/entry.html +15 -0
  305. package/test/declarative/fixtures/extensions/observer-map/fast-build.config.json +6 -0
  306. package/test/declarative/fixtures/extensions/observer-map/index.html +442 -0
  307. package/test/declarative/fixtures/extensions/observer-map/main.ts +482 -0
  308. package/test/declarative/fixtures/extensions/observer-map/state.json +158 -0
  309. package/test/declarative/fixtures/extensions/observer-map/templates.html +172 -0
  310. package/test/declarative/fixtures/extensions/observer-map-config-object/entry.html +16 -0
  311. package/test/declarative/fixtures/extensions/observer-map-config-object/fast-build.config.json +6 -0
  312. package/test/declarative/fixtures/extensions/observer-map-config-object/index.html +27 -0
  313. package/test/declarative/fixtures/extensions/observer-map-config-object/main.ts +53 -0
  314. package/test/declarative/fixtures/extensions/observer-map-config-object/state.json +9 -0
  315. package/test/declarative/fixtures/extensions/observer-map-config-object/templates.html +12 -0
  316. package/test/declarative/fixtures/extensions/observer-map-deep-merge/README.md +98 -0
  317. package/test/declarative/fixtures/extensions/observer-map-deep-merge/entry.html +156 -0
  318. package/test/declarative/fixtures/extensions/observer-map-deep-merge/fast-build.config.json +6 -0
  319. package/test/declarative/fixtures/extensions/observer-map-deep-merge/index.html +376 -0
  320. package/test/declarative/fixtures/extensions/observer-map-deep-merge/main.ts +366 -0
  321. package/test/declarative/fixtures/extensions/observer-map-deep-merge/state.json +69 -0
  322. package/test/declarative/fixtures/extensions/observer-map-deep-merge/templates.html +91 -0
  323. package/test/declarative/fixtures/extensions/observer-map-properties/entry.html +14 -0
  324. package/test/declarative/fixtures/extensions/observer-map-properties/fast-build.config.json +6 -0
  325. package/test/declarative/fixtures/extensions/observer-map-properties/index.html +110 -0
  326. package/test/declarative/fixtures/extensions/observer-map-properties/main.ts +175 -0
  327. package/test/declarative/fixtures/extensions/observer-map-properties/state.json +29 -0
  328. package/test/declarative/fixtures/extensions/observer-map-properties/templates.html +55 -0
  329. package/test/declarative/fixtures/scenarios/README.md +7 -0
  330. package/test/declarative/fixtures/scenarios/nested-elements/entry.html +16 -0
  331. package/test/declarative/fixtures/scenarios/nested-elements/fast-build.config.json +6 -0
  332. package/test/declarative/fixtures/scenarios/nested-elements/index.html +126 -0
  333. package/test/declarative/fixtures/scenarios/nested-elements/main.ts +214 -0
  334. package/test/declarative/fixtures/scenarios/nested-elements/state.json +10 -0
  335. package/test/declarative/fixtures/scenarios/nested-elements/templates.html +54 -0
  336. package/test/declarative/index.html +12 -0
  337. package/test/declarative/vite.config.ts +55 -0
  338. package/test/declarative-main.ts +6 -0
  339. package/test/extension-subpaths-main.ts +9 -0
  340. package/test/main.ts +38 -33
  341. package/test/pure-declarative-main.ts +1 -0
  342. package/dist/dts/components/install-hydration.d.ts +0 -1
  343. package/dist/dts/pending-task.d.ts +0 -32
  344. package/dist/dts/polyfills.d.ts +0 -0
  345. package/dist/dts/styles/css-binding-directive.d.ts +0 -60
  346. package/dist/dts/templating/install-hydratable-view-templates.d.ts +0 -1
  347. package/dist/esm/components/install-hydration.js +0 -3
  348. package/dist/esm/pending-task.js +0 -28
  349. package/dist/esm/polyfills.js +0 -60
  350. package/dist/esm/styles/css-binding-directive.js +0 -76
  351. package/dist/esm/templating/install-hydratable-view-templates.js +0 -23
@@ -4,6 +4,12 @@
4
4
 
5
5
  ```ts
6
6
 
7
+ // @public
8
+ export interface AccessCachedPath extends CachedPathCommon {
9
+ // (undocumented)
10
+ type: "access";
11
+ }
12
+
7
13
  // @public
8
14
  export interface Accessor {
9
15
  getValue(source: any): any;
@@ -11,9 +17,6 @@ export interface Accessor {
11
17
  setValue(source: any, value: any): void;
12
18
  }
13
19
 
14
- // @public
15
- export type AddBehavior = (behavior: HostBehavior<HTMLElement>) => void;
16
-
17
20
  // @public
18
21
  export type AddViewBehaviorFactory = (factory: ViewBehaviorFactory) => string;
19
22
 
@@ -77,23 +80,22 @@ export class AttributeDefinition implements Accessor {
77
80
  setValue(source: HTMLElement, newValue: any): void;
78
81
  }
79
82
 
80
- // Warning: (ae-forgotten-export) The symbol "reflectMode" needs to be exported by the entry point index.d.ts
81
- // Warning: (ae-forgotten-export) The symbol "booleanMode" needs to be exported by the entry point index.d.ts
82
- //
83
83
  // @public
84
- export type AttributeMode = typeof reflectMode | typeof booleanMode | "fromView";
84
+ export type AttributeMode = "reflect" | "boolean" | "fromView";
85
85
 
86
86
  // @public
87
87
  export abstract class Binding<TSource = any, TReturn = any, TParent = any> {
88
- constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy | undefined, isVolatile?: boolean);
88
+ constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy_2 | undefined, isVolatile?: boolean);
89
89
  abstract createObserver(subscriber: Subscriber, directive: BindingDirective): ExpressionObserver<TSource, TReturn, TParent>;
90
90
  // (undocumented)
91
91
  evaluate: Expression<TSource, TReturn, TParent>;
92
92
  // (undocumented)
93
93
  isVolatile: boolean;
94
94
  options?: any;
95
+ // Warning: (ae-forgotten-export) The symbol "DOMPolicy_2" needs to be exported by the entry point index.d.ts
96
+ //
95
97
  // (undocumented)
96
- policy?: DOMPolicy | undefined;
98
+ policy?: DOMPolicy_2 | undefined;
97
99
  }
98
100
 
99
101
  // @public
@@ -106,13 +108,29 @@ export interface BindingDirective {
106
108
  // @public
107
109
  export const booleanConverter: ValueConverter;
108
110
 
111
+ // @public
112
+ export type CachedPath = DefaultCachedPath | RepeatCachedPath | AccessCachedPath | EventCachedPath;
113
+
114
+ // @public
115
+ export interface CachedPathCommon {
116
+ // (undocumented)
117
+ currentContext: string | null;
118
+ // (undocumented)
119
+ parentContext: string | null;
120
+ // (undocumented)
121
+ path: string;
122
+ }
123
+
124
+ // @public
125
+ export type CachedPathMap = Map<string, Map<string, JSONSchema>>;
126
+
109
127
  // @public
110
128
  export type Callable = typeof Function.prototype.call | {
111
129
  call(): void;
112
130
  };
113
131
 
114
132
  // @public
115
- export interface CaptureType<TSource, TParent> {
133
+ export interface CaptureType {
116
134
  }
117
135
 
118
136
  // @public
@@ -120,7 +138,7 @@ export interface ChildListDirectiveOptions<T = any> extends NodeBehaviorOptions<
120
138
  }
121
139
 
122
140
  // @public
123
- export function children<TSource = any, TParent = any>(propertyOrOptions: (keyof TSource & string) | ChildrenDirectiveOptions<keyof TSource & string>): CaptureType<TSource, TParent>;
141
+ export function children<TSource = any>(propertyOrOptions: (keyof TSource & string) | ChildrenDirectiveOptions<keyof TSource & string>): CaptureType;
124
142
 
125
143
  // @public
126
144
  export class ChildrenDirective extends NodeObservationDirective<ChildrenDirectiveOptions> {
@@ -133,6 +151,14 @@ export class ChildrenDirective extends NodeObservationDirective<ChildrenDirectiv
133
151
  // @public
134
152
  export type ChildrenDirectiveOptions<T = any> = ChildListDirectiveOptions<T> | SubtreeDirectiveOptions<T>;
135
153
 
154
+ // @public
155
+ export interface ChildrenMap {
156
+ // (undocumented)
157
+ attributeName: string;
158
+ // (undocumented)
159
+ customElementName: string;
160
+ }
161
+
136
162
  // @public
137
163
  export type Class<T, C = {}> = C & Constructable<T> & {
138
164
  readonly prototype: T;
@@ -142,21 +168,49 @@ export type Class<T, C = {}> = C & Constructable<T> & {
142
168
  export type CompilationStrategy = (
143
169
  html: string | HTMLTemplateElement,
144
170
  factories: Record<string, ViewBehaviorFactory>,
145
- policy: DOMPolicy) => HTMLTemplateCompilationResult;
171
+ policy: DOMPolicy_2) => HTMLTemplateCompilationResult;
146
172
 
147
173
  // @public
148
174
  export type CompiledViewBehaviorFactory = Required<ViewBehaviorFactory>;
149
175
 
150
176
  // @public
151
177
  export const Compiler: {
152
- compile<TSource = any, TParent = any>(html: string | HTMLTemplateElement, factories: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy): HTMLTemplateCompilationResult<TSource, TParent>;
178
+ compile<TSource = any, TParent = any>(html: string | HTMLTemplateElement, factories: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy_2): HTMLTemplateCompilationResult<TSource, TParent>;
153
179
  setDefaultStrategy(strategy: CompilationStrategy): void;
154
- aggregate(parts: (string | ViewBehaviorFactory)[], policy?: DOMPolicy): ViewBehaviorFactory;
180
+ aggregate(parts: (string | ViewBehaviorFactory)[], policy?: DOMPolicy_2): ViewBehaviorFactory;
155
181
  };
156
182
 
157
183
  // @public
158
184
  export type ComposableStyles = string | ElementStyles | CSSStyleSheet;
159
185
 
186
+ // @public
187
+ export function composedContains(reference: HTMLElement, test: HTMLElement): boolean;
188
+
189
+ // @public
190
+ export function composedParent<T extends HTMLElement>(element: T): HTMLElement | null;
191
+
192
+ // @beta
193
+ export type ComputedBuilder = {
194
+ on: {
195
+ setup(callback: ComputedSetupCallback): void;
196
+ };
197
+ };
198
+
199
+ // @beta
200
+ export type ComputedInitializer<T> = (builder: ComputedBuilder) => () => T;
201
+
202
+ // @beta
203
+ export type ComputedSetupCallback = () => (() => void) | void;
204
+
205
+ // @beta
206
+ export type ComputedState<T> = ReadonlyState<T> & Disposable & {
207
+ subscribe(subscriber: Subscriber): void;
208
+ unsubscribe(subscriber: Subscriber): void;
209
+ };
210
+
211
+ // @beta
212
+ export function computedState<T>(initialize: ComputedInitializer<T>, name?: string): ComputedState<T>;
213
+
160
214
  // @public
161
215
  export type Constructable<T = {}> = {
162
216
  new (...args: any[]): T;
@@ -185,30 +239,9 @@ export interface ContentView {
185
239
  // @public
186
240
  export const css: CSSTemplateTag;
187
241
 
188
- // @public
189
- export class CSSBindingDirective implements HostBehavior, Subscriber, CSSDirective, BindingDirective {
190
- constructor(dataBinding: Binding, targetAspect: string);
191
- addedCallback(controller: HostController<HTMLElement & {
192
- $cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
193
- }>): void;
194
- connectedCallback(controller: HostController<HTMLElement & {
195
- $cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
196
- }>): void;
197
- createCSS(add: AddBehavior): ComposableStyles;
198
- // (undocumented)
199
- readonly dataBinding: Binding;
200
- // @internal
201
- handleChange(_: any, observer: ExpressionObserver): void;
202
- removedCallback(controller: HostController<HTMLElement & {
203
- $cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
204
- }>): void;
205
- // (undocumented)
206
- readonly targetAspect: string;
207
- }
208
-
209
242
  // @public
210
243
  export interface CSSDirective {
211
- createCSS(add: AddBehavior): ComposableStyles;
244
+ createCSS(): ComposableStyles;
212
245
  }
213
246
 
214
247
  // @public
@@ -227,12 +260,12 @@ export interface CSSDirectiveDefinition<TType extends Constructable<CSSDirective
227
260
  }
228
261
 
229
262
  // @public
230
- export type CSSTemplateTag = (<TSource = any, TParent = any>(strings: TemplateStringsArray, ...values: CSSValue<TSource, TParent>[]) => ElementStyles) & {
231
- partial<TSource = any, TParent = any>(strings: TemplateStringsArray, ...values: CSSValue<TSource, TParent>[]): CSSDirective;
263
+ export type CSSTemplateTag = ((strings: TemplateStringsArray, ...values: CSSValue[]) => ElementStyles) & {
264
+ partial(strings: TemplateStringsArray, ...values: CSSValue[]): CSSDirective;
232
265
  };
233
266
 
234
267
  // @public
235
- export type CSSValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | ComposableStyles | CSSDirective;
268
+ export type CSSValue = ComposableStyles | CSSDirective;
236
269
 
237
270
  // @public
238
271
  export function customElement(nameOrDef: string | PartialFASTElementDefinition): (type: Constructable<HTMLElement>) => void;
@@ -240,8 +273,27 @@ export function customElement(nameOrDef: string | PartialFASTElementDefinition):
240
273
  // @public
241
274
  export type DecoratorAttributeConfiguration = Omit<AttributeConfiguration, "property">;
242
275
 
243
- // @beta
244
- export const deferHydrationAttribute = "defer-hydration";
276
+ // @public
277
+ export interface DefaultCachedPath extends CachedPathCommon {
278
+ // (undocumented)
279
+ type: "default";
280
+ }
281
+
282
+ // @public
283
+ export class DefaultExecutionContext<TParent> implements ExecutionContext<TParent> {
284
+ get event(): Event;
285
+ eventDetail<TDetail>(): TDetail;
286
+ eventTarget<TTarget extends EventTarget>(): TTarget;
287
+ index: number;
288
+ get isEven(): boolean;
289
+ get isFirst(): boolean;
290
+ get isInMiddle(): boolean;
291
+ get isLast(): boolean;
292
+ get isOdd(): boolean;
293
+ length: number;
294
+ readonly parent: TParent;
295
+ readonly parentContext: ExecutionContext<TParent>;
296
+ }
245
297
 
246
298
  // @public
247
299
  export interface Disposable {
@@ -250,8 +302,8 @@ export interface Disposable {
250
302
 
251
303
  // @public
252
304
  export const DOM: Readonly<{
253
- readonly policy: DOMPolicy;
254
- setPolicy(value: DOMPolicy): void;
305
+ readonly policy: DOMPolicy_2;
306
+ setPolicy(value: DOMPolicy_2): void;
255
307
  setAttribute(element: HTMLElement, attributeName: string, value: any): void;
256
308
  setBooleanAttribute(element: HTMLElement, attributeName: string, value: boolean): void;
257
309
  }>;
@@ -271,22 +323,50 @@ export const DOMAspect: Readonly<{
271
323
  export type DOMAspect = (typeof DOMAspect)[Exclude<keyof typeof DOMAspect, "none">];
272
324
 
273
325
  // @public
274
- export interface DOMPolicy {
275
- createHTML(value: string): string;
276
- protect(tagName: string | null, aspect: DOMAspect, aspectName: string, sink: DOMSink): DOMSink;
277
- }
326
+ export type DOMAspectGuards = {
327
+ [DOMAspect.attribute]?: DOMSinkGuards;
328
+ [DOMAspect.booleanAttribute]?: DOMSinkGuards;
329
+ [DOMAspect.property]?: DOMSinkGuards;
330
+ [DOMAspect.content]?: DOMSinkGuards;
331
+ [DOMAspect.tokenList]?: DOMSinkGuards;
332
+ [DOMAspect.event]?: DOMSinkGuards;
333
+ };
334
+
335
+ // @public
336
+ export type DOMElementGuards = Record<string, DOMAspectGuards>;
337
+
338
+ // @public
339
+ export type DOMGuards = {
340
+ elements: DOMElementGuards;
341
+ aspects: DOMAspectGuards;
342
+ };
343
+
344
+ // @public
345
+ export const DOMPolicy: Readonly<{
346
+ create(options?: DOMPolicyOptions): Readonly<DOMPolicy_2>;
347
+ }>;
348
+
349
+ // @public
350
+ export type DOMPolicyOptions = {
351
+ trustedType?: TrustedTypesPolicy;
352
+ guards?: Partial<DOMGuards>;
353
+ };
278
354
 
279
355
  // @public
280
356
  export type DOMSink = (target: Node, aspectName: string, value: any, ...args: any[]) => void;
281
357
 
282
358
  // @public
283
- export class ElementController<TElement extends HTMLElement = HTMLElement> extends PropertyChangeNotifier implements HostController<TElement> {
359
+ export type DOMSinkGuards = Record<string, (tagName: string | null, aspect: DOMAspect, aspectName: string, sink: DOMSink) => DOMSink>;
360
+
361
+ // @public
362
+ export class ElementController<TElement extends HTMLElement = HTMLElement> implements Notifier, HostController<TElement> {
284
363
  // @internal
285
364
  constructor(element: TElement, definition: FASTElementDefinition);
286
365
  addBehavior(behavior: HostBehavior<TElement>): void;
287
366
  addStyles(styles: ElementStyles | HTMLStyleElement | null | undefined): void;
288
367
  protected behaviors: Map<HostBehavior<TElement>, number> | null;
289
368
  protected bindObservables(): void;
369
+ protected captureBoundObservables(): void;
290
370
  connect(): void;
291
371
  protected connectBehaviors(): void;
292
372
  get context(): ExecutionContext;
@@ -296,11 +376,17 @@ export class ElementController<TElement extends HTMLElement = HTMLElement> exten
296
376
  emit(type: string, detail?: any, options?: Omit<CustomEventInit, "detail">): void | boolean;
297
377
  static forCustomElement(element: HTMLElement, override?: boolean): ElementController;
298
378
  protected hasExistingShadowRoot: boolean;
379
+ // @internal
380
+ static installHydrationHook(hook: (controller: ElementController, template: ElementViewTemplate, element: HTMLElement, host: Node) => boolean): void;
299
381
  get isBound(): boolean;
300
382
  get isConnected(): boolean;
383
+ readonly isHydrated: Promise<boolean>;
384
+ readonly isPrerendered: Promise<boolean>;
301
385
  get mainStyles(): ElementStyles | null;
302
386
  set mainStyles(value: ElementStyles | null);
303
387
  protected needsInitialization: boolean;
388
+ notify(args: any): void;
389
+ protected observeLateAttributes(): void;
304
390
  onAttributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
305
391
  onUnbind(behavior: {
306
392
  unbind(controller: ExpressionController<TElement>): any;
@@ -314,8 +400,12 @@ export class ElementController<TElement extends HTMLElement = HTMLElement> exten
314
400
  readonly source: TElement;
315
401
  get sourceLifetime(): SourceLifetime | undefined;
316
402
  protected stage: Stages;
403
+ get subject(): TElement;
404
+ subscribe(subscriber: Subscriber, propertyToWatch?: any): void;
405
+ protected syncLateAttributes(): void;
317
406
  get template(): ElementViewTemplate<TElement> | null;
318
407
  set template(value: ElementViewTemplate<TElement> | null);
408
+ unsubscribe(subscriber: Subscriber, propertyToUnwatch?: any): void;
319
409
  readonly view: ElementView<TElement> | null;
320
410
  }
321
411
 
@@ -336,7 +426,6 @@ export class ElementStyles {
336
426
  constructor(styles: ReadonlyArray<ComposableStyles>);
337
427
  // @internal (undocumented)
338
428
  addStylesTo(target: StyleTarget): void;
339
- readonly behaviors: ReadonlyArray<HostBehavior<HTMLElement>> | null;
340
429
  // @internal (undocumented)
341
430
  isAttachedTo(target: StyleTarget): boolean;
342
431
  static normalize(styles: ComposableStyles | ComposableStyles[] | undefined): ElementStyles | undefined;
@@ -347,7 +436,6 @@ export class ElementStyles {
347
436
  // (undocumented)
348
437
  readonly styles: ReadonlyArray<ComposableStyles>;
349
438
  static readonly supportsAdoptedStyleSheets: boolean;
350
- withBehaviors(...behaviors: HostBehavior<HTMLElement>[]): this;
351
439
  withStrategy(Strategy: ConstructibleStyleStrategy): this;
352
440
  }
353
441
 
@@ -369,6 +457,15 @@ export interface ElementViewTemplate<TSource = any, TParent = any> {
369
457
  // @public
370
458
  export const emptyArray: readonly never[];
371
459
 
460
+ // @public
461
+ export function enableDebug(): void;
462
+
463
+ // @public
464
+ export interface EventCachedPath extends CachedPathCommon {
465
+ // (undocumented)
466
+ type: "event";
467
+ }
468
+
372
469
  // @public
373
470
  export interface ExecutionContext<TParent = any> {
374
471
  readonly event: Event;
@@ -419,7 +516,11 @@ export interface ExpressionObserver<TSource = any, TReturn = any, TParent = any>
419
516
  }
420
517
 
421
518
  // @public
422
- export const FAST: FASTGlobal;
519
+ export const FAST: {
520
+ warn(_code: number, _values?: Record<string, any>): void;
521
+ error(code: number, _values?: Record<string, any>): Error;
522
+ addMessages(messages: Record<number, string>): void;
523
+ };
423
524
 
424
525
  // @public
425
526
  export interface FASTElement extends HTMLElement {
@@ -435,7 +536,6 @@ export const FASTElement: {
435
536
  new (): FASTElement;
436
537
  define: typeof define;
437
538
  compose: typeof compose;
438
- defineAsync: typeof defineAsync;
439
539
  from: typeof from;
440
540
  };
441
541
 
@@ -443,10 +543,8 @@ export const FASTElement: {
443
543
  export class FASTElementDefinition<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> {
444
544
  readonly attributeLookup: Record<string, AttributeDefinition>;
445
545
  readonly attributes: ReadonlyArray<AttributeDefinition>;
446
- static compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition): FASTElementDefinition<TType>;
447
- // @alpha
448
- static composeAsync<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition): Promise<FASTElementDefinition<TType>>;
449
- define(registry?: CustomElementRegistry): this;
546
+ static compose<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>>(type: TType, nameOrDef?: string | PartialFASTElementDefinition<TType>): Promise<FASTElementDefinition<TType>>;
547
+ define(registry?: CustomElementRegistry, extensions?: FASTElementExtension[]): this;
450
548
  readonly elementOptions: ElementDefinitionOptions;
451
549
  static readonly getByType: (key: Function) => FASTElementDefinition<Constructable<HTMLElement>> | undefined;
452
550
  static readonly getForInstance: (object: any) => FASTElementDefinition<Constructable<HTMLElement>> | undefined;
@@ -456,33 +554,27 @@ export class FASTElementDefinition<TType extends Constructable<HTMLElement> = Co
456
554
  readonly name: string;
457
555
  readonly propertyLookup: Record<string, AttributeDefinition>;
458
556
  // @alpha
459
- static registerAsync: (name: string) => Promise<Function>;
557
+ static register: (name: string, registry?: CustomElementRegistry) => Promise<Function>;
460
558
  // @internal
461
559
  static registerBaseType(type: Function): void;
462
560
  readonly registry: CustomElementRegistry;
561
+ schema?: Schema;
463
562
  shadowOptions?: ShadowRootOptions;
464
563
  readonly styles?: ElementStyles;
465
- template?: ElementViewTemplate;
466
- // @alpha
467
- templateOptions?: TemplateOptions;
564
+ template?: ElementViewTemplate<InstanceType<TType>>;
468
565
  readonly type: TType;
469
566
  }
470
567
 
568
+ // @public
569
+ export type FASTElementExtension = (definition: FASTElementDefinition) => void;
570
+
471
571
  // Warning: (ae-internal-missing-underscore) The name "fastElementRegistry" should be prefixed with an underscore because the declaration is marked as @internal
472
572
  //
473
573
  // @internal
474
574
  export const fastElementRegistry: TypeRegistry<FASTElementDefinition>;
475
575
 
476
576
  // @public
477
- export interface FASTGlobal {
478
- addMessages(messages: Record<number, string>): void;
479
- error(code: number, values?: Record<string, any>): Error;
480
- getById<T>(id: string | number): T | null;
481
- // (undocumented)
482
- getById<T>(id: string | number, initialize: () => T): T;
483
- readonly versions: string[];
484
- warn(code: number, values?: Record<string, any>): void;
485
- }
577
+ export type FASTElementTemplateResolver<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> = (definition: FASTElementDefinition<TType>) => ElementViewTemplate<InstanceType<TType>> | Promise<ElementViewTemplate<InstanceType<TType>>>;
486
578
 
487
579
  // @public
488
580
  export interface HostBehavior<TSource = any> {
@@ -520,7 +612,7 @@ export class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory,
520
612
  // @internal
521
613
  handleEvent(event: Event): void;
522
614
  id: string;
523
- policy: DOMPolicy;
615
+ policy: DOMPolicy_2;
524
616
  sourceAspect: string;
525
617
  targetAspect: string;
526
618
  targetNodeId: string;
@@ -562,8 +654,6 @@ export type HTMLTemplateTag = (<TSource = any, TParent = any>(strings: TemplateS
562
654
  partial(html: string): InlineTemplateDirective;
563
655
  };
564
656
 
565
- // Warning: (ae-forgotten-export) The symbol "DefaultExecutionContext" needs to be exported by the entry point index.d.ts
566
- //
567
657
  // @public
568
658
  export class HTMLView<TSource = any, TParent = any> extends DefaultExecutionContext<TParent> implements ElementView<TSource, TParent>, SyntheticView<TSource, TParent>, ExecutionContext<TParent> {
569
659
  constructor(fragment: DocumentFragment, factories: ReadonlyArray<CompiledViewBehaviorFactory>, targets: ViewBehaviorTargets);
@@ -575,12 +665,16 @@ export class HTMLView<TSource = any, TParent = any> extends DefaultExecutionCont
575
665
  firstChild: Node;
576
666
  insertBefore(node: Node): void;
577
667
  isBound: boolean;
668
+ isHydrated: Promise<boolean>;
669
+ isPrerendered: Promise<boolean>;
578
670
  lastChild: Node;
579
671
  // (undocumented)
580
672
  onUnbind(behavior: {
581
673
  unbind(controller: ViewController<TSource, TParent>): void;
582
674
  }): void;
583
675
  remove(): void;
676
+ // @internal
677
+ _skipAttrUpdates: boolean;
584
678
  source: TSource | null;
585
679
  readonly sourceLifetime: SourceLifetime;
586
680
  // (undocumented)
@@ -588,79 +682,46 @@ export class HTMLView<TSource = any, TParent = any> extends DefaultExecutionCont
588
682
  unbind(): void;
589
683
  }
590
684
 
591
- // @beta
592
- export class HydratableElementController<TElement extends HTMLElement = HTMLElement> extends ElementController<TElement> {
593
- static config(callbacks: HydrationControllerCallbacks): typeof HydratableElementController;
594
- connect(): void;
595
- disconnect(): void;
596
- static install(): void;
597
- static lifecycleCallbacks: HydrationControllerCallbacks;
598
- protected needsHydration?: boolean;
599
- get shadowOptions(): ShadowRootOptions | undefined;
600
- set shadowOptions(value: ShadowRootOptions | undefined);
685
+ // @public
686
+ export class InlineTemplateDirective implements HTMLDirective {
687
+ constructor(html: string, factories?: Record<string, ViewBehaviorFactory>);
688
+ createHTML(add: AddViewBehaviorFactory): string;
689
+ static readonly empty: InlineTemplateDirective;
601
690
  }
602
691
 
603
- // @public (undocumented)
604
- export interface HydratableView<TSource = any, TParent = any> extends ElementView, SyntheticView, DefaultExecutionContext<TParent> {
692
+ // @public
693
+ export interface JSONSchema extends JSONSchemaCommon {
605
694
  // (undocumented)
606
- [Hydratable]: symbol;
607
- // Warning: (ae-forgotten-export) The symbol "ViewNodes" needs to be exported by the entry point index.d.ts
608
- //
695
+ $defs?: Record<string, JSONSchemaDefinition>;
609
696
  // (undocumented)
610
- readonly bindingViewBoundaries: Record<string, ViewNodes>;
611
- // Warning: (ae-forgotten-export) The symbol "HydrationStage" needs to be exported by the entry point index.d.ts
612
- //
697
+ $id: string;
613
698
  // (undocumented)
614
- readonly hydrationStage: keyof typeof HydrationStage;
615
- }
616
-
617
- // @public (undocumented)
618
- export class HydrationBindingError extends Error {
619
- constructor(
620
- message: string | undefined,
621
- factory: ViewBehaviorFactory,
622
- fragment: DocumentFragment,
623
- templateString: string);
624
- readonly factory: ViewBehaviorFactory;
625
- readonly fragment: DocumentFragment;
626
- readonly templateString: string;
699
+ $schema: string;
627
700
  }
628
701
 
629
702
  // @public
630
- export interface HydrationControllerCallbacks<TElement extends HTMLElement = HTMLElement> {
631
- elementDidHydrate?(source: TElement): void;
632
- elementWillHydrate?(source: TElement): void;
633
- hydrationComplete?(): void;
634
- hydrationStarted?(): void;
703
+ export interface JSONSchemaCommon {
704
+ $observe?: boolean;
705
+ // (undocumented)
706
+ $ref?: string;
707
+ // (undocumented)
708
+ anyOf?: Array<any>;
709
+ // (undocumented)
710
+ items?: any;
711
+ // (undocumented)
712
+ properties?: any;
713
+ // (undocumented)
714
+ type?: string;
635
715
  }
636
716
 
637
717
  // @public
638
- export class InlineTemplateDirective implements HTMLDirective {
639
- constructor(html: string, factories?: Record<string, ViewBehaviorFactory>);
640
- createHTML(add: AddViewBehaviorFactory): string;
641
- static readonly empty: InlineTemplateDirective;
718
+ export interface JSONSchemaDefinition extends JSONSchemaCommon {
719
+ // (undocumented)
720
+ $fast_context: string;
721
+ // (undocumented)
722
+ $fast_parent_contexts: Array<string>;
642
723
  }
643
724
 
644
- // Warning: (ae-forgotten-export) The symbol "HydrationView" needs to be exported by the entry point index.d.ts
645
- //
646
- // @beta
647
- export function isHydratable(view: ViewController): view is HydrationView;
648
-
649
- // Warning: (ae-forgotten-export) The symbol "HydratableSyntheticViewTemplate" needs to be exported by the entry point index.d.ts
650
- //
651
- // @beta (undocumented)
652
- export function isHydratable<TSource = any, TParent = any>(template: SyntheticViewTemplate<TSource, TParent>): template is HydratableSyntheticViewTemplate<TSource, TParent>;
653
-
654
- // Warning: (ae-forgotten-export) The symbol "HydratableElementViewTemplate" needs to be exported by the entry point index.d.ts
655
- //
656
- // @beta (undocumented)
657
- export function isHydratable<TSource = any, TParent = any>(template: ElementViewTemplate<TSource, TParent>): template is HydratableElementViewTemplate<TSource, TParent>;
658
-
659
- // Warning: (ae-forgotten-export) The symbol "HydratableContentTemplate" needs to be exported by the entry point index.d.ts
660
- //
661
- // @beta (undocumented)
662
- export function isHydratable(template: ContentTemplate): template is HydratableContentTemplate;
663
-
664
725
  // @public
665
726
  export interface LengthObserver extends Subscriber {
666
727
  length: number;
@@ -679,9 +740,6 @@ export const Markup: Readonly<{
679
740
  comment: (id: string) => string;
680
741
  }>;
681
742
 
682
- // @public
683
- export const needsHydrationAttribute = "needs-hydration";
684
-
685
743
  // @public
686
744
  export interface NodeBehaviorOptions<T = any> {
687
745
  filter?: ElementsFilter;
@@ -743,10 +801,19 @@ export interface ObservationRecord {
743
801
  }
744
802
 
745
803
  // @public
746
- export function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy): Binding<T>;
804
+ export function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy_2): Binding<T>;
747
805
 
748
806
  // @public
749
- export function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
807
+ export function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy_2, isVolatile?: boolean): Binding<T>;
808
+
809
+ // @beta
810
+ export type OwnedState<T> = ReadonlyOwnedState<T> & {
811
+ set(owner: any, value: T): void;
812
+ asReadonly(): ReadonlyOwnedState<T>;
813
+ };
814
+
815
+ // @beta
816
+ export function ownedState<T>(value: T | (() => T), options?: string | StateOptions): OwnedState<T>;
750
817
 
751
818
  // @public
752
819
  export const Parser: Readonly<{
@@ -754,17 +821,16 @@ export const Parser: Readonly<{
754
821
  }>;
755
822
 
756
823
  // @public
757
- export interface PartialFASTElementDefinition {
824
+ export interface PartialFASTElementDefinition<TType extends Constructable<HTMLElement> = Constructable<HTMLElement>> {
758
825
  readonly attributes?: (AttributeConfiguration | string)[];
759
826
  readonly elementOptions?: ElementDefinitionOptions;
760
827
  readonly lifecycleCallbacks?: TemplateLifecycleCallbacks;
761
828
  readonly name: string;
762
829
  readonly registry?: CustomElementRegistry;
830
+ readonly schema?: Schema;
763
831
  readonly shadowOptions?: Partial<ShadowRootOptions> | null;
764
832
  readonly styles?: ComposableStyles | ComposableStyles[];
765
- readonly template?: ElementViewTemplate;
766
- // @alpha
767
- readonly templateOptions?: TemplateOptions;
833
+ readonly template?: ElementViewTemplate<InstanceType<TType>> | FASTElementTemplateResolver<TType>;
768
834
  }
769
835
 
770
836
  // @public
@@ -781,8 +847,22 @@ export class PropertyChangeNotifier implements Notifier {
781
847
  unsubscribe(subscriber: Subscriber, propertyToUnwatch?: string): void;
782
848
  }
783
849
 
850
+ // @beta
851
+ export function reactive<T>(object: T, deep?: boolean): T;
852
+
853
+ // @beta
854
+ export type ReadonlyOwnedState<T> = {
855
+ (owner: any): T;
856
+ };
857
+
858
+ // @beta
859
+ export type ReadonlyState<T> = {
860
+ (): T;
861
+ readonly current: T;
862
+ };
863
+
784
864
  // @public
785
- export const ref: <TSource = any, TParent = any>(propertyName: keyof TSource & string) => CaptureType<TSource, TParent>;
865
+ export const ref: <TSource = any>(propertyName: keyof TSource & string) => CaptureType;
786
866
 
787
867
  // @public
788
868
  export class RefDirective extends StatelessAttachedAttributeDirective<string> {
@@ -791,13 +871,23 @@ export class RefDirective extends StatelessAttachedAttributeDirective<string> {
791
871
  }
792
872
 
793
873
  // @public
794
- export function render<TSource = any, TItem = any, TParent = any>(value?: Expression<TSource, TItem> | Binding<TSource, TItem> | {}, template?: ContentTemplate | string | Expression<TSource, ContentTemplate | string | Node, TParent> | Binding<TSource, ContentTemplate | string | Node, TParent>): CaptureType<TSource, TParent>;
874
+ export interface RegisterPathConfig {
875
+ // (undocumented)
876
+ childrenMap: ChildrenMap | null;
877
+ // (undocumented)
878
+ pathConfig: CachedPath;
879
+ // (undocumented)
880
+ rootPropertyName: string;
881
+ }
882
+
883
+ // @public
884
+ export function render<TSource = any, TItem = any, TParent = any>(value?: Expression<TSource, TItem> | Binding<TSource, TItem> | {}, template?: ContentTemplate | string | Expression<TSource, ContentTemplate | string | Node, TParent> | Binding<TSource, ContentTemplate | string | Node, TParent>): CaptureType;
795
885
 
796
886
  // @public
797
887
  export class RenderBehavior<TSource = any> implements ViewBehavior, Subscriber {
798
888
  constructor(directive: RenderDirective);
799
889
  bind(controller: ViewController): void;
800
- // @internal (undocumented)
890
+ // @internal
801
891
  handleChange(source: any, observer: ExpressionObserver): void;
802
892
  unbind(controller: ViewController): void;
803
893
  }
@@ -817,7 +907,7 @@ export class RenderDirective<TSource = any> implements HTMLDirective, ViewBehavi
817
907
  }
818
908
 
819
909
  // @public
820
- export function repeat<TSource = any, TArray extends ReadonlyArray<any> = ReadonlyArray<any>, TParent = any>(items: Expression<TSource, TArray, TParent> | Binding<TSource, TArray, TParent> | ReadonlyArray<any>, template: Expression<TSource, ViewTemplate<any, TSource>> | Binding<TSource, ViewTemplate<any, TSource>> | ViewTemplate<any, TSource>, options?: RepeatOptions): CaptureType<TSource, TParent>;
910
+ export function repeat<TSource = any, TArray extends ReadonlyArray<any> = ReadonlyArray<any>, TParent = any>(items: Expression<TSource, TArray, TParent> | Binding<TSource, TArray, TParent> | ReadonlyArray<any>, template: Expression<TSource, ViewTemplate<any, TSource>> | Binding<TSource, ViewTemplate<any, TSource>> | ViewTemplate<any, TSource>, options?: RepeatOptions): CaptureType;
821
911
 
822
912
  // @public
823
913
  export class RepeatBehavior<TSource = any> implements ViewBehavior, Subscriber {
@@ -829,6 +919,12 @@ export class RepeatBehavior<TSource = any> implements ViewBehavior, Subscriber {
829
919
  views: SyntheticView[];
830
920
  }
831
921
 
922
+ // @public
923
+ export interface RepeatCachedPath extends CachedPathCommon {
924
+ // (undocumented)
925
+ type: "repeat";
926
+ }
927
+
832
928
  // @public
833
929
  export class RepeatDirective<TSource = any> implements HTMLDirective, ViewBehaviorFactory, BindingDirective {
834
930
  constructor(dataBinding: Binding<TSource>, templateBinding: Binding<TSource, SyntheticViewTemplate>, options: RepeatOptions);
@@ -849,6 +945,17 @@ export interface RepeatOptions {
849
945
  recycle?: boolean;
850
946
  }
851
947
 
948
+ // @public
949
+ export class Schema {
950
+ constructor(name: string);
951
+ addPath(config: RegisterPathConfig): void;
952
+ getRootProperties(): IterableIterator<string>;
953
+ getSchema(rootPropertyName: string): JSONSchema | null;
954
+ }
955
+
956
+ // @public
957
+ export const schemaRegistry: CachedPathMap;
958
+
852
959
  // @public
853
960
  export interface ShadowRootOptions extends ShadowRootInit {
854
961
  // @beta
@@ -856,7 +963,17 @@ export interface ShadowRootOptions extends ShadowRootInit {
856
963
  }
857
964
 
858
965
  // @public
859
- export function slotted<TSource = any, TParent = any>(propertyOrOptions: (keyof TSource & string) | SlottedDirectiveOptions<keyof TSource & string>): CaptureType<TSource, TParent>;
966
+ export const Signal: Readonly<{
967
+ subscribe(signal: string, subscriber: Subscriber): void;
968
+ unsubscribe(signal: string, subscriber: Subscriber): void;
969
+ send(signal: string): void;
970
+ }>;
971
+
972
+ // @public
973
+ export function signal<T = any>(expression: Expression<T>, options: string | Expression<T>, policy?: DOMPolicy_2): Binding<T>;
974
+
975
+ // @public
976
+ export function slotted<TSource = any>(propertyOrOptions: (keyof TSource & string) | SlottedDirectiveOptions<keyof TSource & string>): CaptureType;
860
977
 
861
978
  // @public
862
979
  export class SlottedDirective extends NodeObservationDirective<SlottedDirectiveOptions> {
@@ -945,6 +1062,16 @@ export const enum Stages {
945
1062
  disconnecting = 2
946
1063
  }
947
1064
 
1065
+ // @beta
1066
+ export type State<T> = ReadonlyState<T> & {
1067
+ current: T;
1068
+ set(value: T): void;
1069
+ asReadonly(): ReadonlyState<T>;
1070
+ };
1071
+
1072
+ // @beta
1073
+ export function state<T>(value: T, options?: string | StateOptions): State<T>;
1074
+
948
1075
  // @public
949
1076
  export abstract class StatelessAttachedAttributeDirective<TOptions> implements HTMLDirective, ViewBehaviorFactory, ViewBehavior {
950
1077
  constructor(options: TOptions);
@@ -955,6 +1082,12 @@ export abstract class StatelessAttachedAttributeDirective<TOptions> implements H
955
1082
  protected options: TOptions;
956
1083
  }
957
1084
 
1085
+ // @beta
1086
+ export type StateOptions = {
1087
+ deep?: boolean;
1088
+ name?: string;
1089
+ };
1090
+
958
1091
  // @public
959
1092
  export interface StyleStrategy {
960
1093
  addStylesTo(target: StyleTarget): void;
@@ -1001,31 +1134,46 @@ export interface SyntheticView<TSource = any, TParent = any> extends View<TSourc
1001
1134
  // @public
1002
1135
  export interface SyntheticViewTemplate<TSource = any, TParent = any> {
1003
1136
  create(): SyntheticView<TSource, TParent>;
1004
- inline(): CaptureType<TSource, TParent>;
1137
+ inline(): CaptureType;
1005
1138
  }
1006
1139
 
1007
1140
  // @public
1008
1141
  export interface TemplateLifecycleCallbacks {
1009
1142
  elementDidDefine?(name: string): void;
1143
+ elementDidHydrate?(source: HTMLElement): void;
1144
+ elementDidRegister?(name: string): void;
1145
+ elementWillHydrate?(source: HTMLElement): void;
1010
1146
  templateDidUpdate?(name: string): void;
1147
+ templateWillUpdate?(name: string): void;
1011
1148
  }
1012
1149
 
1013
- // @alpha
1014
- export const TemplateOptions: {
1015
- readonly deferAndHydrate: "defer-and-hydrate";
1016
- };
1017
-
1018
- // @alpha
1019
- export type TemplateOptions = (typeof TemplateOptions)[keyof typeof TemplateOptions];
1020
-
1021
1150
  // @public
1022
- export type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType<TSource, TParent>;
1151
+ export type TemplateValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | HTMLDirective | CaptureType;
1023
1152
 
1024
1153
  // @public
1025
1154
  export type TrustedTypesPolicy = {
1026
1155
  createHTML(html: string): string;
1027
1156
  };
1028
1157
 
1158
+ // @public
1159
+ export function twoWay<T = any>(expression: Expression<T>, optionsOrChangeEvent?: TwoWayBindingOptions | string, policy?: DOMPolicy_2, isBindingVolatile?: boolean): Binding<T>;
1160
+
1161
+ // @public
1162
+ export type TwoWayBindingOptions = {
1163
+ changeEvent?: string;
1164
+ fromView?: (value: any) => any;
1165
+ };
1166
+
1167
+ // @public
1168
+ export interface TwoWaySettings {
1169
+ determineChangeEvent(bindingSource: BindingDirective, target: HTMLElement): string;
1170
+ }
1171
+
1172
+ // @public
1173
+ export const TwoWaySettings: Readonly<{
1174
+ configure(settings: TwoWaySettings): void;
1175
+ }>;
1176
+
1029
1177
  // Warning: (ae-forgotten-export) The symbol "TypeDefinition" needs to be exported by the entry point index.d.ts
1030
1178
  // Warning: (ae-internal-missing-underscore) The name "TypeRegistry" should be prefixed with an underscore because the declaration is marked as @internal
1031
1179
  //
@@ -1039,6 +1187,17 @@ export interface TypeRegistry<TDefinition extends TypeDefinition> {
1039
1187
  register(definition: TDefinition): boolean;
1040
1188
  }
1041
1189
 
1190
+ // Warning: (ae-internal-missing-underscore) The name "UnobservableMutationObserver" should be prefixed with an underscore because the declaration is marked as @internal
1191
+ //
1192
+ // @internal
1193
+ export class UnobservableMutationObserver extends MutationObserver {
1194
+ constructor(callback: MutationCallback);
1195
+ // (undocumented)
1196
+ observe(target: Node, options?: MutationObserverInit | undefined): void;
1197
+ // (undocumented)
1198
+ unobserve(target: Node): void;
1199
+ }
1200
+
1042
1201
  // @public
1043
1202
  export interface UpdateQueue {
1044
1203
  enqueue(callable: Callable): void;
@@ -1074,11 +1233,24 @@ export interface ViewBehavior<TSource = any, TParent = any> {
1074
1233
  export interface ViewBehaviorFactory {
1075
1234
  createBehavior(): ViewBehavior;
1076
1235
  id?: string;
1077
- policy?: DOMPolicy;
1236
+ policy?: DOMPolicy_2;
1078
1237
  targetNodeId?: string;
1079
1238
  targetTagName?: string | null;
1080
1239
  }
1081
1240
 
1241
+ // @public
1242
+ export interface ViewBehaviorOrchestrator<TSource = any, TParent = any> extends ViewController<TSource, TParent>, HostBehavior<TSource> {
1243
+ addBehavior(behavior: ViewBehavior): void;
1244
+ addBehaviorFactory(factory: ViewBehaviorFactory, target: Node): void;
1245
+ // (undocumented)
1246
+ addTarget(nodeId: string, target: Node): void;
1247
+ }
1248
+
1249
+ // @public
1250
+ export const ViewBehaviorOrchestrator: Readonly<{
1251
+ create<TSource = any, TParent = any>(source: TSource): ViewBehaviorOrchestrator<TSource, TParent>;
1252
+ }>;
1253
+
1082
1254
  // @public
1083
1255
  export type ViewBehaviorTargets = {
1084
1256
  [id: string]: Node;
@@ -1086,36 +1258,41 @@ export type ViewBehaviorTargets = {
1086
1258
 
1087
1259
  // @public
1088
1260
  export interface ViewController<TSource = any, TParent = any> extends ExpressionController<TSource, TParent> {
1261
+ readonly isHydrated?: Promise<boolean>;
1262
+ readonly isPrerendered?: Promise<boolean>;
1263
+ // @internal
1264
+ readonly _skipAttrUpdates?: boolean;
1089
1265
  readonly targets: ViewBehaviorTargets;
1090
1266
  }
1091
1267
 
1092
1268
  // @public
1093
1269
  export class ViewTemplate<TSource = any, TParent = any> implements ElementViewTemplate<TSource, TParent>, SyntheticViewTemplate<TSource, TParent> {
1094
- constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy | undefined);
1270
+ constructor(html: string | HTMLTemplateElement, factories?: Record<string, ViewBehaviorFactory>, policy?: DOMPolicy_2 | undefined);
1095
1271
  // @internal (undocumented)
1096
1272
  compile(): HTMLTemplateCompilationResult<TSource, TParent>;
1097
1273
  create(hostBindingTarget?: Element): HTMLView<TSource, TParent>;
1098
- static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy): ViewTemplate<TSource, TParent>;
1274
+ static create<TSource = any, TParent = any>(strings: string[], values: TemplateValue<TSource, TParent>[], policy?: DOMPolicy_2): ViewTemplate<TSource, TParent>;
1099
1275
  readonly factories: Record<string, ViewBehaviorFactory>;
1100
1276
  readonly html: string | HTMLTemplateElement;
1101
- inline(): CaptureType<TSource, TParent>;
1277
+ inline(): CaptureType;
1102
1278
  render(source: TSource, host: Node, hostBindingTarget?: Element): HTMLView<TSource, TParent>;
1103
- withPolicy(policy: DOMPolicy): this;
1279
+ withPolicy(policy: DOMPolicy_2): this;
1104
1280
  }
1105
1281
 
1106
1282
  // @public
1107
1283
  export function volatile(target: {}, name: string | Accessor, descriptor: PropertyDescriptor): PropertyDescriptor;
1108
1284
 
1285
+ // @beta
1286
+ export function watch(object: any, subscriber: Subscriber | ((subject: any, args: any) => void)): Disposable;
1287
+
1109
1288
  // @public
1110
- export function when<TSource = any, TReturn = any, TParent = any>(condition: Expression<TSource, TReturn, TParent> | boolean, templateOrTemplateBinding: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>, elseTemplateOrTemplateBinding?: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>): CaptureType<TSource, TParent>;
1289
+ export function when<TSource = any, TReturn = any, TParent = any>(condition: Expression<TSource, TReturn, TParent> | boolean, templateOrTemplateBinding: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>, elseTemplateOrTemplateBinding?: SyntheticViewTemplate<TSource, TParent> | Expression<TSource, SyntheticViewTemplate<TSource, TParent>, TParent>): CaptureType;
1111
1290
 
1112
1291
  // Warnings were encountered during analysis:
1113
1292
  //
1114
- // dist/dts/components/fast-element.d.ts:62:5 - (ae-forgotten-export) The symbol "define" needs to be exported by the entry point index.d.ts
1115
- // dist/dts/components/fast-element.d.ts:63:5 - (ae-forgotten-export) The symbol "compose" needs to be exported by the entry point index.d.ts
1116
- // dist/dts/components/fast-element.d.ts:64:5 - (ae-forgotten-export) The symbol "defineAsync" needs to be exported by the entry point index.d.ts
1117
- // dist/dts/components/fast-element.d.ts:65:5 - (ae-forgotten-export) The symbol "from" needs to be exported by the entry point index.d.ts
1118
- // dist/dts/styles/css-binding-directive.d.ts:35:9 - (ae-forgotten-export) The symbol "CSSBindingEntry" needs to be exported by the entry point index.d.ts
1293
+ // dist/dts/components/fast-element.d.ts:60:5 - (ae-forgotten-export) The symbol "define" needs to be exported by the entry point index.d.ts
1294
+ // dist/dts/components/fast-element.d.ts:61:5 - (ae-forgotten-export) The symbol "compose" needs to be exported by the entry point index.d.ts
1295
+ // dist/dts/components/fast-element.d.ts:62:5 - (ae-forgotten-export) The symbol "from" needs to be exported by the entry point index.d.ts
1119
1296
 
1120
1297
  // (No @packageDocumentation comment for this package)
1121
1298