ember-source 7.2.0-alpha.4 → 7.2.0-beta.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 (326) hide show
  1. package/blueprints/-addon-import.js +4 -6
  2. package/blueprints/-utils.js +6 -9
  3. package/build-metadata.json +3 -3
  4. package/dist/dev/packages/@ember/-internals/browser-environment/index.js +1 -1
  5. package/dist/dev/packages/@ember/-internals/glimmer/index.js +11 -11
  6. package/dist/dev/packages/@ember/-internals/metal/index.js +18 -18
  7. package/dist/dev/packages/@ember/-internals/routing/index.js +3 -3
  8. package/dist/dev/packages/@ember/-internals/runtime/index.js +1 -1
  9. package/dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  10. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +7 -7
  11. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
  12. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  13. package/dist/dev/packages/@ember/-internals/utils/index.js +2 -2
  14. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
  15. package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
  16. package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  17. package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
  18. package/dist/dev/packages/@ember/application/index.js +6 -7
  19. package/dist/dev/packages/@ember/application/instance.js +4 -4
  20. package/dist/dev/packages/@ember/application/namespace.js +3 -3
  21. package/dist/dev/packages/@ember/array/index.js +10 -64
  22. package/dist/dev/packages/@ember/array/lib/is-array.js +71 -0
  23. package/dist/dev/packages/@ember/array/proxy.js +8 -8
  24. package/dist/dev/packages/@ember/component/helper.js +1 -1
  25. package/dist/dev/packages/@ember/component/index.js +21 -15
  26. package/dist/dev/packages/@ember/component/template-only.js +1 -1
  27. package/dist/dev/packages/@ember/controller/index.js +3 -3
  28. package/dist/dev/packages/@ember/debug/data-adapter.js +3 -3
  29. package/dist/dev/packages/@ember/debug/index.js +1 -1
  30. package/dist/dev/packages/@ember/engine/index.js +5 -5
  31. package/dist/dev/packages/@ember/engine/instance.js +2 -2
  32. package/dist/dev/packages/@ember/helper/index.js +8 -27
  33. package/dist/dev/packages/@ember/modifier/index.js +2 -2
  34. package/dist/dev/packages/@ember/modifier/on.js +1 -1
  35. package/dist/dev/packages/@ember/object/-internals.js +2 -2
  36. package/dist/dev/packages/@ember/object/compat.js +3 -3
  37. package/dist/dev/packages/@ember/object/computed.js +2 -2
  38. package/dist/dev/packages/@ember/object/core.js +7 -7
  39. package/dist/dev/packages/@ember/object/evented.js +2 -2
  40. package/dist/dev/packages/@ember/object/events.js +1 -1
  41. package/dist/dev/packages/@ember/object/index.js +30 -25
  42. package/dist/dev/packages/@ember/object/internals.js +1 -1
  43. package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +5 -5
  44. package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -3
  45. package/dist/dev/packages/@ember/object/mixin.js +6 -6
  46. package/dist/dev/packages/@ember/object/observable.js +7 -7
  47. package/dist/dev/packages/@ember/object/observers.js +1 -1
  48. package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -3
  49. package/dist/dev/packages/@ember/reactive/collections.js +153 -153
  50. package/dist/dev/packages/@ember/renderer/index.js +1 -1
  51. package/dist/dev/packages/@ember/routing/-internals.js +3 -3
  52. package/dist/dev/packages/@ember/routing/index.js +12 -8
  53. package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -3
  54. package/dist/dev/packages/@ember/routing/lib/routing-service.js +5 -5
  55. package/dist/dev/packages/@ember/routing/lib/utils.js +3 -3
  56. package/dist/dev/packages/@ember/routing/route.js +12 -12
  57. package/dist/dev/packages/@ember/routing/router-service.js +25 -18
  58. package/dist/dev/packages/@ember/routing/router.js +5 -5
  59. package/dist/dev/packages/@ember/runloop/index.js +1 -1
  60. package/dist/dev/packages/@ember/service/index.js +1 -1
  61. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  62. package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -2
  63. package/dist/dev/packages/@ember/template-factory/index.js +1 -1
  64. package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -1
  65. package/dist/dev/packages/@glimmer/encoder/index.js +1 -1
  66. package/dist/dev/packages/@glimmer/manager/index.js +4 -4
  67. package/dist/dev/packages/@glimmer/node/index.js +3 -3
  68. package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -2
  69. package/dist/dev/packages/@glimmer/program/index.js +10 -10
  70. package/dist/dev/packages/@glimmer/reference/index.js +5 -5
  71. package/dist/dev/packages/@glimmer/runtime/index.js +13 -13
  72. package/dist/dev/packages/@glimmer/tracking/index.js +2 -2
  73. package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
  74. package/dist/dev/packages/@glimmer/util/index.js +4 -4
  75. package/dist/dev/packages/@glimmer/validator/index.js +3 -3
  76. package/dist/dev/packages/@glimmer/vm/index.js +2 -2
  77. package/dist/dev/packages/ember/version.js +1 -1
  78. package/dist/dev/packages/ember-template-compiler/index.js +4 -4
  79. package/dist/dev/packages/router_js/index.js +2 -2
  80. package/dist/dev/packages/rsvp/index.js +2281 -1
  81. package/dist/dev/packages/shared-chunks/{alias-RGbDZoAB.js → alias-DpqL1qx6.js} +7 -7
  82. package/dist/dev/packages/shared-chunks/{api-BT9M3UaD.js → api-BlZDPg1n.js} +6 -6
  83. package/dist/dev/packages/shared-chunks/{element-builder-Cl1kHFJE.js → api-C0PAtEgQ.js} +139 -120
  84. package/dist/dev/packages/shared-chunks/{api-DG5kRT-o.js → api-DuLOZMO_.js} +3 -3
  85. package/dist/dev/packages/shared-chunks/{args-proxy-CB0SM6jC.js → args-proxy-CS5Brs3_.js} +2 -2
  86. package/dist/dev/packages/shared-chunks/{untouchable-this-BHdAERUu.js → arguments-CDkbOqTS.js} +236 -236
  87. package/dist/dev/packages/shared-chunks/{array-BMaSKezP.js → array-CVEnNWng.js} +3 -3
  88. package/dist/dev/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
  89. package/dist/dev/packages/shared-chunks/{cache-CeWOBNQg.js → cache-DGDPVCpC.js} +2 -3
  90. package/dist/dev/packages/shared-chunks/{capabilities-CZkuOqqC.js → capabilities-CajW4QjE.js} +1 -1
  91. package/dist/dev/packages/shared-chunks/{chain-tags-DfmU63mS.js → chain-tags-uWSImHzB.js} +4 -4
  92. package/dist/dev/packages/shared-chunks/{collections-DEt-i-8B.js → collections-DPkjqeA3.js} +2 -2
  93. package/dist/dev/packages/shared-chunks/{compiler-DhH2WLpA.js → compiler-QUSl_urU.js} +3 -3
  94. package/dist/dev/packages/shared-chunks/{computed-Daavz6vC.js → computed-BPCtuOxQ.js} +6 -6
  95. package/dist/dev/packages/shared-chunks/{curly-YoYS2vXw.js → curly-Ei5G8jhk.js} +7 -7
  96. package/dist/dev/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
  97. package/dist/dev/packages/shared-chunks/{decorator-DYQwMItS.js → decorator-B5Uh5NFI.js} +1 -1
  98. package/dist/dev/packages/shared-chunks/{element-bBwMD8cw.js → element-BYLB-q7a.js} +5 -3
  99. package/dist/dev/packages/shared-chunks/{events-B1lx9T1I.js → events-6aFVjD4k.js} +1 -1
  100. package/dist/{prod/packages/shared-chunks/flags-B9qxc-pB.js → dev/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
  101. package/dist/dev/packages/shared-chunks/{get-CO3EIWsm.js → get-6I3sjd-I.js} +33 -36
  102. package/dist/{prod/packages/shared-chunks/get_properties-wj_Qmotj.js → dev/packages/shared-chunks/get_properties-Cm2sWt5f.js} +1 -1
  103. package/dist/dev/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
  104. package/dist/dev/packages/shared-chunks/{hash-2-93qikL.js → hash-6NDs_5_f.js} +18 -12
  105. package/dist/dev/packages/shared-chunks/{helper-Bm6EhgSW.js → helper-DIj85_-f.js} +21 -9
  106. package/dist/dev/packages/shared-chunks/{index-dyv6rcBf.js → index-B3pPx1fL.js} +113 -134
  107. package/dist/dev/packages/shared-chunks/{index-DX90CU4L.js → index-BGP1rw3B.js} +1 -1
  108. package/dist/dev/packages/shared-chunks/{index-DkwVSPP5.js → index-DaFzpTIE.js} +10 -9
  109. package/dist/dev/packages/shared-chunks/{injected_property-B075jH6c.js → injected_property-CbBLr5jt.js} +2 -2
  110. package/dist/dev/packages/shared-chunks/{internal-Bpr6ihB_.js → internal-DTOXyEGM.js} +4 -4
  111. package/dist/dev/packages/shared-chunks/{internal-helper-IC87S6iZ.js → internal-helper-CKrni0b_.js} +1 -1
  112. package/dist/dev/packages/shared-chunks/{invoke-Ds0KEfP_.js → invoke-d9sqa50M.js} +3 -3
  113. package/dist/dev/packages/shared-chunks/{libraries-P8Ins5CB.js → libraries-DwffpMGE.js} +1 -1
  114. package/dist/dev/packages/shared-chunks/{meta-Cjo3zQJq.js → meta-BqC7f9Ia.js} +1 -1
  115. package/dist/{prod/packages/shared-chunks/namespace_search-TFdmjK_a.js → dev/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
  116. package/dist/dev/packages/shared-chunks/{normalize-CxG_iVLJ.js → normalize-CKySQVU7.js} +2 -2
  117. package/dist/dev/packages/shared-chunks/{or-Bg6rCMF8.js → not-DYh6AY9Z.js} +36 -36
  118. package/dist/dev/packages/shared-chunks/{observers-CejcZw5s.js → observers-DMlX2nCi.js} +5 -5
  119. package/dist/dev/packages/shared-chunks/{on-Ch_lyozr.js → on-DlF0Wy7P.js} +10 -10
  120. package/dist/dev/packages/shared-chunks/{present-D0EfKzC6.js → present-B1rrjAVM.js} +1 -1
  121. package/dist/{prod/packages/shared-chunks/program-CF651Zuj.js → dev/packages/shared-chunks/program-DlgjqLa6.js} +3 -3
  122. package/dist/dev/packages/shared-chunks/{program-context-BaYVr5GA.js → program-context-Dq8xN2HI.js} +5 -4
  123. package/dist/dev/packages/shared-chunks/{property_get-BjbsrgpU.js → property_get-CRP7MFz_.js} +3 -3
  124. package/dist/dev/packages/shared-chunks/{property_set-LJskl202.js → property_set-qCUylPEK.js} +3 -3
  125. package/dist/dev/packages/shared-chunks/{reference-C-OXd_kp.js → reference-BqOLhKFy.js} +3 -3
  126. package/dist/dev/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
  127. package/dist/dev/packages/shared-chunks/{rehydrate-builder-IH4d_JQy.js → rehydrate-builder-C6k1XhET.js} +4 -4
  128. package/dist/dev/packages/shared-chunks/{render-Dz3OWqXy.js → render-87_sKZ_k.js} +94 -94
  129. package/dist/dev/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp.es-DR7yS7qg.js} +150 -154
  130. package/dist/dev/packages/shared-chunks/{serialize-builder-DKliZPPG.js → serialize-builder-BlxBjwO-.js} +2 -2
  131. package/dist/dev/packages/shared-chunks/{set_properties-CNds2HCH.js → set_properties-C4TSebH6.js} +2 -2
  132. package/dist/dev/packages/shared-chunks/{setup-registry-C_YovxNX.js → setup-registry-9DCmHTFF.js} +18 -18
  133. package/dist/{prod/packages/shared-chunks/simple-cast-BXTrayoV.js → dev/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  134. package/dist/{prod/packages/shared-chunks/super-D4qkU4uq.js → dev/packages/shared-chunks/super-BBBjgF69.js} +1 -1
  135. package/dist/{prod/packages/shared-chunks/syscall-ops-nrBHMOTp.js → dev/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
  136. package/dist/dev/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
  137. package/dist/dev/packages/shared-chunks/{template-only-BxYzSEnC.js → template-only-Cu639ICT.js} +2 -4
  138. package/dist/dev/packages/shared-chunks/{textarea-DHjEFpZu.js → textarea-C4lYkaHj.js} +12 -8
  139. package/dist/dev/packages/shared-chunks/{tracked-B76E1nGz.js → tracked-DEyf0T_X.js} +5 -5
  140. package/dist/dev/packages/shared-chunks/{tracked-data-CH1USZZy.js → tracked-data-DgqqRdYO.js} +2 -2
  141. package/dist/dev/packages/shared-chunks/{unique-id-Hd96VZlE.js → unique-id-DQOhouG1.js} +2 -2
  142. package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BQdkjTtZ.js → unrecognized-url-error-BJHjL30Q.js} +2 -2
  143. package/dist/{prod/packages/shared-chunks/vm-ops-5QCUIRx4.js → dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
  144. package/dist/prod/packages/@ember/-internals/glimmer/index.js +11 -11
  145. package/dist/prod/packages/@ember/-internals/metal/index.js +18 -18
  146. package/dist/prod/packages/@ember/-internals/routing/index.js +3 -3
  147. package/dist/prod/packages/@ember/-internals/runtime/index.js +1 -1
  148. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  149. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +7 -7
  150. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
  151. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  152. package/dist/prod/packages/@ember/-internals/utils/index.js +2 -2
  153. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
  154. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
  155. package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  156. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
  157. package/dist/prod/packages/@ember/application/index.js +5 -6
  158. package/dist/prod/packages/@ember/application/instance.js +4 -4
  159. package/dist/prod/packages/@ember/application/namespace.js +3 -3
  160. package/dist/prod/packages/@ember/array/index.js +11 -58
  161. package/dist/prod/packages/@ember/array/lib/is-array.js +64 -0
  162. package/dist/prod/packages/@ember/array/proxy.js +8 -8
  163. package/dist/prod/packages/@ember/component/helper.js +1 -1
  164. package/dist/prod/packages/@ember/component/index.js +20 -14
  165. package/dist/prod/packages/@ember/component/template-only.js +1 -1
  166. package/dist/prod/packages/@ember/controller/index.js +3 -3
  167. package/dist/prod/packages/@ember/debug/data-adapter.js +3 -3
  168. package/dist/prod/packages/@ember/engine/index.js +5 -5
  169. package/dist/prod/packages/@ember/engine/instance.js +2 -2
  170. package/dist/prod/packages/@ember/helper/index.js +8 -27
  171. package/dist/prod/packages/@ember/modifier/index.js +2 -2
  172. package/dist/prod/packages/@ember/modifier/on.js +1 -1
  173. package/dist/prod/packages/@ember/object/-internals.js +2 -2
  174. package/dist/prod/packages/@ember/object/compat.js +3 -3
  175. package/dist/prod/packages/@ember/object/computed.js +2 -2
  176. package/dist/prod/packages/@ember/object/core.js +7 -7
  177. package/dist/prod/packages/@ember/object/evented.js +2 -2
  178. package/dist/prod/packages/@ember/object/events.js +1 -1
  179. package/dist/prod/packages/@ember/object/index.js +30 -25
  180. package/dist/prod/packages/@ember/object/internals.js +2 -2
  181. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +4 -4
  182. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -2
  183. package/dist/prod/packages/@ember/object/mixin.js +6 -6
  184. package/dist/prod/packages/@ember/object/observable.js +7 -7
  185. package/dist/prod/packages/@ember/object/observers.js +1 -1
  186. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -3
  187. package/dist/prod/packages/@ember/reactive/collections.js +153 -153
  188. package/dist/prod/packages/@ember/renderer/index.js +1 -1
  189. package/dist/prod/packages/@ember/routing/index.js +12 -8
  190. package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -2
  191. package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -4
  192. package/dist/prod/packages/@ember/routing/lib/utils.js +3 -3
  193. package/dist/prod/packages/@ember/routing/route.js +12 -12
  194. package/dist/prod/packages/@ember/routing/router-service.js +24 -17
  195. package/dist/prod/packages/@ember/routing/router.js +5 -5
  196. package/dist/prod/packages/@ember/runloop/index.js +1 -1
  197. package/dist/prod/packages/@ember/service/index.js +1 -1
  198. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  199. package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -2
  200. package/dist/prod/packages/@ember/template-factory/index.js +1 -1
  201. package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -1
  202. package/dist/prod/packages/@glimmer/encoder/index.js +1 -1
  203. package/dist/prod/packages/@glimmer/manager/index.js +4 -4
  204. package/dist/prod/packages/@glimmer/node/index.js +3 -3
  205. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -2
  206. package/dist/prod/packages/@glimmer/program/index.js +10 -10
  207. package/dist/prod/packages/@glimmer/reference/index.js +5 -5
  208. package/dist/prod/packages/@glimmer/runtime/index.js +13 -13
  209. package/dist/prod/packages/@glimmer/tracking/index.js +2 -2
  210. package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
  211. package/dist/prod/packages/@glimmer/util/index.js +4 -4
  212. package/dist/prod/packages/@glimmer/validator/index.js +3 -3
  213. package/dist/prod/packages/@glimmer/vm/index.js +2 -2
  214. package/dist/prod/packages/ember/version.js +1 -1
  215. package/dist/prod/packages/ember-template-compiler/index.js +4 -4
  216. package/dist/prod/packages/router_js/index.js +2 -2
  217. package/dist/prod/packages/rsvp/index.js +2281 -1
  218. package/dist/prod/packages/shared-chunks/{alias-DsIh-16z.js → alias-Bod6qdNp.js} +7 -7
  219. package/dist/prod/packages/shared-chunks/{api-CGZbGcvX.js → api-B_poQGXS.js} +6 -6
  220. package/dist/prod/packages/shared-chunks/{element-builder-CZePCkbA.js → api-CQexacBn.js} +139 -120
  221. package/dist/prod/packages/shared-chunks/{api-DOLN_cR2.js → api-DlJKfm_f.js} +3 -3
  222. package/dist/prod/packages/shared-chunks/{args-proxy-CaXVcI8G.js → args-proxy-CCoFtYLS.js} +2 -2
  223. package/dist/prod/packages/shared-chunks/{debug-render-tree-CYENUjgX.js → arguments-BzAkZVBa.js} +198 -198
  224. package/dist/prod/packages/shared-chunks/{array-DYFI95FA.js → array-BzReKMeW.js} +3 -3
  225. package/dist/prod/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
  226. package/dist/prod/packages/shared-chunks/{cache-CG6_L9db.js → cache-CofLhaS4.js} +1 -2
  227. package/dist/prod/packages/shared-chunks/{capabilities-_5e35539.js → capabilities-BuVYh-vx.js} +1 -1
  228. package/dist/prod/packages/shared-chunks/{chain-tags-BP0V2LnZ.js → chain-tags-B2J7DsxO.js} +4 -4
  229. package/dist/prod/packages/shared-chunks/{collections-By4M3cTy.js → collections-GpG8lT2g.js} +10 -10
  230. package/dist/prod/packages/shared-chunks/{compiler-DQmEjFyx.js → compiler-lBSssiWp.js} +2 -2
  231. package/dist/prod/packages/shared-chunks/{computed-D6MVTTDd.js → computed-DtIStxvq.js} +6 -6
  232. package/dist/prod/packages/shared-chunks/{curly-DCYSwLtz.js → curly-IY06zACp.js} +7 -7
  233. package/dist/prod/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
  234. package/dist/prod/packages/shared-chunks/{decorator-B8Lpq40g.js → decorator-9ikVwsjY.js} +1 -1
  235. package/dist/prod/packages/shared-chunks/{element-CT5H5uxF.js → element-DgHdPZ8u.js} +5 -3
  236. package/dist/prod/packages/shared-chunks/{events-C7aYCy0N.js → events-DYrYz3V8.js} +1 -1
  237. package/dist/{dev/packages/shared-chunks/flags-B9qxc-pB.js → prod/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
  238. package/dist/prod/packages/shared-chunks/{get-tlL23wmp.js → get-Dago5uGl.js} +33 -36
  239. package/dist/{dev/packages/shared-chunks/get_properties-B203vZpz.js → prod/packages/shared-chunks/get_properties-Dg3xFpiS.js} +1 -1
  240. package/dist/prod/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
  241. package/dist/prod/packages/shared-chunks/{hash-C6IoC4eR.js → hash-gEXIsSO4.js} +24 -18
  242. package/dist/prod/packages/shared-chunks/{helper-CCK8Ef0x.js → helper-DkXiTBjc.js} +21 -9
  243. package/dist/prod/packages/shared-chunks/{index-D-rcNBLp.js → index-Bf53M8eS.js} +9 -8
  244. package/dist/prod/packages/shared-chunks/{index-DabsnYit.js → index-CslMfEpb.js} +110 -131
  245. package/dist/prod/packages/shared-chunks/{injected_property-COGiYHKc.js → injected_property-Y-FadDej.js} +2 -2
  246. package/dist/prod/packages/shared-chunks/{internal-BEJC2IJ-.js → internal-BQ7zHrqS.js} +4 -4
  247. package/dist/prod/packages/shared-chunks/{internal-helper-CoxiRnnb.js → internal-helper-Bz1lpDXr.js} +1 -1
  248. package/dist/prod/packages/shared-chunks/{invoke-D_jsLbsj.js → invoke-DhQ5QRp2.js} +3 -3
  249. package/dist/prod/packages/shared-chunks/{libraries-Bs3H8iwC.js → libraries-DBql0hdn.js} +2 -2
  250. package/dist/prod/packages/shared-chunks/{meta-Ce6-qROq.js → meta-BJtIZDir.js} +1 -1
  251. package/dist/{dev/packages/shared-chunks/namespace_search-TFdmjK_a.js → prod/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
  252. package/dist/prod/packages/shared-chunks/{normalize-Bx4H3NjB.js → normalize-C_IStty9.js} +2 -2
  253. package/dist/prod/packages/shared-chunks/{or-sYlRiUn_.js → not-BOIVROuv.js} +28 -28
  254. package/dist/prod/packages/shared-chunks/{observers-Ci31SE36.js → observers-BmobpXAF.js} +5 -5
  255. package/dist/prod/packages/shared-chunks/{on-Dgmychhk.js → on-BZHAxzdq.js} +10 -10
  256. package/dist/{dev/packages/shared-chunks/program-CPXeXWVB.js → prod/packages/shared-chunks/program-BAh__OXZ.js} +3 -3
  257. package/dist/prod/packages/shared-chunks/{program-context-DmI53TzJ.js → program-context-COSioH46.js} +5 -4
  258. package/dist/prod/packages/shared-chunks/{property_get-Sw0SicEZ.js → property_get-DAKgbeJX.js} +2 -2
  259. package/dist/prod/packages/shared-chunks/{property_set-SHEIPMUG.js → property_set-BaQJdVfS.js} +3 -3
  260. package/dist/prod/packages/shared-chunks/{reference-D2agTt1V.js → reference-CG0yPgLy.js} +3 -3
  261. package/dist/prod/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
  262. package/dist/prod/packages/shared-chunks/{rehydrate-builder-B7MtrWip.js → rehydrate-builder-Blt1x9MP.js} +4 -4
  263. package/dist/prod/packages/shared-chunks/{render-B790-vbk.js → render-Dx7lr1hR.js} +94 -94
  264. package/dist/prod/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp.es-DR7yS7qg.js} +150 -154
  265. package/dist/prod/packages/shared-chunks/{serialize-builder-kEyOKbzp.js → serialize-builder-BvAXYHTr.js} +2 -2
  266. package/dist/prod/packages/shared-chunks/{set_properties-CcLLHg1w.js → set_properties-Qxhw4qzw.js} +2 -2
  267. package/dist/prod/packages/shared-chunks/{setup-registry-D14I0iDX.js → setup-registry-U-6VaNQG.js} +18 -18
  268. package/dist/{dev/packages/shared-chunks/simple-cast-BXTrayoV.js → prod/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  269. package/dist/{dev/packages/shared-chunks/super-D4qkU4uq.js → prod/packages/shared-chunks/super-BBBjgF69.js} +1 -1
  270. package/dist/{dev/packages/shared-chunks/syscall-ops-nrBHMOTp.js → prod/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
  271. package/dist/prod/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
  272. package/dist/prod/packages/shared-chunks/{template-only-CP0NT7ce.js → template-only-DKNcKM5b.js} +2 -4
  273. package/dist/prod/packages/shared-chunks/{textarea-B_JYBuE8.js → textarea-DOmZ1x0E.js} +11 -7
  274. package/dist/prod/packages/shared-chunks/{tracked-CXcapuAm.js → tracked-B9380JtC.js} +5 -5
  275. package/dist/prod/packages/shared-chunks/{tracked-data-DNDzhYXf.js → tracked-data-CHq42QHb.js} +2 -2
  276. package/dist/prod/packages/shared-chunks/{unique-id-Hn8Qp4dS.js → unique-id-o2pS74go.js} +2 -2
  277. package/dist/prod/packages/shared-chunks/{unrecognized-url-error-ClNyMFJt.js → unrecognized-url-error-EgNrnFu_.js} +2 -2
  278. package/dist/{dev/packages/shared-chunks/vm-ops-5QCUIRx4.js → prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
  279. package/docs/data.json +316 -334
  280. package/package.json +6 -4
  281. package/types/stable/@ember/-internals/glimmer/index.d.ts +165 -121
  282. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
  283. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
  284. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +8 -2
  285. package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +12 -12
  286. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +18 -6
  287. package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +3 -1
  288. package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +65 -121
  289. package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +8 -4
  290. package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +16 -14
  291. package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +2 -0
  292. package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +11 -7
  293. package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +23 -29
  294. package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +3 -1
  295. package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +95 -49
  296. package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +23 -54
  297. package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +6 -2
  298. package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +4 -8
  299. package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +10 -10
  300. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +1 -2
  301. package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +2 -0
  302. package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +2 -14
  303. package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +15 -11
  304. package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +17 -10
  305. package/types/stable/@ember/-internals/runtime/lib/mixins/target_action_support.d.ts +1 -1
  306. package/types/stable/@ember/array/index.d.ts +6 -29
  307. package/types/stable/@ember/array/lib/is-array.d.ts +35 -0
  308. package/types/stable/@ember/component/template-only.d.ts +1 -3
  309. package/types/stable/@ember/controller/index.d.ts +1 -1
  310. package/types/stable/@ember/helper/index.d.ts +0 -19
  311. package/types/stable/@ember/object/index.d.ts +4 -3
  312. package/types/stable/@ember/object/observable.d.ts +4 -0
  313. package/types/stable/@ember/reactive/collections.d.ts +0 -6
  314. package/types/stable/@ember/routing/lib/generate_controller.d.ts +1 -1
  315. package/types/stable/@ember/routing/route.d.ts +2 -2
  316. package/types/stable/@ember/routing/router-service.d.ts +20 -12
  317. package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +0 -2
  318. package/types/stable/@glimmer/runtime/lib/dom/sanitized-values.d.ts +2 -2
  319. package/types/stable/@glimmer/runtime/lib/helpers/array.d.ts +1 -1
  320. package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +8 -3
  321. package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +13 -7
  322. package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +21 -29
  323. package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +1 -1
  324. package/types/stable/@glimmer/syntax/lib/get-template-locals.d.ts +1 -1
  325. package/types/stable/@glimmer/tracking/index.d.ts +12 -12
  326. package/types/stable/index.d.ts +1 -0
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "ember-source",
3
- "version": "7.2.0-alpha.4",
3
+ "version": "7.2.0-beta.1",
4
4
  "description": "A JavaScript framework for creating ambitious web applications",
5
+ "type": "module",
5
6
  "keywords": [
6
7
  "ember-addon"
7
8
  ],
@@ -51,7 +52,7 @@
51
52
  "lint:format": "prettier --check .",
52
53
  "lint:format:fix": "prettier --write .",
53
54
  "test": "testem ci -f testem.cjs --host 127.0.0.1 --port 13141",
54
- "test:blueprints": "mocha node-tests/blueprints/**/*-test.js",
55
+ "test:blueprints": "pnpm --filter ember-test-node-blueprints test:node",
55
56
  "test:node": "qunit tests/node/**/*-test.cjs",
56
57
  "test:node:vitest": "pnpm --filter ember-test-node-vitest test:node",
57
58
  "test:browserstack": "node bin/run-browserstack-tests.cjs",
@@ -210,6 +211,7 @@
210
211
  "@ember/application/namespace.js": "ember-source/@ember/application/namespace.js",
211
212
  "@ember/array/-internals.js": "ember-source/@ember/array/-internals.js",
212
213
  "@ember/array/index.js": "ember-source/@ember/array/index.js",
214
+ "@ember/array/lib/is-array.js": "ember-source/@ember/array/lib/is-array.js",
213
215
  "@ember/array/lib/make-array.js": "ember-source/@ember/array/lib/make-array.js",
214
216
  "@ember/array/make.js": "ember-source/@ember/array/make.js",
215
217
  "@ember/array/mutable.js": "ember-source/@ember/array/mutable.js",
@@ -365,9 +367,9 @@
365
367
  }
366
368
  },
367
369
  "packageManager": "pnpm@10.33.2",
368
- "_originalVersion": "7.2.0-alpha.1",
370
+ "_originalVersion": "7.2.0-beta.1",
369
371
  "_versionPreviouslyCalculated": true,
370
372
  "publishConfig": {
371
- "tag": "alpha"
373
+ "tag": "beta"
372
374
  }
373
375
  }
@@ -2,6 +2,23 @@ declare module '@ember/-internals/glimmer' {
2
2
  /**
3
3
  [Glimmer](https://github.com/tildeio/glimmer) is a templating engine used by Ember.js that is compatible with a subset of the [Handlebars](http://handlebarsjs.com/) syntax.
4
4
 
5
+ Ember ships with two types of JavaScript classes for components:
6
+
7
+ 1. Glimmer components, imported from `@glimmer/component`, which are the
8
+ default component's for Ember Octane (3.15) and more recent editions.
9
+ 2. Classic components, imported from `@ember/component`, which were the
10
+ default for older editions of Ember (pre 3.15) but are still supported.
11
+
12
+ Below is the documentation for Classic components. If you are looking for the
13
+ API documentation for Template-only or Glimmer components, it is [available
14
+ here](/ember/release/modules/@glimmer%2Fcomponent).
15
+
16
+ Note: Prior to Ember 6.8, by default, components were authored in paired `.hbs` and `.js`
17
+ files. This is still supported, but the default authoring format is now `.gjs` or "template tag".
18
+ The documentation for `@ember/component` still refers to the older authoring format. To read about
19
+ the new authoring format, see the
20
+ [Glimmer Component API documentation](/ember/release/modules/@glimmer%2Fcomponent).
21
+
5
22
  ### Showing a property
6
23
 
7
24
  Templates manage the flow of an application's UI, and display state (through
@@ -96,16 +113,24 @@ declare module '@ember/-internals/glimmer' {
96
113
  When designing components `{{yield}}` is used to denote where, inside the component's
97
114
  template, an optional block passed to the component should render:
98
115
 
99
- ```app/templates/application.hbs
100
- <LabeledTextfield @value={{@model.name}}>
101
- First name:
102
- </LabeledTextfield>
116
+ ```app/templates/application.gjs
117
+ import LabeledTextField from '../components/labeled-textfield';
118
+
119
+ <template>
120
+ <LabeledTextField @value={{@model.name}}>
121
+ First name:
122
+ </LabeledTextField>
123
+ </template>
103
124
  ```
104
125
 
105
- ```app/components/labeled-textfield.hbs
106
- <label>
107
- {{yield}} <Input @value={{@value}} />
108
- </label>
126
+ ```app/components/labeled-textfield.gjs
127
+ import { Input } from '@ember/component';
128
+
129
+ <template>
130
+ <label>
131
+ {{yield}} <Input @value={{@value}} />
132
+ </label>
133
+ </template>
109
134
  ```
110
135
 
111
136
  Result:
@@ -118,19 +143,34 @@ declare module '@ember/-internals/glimmer' {
118
143
 
119
144
  Additionally you can `yield` properties into the context for use by the consumer:
120
145
 
121
- ```app/templates/application.hbs
122
- <LabeledTextfield @value={{@model.validation}} @validator={{this.firstNameValidator}} as |validationError|>
123
- {{#if validationError}}
124
- <p class="error">{{validationError}}</p>
125
- {{/if}}
126
- First name:
127
- </LabeledTextfield>
146
+ ```app/templates/application.gjs
147
+ import Component from '@glimmer/component';
148
+ import LabeledTextField from '../components/labeled-textfield';
149
+
150
+ export default class Application extends Component {
151
+ firstNameValidator = (value) => {
152
+ // validates
153
+ }
154
+
155
+ <template>
156
+ <LabeledTextField @value={{@model.validation}} @validator={{this.firstNameValidator}} as |validationError|>
157
+ {{#if validationError}}
158
+ <p class="error">{{validationError}}</p>
159
+ {{/if}}
160
+ First name:
161
+ </LabeledTextField>
162
+ </template>
163
+ }
128
164
  ```
129
165
 
130
- ```app/components/labeled-textfield.hbs
131
- <label>
132
- {{yield this.validationError}} <Input @value={{@value}} />
133
- </label>
166
+ ```app/components/labeled-textfield.gjs
167
+ import { Input } from '@ember/component';
168
+
169
+ <template>
170
+ <label>
171
+ {{yield this.validationError}} <Input @value={{@value}} />
172
+ </label>
173
+ </template>
134
174
  ```
135
175
 
136
176
  Result:
@@ -144,17 +184,23 @@ declare module '@ember/-internals/glimmer' {
144
184
 
145
185
  `yield` can also be used with the `hash` helper:
146
186
 
147
- ```app/templates/application.hbs
148
- <DateRanges @value={{@model.date}} as |range|>
149
- Start date: {{range.start}}
150
- End date: {{range.end}}
151
- </DateRanges>
187
+ ```app/templates/application.gjs
188
+ import DateRanges from '../components/date-ranges';
189
+
190
+ <template>
191
+ <DateRanges @value={{@model.date}} as |range|>
192
+ Start date: {{range.start}}
193
+ End date: {{range.end}}
194
+ </DateRanges>
195
+ </template>
152
196
  ```
153
197
 
154
- ```app/components/date-ranges.hbs
155
- <div>
156
- {{yield (hash start=@value.start end=@value.end)}}
157
- </div>
198
+ ```app/components/date-ranges.gjs
199
+ <template>
200
+ <div>
201
+ {{yield (hash start=@value.start end=@value.end)}}
202
+ </div>
203
+ </template>
158
204
  ```
159
205
 
160
206
  Result:
@@ -167,19 +213,25 @@ declare module '@ember/-internals/glimmer' {
167
213
  ```
168
214
 
169
215
  Multiple values can be yielded as block params:
170
-
171
- ```app/templates/application.hbs
172
- <Banner @value={{@model}} as |title subtitle body|>
173
- <h1>{{title}}</h1>
174
- <h2>{{subtitle}}</h2>
175
- {{body}}
176
- </Banner>
177
- ```
178
-
179
- ```app/components/banner.hbs
180
- <div>
181
- {{yield "Hello title" "hello subtitle" "body text"}}
182
- </div>
216
+
217
+ ```app/templates/application.gjs
218
+ import Banner from '../components/banner';
219
+
220
+ <template>
221
+ <Banner @value={{@model}} as |title subtitle body|>
222
+ <h1>{{title}}</h1>
223
+ <h2>{{subtitle}}</h2>
224
+ {{body}}
225
+ </Banner>
226
+ </template>
227
+ ```
228
+
229
+ ```app/components/banner.gjs
230
+ <template>
231
+ <div>
232
+ {{yield "Hello title" "hello subtitle" "body text"}}
233
+ </div>
234
+ </template>
183
235
  ```
184
236
 
185
237
  Result:
@@ -196,15 +248,19 @@ declare module '@ember/-internals/glimmer' {
196
248
 
197
249
  Multiple components can be yielded with the `hash` and `component` helper:
198
250
 
199
- ```app/templates/application.hbs
200
- <Banner @value={{@model}} as |banner|>
201
- <banner.Title>Banner title</banner.Title>
202
- <banner.Subtitle>Banner subtitle</banner.Subtitle>
203
- <banner.Body>A load of body text</banner.Body>
204
- </Banner>
251
+ ```app/templates/application.gjs
252
+ import Banner from '../components/banner';
253
+
254
+ <template>
255
+ <Banner @value={{@model}} as |banner|>
256
+ <banner.Title>Banner title</banner.Title>
257
+ <banner.Subtitle>Banner subtitle</banner.Subtitle>
258
+ <banner.Body>A load of body text</banner.Body>
259
+ </Banner>
260
+ </template>
205
261
  ```
206
262
 
207
- ```app/components/banner.js
263
+ ```app/components/banner.gjs
208
264
  import Title from './banner/title';
209
265
  import Subtitle from './banner/subtitle';
210
266
  import Body from './banner/body';
@@ -213,19 +269,19 @@ declare module '@ember/-internals/glimmer' {
213
269
  Title = Title;
214
270
  Subtitle = Subtitle;
215
271
  Body = Body;
272
+
273
+ <template>
274
+ <div>
275
+ {{yield (hash
276
+ Title=this.Title
277
+ Subtitle=this.Subtitle
278
+ Body=(component this.Body defaultArg="some value")
279
+ )}}
280
+ </div>
281
+ </template>
216
282
  }
217
283
  ```
218
284
 
219
- ```app/components/banner.hbs
220
- <div>
221
- {{yield (hash
222
- Title=this.Title
223
- Subtitle=this.Subtitle
224
- Body=(component this.Body defaultArg="some value")
225
- )}}
226
- </div>
227
- ```
228
-
229
285
  Result:
230
286
 
231
287
  ```html
@@ -238,12 +294,16 @@ declare module '@ember/-internals/glimmer' {
238
294
 
239
295
  A benefit of using this pattern is that the user of the component can change the order the components are displayed.
240
296
 
241
- ```app/templates/application.hbs
242
- <Banner @value={{@model}} as |banner|>
243
- <banner.Subtitle>Banner subtitle</banner.Subtitle>
244
- <banner.Title>Banner title</banner.Title>
245
- <banner.Body>A load of body text</banner.Body>
246
- </Banner>
297
+ ```app/templates/application.gjs
298
+ import Banner from '../components/banner';
299
+
300
+ <template>
301
+ <Banner @value={{@model}} as |banner|>
302
+ <banner.Subtitle>Banner subtitle</banner.Subtitle>
303
+ <banner.Title>Banner title</banner.Title>
304
+ <banner.Body>A load of body text</banner.Body>
305
+ </Banner>
306
+ </template>
247
307
  ```
248
308
 
249
309
  Result:
@@ -259,27 +319,33 @@ declare module '@ember/-internals/glimmer' {
259
319
  Another benefit to using `yield` with the `hash` and `component` helper
260
320
  is you can pass attributes and arguments to these components:
261
321
 
262
- ```app/templates/application.hbs
263
- <Banner @value={{@model}} as |banner|>
264
- <banner.Subtitle class="mb-1">Banner subtitle</banner.Subtitle>
265
- <banner.Title @variant="loud">Banner title</banner.Title>
266
- <banner.Body>A load of body text</banner.Body>
267
- </Banner>
322
+ ```app/templates/application.gjs
323
+ import Banner from '../components/banner';
324
+
325
+ <template>
326
+ <Banner @value={{@model}} as |banner|>
327
+ <banner.Subtitle class="mb-1">Banner subtitle</banner.Subtitle>
328
+ <banner.Title @variant="loud">Banner title</banner.Title>
329
+ <banner.Body>A load of body text</banner.Body>
330
+ </Banner>
331
+ </template>
268
332
  ```
269
333
 
270
- ```app/components/banner/subtitle.hbs
334
+ ```app/components/banner/subtitle.gjs
271
335
  {{!-- note the use of ..attributes --}}
272
336
  <h2 ...attributes>
273
337
  {{yield}}
274
338
  </h2>
275
339
  ```
276
340
 
277
- ```app/components/banner/title.hbs
278
- {{#if (eq @variant "loud")}}
341
+ ```app/components/banner/title.gjs
342
+ <template>
343
+ {{#if (eq @variant "loud")}}
279
344
  <h1 class="loud">{{yield}}</h1>
280
- {{else}}
345
+ {{else}}
281
346
  <h1 class="quiet">{{yield}}</h1>
282
- {{/if}}
347
+ {{/if}}
348
+ </template>
283
349
  ```
284
350
 
285
351
  Result:
@@ -304,36 +370,28 @@ declare module '@ember/-internals/glimmer' {
304
370
  This component is invoked with a block:
305
371
 
306
372
  ```handlebars
307
- {{#my-component}}
373
+ <MyComponent>
308
374
  Hi Jen!
309
- {{/my-component}}
375
+ </MyComponent>
310
376
  ```
311
377
 
312
378
  This component is invoked without a block:
313
379
 
314
380
  ```handlebars
315
- {{my-component}}
316
- ```
317
-
318
- Using angle bracket invocation, this looks like:
319
-
320
- ```html
321
- <MyComponent>Hi Jen!</MyComponent> {{! with a block}}
322
- ```
323
-
324
- ```html
325
- <MyComponent/> {{! without a block}}
381
+ <MyComponent />
326
382
  ```
327
383
 
328
384
  This is useful when you want to create a component that can optionally take a block
329
385
  and then render a default template when it is not invoked with a block.
330
386
 
331
- ```app/templates/components/my-component.hbs
332
- {{#if (has-block)}}
333
- Welcome {{yield}}, we are happy you're here!
334
- {{else}}
335
- Hey you! You're great!
336
- {{/if}}
387
+ ```app/components/my-component.gjs
388
+ <template>
389
+ {{#if (has-block)}}
390
+ Welcome {{yield}}, we are happy you're here!
391
+ {{else}}
392
+ Hey you! You're great!
393
+ {{/if}}
394
+ </template>
337
395
  ```
338
396
 
339
397
  @method has-block
@@ -346,26 +404,10 @@ declare module '@ember/-internals/glimmer' {
346
404
  `{{(has-block-params)}}` indicates if the component was invoked with block params.
347
405
 
348
406
  This component is invoked with block params:
349
-
350
- ```handlebars
351
- {{#my-component as |favoriteFlavor|}}
352
- Hi Jen!
353
- {{/my-component}}
354
- ```
355
-
356
- This component is invoked without block params:
357
-
407
+
358
408
  ```handlebars
359
- {{#my-component}}
360
- Hi Jenn!
361
- {{/my-component}}
362
- ```
363
-
364
- With angle bracket syntax, block params look like this:
365
-
366
- ```handlebars
367
409
  <MyComponent as |favoriteFlavor|>
368
- Hi Jen!
410
+ Hi Jen!
369
411
  </MyComponent>
370
412
  ```
371
413
 
@@ -373,21 +415,23 @@ declare module '@ember/-internals/glimmer' {
373
415
 
374
416
  ```handlebars
375
417
  <MyComponent>
376
- Hi Jen!
418
+ Hi Jen!
377
419
  </MyComponent>
378
420
  ```
379
421
 
380
422
  This is useful when you want to create a component that can render itself
381
423
  differently when it is not invoked with block params.
382
424
 
383
- ```app/templates/components/my-component.hbs
384
- {{#if (has-block-params)}}
385
- Welcome {{yield this.favoriteFlavor}}, we're happy you're here and hope you
386
- enjoy your favorite ice cream flavor.
387
- {{else}}
388
- Welcome {{yield}}, we're happy you're here, but we're unsure what
389
- flavor ice cream you would enjoy.
390
- {{/if}}
425
+ ```app/components/my-component.gjs
426
+ <template>
427
+ {{#if (has-block-params)}}
428
+ Welcome {{yield this.favoriteFlavor}}, we're happy you're here and hope you
429
+ enjoy your favorite ice cream flavor.
430
+ {{else}}
431
+ Welcome {{yield}}, we're happy you're here, but we're unsure what
432
+ flavor ice cream you would enjoy.
433
+ {{/if}}
434
+ </template>
391
435
  ```
392
436
 
393
437
  @method has-block-params
@@ -1,6 +1,6 @@
1
1
  declare module '@ember/-internals/glimmer/lib/component-managers/mount' {
2
2
  import type { InternalOwner } from "@ember/-internals/owner";
3
- import EngineInstance from "@ember/engine/instance";
3
+ import type EngineInstance from "@ember/engine/instance";
4
4
  import type { CapturedArguments, ComponentDefinition, CustomRenderNode, Destroyable, Environment, InternalComponentCapabilities, VMArguments, WithCreateInstance, WithCustomDebugRenderTree, WithDynamicLayout, WithSubOwner } from "@glimmer/interfaces";
5
5
  import type { Nullable } from "@ember/-internals/utility-types";
6
6
  import type { Reference } from "@glimmer/reference/lib/reference";
@@ -1,7 +1,7 @@
1
1
  declare module '@ember/-internals/glimmer/lib/component-managers/outlet' {
2
2
  import type { InternalOwner } from "@ember/-internals/owner";
3
3
  import type { Nullable } from "@ember/-internals/utility-types";
4
- import EngineInstance from "@ember/engine/instance";
4
+ import type EngineInstance from "@ember/engine/instance";
5
5
  import type { CompilableProgram, ComponentDefinition, CustomRenderNode, Destroyable, Environment, InternalComponentCapabilities, VMArguments, WithCreateInstance, WithCustomDebugRenderTree } from "@glimmer/interfaces";
6
6
  import type { Reference } from "@glimmer/reference/lib/reference";
7
7
  import type { DynamicScope } from "@ember/-internals/glimmer/lib/renderer";
@@ -168,6 +168,12 @@ declare module '@ember/-internals/glimmer/lib/component' {
168
168
  API documentation for Template-only or Glimmer components, it is [available
169
169
  here](/ember/release/modules/@glimmer%2Fcomponent).
170
170
 
171
+ Note: Prior to Ember 6.8, by default, components were authored in paired `.hbs` and `.js`
172
+ files. This is still supported, but the default authoring format is now `.gjs` or "template tag".
173
+ The documentation for `@ember/component` still refers to the older authoring format. To read about
174
+ the new authoring format, see the
175
+ [Glimmer Component API documentation](/ember/release/modules/@glimmer%2Fcomponent).
176
+
171
177
  ## Defining a Classic Component
172
178
 
173
179
  If you want to customize the component in order to handle events, transform
@@ -194,7 +200,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
194
200
 
195
201
  And then use it in the component's template:
196
202
 
197
- ```app/templates/components/person-profile.hbs
203
+ ```app/components/person-profile.hbs
198
204
  <h1>{{this.displayName}}</h1>
199
205
  {{yield}}
200
206
  ```
@@ -582,7 +588,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
582
588
  The `layout` property should be set to the default export of a template
583
589
  module, which is the name of a template file without the `.hbs` extension.
584
590
 
585
- ```app/templates/components/person-profile.hbs
591
+ ```app/components/person-profile.hbs
586
592
  <h1>Person's Title</h1>
587
593
  <div class='details'>{{yield}}</div>
588
594
  ```
@@ -26,17 +26,7 @@ declare module '@ember/-internals/glimmer/lib/glimmer-tracking-docs' {
26
26
  property changes, any templates that used that property, directly or
27
27
  indirectly, will rerender. For instance, consider this component:
28
28
 
29
- ```handlebars
30
- <div>Count: {{this.count}}</div>
31
- <div>Times Ten: {{this.timesTen}}</div>
32
- <div>
33
- <button {{on "click" this.plusOne}}>
34
- Plus One
35
- </button>
36
- </div>
37
- ```
38
-
39
- ```javascript
29
+ ```gjs
40
30
  import Component from '@glimmer/component';
41
31
  import { tracked } from '@glimmer/tracking';
42
32
  import { action } from '@ember/object';
@@ -52,6 +42,16 @@ declare module '@ember/-internals/glimmer/lib/glimmer-tracking-docs' {
52
42
  plusOne() {
53
43
  this.count += 1;
54
44
  }
45
+
46
+ <template>
47
+ <div>Count: {{this.count}}</div>
48
+ <div>Times Ten: {{this.timesTen}}</div>
49
+ <div>
50
+ <button {{on "click" this.plusOne}}>
51
+ Plus One
52
+ </button>
53
+ </div>
54
+ </template>
55
55
  }
56
56
  ```
57
57
 
@@ -61,7 +61,7 @@ declare module '@ember/-internals/glimmer/lib/glimmer-tracking-docs' {
61
61
  will cause a rerender when updated - this includes through method calls and
62
62
  other means:
63
63
 
64
- ```javascript
64
+ ```gjs
65
65
  import Component from '@glimmer/component';
66
66
  import { tracked } from '@glimmer/tracking';
67
67
 
@@ -29,20 +29,32 @@ declare module '@ember/-internals/glimmer/lib/helper' {
29
29
  Ember Helpers are functions that can compute values, and are used in templates.
30
30
  For example, this code calls a helper named `format-currency`:
31
31
 
32
- ```app/templates/application.hbs
33
- <Cost @cents={{230}} />
32
+ ```app/templates/application.gjs
33
+ import Cost from '../components/cost';
34
+
35
+ <template>
36
+ <Cost @cents={{230}} />
37
+ </template>
34
38
  ```
35
39
 
36
- ```app/components/cost.hbs
37
- <div>{{format-currency @cents currency="$"}}</div>
40
+ ```app/components/cost.gjs
41
+ import formatCurrency from '../helpers/format-currency';
42
+
43
+ <template>
44
+ <div>{{formatCurrency @cents currency="$"}}</div>
45
+ </template>
38
46
  ```
39
47
 
40
48
  Additionally a helper can be called as a nested helper.
41
49
  In this example, we show the formatted currency value if the `showMoney`
42
50
  named argument is truthy.
43
51
 
44
- ```handlebars
45
- {{if @showMoney (format-currency @cents currency="$")}}
52
+ ```gjs
53
+ import formatCurrency from '../helpers/format-currency';
54
+
55
+ <template>
56
+ {{if @showMoney (formatCurrency @cents currency="$")}}
57
+ </template>
46
58
  ```
47
59
 
48
60
  Helpers defined using a class must provide a `compute` function. For example:
@@ -15,7 +15,7 @@ declare module '@ember/-internals/glimmer/lib/helpers/array' {
15
15
  ```
16
16
  or
17
17
  ```handlebars
18
- {{my-component people=(array
18
+ {{yield people=(array
19
19
  'Tom Dale'
20
20
  'Yehuda Katz'
21
21
  this.myOtherPerson)
@@ -29,6 +29,8 @@ declare module '@ember/-internals/glimmer/lib/helpers/array' {
29
29
  ```
30
30
 
31
31
  Where the 3rd item in the array is bound to updates of the `myOtherPerson` property.
32
+
33
+ The `array` helper is built-in keyword and does not need to be imported as of v7.1.0.
32
34
 
33
35
  @method array
34
36
  @for @ember/helper