@eui/ecl 22.0.0-alpha.37 → 22.0.0-alpha.39

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.
@@ -106,6 +106,34 @@
106
106
 
107
107
 
108
108
 
109
+ <h2>22.0.0-alpha.38 (2026-10-01)</h2>
110
+ <h5>Chores</h5>
111
+ <ul>
112
+ <li><strong>core:</strong><ul>
113
+ <li>adapted eui-app-shell for injection failure - EUI-12528 <a href="https://citnet.tech.ec.europa.eu/CITnet/jira/browse/EUI-12528">EUI-12528</a> (<a href="https://sdlc.aws.cloud.tech.ec.europa.eu/csdr/eui/eui/-/commit/f593a41a7433b1a622e086e87353234ef0e7ff38">f593a41a</a>)</li>
114
+ </ul>
115
+ </li>
116
+ <li><strong>eds-progress-bar:</strong><ul>
117
+ <li>aligned with EDS design for sizes and colors - EDS-306 <a href="https://citnet.tech.ec.europa.eu/CITnet/jira/browse/EDS-306">EDS-306</a> (<a href="https://sdlc.aws.cloud.tech.ec.europa.eu/csdr/eui/eui/-/commit/0af1cd94e10eee96378ef513691b9606de56df80">0af1cd94</a>)</li>
118
+ </ul>
119
+ </li>
120
+ <li><strong>eds-switch:</strong><ul>
121
+ <li>aligned with EDS design for dark background color and icon size - EDS-315 <a href="https://citnet.tech.ec.europa.eu/CITnet/jira/browse/EDS-315">EDS-315</a> (<a href="https://sdlc.aws.cloud.tech.ec.europa.eu/csdr/eui/eui/-/commit/726892f3b16f05841ea4e6248af7a213e34530f1">726892f3</a>)</li>
122
+ </ul>
123
+ </li>
124
+ </ul>
125
+ <hr>
126
+ <hr>
127
+ <h2>22.0.0-alpha.37 (2026-10-01)</h2>
128
+ <h5>Chores</h5>
129
+ <ul>
130
+ <li><strong>other:</strong><ul>
131
+ <li>fixed some errors in tests EUI-12951 <a href="https://citnet.tech.ec.europa.eu/CITnet/jira/browse/EUI-12951">EUI-12951</a> (<a href="https://sdlc.aws.cloud.tech.ec.europa.eu/csdr/eui/eui/-/commit/34b287156fd94cb2a243ca53bd4244d998a9ea42">34b28715</a>)</li>
132
+ </ul>
133
+ </li>
134
+ </ul>
135
+ <hr>
136
+ <hr>
109
137
  <h2>22.0.0-alpha.36 (2026-10-01)</h2>
110
138
  <h5>Chores</h5>
111
139
  <ul>
@@ -145,8 +145,44 @@ ticker of slogan items. Supports play/pause controls, RTL layouts, and pauses
145
145
  when off-screen via IntersectionObserver.</p>
146
146
  <p>Uses Embla Carousel (via embla-carousel-angular) with the auto-scroll plugin
147
147
  to match the ECL vanilla implementation.</p>
148
- <p>The component clones projected slides internally to ensure the track is wide
149
- enough for seamless infinite scrolling (matching the vanilla ECL approach).</p>
148
+ <h2>Why two lists (hidden source + generated track)</h2>
149
+ <p>The consumer provides a plain, semantic list:</p>
150
+ <b>Example :</b><div><pre class="line-numbers"><code class="language-html">&lt;ecl-slogan-ticker&gt;
151
+ &lt;ul eclSloganTickerList&gt;
152
+ &lt;li eclSloganTickerSlide&gt;SLOGAN ONE&lt;/li&gt;
153
+ &lt;li eclSloganTickerSlide&gt;SLOGAN TWO&lt;/li&gt;
154
+ &lt;/ul&gt;
155
+ &lt;/ecl-slogan-ticker&gt;</code></pre></div><p>This authored <code>&lt;ul eclSloganTickerList&gt;</code> is NOT the list you see scrolling.
156
+ <code>EclSloganTickerListDirective</code> hides it with <code>display: none</code>, and it stays in
157
+ the light DOM as the single accessible source of truth. The component reads
158
+ the slide texts out of it via a <code>contentChildren</code> query (see <code>slides</code>) and
159
+ builds a SEPARATE, component-owned <code>&lt;ul class=&quot;ecl-slogan-ticker__track&quot;&gt;</code>
160
+ from the <code>trackSlides</code> signal. That generated track is what Embla animates.</p>
161
+ <p>Reasons for the split (rather than just scrolling the authored <code>&lt;ul&gt;</code>):</p>
162
+ <ul>
163
+ <li>Seamless infinite loop needs more content than the author gives. The track
164
+ must be several times wider than the viewport or the loop visibly jumps, so
165
+ <code>ensureEnoughContent()</code> measures the originals and appends CLONE sets until
166
+ the total width reaches <code>CLONE_MULTIPLIER</code> × the container width.</li>
167
+ <li>Clones must not pollute accessibility. The authored list stays the one
168
+ accessible list; every generated clone is rendered with <code>aria-hidden</code> so a
169
+ screen reader announces each slogan once, not once per clone.</li>
170
+ <li>You cannot meaningfully grow the authored <code>&lt;ul&gt;</code>. Its <code>&lt;li&gt;</code> children are
171
+ Angular-projected content that Angular owns; imperatively appending clone
172
+ <code>&lt;li&gt;</code> nodes into it fights change detection. Building our own track signal
173
+ and letting <code>@for</code> render it is clean and safe. <code>&lt;li&gt;</code> is also only valid
174
+ inside a list element, so the <code>&lt;ul eclSloganTickerList&gt;</code> wrapper keeps the
175
+ consumer&#39;s authored markup valid and self-contained.</li>
176
+ </ul>
177
+ <p>This mirrors the vanilla ECL slogan ticker (hidden source list + measured,
178
+ cloned, auto-scrolling track).</p>
179
+ <h2>Testing note</h2>
180
+ <p>The visible track is only built after a real width measurement
181
+ (<code>offsetWidth</code>). Under jsdom every element reports a width of 0, so
182
+ <code>ensureEnoughContent()</code> bails early and the generated track stays empty. Unit
183
+ tests should therefore assert slide-driven behavior through its observable
184
+ effects (e.g. the play/pause controls appearing) rather than through the
185
+ generated track DOM.</p>
150
186
 
151
187
  </p>
152
188
 
@@ -450,13 +450,13 @@
450
450
  </tr>
451
451
  <tr>
452
452
  <td class="col-md-4">
453
- <i>Type : </i> <code>false</code>
453
+ <i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
454
454
 
455
455
  </td>
456
456
  </tr>
457
457
  <tr>
458
458
  <td class="col-md-4">
459
- <i>Default value : </i><code>undefined</code>
459
+ <i>Default value : </i><code>false</code>
460
460
  </td>
461
461
  </tr>
462
462
  </tbody>
@@ -150,12 +150,6 @@
150
150
  <code><a href="../directives/ECLBaseDirective.html" target="_self" >ECLBaseDirective</a></code>
151
151
  </p>
152
152
 
153
- <p class="comment">
154
- <h3>Implements</h3>
155
- </p>
156
- <p class="comment">
157
- <code><a href="https://angular.dev/api/core/AfterContentInit" target="_blank" >AfterContentInit</a></code>
158
- </p>
159
153
 
160
154
 
161
155
  <section data-compodoc="block-metadata">
@@ -190,9 +184,6 @@
190
184
  <li>
191
185
  <code><a href="../directives/ECLBaseDirective.html" target="_self" >ECLBaseDirective</a></code>
192
186
  </li>
193
- <li>
194
- <code><a href="https://angular.dev/api/core/AfterContentInit" target="_blank" >AfterContentInit</a></code>
195
- </li>
196
187
  </ul>
197
188
  </div>
198
189
  </div>
@@ -264,44 +255,41 @@
264
255
  </table>
265
256
 
266
257
 
258
+
259
+
267
260
  <table class="table table-sm table-bordered index-table">
268
261
  <tbody>
269
262
  <tr>
270
263
  <td class="col-md-3">
271
- <h6><b>HostBindings</b></h6>
264
+ <h6><b>Accessors</b></h6>
272
265
  </td>
273
266
  <td class="col-md-9">
274
267
  <ul class="index-list">
275
268
  <li>
276
- <span class="reference-badge reference-badge--property" aria-hidden="true">HB</span><a href="#class" >class</a>
269
+ <span class="reference-badge reference-badge--accessor" aria-hidden="true">A</span>
270
+ <a href="#cssClasses" >cssClasses</a>
277
271
  </li>
278
272
  </ul>
279
273
  </td>
280
274
  </tr>
281
275
  </tbody>
282
276
  </table>
277
+ </section>
283
278
 
284
-
285
- <table class="table table-sm table-bordered index-table">
279
+ <section data-compodoc="block-constructor">
280
+ <h3 id="constructor">Constructor</h3>
281
+ <table class="table table-sm table-bordered">
286
282
  <tbody>
287
283
  <tr>
288
- <td class="col-md-3">
289
- <h6><b>Accessors</b></h6>
290
- </td>
291
- <td class="col-md-9">
292
- <ul class="index-list">
293
- <li>
294
- <span class="reference-badge reference-badge--accessor" aria-hidden="true">A</span>
295
- <a href="#cssClasses" >cssClasses</a>
296
- </li>
297
- </ul>
284
+ <td class="col-md-4">
285
+ <code>constructor()</code>
298
286
  </td>
299
287
  </tr>
288
+
300
289
  </tbody>
301
290
  </table>
302
291
  </section>
303
292
 
304
-
305
293
  <section data-compodoc="block-inputs">
306
294
  <h3 id="inputs">Inputs</h3>
307
295
  <table class="table table-sm table-bordered">
@@ -355,29 +343,6 @@
355
343
  </section>
356
344
 
357
345
 
358
- <section data-compodoc="block-properties">
359
- <h3>HostBindings</h3> <table class="table table-sm table-bordered">
360
- <tbody>
361
- <tr>
362
- <td class="col-md-4">
363
- <a name="class"></a>
364
- <span class="name">
365
- <span ><b>class</b></span>
366
- <a href="#class"><span class="icon ion-ios-link"></span></a>
367
- </span>
368
- </td>
369
- </tr>
370
- <tr>
371
- <td class="col-md-4">
372
- <i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
373
-
374
- </td>
375
- </tr>
376
-
377
-
378
- </tbody>
379
- </table>
380
- </section>
381
346
 
382
347
 
383
348
  <section data-compodoc="block-methods">