@ai-ecoverse/slicc-spectrum 1.28.1 → 1.30.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
@@ -13930,6 +13930,7 @@ e25("swc-icon-alert-triangle", o51);
13930
13930
  // src/app/updates.ts
13931
13931
  var states = {
13932
13932
  current: ["neutral", "Up to date"],
13933
+ queued: ["neutral", "Waiting"],
13933
13934
  checking: ["info", "Checking"],
13934
13935
  downloading: ["info", "Downloading"],
13935
13936
  linking: ["info", "Linking"],
@@ -14193,7 +14194,8 @@ var SliccUpdates = class extends ModelElement {
14193
14194
  return b`<span>Checked <time datetime=${date.toISOString()}>${shown}</time></span>`;
14194
14195
  }
14195
14196
  #item(item2) {
14196
- const [variant, label] = states[item2.state];
14197
+ const [variant, state] = states[item2.state];
14198
+ const label = item2.state === "failed" && item2.from !== null ? "Update failed" : state;
14197
14199
  const error = this.failures.get(item2.id) ?? item2.error;
14198
14200
  return b`<swc-divider size="s"></swc-divider>
14199
14201
  <article data-id=${item2.id} data-state=${item2.state} aria-label=${item2.label}>
@@ -14251,6 +14253,30 @@ function updatesVariant(status2) {
14251
14253
  if (status2.startsWith("updating")) return "info";
14252
14254
  return "notice";
14253
14255
  }
14256
+ var overscrollLocks = /* @__PURE__ */ new WeakMap();
14257
+ function lockOverscroll(document2) {
14258
+ const lock = overscrollLocks.get(document2) ?? { count: 0, restore: () => {
14259
+ } };
14260
+ overscrollLocks.set(document2, lock);
14261
+ if (lock.count === 0) {
14262
+ const saved = [document2.documentElement, document2.body].flatMap(
14263
+ ({ style }) => ["overscroll-behavior-x", "overscroll-behavior-y"].map((name) => {
14264
+ const value = style.getPropertyValue(name);
14265
+ const priority = style.getPropertyPriority(name);
14266
+ style.setProperty(name, "none", "important");
14267
+ return () => style.setProperty(name, value, priority);
14268
+ })
14269
+ );
14270
+ lock.restore = () => {
14271
+ for (const restore of saved) restore();
14272
+ };
14273
+ }
14274
+ lock.count += 1;
14275
+ return () => {
14276
+ lock.count -= 1;
14277
+ if (lock.count === 0) lock.restore();
14278
+ };
14279
+ }
14254
14280
  var SliccApp = class extends ThemedElement {
14255
14281
  static properties = {
14256
14282
  ...ThemedElement.properties,
@@ -14268,6 +14294,7 @@ var SliccApp = class extends ThemedElement {
14268
14294
  #started = null;
14269
14295
  #saving = false;
14270
14296
  #updatesPort;
14297
+ #unlock;
14271
14298
  #updatesVisibility = null;
14272
14299
  constructor() {
14273
14300
  super();
@@ -14456,12 +14483,14 @@ var SliccApp = class extends ThemedElement {
14456
14483
  this.ownerDocument.addEventListener("keydown", this.#keydown, true);
14457
14484
  this.#fonts();
14458
14485
  installProperties(this.ownerDocument);
14486
+ this.#unlock = lockOverscroll(this.ownerDocument);
14459
14487
  this.#resize = new ResizeObserver(() => this.#measure());
14460
14488
  this.#resize.observe(this);
14461
14489
  }
14462
14490
  disconnectedCallback() {
14463
14491
  super.disconnectedCallback();
14464
14492
  this.ownerDocument.removeEventListener("keydown", this.#keydown, true);
14493
+ this.#unlock();
14465
14494
  this.#resize?.disconnect();
14466
14495
  }
14467
14496
  get fontBase() {
@@ -19183,25 +19212,54 @@ function lick(message, handlers) {
19183
19212
  return event(name, decide ? b`<div class="pending">${details}${actions2}</div>` : details);
19184
19213
  }
19185
19214
  var messageCss = i`
19215
+ swc-conversation-thread > .message,
19216
+ swc-conversation-thread > .event {
19217
+ margin-block-start: var(--swc-spacing-300);
19218
+ }
19219
+ swc-conversation-thread > .event + .event,
19220
+ swc-conversation-thread > :first-child,
19221
+ swc-conversation-thread > .day + * {
19222
+ margin-block-start: 0;
19223
+ }
19186
19224
  .meta {
19187
19225
  display: flex;
19188
19226
  flex-wrap: wrap;
19189
- gap: var(--swc-spacing-100);
19190
- align-items: center;
19227
+ gap: var(--swc-spacing-50) var(--swc-spacing-100);
19228
+ align-items: baseline;
19191
19229
  font-size: var(--swc-font-size-75);
19230
+ line-height: var(--swc-line-height-100);
19192
19231
  color: var(--swc-neutral-subdued-content-color-default);
19193
19232
  }
19194
19233
  .meta .who {
19234
+ font-size: var(--swc-font-size-100);
19195
19235
  font-weight: 700;
19196
19236
  color: var(--swc-neutral-content-color-default);
19197
19237
  }
19238
+ .meta swc-badge {
19239
+ align-self: center;
19240
+ }
19198
19241
  .bubble,
19199
19242
  .reply {
19200
19243
  display: flex;
19201
19244
  flex-direction: column;
19202
- gap: var(--swc-spacing-75);
19245
+ gap: var(--swc-spacing-100);
19203
19246
  min-inline-size: 0;
19204
19247
  }
19248
+ .assistant swc-system-message {
19249
+ line-height: var(--swc-line-height-200);
19250
+ }
19251
+ swc-system-message > :not([slot]) + :not([slot]) {
19252
+ margin-block-start: var(--swc-spacing-100);
19253
+ }
19254
+ swc-system-message > .tool + .tool {
19255
+ margin-block-start: 0;
19256
+ }
19257
+ .text > :is(p, ul, ol, blockquote, .heading),
19258
+ .thinking,
19259
+ .plan,
19260
+ .delegation {
19261
+ max-inline-size: 72ch;
19262
+ }
19205
19263
  .bubble {
19206
19264
  align-items: flex-end;
19207
19265
  max-inline-size: 100%;
@@ -19214,9 +19272,6 @@ var messageCss = i`
19214
19272
  background: var(--swc-background-layer-1-color);
19215
19273
  border-color: var(--swc-gray-300);
19216
19274
  }
19217
- swc-user-message.body {
19218
- font-size: var(--swc-font-size-100);
19219
- }
19220
19275
  swc-user-message.body .text {
19221
19276
  white-space: pre-wrap;
19222
19277
  overflow-wrap: anywhere;
@@ -19242,22 +19297,36 @@ var messageCss = i`
19242
19297
  .text .table,
19243
19298
  .text pre,
19244
19299
  .text blockquote {
19245
- margin: var(--swc-spacing-85) 0;
19246
- }
19247
- .text > :first-child {
19248
- margin-block-start: 0;
19249
- }
19250
- .text > :last-child {
19251
- margin-block-end: 0;
19300
+ margin: var(--swc-spacing-200) 0;
19252
19301
  }
19253
19302
  .text ul,
19254
19303
  .text ol,
19255
19304
  .plan ol {
19256
- padding-inline-start: var(--swc-spacing-350);
19305
+ padding-inline-start: var(--swc-spacing-400);
19306
+ }
19307
+ .text li + li,
19308
+ .text li > :is(ul, ol) {
19309
+ margin-block-start: var(--swc-spacing-75);
19310
+ }
19311
+ .text li > :is(ul, ol) {
19312
+ margin-block-end: 0;
19257
19313
  }
19258
19314
  .text .heading {
19259
19315
  font-weight: 700;
19260
- margin: var(--swc-spacing-200) 0 var(--swc-spacing-75);
19316
+ line-height: var(--swc-line-height-100);
19317
+ margin: var(--swc-spacing-400) 0 var(--swc-spacing-100);
19318
+ }
19319
+ .text .heading[aria-level='3'] {
19320
+ font-size: var(--swc-font-size-400);
19321
+ }
19322
+ .text .heading[aria-level='4'] {
19323
+ font-size: var(--swc-font-size-300);
19324
+ }
19325
+ .text > :first-child {
19326
+ margin-block-start: 0;
19327
+ }
19328
+ .text > :last-child {
19329
+ margin-block-end: 0;
19261
19330
  }
19262
19331
  .text img {
19263
19332
  max-inline-size: 100%;
@@ -19274,7 +19343,7 @@ var messageCss = i`
19274
19343
  }
19275
19344
  li:has(> .task) {
19276
19345
  list-style: none;
19277
- margin-inline-start: calc(-1 * var(--swc-spacing-350));
19346
+ margin-inline-start: calc(-1 * var(--swc-spacing-400));
19278
19347
  }
19279
19348
  .task {
19280
19349
  color: var(--swc-neutral-subdued-content-color-default);
@@ -19285,7 +19354,7 @@ var messageCss = i`
19285
19354
  code,
19286
19355
  pre {
19287
19356
  font-family: var(--swc-code-font-family-stack);
19288
- font-size: var(--swc-font-size-75);
19357
+ font-size: var(--swc-font-size-100);
19289
19358
  }
19290
19359
  :not(pre) > code {
19291
19360
  background: var(--swc-gray-100);
@@ -19297,7 +19366,8 @@ var messageCss = i`
19297
19366
  background: var(--swc-background-layer-1-color);
19298
19367
  border: var(--swc-border-width-100) solid var(--swc-gray-200);
19299
19368
  border-radius: var(--swc-corner-radius-100);
19300
- padding: var(--swc-spacing-100) var(--swc-spacing-200);
19369
+ padding: var(--swc-spacing-200) var(--swc-spacing-300);
19370
+ line-height: var(--swc-line-height-200);
19301
19371
  overflow-x: auto;
19302
19372
  white-space: pre;
19303
19373
  }
@@ -19306,12 +19376,12 @@ var messageCss = i`
19306
19376
  }
19307
19377
  table {
19308
19378
  border-collapse: collapse;
19309
- font-size: var(--swc-font-size-75);
19379
+ font-size: var(--swc-font-size-100);
19310
19380
  }
19311
19381
  th,
19312
19382
  td {
19313
19383
  border: var(--swc-border-width-100) solid var(--swc-gray-200);
19314
- padding: var(--swc-spacing-50) var(--swc-spacing-100);
19384
+ padding: var(--swc-spacing-75) var(--swc-spacing-200);
19315
19385
  text-align: start;
19316
19386
  }
19317
19387
  th {
@@ -19323,9 +19393,9 @@ var messageCss = i`
19323
19393
  .thinking {
19324
19394
  color: var(--swc-neutral-subdued-content-color-default);
19325
19395
  font-style: italic;
19326
- font-size: var(--swc-font-size-75);
19396
+ font-size: var(--swc-font-size-100);
19327
19397
  border-inline-start: var(--swc-border-width-200) solid var(--swc-gray-300);
19328
- padding-inline-start: var(--swc-spacing-100);
19398
+ padding-inline-start: var(--swc-spacing-200);
19329
19399
  }
19330
19400
  details.tool,
19331
19401
  details.cluster,
@@ -19333,7 +19403,7 @@ var messageCss = i`
19333
19403
  border: var(--swc-border-width-100) solid var(--swc-gray-200);
19334
19404
  border-radius: var(--swc-corner-radius-100);
19335
19405
  background: var(--swc-background-layer-1-color);
19336
- font-size: var(--swc-font-size-75);
19406
+ font-size: var(--swc-font-size-100);
19337
19407
  }
19338
19408
  details.cluster > details.tool {
19339
19409
  margin: var(--swc-spacing-75) var(--swc-spacing-100);
@@ -19343,8 +19413,8 @@ var messageCss = i`
19343
19413
  display: flex;
19344
19414
  align-items: center;
19345
19415
  gap: var(--swc-spacing-100);
19346
- padding: var(--swc-spacing-50) var(--swc-spacing-100);
19347
- min-block-size: var(--swc-spacing-400);
19416
+ padding: var(--swc-spacing-75) var(--swc-spacing-200);
19417
+ min-block-size: var(--swc-spacing-500);
19348
19418
  list-style: none;
19349
19419
  }
19350
19420
  summary {
@@ -19451,9 +19521,9 @@ var messageCss = i`
19451
19521
  border: var(--swc-border-width-100) solid var(--swc-gray-200);
19452
19522
  border-inline-start: var(--swc-border-width-400) solid var(--tone);
19453
19523
  border-radius: var(--swc-corner-radius-100);
19454
- padding: var(--swc-spacing-85) var(--swc-spacing-200);
19524
+ padding: var(--swc-spacing-200) var(--swc-spacing-300);
19455
19525
  background: var(--swc-background-layer-1-color);
19456
- font-size: var(--swc-font-size-75);
19526
+ font-size: var(--swc-font-size-100);
19457
19527
  --tone: var(--swc-gray-400);
19458
19528
  --tone-text: var(--swc-neutral-subdued-content-color-default);
19459
19529
  }
@@ -19482,7 +19552,7 @@ var messageCss = i`
19482
19552
  gap: var(--swc-spacing-85);
19483
19553
  }
19484
19554
  .card-meta {
19485
- margin-block-start: var(--swc-spacing-75);
19555
+ margin-block-start: var(--swc-spacing-100);
19486
19556
  color: var(--swc-neutral-subdued-content-color-default);
19487
19557
  }
19488
19558
  .tone-text {
@@ -19502,12 +19572,16 @@ var messageCss = i`
19502
19572
  color: var(--swc-negative-content-color-default);
19503
19573
  }
19504
19574
  .plan .label {
19505
- font-size: var(--swc-font-size-75);
19575
+ font-size: var(--swc-font-size-100);
19506
19576
  font-weight: 700;
19507
19577
  color: var(--swc-neutral-subdued-content-color-default);
19508
19578
  }
19509
19579
  .plan ol {
19510
- margin: var(--swc-spacing-75) 0;
19580
+ margin: var(--swc-spacing-100) 0 0;
19581
+ }
19582
+ .plan li + li,
19583
+ ul.check li + li {
19584
+ margin-block-start: var(--swc-spacing-75);
19511
19585
  }
19512
19586
  ul.check {
19513
19587
  list-style: none;
@@ -19535,13 +19609,13 @@ var messageCss = i`
19535
19609
  display: block;
19536
19610
  inline-size: 100%;
19537
19611
  margin: 0;
19538
- padding: var(--swc-spacing-50) var(--swc-spacing-100);
19612
+ padding: var(--swc-spacing-75) var(--swc-spacing-200);
19539
19613
  border: 0;
19540
19614
  border-block-end: var(--swc-border-width-100) solid var(--swc-gray-200);
19541
19615
  background: var(--swc-background-layer-1-color);
19542
19616
  color: var(--swc-accent-content-color-default);
19543
19617
  font-family: var(--swc-code-font-family-stack);
19544
- font-size: var(--swc-font-size-75);
19618
+ font-size: var(--swc-font-size-100);
19545
19619
  text-align: start;
19546
19620
  cursor: pointer;
19547
19621
  }
@@ -19551,7 +19625,7 @@ var messageCss = i`
19551
19625
  .question {
19552
19626
  border: var(--swc-border-width-100) solid var(--swc-gray-300);
19553
19627
  border-radius: var(--swc-corner-radius-100);
19554
- padding: var(--swc-spacing-100) var(--swc-spacing-200);
19628
+ padding: var(--swc-spacing-200) var(--swc-spacing-300);
19555
19629
  }
19556
19630
  .question[data-state='open'] {
19557
19631
  border-color: var(--swc-accent-visual-color);
@@ -19566,8 +19640,8 @@ var messageCss = i`
19566
19640
  display: flex;
19567
19641
  flex-wrap: wrap;
19568
19642
  align-items: center;
19569
- gap: var(--swc-spacing-85);
19570
- margin-block-start: var(--swc-spacing-85);
19643
+ gap: var(--swc-spacing-100);
19644
+ margin-block-start: var(--swc-spacing-200);
19571
19645
  }
19572
19646
  .input {
19573
19647
  font: inherit;
@@ -19591,7 +19665,7 @@ var messageCss = i`
19591
19665
  flex-wrap: wrap;
19592
19666
  align-items: center;
19593
19667
  gap: var(--swc-spacing-75);
19594
- font-size: var(--swc-font-size-75);
19668
+ font-size: var(--swc-font-size-100);
19595
19669
  color: var(--swc-neutral-subdued-content-color-default);
19596
19670
  }
19597
19671
  .delegation strong {
@@ -19605,8 +19679,8 @@ var messageCss = i`
19605
19679
  border: var(--swc-border-width-100) solid var(--swc-negative-visual-color);
19606
19680
  border-inline-start-width: var(--swc-border-width-400);
19607
19681
  border-radius: var(--swc-corner-radius-100);
19608
- padding: var(--swc-spacing-85) var(--swc-spacing-200);
19609
- font-size: var(--swc-font-size-75);
19682
+ padding: var(--swc-spacing-200) var(--swc-spacing-300);
19683
+ font-size: var(--swc-font-size-100);
19610
19684
  }
19611
19685
  .error-card .error-text {
19612
19686
  display: grid;
@@ -19626,11 +19700,18 @@ var messageCss = i`
19626
19700
  .day {
19627
19701
  display: flex;
19628
19702
  align-items: center;
19629
- gap: var(--swc-spacing-100);
19630
- margin: var(--swc-spacing-100) 0;
19631
- font-size: var(--swc-font-size-75);
19703
+ gap: var(--swc-spacing-200);
19704
+ font-size: var(--swc-font-size-100);
19632
19705
  color: var(--swc-neutral-subdued-content-color-default);
19633
19706
  }
19707
+ .day {
19708
+ margin: var(--swc-spacing-400) 0 var(--swc-spacing-100);
19709
+ font-size: var(--swc-font-size-75);
19710
+ font-weight: 700;
19711
+ }
19712
+ .day:first-child {
19713
+ margin-block-start: 0;
19714
+ }
19634
19715
  .marker-text {
19635
19716
  display: inline-flex;
19636
19717
  align-items: center;
@@ -19643,7 +19724,7 @@ var messageCss = i`
19643
19724
  background: var(--swc-gray-200);
19644
19725
  }
19645
19726
  .notice {
19646
- font-size: var(--swc-font-size-75);
19727
+ font-size: var(--swc-font-size-100);
19647
19728
  color: var(--swc-neutral-subdued-content-color-default);
19648
19729
  text-align: center;
19649
19730
  }
@@ -19788,21 +19869,28 @@ var SliccChat = class extends ThemedElement {
19788
19869
  flex: 1;
19789
19870
  min-height: 0;
19790
19871
  overflow-y: auto;
19791
- padding: var(--swc-spacing-200) var(--swc-spacing-300) var(--swc-spacing-400);
19872
+ container-type: inline-size;
19873
+ padding: var(--swc-spacing-400) var(--swc-spacing-300) var(--swc-spacing-500);
19874
+ font-size: var(--swc-font-size-200);
19875
+ }
19876
+ @container (min-width: 600px) {
19877
+ .column {
19878
+ padding-inline: var(--swc-spacing-300);
19879
+ }
19792
19880
  }
19793
19881
  .log:focus-visible {
19794
19882
  outline: var(--swc-focus-indicator-thickness) solid var(--swc-focus-indicator-color);
19795
19883
  outline-offset: calc(-1 * var(--swc-focus-indicator-thickness));
19796
19884
  }
19797
19885
  .column {
19798
- max-inline-size: 860px;
19886
+ max-inline-size: calc(var(--swc-spacing-1000) * 10);
19799
19887
  margin: 0 auto;
19800
19888
  }
19801
19889
  .empty {
19802
19890
  color: var(--swc-neutral-subdued-content-color-default);
19803
19891
  text-align: center;
19804
19892
  padding: var(--swc-spacing-700) 0;
19805
- font-size: var(--swc-font-size-75);
19893
+ font-size: var(--swc-font-size-100);
19806
19894
  }
19807
19895
  `
19808
19896
  ];
@@ -19965,7 +20053,9 @@ var SliccChat = class extends ThemedElement {
19965
20053
  if (label !== previous) {
19966
20054
  out.push([
19967
20055
  `day:${message.id}`,
19968
- b`<div class="day" role="separator" data-day=${label}><span class="line"></span><span>${label}</span><span class="line"></span></div>`
20056
+ b`<div class="day" role="separator" aria-label=${label} data-day=${label}>
20057
+ <span class="line"></span><span>${label}</span><span class="line"></span>
20058
+ </div>`
19969
20059
  ]);
19970
20060
  previous = label;
19971
20061
  }