ember-source 7.2.0-alpha.4 → 7.3.0-alpha.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 (347) 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/deprecations/index.js +10 -0
  6. package/dist/dev/packages/@ember/-internals/glimmer/index.js +11 -11
  7. package/dist/dev/packages/@ember/-internals/metal/index.js +18 -18
  8. package/dist/dev/packages/@ember/-internals/routing/index.js +3 -3
  9. package/dist/dev/packages/@ember/-internals/runtime/index.js +1 -1
  10. package/dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  11. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +8 -8
  12. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
  13. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/comparable.js +5 -0
  14. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  15. package/dist/dev/packages/@ember/-internals/utils/index.js +2 -2
  16. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
  17. package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
  18. package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  19. package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
  20. package/dist/dev/packages/@ember/application/index.js +6 -7
  21. package/dist/dev/packages/@ember/application/instance.js +24 -4
  22. package/dist/dev/packages/@ember/application/namespace.js +3 -3
  23. package/dist/dev/packages/@ember/array/index.js +10 -64
  24. package/dist/dev/packages/@ember/array/lib/is-array.js +71 -0
  25. package/dist/dev/packages/@ember/array/proxy.js +8 -8
  26. package/dist/dev/packages/@ember/component/helper.js +321 -1
  27. package/dist/dev/packages/@ember/component/index.js +21 -15
  28. package/dist/dev/packages/@ember/component/template-only.js +1 -1
  29. package/dist/dev/packages/@ember/controller/index.js +3 -3
  30. package/dist/dev/packages/@ember/debug/data-adapter.js +3 -3
  31. package/dist/dev/packages/@ember/debug/index.js +1 -1
  32. package/dist/dev/packages/@ember/engine/index.js +5 -5
  33. package/dist/dev/packages/@ember/engine/instance.js +2 -2
  34. package/dist/dev/packages/@ember/helper/index.js +8 -27
  35. package/dist/dev/packages/@ember/modifier/index.js +2 -2
  36. package/dist/dev/packages/@ember/modifier/on.js +1 -1
  37. package/dist/dev/packages/@ember/object/-internals.js +2 -2
  38. package/dist/dev/packages/@ember/object/compat.js +3 -3
  39. package/dist/dev/packages/@ember/object/computed.js +2 -2
  40. package/dist/dev/packages/@ember/object/core.js +7 -7
  41. package/dist/dev/packages/@ember/object/evented.js +2 -2
  42. package/dist/dev/packages/@ember/object/events.js +1 -1
  43. package/dist/dev/packages/@ember/object/index.js +30 -25
  44. package/dist/dev/packages/@ember/object/internals.js +1 -1
  45. package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +5 -5
  46. package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -3
  47. package/dist/dev/packages/@ember/object/mixin.js +6 -6
  48. package/dist/dev/packages/@ember/object/observable.js +7 -7
  49. package/dist/dev/packages/@ember/object/observers.js +1 -1
  50. package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -3
  51. package/dist/dev/packages/@ember/reactive/collections.js +153 -153
  52. package/dist/dev/packages/@ember/renderer/index.js +1 -1
  53. package/dist/dev/packages/@ember/routing/-internals.js +3 -3
  54. package/dist/dev/packages/@ember/routing/index.js +12 -8
  55. package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -3
  56. package/dist/dev/packages/@ember/routing/lib/routing-service.js +5 -6
  57. package/dist/dev/packages/@ember/routing/lib/utils.js +3 -3
  58. package/dist/dev/packages/@ember/routing/route.js +12 -12
  59. package/dist/dev/packages/@ember/routing/router-service.js +25 -19
  60. package/dist/dev/packages/@ember/routing/router.js +5 -5
  61. package/dist/dev/packages/@ember/runloop/index.js +1 -1
  62. package/dist/dev/packages/@ember/service/index.js +1 -1
  63. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  64. package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -2
  65. package/dist/dev/packages/@ember/template-factory/index.js +1 -1
  66. package/dist/dev/packages/@ember/utils/lib/compare.js +5 -2
  67. package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -1
  68. package/dist/dev/packages/@glimmer/encoder/index.js +1 -1
  69. package/dist/dev/packages/@glimmer/manager/index.js +4 -4
  70. package/dist/dev/packages/@glimmer/node/index.js +3 -3
  71. package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -2
  72. package/dist/dev/packages/@glimmer/program/index.js +10 -10
  73. package/dist/dev/packages/@glimmer/reference/index.js +5 -5
  74. package/dist/dev/packages/@glimmer/runtime/index.js +13 -13
  75. package/dist/dev/packages/@glimmer/tracking/index.js +2 -2
  76. package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
  77. package/dist/dev/packages/@glimmer/util/index.js +4 -4
  78. package/dist/dev/packages/@glimmer/validator/index.js +3 -3
  79. package/dist/dev/packages/@glimmer/vm/index.js +2 -2
  80. package/dist/dev/packages/ember/version.js +1 -1
  81. package/dist/dev/packages/ember-template-compiler/index.js +4 -4
  82. package/dist/dev/packages/router_js/index.js +3 -3
  83. package/dist/dev/packages/rsvp/index.js +2281 -1
  84. package/dist/dev/packages/shared-chunks/{alias-RGbDZoAB.js → alias-DpqL1qx6.js} +7 -7
  85. package/dist/dev/packages/shared-chunks/{api-BT9M3UaD.js → api-BlZDPg1n.js} +6 -6
  86. package/dist/dev/packages/shared-chunks/{element-builder-Cl1kHFJE.js → api-C0PAtEgQ.js} +139 -120
  87. package/dist/dev/packages/shared-chunks/{api-DG5kRT-o.js → api-DuLOZMO_.js} +3 -3
  88. package/dist/dev/packages/shared-chunks/{args-proxy-CB0SM6jC.js → args-proxy-CS5Brs3_.js} +2 -2
  89. package/dist/dev/packages/shared-chunks/{untouchable-this-BHdAERUu.js → arguments-CDkbOqTS.js} +236 -236
  90. package/dist/dev/packages/shared-chunks/{array-BMaSKezP.js → array-CVEnNWng.js} +3 -3
  91. package/dist/dev/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
  92. package/dist/dev/packages/shared-chunks/{cache-CeWOBNQg.js → cache-DGDPVCpC.js} +2 -3
  93. package/dist/dev/packages/shared-chunks/{capabilities-CZkuOqqC.js → capabilities-CajW4QjE.js} +1 -1
  94. package/dist/dev/packages/shared-chunks/{chain-tags-DfmU63mS.js → chain-tags-uWSImHzB.js} +4 -4
  95. package/dist/dev/packages/shared-chunks/{collections-DEt-i-8B.js → collections-DPkjqeA3.js} +2 -2
  96. package/dist/dev/packages/shared-chunks/{compiler-DhH2WLpA.js → compiler-QUSl_urU.js} +3 -3
  97. package/dist/dev/packages/shared-chunks/{computed-Daavz6vC.js → computed-BPCtuOxQ.js} +6 -6
  98. package/dist/dev/packages/shared-chunks/{curly-YoYS2vXw.js → curly-DGUCLOud.js} +10 -11
  99. package/dist/dev/packages/shared-chunks/curly-brand-B_F79Dep.js +12 -0
  100. package/dist/dev/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
  101. package/dist/dev/packages/shared-chunks/{decorator-DYQwMItS.js → decorator-B5Uh5NFI.js} +1 -1
  102. package/dist/dev/packages/shared-chunks/{element-bBwMD8cw.js → element-BYLB-q7a.js} +5 -3
  103. package/dist/dev/packages/shared-chunks/{events-B1lx9T1I.js → events-6aFVjD4k.js} +1 -1
  104. package/dist/{prod/packages/shared-chunks/flags-B9qxc-pB.js → dev/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
  105. package/dist/dev/packages/shared-chunks/{get-CO3EIWsm.js → get-6I3sjd-I.js} +33 -36
  106. package/dist/{prod/packages/shared-chunks/get_properties-wj_Qmotj.js → dev/packages/shared-chunks/get_properties-Cm2sWt5f.js} +1 -1
  107. package/dist/dev/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
  108. package/dist/dev/packages/shared-chunks/{hash-2-93qikL.js → hash-6NDs_5_f.js} +18 -12
  109. package/dist/dev/packages/shared-chunks/helper-brand-C9_8vvOf.js +12 -0
  110. package/dist/dev/packages/shared-chunks/{index-DX90CU4L.js → index-BGP1rw3B.js} +1 -1
  111. package/dist/dev/packages/shared-chunks/{index-dyv6rcBf.js → index-CCyXUNBa.js} +655 -1633
  112. package/dist/dev/packages/shared-chunks/{index-DkwVSPP5.js → index-DaFzpTIE.js} +10 -9
  113. package/dist/dev/packages/shared-chunks/{injected_property-B075jH6c.js → injected_property-CbBLr5jt.js} +2 -2
  114. package/dist/dev/packages/shared-chunks/{internal-Bpr6ihB_.js → internal-DTOXyEGM.js} +4 -4
  115. package/dist/dev/packages/shared-chunks/{internal-helper-IC87S6iZ.js → internal-helper-CKrni0b_.js} +1 -1
  116. package/dist/dev/packages/shared-chunks/{invoke-Ds0KEfP_.js → invoke-d9sqa50M.js} +3 -3
  117. package/dist/dev/packages/shared-chunks/{libraries-P8Ins5CB.js → libraries-DwffpMGE.js} +1 -1
  118. package/dist/dev/packages/shared-chunks/{meta-Cjo3zQJq.js → meta-BqC7f9Ia.js} +1 -1
  119. package/dist/{prod/packages/shared-chunks/namespace_search-TFdmjK_a.js → dev/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
  120. package/dist/dev/packages/shared-chunks/{normalize-CxG_iVLJ.js → normalize-CKySQVU7.js} +2 -2
  121. package/dist/dev/packages/shared-chunks/{or-Bg6rCMF8.js → not-DYh6AY9Z.js} +36 -36
  122. package/dist/dev/packages/shared-chunks/{observers-CejcZw5s.js → observers-DMlX2nCi.js} +5 -5
  123. package/dist/dev/packages/shared-chunks/{on-Ch_lyozr.js → on-DlF0Wy7P.js} +10 -10
  124. package/dist/dev/packages/shared-chunks/outlet-CHFL7tun.js +135 -0
  125. package/dist/dev/packages/shared-chunks/{present-D0EfKzC6.js → present-B1rrjAVM.js} +1 -1
  126. package/dist/{prod/packages/shared-chunks/program-CF651Zuj.js → dev/packages/shared-chunks/program-DlgjqLa6.js} +3 -3
  127. package/dist/dev/packages/shared-chunks/{program-context-BaYVr5GA.js → program-context-Dq8xN2HI.js} +5 -4
  128. package/dist/dev/packages/shared-chunks/{property_get-BjbsrgpU.js → property_get-CRP7MFz_.js} +3 -3
  129. package/dist/dev/packages/shared-chunks/{property_set-LJskl202.js → property_set-qCUylPEK.js} +3 -3
  130. package/dist/dev/packages/shared-chunks/{reference-C-OXd_kp.js → reference-BqOLhKFy.js} +3 -3
  131. package/dist/dev/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
  132. package/dist/dev/packages/shared-chunks/{rehydrate-builder-IH4d_JQy.js → rehydrate-builder-C6k1XhET.js} +4 -4
  133. package/dist/dev/packages/shared-chunks/{render-Dz3OWqXy.js → render-87_sKZ_k.js} +94 -94
  134. package/dist/dev/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp.es-DR7yS7qg.js} +150 -154
  135. package/dist/dev/packages/shared-chunks/{serialize-builder-DKliZPPG.js → serialize-builder-BlxBjwO-.js} +2 -2
  136. package/dist/dev/packages/shared-chunks/{set_properties-CNds2HCH.js → set_properties-C4TSebH6.js} +2 -2
  137. package/dist/dev/packages/shared-chunks/setup-registry-BHdDJATP.js +951 -0
  138. package/dist/{prod/packages/shared-chunks/simple-cast-BXTrayoV.js → dev/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  139. package/dist/{prod/packages/shared-chunks/super-D4qkU4uq.js → dev/packages/shared-chunks/super-BBBjgF69.js} +1 -1
  140. package/dist/{prod/packages/shared-chunks/syscall-ops-nrBHMOTp.js → dev/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
  141. package/dist/dev/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
  142. package/dist/dev/packages/shared-chunks/{template-only-BxYzSEnC.js → template-only-Cu639ICT.js} +2 -4
  143. package/dist/dev/packages/shared-chunks/{textarea-DHjEFpZu.js → textarea-C4lYkaHj.js} +12 -8
  144. package/dist/dev/packages/shared-chunks/{tracked-B76E1nGz.js → tracked-DEyf0T_X.js} +5 -5
  145. package/dist/dev/packages/shared-chunks/{tracked-data-CH1USZZy.js → tracked-data-DgqqRdYO.js} +2 -2
  146. package/dist/dev/packages/shared-chunks/{unique-id-Hd96VZlE.js → unique-id-DQOhouG1.js} +2 -2
  147. package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BQdkjTtZ.js → unrecognized-url-error-B8loxkay.js} +3 -3
  148. package/dist/{prod/packages/shared-chunks/vm-ops-5QCUIRx4.js → dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
  149. package/dist/prod/packages/@ember/-internals/deprecations/index.js +10 -0
  150. package/dist/prod/packages/@ember/-internals/glimmer/index.js +11 -11
  151. package/dist/prod/packages/@ember/-internals/metal/index.js +18 -18
  152. package/dist/prod/packages/@ember/-internals/routing/index.js +3 -3
  153. package/dist/prod/packages/@ember/-internals/runtime/index.js +1 -1
  154. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  155. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +8 -8
  156. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
  157. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/comparable.js +5 -0
  158. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  159. package/dist/prod/packages/@ember/-internals/utils/index.js +2 -2
  160. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
  161. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
  162. package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  163. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
  164. package/dist/prod/packages/@ember/application/index.js +5 -6
  165. package/dist/prod/packages/@ember/application/instance.js +19 -4
  166. package/dist/prod/packages/@ember/application/namespace.js +3 -3
  167. package/dist/prod/packages/@ember/array/index.js +11 -58
  168. package/dist/prod/packages/@ember/array/lib/is-array.js +64 -0
  169. package/dist/prod/packages/@ember/array/proxy.js +8 -8
  170. package/dist/prod/packages/@ember/component/helper.js +305 -1
  171. package/dist/prod/packages/@ember/component/index.js +20 -14
  172. package/dist/prod/packages/@ember/component/template-only.js +1 -1
  173. package/dist/prod/packages/@ember/controller/index.js +3 -3
  174. package/dist/prod/packages/@ember/debug/data-adapter.js +3 -3
  175. package/dist/prod/packages/@ember/engine/index.js +5 -5
  176. package/dist/prod/packages/@ember/engine/instance.js +2 -2
  177. package/dist/prod/packages/@ember/helper/index.js +8 -27
  178. package/dist/prod/packages/@ember/modifier/index.js +2 -2
  179. package/dist/prod/packages/@ember/modifier/on.js +1 -1
  180. package/dist/prod/packages/@ember/object/-internals.js +2 -2
  181. package/dist/prod/packages/@ember/object/compat.js +3 -3
  182. package/dist/prod/packages/@ember/object/computed.js +2 -2
  183. package/dist/prod/packages/@ember/object/core.js +7 -7
  184. package/dist/prod/packages/@ember/object/evented.js +2 -2
  185. package/dist/prod/packages/@ember/object/events.js +1 -1
  186. package/dist/prod/packages/@ember/object/index.js +30 -25
  187. package/dist/prod/packages/@ember/object/internals.js +2 -2
  188. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +4 -4
  189. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -2
  190. package/dist/prod/packages/@ember/object/mixin.js +6 -6
  191. package/dist/prod/packages/@ember/object/observable.js +7 -7
  192. package/dist/prod/packages/@ember/object/observers.js +1 -1
  193. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -3
  194. package/dist/prod/packages/@ember/reactive/collections.js +153 -153
  195. package/dist/prod/packages/@ember/renderer/index.js +1 -1
  196. package/dist/prod/packages/@ember/routing/index.js +12 -8
  197. package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -2
  198. package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -5
  199. package/dist/prod/packages/@ember/routing/lib/utils.js +3 -3
  200. package/dist/prod/packages/@ember/routing/route.js +12 -12
  201. package/dist/prod/packages/@ember/routing/router-service.js +24 -18
  202. package/dist/prod/packages/@ember/routing/router.js +5 -5
  203. package/dist/prod/packages/@ember/runloop/index.js +1 -1
  204. package/dist/prod/packages/@ember/service/index.js +1 -1
  205. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  206. package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -2
  207. package/dist/prod/packages/@ember/template-factory/index.js +1 -1
  208. package/dist/prod/packages/@ember/utils/lib/compare.js +5 -2
  209. package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -1
  210. package/dist/prod/packages/@glimmer/encoder/index.js +1 -1
  211. package/dist/prod/packages/@glimmer/manager/index.js +4 -4
  212. package/dist/prod/packages/@glimmer/node/index.js +3 -3
  213. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -2
  214. package/dist/prod/packages/@glimmer/program/index.js +10 -10
  215. package/dist/prod/packages/@glimmer/reference/index.js +5 -5
  216. package/dist/prod/packages/@glimmer/runtime/index.js +13 -13
  217. package/dist/prod/packages/@glimmer/tracking/index.js +2 -2
  218. package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
  219. package/dist/prod/packages/@glimmer/util/index.js +4 -4
  220. package/dist/prod/packages/@glimmer/validator/index.js +3 -3
  221. package/dist/prod/packages/@glimmer/vm/index.js +2 -2
  222. package/dist/prod/packages/ember/version.js +1 -1
  223. package/dist/prod/packages/ember-template-compiler/index.js +4 -4
  224. package/dist/prod/packages/router_js/index.js +3 -3
  225. package/dist/prod/packages/rsvp/index.js +2281 -1
  226. package/dist/prod/packages/shared-chunks/{alias-DsIh-16z.js → alias-Bod6qdNp.js} +7 -7
  227. package/dist/prod/packages/shared-chunks/{api-CGZbGcvX.js → api-B_poQGXS.js} +6 -6
  228. package/dist/prod/packages/shared-chunks/{element-builder-CZePCkbA.js → api-CQexacBn.js} +139 -120
  229. package/dist/prod/packages/shared-chunks/{api-DOLN_cR2.js → api-DlJKfm_f.js} +3 -3
  230. package/dist/prod/packages/shared-chunks/{args-proxy-CaXVcI8G.js → args-proxy-CCoFtYLS.js} +2 -2
  231. package/dist/prod/packages/shared-chunks/{debug-render-tree-CYENUjgX.js → arguments-BzAkZVBa.js} +198 -198
  232. package/dist/prod/packages/shared-chunks/{array-DYFI95FA.js → array-BzReKMeW.js} +3 -3
  233. package/dist/prod/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
  234. package/dist/prod/packages/shared-chunks/{cache-CG6_L9db.js → cache-CofLhaS4.js} +1 -2
  235. package/dist/prod/packages/shared-chunks/{capabilities-_5e35539.js → capabilities-BuVYh-vx.js} +1 -1
  236. package/dist/prod/packages/shared-chunks/{chain-tags-BP0V2LnZ.js → chain-tags-B2J7DsxO.js} +4 -4
  237. package/dist/prod/packages/shared-chunks/{collections-By4M3cTy.js → collections-GpG8lT2g.js} +10 -10
  238. package/dist/prod/packages/shared-chunks/{compiler-DQmEjFyx.js → compiler-lBSssiWp.js} +2 -2
  239. package/dist/prod/packages/shared-chunks/{computed-D6MVTTDd.js → computed-DtIStxvq.js} +6 -6
  240. package/dist/prod/packages/shared-chunks/{curly-DCYSwLtz.js → curly-a6DP7r87.js} +10 -11
  241. package/dist/prod/packages/shared-chunks/curly-brand-B_F79Dep.js +12 -0
  242. package/dist/prod/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
  243. package/dist/prod/packages/shared-chunks/{decorator-B8Lpq40g.js → decorator-9ikVwsjY.js} +1 -1
  244. package/dist/prod/packages/shared-chunks/{element-CT5H5uxF.js → element-DgHdPZ8u.js} +5 -3
  245. package/dist/prod/packages/shared-chunks/{events-C7aYCy0N.js → events-DYrYz3V8.js} +1 -1
  246. package/dist/{dev/packages/shared-chunks/flags-B9qxc-pB.js → prod/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
  247. package/dist/prod/packages/shared-chunks/{get-tlL23wmp.js → get-Dago5uGl.js} +33 -36
  248. package/dist/{dev/packages/shared-chunks/get_properties-B203vZpz.js → prod/packages/shared-chunks/get_properties-Dg3xFpiS.js} +1 -1
  249. package/dist/prod/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
  250. package/dist/prod/packages/shared-chunks/{hash-C6IoC4eR.js → hash-gEXIsSO4.js} +24 -18
  251. package/dist/prod/packages/shared-chunks/helper-brand-C9_8vvOf.js +12 -0
  252. package/dist/prod/packages/shared-chunks/{index-D-rcNBLp.js → index-Bf53M8eS.js} +9 -8
  253. package/dist/prod/packages/shared-chunks/{index-DabsnYit.js → index-npr2B-vu.js} +541 -1465
  254. package/dist/prod/packages/shared-chunks/{injected_property-COGiYHKc.js → injected_property-Y-FadDej.js} +2 -2
  255. package/dist/prod/packages/shared-chunks/{internal-BEJC2IJ-.js → internal-BQ7zHrqS.js} +4 -4
  256. package/dist/prod/packages/shared-chunks/{internal-helper-CoxiRnnb.js → internal-helper-Bz1lpDXr.js} +1 -1
  257. package/dist/prod/packages/shared-chunks/{invoke-D_jsLbsj.js → invoke-DhQ5QRp2.js} +3 -3
  258. package/dist/prod/packages/shared-chunks/{libraries-Bs3H8iwC.js → libraries-DBql0hdn.js} +2 -2
  259. package/dist/prod/packages/shared-chunks/{meta-Ce6-qROq.js → meta-BJtIZDir.js} +1 -1
  260. package/dist/{dev/packages/shared-chunks/namespace_search-TFdmjK_a.js → prod/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
  261. package/dist/prod/packages/shared-chunks/{normalize-Bx4H3NjB.js → normalize-C_IStty9.js} +2 -2
  262. package/dist/prod/packages/shared-chunks/{or-sYlRiUn_.js → not-BOIVROuv.js} +28 -28
  263. package/dist/prod/packages/shared-chunks/{observers-Ci31SE36.js → observers-BmobpXAF.js} +5 -5
  264. package/dist/prod/packages/shared-chunks/{on-Dgmychhk.js → on-BZHAxzdq.js} +10 -10
  265. package/dist/prod/packages/shared-chunks/outlet--lIm3q7t.js +132 -0
  266. package/dist/{dev/packages/shared-chunks/program-CPXeXWVB.js → prod/packages/shared-chunks/program-BAh__OXZ.js} +3 -3
  267. package/dist/prod/packages/shared-chunks/{program-context-DmI53TzJ.js → program-context-COSioH46.js} +5 -4
  268. package/dist/prod/packages/shared-chunks/{property_get-Sw0SicEZ.js → property_get-DAKgbeJX.js} +2 -2
  269. package/dist/prod/packages/shared-chunks/{property_set-SHEIPMUG.js → property_set-BaQJdVfS.js} +3 -3
  270. package/dist/prod/packages/shared-chunks/{reference-D2agTt1V.js → reference-CG0yPgLy.js} +3 -3
  271. package/dist/prod/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
  272. package/dist/prod/packages/shared-chunks/{rehydrate-builder-B7MtrWip.js → rehydrate-builder-Blt1x9MP.js} +4 -4
  273. package/dist/prod/packages/shared-chunks/{render-B790-vbk.js → render-Dx7lr1hR.js} +94 -94
  274. package/dist/prod/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp.es-DR7yS7qg.js} +150 -154
  275. package/dist/prod/packages/shared-chunks/{serialize-builder-kEyOKbzp.js → serialize-builder-BvAXYHTr.js} +2 -2
  276. package/dist/prod/packages/shared-chunks/{set_properties-CcLLHg1w.js → set_properties-Qxhw4qzw.js} +2 -2
  277. package/dist/prod/packages/shared-chunks/setup-registry-Dfu8EyLU.js +886 -0
  278. package/dist/{dev/packages/shared-chunks/simple-cast-BXTrayoV.js → prod/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  279. package/dist/{dev/packages/shared-chunks/super-D4qkU4uq.js → prod/packages/shared-chunks/super-BBBjgF69.js} +1 -1
  280. package/dist/{dev/packages/shared-chunks/syscall-ops-nrBHMOTp.js → prod/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
  281. package/dist/prod/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
  282. package/dist/prod/packages/shared-chunks/{template-only-CP0NT7ce.js → template-only-DKNcKM5b.js} +2 -4
  283. package/dist/prod/packages/shared-chunks/{textarea-B_JYBuE8.js → textarea-DOmZ1x0E.js} +11 -7
  284. package/dist/prod/packages/shared-chunks/{tracked-CXcapuAm.js → tracked-B9380JtC.js} +5 -5
  285. package/dist/prod/packages/shared-chunks/{tracked-data-DNDzhYXf.js → tracked-data-CHq42QHb.js} +2 -2
  286. package/dist/prod/packages/shared-chunks/{unique-id-Hn8Qp4dS.js → unique-id-o2pS74go.js} +2 -2
  287. package/dist/prod/packages/shared-chunks/{unrecognized-url-error-ClNyMFJt.js → unrecognized-url-error-jjQ-FqKB.js} +3 -3
  288. package/dist/{dev/packages/shared-chunks/vm-ops-5QCUIRx4.js → prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
  289. package/docs/data.json +616 -569
  290. package/package.json +8 -6
  291. package/types/stable/@ember/-internals/deprecations/index.d.ts +6 -0
  292. package/types/stable/@ember/-internals/glimmer/index.d.ts +165 -121
  293. package/types/stable/@ember/-internals/glimmer/lib/base-renderer.d.ts +150 -0
  294. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly-brand.d.ts +10 -0
  295. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +3 -2
  296. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
  297. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
  298. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +8 -2
  299. package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +12 -12
  300. package/types/stable/@ember/-internals/glimmer/lib/helper-brand.d.ts +10 -0
  301. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +20 -10
  302. package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +3 -1
  303. package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +65 -121
  304. package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +8 -4
  305. package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +16 -14
  306. package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +2 -0
  307. package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +11 -7
  308. package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +23 -29
  309. package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +3 -1
  310. package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +95 -49
  311. package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +23 -54
  312. package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +6 -2
  313. package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +4 -8
  314. package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +10 -10
  315. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +7 -155
  316. package/types/stable/@ember/-internals/glimmer/lib/router-resolver.d.ts +17 -0
  317. package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +2 -0
  318. package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +2 -14
  319. package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +15 -11
  320. package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +17 -10
  321. package/types/stable/@ember/-internals/runtime/lib/mixins/target_action_support.d.ts +1 -1
  322. package/types/stable/@ember/array/index.d.ts +6 -29
  323. package/types/stable/@ember/array/lib/is-array.d.ts +35 -0
  324. package/types/stable/@ember/component/template-only.d.ts +1 -3
  325. package/types/stable/@ember/controller/index.d.ts +1 -1
  326. package/types/stable/@ember/helper/index.d.ts +0 -19
  327. package/types/stable/@ember/object/index.d.ts +4 -3
  328. package/types/stable/@ember/object/observable.d.ts +4 -0
  329. package/types/stable/@ember/reactive/collections.d.ts +0 -6
  330. package/types/stable/@ember/renderer/index.d.ts +2 -2
  331. package/types/stable/@ember/routing/lib/generate_controller.d.ts +1 -1
  332. package/types/stable/@ember/routing/route.d.ts +2 -2
  333. package/types/stable/@ember/routing/router-service.d.ts +20 -12
  334. package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +0 -2
  335. package/types/stable/@glimmer/runtime/lib/dom/sanitized-values.d.ts +2 -2
  336. package/types/stable/@glimmer/runtime/lib/helpers/array.d.ts +1 -1
  337. package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +8 -3
  338. package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +13 -7
  339. package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +21 -29
  340. package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +1 -1
  341. package/types/stable/@glimmer/syntax/lib/get-template-locals.d.ts +1 -1
  342. package/types/stable/@glimmer/tracking/index.d.ts +12 -12
  343. package/types/stable/index.d.ts +590 -585
  344. package/dist/dev/packages/shared-chunks/helper-Bm6EhgSW.js +0 -314
  345. package/dist/dev/packages/shared-chunks/setup-registry-C_YovxNX.js +0 -77
  346. package/dist/prod/packages/shared-chunks/helper-CCK8Ef0x.js +0 -298
  347. package/dist/prod/packages/shared-chunks/setup-registry-D14I0iDX.js +0 -74
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.3.0-alpha.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",
@@ -91,7 +92,7 @@
91
92
  "@embroider/vite": "^1.7.2",
92
93
  "@eslint/js": "^9.21.0",
93
94
  "@glimmer/component": "workspace:*",
94
- "@octokit/rest": "^20.1.2",
95
+ "@octokit/rest": "^22.0.0",
95
96
  "@rollup/plugin-babel": "^6.0.4",
96
97
  "@simple-dom/document": "^1.4.0",
97
98
  "@swc-node/register": "^1.6.8",
@@ -122,8 +123,8 @@
122
123
  "expect-type": "^0.15.0",
123
124
  "fs-extra": "^11.1.1",
124
125
  "git-repo-info": "^2.1.1",
125
- "glob": "^8.0.3",
126
- "globals": "^16.0.0",
126
+ "glob": "^13.0.0",
127
+ "globals": "^17.0.0",
127
128
  "kill-port-process": "^3.2.1",
128
129
  "mitata": "^1.0.34",
129
130
  "mocha": "^11.0.0",
@@ -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,7 +367,7 @@
365
367
  }
366
368
  },
367
369
  "packageManager": "pnpm@10.33.2",
368
- "_originalVersion": "7.2.0-alpha.1",
370
+ "_originalVersion": "7.3.0-alpha.1",
369
371
  "_versionPreviouslyCalculated": true,
370
372
  "publishConfig": {
371
373
  "tag": "alpha"
@@ -21,6 +21,12 @@ declare module '@ember/-internals/deprecations' {
21
21
  isEnabled: boolean;
22
22
  isRemoved: boolean;
23
23
  };
24
+ DEPRECATE_COMPARABLE_MIXIN: {
25
+ options: DeprecationOptions;
26
+ test: boolean;
27
+ isEnabled: boolean;
28
+ isRemoved: boolean;
29
+ };
24
30
  };
25
31
  export function deprecateUntil(message: string, deprecation: DeprecationObject): void;
26
32
  export {};
@@ -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
@@ -0,0 +1,150 @@
1
+ declare module '@ember/-internals/glimmer/lib/base-renderer' {
2
+ import type { Cursor, DebugRenderTree, Environment, RenderResult as GlimmerRenderResult, EvaluationContext, TreeBuilder, ClassicResolver } from "@glimmer/interfaces";
3
+ import type { SimpleDocument, SimpleElement } from "@simple-dom/interface";
4
+ export type IBuilder = (env: Environment, cursor: Cursor) => TreeBuilder;
5
+ export function errorLoopTransaction(fn: () => void): () => void;
6
+ /**
7
+ * The interface the `RendererState` needs from a render root. The base
8
+ * renderer only ever creates `ComponentRootState`s; the classic renderer
9
+ * (`./renderer`) adds `ClassicRootState` for outlet/classic-component roots.
10
+ */
11
+ export interface RendererRoot {
12
+ readonly type: string;
13
+ readonly result: GlimmerRenderResult | undefined;
14
+ readonly destroyed: boolean;
15
+ render(): void;
16
+ destroy(): void;
17
+ isFor(possibleRoot: unknown): boolean;
18
+ }
19
+ export class ComponentRootState implements RendererRoot {
20
+ #private;
21
+ readonly type = "component";
22
+ constructor(state: RendererState, definition: object, options: {
23
+ into: Cursor;
24
+ args?: Record<string, unknown>;
25
+ });
26
+ isFor(_possibleRoot: unknown): boolean;
27
+ render(): void;
28
+ destroy(): void;
29
+ get destroyed(): boolean;
30
+ get result(): GlimmerRenderResult | undefined;
31
+ }
32
+ export function _resetRenderers(): void;
33
+ export function renderSettled(): Promise<void>;
34
+ type Resolver = ClassicResolver;
35
+ interface RendererData {
36
+ owner: object;
37
+ context: EvaluationContext;
38
+ builder: IBuilder;
39
+ }
40
+ export class RendererState {
41
+ #private;
42
+ static create(data: RendererData, renderer: BaseRenderer): RendererState;
43
+ private constructor();
44
+ get debug(): {
45
+ roots: RendererRoot[];
46
+ inRenderTransaction: boolean;
47
+ isInteractive: boolean;
48
+ };
49
+ get roots(): RendererRoot[];
50
+ get owner(): object;
51
+ get builder(): IBuilder;
52
+ get context(): EvaluationContext;
53
+ get env(): Environment;
54
+ get isInteractive(): boolean;
55
+ renderRoot(root: RendererRoot, renderer: BaseRenderer): RendererRoot;
56
+ renderRoots(renderer: BaseRenderer): void;
57
+ scheduleRevalidate(renderer: BaseRenderer): void;
58
+ isValid(): boolean;
59
+ revalidate(renderer: BaseRenderer): void;
60
+ clearAllRoots(renderer: BaseRenderer): void;
61
+ }
62
+ type IntoTarget = Cursor | Element | SimpleElement;
63
+ /**
64
+ * The returned object from `renderComponent`
65
+ * @public
66
+ * @module @ember/renderer
67
+ */
68
+ export interface RenderResult {
69
+ /**
70
+ * Destroys the render tree and removes all rendered content from the element rendered into
71
+ */
72
+ destroy(): void;
73
+ }
74
+ /**
75
+ * Render a component into a DOM element.
76
+ *
77
+ * @method renderComponent
78
+ * @static
79
+ * @for @ember/renderer
80
+ * @param {Object} component The component to render.
81
+ * @param {Object} options
82
+ * @param {Element} options.into Where to render the component in to.
83
+ * @param {Object} [options.owner] Optionally specify the owner to use. This will be used for injections, and overall cleanup.
84
+ * @param {Object} [options.env] Optional renderer configuration
85
+ * @param {Object} [options.args] Optionally pass args in to the component. These may be reactive as long as it is an object or object-like
86
+ * @public
87
+ */
88
+ export function renderComponent(
89
+ /**
90
+ * The component definition to render.
91
+ *
92
+ * Any component that has had its manager registered is valid.
93
+ * For the component-types that ship with ember, manager registration
94
+ * does not need to be worried about.
95
+ */
96
+ component: object,
97
+ { owner, env, into, args, }: {
98
+ /**
99
+ * The element to render the component in to.
100
+ */
101
+ into: IntoTarget;
102
+ /**
103
+ * Optional owner. Defaults to `{}`, can be any object, but will need to implement the [Owner](https://api.emberjs.com/ember/release/classes/Owner) API for components within this render tree to access services.
104
+ */
105
+ owner?: object;
106
+ /**
107
+ * Optionally configure the rendering environment
108
+ */
109
+ env?: {
110
+ /**
111
+ * When false, modifiers will not run.
112
+ */
113
+ isInteractive?: boolean;
114
+ /**
115
+ * All other options are forwarded to the underlying renderer.
116
+ * (its API is currently private and out of scope for this RFC,
117
+ * so passing additional things here is also considered private API)
118
+ */
119
+ [rendererOption: string]: unknown;
120
+ };
121
+ /**
122
+ * These args get passed to the rendered component
123
+ *
124
+ * If your args are reactive, re-rendering will happen automatically.
125
+ *
126
+ */
127
+ args?: Record<string, unknown>;
128
+ }
129
+ ): RenderResult;
130
+ export class BaseRenderer {
131
+ static strict(owner: object, document: SimpleDocument | Document, options: {
132
+ isInteractive: boolean;
133
+ hasDOM?: boolean;
134
+ }): BaseRenderer;
135
+ readonly state: RendererState;
136
+ constructor(owner: object, envOptions: {
137
+ isInteractive: boolean;
138
+ hasDOM: boolean;
139
+ }, document: SimpleDocument, resolver: Resolver, builder: IBuilder);
140
+ get debugRenderTree(): DebugRenderTree;
141
+ isValid(): boolean;
142
+ destroy(): void;
143
+ render(component: object, options: {
144
+ into: IntoTarget;
145
+ args?: Record<string, unknown>;
146
+ }): RendererRoot;
147
+ rerender(): void;
148
+ }
149
+ export {};
150
+ }
@@ -0,0 +1,10 @@
1
+ declare module '@ember/-internals/glimmer/lib/component-managers/curly-brand' {
2
+ /**
3
+ * The brand for the curly component manager lives in its own module so that
4
+ * code which only needs to *detect* the curly manager (e.g. the resolver)
5
+ * does not have to import the manager itself (and with it the classic
6
+ * component machinery).
7
+ */
8
+ export const CURLY_MANAGER_BRAND: unique symbol;
9
+ export function isCurlyManager(manager: object): boolean;
10
+ }
@@ -7,6 +7,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
7
7
  import type { DynamicScope } from "@ember/-internals/glimmer/lib/renderer";
8
8
  import type RuntimeResolver from "@ember/-internals/glimmer/lib/resolver";
9
9
  import ComponentStateBucket from "@ember/-internals/glimmer/lib/utils/curly-component-state-bucket";
10
+ import { CURLY_MANAGER_BRAND } from "@ember/-internals/glimmer/lib/component-managers/curly-brand";
10
11
  export function getComponentCapturedArgs(component: object): CapturedArguments["named"] | undefined;
11
12
  export const DIRTY_TAG: unique symbol;
12
13
  export const IS_DISPATCHING_ATTRS: unique symbol;
@@ -20,6 +21,7 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
20
21
  positionalParams: string | string[] | undefined | null;
21
22
  };
22
23
  export default class CurlyComponentManager implements WithCreateInstance<ComponentStateBucket>, WithDynamicLayout<ComponentStateBucket, RuntimeResolver>, WithDynamicTagName<ComponentStateBucket> {
24
+ readonly [CURLY_MANAGER_BRAND] = true;
23
25
  protected templateFor(component: Component): CompilableProgram | null;
24
26
  getDynamicLayout(bucket: ComponentStateBucket): CompilableProgram | null;
25
27
  getTagName(state: ComponentStateBucket): Nullable<string>;
@@ -39,6 +41,5 @@ declare module '@ember/-internals/glimmer/lib/component-managers/curly' {
39
41
  export function processComponentInitializationAssertions(component: Component, props: any): void;
40
42
  export function initialRenderInstrumentDetails(component: any): any;
41
43
  export const CURLY_COMPONENT_MANAGER: CurlyComponentManager;
42
- export function isCurlyManager(manager: object): boolean;
43
- export {};
44
+ export { isCurlyManager } from "@ember/-internals/glimmer/lib/component-managers/curly-brand";
44
45
  }
@@ -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";