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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +51 -1
  2. package/README.md +50 -14
  3. package/dist/context/context.api.json +13 -13
  4. package/dist/declarative/declarative.api.json +654 -15
  5. package/dist/di/di.api.json +15 -15
  6. package/dist/dts/__test__/helpers.d.ts +6 -0
  7. package/dist/dts/__test__/setup-node.d.ts +0 -0
  8. package/dist/dts/binding/binding.d.ts +15 -5
  9. package/dist/dts/binding/one-time.d.ts +1 -1
  10. package/dist/dts/binding/one-way.d.ts +1 -1
  11. package/dist/dts/binding/signal.d.ts +1 -1
  12. package/dist/dts/binding/two-way.d.ts +1 -1
  13. package/dist/dts/components/attributes.d.ts +1 -1
  14. package/dist/dts/components/enable-hydration.d.ts +22 -2
  15. package/dist/dts/components/fast-definitions.d.ts +7 -4
  16. package/dist/dts/components/fast-element.d.ts +42 -12
  17. package/dist/dts/components/hydration-tracker.d.ts +47 -4
  18. package/dist/dts/components/hydration.d.ts +5 -0
  19. package/dist/dts/context.d.ts +7 -7
  20. package/dist/dts/declarative/debug.d.ts +2 -3
  21. package/dist/dts/declarative/index.d.ts +3 -2
  22. package/dist/dts/declarative/interfaces.d.ts +1 -2
  23. package/dist/dts/declarative/template.d.ts +2 -1
  24. package/dist/dts/declarative/utilities.d.ts +50 -4
  25. package/dist/dts/di/di.d.ts +6 -6
  26. package/dist/dts/dom-policy.d.ts +22 -4
  27. package/dist/dts/dom.d.ts +4 -16
  28. package/dist/dts/hydration/diagnostics.d.ts +93 -0
  29. package/dist/dts/hydration/hydration-debugger.d.ts +35 -0
  30. package/dist/dts/hydration/messages.d.ts +62 -0
  31. package/dist/dts/hydration/target-builder.d.ts +26 -1
  32. package/dist/dts/hydration.d.ts +7 -3
  33. package/dist/dts/index.d.ts +7 -3
  34. package/dist/dts/interfaces.d.ts +1 -0
  35. package/dist/dts/observation/observable.d.ts +3 -3
  36. package/dist/dts/platform.d.ts +20 -4
  37. package/dist/dts/registry.d.ts +1 -0
  38. package/dist/dts/templating/children.d.ts +1 -1
  39. package/dist/dts/templating/compiler.d.ts +1 -1
  40. package/dist/dts/templating/html-binding-directive.d.ts +6 -2
  41. package/dist/dts/templating/html-directive.d.ts +2 -1
  42. package/dist/dts/templating/hydration-view.d.ts +24 -3
  43. package/dist/dts/templating/ref.d.ts +1 -1
  44. package/dist/dts/templating/render.d.ts +2 -2
  45. package/dist/dts/templating/repeat.d.ts +1 -1
  46. package/dist/dts/templating/slotted.d.ts +1 -1
  47. package/dist/dts/templating/template.d.ts +5 -5
  48. package/dist/dts/templating/when.d.ts +1 -1
  49. package/dist/dts/testing/fakes.d.ts +4 -4
  50. package/dist/esm/__test__/helpers.js +22 -0
  51. package/dist/esm/__test__/setup-node.js +18 -0
  52. package/dist/esm/binding/two-way.js +1 -2
  53. package/dist/esm/components/attributes.js +12 -8
  54. package/dist/esm/components/element-controller.js +11 -6
  55. package/dist/esm/components/enable-hydration.js +27 -3
  56. package/dist/esm/components/fast-definitions.js +19 -18
  57. package/dist/esm/components/hydration-tracker.js +34 -5
  58. package/dist/esm/components/hydration.js +85 -6
  59. package/dist/esm/debug.js +1 -0
  60. package/dist/esm/declarative/attribute-map.js +2 -1
  61. package/dist/esm/declarative/debug.js +0 -1
  62. package/dist/esm/declarative/index.js +1 -0
  63. package/dist/esm/declarative/interfaces.js +0 -1
  64. package/dist/esm/declarative/observer-map-utilities.js +58 -55
  65. package/dist/esm/declarative/template-bridge.js +4 -14
  66. package/dist/esm/declarative/template.js +4 -3
  67. package/dist/esm/declarative/utilities.js +236 -1
  68. package/dist/esm/di/di.js +2 -1
  69. package/dist/esm/dom-policy.js +33 -4
  70. package/dist/esm/hydration/diagnostics.js +50 -0
  71. package/dist/esm/hydration/hydration-debugger.js +112 -0
  72. package/dist/esm/hydration/messages.js +84 -0
  73. package/dist/esm/hydration/target-builder.js +65 -19
  74. package/dist/esm/hydration.js +3 -1
  75. package/dist/esm/index.js +6 -2
  76. package/dist/esm/interfaces.js +1 -0
  77. package/dist/esm/metadata.js +2 -8
  78. package/dist/esm/observation/notifier.js +2 -4
  79. package/dist/esm/registry.js +1 -0
  80. package/dist/esm/templating/html-binding-directive.js +1 -1
  81. package/dist/esm/templating/hydration-view.js +20 -27
  82. package/dist/esm/templating/render.js +39 -18
  83. package/dist/esm/templating/repeat.js +51 -17
  84. package/dist/esm/templating/view.js +1 -1
  85. package/dist/esm/testing/fixture.js +2 -2
  86. package/dist/esm/testing/timeout.js +2 -2
  87. package/dist/fast-element.api.json +1329 -99
  88. package/dist/fast-element.d.ts +147 -66
  89. package/dist/fast-element.debug.js +392 -99
  90. package/dist/fast-element.debug.min.js +2 -2
  91. package/dist/fast-element.js +392 -99
  92. package/dist/fast-element.min.js +2 -2
  93. package/dist/fast-element.untrimmed.d.ts +133 -70
  94. package/dist/hydration/hydration.api.json +1280 -57
  95. package/dist/styles/styles.api.json +1 -1
  96. package/package.json +21 -9
  97. package/ARCHITECTURE_FASTELEMENT.md +0 -63
  98. package/ARCHITECTURE_HTML_TAGGED_TEMPLATE_LITERAL.md +0 -36
  99. package/ARCHITECTURE_INTRO.md +0 -10
  100. package/ARCHITECTURE_OVERVIEW.md +0 -52
  101. package/ARCHITECTURE_UPDATES.md +0 -11
  102. package/CHANGELOG.json +0 -2275
  103. package/DECLARATIVE_DESIGN.md +0 -806
  104. package/DECLARATIVE_HTML.md +0 -470
  105. package/DECLARATIVE_MIGRATION.md +0 -215
  106. package/DECLARATIVE_RENDERING.md +0 -530
  107. package/DECLARATIVE_RENDERING_LIFECYCLE.md +0 -288
  108. package/DECLARATIVE_SCHEMA_OBSERVER_MAP.md +0 -489
  109. package/DESIGN.md +0 -615
  110. package/MIGRATION.md +0 -387
  111. package/SIZES.md +0 -25
  112. package/api-extractor.arrays.json +0 -15
  113. package/api-extractor.context.json +0 -15
  114. package/api-extractor.declarative.json +0 -15
  115. package/api-extractor.di.json +0 -15
  116. package/api-extractor.hydration.json +0 -15
  117. package/api-extractor.styles.json +0 -15
  118. package/biome.json +0 -4
  119. package/docs/ACKNOWLEDGEMENTS.md +0 -12
  120. package/docs/api-report.api.md +0 -1299
  121. package/docs/arrays/api-report.api.md +0 -114
  122. package/docs/context/api-report.api.md +0 -69
  123. package/docs/declarative/api-report.api.md +0 -397
  124. package/docs/di/api-report.api.md +0 -315
  125. package/docs/fast-element-2-changes.md +0 -15
  126. package/docs/hydration/api-report.api.md +0 -285
  127. package/docs/styles/api-report.api.md +0 -135
  128. package/playwright.config.ts +0 -26
  129. package/playwright.declarative.config.ts +0 -26
  130. package/playwright.declarative.webui.config.ts +0 -20
  131. package/scripts/declarative/build-fixtures-with-webui.js +0 -135
  132. package/scripts/declarative/build-fixtures.js +0 -49
  133. package/scripts/declarative/build-fixtures.utilities.js +0 -101
  134. package/scripts/measure-sizes.js +0 -219
  135. package/scripts/run-api-extractor.js +0 -70
  136. package/test/declarative/fixtures/README.md +0 -72
  137. package/test/declarative/fixtures/WRITING_FIXTURES.md +0 -330
  138. package/test/declarative/fixtures/bindings/README.md +0 -12
  139. package/test/declarative/fixtures/bindings/attribute/entry.html +0 -13
  140. package/test/declarative/fixtures/bindings/attribute/fast-build.config.json +0 -6
  141. package/test/declarative/fixtures/bindings/attribute/index.html +0 -25
  142. package/test/declarative/fixtures/bindings/attribute/main.ts +0 -41
  143. package/test/declarative/fixtures/bindings/attribute/state.json +0 -8
  144. package/test/declarative/fixtures/bindings/attribute/templates.html +0 -11
  145. package/test/declarative/fixtures/bindings/content/entry.html +0 -12
  146. package/test/declarative/fixtures/bindings/content/fast-build.config.json +0 -6
  147. package/test/declarative/fixtures/bindings/content/index.html +0 -19
  148. package/test/declarative/fixtures/bindings/content/main.ts +0 -27
  149. package/test/declarative/fixtures/bindings/content/state.json +0 -4
  150. package/test/declarative/fixtures/bindings/content/templates.html +0 -6
  151. package/test/declarative/fixtures/bindings/dot-syntax/entry.html +0 -11
  152. package/test/declarative/fixtures/bindings/dot-syntax/fast-build.config.json +0 -6
  153. package/test/declarative/fixtures/bindings/dot-syntax/index.html +0 -47
  154. package/test/declarative/fixtures/bindings/dot-syntax/main.ts +0 -59
  155. package/test/declarative/fixtures/bindings/dot-syntax/state.json +0 -16
  156. package/test/declarative/fixtures/bindings/dot-syntax/templates.html +0 -17
  157. package/test/declarative/fixtures/bindings/event/entry.html +0 -11
  158. package/test/declarative/fixtures/bindings/event/fast-build.config.json +0 -6
  159. package/test/declarative/fixtures/bindings/event/index.html +0 -43
  160. package/test/declarative/fixtures/bindings/event/main.ts +0 -43
  161. package/test/declarative/fixtures/bindings/event/state.json +0 -3
  162. package/test/declarative/fixtures/bindings/event/templates.html +0 -18
  163. package/test/declarative/fixtures/bindings/host/entry.html +0 -40
  164. package/test/declarative/fixtures/bindings/host/fast-build.config.json +0 -6
  165. package/test/declarative/fixtures/bindings/host/index.html +0 -96
  166. package/test/declarative/fixtures/bindings/host/main.ts +0 -222
  167. package/test/declarative/fixtures/bindings/host/state.json +0 -9
  168. package/test/declarative/fixtures/bindings/host/templates.html +0 -55
  169. package/test/declarative/fixtures/directives/README.md +0 -12
  170. package/test/declarative/fixtures/directives/children/entry.html +0 -11
  171. package/test/declarative/fixtures/directives/children/fast-build.config.json +0 -6
  172. package/test/declarative/fixtures/directives/children/index.html +0 -15
  173. package/test/declarative/fixtures/directives/children/main.ts +0 -22
  174. package/test/declarative/fixtures/directives/children/state.json +0 -3
  175. package/test/declarative/fixtures/directives/children/templates.html +0 -3
  176. package/test/declarative/fixtures/directives/ref/entry.html +0 -11
  177. package/test/declarative/fixtures/directives/ref/fast-build.config.json +0 -6
  178. package/test/declarative/fixtures/directives/ref/index.html +0 -15
  179. package/test/declarative/fixtures/directives/ref/main.ts +0 -17
  180. package/test/declarative/fixtures/directives/ref/state.json +0 -1
  181. package/test/declarative/fixtures/directives/ref/templates.html +0 -3
  182. package/test/declarative/fixtures/directives/repeat/entry.html +0 -21
  183. package/test/declarative/fixtures/directives/repeat/fast-build.config.json +0 -6
  184. package/test/declarative/fixtures/directives/repeat/index.html +0 -133
  185. package/test/declarative/fixtures/directives/repeat/main.ts +0 -110
  186. package/test/declarative/fixtures/directives/repeat/sprites.svg +0 -8
  187. package/test/declarative/fixtures/directives/repeat/state.json +0 -10
  188. package/test/declarative/fixtures/directives/repeat/templates.html +0 -75
  189. package/test/declarative/fixtures/directives/slotted/entry.html +0 -17
  190. package/test/declarative/fixtures/directives/slotted/fast-build.config.json +0 -6
  191. package/test/declarative/fixtures/directives/slotted/index.html +0 -27
  192. package/test/declarative/fixtures/directives/slotted/main.ts +0 -29
  193. package/test/declarative/fixtures/directives/slotted/state.json +0 -1
  194. package/test/declarative/fixtures/directives/slotted/templates.html +0 -7
  195. package/test/declarative/fixtures/directives/when/entry.html +0 -51
  196. package/test/declarative/fixtures/directives/when/fast-build.config.json +0 -6
  197. package/test/declarative/fixtures/directives/when/index.html +0 -136
  198. package/test/declarative/fixtures/directives/when/main.ts +0 -172
  199. package/test/declarative/fixtures/directives/when/state.json +0 -12
  200. package/test/declarative/fixtures/directives/when/templates.html +0 -75
  201. package/test/declarative/fixtures/ecosystem/README.md +0 -11
  202. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/entry.html +0 -12
  203. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/fast-build.config.json +0 -6
  204. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/index.html +0 -20
  205. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/main.ts +0 -68
  206. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/state.json +0 -4
  207. package/test/declarative/fixtures/ecosystem/declarative-no-hydration/templates.html +0 -7
  208. package/test/declarative/fixtures/ecosystem/errors/entry.html +0 -12
  209. package/test/declarative/fixtures/ecosystem/errors/fast-build.config.json +0 -6
  210. package/test/declarative/fixtures/ecosystem/errors/index.html +0 -20
  211. package/test/declarative/fixtures/ecosystem/errors/main.ts +0 -17
  212. package/test/declarative/fixtures/ecosystem/errors/state.json +0 -1
  213. package/test/declarative/fixtures/ecosystem/errors/templates.html +0 -7
  214. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/entry.html +0 -17
  215. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/fast-build.config.json +0 -6
  216. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/index.html +0 -56
  217. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/main.ts +0 -134
  218. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/state.json +0 -12
  219. package/test/declarative/fixtures/ecosystem/lifecycle-callbacks/templates.html +0 -34
  220. package/test/declarative/fixtures/ecosystem/performance-metrics/entry.html +0 -25
  221. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-build.config.json +0 -6
  222. package/test/declarative/fixtures/ecosystem/performance-metrics/fast-card.css +0 -10
  223. package/test/declarative/fixtures/ecosystem/performance-metrics/index.html +0 -181
  224. package/test/declarative/fixtures/ecosystem/performance-metrics/main.ts +0 -58
  225. package/test/declarative/fixtures/ecosystem/performance-metrics/state.json +0 -6
  226. package/test/declarative/fixtures/ecosystem/performance-metrics/templates.html +0 -15
  227. package/test/declarative/fixtures/extensions/README.md +0 -15
  228. package/test/declarative/fixtures/extensions/attribute-map/entry.html +0 -14
  229. package/test/declarative/fixtures/extensions/attribute-map/fast-build.config.json +0 -6
  230. package/test/declarative/fixtures/extensions/attribute-map/index.html +0 -31
  231. package/test/declarative/fixtures/extensions/attribute-map/main.ts +0 -40
  232. package/test/declarative/fixtures/extensions/attribute-map/state.json +0 -4
  233. package/test/declarative/fixtures/extensions/attribute-map/templates.html +0 -14
  234. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/entry.html +0 -12
  235. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/fast-build.config.json +0 -7
  236. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/index.html +0 -25
  237. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/main.ts +0 -31
  238. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/state.json +0 -5
  239. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy/templates.html +0 -11
  240. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/entry.html +0 -13
  241. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/fast-build.config.json +0 -7
  242. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/index.html +0 -23
  243. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/main.ts +0 -37
  244. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/state.json +0 -1
  245. package/test/declarative/fixtures/extensions/attribute-map-naming-strategy-camel-case/templates.html +0 -9
  246. package/test/declarative/fixtures/extensions/observer-map/entry.html +0 -15
  247. package/test/declarative/fixtures/extensions/observer-map/fast-build.config.json +0 -6
  248. package/test/declarative/fixtures/extensions/observer-map/index.html +0 -442
  249. package/test/declarative/fixtures/extensions/observer-map/main.ts +0 -482
  250. package/test/declarative/fixtures/extensions/observer-map/state.json +0 -158
  251. package/test/declarative/fixtures/extensions/observer-map/templates.html +0 -172
  252. package/test/declarative/fixtures/extensions/observer-map-config-object/entry.html +0 -16
  253. package/test/declarative/fixtures/extensions/observer-map-config-object/fast-build.config.json +0 -6
  254. package/test/declarative/fixtures/extensions/observer-map-config-object/index.html +0 -27
  255. package/test/declarative/fixtures/extensions/observer-map-config-object/main.ts +0 -53
  256. package/test/declarative/fixtures/extensions/observer-map-config-object/state.json +0 -9
  257. package/test/declarative/fixtures/extensions/observer-map-config-object/templates.html +0 -12
  258. package/test/declarative/fixtures/extensions/observer-map-deep-merge/README.md +0 -98
  259. package/test/declarative/fixtures/extensions/observer-map-deep-merge/entry.html +0 -156
  260. package/test/declarative/fixtures/extensions/observer-map-deep-merge/fast-build.config.json +0 -6
  261. package/test/declarative/fixtures/extensions/observer-map-deep-merge/index.html +0 -376
  262. package/test/declarative/fixtures/extensions/observer-map-deep-merge/main.ts +0 -366
  263. package/test/declarative/fixtures/extensions/observer-map-deep-merge/state.json +0 -69
  264. package/test/declarative/fixtures/extensions/observer-map-deep-merge/templates.html +0 -91
  265. package/test/declarative/fixtures/extensions/observer-map-properties/entry.html +0 -14
  266. package/test/declarative/fixtures/extensions/observer-map-properties/fast-build.config.json +0 -6
  267. package/test/declarative/fixtures/extensions/observer-map-properties/index.html +0 -110
  268. package/test/declarative/fixtures/extensions/observer-map-properties/main.ts +0 -175
  269. package/test/declarative/fixtures/extensions/observer-map-properties/state.json +0 -29
  270. package/test/declarative/fixtures/extensions/observer-map-properties/templates.html +0 -55
  271. package/test/declarative/fixtures/scenarios/README.md +0 -7
  272. package/test/declarative/fixtures/scenarios/nested-elements/entry.html +0 -16
  273. package/test/declarative/fixtures/scenarios/nested-elements/fast-build.config.json +0 -6
  274. package/test/declarative/fixtures/scenarios/nested-elements/index.html +0 -126
  275. package/test/declarative/fixtures/scenarios/nested-elements/main.ts +0 -214
  276. package/test/declarative/fixtures/scenarios/nested-elements/state.json +0 -10
  277. package/test/declarative/fixtures/scenarios/nested-elements/templates.html +0 -54
  278. package/test/declarative/index.html +0 -12
  279. package/test/declarative/vite.config.ts +0 -55
  280. package/test/declarative-main.ts +0 -6
  281. package/test/extension-subpaths-main.ts +0 -9
  282. package/test/index.html +0 -11
  283. package/test/main.ts +0 -109
  284. package/test/pure-declarative-main.ts +0 -1
  285. package/test/vite.config.ts +0 -19
  286. package/tsconfig.api-extractor.json +0 -6
@@ -1,134 +0,0 @@
1
- import { attr } from "@microsoft/fast-element/attr.js";
2
- import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
3
- import { FASTElement } from "@microsoft/fast-element/fast-element.js";
4
- import { enableHydration } from "@microsoft/fast-element/hydration.js";
5
- import { observable } from "@microsoft/fast-element/observable.js";
6
- import { observerMap } from "@microsoft/fast-element/observer-map.js";
7
-
8
- // Track lifecycle callbacks for testing
9
- export const lifecycleEvents: Array<{ callback: string; name?: string }> = [];
10
-
11
- // Enable hydration with global callback
12
- enableHydration({
13
- hydrationComplete(): void {
14
- lifecycleEvents.push({ callback: "hydrationComplete" });
15
- (window as any).hydrationCompleted = true;
16
- },
17
- });
18
-
19
- // Per-element lifecycle callbacks
20
- const lifecycleCallbacks = {
21
- elementDidRegister(name: string): void {
22
- lifecycleEvents.push({ callback: "elementDidRegister", name });
23
- },
24
- templateWillUpdate(name: string): void {
25
- lifecycleEvents.push({ callback: "templateWillUpdate", name });
26
- },
27
- templateDidUpdate(name: string): void {
28
- lifecycleEvents.push({ callback: "templateDidUpdate", name });
29
- },
30
- elementDidDefine(name: string): void {
31
- lifecycleEvents.push({ callback: "elementDidDefine", name });
32
- },
33
- };
34
-
35
- // Simple element with basic property
36
- class SimpleElement extends FASTElement {
37
- @attr
38
- message: string = "Hello";
39
- }
40
-
41
- SimpleElement.define({
42
- name: "simple-element",
43
- template: declarativeTemplate(lifecycleCallbacks),
44
- });
45
-
46
- // Complex element with multiple properties and methods
47
- class ComplexElement extends FASTElement {
48
- @attr
49
- title: string = "Complex";
50
-
51
- @observable
52
- count: number = 0;
53
-
54
- @observable
55
- items: string[] = [];
56
-
57
- increment() {
58
- this.count++;
59
- }
60
-
61
- addItem(item: string) {
62
- this.items = [...this.items, item];
63
- }
64
- }
65
-
66
- ComplexElement.define(
67
- {
68
- name: "complex-element",
69
- template: declarativeTemplate(lifecycleCallbacks),
70
- },
71
- [observerMap()],
72
- );
73
-
74
- // Nested element
75
- class NestedElement extends FASTElement {
76
- @attr
77
- label: string = "Nested";
78
- }
79
-
80
- NestedElement.define({
81
- name: "nested-element",
82
- template: declarativeTemplate(lifecycleCallbacks),
83
- });
84
-
85
- // Element with deferred hydration
86
- class DeferredElement extends FASTElement {
87
- @attr
88
- status: string = "pending";
89
-
90
- connectedCallback() {
91
- super.connectedCallback();
92
- // Simulate async work
93
- setTimeout(() => {
94
- this.status = "ready";
95
- }, 100);
96
- }
97
- }
98
-
99
- DeferredElement.define({
100
- name: "deferred-element",
101
- template: declarativeTemplate(lifecycleCallbacks),
102
- });
103
-
104
- // Nested deferred elements to verify parent-first hydration
105
- class DeferredParentElement extends FASTElement {
106
- @attr
107
- label: string = "Parent";
108
-
109
- connectedCallback() {
110
- super.connectedCallback();
111
- }
112
- }
113
-
114
- DeferredParentElement.define({
115
- name: "deferred-parent-element",
116
- template: declarativeTemplate(lifecycleCallbacks),
117
- });
118
-
119
- class DeferredChildElement extends FASTElement {
120
- @attr
121
- label: string = "Child";
122
-
123
- connectedCallback() {
124
- super.connectedCallback();
125
- }
126
- }
127
-
128
- DeferredChildElement.define({
129
- name: "deferred-child-element",
130
- template: declarativeTemplate(lifecycleCallbacks),
131
- });
132
-
133
- // Make lifecycleEvents available globally for testing
134
- (window as any).lifecycleEvents = lifecycleEvents;
@@ -1,12 +0,0 @@
1
- {
2
- "message": "Hello",
3
- "title": "Complex",
4
- "status": "pending",
5
- "label": "Parent",
6
- "simpleMessage": "Hello",
7
- "complexTitle": "Complex",
8
- "count": 0,
9
- "deferredStatus": "pending",
10
- "parentLabel": "Parent",
11
- "childLabel": "Child"
12
- }
@@ -1,34 +0,0 @@
1
- <f-template name="simple-element">
2
- <template>{{message}} World</template>
3
- </f-template>
4
-
5
- <f-template name="complex-element">
6
- <template>
7
- <div>
8
- <h2>{{title}}</h2>
9
- <p>Count: {{count}}</p>
10
- <nested-element label="{{title}}"></nested-element>
11
- </div>
12
- </template>
13
- </f-template>
14
-
15
- <f-template name="nested-element">
16
- <template><span>{{label}}</span></template>
17
- </f-template>
18
-
19
- <f-template name="deferred-element">
20
- <template><p>Status: {{status}}</p></template>
21
- </f-template>
22
-
23
- <f-template name="deferred-parent-element">
24
- <template>
25
- <section>
26
- <p>{{label}}</p>
27
- <deferred-child-element label="{{label}}"></deferred-child-element>
28
- </section>
29
- </template>
30
- </f-template>
31
-
32
- <f-template name="deferred-child-element">
33
- <template><span>{{label}}</span></template>
34
- </f-template>
@@ -1,25 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en-US">
3
- <head>
4
- <meta charset="utf-8">
5
- <title>Performance Metrics Test</title>
6
- <link rel="preload" as="style" href="./fast-card.css" />
7
- </head>
8
- <body>
9
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"></fast-card>
10
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"></fast-card>
11
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"></fast-card>
12
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"></fast-card>
13
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"></fast-card>
14
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"></fast-card>
15
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"></fast-card>
16
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"></fast-card>
17
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"></fast-card>
18
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"></fast-card>
19
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"></fast-card>
20
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"></fast-card>
21
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"></fast-card>
22
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"></fast-card>
23
- <script type="module" src="./main.ts"></script>
24
- </body>
25
- </html>
@@ -1,6 +0,0 @@
1
- {
2
- "entry": "entry.html",
3
- "state": "state.json",
4
- "output": "index.html",
5
- "templates": "templates.html"
6
- }
@@ -1,10 +0,0 @@
1
- :host {
2
- display: inline-block;
3
- width: 200px;
4
- height: 200px;
5
- border: 1px solid #ccc;
6
-
7
- dd {
8
- display: inline-block;
9
- }
10
- }
@@ -1,181 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en-US">
3
- <head>
4
- <meta charset="utf-8">
5
- <title>Performance Metrics Test</title>
6
- <link rel="preload" as="style" href="./fast-card.css" />
7
- </head>
8
- <body>
9
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
10
- <dl>
11
- <dt>Configured Delay</dt>
12
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
13
- <dt>Element Will Hydrate</dt>
14
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
15
- <dt>Element Did Hydrate</dt>
16
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
17
- <dt>Element Hydration Duration</dt>
18
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
19
- </dl></template></fast-card>
20
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
21
- <dl>
22
- <dt>Configured Delay</dt>
23
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
24
- <dt>Element Will Hydrate</dt>
25
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
26
- <dt>Element Did Hydrate</dt>
27
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
28
- <dt>Element Hydration Duration</dt>
29
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
30
- </dl></template></fast-card>
31
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
32
- <dl>
33
- <dt>Configured Delay</dt>
34
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
35
- <dt>Element Will Hydrate</dt>
36
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
37
- <dt>Element Did Hydrate</dt>
38
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
39
- <dt>Element Hydration Duration</dt>
40
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
41
- </dl></template></fast-card>
42
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
43
- <dl>
44
- <dt>Configured Delay</dt>
45
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
46
- <dt>Element Will Hydrate</dt>
47
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
48
- <dt>Element Did Hydrate</dt>
49
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
50
- <dt>Element Hydration Duration</dt>
51
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
52
- </dl></template></fast-card>
53
- <fast-card needs-hydration defer-hydration defer-delay="0" displayDelay="0ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
54
- <dl>
55
- <dt>Configured Delay</dt>
56
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
57
- <dt>Element Will Hydrate</dt>
58
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
59
- <dt>Element Did Hydrate</dt>
60
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
61
- <dt>Element Hydration Duration</dt>
62
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
63
- </dl></template></fast-card>
64
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
65
- <dl>
66
- <dt>Configured Delay</dt>
67
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
68
- <dt>Element Will Hydrate</dt>
69
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
70
- <dt>Element Did Hydrate</dt>
71
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
72
- <dt>Element Hydration Duration</dt>
73
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
74
- </dl></template></fast-card>
75
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
76
- <dl>
77
- <dt>Configured Delay</dt>
78
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
79
- <dt>Element Will Hydrate</dt>
80
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
81
- <dt>Element Did Hydrate</dt>
82
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
83
- <dt>Element Hydration Duration</dt>
84
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
85
- </dl></template></fast-card>
86
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
87
- <dl>
88
- <dt>Configured Delay</dt>
89
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
90
- <dt>Element Will Hydrate</dt>
91
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
92
- <dt>Element Did Hydrate</dt>
93
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
94
- <dt>Element Hydration Duration</dt>
95
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
96
- </dl></template></fast-card>
97
- <fast-card needs-hydration defer-hydration defer-delay="150" displayDelay="150ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
98
- <dl>
99
- <dt>Configured Delay</dt>
100
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
101
- <dt>Element Will Hydrate</dt>
102
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
103
- <dt>Element Did Hydrate</dt>
104
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
105
- <dt>Element Hydration Duration</dt>
106
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
107
- </dl></template></fast-card>
108
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
109
- <dl>
110
- <dt>Configured Delay</dt>
111
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
112
- <dt>Element Will Hydrate</dt>
113
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
114
- <dt>Element Did Hydrate</dt>
115
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
116
- <dt>Element Hydration Duration</dt>
117
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
118
- </dl></template></fast-card>
119
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
120
- <dl>
121
- <dt>Configured Delay</dt>
122
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
123
- <dt>Element Will Hydrate</dt>
124
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
125
- <dt>Element Did Hydrate</dt>
126
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
127
- <dt>Element Hydration Duration</dt>
128
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
129
- </dl></template></fast-card>
130
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
131
- <dl>
132
- <dt>Configured Delay</dt>
133
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
134
- <dt>Element Will Hydrate</dt>
135
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
136
- <dt>Element Did Hydrate</dt>
137
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
138
- <dt>Element Hydration Duration</dt>
139
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
140
- </dl></template></fast-card>
141
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
142
- <dl>
143
- <dt>Configured Delay</dt>
144
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
145
- <dt>Element Will Hydrate</dt>
146
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
147
- <dt>Element Did Hydrate</dt>
148
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
149
- <dt>Element Hydration Duration</dt>
150
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
151
- </dl></template></fast-card>
152
- <fast-card needs-hydration defer-hydration defer-delay="300" displayDelay="300ms"><template shadowrootmode="open" shadowroot="open"><link rel="stylesheet" href="./fast-card.css" />
153
- <dl>
154
- <dt>Configured Delay</dt>
155
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
156
- <dt>Element Will Hydrate</dt>
157
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
158
- <dt>Element Did Hydrate</dt>
159
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
160
- <dt>Element Hydration Duration</dt>
161
- <dd><!--fe:b-->0ms<!--fe:/b--></dd>
162
- </dl></template></fast-card>
163
- <f-template name="fast-card">
164
- <template>
165
- <link rel="stylesheet" href="./fast-card.css" />
166
- <dl>
167
- <dt>Configured Delay</dt>
168
- <dd>{{displayDelay}}</dd>
169
- <dt>Element Will Hydrate</dt>
170
- <dd>{{willHydrate}}</dd>
171
- <dt>Element Did Hydrate</dt>
172
- <dd>{{didHydrate}}</dd>
173
- <dt>Element Hydration Duration</dt>
174
- <dd>{{hydrationDuration}}</dd>
175
- </dl>
176
- </template>
177
- </f-template>
178
-
179
- <script type="module" src="./main.ts"></script>
180
- </body>
181
- </html>
@@ -1,58 +0,0 @@
1
- import { attr } from "@microsoft/fast-element/attr.js";
2
- import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
3
- import { FASTElement } from "@microsoft/fast-element/fast-element.js";
4
- import { enableHydration } from "@microsoft/fast-element/hydration.js";
5
- import { volatile } from "@microsoft/fast-element/volatile.js";
6
-
7
- let markSequence = 0;
8
-
9
- // Enable hydration with global start/complete callbacks
10
- enableHydration({
11
- hydrationStarted(): void {
12
- performance.mark("hydration:started", { detail: { sequence: markSequence++ } });
13
- },
14
- hydrationComplete(): void {
15
- performance.measure("hydration:complete", "hydration:started");
16
- (window as any).hydrationCompleted = true;
17
- },
18
- });
19
-
20
- class FastCard extends FASTElement {
21
- @attr({ attribute: "defer-delay" })
22
- deferDelay!: number;
23
-
24
- @volatile
25
- get displayDelay(): string {
26
- return `${(this.deferDelay ?? 0).toString()}ms`;
27
- }
28
- }
29
-
30
- FastCard.define({
31
- name: "fast-card",
32
- template: declarativeTemplate({
33
- templateWillUpdate(name: string) {
34
- performance.mark(`template-update:${name}:start`, {
35
- detail: { sequence: markSequence++ },
36
- });
37
- },
38
-
39
- templateDidUpdate(name) {
40
- performance.measure(
41
- `template-update:${name}`,
42
- `template-update:${name}:start`,
43
- );
44
- },
45
-
46
- elementDidDefine(name) {
47
- performance.mark(`element-define:${name}`, {
48
- detail: { sequence: markSequence++ },
49
- });
50
- },
51
-
52
- elementDidRegister(name) {
53
- performance.mark(`element-register:${name}`, {
54
- detail: { sequence: markSequence++ },
55
- });
56
- },
57
- }),
58
- });
@@ -1,6 +0,0 @@
1
- {
2
- "displayDelay": "0ms",
3
- "willHydrate": "0ms",
4
- "didHydrate": "0ms",
5
- "hydrationDuration": "0ms"
6
- }
@@ -1,15 +0,0 @@
1
- <f-template name="fast-card">
2
- <template>
3
- <link rel="stylesheet" href="./fast-card.css" />
4
- <dl>
5
- <dt>Configured Delay</dt>
6
- <dd>{{displayDelay}}</dd>
7
- <dt>Element Will Hydrate</dt>
8
- <dd>{{willHydrate}}</dd>
9
- <dt>Element Did Hydrate</dt>
10
- <dd>{{didHydrate}}</dd>
11
- <dt>Element Hydration Duration</dt>
12
- <dd>{{hydrationDuration}}</dd>
13
- </dl>
14
- </template>
15
- </f-template>
@@ -1,15 +0,0 @@
1
- # Extensions
2
-
3
- Fixtures for additional functionality that augments the core declarative FAST
4
- Element behavior beyond developer direct configuration, such as automatic
5
- attribute mapping and deep property observation.
6
-
7
- | Fixture | Description |
8
- |---|---|
9
- | `attribute-map` | Automatic attribute mapping enabled with the `attributeMap()` definition extension. |
10
- | `attribute-map-naming-strategy` | The `attributeMap({ "attribute-name-strategy": "camelCase" })` definition extension for mapping HTML attribute names to property names. |
11
- | `attribute-map-naming-strategy-camel-case` | Explicit `@attr` decorator behavior with `camelCase` attribute name strategy in the build configuration. |
12
- | `observer-map` | Automatic deep reactive observation enabled with the `observerMap()` definition extension. |
13
- | `observer-map-config-object` | Explicit non-default configuration objects applied via `observerMap(...)` and `attributeMap(...)` definition extensions. |
14
- | `observer-map-deep-merge` | Nested object merging behavior for complex state structures. |
15
- | `observer-map-properties` | Selective property observation using `observerMap({ properties: {...} })` for fine-grained control. |
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en-US">
3
- <head>
4
- <meta charset="utf-8">
5
- <title></title>
6
- </head>
7
- <body>
8
- <attribute-map-test-element id="test-element"></attribute-map-test-element>
9
- <attribute-map-existing-attr-test-element
10
- id="existing-attr-test-element"
11
- ></attribute-map-existing-attr-test-element>
12
- <script type="module" src="./main.ts"></script>
13
- </body>
14
- </html>
@@ -1,6 +0,0 @@
1
- {
2
- "entry": "entry.html",
3
- "state": "state.json",
4
- "output": "index.html",
5
- "templates": "templates.html"
6
- }
@@ -1,31 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en-US">
3
- <head>
4
- <meta charset="utf-8">
5
- <title></title>
6
- </head>
7
- <body>
8
- <attribute-map-test-element id="test-element"><template shadowrootmode="open" shadowroot="open"><div class="foo-value"><!--fe:b--><!--fe:/b--></div>
9
- <div class="foo-bar-value"><!--fe:b--><!--fe:/b--></div>
10
- <button type="button" data-fe="1">Set Foo</button>
11
- <button type="button" data-fe="1">Set FooBar</button>
12
- <button type="button" data-fe="1">Set Multiple</button></template></attribute-map-test-element>
13
- <attribute-map-existing-attr-test-element id="existing-attr-test-element"><template shadowrootmode="open" shadowroot="open"><div class="existing-foo-value"><!--fe:b--><!--fe:/b--></div></template></attribute-map-existing-attr-test-element>
14
- <f-template name="attribute-map-test-element">
15
- <template>
16
- <div class="foo-value">{{foo}}</div>
17
- <div class="foo-bar-value">{{foo-bar}}</div>
18
- <button type="button" @click="{setFoo()}">Set Foo</button>
19
- <button type="button" @click="{setFooBar()}">Set FooBar</button>
20
- <button type="button" @click="{setMultiple()}">Set Multiple</button>
21
- </template>
22
- </f-template>
23
- <f-template name="attribute-map-existing-attr-test-element">
24
- <template>
25
- <div class="existing-foo-value">{{foo}}</div>
26
- </template>
27
- </f-template>
28
-
29
- <script type="module" src="./main.ts"></script>
30
- </body>
31
- </html>
@@ -1,40 +0,0 @@
1
- import { attr } from "@microsoft/fast-element/attr.js";
2
- import { attributeMap } from "@microsoft/fast-element/attribute-map.js";
3
- import { declarativeTemplate } from "@microsoft/fast-element/declarative.js";
4
- import { FASTElement } from "@microsoft/fast-element/fast-element.js";
5
-
6
- class AttributeMapTestElement extends FASTElement {
7
- public setFoo() {
8
- (this as any).foo = "hello";
9
- }
10
-
11
- public setFooBar() {
12
- (this as any)["foo-bar"] = "world";
13
- }
14
-
15
- public setMultiple() {
16
- (this as any).foo = "updated";
17
- (this as any)["foo-bar"] = "also-updated";
18
- }
19
- }
20
-
21
- AttributeMapTestElement.define(
22
- {
23
- name: "attribute-map-test-element",
24
- template: declarativeTemplate(),
25
- },
26
- [attributeMap()],
27
- );
28
-
29
- class AttributeMapWithExistingAttrElement extends FASTElement {
30
- @attr
31
- foo: string = "original";
32
- }
33
-
34
- AttributeMapWithExistingAttrElement.define(
35
- {
36
- name: "attribute-map-existing-attr-test-element",
37
- template: declarativeTemplate(),
38
- },
39
- [attributeMap()],
40
- );
@@ -1,4 +0,0 @@
1
- {
2
- "foo": "",
3
- "foo-bar": ""
4
- }
@@ -1,14 +0,0 @@
1
- <f-template name="attribute-map-test-element">
2
- <template>
3
- <div class="foo-value">{{foo}}</div>
4
- <div class="foo-bar-value">{{foo-bar}}</div>
5
- <button type="button" @click="{setFoo()}">Set Foo</button>
6
- <button type="button" @click="{setFooBar()}">Set FooBar</button>
7
- <button type="button" @click="{setMultiple()}">Set Multiple</button>
8
- </template>
9
- </f-template>
10
- <f-template name="attribute-map-existing-attr-test-element">
11
- <template>
12
- <div class="existing-foo-value">{{foo}}</div>
13
- </template>
14
- </f-template>
@@ -1,12 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en-US">
3
- <head>
4
- <meta charset="utf-8">
5
- <title></title>
6
- </head>
7
- <body>
8
- <naming-strategy-test id="test-element" foo-bar="{{fooBar}}" my-custom-prop="{{myCustomProp}}"></naming-strategy-test>
9
- <naming-strategy-no-dash-test id="no-dash-test" label="{{label}}"></naming-strategy-no-dash-test>
10
- <script type="module" src="./main.ts"></script>
11
- </body>
12
- </html>
@@ -1,7 +0,0 @@
1
- {
2
- "entry": "entry.html",
3
- "state": "state.json",
4
- "output": "index.html",
5
- "templates": "templates.html",
6
- "attribute-name-strategy": "camelCase"
7
- }