@ai-ecoverse/slicc-spectrum 1.46.1 → 1.47.0

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/dist/slicc-ui.js CHANGED
@@ -10783,6 +10783,24 @@ var o55 = class extends a10 {
10783
10783
  };
10784
10784
  e25("swc-icon-copy", o55);
10785
10785
 
10786
+ // node_modules/@adobe/spectrum-wc-icons/dist/InfoCircle.js
10787
+ function e82() {
10788
+ return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10 18.75c-4.825 0-8.75-3.925-8.75-8.75S5.175 1.25 10 1.25s8.75 3.925 8.75 8.75-3.925 8.75-8.75 8.75m0-16c-3.998 0-7.25 3.252-7.25 7.25s3.252 7.25 7.25 7.25 7.25-3.252 7.25-7.25S13.998 2.75 10 2.75"/><path fill="var(--swc-icon-color, currentColor)" d="M10 5.26a.9.9 0 0 1 .627.229c.33.365.33.921 0 1.286a.87.87 0 0 1-.626.235.85.85 0 0 1-.633-.248.86.86 0 0 1-.242-.627.88.88 0 0 1 .228-.64A.86.86 0 0 1 10 5.26m0 9.803a.75.75 0 0 1-.75-.75V9.478a.75.75 0 0 1 1.5 0v4.835a.75.75 0 0 1-.75.75"/></svg>';
10789
+ }
10790
+
10791
+ // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-info-circle.js
10792
+ var o56 = class extends a10 {
10793
+ static get styles() {
10794
+ return [t40];
10795
+ }
10796
+ render() {
10797
+ return b`
10798
+ <span class="swc-Icon">${o16(e82())}</span>
10799
+ `;
10800
+ }
10801
+ };
10802
+ e25("swc-icon-info-circle", o56);
10803
+
10786
10804
  // node_modules/@adobe/spectrum-wc/dist/link.css
10787
10805
  var link_default = '/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Standalone link presentation for native `<a href>` elements.\n *\n * Default anchor appearance inside `.swc-Typography--prose` and\n * `.swc-Typography--links` ships with `typography.css` (generated). Import this\n * stylesheet when authors need explicit BEM modifiers on anchors.\n *\n */\n\n.swc-Link {\n inline-size: -moz-fit-content;\n inline-size: fit-content;\n font-family: var(--swc-sans-font-family-stack);\n font-size: var(--swc-font-size-100);\n font-style: normal;\n font-weight: 400;\n line-height: 1.30;\n color: var(--swc-link-text-color-default, var(--swc-accent-color-900));\n -webkit-text-decoration: underline;\n text-decoration: underline;\n text-decoration-thickness: 1px;\n text-underline-offset: 1px;\n transition: color 130ms ease-in-out;\n\n &:hover {\n color: var(--swc-link-text-color-hover, var(--swc-accent-color-1000));\n }\n\n &:active {\n color: var(--swc-link-text-color-down, var(--swc-accent-color-1000));\n }\n\n &:focus-visible {\n color: var(--swc-link-text-color-focus, var(--swc-accent-color-1000));\n border-radius: 4px;\n outline: 2px solid var(--swc-link-focus-indicator-color, var(--swc-blue-800));\n outline-offset: 2px;\n }\n\n &:lang(ja),\n &:lang(zh),\n &:lang(ko) {\n line-height: 1.50;\n }\n}\n\n.swc-Link--standalone {\n font-weight: 500;\n}\n\n.swc-Link--secondary {\n --swc-link-text-color-default: var(--swc-gray-800);\n --swc-link-text-color-hover: var(--swc-gray-900);\n --swc-link-text-color-down: var(--swc-gray-900);\n --swc-link-text-color-focus: var(--swc-gray-900);\n}\n\n.swc-Link--staticWhite {\n --swc-link-text-color-default: var(--swc-white);\n --swc-link-text-color-hover: var(--swc-white);\n --swc-link-text-color-down: var(--swc-white);\n --swc-link-text-color-focus: var(--swc-white);\n --swc-link-focus-indicator-color: var(--swc-white);\n}\n\n.swc-Link--staticBlack {\n --swc-link-text-color-default: var(--swc-black);\n --swc-link-text-color-hover: var(--swc-black);\n --swc-link-text-color-down: var(--swc-black);\n --swc-link-text-color-focus: var(--swc-black);\n --swc-link-focus-indicator-color: var(--swc-black);\n}\n\n.swc-Link--quiet.swc-Link--standalone {\n -webkit-text-decoration: none;\n text-decoration: none;\n}\n\n.swc-Link--quiet.swc-Link--standalone:hover {\n -webkit-text-decoration: underline;\n text-decoration: underline;\n}\n';
10788
10806
 
@@ -10871,6 +10889,38 @@ function exitNodeValue(tailnet) {
10871
10889
  if (tailnet.autoExitNode) return "auto";
10872
10890
  return tailnet.exitNodes?.find((node) => node.name === tailnet.exitNode)?.id ?? "none";
10873
10891
  }
10892
+ var linkStates = {
10893
+ connecting: ["info", "Connecting"],
10894
+ connected: ["positive", "Connected"],
10895
+ reconnecting: ["notice", "Reconnecting"]
10896
+ };
10897
+ function linksSummary(links) {
10898
+ if (links.permission) return "permission";
10899
+ if (!links.devices.length) return "none";
10900
+ if (links.devices.some((device) => device.state === "reconnecting")) return "reconnecting";
10901
+ if (links.devices.some((device) => device.state === "connecting")) return "connecting";
10902
+ return "linked";
10903
+ }
10904
+ function linksLight(links) {
10905
+ const summary = linksSummary(links);
10906
+ if (summary === "permission") return ["notice", "Needs permission"];
10907
+ if (summary === "none") return ["neutral", "None"];
10908
+ if (summary === "linked") return ["positive", `${links.devices.length} linked`];
10909
+ return linkStates[summary];
10910
+ }
10911
+ function exitValue(exit) {
10912
+ if (!exit) return "none";
10913
+ return exit.kind === "tailnet" ? `tailnet:${exit.node}` : `link:${exit.id}`;
10914
+ }
10915
+ function parseExit(value) {
10916
+ if (value.startsWith("tailnet:")) return { kind: "tailnet", node: value.slice(8) };
10917
+ if (value.startsWith("link:")) return { kind: "link", id: value.slice(5) };
10918
+ return null;
10919
+ }
10920
+ function unlinkBody(device, isExit) {
10921
+ const body4 = device.mode === "local" ? "It disconnects until this page reloads." : "It disconnects now. To link it again, run the join command on that computer.";
10922
+ return isExit ? `${body4} Internet traffic goes directly again.` : body4;
10923
+ }
10874
10924
  var wholeWeb = /* @__PURE__ */ new Set([
10875
10925
  "proxy",
10876
10926
  "extension",
@@ -10912,7 +10962,8 @@ var SliccNetwork = class extends ModelElement {
10912
10962
  error: { state: true },
10913
10963
  busy: { state: true },
10914
10964
  tailnetError: { state: true },
10915
- tailnetCopied: { state: true }
10965
+ tailnetCopied: { state: true },
10966
+ linksError: { state: true }
10916
10967
  };
10917
10968
  constructor() {
10918
10969
  super();
@@ -10923,6 +10974,7 @@ var SliccNetwork = class extends ModelElement {
10923
10974
  this.busy = "";
10924
10975
  this.tailnetError = "";
10925
10976
  this.tailnetCopied = "";
10977
+ this.linksError = "";
10926
10978
  }
10927
10979
  static styles = [
10928
10980
  r(link_default),
@@ -11023,6 +11075,62 @@ var SliccNetwork = class extends ModelElement {
11023
11075
  .node dd {
11024
11076
  margin: 0;
11025
11077
  }
11078
+ .node.stacked {
11079
+ grid-template-columns: minmax(0, 1fr);
11080
+ }
11081
+ .node.stacked dd + dt {
11082
+ margin-block-start: var(--swc-spacing-100);
11083
+ }
11084
+ .info {
11085
+ display: flex;
11086
+ align-items: flex-start;
11087
+ gap: var(--swc-spacing-100);
11088
+ padding: var(--swc-spacing-200);
11089
+ border-radius: var(--swc-corner-radius-medium-default);
11090
+ background: var(--swc-informative-subtle-background-color-default);
11091
+ --swc-icon-color: var(--swc-informative-visual-color);
11092
+ }
11093
+ .info swc-icon-info-circle {
11094
+ flex: none;
11095
+ margin-block-start: var(--swc-spacing-50);
11096
+ }
11097
+ .banner {
11098
+ display: grid;
11099
+ gap: var(--swc-spacing-100);
11100
+ }
11101
+ li.device {
11102
+ align-items: center;
11103
+ gap: var(--swc-spacing-75) var(--swc-spacing-200);
11104
+ padding: var(--swc-spacing-200) 0;
11105
+ }
11106
+ .device > :not(.who, swc-button) {
11107
+ grid-column: 1 / -1;
11108
+ }
11109
+ .who {
11110
+ display: flex;
11111
+ flex-wrap: wrap;
11112
+ align-items: center;
11113
+ gap: var(--swc-spacing-75) var(--swc-spacing-200);
11114
+ min-width: 0;
11115
+ }
11116
+ .who .name {
11117
+ min-width: 0;
11118
+ max-width: 100%;
11119
+ overflow: hidden;
11120
+ text-overflow: ellipsis;
11121
+ white-space: nowrap;
11122
+ font-weight: var(--swc-bold-font-weight);
11123
+ }
11124
+ .where {
11125
+ display: grid;
11126
+ min-width: 0;
11127
+ font-size: var(--swc-font-size-75);
11128
+ color: var(--swc-neutral-subdued-content-color-default);
11129
+ overflow-wrap: anywhere;
11130
+ }
11131
+ .where code {
11132
+ font-family: var(--swc-code-font-family-stack);
11133
+ }
11026
11134
  .key {
11027
11135
  display: flex;
11028
11136
  flex-wrap: wrap;
@@ -11108,6 +11216,7 @@ var SliccNetwork = class extends ModelElement {
11108
11216
  subscribe(model) {
11109
11217
  this.error = "";
11110
11218
  this.tailnetError = "";
11219
+ this.linksError = "";
11111
11220
  return model.network ? [model.network.on("network", () => this.requestUpdate())] : [];
11112
11221
  }
11113
11222
  focus() {
@@ -11131,26 +11240,29 @@ var SliccNetwork = class extends ModelElement {
11131
11240
  this.copied = done;
11132
11241
  this.uncopied = !done;
11133
11242
  }
11134
- async #tailnet(action, run2) {
11243
+ async #act(action, run2, area) {
11135
11244
  if (this.busy) return;
11136
11245
  this.busy = action;
11137
- this.tailnetError = "";
11246
+ this[area] = "";
11138
11247
  try {
11139
11248
  await run2();
11140
11249
  } catch (error) {
11141
- this.tailnetError = failure(error);
11250
+ this[area] = failure(error);
11142
11251
  } finally {
11143
11252
  this.busy = "";
11144
11253
  }
11145
11254
  }
11146
- async #copyTailnet(what, value) {
11255
+ #tailnet(action, run2) {
11256
+ return this.#act(action, run2, "tailnetError");
11257
+ }
11258
+ async #copyValue(key2, value, area) {
11147
11259
  try {
11148
11260
  await globalThis.navigator.clipboard.writeText(value);
11149
- this.tailnetCopied = what;
11150
- this.tailnetError = "";
11261
+ this.tailnetCopied = key2;
11262
+ this[area] = "";
11151
11263
  } catch {
11152
11264
  this.tailnetCopied = "";
11153
- this.tailnetError = "Couldn\u2019t copy. Select the text and copy it.";
11265
+ this[area] = "Couldn\u2019t copy. Select the text and copy it.";
11154
11266
  }
11155
11267
  }
11156
11268
  #waiting(action) {
@@ -11181,14 +11293,17 @@ var SliccNetwork = class extends ModelElement {
11181
11293
  });
11182
11294
  if (ok) await this.#tailnet("sign-out", () => port.logoutTailnet?.());
11183
11295
  }
11184
- #copyRow(what, label, value) {
11185
- const copied = this.tailnetCopied === what;
11296
+ #copyButton(key2, what, label, value, area) {
11297
+ const copied = this.tailnetCopied === key2;
11298
+ return b`<swc-action-button size="s" quiet data-action=${`copy-${what}`} accessible-label=${copied ? "Copied" : `Copy ${label}`} @click=${() => this.#copyValue(key2, value, area)}>
11299
+ <swc-icon-copy slot="icon"></swc-icon-copy>${copied ? "Copied" : "Copy"}
11300
+ </swc-action-button>`;
11301
+ }
11302
+ #copyRow(what, label, value, area = "tailnetError", spoken = label.toLowerCase()) {
11186
11303
  return b`<dt>${label}</dt>
11187
11304
  <dd class="command" data-copy=${what}>
11188
11305
  <code>${value}</code>
11189
- <swc-action-button size="s" quiet data-action=${`copy-${what}`} accessible-label=${copied ? "Copied" : `Copy ${label.toLowerCase()}`} @click=${() => this.#copyTailnet(what, value)}>
11190
- <swc-icon-copy slot="icon"></swc-icon-copy>${copied ? "Copied" : "Copy"}
11191
- </swc-action-button>
11306
+ ${this.#copyButton(what, what, spoken, value, area)}
11192
11307
  </dd>`;
11193
11308
  }
11194
11309
  #signIn(port, tailnet) {
@@ -11208,7 +11323,12 @@ var SliccNetwork = class extends ModelElement {
11208
11323
  ${this.#copyRow("name", "Name", tailnet.node.name)}
11209
11324
  ${address ? this.#copyRow("address", "Address", address) : A}
11210
11325
  </dl>` : A}
11211
- ${port.setExitNode && tailnet.exitNodes ? b`<div class="exit">
11326
+ ${port.setExit ? A : this.#tailnetExit(port, status2, tailnet)}
11327
+ ${tailnet.shieldsUp === false ? b`<div class="warning" data-shields="down"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>Shields down: peers on your tailnet can connect to this browser.</span></div>` : tailnet.shieldsUp ? b`<p class="muted" data-shields="up">Shields up: peers can’t connect to this browser.</p>` : A}
11328
+ ${port.logoutTailnet ? b`<div class="actions"><swc-button size="m" variant="secondary" data-action="tailnet-sign-out" ?pending=${this.busy === "sign-out"} ?disabled=${this.#waiting("sign-out")} @click=${() => this.#signOut(port)}>Sign out</swc-button></div>` : A}`;
11329
+ }
11330
+ #tailnetExit(port, status2, tailnet) {
11331
+ return b`${port.setExitNode && tailnet.exitNodes ? b`<div class="exit">
11212
11332
  <span id="exit-node">Exit node</span>
11213
11333
  <sp-picker size="m" label="Exit node" aria-labelledby="exit-node" data-action="exit-node" .value=${l(exitNodeValue(tailnet))} ?pending=${this.busy === "exit"} ?disabled=${this.#waiting("exit")} @change=${(event2) => this.#exit(event2, port)}>
11214
11334
  <sp-menu-item value="none">None</sp-menu-item>
@@ -11216,9 +11336,115 @@ var SliccNetwork = class extends ModelElement {
11216
11336
  ${tailnet.exitNodes.map((node) => b`<sp-menu-item value=${node.id} ?disabled=${!node.online}>${node.name}${node.online ? A : b`<span slot="description">Offline</span>`}</sp-menu-item>`)}
11217
11337
  </sp-picker>
11218
11338
  </div>` : A}
11219
- <p data-exit=${tailnet.exitNode ? "node" : "none"}>${tailnet.exitNode ? `Internet through the exit node ${tailnet.exitNode}.` : tailnetOnly[status2.route ?? "none"]}</p>
11220
- ${tailnet.shieldsUp === false ? b`<div class="warning" data-shields="down"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>Shields down: peers on your tailnet can connect to this browser.</span></div>` : tailnet.shieldsUp ? b`<p class="muted" data-shields="up">Shields up: peers can’t connect to this browser.</p>` : A}
11221
- ${port.logoutTailnet ? b`<div class="actions"><swc-button size="m" variant="secondary" data-action="tailnet-sign-out" ?pending=${this.busy === "sign-out"} ?disabled=${this.#waiting("sign-out")} @click=${() => this.#signOut(port)}>Sign out</swc-button></div>` : A}`;
11339
+ <p data-exit=${tailnet.exitNode ? "node" : "none"}>${tailnet.exitNode ? `Internet through the exit node ${tailnet.exitNode}.` : tailnetOnly[status2.route ?? "none"]}</p>`;
11340
+ }
11341
+ #exitLine(status2) {
11342
+ const exit = status2.exit;
11343
+ if (!exit) return A;
11344
+ if (exit.kind === "tailnet") {
11345
+ const name = status2.tailnet?.exitNodes?.find((node) => node.id === exit.node)?.name;
11346
+ return b`<p data-exit="node">${name ? `Internet through the Tailscale exit node ${name}.` : "Internet through an automatic Tailscale exit node."}</p>`;
11347
+ }
11348
+ const device = status2.links?.devices.find((item2) => item2.id === exit.id);
11349
+ if (device?.state === "connected") {
11350
+ return b`<p data-exit="device">Internet through the linked device ${device.name}.</p>`;
11351
+ }
11352
+ const who = device ? `${device.name} is ${device.state}` : "The linked device isn\u2019t connected";
11353
+ return b`<div class="warning" data-exit="device" data-held><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>${who}. Internet traffic waits until it’s connected.</span></div>`;
11354
+ }
11355
+ #exitPicker(port, status2) {
11356
+ const tailnet = status2.tailnet;
11357
+ const nodes = tailnet?.state === "running" ? tailnet.exitNodes ?? [] : [];
11358
+ const devices = (status2.links?.devices ?? []).filter((device) => device.exit);
11359
+ if (!port.setExit || !nodes.length && !devices.length && !status2.exit) return A;
11360
+ const current = exitValue(status2.exit);
11361
+ return b`<div class="exit" data-exit-picker=${status2.exit?.kind ?? "none"}>
11362
+ <span id="exit">Internet traffic</span>
11363
+ <sp-picker size="m" label="Internet traffic" aria-labelledby="exit" data-action="exit" .value=${l(current)} ?pending=${this.busy === "exit"} ?disabled=${this.#waiting("exit")} @change=${(event2) => this.#exitAll(event2, port)}>
11364
+ <sp-menu-item value="none">Directly</sp-menu-item>
11365
+ ${nodes.length ? b`<sp-menu-group data-group="tailnet"><span slot="header">Tailscale</span>
11366
+ <sp-menu-item value="tailnet:auto">Automatic</sp-menu-item>
11367
+ ${nodes.map((node) => b`<sp-menu-item value=${`tailnet:${node.id}`} ?disabled=${!node.online && current !== `tailnet:${node.id}`}>${node.name}${node.online ? A : b`<span slot="description">Offline</span>`}</sp-menu-item>`)}
11368
+ </sp-menu-group>` : A}
11369
+ ${devices.length ? b`<sp-menu-group data-group="links"><span slot="header">Linked devices</span>
11370
+ ${devices.map((device) => b`<sp-menu-item value=${`link:${device.id}`} ?disabled=${device.state !== "connected" && current !== `link:${device.id}`}>${device.name}${device.state === "connected" ? A : b`<span slot="description">${linkStates[device.state][1]}</span>`}</sp-menu-item>`)}
11371
+ </sp-menu-group>` : A}
11372
+ </sp-picker>
11373
+ </div>
11374
+ ${this.#exitLine(status2)}`;
11375
+ }
11376
+ #exitAll(event2, port) {
11377
+ const value = event2.target.value;
11378
+ void this.#act("exit", () => port.setExit?.(parseExit(value)), "error");
11379
+ }
11380
+ async #unlink(port, status2, device) {
11381
+ const isExit = status2.exit?.kind === "link" && status2.exit.id === device.id;
11382
+ const ok = await confirm({
11383
+ title: `Unlink ${device.name}?`,
11384
+ body: unlinkBody(device, isExit),
11385
+ action: "Unlink",
11386
+ variant: "confirmation"
11387
+ });
11388
+ if (ok) await this.#act(`unlink:${device.id}`, () => port.unlink?.(device.id), "linksError");
11389
+ }
11390
+ async #rotate(port) {
11391
+ const ok = await confirm({
11392
+ title: "Make a new join URL?",
11393
+ body: "Linked devices stay linked. Anyone with the old URL can\u2019t link anymore.",
11394
+ action: "New URL",
11395
+ variant: "confirmation"
11396
+ });
11397
+ if (ok) await this.#act("rotate", () => port.rotateJoinUrl?.(), "linksError");
11398
+ }
11399
+ #device(port, status2, device) {
11400
+ const [variant, label] = linkStates[device.state];
11401
+ const isExit = status2.exit?.kind === "link" && status2.exit.id === device.id;
11402
+ const action = `unlink:${device.id}`;
11403
+ return b`<li class="device" data-device=${device.id} data-state=${device.state} data-mode=${device.mode}>
11404
+ <div class="who">
11405
+ <span class="name" title=${device.name}>${device.name}</span>
11406
+ <swc-status-light size="s" variant=${variant}>${label}</swc-status-light>
11407
+ ${isExit ? b`<swc-badge size="s" variant="accent" subtle data-exit-badge>Exit</swc-badge>` : A}
11408
+ </div>
11409
+ ${port.unlink ? b`<swc-button size="s" variant="secondary" fill-style="outline" data-action="unlink" ?pending=${this.busy === action} ?disabled=${this.#waiting(action)} @click=${() => this.#unlink(port, status2, device)}>Unlink</swc-button>` : A}
11410
+ <span class="where"><code>${device.host}</code><span><code>${device.address}</code> · ${device.mode === "local" ? "This computer" : "Remote"}</span></span>
11411
+ ${device.policy ? b`<span class="muted" data-policy>Reaches ${device.policy}.</span>` : A}
11412
+ ${device.offers.includes("ssh") ? b`<div class="command" data-copy="ssh"><code>ssh ${device.host}</code>${this.#copyButton(`ssh:${device.id}`, "ssh", "ssh command", `ssh ${device.host}`, "linksError")}</div>` : A}
11413
+ </li>`;
11414
+ }
11415
+ #join(port, links) {
11416
+ const ready = links.joinCommand || links.joinUrl;
11417
+ return b`<p>Link a slicc CLI on another computer, or on this one, to reach its network, ssh into it, or send internet traffic through it.</p>
11418
+ ${ready ? b`<p>Run this on that computer:</p>
11419
+ <dl class="node stacked" data-join="ready">
11420
+ ${links.joinCommand ? this.#copyRow("join-command", "Command", links.joinCommand, "linksError", "command") : A}
11421
+ ${links.joinUrl ? this.#copyRow("join-url", "Join URL", links.joinUrl, "linksError", "join URL") : A}
11422
+ </dl>
11423
+ ${port.rotateJoinUrl && links.joinUrl ? b`<div class="actions"><swc-button size="s" variant="secondary" fill-style="outline" data-action="rotate-join-url" ?pending=${this.busy === "rotate"} ?disabled=${this.#waiting("rotate")} @click=${() => this.#rotate(port)}>New join URL</swc-button></div>` : A}` : b`<p class="muted" data-join="preparing">Preparing a join URL…</p>`}`;
11424
+ }
11425
+ #permission(port, links) {
11426
+ if (links.permission === "prompt") {
11427
+ return b`<div class="info" data-link-permission="prompt"><swc-icon-info-circle size="s" aria-hidden="true"></swc-icon-info-circle><span>A device is waiting to link. Chrome is asking whether this page may reach devices on your local network. Choose Allow.</span></div>`;
11428
+ }
11429
+ if (links.permission === "denied") {
11430
+ return b`<div class="warning" data-link-permission="denied"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><div class="banner"><span>Chrome blocked local network access, so devices can’t link. Allow it in this site’s settings, then try again.</span>${port.retryLinks ? b`<div class="actions"><swc-button size="s" variant="secondary" fill-style="outline" data-action="retry-links" ?pending=${this.busy === "retry-links"} ?disabled=${this.#waiting("retry-links")} @click=${() => this.#act("retry-links", () => port.retryLinks?.(), "linksError")}>Try again</swc-button></div>` : A}</div></div>`;
11431
+ }
11432
+ return A;
11433
+ }
11434
+ #linksSection(port, status2) {
11435
+ const links = status2.links;
11436
+ if (!links) return A;
11437
+ const [variant, label] = linksLight(links);
11438
+ return b`<section aria-labelledby="links" data-links=${linksSummary(links)}>
11439
+ <div class="head">
11440
+ <h2 id="links">Linked devices</h2>
11441
+ <swc-status-light variant=${variant}>${label}</swc-status-light>
11442
+ </div>
11443
+ ${this.#permission(port, links)}
11444
+ ${links.devices.length ? b`<ul aria-labelledby="links">${links.devices.map((device) => this.#device(port, status2, device))}</ul>
11445
+ <details><summary>Link another device</summary><div>${this.#join(port, links)}</div></details>` : this.#join(port, links)}
11446
+ ${this.linksError ? b`<div class="error" role="alert" data-error="links"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>${this.linksError}</span></div>` : A}
11447
+ </section>`;
11222
11448
  }
11223
11449
  #exit(event2, port) {
11224
11450
  const value = event2.target.value;
@@ -11256,7 +11482,7 @@ var SliccNetwork = class extends ModelElement {
11256
11482
  ${this.tailnetError ? b`<div class="error" role="alert" data-error="tailnet-action"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>${this.tailnetError}</span></div>` : A}
11257
11483
  </section>`;
11258
11484
  }
11259
- #state(status2) {
11485
+ #state(port, status2) {
11260
11486
  const [variant, label] = networkHealth[status2.health];
11261
11487
  return b`<section aria-labelledby="state">
11262
11488
  <div class="head">
@@ -11265,8 +11491,9 @@ var SliccNetwork = class extends ModelElement {
11265
11491
  </div>
11266
11492
  <p data-route=${status2.route ?? "none"}>${routeLine(status2)}</p>
11267
11493
  ${status2.detail ? b`<p class="detail">${status2.detail}</p>` : A}
11494
+ ${this.#exitPicker(port, status2)}
11268
11495
  ${status2.browser ? b`<p data-browser=${automationOf(status2.browser)}>${automation[automationOf(status2.browser)]}${status2.browser.detail ? b` <span class="detail">${status2.browser.detail}</span>` : A}</p>` : A}
11269
- ${this.model?.network?.check ? b`<div class="actions"><swc-button size="m" variant="secondary" data-action="check" ?pending=${this.checking} @click=${() => this.check()}>Check again</swc-button></div>` : A}
11496
+ ${port.check ? b`<div class="actions"><swc-button size="m" variant="secondary" data-action="check" ?pending=${this.checking} @click=${() => this.check()}>Check again</swc-button></div>` : A}
11270
11497
  ${this.error ? b`<div class="error" role="alert"><swc-icon-alert-triangle size="s" aria-hidden="true"></swc-icon-alert-triangle><span>${this.error}</span></div>` : A}
11271
11498
  </section>`;
11272
11499
  }
@@ -11309,8 +11536,9 @@ var SliccNetwork = class extends ModelElement {
11309
11536
  }
11310
11537
  const status2 = port.status();
11311
11538
  return b`<div class="page" tabindex="-1">
11312
- ${this.#state(status2)}
11539
+ ${this.#state(port, status2)}
11313
11540
  ${this.#tailnetSection(port, status2)}
11541
+ ${this.#linksSection(port, status2)}
11314
11542
  ${this.#whole(status2)}
11315
11543
  ${this.#failures(status2)}
11316
11544
  </div>`;
@@ -14809,7 +15037,7 @@ ${swc_default}`));
14809
15037
  var t45 = i`:host{display:block}*{box-sizing:border-box}.swc-Divider{--_swc-divider-thickness: var(--swc-divider-thickness, 2px);inline-size:100%;block-size:var(--_swc-divider-thickness);background-color:var(--swc-divider-background-color, var(--swc-gray-200));border-radius:var(--_swc-divider-thickness)}:host([size=\"s\"]){--swc-divider-thickness: 1px}:host([size=\"l\"]){--swc-divider-thickness: 4px;--swc-divider-background-color: var(--swc-gray-800)}.swc-Divider:not(.swc-Divider--vertical){min-inline-size:min(100%,200px)}:host([vertical]){align-self:stretch}.swc-Divider--vertical{inline-size:var(--_swc-divider-thickness);block-size:100%;min-block-size:min(100%,200px)}.swc-Divider--staticWhite{--swc-divider-background-color: rgba(255, 255, 255, .14)}.swc-Divider--staticWhite:where(.swc-Divider--sizeL){--swc-divider-background-color: rgba(255, 255, 255, .85)}.swc-Divider--staticBlack{--swc-divider-background-color: rgba(0, 0, 0, .12)}.swc-Divider--staticBlack:where(.swc-Divider--sizeL){--swc-divider-background-color: rgba(0, 0, 0, .84)}@media(forced-colors:active){.swc-Divider{--swc-divider-background-color: CanvasText}}`;
14810
15038
 
14811
15039
  // node_modules/@adobe/spectrum-wc-core/dist/components/divider/Divider.types.js
14812
- var e82 = [
15040
+ var e83 = [
14813
15041
  "s",
14814
15042
  "m",
14815
15043
  "l"
@@ -14818,7 +15046,7 @@ var t46 = ["white", "black"];
14818
15046
 
14819
15047
  // node_modules/@adobe/spectrum-wc-core/dist/components/divider/Divider.base.js
14820
15048
  var s10;
14821
- var c18 = class extends i12(i9, { validSizes: e82 }) {
15049
+ var c18 = class extends i12(i9, { validSizes: e83 }) {
14822
15050
  constructor(...e116) {
14823
15051
  super(...e116), this.vertical = false;
14824
15052
  }
@@ -14877,7 +15105,7 @@ e25("swc-divider", a13);
14877
15105
  var t47 = i`:host([indeterminate]) .swc-LinearProgress-fill{inline-size:100%;min-inline-size:0;transform-origin:left;transition:none;animation:indeterminate-loop-ltr 1s cubic-bezier(.45,0,.4,1) infinite;will-change:transform;&:dir(rtl){animation-name:indeterminate-loop-rtl}}@keyframes indeterminate-loop-ltr{0%{transform:translate(-70%) scaleX(.7)}to{transform:translate(100%) scaleX(.7)}}@keyframes indeterminate-loop-rtl{0%{transform:translate(100%) scaleX(.7)}to{transform:translate(-70%) scaleX(.7)}}@media(prefers-reduced-motion:reduce){:host([indeterminate]) .swc-LinearProgress-fill{animation-duration:15s;animation-timing-function:linear}}`;
14878
15106
 
14879
15107
  // node_modules/@adobe/spectrum-wc-core/dist/components/progress-bar/ProgressBar.base.js
14880
- var o56 = class extends m3(i12(i9, {
15108
+ var o57 = class extends m3(i12(i9, {
14881
15109
  validSizes: s6,
14882
15110
  defaultSize: "m"
14883
15111
  })) {
@@ -14888,10 +15116,10 @@ var o56 = class extends m3(i12(i9, {
14888
15116
  e24([n({
14889
15117
  type: Boolean,
14890
15118
  reflect: true
14891
- })], o56.prototype, "indeterminate", void 0);
15119
+ })], o57.prototype, "indeterminate", void 0);
14892
15120
 
14893
15121
  // node_modules/@adobe/spectrum-wc/dist/components/progress-bar/ProgressBar.js
14894
- var o57 = class extends o56 {
15122
+ var o58 = class extends o57 {
14895
15123
  static get styles() {
14896
15124
  return [t26, t47];
14897
15125
  }
@@ -14940,13 +15168,13 @@ var o57 = class extends o56 {
14940
15168
  };
14941
15169
 
14942
15170
  // node_modules/@adobe/spectrum-wc/dist/components/progress-bar/swc-progress-bar.js
14943
- e25("swc-progress-bar", o57);
15171
+ e25("swc-progress-bar", o58);
14944
15172
 
14945
15173
  // node_modules/@adobe/spectrum-wc/dist/components/progress-circle/progress-circle.js
14946
15174
  var t48 = i`@keyframes swc-fills-rotate{0%{transform:rotate(var(--swc-progress-circle-rotate-start, -90deg))}to{transform:rotate(var(--swc-progress-circle-rotate-end, 270deg))}}@keyframes swc-dashoffset-animation{0%,to{stroke-dashoffset:75px}30%{stroke-dashoffset:var(--swc-progress-circle-dashoffset-30, 20px)}}:host{display:inline-block;align-self:center;justify-self:center;place-self:center}*{box-sizing:border-box}.swc-ProgressCircle{--_swc-progress-circle-size: var(--swc-progress-circle-size, var(--swc-progress-circle-size-medium));--_swc-progress-circle-track-border-color: var(--swc-progress-circle-track-border-color, var(--swc-gray-300));--_swc-progress-circle-fill-border-color: var(--swc-progress-circle-fill-border-color, var(--swc-accent-color-900));--_swc-progress-circle-thickness: var(--swc-progress-circle-thickness, var(--swc-progress-circle-thickness-medium));display:inline-block;position:relative;inline-size:var(--_swc-progress-circle-size);block-size:var(--_swc-progress-circle-size);direction:ltr;transform:translateZ(0)}.swc-ProgressCircle-fill,.swc-ProgressCircle-track{inline-size:var(--_swc-progress-circle-size);block-size:var(--_swc-progress-circle-size)}.swc-ProgressCircle-track{stroke:var(--_swc-progress-circle-track-border-color);stroke-width:var(--_swc-progress-circle-thickness)}.swc-ProgressCircle-fill{stroke:var(--_swc-progress-circle-fill-border-color);stroke-width:var(--_swc-progress-circle-thickness);transform:rotate(-90deg);transform-origin:center}.swc-ProgressCircle--indeterminate .swc-ProgressCircle-fill{transform-origin:center;animation:swc-fills-rotate 1s cubic-bezier(.6,.1,.3,.9) infinite,swc-dashoffset-animation 1s cubic-bezier(.25,.1,.25,1.3) infinite;will-change:transform}:host([size=\"s\"]){--swc-progress-circle-size: var(--swc-progress-circle-size-small);--swc-progress-circle-thickness: var(--swc-progress-circle-thickness-small)}:host([size=\"l\"]){--swc-progress-circle-size: var(--swc-progress-circle-size-large);--swc-progress-circle-thickness: var(--swc-progress-circle-thickness-large)}.swc-ProgressCircle:where(.swc-ProgressCircle--staticWhite){--swc-progress-circle-track-border-color: var(--swc-transparent-white-300);--swc-progress-circle-fill-border-color: var(--swc-transparent-white-900)}.swc-ProgressCircle:where(.swc-ProgressCircle--staticBlack){--swc-progress-circle-track-border-color: var(--swc-transparent-black-300);--swc-progress-circle-fill-border-color: var(--swc-transparent-black-900)}@media(prefers-reduced-motion:reduce){.swc-ProgressCircle--indeterminate .swc-ProgressCircle-fill{--swc-progress-circle-dashoffset-30: 0;--swc-progress-circle-rotate-start: 0deg;--swc-progress-circle-rotate-end: 360deg;animation-duration:15s;animation-timing-function:linear,linear}}@media(forced-colors:active){.swc-ProgressCircle{--swc-progress-circle-fill-border-color: Highlight;@media(prefers-color-scheme:dark){--swc-progress-circle-track-border-color: var(--swc-transparent-white-300)}@media(prefers-color-scheme:light){--swc-progress-circle-track-border-color: var(--swc-transparent-black-300)}}}`;
14947
15175
 
14948
15176
  // node_modules/@adobe/spectrum-wc-core/dist/components/progress-circle/ProgressCircle.types.js
14949
- var e83 = [
15177
+ var e84 = [
14950
15178
  "s",
14951
15179
  "m",
14952
15180
  "l"
@@ -14955,7 +15183,7 @@ var t49 = ["white", "black"];
14955
15183
 
14956
15184
  // node_modules/@adobe/spectrum-wc-core/dist/components/progress-circle/ProgressCircle.base.js
14957
15185
  var u17;
14958
- var d13 = class e84 extends i12(i9, { validSizes: e83 }) {
15186
+ var d13 = class e85 extends i12(i9, { validSizes: e84 }) {
14959
15187
  constructor(...e116) {
14960
15188
  super(...e116), this.label = "", this.progress = null, this.languageResolver = new i10(this);
14961
15189
  }
@@ -14980,11 +15208,11 @@ var d13 = class e84 extends i12(i9, { validSizes: e83 }) {
14980
15208
  }).format(((e116 = this.progress) == null ? 0 : e116) / 100);
14981
15209
  }
14982
15210
  warnDeprecatedLightDomChildren() {
14983
- r9(this, e84.hasMeaningfulLightDomChildren(this), `<${this.localName}> no longer has a default slot. Light DOM children are not rendered and are not used for an accessible name. Use the "label" attribute or property, or "aria-label" / "aria-labelledby" on the host instead.`, "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs", { level: "deprecation" });
15211
+ r9(this, e85.hasMeaningfulLightDomChildren(this), `<${this.localName}> no longer has a default slot. Light DOM children are not rendered and are not used for an accessible name. Use the "label" attribute or property, or "aria-label" / "aria-labelledby" on the host instead.`, "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs", { level: "deprecation" });
14984
15212
  }
14985
15213
  willUpdate(t88) {
14986
15214
  if (t88.has("progress") && this.progress !== null) {
14987
- let t89 = e84.clampProgress(this.progress);
15215
+ let t89 = e85.clampProgress(this.progress);
14988
15216
  t89 !== this.progress && (this.progress = t89);
14989
15217
  }
14990
15218
  super.willUpdate(t88);
@@ -14993,7 +15221,7 @@ var d13 = class e84 extends i12(i9, { validSizes: e83 }) {
14993
15221
  super.firstUpdated(e116), this.setAttribute("role", "progressbar");
14994
15222
  }
14995
15223
  updated(t88) {
14996
- if (super.updated(t88), t88.has("progress") && (this.progress !== null && this.progress >= 0 ? (this.setAttribute("aria-valuemin", "0"), this.setAttribute("aria-valuemax", "100"), this.setAttribute("aria-valuenow", String(this.progress)), this.setAttribute("aria-valuetext", this.formatProgress())) : (this.removeAttribute("aria-valuemin"), this.removeAttribute("aria-valuemax"), this.removeAttribute("aria-valuenow"), this.removeAttribute("aria-valuetext"))), this.progress !== null && t88.has(e27) && this.setAttribute("aria-valuetext", this.formatProgress()), t88.has("label") && (this.label.length ? this.setAttribute("aria-label", this.label) : t88.get("label") === this.getAttribute("aria-label") && this.removeAttribute("aria-label")), t88.has("label") && !this.hasAccessibleName() && (this.setAttribute("aria-label", e84.DEFAULT_LABEL), r9(this, true, `<${this.localName}> requires an accessible name. A default label of "${e84.DEFAULT_LABEL}" has been applied, but a more specific label should be provided via:`, "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs", {
15224
+ if (super.updated(t88), t88.has("progress") && (this.progress !== null && this.progress >= 0 ? (this.setAttribute("aria-valuemin", "0"), this.setAttribute("aria-valuemax", "100"), this.setAttribute("aria-valuenow", String(this.progress)), this.setAttribute("aria-valuetext", this.formatProgress())) : (this.removeAttribute("aria-valuemin"), this.removeAttribute("aria-valuemax"), this.removeAttribute("aria-valuenow"), this.removeAttribute("aria-valuetext"))), this.progress !== null && t88.has(e27) && this.setAttribute("aria-valuetext", this.formatProgress()), t88.has("label") && (this.label.length ? this.setAttribute("aria-label", this.label) : t88.get("label") === this.getAttribute("aria-label") && this.removeAttribute("aria-label")), t88.has("label") && !this.hasAccessibleName() && (this.setAttribute("aria-label", e85.DEFAULT_LABEL), r9(this, true, `<${this.localName}> requires an accessible name. A default label of "${e85.DEFAULT_LABEL}" has been applied, but a more specific label should be provided via:`, "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs", {
14997
15225
  type: "accessibility",
14998
15226
  issues: [
14999
15227
  'value supplied to the "label" attribute, which will be displayed visually as part of the element, or',
@@ -15117,7 +15345,7 @@ e12([n({
15117
15345
  e25("swc-conversation-turn", a14);
15118
15346
 
15119
15347
  // node_modules/@adobe/spectrum-wc/dist/components/ui-icons/ui-icons.types.js
15120
- var e85 = [
15348
+ var e86 = [
15121
15349
  50,
15122
15350
  75,
15123
15351
  100,
@@ -15137,7 +15365,7 @@ function n29(e116) {
15137
15365
  }
15138
15366
  function r26(t88, r39) {
15139
15367
  if (!t88) return;
15140
- let i25 = n29(r39), a22 = e85.filter((e116) => t88[e116] !== void 0);
15368
+ let i25 = n29(r39), a22 = e86.filter((e116) => t88[e116] !== void 0);
15141
15369
  if (a22.length !== 0) return t88[a22.reduce((e116, t89) => Math.abs(t89 - i25) < Math.abs(e116 - i25) ? t89 : e116)];
15142
15370
  }
15143
15371
 
@@ -15761,7 +15989,7 @@ e12([n({
15761
15989
  e25("swc-ui-icon", l16);
15762
15990
 
15763
15991
  // node_modules/@adobe/spectrum-wc/dist/utils/id.js
15764
- function e86(e116) {
15992
+ function e87(e116) {
15765
15993
  return `${e116}-${Array.from(crypto.getRandomValues(new Uint8Array(4)), (e117) => `0${(e117 & 255).toString(16)}`.slice(-2)).join("")}`;
15766
15994
  }
15767
15995
 
@@ -15771,7 +15999,7 @@ var t65 = i`:host{display:block}*,*:before,*:after{box-sizing:border-box}.swc-Me
15771
15999
  // node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/message-sources/MessageSources.js
15772
16000
  var c19 = class extends i9 {
15773
16001
  constructor(...e116) {
15774
- super(...e116), this.panelId = e86("swc-sources-panel"), this.toggleId = e86("swc-message-sources-toggle"), this.sourceLinks = [], this.open = false, this.label = "Sources", this.accessibleLabel = "";
16002
+ super(...e116), this.panelId = e87("swc-sources-panel"), this.toggleId = e87("swc-message-sources-toggle"), this.sourceLinks = [], this.open = false, this.label = "Sources", this.accessibleLabel = "";
15775
16003
  }
15776
16004
  static get styles() {
15777
16005
  return [t65];
@@ -15906,7 +16134,7 @@ var a15 = () => b`
15906
16134
  <circle cx="4" cy="4" r="4" fill="currentColor" />
15907
16135
  </svg>
15908
16136
  `;
15909
- var o58 = () => b`
16137
+ var o59 = () => b`
15910
16138
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8">
15911
16139
  <circle cx="4" cy="4" r="3.5" fill="none" stroke="currentColor" />
15912
16140
  </svg>
@@ -15966,7 +16194,7 @@ var h6 = class extends i9 {
15966
16194
  return this._readLabel();
15967
16195
  }
15968
16196
  constructor() {
15969
- super(), this._toggleId = e86("swc-response-status-step-toggle"), this._detailId = e86("swc-response-status-step-detail"), this.status = "active", this.open = false, this._hasDescription = false, this._labelText = "", this._overflows = false, this._lastActiveLabel = "", new t2(this, {
16197
+ super(), this._toggleId = e87("swc-response-status-step-toggle"), this._detailId = e87("swc-response-status-step-detail"), this.status = "active", this.open = false, this._hasDescription = false, this._labelText = "", this._overflows = false, this._lastActiveLabel = "", new t2(this, {
15970
16198
  config: {
15971
16199
  attributes: true,
15972
16200
  attributeFilter: ["slot"],
@@ -16049,7 +16277,7 @@ var h6 = class extends i9 {
16049
16277
  class="swc-ResponseStatusStep-icon swc-ResponseStatusStep-icon--active"
16050
16278
  aria-hidden="true"
16051
16279
  >
16052
- ${o58()}
16280
+ ${o59()}
16053
16281
  </swc-icon>
16054
16282
  `);
16055
16283
  }
@@ -16123,7 +16351,7 @@ e12([n({
16123
16351
  e25("swc-response-status-step", h6);
16124
16352
 
16125
16353
  // node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/data.js
16126
- function e87(e116, t88) {
16354
+ function e88(e116, t88) {
16127
16355
  let n36 = Array.from(new Set(e116.map(([, e117]) => e117))).sort((e117, t89) => t89 - e117), r39 = Array(e116.length).fill(0), i25 = 0;
16128
16356
  return n36.forEach((n37) => {
16129
16357
  let a22 = e116.reduce((e117, t89, r40) => (t89[1] === n37 && e117.push(r40), e117), []);
@@ -16133,7 +16361,7 @@ function e87(e116, t88) {
16133
16361
  }), r39;
16134
16362
  }
16135
16363
  function t68(t88, n36 = {}) {
16136
- let { staggerInterval: r39 = 2, rowOffset: i25 = 0 } = n36, a22 = e87(t88, r39);
16364
+ let { staggerInterval: r39 = 2, rowOffset: i25 = 0 } = n36, a22 = e88(t88, r39);
16137
16365
  return t88.map(([e116, t89], n37) => ({
16138
16366
  col: e116,
16139
16367
  row: t89 + i25,
@@ -16276,7 +16504,7 @@ var a16 = t68([
16276
16504
  [5, 0],
16277
16505
  [6, 0]
16278
16506
  ], { staggerInterval: 1 });
16279
- var o59 = t68([
16507
+ var o60 = t68([
16280
16508
  [6, 6],
16281
16509
  [5, 5],
16282
16510
  [1, 4],
@@ -16831,7 +17059,7 @@ var N = {
16831
17059
  brush: r30,
16832
17060
  eye: i19,
16833
17061
  hourglass: a16,
16834
- mag: o59,
17062
+ mag: o60,
16835
17063
  crop: s12,
16836
17064
  flower: c21,
16837
17065
  image: l17,
@@ -16922,13 +17150,13 @@ var F = {
16922
17150
  };
16923
17151
 
16924
17152
  // node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/animation.js
16925
- var e88 = 30;
16926
- var t69 = (t88) => t88 * e88 / 1e3;
17153
+ var e89 = 30;
17154
+ var t69 = (t88) => t88 * e89 / 1e3;
16927
17155
  var n32 = 13;
16928
17156
  var r31 = 12;
16929
17157
  var i20 = t69(1400);
16930
17158
  var a17 = t69(150);
16931
- var o60 = t69(150);
17159
+ var o61 = t69(150);
16932
17160
  var s13 = 0.1;
16933
17161
  var c22 = t69(230);
16934
17162
  var l18 = 0.3;
@@ -16955,7 +17183,7 @@ function v8(e116) {
16955
17183
  return t88 + n32 + i20 + r31;
16956
17184
  }
16957
17185
  function y4(t88) {
16958
- return v8(t88) / e88 * 1e3;
17186
+ return v8(t88) / e89 * 1e3;
16959
17187
  }
16960
17188
  function b8(e116, t88) {
16961
17189
  return Math.min(1, Math.max(0, e116 / t88));
@@ -17000,7 +17228,7 @@ function S2(e116, t88) {
17000
17228
  }), x3(o87);
17001
17229
  }
17002
17230
  function C3(e116, t88) {
17003
- let i25 = e116.stagger + n32 - o60, u27 = i25 - a17, d22 = _4(e116), f11 = d22 + c22;
17231
+ let i25 = e116.stagger + n32 - o61, u27 = i25 - a17, d22 = _4(e116), f11 = d22 + c22;
17004
17232
  return x3([
17005
17233
  {
17006
17234
  offset: 0,
@@ -17072,7 +17300,7 @@ function k2(e116) {
17072
17300
  return t88 + E2 + D3 + t88 + E2;
17073
17301
  }
17074
17302
  function A4(t88) {
17075
- return k2(t88) / e88 * 1e3;
17303
+ return k2(t88) / e89 * 1e3;
17076
17304
  }
17077
17305
  function j2(e116, t88, n36) {
17078
17306
  let r39 = O2(t88), i25 = r39.indexOf(e116.row), a22 = (r39.length - 1) * T4 + E2, o87 = i25 * T4, s19 = a22 + D3 + i25 * T4;
@@ -17111,9 +17339,9 @@ function j2(e116, t88, n36) {
17111
17339
  var M2 = "0 0px";
17112
17340
 
17113
17341
  // node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/geometry.js
17114
- var e89 = /* @__PURE__ */ new WeakMap();
17342
+ var e90 = /* @__PURE__ */ new WeakMap();
17115
17343
  function t70(t88) {
17116
- let n36 = e89.get(t88);
17344
+ let n36 = e90.get(t88);
17117
17345
  if (n36) return n36;
17118
17346
  let r39 = new Set(t88.map((e116) => `${e116.col},${e116.row}`)), i25 = (e116, t89) => r39.has(`${e116},${t89}`), a22 = t88.map(({ col: e116, row: t89 }) => {
17119
17347
  let n37 = i25(e116 - 1, t89), r40 = i25(e116 + 1, t89), a23 = i25(e116, t89 - 1), o87 = i25(e116, t89 + 1), s19 = i25(e116 - 1, t89 - 1), c27 = i25(e116 + 1, t89 - 1), l24 = i25(e116 + 1, t89 + 1), u27 = i25(e116 - 1, t89 + 1);
@@ -17124,7 +17352,7 @@ function t70(t88) {
17124
17352
  bottomLeft: !n37 && !o87 && !u27
17125
17353
  };
17126
17354
  });
17127
- return e89.set(t88, a22), a22;
17355
+ return e90.set(t88, a22), a22;
17128
17356
  }
17129
17357
  function n33(e116, t88) {
17130
17358
  return `${e116.topLeft ? t88 : "0"} ${e116.topRight ? t88 : "0"} ${e116.bottomRight ? t88 : "0"} ${e116.bottomLeft ? t88 : "0"}`;
@@ -17136,7 +17364,7 @@ var t71 = i`:host{display:inline-block}*,*:before,*:after{box-sizing:border-box}
17136
17364
  // node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/pixel-loader/PixelLoader.js
17137
17365
  var w4;
17138
17366
  var T5 = "https://spectrum-web-components.adobe.com/?path=/docs/patterns-ai-toolkit-pixel-loader--docs";
17139
- var E3 = class e90 extends i9 {
17367
+ var E3 = class e91 extends i9 {
17140
17368
  constructor(...e116) {
17141
17369
  super(...e116), this.icon = "aiLogo", this.paused = false, this.label = "Loading", this._presetIndex = 0, this._animations = [], this._containerCache = null, this._cellElsCache = null, this._ticker = null, this._reducedMotionQuery = null, this._displayedIcon = "aiLogo", this._finishToken = 0, this._handleReducedMotionChange = () => {
17142
17370
  this._syncTicker(), this._playCells();
@@ -17239,8 +17467,8 @@ var E3 = class e90 extends i9 {
17239
17467
  }
17240
17468
  }), this._cancelAnimations();
17241
17469
  let i25 = {
17242
- duration: e90.FINISH_MS,
17243
- easing: e90.EASE_FINISH,
17470
+ duration: e91.FINISH_MS,
17471
+ easing: e91.EASE_FINISH,
17244
17472
  fill: "forwards"
17245
17473
  }, a22 = n36.map((e116) => e116.animate([{
17246
17474
  translate: M2,
@@ -17290,7 +17518,7 @@ var E3 = class e90 extends i9 {
17290
17518
  style=${o3({
17291
17519
  "grid-column": String(t88.col + 1),
17292
17520
  "grid-row": String(t88.row + 1),
17293
- "border-radius": n33(n36, e90.CORNER_RADIUS)
17521
+ "border-radius": n33(n36, e91.CORNER_RADIUS)
17294
17522
  })}
17295
17523
  ></div>
17296
17524
  `;
@@ -17331,12 +17559,12 @@ var y5 = [
17331
17559
  "complete",
17332
17560
  "stopped"
17333
17561
  ];
17334
- var b9 = class e91 extends i9 {
17562
+ var b9 = class e92 extends i9 {
17335
17563
  static get styles() {
17336
17564
  return [t72];
17337
17565
  }
17338
17566
  constructor() {
17339
- super(), this.panelId = e86("swc-response-status-panel"), this._hasSteps = false, this._hasActiveStep = false, this._activeStepLabel = "", this._activeStepEl = null, this._labelSlotText = "", this._displayedLabel = "", this._rollFromLabel = "", this._rollToLabel = "", this._rollActive = false, this._rollEngaged = false, this.status = "active", this.open = false, this.accessibleLabel = "", this.loader = "mega", this._labelRollTimer = null, this._labelRollRaf = null, new t2(this, {
17567
+ super(), this.panelId = e87("swc-response-status-panel"), this._hasSteps = false, this._hasActiveStep = false, this._activeStepLabel = "", this._activeStepEl = null, this._labelSlotText = "", this._displayedLabel = "", this._rollFromLabel = "", this._rollToLabel = "", this._rollActive = false, this._rollEngaged = false, this.status = "active", this.open = false, this.accessibleLabel = "", this.loader = "mega", this._labelRollTimer = null, this._labelRollRaf = null, new t2(this, {
17340
17568
  config: {
17341
17569
  attributes: true,
17342
17570
  attributeFilter: ["status"],
@@ -17454,10 +17682,10 @@ var b9 = class e91 extends i9 {
17454
17682
  if (this._labelSlotText) return this._labelSlotText;
17455
17683
  let t88 = this._resolvedStatus;
17456
17684
  if (t88 === "active") {
17457
- if (this._showsGenericProcessingLabel) return e91.ACTIVE_STEP_OPEN_LABEL;
17685
+ if (this._showsGenericProcessingLabel) return e92.ACTIVE_STEP_OPEN_LABEL;
17458
17686
  if (this._activeStepLabel) return this._activeStepLabel;
17459
17687
  }
17460
- return e91.DEFAULT_LABELS[t88];
17688
+ return e92.DEFAULT_LABELS[t88];
17461
17689
  }
17462
17690
  _clearLabelRollTimers() {
17463
17691
  this._labelRollTimer !== null && (window.clearTimeout(this._labelRollTimer), this._labelRollTimer = null), this._labelRollRaf !== null && (window.cancelAnimationFrame(this._labelRollRaf), this._labelRollRaf = null);
@@ -17486,7 +17714,7 @@ var b9 = class e91 extends i9 {
17486
17714
  this._labelRollRaf = window.requestAnimationFrame(() => {
17487
17715
  this._labelRollRaf = null, this._rollEngaged = true, this._labelRollTimer = window.setTimeout(() => {
17488
17716
  this._labelRollTimer = null, this._displayedLabel = this._rollToLabel, this._rollActive = false, this._rollEngaged = false, this._applyLabelRoll();
17489
- }, e91.LABEL_ROLL_DURATION_MS);
17717
+ }, e92.LABEL_ROLL_DURATION_MS);
17490
17718
  });
17491
17719
  });
17492
17720
  }
@@ -17494,7 +17722,7 @@ var b9 = class e91 extends i9 {
17494
17722
  return this._rollActive ? this._rollToLabel : this._displayedLabel || this._getHeaderLabel();
17495
17723
  }
17496
17724
  _renderLabel() {
17497
- let t88 = e91.STATUS_LABEL_CLASS;
17725
+ let t88 = e92.STATUS_LABEL_CLASS;
17498
17726
  return this._rollActive ? b`
17499
17727
  <span class="swc-ResponseStatus-headerTrailViewport">
17500
17728
  <span class=${this._rollEngaged ? "swc-ResponseStatus-headerTrailCrossfade swc-ResponseStatus-headerTrailCrossfade--engaged" : "swc-ResponseStatus-headerTrailCrossfade"}>
@@ -17610,7 +17838,7 @@ var b9 = class e91 extends i9 {
17610
17838
  `;
17611
17839
  }
17612
17840
  _renderPanel(t88) {
17613
- let n36 = t88 && this.open, r39 = this.accessibleLabel || e91.DEFAULT_ACCESSIBLE_LABEL;
17841
+ let n36 = t88 && this.open, r39 = this.accessibleLabel || e92.DEFAULT_ACCESSIBLE_LABEL;
17614
17842
  return b`
17615
17843
  <div
17616
17844
  id=${this.panelId}
@@ -17675,7 +17903,7 @@ var t73 = i`:host{display:block}*,*:before,*:after{box-sizing:border-box}.swc-Su
17675
17903
  // node_modules/@adobe/spectrum-wc/dist/patterns/ai-toolkit/suggestion/SuggestionGroup.js
17676
17904
  var s14 = class extends i9 {
17677
17905
  constructor(...e116) {
17678
- super(...e116), this.accessibleLabel = "", this._headingId = e86("swc-suggestion-group-heading");
17906
+ super(...e116), this.accessibleLabel = "", this._headingId = e87("swc-suggestion-group-heading");
17679
17907
  }
17680
17908
  static get styles() {
17681
17909
  return [t73];
@@ -17838,148 +18066,148 @@ e12([n({
17838
18066
  e25("swc-user-message", a18);
17839
18067
 
17840
18068
  // node_modules/@adobe/spectrum-wc-icons/dist/Cancel.js
17841
- function e92() {
18069
+ function e93() {
17842
18070
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M16.201 16.166A8.72 8.72 0 0 0 18.75 10c0-4.825-3.925-8.75-8.75-8.75a8.72 8.72 0 0 0-6.166 2.549l-.021.014c-.011.007-.008.015-.014.021A8.72 8.72 0 0 0 1.25 10c0 4.825 3.925 8.75 8.75 8.75a8.72 8.72 0 0 0 6.166-2.549c.006-.006.015-.008.021-.014s.008-.015.014-.021M17.25 10c0 1.73-.61 3.317-1.625 4.565L5.435 4.375A7.2 7.2 0 0 1 10 2.75c3.998 0 7.25 3.252 7.25 7.25m-14.5 0c0-1.73.61-3.317 1.625-4.565l10.19 10.19A7.2 7.2 0 0 1 10 17.25c-3.998 0-7.25-3.252-7.25-7.25"/></svg>';
17843
18071
  }
17844
18072
 
17845
18073
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cancel.js
17846
- var o61 = class extends a10 {
18074
+ var o62 = class extends a10 {
17847
18075
  static get styles() {
17848
18076
  return [t40];
17849
18077
  }
17850
18078
  render() {
17851
18079
  return b`
17852
- <span class="swc-Icon">${o16(e92())}</span>
18080
+ <span class="swc-Icon">${o16(e93())}</span>
17853
18081
  `;
17854
18082
  }
17855
18083
  };
17856
- e25("swc-icon-cancel", o61);
18084
+ e25("swc-icon-cancel", o62);
17857
18085
 
17858
18086
  // node_modules/@adobe/spectrum-wc-icons/dist/ChevronRight.js
17859
- function e93() {
18087
+ function e94() {
17860
18088
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M7.75 16.465a.748.748 0 0 1-.54-1.27l4.999-5.197-4.986-5.184a.75.75 0 0 1 .02-1.06.75.75 0 0 1 1.06.021L13.79 9.48c.28.29.28.749 0 1.039l-5.5 5.716a.75.75 0 0 1-.54.23"/></svg>';
17861
18089
  }
17862
18090
 
17863
18091
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-chevron-right.js
17864
- var o62 = class extends a10 {
18092
+ var o63 = class extends a10 {
17865
18093
  static get styles() {
17866
18094
  return [t40];
17867
18095
  }
17868
18096
  render() {
17869
18097
  return b`
17870
- <span class="swc-Icon">${o16(e93())}</span>
18098
+ <span class="swc-Icon">${o16(e94())}</span>
17871
18099
  `;
17872
18100
  }
17873
18101
  };
17874
- e25("swc-icon-chevron-right", o62);
18102
+ e25("swc-icon-chevron-right", o63);
17875
18103
 
17876
18104
  // node_modules/@adobe/spectrum-wc-icons/dist/File.js
17877
- function e94() {
18105
+ function e95() {
17878
18106
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M16.341 5.28 12.72 1.66A2.24 2.24 0 0 0 11.13 1H5.25C4.01 1 3 2.01 3 3.25v12.5C3 16.99 4.01 18 5.25 18h9.5c1.24 0 2.25-1.01 2.25-2.25V6.871c0-.592-.24-1.172-.659-1.59m-1.06 1.06c.045.046.073.105.105.16H12.25a.75.75 0 0 1-.75-.75V2.614c.055.032.113.06.159.106zM14.75 16.5h-9.5a.75.75 0 0 1-.75-.75V3.25a.75.75 0 0 1 .75-.75H10v3.25C10 6.99 11.01 8 12.25 8h3.25v7.75a.75.75 0 0 1-.75.75"/></svg>';
17879
18107
  }
17880
18108
 
17881
18109
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-file.js
17882
- var o63 = class extends a10 {
18110
+ var o64 = class extends a10 {
17883
18111
  static get styles() {
17884
18112
  return [t40];
17885
18113
  }
17886
18114
  render() {
17887
18115
  return b`
17888
- <span class="swc-Icon">${o16(e94())}</span>
18116
+ <span class="swc-Icon">${o16(e95())}</span>
17889
18117
  `;
17890
18118
  }
17891
18119
  };
17892
- e25("swc-icon-file", o63);
18120
+ e25("swc-icon-file", o64);
17893
18121
 
17894
18122
  // node_modules/@adobe/spectrum-wc-icons/dist/FileText.js
17895
- function e95() {
18123
+ function e96() {
17896
18124
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="m16.34 5.296-3.62-3.622a2.27 2.27 0 0 0-1.591-.66H5.25A2.255 2.255 0 0 0 3 3.265v12.484c0 1.24 1.01 2.25 2.25 2.25h9.5c1.24 0 2.25-1.01 2.25-2.25V6.887c0-.6-.234-1.166-.66-1.591m-1.06 1.06c.046.047.074.104.106.159H12.25a.75.75 0 0 1-.75-.75V2.628c.055.033.114.06.16.106zm-.53 10.142h-9.5a.75.75 0 0 1-.75-.75V3.265c0-.413.337-.75.75-.75H10v3.25c0 1.24 1.01 2.25 2.25 2.25h3.25v7.733c0 .413-.337.75-.75.75"/><path fill="var(--swc-icon-color, currentColor)" d="M13 11.498H7a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5m0 3H7a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5"/></svg>';
17897
18125
  }
17898
18126
 
17899
18127
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-file-text.js
17900
- var o64 = class extends a10 {
18128
+ var o65 = class extends a10 {
17901
18129
  static get styles() {
17902
18130
  return [t40];
17903
18131
  }
17904
18132
  render() {
17905
18133
  return b`
17906
- <span class="swc-Icon">${o16(e95())}</span>
18134
+ <span class="swc-Icon">${o16(e96())}</span>
17907
18135
  `;
17908
18136
  }
17909
18137
  };
17910
- e25("swc-icon-file-text", o64);
18138
+ e25("swc-icon-file-text", o65);
17911
18139
 
17912
18140
  // node_modules/@adobe/spectrum-wc-icons/dist/Lock.js
17913
- function e96() {
18141
+ function e97() {
17914
18142
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M11.25 11.5a1.251 1.251 0 0 0-2.5 0c0 .403.204.745.5.974v.776a.75.75 0 0 0 1.5 0v-.776c.296-.23.5-.571.5-.974"/><path fill="var(--swc-icon-color, currentColor)" d="M15 7.025V6.5c0-2.757-2.243-5-5-5s-5 2.243-5 5v.525c-1.122.127-2 1.07-2 2.225v6.5C3 16.99 4.01 18 5.25 18h9.5c1.24 0 2.25-1.01 2.25-2.25v-6.5a2.246 2.246 0 0 0-2-2.225M10 3c1.93 0 3.5 1.57 3.5 3.5V7h-7v-.5C6.5 4.57 8.07 3 10 3m5.5 12.75c0 .413-.337.75-.75.75h-9.5a.75.75 0 0 1-.75-.75v-6.5c0-.413.337-.75.75-.75h9.5c.413 0 .75.337.75.75z"/></svg>';
17915
18143
  }
17916
18144
 
17917
18145
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-lock.js
17918
- var o65 = class extends a10 {
18146
+ var o66 = class extends a10 {
17919
18147
  static get styles() {
17920
18148
  return [t40];
17921
18149
  }
17922
18150
  render() {
17923
18151
  return b`
17924
- <span class="swc-Icon">${o16(e96())}</span>
18152
+ <span class="swc-Icon">${o16(e97())}</span>
17925
18153
  `;
17926
18154
  }
17927
18155
  };
17928
- e25("swc-icon-lock", o65);
18156
+ e25("swc-icon-lock", o66);
17929
18157
 
17930
18158
  // node_modules/@adobe/spectrum-wc-icons/dist/Search.js
17931
- function e97() {
18159
+ function e98() {
17932
18160
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="m18.53 17.47-5.083-5.084A6.96 6.96 0 0 0 15 8c0-3.86-3.14-7-7-7S1 4.14 1 8s3.14 7 7 7c1.66 0 3.185-.584 4.386-1.553l5.084 5.083a.747.747 0 0 0 1.06 0 .75.75 0 0 0 0-1.06M8 13.5c-3.032 0-5.5-2.468-5.5-5.5S4.968 2.5 8 2.5s5.5 2.468 5.5 5.5-2.468 5.5-5.5 5.5"/></svg>';
17933
18161
  }
17934
18162
 
17935
18163
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-search.js
17936
- var o66 = class extends a10 {
18164
+ var o67 = class extends a10 {
17937
18165
  static get styles() {
17938
18166
  return [t40];
17939
18167
  }
17940
18168
  render() {
17941
18169
  return b`
17942
- <span class="swc-Icon">${o16(e97())}</span>
18170
+ <span class="swc-Icon">${o16(e98())}</span>
17943
18171
  `;
17944
18172
  }
17945
18173
  };
17946
- e25("swc-icon-search", o66);
18174
+ e25("swc-icon-search", o67);
17947
18175
 
17948
18176
  // node_modules/@adobe/spectrum-wc-icons/dist/Tools.js
17949
- function e98() {
18177
+ function e99() {
17950
18178
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="m8.747 5.33-1.82-3.505a1 1 0 0 0-.88-.54h-.008a1 1 0 0 0-.88.525l-1.89 3.5A2.3 2.3 0 0 0 3 6.38v10.37C3 17.99 4.01 19 5.25 19h1.5C7.99 19 9 17.99 9 16.75V6.366c0-.36-.088-.719-.253-1.037M7.5 7.5v7h-3v-7zM6.03 3.354 7.405 6H4.603zM6.75 17.5h-1.5a.75.75 0 0 1-.75-.75V16h3v.75c0 .413-.337.75-.75.75m8-16.5h-1.5C12.01 1 11 2.01 11 3.25v6.729l-.003.014.003.015v3.722l-.003.013.003.015v2.992c0 1.24 1.01 2.25 2.25 2.25h1.5c1.24 0 2.25-1.01 2.25-2.25V3.25C17 2.01 15.99 1 14.75 1m.75 15.75c0 .413-.337.75-.75.75h-1.5a.75.75 0 0 1-.75-.75v-2.251l1.244.005h.003a.75.75 0 0 0 .003-1.5l-1.25-.005v-2.25l1.244.005h.003a.75.75 0 0 0 .003-1.5l-1.25-.005V7.003l1.247.006h.003a.75.75 0 0 0 .003-1.5L12.5 5.503V3.25c0-.413.337-.75.75-.75h1.5c.413 0 .75.337.75.75z"/></svg>';
17951
18179
  }
17952
18180
 
17953
18181
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-tools.js
17954
- var o67 = class extends a10 {
18182
+ var o68 = class extends a10 {
17955
18183
  static get styles() {
17956
18184
  return [t40];
17957
18185
  }
17958
18186
  render() {
17959
18187
  return b`
17960
- <span class="swc-Icon">${o16(e98())}</span>
18188
+ <span class="swc-Icon">${o16(e99())}</span>
17961
18189
  `;
17962
18190
  }
17963
18191
  };
17964
- e25("swc-icon-tools", o67);
18192
+ e25("swc-icon-tools", o68);
17965
18193
 
17966
18194
  // node_modules/@adobe/spectrum-wc-icons/dist/WebPage.js
17967
- function e99() {
18195
+ function e100() {
17968
18196
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><circle cx="4.125" cy="6" r=".75" fill="var(--swc-icon-color, currentColor)"/><path fill="var(--swc-icon-color, currentColor)" d="M16.75 3H3.25C2.01 3 1 4.01 1 5.25v9.5C1 15.99 2.01 17 3.25 17h13.5c1.24 0 2.25-1.01 2.25-2.25v-9.5C19 4.01 17.99 3 16.75 3M2.5 5.25c0-.413.337-.75.75-.75h13.5c.413 0 .75.337.75.75V7.5h-15zM16.75 15.5H3.25a.75.75 0 0 1-.75-.75V9h15v5.75c0 .413-.337.75-.75.75"/></svg>';
17969
18197
  }
17970
18198
 
17971
18199
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-web-page.js
17972
- var o68 = class extends a10 {
18200
+ var o69 = class extends a10 {
17973
18201
  static get styles() {
17974
18202
  return [t40];
17975
18203
  }
17976
18204
  render() {
17977
18205
  return b`
17978
- <span class="swc-Icon">${o16(e99())}</span>
18206
+ <span class="swc-Icon">${o16(e100())}</span>
17979
18207
  `;
17980
18208
  }
17981
18209
  };
17982
- e25("swc-icon-web-page", o68);
18210
+ e25("swc-icon-web-page", o69);
17983
18211
 
17984
18212
  // src/app/markdown.ts
17985
18213
  var inlinePattern = /(`[^`]+`|!\[[^\]]*\]\([^)\s]+\)|\*\*[^*]+\*\*|~~[^~]+~~|\*[^*\s][^*]*\*|\[[^\]]+\]\([^)\s]+\))/g;
@@ -20691,7 +20919,7 @@ e25("swc-close-button", c23);
20691
20919
  var t78 = i`:host{display:block}*{box-sizing:border-box}.swc-IllustratedMessage{--_swc-illustrated-message-illustration-to-content: var(--swc-illustrated-message-illustration-to-content, 12px);display:flex;flex-direction:column;gap:var(--_swc-illustrated-message-illustration-to-content);align-items:center;max-inline-size:var(--swc-illustrated-message-max-inline-size, 380px);margin-inline:auto}.swc-IllustratedMessage-illustration{--_swc-illustrated-message-illustration-size: var(--swc-illustrated-message-illustration-size, 96px);display:flex;flex-shrink:0;justify-content:center;inline-size:var(--swc-illustrated-message-illustration-inline-size, var(--_swc-illustrated-message-illustration-size));block-size:var(--swc-illustrated-message-illustration-block-size, var(--_swc-illustrated-message-illustration-size));color:var(--swc-illustrated-message-illustration-color, var(--swc-gray-800))}.swc-IllustratedMessage-illustration[hidden]{display:none}.swc-IllustratedMessage-content{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}.swc-IllustratedMessage-description{font-size:var(--swc-illustrated-message-description-font-size, var(--swc-illustrated-message-medium-body-font-size));font-weight:400;line-height:var(--swc-illustrated-message-description-line-height, var(--swc-line-height-200));color:var(--swc-gray-800)}:host([size=\"s\"]){--swc-illustrated-message-illustration-size: 96px;--swc-illustrated-message-illustration-to-content: 12px;--swc-illustrated-message-heading-font-size: var(--swc-illustrated-message-small-title-font-size);--swc-illustrated-message-description-font-size: var(--swc-body-size-xs)}:host([size=\"l\"]){--swc-illustrated-message-illustration-size: 160px;--swc-illustrated-message-illustration-to-content: 8px;--swc-illustrated-message-heading-font-size: var(--swc-illustrated-message-large-title-font-size);--swc-illustrated-message-description-font-size: var(--swc-illustrated-message-large-body-font-size)}:host(:lang(ja)),:host(:lang(ko)),:host(:lang(zh)){--swc-illustrated-message-heading-font-size: var(--swc-illustrated-message-medium-cjk-title-font-size);--swc-illustrated-message-heading-line-height: 1.5;--swc-illustrated-message-description-line-height: 1.7}:host([size=\"s\"]:lang(ja)),:host([size=\"s\"]:lang(ko)),:host([size=\"s\"]:lang(zh)){--swc-illustrated-message-heading-font-size: var(--swc-illustrated-message-small-cjk-title-font-size)}:host([size=\"l\"]:lang(ja)),:host([size=\"l\"]:lang(ko)),:host([size=\"l\"]:lang(zh)){--swc-illustrated-message-heading-font-size: var(--swc-illustrated-message-large-cjk-title-font-size)}:host([orientation=\"horizontal\"]){--swc-illustrated-message-max-inline-size: 535px}:host([orientation=\"horizontal\"]) .swc-IllustratedMessage{flex-direction:row;align-items:center}:host([orientation=\"horizontal\"]) .swc-IllustratedMessage-content{align-items:flex-start;text-align:start}slot[name=heading]{font-size:var(--swc-illustrated-message-heading-font-size, var(--swc-illustrated-message-medium-title-font-size));font-style:var(--swc-default-font-style);font-weight:var(--swc-bold-font-weight);line-height:var(--swc-illustrated-message-heading-line-height, var(--swc-line-height-100));color:var(--swc-gray-900)}::slotted([slot=\"heading\"]:not([class])){margin:0!important;font:inherit!important;color:inherit!important}:host(:has([slot=\"actions\"])) slot[name=actions]{margin-block-start:16px}::slotted(svg){box-sizing:border-box;display:block;inline-size:100%;block-size:100%;fill:currentcolor;stroke:currentcolor}`;
20692
20920
 
20693
20921
  // node_modules/@adobe/spectrum-wc-core/dist/components/illustrated-message/IllustratedMessage.types.js
20694
- var e100 = [
20922
+ var e101 = [
20695
20923
  "s",
20696
20924
  "m",
20697
20925
  "l"
@@ -20715,7 +20943,7 @@ var d17 = class extends i9 {
20715
20943
  e116.has("size") && n10(this, {
20716
20944
  prop: "size",
20717
20945
  value: this.size,
20718
- valid: e100,
20946
+ valid: e101,
20719
20947
  url: "https://spectrum-web-components.adobe.com/?path=/docs/components-illustrated-message--docs"
20720
20948
  }), e116.has("orientation") && n10(this, {
20721
20949
  prop: "orientation",
@@ -20740,7 +20968,7 @@ var d17 = class extends i9 {
20740
20968
  r9(this, r39 > 1, `<${this.localName}> "heading" slot accepts a single heading element but received ${r39}.`, n36, { issues: [`heading slot: ${r39} elements`] });
20741
20969
  }
20742
20970
  };
20743
- u22 = d17, u22.VALID_SIZES = e100, u22.VALID_ORIENTATIONS = t79, e24([n({
20971
+ u22 = d17, u22.VALID_SIZES = e101, u22.VALID_ORIENTATIONS = t79, e24([n({
20744
20972
  type: String,
20745
20973
  reflect: true
20746
20974
  })], d17.prototype, "size", void 0), e24([n({
@@ -20784,166 +21012,166 @@ var r33 = class extends d17 {
20784
21012
  e25("swc-illustrated-message", r33);
20785
21013
 
20786
21014
  // node_modules/@adobe/spectrum-wc-icons/dist/Camera.js
20787
- function e101() {
21015
+ function e102() {
20788
21016
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M16.75 17H3.25C2.01 17 1 15.99 1 14.75v-7.5C1 6.01 2.01 5 3.25 5h1.823c.286 0 .543-.16.67-.414l.172-.342A2.24 2.24 0 0 1 7.927 3h4.146c.858 0 1.629.477 2.012 1.244l.171.342a.75.75 0 0 0 .671.414h1.823C17.99 5 19 6.01 19 7.25v7.5c0 1.24-1.01 2.25-2.25 2.25M3.25 6.5a.75.75 0 0 0-.75.75v7.5c0 .413.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-7.5a.75.75 0 0 0-.75-.75h-1.823a2.24 2.24 0 0 1-2.012-1.244l-.171-.342a.75.75 0 0 0-.671-.414H7.927a.75.75 0 0 0-.67.414l-.172.342A2.24 2.24 0 0 1 5.073 6.5z"/><path fill="var(--swc-icon-color, currentColor)" d="M10 14.5c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4M10 8c-1.378 0-2.5 1.121-2.5 2.5S8.622 13 10 13s2.5-1.121 2.5-2.5S11.378 8 10 8"/></svg>';
20789
21017
  }
20790
21018
 
20791
21019
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-camera.js
20792
- var o69 = class extends a10 {
21020
+ var o70 = class extends a10 {
20793
21021
  static get styles() {
20794
21022
  return [t40];
20795
21023
  }
20796
21024
  render() {
20797
21025
  return b`
20798
- <span class="swc-Icon">${o16(e101())}</span>
21026
+ <span class="swc-Icon">${o16(e102())}</span>
20799
21027
  `;
20800
21028
  }
20801
21029
  };
20802
- e25("swc-icon-camera", o69);
21030
+ e25("swc-icon-camera", o70);
20803
21031
 
20804
21032
  // node_modules/@adobe/spectrum-wc-icons/dist/ChevronDown.js
20805
- function e102() {
21033
+ function e103() {
20806
21034
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M3.755 7.243a.75.75 0 0 1 1.06-.02l5.183 4.986 5.197-4.999a.749.749 0 1 1 1.04 1.08l-5.717 5.5a.747.747 0 0 1-1.04 0L3.776 8.303a.746.746 0 0 1-.02-1.06"/></svg>';
20807
21035
  }
20808
21036
 
20809
21037
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-chevron-down.js
20810
- var o70 = class extends a10 {
21038
+ var o71 = class extends a10 {
20811
21039
  static get styles() {
20812
21040
  return [t40];
20813
21041
  }
20814
21042
  render() {
20815
21043
  return b`
20816
- <span class="swc-Icon">${o16(e102())}</span>
21044
+ <span class="swc-Icon">${o16(e103())}</span>
20817
21045
  `;
20818
21046
  }
20819
21047
  };
20820
- e25("swc-icon-chevron-down", o70);
21048
+ e25("swc-icon-chevron-down", o71);
20821
21049
 
20822
21050
  // node_modules/@adobe/spectrum-wc-icons/dist/ChevronLeft.js
20823
- function e103() {
21051
+ function e104() {
20824
21052
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M12.237 16.455a.75.75 0 0 1-.54-.23L6.21 10.52a.747.747 0 0 1 0-1.039l5.5-5.716a.749.749 0 1 1 1.08 1.039l-4.999 5.197 4.986 5.184a.748.748 0 0 1-.54 1.27"/></svg>';
20825
21053
  }
20826
21054
 
20827
21055
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-chevron-left.js
20828
- var o71 = class extends a10 {
21056
+ var o72 = class extends a10 {
20829
21057
  static get styles() {
20830
21058
  return [t40];
20831
21059
  }
20832
21060
  render() {
20833
21061
  return b`
20834
- <span class="swc-Icon">${o16(e103())}</span>
21062
+ <span class="swc-Icon">${o16(e104())}</span>
20835
21063
  `;
20836
21064
  }
20837
21065
  };
20838
- e25("swc-icon-chevron-left", o71);
21066
+ e25("swc-icon-chevron-left", o72);
20839
21067
 
20840
21068
  // node_modules/@adobe/spectrum-wc-icons/dist/CursorClick.js
20841
- function e104() {
21069
+ function e105() {
20842
21070
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10.476 18.967A1.48 1.48 0 0 1 9 17.48V9.378c0-.6.358-1.14.913-1.372a1.48 1.48 0 0 1 1.616.31l5.524 5.42a1.48 1.48 0 0 1 .335 1.624c-.23.562-.77.925-1.377.925h-2.28a.72.72 0 0 0-.56.265l-1.584 1.929c-.322.324-.717.487-1.111.487m.003-9.58.021 8.098 1.513-1.886a2.22 2.22 0 0 1 1.718-.813h2.28zm.021-4.69V1.75a.75.75 0 0 0-1.5 0v2.946a.75.75 0 0 0 1.5 0m7 4.053a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h2a.75.75 0 0 0 .75-.75m-10.91 0A.75.75 0 0 0 5.84 8H2.75a.75.75 0 0 0 0 1.5h3.09a.75.75 0 0 0 .75-.75m6.598-2.378L15.23 4.33a.75.75 0 1 0-1.06-1.06l-2.042 2.042a.75.75 0 1 0 1.06 1.06M5.33 14.23l2.08-2.079a.75.75 0 1 0-1.061-1.06l-2.08 2.079a.75.75 0 1 0 1.061 1.06m2.155-7.745a.75.75 0 0 0 0-1.06L5.33 3.27a.75.75 0 1 0-1.06 1.06l2.155 2.155a.747.747 0 0 0 1.06 0"/></svg>';
20843
21071
  }
20844
21072
 
20845
21073
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-cursor-click.js
20846
- var o72 = class extends a10 {
21074
+ var o73 = class extends a10 {
20847
21075
  static get styles() {
20848
21076
  return [t40];
20849
21077
  }
20850
21078
  render() {
20851
21079
  return b`
20852
- <span class="swc-Icon">${o16(e104())}</span>
21080
+ <span class="swc-Icon">${o16(e105())}</span>
20853
21081
  `;
20854
21082
  }
20855
21083
  };
20856
- e25("swc-icon-cursor-click", o72);
21084
+ e25("swc-icon-cursor-click", o73);
20857
21085
 
20858
21086
  // node_modules/@adobe/spectrum-wc-icons/dist/Keyboard.js
20859
- function e105() {
21087
+ function e106() {
20860
21088
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M16.75 15H3.25C2.01 15 1 13.99 1 12.75v-6.5C1 5.01 2.01 4 3.25 4h13.5C17.99 4 19 5.01 19 6.25v6.5c0 1.24-1.01 2.25-2.25 2.25M3.25 5.5a.75.75 0 0 0-.75.75v6.5c0 .413.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75z"/><path fill="var(--swc-icon-color, currentColor)" d="M12.25 12h-4.5a.75.75 0 0 1 0-1.5h4.5a.75.75 0 0 1 0 1.5"/><circle cx="5" cy="8" r="1" fill="var(--swc-icon-color, currentColor)"/><circle cx="8.333" cy="8" r="1" fill="var(--swc-icon-color, currentColor)"/><circle cx="11.667" cy="8" r="1" fill="var(--swc-icon-color, currentColor)"/><circle cx="15" cy="8" r="1" fill="var(--swc-icon-color, currentColor)"/><circle cx="5" cy="11" r="1" fill="var(--swc-icon-color, currentColor)"/><circle cx="15" cy="11" r="1" fill="var(--swc-icon-color, currentColor)"/></svg>';
20861
21089
  }
20862
21090
 
20863
21091
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-keyboard.js
20864
- var o73 = class extends a10 {
21092
+ var o74 = class extends a10 {
20865
21093
  static get styles() {
20866
21094
  return [t40];
20867
21095
  }
20868
21096
  render() {
20869
21097
  return b`
20870
- <span class="swc-Icon">${o16(e105())}</span>
21098
+ <span class="swc-Icon">${o16(e106())}</span>
20871
21099
  `;
20872
21100
  }
20873
21101
  };
20874
- e25("swc-icon-keyboard", o73);
21102
+ e25("swc-icon-keyboard", o74);
20875
21103
 
20876
21104
  // node_modules/@adobe/spectrum-wc-icons/dist/Link.js
20877
- function e106() {
21105
+ function e107() {
20878
21106
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M5.313 18.748A4.05 4.05 0 0 1 2.44 17.56a4.07 4.07 0 0 1 0-5.747l3.906-3.906a4.07 4.07 0 0 1 6.313.71.75.75 0 1 1-1.27.799q-.151-.241-.359-.45a2.566 2.566 0 0 0-3.624.002l-3.905 3.905a2.57 2.57 0 0 0 0 3.626 2.57 2.57 0 0 0 3.626 0l1.952-1.952a.75.75 0 1 1 1.06 1.06l-1.95 1.953a4.06 4.06 0 0 1-2.875 1.188m8.341-6.655 3.906-3.905c1.584-1.585 1.584-4.164 0-5.748s-4.164-1.584-5.747 0L9.86 4.393a.75.75 0 1 0 1.06 1.06l1.953-1.952c1-.998 2.625-1 3.626 0a2.57 2.57 0 0 1 0 3.626l-3.905 3.905a2.566 2.566 0 0 1-3.984-.448.75.75 0 1 0-1.27.799q.24.381.567.71a4.05 4.05 0 0 0 2.874 1.188c1.04 0 2.081-.396 2.873-1.188"/></svg>';
20879
21107
  }
20880
21108
 
20881
21109
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-link.js
20882
- var o74 = class extends a10 {
21110
+ var o75 = class extends a10 {
20883
21111
  static get styles() {
20884
21112
  return [t40];
20885
21113
  }
20886
21114
  render() {
20887
21115
  return b`
20888
- <span class="swc-Icon">${o16(e106())}</span>
21116
+ <span class="swc-Icon">${o16(e107())}</span>
20889
21117
  `;
20890
21118
  }
20891
21119
  };
20892
- e25("swc-icon-link", o74);
21120
+ e25("swc-icon-link", o75);
20893
21121
 
20894
21122
  // node_modules/@adobe/spectrum-wc-icons/dist/Text.js
20895
- function e107() {
21123
+ function e108() {
20896
21124
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M14.59 2H5.41C4.17 2 3.16 3.01 3.16 4.25v1.11a.75.75 0 0 0 1.5 0V4.25c0-.413.337-.75.75-.75h3.84v13H7.68a.75.75 0 0 0 0 1.5h4.64a.75.75 0 0 0 0-1.5h-1.57v-13h3.84c.413 0 .75.337.75.75v1.11a.75.75 0 0 0 1.5 0V4.25c0-1.24-1.01-2.25-2.25-2.25"/></svg>';
20897
21125
  }
20898
21126
 
20899
21127
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-text.js
20900
- var o75 = class extends a10 {
21128
+ var o76 = class extends a10 {
20901
21129
  static get styles() {
20902
21130
  return [t40];
20903
21131
  }
20904
21132
  render() {
20905
21133
  return b`
20906
- <span class="swc-Icon">${o16(e107())}</span>
21134
+ <span class="swc-Icon">${o16(e108())}</span>
20907
21135
  `;
20908
21136
  }
20909
21137
  };
20910
- e25("swc-icon-text", o75);
21138
+ e25("swc-icon-text", o76);
20911
21139
 
20912
21140
  // node_modules/@adobe/spectrum-wc-icons/dist/Undo.js
20913
- function e108() {
21141
+ function e109() {
20914
21142
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M12.257 5H3.808l1.72-1.72a.75.75 0 1 0-1.06-1.06L1.47 5.217a.75.75 0 0 0 0 1.06L4.466 9.28a.746.746 0 0 0 1.06 0 .75.75 0 0 0 .001-1.06L3.811 6.5h8.446c2.482 0 4.5 2.019 4.5 4.5s-2.018 4.5-4.5 4.5H8.52a.75.75 0 0 0 0 1.5h3.737c3.309 0 6-2.691 6-6s-2.691-6-6-6"/></svg>';
20915
21143
  }
20916
21144
 
20917
21145
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-undo.js
20918
- var o76 = class extends a10 {
21146
+ var o77 = class extends a10 {
20919
21147
  static get styles() {
20920
21148
  return [t40];
20921
21149
  }
20922
21150
  render() {
20923
21151
  return b`
20924
- <span class="swc-Icon">${o16(e108())}</span>
21152
+ <span class="swc-Icon">${o16(e109())}</span>
20925
21153
  `;
20926
21154
  }
20927
21155
  };
20928
- e25("swc-icon-undo", o76);
21156
+ e25("swc-icon-undo", o77);
20929
21157
 
20930
21158
  // node_modules/@adobe/spectrum-wc-icons/dist/Visibility.js
20931
- function e109() {
21159
+ function e110() {
20932
21160
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10.034 16.662C5.143 16.662.75 12.273.75 10.2c0-1.685 2.598-4.55 5.347-5.898A8.95 8.95 0 0 1 9.99 3.35c5.158 0 9.26 4.919 9.26 6.85 0 2.072-4.36 6.46-9.216 6.46M10 4.85a7.44 7.44 0 0 0-3.24.797C4.155 6.923 2.25 9.397 2.25 10.2c0 1.144 3.68 4.96 7.784 4.96 4.069 0 7.716-3.816 7.716-4.96 0-1.05-3.481-5.35-7.75-5.35m-3.569.124h.01z"/><path fill="var(--swc-icon-color, currentColor)" d="M9.83 7.644c.222-.637-.474-1.26-1.1-1.01a3.5 3.5 0 0 0-1.283.88 3.565 3.565 0 0 0 4.697 5.315 3.54 3.54 0 0 0 1.317-1.833c.209-.684-.458-1.25-1.119-.976A1.904 1.904 0 0 1 9.85 8.943a1.88 1.88 0 0 1-.02-1.3"/></svg>';
20933
21161
  }
20934
21162
 
20935
21163
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-visibility.js
20936
- var o77 = class extends a10 {
21164
+ var o78 = class extends a10 {
20937
21165
  static get styles() {
20938
21166
  return [t40];
20939
21167
  }
20940
21168
  render() {
20941
21169
  return b`
20942
- <span class="swc-Icon">${o16(e109())}</span>
21170
+ <span class="swc-Icon">${o16(e110())}</span>
20943
21171
  `;
20944
21172
  }
20945
21173
  };
20946
- e25("swc-icon-visibility", o77);
21174
+ e25("swc-icon-visibility", o78);
20947
21175
 
20948
21176
  // src/app/browser.ts
20949
21177
  function normalize(input) {
@@ -21776,7 +22004,7 @@ var SliccBrowser = class extends ModelElement {
21776
22004
  var t80 = i`:host{display:inline-flex}*{box-sizing:border-box}.swc-ActionGroup{--_swc-action-group-gap: var(--swc-action-group-gap, 8px);display:flex;flex-wrap:wrap;gap:var(--_swc-action-group-gap);inline-size:100%}::slotted(*){flex-shrink:0}:host([orientation=\"vertical\"]) .swc-ActionGroup{flex-direction:column;inline-size:-moz-max-content;inline-size:max-content;min-inline-size:100%}:host([size=\"xs\"]){--swc-action-group-gap: 4px}:host([size=\"s\"]){--swc-action-group-gap: 6px}:host([size=\"l\"]){--swc-action-group-gap: 12px}:host([size=\"xl\"]){--swc-action-group-gap: 16px}:host([justified]) ::slotted(*){flex:1 1 0%}:host([compact]:not([quiet])) .swc-ActionGroup{--swc-action-group-gap: 2px;flex-wrap:nowrap}:host([compact]:not([quiet])) ::slotted(*){position:relative;z-index:0}:host([compact]:not([quiet])) ::slotted(:hover){z-index:1}:host([compact]:not([quiet])) ::slotted(:focus-within){z-index:2}:host([compact]:not([quiet]):not([orientation=\"vertical\"])) ::slotted(:first-child:not(:last-child)){--swc-action-button-border-start-end-radius: 0;--swc-action-button-border-end-end-radius: 0}:host([compact]:not([quiet]):not([orientation=\"vertical\"])) ::slotted(:last-child:not(:first-child)){--swc-action-button-border-start-start-radius: 0;--swc-action-button-border-end-start-radius: 0}:host([compact]:not([quiet]):not([orientation=\"vertical\"])) ::slotted(:not(:first-child):not(:last-child)){--swc-action-button-border-radius: 0}:host([compact]:not([quiet])[orientation=\"vertical\"]) ::slotted(:first-child:not(:last-child)){--swc-action-button-border-end-start-radius: 0;--swc-action-button-border-end-end-radius: 0}:host([compact]:not([quiet])[orientation=\"vertical\"]) ::slotted(:last-child:not(:first-child)){--swc-action-button-border-start-start-radius: 0;--swc-action-button-border-start-end-radius: 0}:host([compact]:not([quiet])[orientation=\"vertical\"]) ::slotted(:not(:first-child):not(:last-child)){--swc-action-button-border-radius: 0}`;
21777
22005
 
21778
22006
  // node_modules/@adobe/spectrum-wc-core/dist/components/action-group/ActionGroup.types.js
21779
- var e110 = [
22007
+ var e111 = [
21780
22008
  "xs",
21781
22009
  "s",
21782
22010
  "m",
@@ -21789,7 +22017,7 @@ var n34 = ["white", "black"];
21789
22017
  // node_modules/@adobe/spectrum-wc-core/dist/components/action-group/ActionGroup.base.js
21790
22018
  var c24;
21791
22019
  var l19 = class extends i12(i9, {
21792
- validSizes: e110,
22020
+ validSizes: e111,
21793
22021
  noDefaultSize: true
21794
22022
  }) {
21795
22023
  constructor(...e116) {
@@ -21833,7 +22061,7 @@ c24 = l19, c24.shadowRootOptions = {
21833
22061
  })], l19.prototype, "disabled", void 0), e24([o({ flatten: true })], l19.prototype, "managedChildren", void 0);
21834
22062
 
21835
22063
  // node_modules/@adobe/spectrum-wc/dist/components/action-group/ActionGroup.js
21836
- var o78 = class extends l19 {
22064
+ var o79 = class extends l19 {
21837
22065
  constructor(...e116) {
21838
22066
  super(...e116), this.compact = false, this.quiet = false, this.justified = false, this.navigation = new r20(this, {
21839
22067
  direction: this.orientation,
@@ -21899,20 +22127,20 @@ var o78 = class extends l19 {
21899
22127
  e12([n({
21900
22128
  type: Boolean,
21901
22129
  reflect: true
21902
- })], o78.prototype, "compact", void 0), e12([n({
22130
+ })], o79.prototype, "compact", void 0), e12([n({
21903
22131
  type: Boolean,
21904
22132
  reflect: true
21905
- })], o78.prototype, "quiet", void 0), e12([n({
22133
+ })], o79.prototype, "quiet", void 0), e12([n({
21906
22134
  type: Boolean,
21907
22135
  reflect: true
21908
- })], o78.prototype, "justified", void 0), e12([n({
22136
+ })], o79.prototype, "justified", void 0), e12([n({
21909
22137
  type: String,
21910
22138
  reflect: true,
21911
22139
  attribute: "static-color"
21912
- })], o78.prototype, "staticColor", void 0);
22140
+ })], o79.prototype, "staticColor", void 0);
21913
22141
 
21914
22142
  // node_modules/@adobe/spectrum-wc/dist/components/action-group/swc-action-group.js
21915
- e25("swc-action-group", o78);
22143
+ e25("swc-action-group", o79);
21916
22144
 
21917
22145
  // src/app/changes.ts
21918
22146
  var layouts = [
@@ -22413,22 +22641,22 @@ e12([o({
22413
22641
  e25("swc-conversation-thread", s15);
22414
22642
 
22415
22643
  // node_modules/@adobe/spectrum-wc-icons/dist/New.js
22416
- function e111() {
22644
+ function e112() {
22417
22645
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M18 4.25v11.5c0 1.24-1.01 2.25-2.25 2.25H4.25C3.01 18 2 16.99 2 15.75V4.25C2 3.01 3.01 2 4.25 2h11.5C16.99 2 18 3.01 18 4.25m-1.5 0a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75z"/><path fill="var(--swc-icon-color, currentColor)" d="M13.763 10a.763.763 0 0 1-.763.763h-2.237V13a.763.763 0 0 1-1.526 0v-2.237H7a.763.763 0 0 1 0-1.526h2.237V7a.763.763 0 0 1 1.526 0v2.237H13c.421 0 .763.342.763.763"/></svg>';
22418
22646
  }
22419
22647
 
22420
22648
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-new.js
22421
- var o79 = class extends a10 {
22649
+ var o80 = class extends a10 {
22422
22650
  static get styles() {
22423
22651
  return [t40];
22424
22652
  }
22425
22653
  render() {
22426
22654
  return b`
22427
- <span class="swc-Icon">${o16(e111())}</span>
22655
+ <span class="swc-Icon">${o16(e112())}</span>
22428
22656
  `;
22429
22657
  }
22430
22658
  };
22431
- e25("swc-icon-new", o79);
22659
+ e25("swc-icon-new", o80);
22432
22660
 
22433
22661
  // src/app/chat.ts
22434
22662
  var navigation = /* @__PURE__ */ new Set([
@@ -22793,7 +23021,7 @@ var D4 = (e116) => {
22793
23021
  var O3 = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("field-sizing", "content");
22794
23022
  var k3 = class extends i9 {
22795
23023
  constructor() {
22796
- super(), this.labelId = e86("swc-prompt-field-label"), this.disabled = false, this.generating = false, this.collapsed = false, this.variant = "balanced", this.size = "m", this.loader = "aiLogo", this.animateLoader = false, this.label = "Prompt", this.accessibleLabel = "", this.sendLabel = "Send", this.stopLabel = "Stop generating", this.uploadLabel = "Add attachment", this.attachmentScrollPrevLabel = "Show previous attachments", this.attachmentScrollNextLabel = "Show more attachments", this.attachmentStripLabel = "Uploaded assets strip", this.placeholder = "Ready to get started? Ask a question, share an idea, or add a task.", this.value = "", this._attachmentScrollOverflow = false, this._attachmentCanScrollPrev = false, this._attachmentCanScrollNext = false, this._attachmentScrollFallbackGeneration = 0, this._attachmentScrollObserver = new s8(this, {
23024
+ super(), this.labelId = e87("swc-prompt-field-label"), this.disabled = false, this.generating = false, this.collapsed = false, this.variant = "balanced", this.size = "m", this.loader = "aiLogo", this.animateLoader = false, this.label = "Prompt", this.accessibleLabel = "", this.sendLabel = "Send", this.stopLabel = "Stop generating", this.uploadLabel = "Add attachment", this.attachmentScrollPrevLabel = "Show previous attachments", this.attachmentScrollNextLabel = "Show more attachments", this.attachmentStripLabel = "Uploaded assets strip", this.placeholder = "Ready to get started? Ask a question, share an idea, or add a task.", this.value = "", this._attachmentScrollOverflow = false, this._attachmentCanScrollPrev = false, this._attachmentCanScrollNext = false, this._attachmentScrollFallbackGeneration = 0, this._attachmentScrollObserver = new s8(this, {
22797
23025
  target: null,
22798
23026
  callback: () => {
22799
23027
  this._updateAttachmentScrollState();
@@ -23604,22 +23832,22 @@ e12([n({
23604
23832
  e25("swc-upload-attachment", d18);
23605
23833
 
23606
23834
  // node_modules/@adobe/spectrum-wc-icons/dist/Clock.js
23607
- function e112() {
23835
+ function e113() {
23608
23836
  return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10 18.75c-4.825 0-8.75-3.925-8.75-8.75S5.175 1.25 10 1.25s8.75 3.925 8.75 8.75-3.925 8.75-8.75 8.75m0-16c-3.998 0-7.25 3.252-7.25 7.25s3.252 7.25 7.25 7.25 7.25-3.252 7.25-7.25S13.998 2.75 10 2.75"/><path fill="var(--swc-icon-color, currentColor)" d="M13.249 12.645a.74.74 0 0 1-.379-.104l-3.22-1.895A.75.75 0 0 1 9.28 10V5a.75.75 0 0 1 1.5 0v4.571l2.85 1.677a.75.75 0 0 1-.381 1.397"/></svg>';
23609
23837
  }
23610
23838
 
23611
23839
  // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-clock.js
23612
- var o80 = class extends a10 {
23840
+ var o81 = class extends a10 {
23613
23841
  static get styles() {
23614
23842
  return [t40];
23615
23843
  }
23616
23844
  render() {
23617
23845
  return b`
23618
- <span class="swc-Icon">${o16(e112())}</span>
23846
+ <span class="swc-Icon">${o16(e113())}</span>
23619
23847
  `;
23620
23848
  }
23621
23849
  };
23622
- e25("swc-icon-clock", o80);
23850
+ e25("swc-icon-clock", o81);
23623
23851
 
23624
23852
  // src/app/composer.ts
23625
23853
  var limit = 25 * 1024 * 1024;
@@ -24963,24 +25191,6 @@ var SliccMonitor = class extends ModelElement {
24963
25191
  }
24964
25192
  };
24965
25193
 
24966
- // node_modules/@adobe/spectrum-wc-icons/dist/InfoCircle.js
24967
- function e113() {
24968
- return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="var(--swc-icon-color, currentColor)" d="M10 18.75c-4.825 0-8.75-3.925-8.75-8.75S5.175 1.25 10 1.25s8.75 3.925 8.75 8.75-3.925 8.75-8.75 8.75m0-16c-3.998 0-7.25 3.252-7.25 7.25s3.252 7.25 7.25 7.25 7.25-3.252 7.25-7.25S13.998 2.75 10 2.75"/><path fill="var(--swc-icon-color, currentColor)" d="M10 5.26a.9.9 0 0 1 .627.229c.33.365.33.921 0 1.286a.87.87 0 0 1-.626.235.85.85 0 0 1-.633-.248.86.86 0 0 1-.242-.627.88.88 0 0 1 .228-.64A.86.86 0 0 1 10 5.26m0 9.803a.75.75 0 0 1-.75-.75V9.478a.75.75 0 0 1 1.5 0v4.835a.75.75 0 0 1-.75.75"/></svg>';
24969
- }
24970
-
24971
- // node_modules/@adobe/spectrum-wc-icons/dist/swc-icon-info-circle.js
24972
- var o81 = class extends a10 {
24973
- static get styles() {
24974
- return [t40];
24975
- }
24976
- render() {
24977
- return b`
24978
- <span class="swc-Icon">${o16(e113())}</span>
24979
- `;
24980
- }
24981
- };
24982
- e25("swc-icon-info-circle", o81);
24983
-
24984
25194
  // src/app/notices.ts
24985
25195
  var SliccNotices = class extends ModelElement {
24986
25196
  static properties = {