ember-source 7.3.0-alpha.5 → 7.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/dev/packages/@ember/-internals/deprecations/index.js +9 -0
  3. package/dist/dev/packages/@ember/-internals/glimmer/index.js +7 -7
  4. package/dist/dev/packages/@ember/-internals/routing/index.js +2 -2
  5. package/dist/dev/packages/@ember/-internals/runtime/index.js +1 -1
  6. package/dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  7. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +4 -0
  8. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -0
  9. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -0
  10. package/dist/dev/packages/@ember/application/index.js +3 -3
  11. package/dist/dev/packages/@ember/application/instance.js +9 -9
  12. package/dist/dev/packages/@ember/component/helper.js +2 -2
  13. package/dist/dev/packages/@ember/component/index.js +3 -3
  14. package/dist/dev/packages/@ember/engine/index.js +3 -3
  15. package/dist/dev/packages/@ember/engine/instance.js +1 -1
  16. package/dist/dev/packages/@ember/helper/index.js +1132 -79
  17. package/dist/dev/packages/@ember/modifier/on.js +1 -1
  18. package/dist/dev/packages/@ember/object/compat.js +0 -32
  19. package/dist/dev/packages/@ember/renderer/index.js +1 -1
  20. package/dist/dev/packages/@ember/routing/-internals.js +2 -2
  21. package/dist/dev/packages/@ember/routing/index.js +11 -28
  22. package/dist/dev/packages/@ember/routing/lib/utils.js +2 -2
  23. package/dist/dev/packages/@ember/routing/route.js +2 -2
  24. package/dist/dev/packages/@ember/routing/router-service.js +9 -9
  25. package/dist/dev/packages/@ember/routing/router.js +2 -2
  26. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  27. package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -2
  28. package/dist/dev/packages/@ember/template-factory/index.js +1 -1
  29. package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -2
  30. package/dist/dev/packages/@glimmer/program/index.js +3 -3
  31. package/dist/dev/packages/@glimmer/runtime/index.js +7 -7
  32. package/dist/dev/packages/@glimmer/wire-format/index.js +2 -5
  33. package/dist/dev/packages/ember/version.js +1 -1
  34. package/dist/dev/packages/ember-template-compiler/index.js +2 -2
  35. package/dist/dev/packages/router_js/index.js +2 -2
  36. package/dist/dev/packages/rsvp/index.js +1 -2281
  37. package/dist/dev/packages/shared-chunks/{arguments-CDkbOqTS.js → arguments-DniR8eF2.js} +5 -18
  38. package/dist/dev/packages/shared-chunks/{compiler-QUSl_urU.js → compiler-BHFFl-fv.js} +1 -1
  39. package/dist/dev/packages/shared-chunks/{curly-BbL6STF2.js → curly-BCD_vyHq.js} +1 -1
  40. package/dist/dev/packages/shared-chunks/{element-BYLB-q7a.js → element-Cgoi4ldD.js} +0 -24
  41. package/dist/dev/packages/shared-chunks/get-zsePWrJL.js +40 -0
  42. package/dist/dev/packages/shared-chunks/hash-BFu91gtE.js +57 -0
  43. package/dist/dev/packages/shared-chunks/{index-Czn34wUZ.js → index-B5gBbO_p.js} +193 -77
  44. package/dist/dev/packages/shared-chunks/{index-DaFzpTIE.js → index-BYUSIu_W.js} +3 -3
  45. package/dist/dev/packages/shared-chunks/{invoke-d9sqa50M.js → invoke-CgF42joE.js} +1 -1
  46. package/dist/dev/packages/shared-chunks/{not-DYh6AY9Z.js → not-0cVb-rLf.js} +1 -1
  47. package/dist/dev/packages/shared-chunks/{on-DlF0Wy7P.js → on-CVIjn2C-.js} +22 -11
  48. package/dist/dev/packages/shared-chunks/{opcodes-CplRyHl_.js → opcodes-DDajoGhq.js} +0 -4
  49. package/dist/dev/packages/shared-chunks/{outlet-B4qORyui.js → outlet-BO5-QFmm.js} +3 -3
  50. package/dist/dev/packages/shared-chunks/{program-context-Dq8xN2HI.js → program-context-BBB1Ga5h.js} +2 -2
  51. package/dist/dev/packages/shared-chunks/{render-CtH73XOv.js → render-D_Rawf-r.js} +2 -2
  52. package/dist/{prod/packages/shared-chunks/rsvp.es-DR7yS7qg.js → dev/packages/shared-chunks/rsvp-aLN_pQtn.js} +152 -148
  53. package/dist/dev/packages/shared-chunks/{setup-registry-h519ZsHS.js → setup-registry-Dp5dtaLa.js} +35 -13
  54. package/dist/{prod/packages/shared-chunks/syscall-ops-CN7STuUn.js → dev/packages/shared-chunks/syscall-ops-CkPT1Kfx.js} +1 -2
  55. package/dist/dev/packages/shared-chunks/{textarea-DEvw4ezm.js → textarea-DvS6Xmdh.js} +3 -23
  56. package/dist/dev/packages/shared-chunks/{unique-id-DQOhouG1.js → unique-id-Csxuh1I7.js} +0 -4
  57. package/dist/dev/packages/shared-chunks/{unrecognized-url-error-B8loxkay.js → unrecognized-url-error-cXUp-SK3.js} +1 -1
  58. package/dist/prod/packages/@ember/-internals/deprecations/index.js +9 -0
  59. package/dist/prod/packages/@ember/-internals/glimmer/index.js +7 -7
  60. package/dist/prod/packages/@ember/-internals/routing/index.js +2 -2
  61. package/dist/prod/packages/@ember/-internals/runtime/index.js +1 -1
  62. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  63. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +4 -0
  64. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -0
  65. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -0
  66. package/dist/prod/packages/@ember/application/index.js +3 -3
  67. package/dist/prod/packages/@ember/application/instance.js +9 -9
  68. package/dist/prod/packages/@ember/component/helper.js +2 -2
  69. package/dist/prod/packages/@ember/component/index.js +3 -3
  70. package/dist/prod/packages/@ember/engine/index.js +3 -3
  71. package/dist/prod/packages/@ember/engine/instance.js +1 -1
  72. package/dist/prod/packages/@ember/helper/index.js +1132 -79
  73. package/dist/prod/packages/@ember/modifier/on.js +1 -1
  74. package/dist/prod/packages/@ember/object/compat.js +0 -32
  75. package/dist/prod/packages/@ember/renderer/index.js +1 -1
  76. package/dist/prod/packages/@ember/routing/index.js +10 -27
  77. package/dist/prod/packages/@ember/routing/lib/utils.js +2 -2
  78. package/dist/prod/packages/@ember/routing/route.js +2 -2
  79. package/dist/prod/packages/@ember/routing/router-service.js +9 -9
  80. package/dist/prod/packages/@ember/routing/router.js +2 -2
  81. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  82. package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -2
  83. package/dist/prod/packages/@ember/template-factory/index.js +1 -1
  84. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -2
  85. package/dist/prod/packages/@glimmer/program/index.js +3 -3
  86. package/dist/prod/packages/@glimmer/runtime/index.js +7 -7
  87. package/dist/prod/packages/@glimmer/wire-format/index.js +2 -5
  88. package/dist/prod/packages/ember/version.js +1 -1
  89. package/dist/prod/packages/ember-template-compiler/index.js +2 -2
  90. package/dist/prod/packages/router_js/index.js +2 -2
  91. package/dist/prod/packages/rsvp/index.js +1 -2281
  92. package/dist/prod/packages/shared-chunks/{arguments-BzAkZVBa.js → arguments-CCYATlEH.js} +1 -18
  93. package/dist/prod/packages/shared-chunks/{compiler-lBSssiWp.js → compiler-Wt5SWcrF.js} +1 -1
  94. package/dist/prod/packages/shared-chunks/{curly-CU2jYOtm.js → curly-CdvJuTyW.js} +1 -1
  95. package/dist/prod/packages/shared-chunks/{element-DgHdPZ8u.js → element-BmBjPjkQ.js} +0 -24
  96. package/dist/prod/packages/shared-chunks/get-CEjFJzGs.js +40 -0
  97. package/dist/prod/packages/shared-chunks/hash-BitfXhCx.js +57 -0
  98. package/dist/prod/packages/shared-chunks/{index-XmtQRWbX.js → index-C4VEqlp7.js} +193 -77
  99. package/dist/prod/packages/shared-chunks/{index-Bf53M8eS.js → index-kwuZeaNz.js} +3 -3
  100. package/dist/prod/packages/shared-chunks/{invoke-DhQ5QRp2.js → invoke-4JGJYH7Z.js} +1 -1
  101. package/dist/prod/packages/shared-chunks/{not-BOIVROuv.js → not-Dn5s9qVZ.js} +1 -1
  102. package/dist/prod/packages/shared-chunks/{on-BZHAxzdq.js → on-ov4KAucw.js} +22 -11
  103. package/dist/prod/packages/shared-chunks/{opcodes-CplRyHl_.js → opcodes-DDajoGhq.js} +0 -4
  104. package/dist/prod/packages/shared-chunks/{outlet-CsNMfeOj.js → outlet-BWnaVOrA.js} +3 -3
  105. package/dist/prod/packages/shared-chunks/{program-context-COSioH46.js → program-context-WVlzpPdi.js} +2 -2
  106. package/dist/prod/packages/shared-chunks/{render-Bf7GviCY.js → render-BAVl5E6X.js} +2 -2
  107. package/dist/{dev/packages/shared-chunks/rsvp.es-DR7yS7qg.js → prod/packages/shared-chunks/rsvp-aLN_pQtn.js} +152 -148
  108. package/dist/prod/packages/shared-chunks/{setup-registry-DFSQHIUs.js → setup-registry-DI1Agp-0.js} +35 -13
  109. package/dist/{dev/packages/shared-chunks/syscall-ops-CN7STuUn.js → prod/packages/shared-chunks/syscall-ops-CkPT1Kfx.js} +1 -2
  110. package/dist/prod/packages/shared-chunks/{textarea-DMmdvgk2.js → textarea-B-sssXGa.js} +3 -23
  111. package/dist/prod/packages/shared-chunks/{unique-id-o2pS74go.js → unique-id-BJb1p8EG.js} +0 -4
  112. package/dist/prod/packages/shared-chunks/{unrecognized-url-error-jjQ-FqKB.js → unrecognized-url-error-xC654tCo.js} +1 -1
  113. package/docs/data.json +1237 -1395
  114. package/package.json +5 -4
  115. package/types/stable/@ember/-internals/deprecations/index.d.ts +6 -0
  116. package/types/stable/@ember/-internals/glimmer/index.d.ts +7 -380
  117. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +1 -1
  118. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +2 -2
  119. package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +171 -62
  120. package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +0 -24
  121. package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +3 -2
  122. package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +3 -1
  123. package/types/stable/@ember/-internals/glimmer/lib/helpers/unbound.d.ts +6 -2
  124. package/types/stable/@ember/-internals/glimmer/lib/helpers/unique-id.d.ts +0 -3
  125. package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +4 -2
  126. package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +7 -2
  127. package/types/stable/@ember/helper/index.d.ts +1113 -73
  128. package/types/stable/@ember/object/compat.d.ts +0 -32
  129. package/types/stable/@ember/object/core.d.ts +1 -1
  130. package/types/stable/@ember/routing/router-service.d.ts +9 -9
  131. package/types/stable/@glimmer/interfaces/lib/compile/wire-format/api.d.ts +1 -9
  132. package/types/stable/@glimmer/interfaces/lib/compile/wire-format/opcodes.d.ts +0 -4
  133. package/types/stable/@glimmer/interfaces/lib/vm-opcodes.d.ts +0 -4
  134. package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/conditional.d.ts +1 -1
  135. package/types/stable/@glimmer/opcode-compiler/lib/syntax/statements.d.ts +1 -1
  136. package/types/stable/@glimmer/runtime/lib/helpers/array.d.ts +0 -33
  137. package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +0 -25
  138. package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +0 -70
  139. package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +0 -69
  140. package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +0 -36
  141. package/types/stable/index.d.ts +0 -14
  142. package/dist/dev/packages/shared-chunks/get-6I3sjd-I.js +0 -135
  143. package/dist/dev/packages/shared-chunks/hash-6NDs_5_f.js +0 -198
  144. package/dist/prod/packages/shared-chunks/get-Dago5uGl.js +0 -135
  145. package/dist/prod/packages/shared-chunks/hash-gEXIsSO4.js +0 -198
  146. package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +0 -43
  147. package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +0 -93
  148. package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +0 -32
  149. package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +0 -77
  150. package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +0 -94
  151. package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +0 -46
  152. package/types/stable/@ember/-internals/glimmer/lib/helpers/helper.d.ts +0 -43
  153. package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +0 -228
  154. package/types/stable/@ember/-internals/glimmer/lib/helpers/log.d.ts +0 -19
  155. package/types/stable/@ember/-internals/glimmer/lib/helpers/modifier.d.ts +0 -42
  156. package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +0 -24
  157. package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +0 -95
  158. package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +0 -49
  159. package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +0 -43
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "ember-source",
3
- "version": "7.3.0-alpha.5",
3
+ "version": "7.3.0-beta.1",
4
4
  "description": "A JavaScript framework for creating ambitious web applications",
5
5
  "type": "module",
6
6
  "sideEffects": [
7
- "./dist/*/packages/ember-testing/index.js"
7
+ "./dist/*/packages/ember-testing/index.js",
8
+ "./dist/*/packages/@ember/-internals/runtime/lib/ext/rsvp.js"
8
9
  ],
9
10
  "keywords": [
10
11
  "ember-addon"
@@ -369,9 +370,9 @@
369
370
  }
370
371
  },
371
372
  "packageManager": "pnpm@10.33.2",
372
- "_originalVersion": "7.3.0-alpha.1",
373
+ "_originalVersion": "7.3.0-beta.1",
373
374
  "_versionPreviouslyCalculated": true,
374
375
  "publishConfig": {
375
- "tag": "alpha"
376
+ "tag": "beta"
376
377
  }
377
378
  }
@@ -27,6 +27,12 @@ declare module '@ember/-internals/deprecations' {
27
27
  isEnabled: boolean;
28
28
  isRemoved: boolean;
29
29
  };
30
+ DEPRECATE_TARGET_ACTION_SUPPORT: {
31
+ options: DeprecationOptions;
32
+ test: boolean;
33
+ isEnabled: boolean;
34
+ isRemoved: boolean;
35
+ };
30
36
  };
31
37
  export function deprecateUntil(message: string, deprecation: DeprecationObject): void;
32
38
  export {};
@@ -82,8 +82,8 @@ declare module '@ember/-internals/glimmer' {
82
82
  )}}></span>
83
83
  ```
84
84
 
85
- Ember's built-in helpers are described under the [Ember.Templates.helpers](/ember/release/classes/Ember.Templates.helpers)
86
- namespace. Documentation on creating custom helpers can be found under
85
+ Ember's built-in and importable helpers are described under the [@ember/helper](../modules/@ember%2Fhelper).
86
+ module. Documentation on creating custom helpers can be found under
87
87
  [helper](/ember/release/functions/@ember%2Fcomponent%2Fhelper/helper) (or
88
88
  under [Helper](/ember/release/classes/Helper) if a helper requires access to
89
89
  dependency injection).
@@ -101,387 +101,14 @@ declare module '@ember/-internals/glimmer' {
101
101
  @module ember
102
102
  */
103
103
  /**
104
+
105
+ ## Looking for template keywords and helpers?
106
+
107
+ See [@ember/helper](../modules/@ember%2Fhelper).
108
+
104
109
  @class Ember.Templates.helpers
105
110
  @public
106
111
  */
107
- /**
108
- `{{yield}}` denotes an area of a template that will be rendered inside
109
- of another template.
110
-
111
- ### Use with `Component`
112
-
113
- When designing components `{{yield}}` is used to denote where, inside the component's
114
- template, an optional block passed to the component should render:
115
-
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>
124
- ```
125
-
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>
134
- ```
135
-
136
- Result:
137
-
138
- ```html
139
- <label>
140
- First name: <input type="text" />
141
- </label>
142
- ```
143
-
144
- Additionally you can `yield` properties into the context for use by the consumer:
145
-
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
- }
164
- ```
165
-
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>
174
- ```
175
-
176
- Result:
177
-
178
- ```html
179
- <label>
180
- <p class="error">First Name must be at least 3 characters long.</p>
181
- First name: <input type="text" />
182
- </label>
183
- ```
184
-
185
- `yield` can also be used with the `hash` helper:
186
-
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>
196
- ```
197
-
198
- ```app/components/date-ranges.gjs
199
- <template>
200
- <div>
201
- {{yield (hash start=@value.start end=@value.end)}}
202
- </div>
203
- </template>
204
- ```
205
-
206
- Result:
207
-
208
- ```html
209
- <div>
210
- Start date: July 1st
211
- End date: July 30th
212
- </div>
213
- ```
214
-
215
- Multiple values can be yielded as block params:
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>
235
- ```
236
-
237
- Result:
238
-
239
- ```html
240
- <div>
241
- <h1>Hello title</h1>
242
- <h2>hello subtitle</h2>
243
- body text
244
- </div>
245
- ```
246
-
247
- However, it is preferred to use the hash helper, as this can prevent breaking changes to your component and also simplify the api for the component.
248
-
249
- Multiple components can be yielded with the `hash` and `component` helper:
250
-
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>
261
- ```
262
-
263
- ```app/components/banner.gjs
264
- import Title from './banner/title';
265
- import Subtitle from './banner/subtitle';
266
- import Body from './banner/body';
267
-
268
- export default class Banner extends Component {
269
- Title = Title;
270
- Subtitle = Subtitle;
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>
282
- }
283
- ```
284
-
285
- Result:
286
-
287
- ```html
288
- <div>
289
- <h1>Banner title</h1>
290
- <h2>Banner subtitle</h2>
291
- A load of body text
292
- </div>
293
- ```
294
-
295
- A benefit of using this pattern is that the user of the component can change the order the components are displayed.
296
-
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>
307
- ```
308
-
309
- Result:
310
-
311
- ```html
312
- <div>
313
- <h2>Banner subtitle</h2>
314
- <h1>Banner title</h1>
315
- A load of body text
316
- </div>
317
- ```
318
-
319
- Another benefit to using `yield` with the `hash` and `component` helper
320
- is you can pass attributes and arguments to these components:
321
-
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>
332
- ```
333
-
334
- ```app/components/banner/subtitle.gjs
335
- {{!-- note the use of ..attributes --}}
336
- <h2 ...attributes>
337
- {{yield}}
338
- </h2>
339
- ```
340
-
341
- ```app/components/banner/title.gjs
342
- <template>
343
- {{#if (eq @variant "loud")}}
344
- <h1 class="loud">{{yield}}</h1>
345
- {{else}}
346
- <h1 class="quiet">{{yield}}</h1>
347
- {{/if}}
348
- </template>
349
- ```
350
-
351
- Result:
352
-
353
- ```html
354
- <div>
355
- <h2 class="mb-1">Banner subtitle</h2>
356
- <h1 class="loud">Banner title</h1>
357
- A load of body text
358
- </div>
359
- ```
360
-
361
- @method yield
362
- @for Ember.Templates.helpers
363
- @param {Hash} options
364
- @return {String} HTML string
365
- @public
366
- */
367
- /**
368
- `{{(has-block)}}` indicates if the component was invoked with a block.
369
-
370
- This component is invoked with a block:
371
-
372
- ```handlebars
373
- <MyComponent>
374
- Hi Jen!
375
- </MyComponent>
376
- ```
377
-
378
- This component is invoked without a block:
379
-
380
- ```handlebars
381
- <MyComponent />
382
- ```
383
-
384
- This is useful when you want to create a component that can optionally take a block
385
- and then render a default template when it is not invoked with a block.
386
-
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>
395
- ```
396
-
397
- @method has-block
398
- @for Ember.Templates.helpers
399
- @param {String} the name of the block. The name (at the moment) is either "main" or "inverse" (though only curly components support inverse)
400
- @return {Boolean} `true` if the component was invoked with a block
401
- @public
402
- */
403
- /**
404
- `{{(has-block-params)}}` indicates if the component was invoked with block params.
405
-
406
- This component is invoked with block params:
407
-
408
- ```handlebars
409
- <MyComponent as |favoriteFlavor|>
410
- Hi Jen!
411
- </MyComponent>
412
- ```
413
-
414
- And without block params:
415
-
416
- ```handlebars
417
- <MyComponent>
418
- Hi Jen!
419
- </MyComponent>
420
- ```
421
-
422
- This is useful when you want to create a component that can render itself
423
- differently when it is not invoked with block params.
424
-
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>
435
- ```
436
-
437
- @method has-block-params
438
- @for Ember.Templates.helpers
439
- @param {String} the name of the block. The name (at the moment) is either "main" or "inverse" (though only curly components support inverse)
440
- @return {Boolean} `true` if the component was invoked with block params
441
- @public
442
- */
443
- /**
444
- Execute the `debugger` statement in the current template's context.
445
-
446
- ```handlebars
447
- {{debugger}}
448
- ```
449
-
450
- When using the debugger helper you will have access to a `get` function. This
451
- function retrieves values available in the context of the template.
452
- For example, if you're wondering why a value `{{foo}}` isn't rendering as
453
- expected within a template, you could place a `{{debugger}}` statement and,
454
- when the `debugger;` breakpoint is hit, you can attempt to retrieve this value:
455
-
456
- ```
457
- > get('foo')
458
- ```
459
-
460
- `get` is also aware of keywords. So in this situation
461
-
462
- ```handlebars
463
- {{#each this.items as |item|}}
464
- {{debugger}}
465
- {{/each}}
466
- ```
467
-
468
- You'll be able to get values from the current item:
469
-
470
- ```
471
- > get('item.name')
472
- ```
473
-
474
- You can also access the context of the view to make sure it is the object that
475
- you expect:
476
-
477
- ```
478
- > context
479
- ```
480
-
481
- @method debugger
482
- @for Ember.Templates.helpers
483
- @public
484
- */
485
112
  export { default as template, templateCacheCounters } from "@glimmer/opcode-compiler/lib/template";
486
113
  export { default as RootTemplate } from "@ember/-internals/glimmer/lib/templates/root";
487
114
  export { default as Input } from "@ember/-internals/glimmer/lib/components/input";
@@ -657,7 +657,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
657
657
 
658
658
  See the [Guide on Component event
659
659
  handlers](https://guides.emberjs.com/release/components/component-state-and-actions/#toc_html-modifiers-and-actions)
660
- and the [API docs for `on`](../Ember.Templates.helpers/methods/on?anchor=on)
660
+ and the [API docs for `on`](../functions/Keywords/on)
661
661
  for more details.
662
662
 
663
663
  ### Event Handler Methods
@@ -30,7 +30,7 @@ declare module '@ember/-internals/glimmer/lib/helper' {
30
30
  Ember Helpers are functions that can compute values, and are used in templates.
31
31
  For example, this code calls a helper named `format-currency`:
32
32
 
33
- ```app/templates/application.gjs
33
+ ```gjs {data-filename="app/templates/application.gjs"}
34
34
  import Cost from '../components/cost';
35
35
 
36
36
  <template>
@@ -38,7 +38,7 @@ declare module '@ember/-internals/glimmer/lib/helper' {
38
38
  </template>
39
39
  ```
40
40
 
41
- ```app/components/cost.gjs
41
+ ```gjs {data-filename="app/components/cost.gjs"}
42
42
  import formatCurrency from '../helpers/format-currency';
43
43
 
44
44
  <template>