@ai-ecoverse/slicc-spectrum 1.101.0 → 1.101.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.
package/README.md CHANGED
@@ -474,7 +474,7 @@ It closes, clearing the field, when the request leaves `waiting` or while the va
474
474
  #### `<slicc-updates>`
475
475
 
476
476
  Install / Update: component states, version changes, last checks, download and link counts, action buttons, failures with Retry, and collapsible install logs behind a quiet chevron, which stay open across a layout switch.
477
- A row with a pending version change (`from → to`, or a package's `version → offered`) and release notes shows a What’s new disclosure after the row's actions (in package rows, after the command chips), next to the Install log, `details[data-releases]` with `summary[data-action="whats-new"]`, which stays open across a layout switch like the log. It lists every release after the installed version up to the new one, newest first, each as `.release[data-version]` with its version linking to the release page (`a[data-action="release-notes"]`, named "Kernel 1.13.0 release notes") and its notes rendered as markdown in strict mode (`markdown(text, { strict: true })`: raw HTML tags are dropped and their text kept as plain text, only `https:` links stay links, and an image becomes a link with its alt text, so nothing loads; the notes' headings sit one level under the release's, through `level`). Notes over 8 KB (8,192 characters) per release are cut at the last line break before that, with "…" and a Read the full notes link (`[data-cut]`, named "Read the full notes for Kernel 1.13.0"); a release whose `url` isn't `https:` shows its version as plain text. The `<!-- cert-verify -->` block is dropped, and a block that starts with "certified" shows as a subtle Certified badge (`[data-certified]`); a heading line naming the version is dropped too, since the link already shows it. Without notes in the range there is no disclosure.
477
+ A row with a pending version change (`from → to`, or a package's `version → offered`) and release notes shows a What’s new disclosure after the row's actions (in package rows, after the command chips), next to the Install log, `details[data-releases]` with `summary[data-action="whats-new"]`, which stays open across a layout switch like the log. It lists every release after the installed version up to the new one, newest first, each as `.release[data-version]` with its version linking to the release page (`a[data-action="release-notes"]`, named "Kernel 1.13.0 release notes"). Only the newest (`.release[data-newest]`) shows its notes; each older release is a collapsed header, `details.release` with `summary[data-action="release"]` holding the same chevron, its version link and badge across the full row and named "Kernel 1.12.2 notes, certified", that opens to its notes indented under its title and stays open across a layout switch like the disclosure (an older release without notes is a plain header). The notes are rendered as markdown in strict mode (`markdown(text, { strict: true })`: raw HTML tags are dropped and their text kept as plain text, only `https:` links stay links, and an image becomes a link with its alt text, so nothing loads; the notes' headings sit one level under the release's, through `level`). Notes over 8 KB (8,192 characters) per release are cut at the last line break before that, with "…" and a Read the full notes link (`[data-cut]`, named "Read the full notes for Kernel 1.13.0"); a release whose `url` isn't `https:` shows its version as plain text. The `<!-- cert-verify -->` block is dropped, and a block that starts with "certified" shows as a subtle Certified badge (`[data-certified]`); a heading line naming the version is dropped too, since the link already shows it. Without notes in the range there is no disclosure.
478
478
  An up-to-date row (no pending change) links its installed release with Release notes next to the version; an installed optional package without one links its npm page instead (`a[data-action="npm-page"]`, named "npm page for Biome 2.2.4"). Pins and additions in Your packages show no link. Every link opens in a new tab.
479
479
  An install shows one bar for update rows and package rows alike: it fills 0–50% while downloading and 50–100% while linking (`value` against `max-value="100"`). While the row runs it never goes back, not when pnpm's total grows and not when progress drops out between passes. While a download reports `bytes` with a total above 0, the first half fills by bytes and the value label reads "10.0 MB of 40.0 MB". Otherwise, and always while linking, the label falls back to the phase's "n of m" count. The bar starts at 0 again once the row settles.
480
480
  Opens at boot until the agent is ready without failures.
package/dist/slicc-ui.js CHANGED
@@ -45180,6 +45180,21 @@ var SliccUpdates = class extends ModelElement {
45180
45180
  .release {
45181
45181
  min-width: 0;
45182
45182
  }
45183
+ .older-releases {
45184
+ display: grid;
45185
+ grid-template-columns: minmax(0, 1fr);
45186
+ gap: var(--swc-spacing-200);
45187
+ }
45188
+ .older-releases > details > summary {
45189
+ width: 100%;
45190
+ }
45191
+ .older-releases > details[open]:not(:last-child) {
45192
+ margin-block-end: var(--swc-spacing-200);
45193
+ }
45194
+ .older-releases > .older,
45195
+ .older-releases > details > :not(summary) {
45196
+ padding-inline-start: calc(var(--swc-workflow-icon-small) + var(--swc-spacing-75));
45197
+ }
45183
45198
  .title {
45184
45199
  margin: 0;
45185
45200
  font-size: var(--swc-font-size-100);
@@ -45365,22 +45380,36 @@ var SliccUpdates = class extends ModelElement {
45365
45380
  const shown4 = date.toLocaleString("en-GB", { dateStyle: "medium", timeStyle: "short" });
45366
45381
  return b`<span>Checked <time datetime=${date.toISOString()}>${shown4}</time></span>`;
45367
45382
  }
45383
+ #title({ release: release3, certified }, label) {
45384
+ return b`${secure(release3.url) ? b`<a class="swc-Link swc-Link--standalone" href=${release3.url} target="_blank" rel="noopener noreferrer" data-action="release-notes" aria-label=${`${label} ${release3.version} release notes`}>${release3.version}</a>` : release3.version}${certified ? b`<swc-badge size="s" variant="positive" subtle data-certified>Certified</swc-badge>` : A}`;
45385
+ }
45386
+ #notes({ release: release3, body: body4, cut }, label, level) {
45387
+ return b`${body4 ? b`<div class="markdown">${markdown(body4, { strict: true, level })}</div>` : A}
45388
+ ${cut && secure(release3.url) ? b`<p class="cut" data-cut><a class="swc-Link swc-Link--standalone" href=${release3.url} target="_blank" rel="noopener noreferrer" data-action="release-notes" aria-label=${`Read the full notes for ${label} ${release3.version}`}>Read the full notes</a></p>` : A}`;
45389
+ }
45390
+ #older(key2, entry, label, level) {
45391
+ const version2 = entry.release.version;
45392
+ if (!entry.body) {
45393
+ return b`<div class="release older" data-version=${version2}><p class="title" role="heading" aria-level=${level}>${this.#title(entry, label)}</p></div>`;
45394
+ }
45395
+ const id = `${key2}:${version2}`;
45396
+ return b`<details class="release" data-version=${version2} ?open=${this.#logs.has(id)} @toggle=${this.#logs.details(id)}>
45397
+ <summary data-action="release" aria-label=${`${label} ${version2} notes${entry.certified ? ", certified" : ""}`}>${chevron}<span class="title" role="heading" aria-level=${level}>${this.#title(entry, label)}</span></summary>
45398
+ ${this.#notes(entry, label, level)}
45399
+ </details>`;
45400
+ }
45368
45401
  #whatsNew(key2, label, entries, level) {
45369
45402
  if (!entries.length) return A;
45403
+ const [newest, ...older] = entries;
45370
45404
  return b`<details data-releases ?open=${this.#logs.has(key2)} @toggle=${this.#logs.details(key2)}>
45371
45405
  <summary data-action="whats-new">${chevron}What’s new</summary>
45372
- <div class="releases">${entries.map(
45373
- ({
45374
- release: release3,
45375
- body: body4,
45376
- certified,
45377
- cut
45378
- }) => b`<div class="release" data-version=${release3.version}>
45379
- <p class="title" role="heading" aria-level=${level}>${secure(release3.url) ? b`<a class="swc-Link swc-Link--standalone" href=${release3.url} target="_blank" rel="noopener noreferrer" data-action="release-notes" aria-label=${`${label} ${release3.version} release notes`}>${release3.version}</a>` : release3.version}${certified ? b`<swc-badge size="s" variant="positive" subtle data-certified>Certified</swc-badge>` : A}</p>
45380
- ${body4 ? b`<div class="markdown">${markdown(body4, { strict: true, level })}</div>` : A}
45381
- ${cut && secure(release3.url) ? b`<p class="cut" data-cut><a class="swc-Link swc-Link--standalone" href=${release3.url} target="_blank" rel="noopener noreferrer" data-action="release-notes" aria-label=${`Read the full notes for ${label} ${release3.version}`}>Read the full notes</a></p>` : A}
45382
- </div>`
45383
- )}</div>
45406
+ <div class="releases">
45407
+ <div class="release" data-version=${newest.release.version} data-newest>
45408
+ <p class="title" role="heading" aria-level=${level}>${this.#title(newest, label)}</p>
45409
+ ${this.#notes(newest, label, level)}
45410
+ </div>
45411
+ ${older.length ? b`<div class="older-releases">${older.map((entry) => this.#older(key2, entry, label, level))}</div>` : A}
45412
+ </div>
45384
45413
  </details>`;
45385
45414
  }
45386
45415
  #releaseLink(label, version2, releases, npm) {