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
@@ -0,0 +1,64 @@
1
+ import '../../../shared-chunks/property_get-DAKgbeJX.js';
2
+ import typeOf from '../../utils/lib/type-of.js';
3
+ import { isEmberArray } from '../-internals.js';
4
+
5
+ /**
6
+ @module @ember/array
7
+ */
8
+
9
+ /**
10
+ Returns true if the passed object is an array or Array-like.
11
+
12
+ Objects are considered Array-like if any of the following are true:
13
+
14
+ - the object is a native Array
15
+ - the object has an objectAt property
16
+ - the object is an Object, and has a length property
17
+
18
+ Unlike `typeOf` this method returns true even if the passed object is
19
+ not formally an array but appears to be array-like (i.e. implements `Array`)
20
+
21
+ ```javascript
22
+ import { isArray } from '@ember/array';
23
+ import ArrayProxy from '@ember/array/proxy';
24
+
25
+ isArray(); // false
26
+ isArray([]); // true
27
+ isArray(ArrayProxy.create({ content: [] })); // true
28
+ ```
29
+
30
+ @method isArray
31
+ @static
32
+ @for @ember/array
33
+ @param {Object} obj The object to test
34
+ @return {Boolean} true if the passed object is an array or Array-like
35
+ @public
36
+ */
37
+ function isArray(obj) {
38
+
39
+ // SAFETY: Property read checks are safe if it's an object
40
+ if (!obj || obj.setInterval) {
41
+ return false;
42
+ }
43
+
44
+ // EmberArray's `init` brands every instance via `setEmberArray`; the only
45
+ // unbranded EmberArray objects are native arrays upgraded by `A()`, which
46
+ // `Array.isArray` catches. So this matches `EmberArray.detect` without
47
+ // pulling in the mixin's module.
48
+ if (Array.isArray(obj) || isEmberArray(obj)) {
49
+ return true;
50
+ }
51
+ let type = typeOf(obj);
52
+ if ('array' === type) {
53
+ return true;
54
+ }
55
+
56
+ // SAFETY: Property read checks are safe if it's an object
57
+ let length = obj.length;
58
+ if (typeof length === 'number' && length === length && 'object' === type) {
59
+ return true;
60
+ }
61
+ return false;
62
+ }
63
+
64
+ export { isArray as default };
@@ -1,14 +1,14 @@
1
- import { o as objectAt, b as tagForProperty } from '../../shared-chunks/chain-tags-BP0V2LnZ.js';
2
- import { a as alias } from '../../shared-chunks/alias-DsIh-16z.js';
3
- import { P as PROPERTY_DID_CHANGE } from '../../shared-chunks/computed-D6MVTTDd.js';
4
- import { d as replace, c as arrayContentWillChange, b as arrayContentDidChange, a as addArrayObserver, r as removeArrayObserver } from '../../shared-chunks/array-DYFI95FA.js';
5
- import { g as get } from '../../shared-chunks/property_get-Sw0SicEZ.js';
1
+ import { o as objectAt, a as tagForProperty } from '../../shared-chunks/chain-tags-B2J7DsxO.js';
2
+ import { a as alias } from '../../shared-chunks/alias-Bod6qdNp.js';
3
+ import { P as PROPERTY_DID_CHANGE } from '../../shared-chunks/computed-DtIStxvq.js';
4
+ import { r as replace, a as arrayContentWillChange, b as arrayContentDidChange, c as addArrayObserver, d as removeArrayObserver } from '../../shared-chunks/array-BzReKMeW.js';
5
+ import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
6
6
  import { i as isObject } from '../../shared-chunks/spec-BXl1reqK.js';
7
7
  import EmberObject from '../object/index.js';
8
8
  import { MutableArray } from './index.js';
9
- import { s as setCustomTagFor } from '../../shared-chunks/args-proxy-CaXVcI8G.js';
10
- import { k as consumeTag, x as validateTag, y as valueForTag, j as combine } from '../../shared-chunks/cache-CG6_L9db.js';
11
- import { t as tagFor } from '../../shared-chunks/meta-Ce6-qROq.js';
9
+ import { s as setCustomTagFor } from '../../shared-chunks/args-proxy-CCoFtYLS.js';
10
+ import { c as consumeTag, v as validateTag, a as valueForTag, d as combine } from '../../shared-chunks/cache-CofLhaS4.js';
11
+ import { t as tagFor } from '../../shared-chunks/meta-BJtIZDir.js';
12
12
 
13
13
  /**
14
14
  @module @ember/array/proxy
@@ -1 +1,305 @@
1
- export { H as default, h as helper } from '../../shared-chunks/helper-CCK8Ef0x.js';
1
+ import { setOwner } from '../-internals/owner/index.js';
2
+ import { FrameworkObject } from '../object/-internals.js';
3
+ import { g as getDebugName } from '../../shared-chunks/get-debug-name-BDxIL2Y1.js';
4
+ import { join } from '../runloop/index.js';
5
+ import { i as helperCapabilities } from '../../shared-chunks/api-DlJKfm_f.js';
6
+ import { b as setHelperManager } from '../../shared-chunks/api-B_poQGXS.js';
7
+ import { r as createTag, D as DIRTY_TAG, c as consumeTag } from '../../shared-chunks/cache-CofLhaS4.js';
8
+ import { I as IS_CLASSIC_HELPER } from '../../shared-chunks/helper-brand-C9_8vvOf.js';
9
+
10
+ /**
11
+ @module @ember/component
12
+ */
13
+
14
+ const RECOMPUTE_TAG = Symbol('RECOMPUTE_TAG');
15
+
16
+ // Signature type utilities
17
+
18
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
19
+
20
+ // Implements Ember's `Factory` interface and tags it for narrowing/checking.
21
+
22
+ // A zero-runtime-overhead private symbol to use in branding the component to
23
+ // preserve its type parameter.
24
+
25
+ /**
26
+ Ember Helpers are functions that can compute values, and are used in templates.
27
+ For example, this code calls a helper named `format-currency`:
28
+
29
+ ```app/templates/application.gjs
30
+ import Cost from '../components/cost';
31
+
32
+ <template>
33
+ <Cost @cents={{230}} />
34
+ </template>
35
+ ```
36
+
37
+ ```app/components/cost.gjs
38
+ import formatCurrency from '../helpers/format-currency';
39
+
40
+ <template>
41
+ <div>{{formatCurrency @cents currency="$"}}</div>
42
+ </template>
43
+ ```
44
+
45
+ Additionally a helper can be called as a nested helper.
46
+ In this example, we show the formatted currency value if the `showMoney`
47
+ named argument is truthy.
48
+
49
+ ```gjs
50
+ import formatCurrency from '../helpers/format-currency';
51
+
52
+ <template>
53
+ {{if @showMoney (formatCurrency @cents currency="$")}}
54
+ </template>
55
+ ```
56
+
57
+ Helpers defined using a class must provide a `compute` function. For example:
58
+
59
+ ```app/helpers/format-currency.js
60
+ import Helper from '@ember/component/helper';
61
+
62
+ export default class extends Helper {
63
+ compute([cents], { currency }) {
64
+ return `${currency}${cents * 0.01}`;
65
+ }
66
+ }
67
+ ```
68
+
69
+ Each time the input to a helper changes, the `compute` function will be
70
+ called again.
71
+
72
+ As instances, these helpers also have access to the container and will accept
73
+ injected dependencies.
74
+
75
+ Additionally, class helpers can call `recompute` to force a new computation.
76
+
77
+ @class Helper
78
+ @extends CoreObject
79
+ @public
80
+ @since 1.13.0
81
+ */
82
+ // ESLint doesn't understand declaration merging.
83
+ /* eslint-disable import/export */
84
+
85
+ class Helper extends FrameworkObject {
86
+ static isHelperFactory = true;
87
+ static [IS_CLASSIC_HELPER] = true;
88
+
89
+ // `packages/ember/index.js` was setting `Helper.helper`. This seems like
90
+ // a bad idea and probably not something we want. We've moved that definition
91
+ // here, but it should definitely be reviewed and probably removed.
92
+ /** @deprecated */
93
+ static helper = helper;
94
+
95
+ // SAFETY: this is initialized in `init`, rather than `constructor`. It is
96
+ // safe to `declare` like this *if and only if* nothing uses the constructor
97
+ // directly in this class, since nothing else can run before `init`.
98
+
99
+ // SAFETY: this has no runtime existence whatsoever; it is a "phantom type"
100
+ // here to preserve the type param.
101
+
102
+ init(properties) {
103
+ super.init(properties);
104
+ this[RECOMPUTE_TAG] = createTag();
105
+ }
106
+
107
+ /**
108
+ On a class-based helper, it may be useful to force a recomputation of that
109
+ helpers value. This is akin to `rerender` on a component.
110
+ In most cases, `recompute` is not needed because accessing tracked
111
+ properties in `compute` will automatically re-run the helper when
112
+ those properties change. Use `recompute` only when you need to
113
+ trigger a recomputation imperatively, for example in response to an
114
+ external event:
115
+ ```app/helpers/current-time.js
116
+ import Helper from '@ember/component/helper';
117
+ export default class CurrentTimeHelper extends Helper {
118
+ interval = null;
119
+ compute() {
120
+ return new Date().toLocaleTimeString();
121
+ }
122
+ constructor() {
123
+ super(...arguments);
124
+ this.interval = setInterval(() => this.recompute(), 1000);
125
+ }
126
+ willDestroy() {
127
+ super.willDestroy();
128
+ clearInterval(this.interval);
129
+ }
130
+ }
131
+ ```
132
+ @method recompute
133
+ @public
134
+ @since 1.13.0
135
+ */
136
+ recompute() {
137
+ join(() => DIRTY_TAG(this[RECOMPUTE_TAG]));
138
+ }
139
+ }
140
+ /* eslint-enable import/export */
141
+
142
+ class ClassicHelperManager {
143
+ capabilities = helperCapabilities('3.23', {
144
+ hasValue: true,
145
+ hasDestroyable: true
146
+ });
147
+ ownerInjection;
148
+ constructor(owner) {
149
+ let ownerInjection = {};
150
+ setOwner(ownerInjection, owner);
151
+ this.ownerInjection = ownerInjection;
152
+ }
153
+ createHelper(definition, args) {
154
+ let instance = isFactoryManager(definition) ? definition.create() : definition.create(this.ownerInjection);
155
+ return {
156
+ instance,
157
+ args
158
+ };
159
+ }
160
+ getDestroyable({
161
+ instance
162
+ }) {
163
+ return instance;
164
+ }
165
+ getValue({
166
+ instance,
167
+ args
168
+ }) {
169
+ let {
170
+ positional,
171
+ named
172
+ } = args;
173
+ let ret = instance.compute(positional, named);
174
+ consumeTag(instance[RECOMPUTE_TAG]);
175
+ return ret;
176
+ }
177
+ getDebugName(definition) {
178
+ return getDebugName((definition.class || definition)['prototype']);
179
+ }
180
+ }
181
+ function isFactoryManager(obj) {
182
+ return obj != null && 'class' in obj;
183
+ }
184
+ setHelperManager(owner => {
185
+ return new ClassicHelperManager(owner);
186
+ }, Helper);
187
+
188
+ ///////////
189
+
190
+ class Wrapper {
191
+ isHelperFactory = true;
192
+ constructor(compute) {
193
+ this.compute = compute;
194
+ }
195
+ create() {
196
+ // needs new instance or will leak containers
197
+ return {
198
+ compute: this.compute
199
+ };
200
+ }
201
+ }
202
+ class SimpleClassicHelperManager {
203
+ capabilities = helperCapabilities('3.23', {
204
+ hasValue: true
205
+ });
206
+ createHelper(definition, args) {
207
+ return () => definition.compute.call(null, args.positional, args.named);
208
+ }
209
+ getValue(fn) {
210
+ return fn();
211
+ }
212
+ getDebugName(definition) {
213
+ return getDebugName(definition.compute);
214
+ }
215
+ }
216
+ const SIMPLE_CLASSIC_HELPER_MANAGER = new SimpleClassicHelperManager();
217
+ setHelperManager(() => SIMPLE_CLASSIC_HELPER_MANAGER, Wrapper.prototype);
218
+
219
+ /*
220
+ Function-based helpers need to present with a constructor signature so that
221
+ type parameters can be preserved when `helper()` is passed a generic function
222
+ (this is particularly key for checking helper invocations with Glint).
223
+ Accordingly, we define an abstract class and declaration merge it with the
224
+ interface; this inherently provides an `abstract` constructor. Since it is
225
+ `abstract`, it is not callable, which is important since end users should not
226
+ be able to do `let myHelper = helper(someFn); new myHelper()`.
227
+ */
228
+
229
+ /**
230
+ * The type of a function-based helper.
231
+ *
232
+ * @note This is *not* user-constructible: it is exported only so that the type
233
+ * returned by the `helper` function can be named (and indeed can be exported
234
+ * like `export default helper(...)` safely).
235
+ */
236
+ // Making `FunctionBasedHelper` an alias this way allows callers to name it in
237
+ // terms meaningful to *them*, while preserving the type behavior described on
238
+ // the `abstract class FunctionBasedHelperInstance` below.
239
+
240
+ // This abstract class -- specifically, its `protected abstract __concrete__`
241
+ // member -- prevents subclasses from doing `class X extends helper(..)`, since
242
+ // that is an error at runtime. While it is rare that people would type that, it
243
+ // is not impossible and we use this to give them early signal via the types for
244
+ // a behavior which will break (and in a somewhat inscrutable way!) at runtime.
245
+ //
246
+ // This is needful because we lie about what this actually is for Glint's sake:
247
+ // a function-based helper returns a `Factory<SimpleHelper>`, which is designed
248
+ // to be "opaque" from a consumer's POV, i.e. not user-callable or constructible
249
+ // but only useable in a template (or via `invokeHelper()` which also treats it
250
+ // as a fully opaque `object` from a type POV). But Glint needs a `Helper<S>` to
251
+ // make it work the same way as class-based helpers. (Note that this does not
252
+ // hold for plain functions as helpers, which it can handle distinctly.) This
253
+ // signature thus makes it so that the item is usable *as* a `Helper` in Glint,
254
+ // but without letting end users treat it as a helper class instance.
255
+
256
+ /**
257
+ In many cases it is not necessary to use the full `Helper` class.
258
+ The `helper` method create pure-function helpers without instances.
259
+ For example:
260
+
261
+ ```app/helpers/format-currency.js
262
+ import { helper } from '@ember/component/helper';
263
+
264
+ export default helper(function([cents], {currency}) {
265
+ return `${currency}${cents * 0.01}`;
266
+ });
267
+ ```
268
+
269
+ @static
270
+ @param {Function} helper The helper function
271
+ @method helper
272
+ @for @ember/component/helper
273
+ @public
274
+ @since 1.13.0
275
+ */
276
+ // This overload allows users to write types directly on the callback passed to
277
+ // the `helper` function and infer the resulting type correctly.
278
+
279
+ // This overload allows users to provide a `Signature` type explicitly at the
280
+ // helper definition site, e.g. `helper<Sig>((pos, named) => {...})`. **Note:**
281
+ // this overload must appear second, since TS' inference engine will not
282
+ // correctly infer the type of `S` here from the types on the supplied callback.
283
+
284
+ function helper(helperFn) {
285
+ // SAFETY: this is completely lies, in two ways:
286
+ //
287
+ // 1. `Wrapper` is a `Factory<SimpleHelper<S>>`, but from the perspective of
288
+ // any external callers (i.e. Ember *users*), it is quite important that
289
+ // the `Factory` relationship be hidden, because it is not public API for
290
+ // an end user to call `.create()` on a helper created this way. Instead,
291
+ // we provide them an `abstract new` signature (which means it cannot be
292
+ // directly constructed by calling `new` on it) and which does not have the
293
+ // `.create()` signature on it anymore.
294
+ //
295
+ // 2. The produced type here ends up being a subtype of `Helper`, which is not
296
+ // strictly true. This is necessary for the sake of Glint, which provides
297
+ // its information by way of a "declaration merge" with `Helper<S>` in the
298
+ // case of items produced by `helper()`.
299
+ //
300
+ // Long-term, this entire construct can go away in favor of deprecating the
301
+ // `helper()` invocation in favor of using plain functions.
302
+ return new Wrapper(helperFn);
303
+ }
304
+
305
+ export { Helper as default, helper };
@@ -1,25 +1,25 @@
1
1
  export { g as getComponentTemplate, s as setComponentTemplate } from '../../shared-chunks/template-Dc_cBOoX.js';
2
- import { n as nativeDescDecorator } from '../../shared-chunks/decorator-B8Lpq40g.js';
3
- import { g as get } from '../../shared-chunks/property_get-Sw0SicEZ.js';
4
- import { P as PROPERTY_DID_CHANGE } from '../../shared-chunks/computed-D6MVTTDd.js';
2
+ import { n as nativeDescDecorator } from '../../shared-chunks/decorator-9ikVwsjY.js';
3
+ import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
4
+ import { P as PROPERTY_DID_CHANGE } from '../../shared-chunks/computed-DtIStxvq.js';
5
5
  import { getOwner } from '../-internals/owner/index.js';
6
6
  import TargetActionSupport from '../-internals/runtime/lib/mixins/target_action_support.js';
7
7
  import ActionSupport from '../-internals/views/lib/mixins/action_support.js';
8
8
  import { getViewElement, getChildViews, addChildView } from '../-internals/views/lib/system/utils.js';
9
9
  import CoreView from '../-internals/views/lib/views/core_view.js';
10
10
  import '../object/index.js';
11
- import { a as guidFor } from '../../shared-chunks/guid-PO2v9BaN.js';
12
- import { s as setInternalComponentManager } from '../../shared-chunks/api-DOLN_cR2.js';
13
- import { l as isUpdatableRef, u as updateRef } from '../../shared-chunks/reference-D2agTt1V.js';
11
+ import { g as guidFor } from '../../shared-chunks/guid-Cbq2sNV_.js';
12
+ import { s as setInternalComponentManager } from '../../shared-chunks/api-DlJKfm_f.js';
13
+ import { b as isUpdatableRef, u as updateRef } from '../../shared-chunks/reference-CG0yPgLy.js';
14
14
  import { n as normalizeProperty } from '../../shared-chunks/props-fiqxqhAH.js';
15
- import { m as createTag, D as DIRTY_TAG$1 } from '../../shared-chunks/cache-CG6_L9db.js';
16
- import { I as IS_DISPATCHING_ATTRS, D as DIRTY_TAG, B as BOUNDS, g as getComponentCapturedArgs, C as CURLY_COMPONENT_MANAGER } from '../../shared-chunks/curly-DCYSwLtz.js';
15
+ import { r as createTag, D as DIRTY_TAG$1 } from '../../shared-chunks/cache-CofLhaS4.js';
16
+ import { I as IS_DISPATCHING_ATTRS, D as DIRTY_TAG, B as BOUNDS, g as getComponentCapturedArgs, b as CURLY_COMPONENT_MANAGER } from '../../shared-chunks/curly-a6DP7r87.js';
17
17
  import { h as hasDOM } from '../../shared-chunks/has-dom-DdQORPzI.js';
18
18
  import { a as decorateMethodV2 } from '../../shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js';
19
- export { I as Input, T as Textarea } from '../../shared-chunks/textarea-B_JYBuE8.js';
20
- import { s as setComponentManager$1 } from '../../shared-chunks/api-CGZbGcvX.js';
21
- export { c as capabilities } from '../../shared-chunks/api-CGZbGcvX.js';
22
- import '../../shared-chunks/capabilities-_5e35539.js';
19
+ export { I as Input, T as Textarea } from '../../shared-chunks/textarea-DOmZ1x0E.js';
20
+ import { s as setComponentManager$1 } from '../../shared-chunks/api-B_poQGXS.js';
21
+ export { c as capabilities } from '../../shared-chunks/api-B_poQGXS.js';
22
+ import '../../shared-chunks/capabilities-BuVYh-vx.js';
23
23
 
24
24
  let lazyEventsProcessed = new WeakMap();
25
25
  const EMPTY_ARRAY = Object.freeze([]);
@@ -55,6 +55,12 @@ const EMPTY_ARRAY = Object.freeze([]);
55
55
  API documentation for Template-only or Glimmer components, it is [available
56
56
  here](/ember/release/modules/@glimmer%2Fcomponent).
57
57
 
58
+ Note: Prior to Ember 6.8, by default, components were authored in paired `.hbs` and `.js`
59
+ files. This is still supported, but the default authoring format is now `.gjs` or "template tag".
60
+ The documentation for `@ember/component` still refers to the older authoring format. To read about
61
+ the new authoring format, see the
62
+ [Glimmer Component API documentation](/ember/release/modules/@glimmer%2Fcomponent).
63
+
58
64
  ## Defining a Classic Component
59
65
 
60
66
  If you want to customize the component in order to handle events, transform
@@ -81,7 +87,7 @@ const EMPTY_ARRAY = Object.freeze([]);
81
87
 
82
88
  And then use it in the component's template:
83
89
 
84
- ```app/templates/components/person-profile.hbs
90
+ ```app/components/person-profile.hbs
85
91
  <h1>{{this.displayName}}</h1>
86
92
  {{yield}}
87
93
  ```
@@ -469,7 +475,7 @@ const EMPTY_ARRAY = Object.freeze([]);
469
475
  The `layout` property should be set to the default export of a template
470
476
  module, which is the name of a template file without the `.hbs` extension.
471
477
 
472
- ```app/templates/components/person-profile.hbs
478
+ ```app/components/person-profile.hbs
473
479
  <h1>Person's Title</h1>
474
480
  <div class='details'>{{yield}}</div>
475
481
  ```
@@ -1,4 +1,4 @@
1
- import { t as templateOnlyComponent } from '../../shared-chunks/template-only-CP0NT7ce.js';
1
+ import { t as templateOnlyComponent } from '../../shared-chunks/template-only-DKNcKM5b.js';
2
2
 
3
3
  /**
4
4
  @module @ember/component/template-only
@@ -1,8 +1,8 @@
1
1
  import { getOwner } from '../-internals/owner/index.js';
2
- import { d as computed } from '../../shared-chunks/computed-D6MVTTDd.js';
3
- import { g as get } from '../../shared-chunks/property_get-Sw0SicEZ.js';
2
+ import { c as computed } from '../../shared-chunks/computed-DtIStxvq.js';
3
+ import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
4
4
  import { FrameworkObject } from '../object/-internals.js';
5
- import { i as inject$1 } from '../../shared-chunks/injected_property-COGiYHKc.js';
5
+ import { i as inject$1 } from '../../shared-chunks/injected_property-Y-FadDej.js';
6
6
  import Mixin from '../object/mixin.js';
7
7
  import ActionHandler from '../-internals/runtime/lib/mixins/action_handler.js';
8
8
 
@@ -1,12 +1,12 @@
1
1
  import { getOwner } from '../-internals/owner/index.js';
2
2
  import { _backburner, next } from '../runloop/index.js';
3
- import { g as get } from '../../shared-chunks/property_get-Sw0SicEZ.js';
3
+ import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
4
4
  import { dasherize } from '../-internals/string/index.js';
5
5
  import Namespace from '../application/namespace.js';
6
6
  import EmberObject from '../object/index.js';
7
7
  import { A } from '../array/index.js';
8
- import { l as createCache, k as consumeTag, w as untrack, q as getValue } from '../../shared-chunks/cache-CG6_L9db.js';
9
- import { t as tagFor } from '../../shared-chunks/meta-Ce6-qROq.js';
8
+ import { e as createCache, c as consumeTag, u as untrack, g as getValue } from '../../shared-chunks/cache-CofLhaS4.js';
9
+ import { t as tagFor } from '../../shared-chunks/meta-BJtIZDir.js';
10
10
  import '../../shared-chunks/env-DXxsTFkM.js';
11
11
  import { assert } from './lib/assert.js';
12
12
 
@@ -4,14 +4,14 @@ import Namespace from '../application/namespace.js';
4
4
  import { Registry } from '../-internals/container/index.js';
5
5
  import DAG from '../../dag-map/index.js';
6
6
  import ContainerDebugAdapter from '../debug/container-debug-adapter.js';
7
- import { g as get } from '../../shared-chunks/property_get-Sw0SicEZ.js';
8
- import { s as set } from '../../shared-chunks/property_set-SHEIPMUG.js';
7
+ import { g as get } from '../../shared-chunks/property_get-DAKgbeJX.js';
8
+ import { s as set } from '../../shared-chunks/property_set-BaQJdVfS.js';
9
9
  import EngineInstance from './instance.js';
10
10
  import '../../route-recognizer/index.js';
11
- import '../../shared-chunks/rsvp-C6j8G1D1.js';
12
- import '../../shared-chunks/unrecognized-url-error-ClNyMFJt.js';
11
+ import '../../shared-chunks/rsvp.es-DR7yS7qg.js';
12
+ import '../../shared-chunks/unrecognized-url-error-jjQ-FqKB.js';
13
13
  import RoutingService from '../routing/lib/routing-service.js';
14
- import { a as setupEngineRegistry } from '../../shared-chunks/setup-registry-D14I0iDX.js';
14
+ import { b as setupEngineRegistry } from '../../shared-chunks/setup-registry-Dfu8EyLU.js';
15
15
  import RegistryProxyMixin from '../-internals/runtime/lib/mixins/registry_proxy.js';
16
16
  import { StrictResolver } from './lib/strict-resolver.js';
17
17
 
@@ -1,11 +1,11 @@
1
1
  import EmberObject from '../object/index.js';
2
2
  import '../-internals/runtime/lib/ext/rsvp.js';
3
3
  import { Registry, privatize } from '../-internals/container/index.js';
4
- import { a as guidFor } from '../../shared-chunks/guid-PO2v9BaN.js';
4
+ import { g as guidFor } from '../../shared-chunks/guid-Cbq2sNV_.js';
5
5
  import { ENGINE_PARENT, setEngineParent, getEngineParent } from './lib/engine-parent.js';
6
6
  import ContainerProxyMixin from '../-internals/runtime/lib/mixins/container_proxy.js';
7
7
  import RegistryProxyMixin from '../-internals/runtime/lib/mixins/registry_proxy.js';
8
- import { R as RSVP } from '../../shared-chunks/rsvp-C6j8G1D1.js';
8
+ import { R as RSVP } from '../../shared-chunks/rsvp.es-DR7yS7qg.js';
9
9
 
10
10
  /**
11
11
  @module @ember/engine
@@ -1,11 +1,11 @@
1
- import { b as setHelperManager$1 } from '../../shared-chunks/api-CGZbGcvX.js';
2
- import { i as helperCapabilities } from '../../shared-chunks/api-DOLN_cR2.js';
3
- import { i as invokeHelper$1 } from '../../shared-chunks/invoke-D_jsLbsj.js';
4
- import { a as array$1, f as fn$1, h as hash$1 } from '../../shared-chunks/hash-C6IoC4eR.js';
5
- import { c as concat$1, g as get$1 } from '../../shared-chunks/get-tlL23wmp.js';
6
- import { a as and$1, e as eq$1, g as gt$1, b as gte$1, l as lt$1, c as lte$1, n as neq$1, d as not$1, o as or$1 } from '../../shared-chunks/or-sYlRiUn_.js';
7
- import { e as element$1 } from '../../shared-chunks/element-CT5H5uxF.js';
8
- import { u as uniqueId$1 } from '../../shared-chunks/unique-id-Hn8Qp4dS.js';
1
+ import { b as setHelperManager$1 } from '../../shared-chunks/api-B_poQGXS.js';
2
+ import { i as helperCapabilities } from '../../shared-chunks/api-DlJKfm_f.js';
3
+ import { i as invokeHelper$1 } from '../../shared-chunks/invoke-DhQ5QRp2.js';
4
+ import { a as array$1, f as fn$1, h as hash$1 } from '../../shared-chunks/hash-gEXIsSO4.js';
5
+ import { c as concat$1, g as get$1 } from '../../shared-chunks/get-Dago5uGl.js';
6
+ import { a as and$1, e as eq$1, g as gt$1, b as gte$1, l as lt$1, c as lte$1, n as neq$1, d as not$1, o as or$1 } from '../../shared-chunks/not-BOIVROuv.js';
7
+ import { e as element$1 } from '../../shared-chunks/element-DgHdPZ8u.js';
8
+ import { u as uniqueId$1 } from '../../shared-chunks/unique-id-o2pS74go.js';
9
9
 
10
10
  /**
11
11
  @module @ember/helper
@@ -336,18 +336,12 @@ const invokeHelper = invokeHelper$1;
336
336
  * as an argument to your components.
337
337
  *
338
338
  * ```
339
- * import { hash } from '@ember/helper';
340
- *
341
339
  * <template>
342
340
  * {{#each-in (hash givenName='Jen' familyName='Weber') as |key value|}}
343
341
  * <p>{{key}}: {{value}}</p>
344
342
  * {{/each-in}}
345
343
  * </template>
346
344
  * ```
347
- *
348
- * **NOTE:** this example uses the experimental `<template>` feature, which is
349
- * the only place you need to import `hash` to use it (it is a built-in when
350
- * writing standalone `.hbs` files).
351
345
  */
352
346
  const hash = hash$1;
353
347
  /**
@@ -355,7 +349,6 @@ const hash = hash$1;
355
349
  * as an argument to your components.
356
350
  *
357
351
  * ```js
358
- * import { array } from '@ember/helper';
359
352
  *
360
353
  * <template>
361
354
  * <ul>
@@ -364,10 +357,6 @@ const hash = hash$1;
364
357
  * {{/each}}
365
358
  * </ul>
366
359
  * </template>
367
- *
368
- * **NOTE:** this example uses the experimental `<template>` feature, which is
369
- * the only place you need to import `array` to use it (it is a built-in when
370
- * writing standalone `.hbs` files).
371
360
  * ```
372
361
  */
373
362
  const array = array$1;
@@ -388,10 +377,6 @@ const array = array$1;
388
377
  *
389
378
  * This will display the result of `@foo.item1` when `index` is `1`, and
390
379
  * `this.foo.item2` when `index` is `2`, etc.
391
- *
392
- * **NOTE:** this example uses the experimental `<template>` feature, which is
393
- * the only place you need to import `concat` to use it (it is a built-in when
394
- * writing standalone `.hbs` files).
395
380
  */
396
381
  const concat = concat$1;
397
382
  /**
@@ -431,10 +416,6 @@ const concat = concat$1;
431
416
  *
432
417
  * This will display the result of `@foo.item1` when `index` is `1`, and
433
418
  * `this.foo.item2` when `index` is `2`, etc.
434
- *
435
- * **NOTE:** this example uses the experimental `<template>` feature, which is
436
- * the only place you need to import `concat` to use it (it is a built-in when
437
- * writing standalone `.hbs` files).
438
419
  */
439
420
  const get = get$1;
440
421
  /**
@@ -1,5 +1,5 @@
1
- import { d as setModifierManager$1 } from '../../shared-chunks/api-CGZbGcvX.js';
2
- export { m as capabilities } from '../../shared-chunks/api-CGZbGcvX.js';
1
+ import { d as setModifierManager$1 } from '../../shared-chunks/api-B_poQGXS.js';
2
+ export { m as capabilities } from '../../shared-chunks/api-B_poQGXS.js';
3
3
  export { on } from './on.js';
4
4
 
5
5
  // NOTE: this uses assignment to *require* that the `glimmerSetModifierManager`
@@ -1,4 +1,4 @@
1
- import { o as on$1 } from '../../shared-chunks/on-Dgmychhk.js';
1
+ import { o as on$1 } from '../../shared-chunks/on-BZHAxzdq.js';
2
2
 
3
3
  // In normal TypeScript, this modifier is essentially an opaque token that just
4
4
  // needs to be importable. Declaring it with a unique interface like this,
@@ -1,6 +1,6 @@
1
1
  export { g as cacheFor } from '../../shared-chunks/computed_cache-DmYKevAP.js';
2
- export { a as guidFor } from '../../shared-chunks/guid-PO2v9BaN.js';
3
- import '../../shared-chunks/super-D4qkU4uq.js';
2
+ export { g as guidFor } from '../../shared-chunks/guid-Cbq2sNV_.js';
3
+ import '../../shared-chunks/super-BBBjgF69.js';
4
4
  import EmberObject from './index.js';
5
5
 
6
6
  // Here we have runtime shenanigans to add debug-only errors to the class in dev
@@ -1,6 +1,6 @@
1
- import { s as setClassicDecorator, c as isElementDescriptor } from '../../shared-chunks/decorator-B8Lpq40g.js';
2
- import { v as track, U as UPDATE_TAG, k as consumeTag } from '../../shared-chunks/cache-CG6_L9db.js';
3
- import { t as tagFor } from '../../shared-chunks/meta-Ce6-qROq.js';
1
+ import { s as setClassicDecorator, i as isElementDescriptor } from '../../shared-chunks/decorator-9ikVwsjY.js';
2
+ import { t as track, U as UPDATE_TAG, c as consumeTag } from '../../shared-chunks/cache-CofLhaS4.js';
3
+ import { t as tagFor } from '../../shared-chunks/meta-BJtIZDir.js';
4
4
 
5
5
  let wrapGetterSetter = function (target, key, desc) {
6
6
  let {