agentgui 1.0.1041 → 1.0.1043

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.
@@ -1524,6 +1524,15 @@
1524
1524
  }
1525
1525
  .ds-247420 table tr.clickable:focus-visible td { background: var(--bg-2); }
1526
1526
 
1527
+ /* Table() striped/compact opt-in density modifiers (webgeist g-table parity).
1528
+ Scoped under .ds-table-wrap so they never leak onto an unrelated bare
1529
+ <table> a consumer hand-rolls outside this component. */
1530
+ .ds-247420 .ds-table-wrap.is-striped table tr:nth-child(even) td { background: var(--bg-2); }
1531
+ .ds-247420 .ds-table-wrap.is-striped table tr.clickable:nth-child(even):hover td,
1532
+ .ds-247420 .ds-table-wrap.is-striped table tr.clickable:nth-child(even):focus-visible td { background: var(--bg-3, var(--bg-2)); }
1533
+ .ds-247420 .ds-table-wrap.is-compact table th { padding: var(--space-1-5, 5px) var(--space-2, 8px); }
1534
+ .ds-247420 .ds-table-wrap.is-compact table td { padding: var(--space-1-5, 5px) var(--space-2, 8px); }
1535
+
1527
1536
  /* ============================================================
1528
1537
  Changelog
1529
1538
  ============================================================ */
@@ -1974,7 +1983,8 @@
1974
1983
  background: var(--bg); color: var(--fg);
1975
1984
  border: var(--bw-hair) solid var(--rule); border-radius: var(--r-1);
1976
1985
  }
1977
- .ds-247420 .ds-file-controls .ds-file-filter-input { flex: 0 1 220px; }
1986
+ .ds-247420 .ds-file-controls .ds-file-filter-wrap { flex: 0 1 220px; display: contents; }
1987
+ .ds-247420 .ds-file-controls .ds-file-filter-wrap .ds-file-filter-input { flex: 0 1 220px; }
1978
1988
  .ds-247420 .ds-file-filter-input:focus-visible { outline: none; box-shadow: var(--focus-ring-inset); }
1979
1989
  .ds-247420 .ds-file-sort { display: flex; gap: var(--space-2); padding: 0 var(--space-2) var(--space-1); }
1980
1990
  .ds-247420 .ds-file-sort-btn {
@@ -3142,10 +3152,13 @@
3142
3152
  re-declare it; the sizing block now states the truth). */
3143
3153
  line-height: 1.5; resize: none;
3144
3154
  min-height: 28px; max-height: 200px;
3145
- box-sizing: border-box; overflow-y: hidden;
3155
+ box-sizing: border-box;
3156
+ /* Always auto, not focus-only: a capped-height composer that loses focus
3157
+ while scrolled must still show its scrollbar - otherwise once the field
3158
+ blurs there is zero cue that content exists below the fold. */
3159
+ overflow-y: auto;
3146
3160
  scrollbar-width: thin;
3147
3161
  }
3148
- .ds-247420 .chat-composer textarea:focus { overflow-y: auto; }
3149
3162
  .ds-247420 .chat-composer textarea::placeholder { color: var(--fg-3); }
3150
3163
  .ds-247420 .chat-composer textarea:focus { background: none; border: none; box-shadow: none; outline: none; }
3151
3164
  .ds-247420 .chat-composer .send {
@@ -3652,6 +3665,9 @@
3652
3665
  }
3653
3666
  .ds-247420 .ds-field textarea { min-height: calc(4 * 1.5em); resize: vertical; }
3654
3667
  .ds-247420 .ds-search-input::placeholder { color: var(--fg-3); }
3668
+ /* Only present when SearchInput is passed resultCount - transparent to any
3669
+ flex/grid layout the bare input previously sat in directly. */
3670
+ .ds-247420 .ds-search-input-wrap { display: contents; }
3655
3671
 
3656
3672
  .ds-247420 .ds-field input:focus-visible,
3657
3673
  .ds-247420 .ds-field textarea:focus-visible,
@@ -4612,6 +4628,10 @@
4612
4628
  .ds-247420 .ds-stat-val.err-rate { font-size: clamp(24px, 7cqi, 32px); color: var(--warn); }
4613
4629
  .ds-247420 .ds-stat-lbl { font-size: var(--fs-micro); color: var(--fg-3); margin-top: 2px; }
4614
4630
 
4631
+ /* Inline row — flex row with centered items and a small gap, for demo/kit
4632
+ markup that needs to lay siblings out horizontally without an inline style. */
4633
+ .ds-247420 .ds-inline-row { display: flex; align-items: center; gap: var(--space-2, 8px); }
4634
+
4615
4635
  /* SubGrid */
4616
4636
  .ds-247420 .ds-sub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 6px; margin-top: 8px; }
4617
4637
  .ds-247420 .ds-sub-grid-empty { padding: var(--space-3); color: var(--fg-3); font-size: var(--fs-tiny); }
@@ -4909,10 +4929,10 @@
4909
4929
  font-weight: 600;
4910
4930
  }
4911
4931
  .ds-247420 .ds-quickstart {
4912
- padding: var(--space-3, 16px) var(--space-4, 22px);
4932
+ padding: var(--space-3, 16px) var(--space-4, 24px);
4913
4933
  display: flex;
4914
4934
  flex-direction: column;
4915
- gap: 6px;
4935
+ gap: var(--space-1-75, 6px);
4916
4936
  }
4917
4937
  /* Table() scroll containment — wide tables scroll inside their own box,
4918
4938
  never the page body. */
@@ -4926,21 +4946,21 @@
4926
4946
 
4927
4947
  /* == appended: settings kit cleanup == */
4928
4948
  /* == appended: settings kit == */
4929
- .ds-247420 .ds-settings-main { padding: 8px; }
4949
+ .ds-247420 .ds-settings-main { padding: var(--space-2, 8px); }
4930
4950
  .ds-247420 .ds-settings-body { padding: 14px 18px; }
4931
- .ds-247420 .ds-settings-body-stack { display: flex; flex-direction: column; gap: 10px; }
4932
- .ds-247420 .ds-field-block { margin: 10px 0; }
4951
+ .ds-247420 .ds-settings-body-stack { display: flex; flex-direction: column; gap: var(--space-2-5, 10px); }
4952
+ .ds-247420 .ds-field-block { margin: var(--space-2-5, 10px) 0; }
4933
4953
  .ds-247420 .ds-field-eyebrow {
4934
4954
  font-family: var(--ff-mono); font-size: 11px; letter-spacing: 0.06em;
4935
4955
  text-transform: uppercase; color: var(--panel-text-3);
4936
4956
  }
4937
4957
  .ds-247420 .ds-hint-sm { font-size: 12px; color: var(--panel-text-2); }
4938
4958
  .ds-247420 .ds-note-quiet { margin: 0; color: var(--panel-text-2); }
4939
- .ds-247420 .ds-btn-row { display: flex; gap: 8px; flex-wrap: wrap; }
4940
- .ds-247420 .ds-btn-row-tight { gap: 6px; }
4959
+ .ds-247420 .ds-btn-row { display: flex; gap: var(--space-2, 8px); flex-wrap: wrap; }
4960
+ .ds-247420 .ds-btn-row-tight { gap: var(--space-1-75, 6px); }
4941
4961
  .ds-247420 .ds-key-input { flex: 1 1 160px; min-width: 0; font-family: var(--ff-mono); }
4942
4962
  .ds-247420 .ds-toggle-btn { min-width: 78px; }
4943
- .ds-247420 .ds-toggle-label { margin-left: 8px; color: inherit; opacity: 0.7; }
4963
+ .ds-247420 .ds-toggle-label { margin-left: var(--space-2, 8px); color: inherit; opacity: 0.7; }
4944
4964
  .ds-247420 .ds-btn-warn { color: var(--warn); }
4945
4965
  /* Raw --mascot text measures 3.11:1 on paper (fails 4.5:1); --mascot-deep is
4946
4966
  the text-safe tone, same accent/accent-ink split used everywhere else. */
@@ -4977,8 +4997,6 @@
4977
4997
  .ds-247420 .ds-auth-remember-text { color: var(--panel-text-2); font-size: 13px; }
4978
4998
  .ds-247420 .ds-auth-forgot { font-size: 13px; }
4979
4999
  .ds-247420 .ds-auth-error { padding: 8px 10px; background: var(--panel-1); border-radius: var(--r-0); color: var(--danger); font-size: 13px; overflow-wrap: anywhere; }
4980
- .ds-247420 .ds-auth-divider { display: flex; align-items: center; gap: 10px; margin: 6px 0; color: var(--panel-text-3); font-size: 12px; }
4981
- .ds-247420 .ds-auth-divider-line { flex: 1; height: 1px; background: var(--panel-2); }
4982
5000
  .ds-247420 .ds-auth-providers { display: flex; gap: 8px; flex-wrap: wrap; }
4983
5001
  .ds-247420 .ds-auth-provider-btn { flex: 1 1 100px; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px; }
4984
5002
  .ds-247420 .ds-auth-provider-btn--loading { opacity: 0.7; pointer-events: none; }
@@ -7082,6 +7100,15 @@
7082
7100
  .ds-247420 .ds-session-head .ds-search-input { min-height: 44px; }
7083
7101
  }
7084
7102
  .ds-247420 .ds-session-list, .ds-247420 .ds-session-groups { flex: 1; min-height: 0; overflow-y: auto; padding: var(--space-2); }
7103
+ .ds-247420 .ds-session-loadmore {
7104
+ width: 100%; margin-top: var(--space-1); padding: 8px 12px;
7105
+ font-size: var(--fs-sm); font-family: inherit; color: var(--fg-3);
7106
+ background: none; border: var(--bw-hair) dashed var(--rule); border-radius: var(--r-1);
7107
+ cursor: pointer; text-align: center;
7108
+ }
7109
+ .ds-247420 .ds-session-loadmore:hover { color: var(--fg); border-color: var(--fg-3); }
7110
+ .ds-247420 .ds-session-loadmore:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
7111
+ @media (pointer: coarse) { .ds-247420 .ds-session-loadmore { min-height: 44px; } }
7085
7112
  /* Grouped rows (Today/Yesterday/...) lay out like the flat list; the section
7086
7113
  label sticks to the top of the scroll area for Claude-Desktop-style headers. */
7087
7114
  .ds-247420 .ds-session-group { display: flex; flex-direction: column; }
@@ -8130,6 +8157,76 @@
8130
8157
  .ds-247420 .ds-ep-pager-btn:disabled { opacity: 0.4; cursor: default; }
8131
8158
  .ds-247420 .ds-ep-pager-label { white-space: nowrap; }
8132
8159
 
8160
+ .ds-247420 .ds-ep-pager-numbered { flex-wrap: wrap; }
8161
+ .ds-247420 .ds-ep-pager-num {
8162
+ appearance: none; cursor: pointer;
8163
+ background: var(--panel-2, var(--bg-2));
8164
+ border: 1px solid var(--rule);
8165
+ color: var(--panel-text, var(--fg));
8166
+ min-width: 1.75em;
8167
+ padding: var(--space-half, 3px) var(--space-1, 5px);
8168
+ border-radius: var(--r-1, 4px);
8169
+ font: inherit;
8170
+ text-align: center;
8171
+ }
8172
+ .ds-247420 .ds-ep-pager-num:hover { background: color-mix(in oklab, var(--accent) 10%, transparent); }
8173
+ .ds-247420 .ds-ep-pager-num.is-current {
8174
+ background: var(--accent);
8175
+ color: var(--accent-ink);
8176
+ border-color: var(--accent);
8177
+ }
8178
+ .ds-247420 .ds-ep-pager-ellipsis { padding: 0 var(--space-hair, 2px); opacity: 0.6; }
8179
+ .ds-247420 .ds-ep-pager-total { white-space: nowrap; margin-left: auto; }
8180
+
8181
+ /* Grid / GridItem — 24-column responsive layout. GridItem's flex-basis is
8182
+ set per-tier via --xs-basis/--sm-basis/--md-basis/--lg-basis/--xl-basis
8183
+ custom properties (computed in JS from a 1-24 span); each @media tier
8184
+ below picks up whichever property is set for that breakpoint, cascading
8185
+ down from xs as the mobile-first default. Mirrors BP_SM/MD/LG/XL. */
8186
+ .ds-247420 .ds-ep-grid {
8187
+ display: flex; flex-wrap: wrap;
8188
+ gap: var(--space-2, 8px);
8189
+ }
8190
+ .ds-247420 .ds-ep-grid-item {
8191
+ box-sizing: border-box;
8192
+ flex-grow: var(--xs-grow, 1);
8193
+ flex-basis: var(--xs-basis, 100%);
8194
+ max-width: var(--xs-basis, 100%);
8195
+ display: var(--xs-display, inherit);
8196
+ }
8197
+ @media (min-width: 480px) {
8198
+ .ds-247420 .ds-ep-grid-item[style*="--sm-basis"] {
8199
+ flex-grow: var(--sm-grow, 1);
8200
+ flex-basis: var(--sm-basis, 100%);
8201
+ max-width: var(--sm-basis, 100%);
8202
+ display: var(--sm-display, inherit);
8203
+ }
8204
+ }
8205
+ @media (min-width: 768px) {
8206
+ .ds-247420 .ds-ep-grid-item[style*="--md-basis"] {
8207
+ flex-grow: var(--md-grow, 1);
8208
+ flex-basis: var(--md-basis, 100%);
8209
+ max-width: var(--md-basis, 100%);
8210
+ display: var(--md-display, inherit);
8211
+ }
8212
+ }
8213
+ @media (min-width: 1024px) {
8214
+ .ds-247420 .ds-ep-grid-item[style*="--lg-basis"] {
8215
+ flex-grow: var(--lg-grow, 1);
8216
+ flex-basis: var(--lg-basis, 100%);
8217
+ max-width: var(--lg-basis, 100%);
8218
+ display: var(--lg-display, inherit);
8219
+ }
8220
+ }
8221
+ @media (min-width: 1440px) {
8222
+ .ds-247420 .ds-ep-grid-item[style*="--xl-basis"] {
8223
+ flex-grow: var(--xl-grow, 1);
8224
+ flex-basis: var(--xl-basis, 100%);
8225
+ max-width: var(--xl-basis, 100%);
8226
+ display: var(--xl-display, inherit);
8227
+ }
8228
+ }
8229
+
8133
8230
  /* JsonViewer */
8134
8231
  .ds-247420 .ds-ep-json {
8135
8232
  font-size: var(--fs-tiny, 12px);
@@ -9141,6 +9238,62 @@
9141
9238
  .ds-247420 .ds-ep-dock-left.collapsed { top: 6px; bottom: auto; }
9142
9239
  }
9143
9240
 
9241
+ /* Collapse / CollapseGroup — progressive-disclosure toggle panel. */
9242
+ .ds-247420 .ds-ep-collapse {
9243
+ border: 1px solid var(--rule);
9244
+ border-radius: var(--r-1, 4px);
9245
+ background: var(--panel-2, var(--bg-2));
9246
+ }
9247
+ .ds-247420 .ds-ep-collapse + .ds-ep-collapse { margin-top: var(--space-1, 5px); }
9248
+ .ds-247420 .ds-ep-collapse-head {
9249
+ appearance: none; cursor: pointer; width: 100%;
9250
+ display: flex; align-items: center; gap: var(--space-1-5, 5px);
9251
+ background: transparent; border: none;
9252
+ padding: var(--space-1-5, 5px) var(--space-2, 8px);
9253
+ font: inherit; color: var(--panel-text, var(--fg));
9254
+ text-align: left;
9255
+ }
9256
+ .ds-247420 .ds-ep-collapse-head:hover { background: color-mix(in oklab, var(--accent) 6%, transparent); }
9257
+ .ds-247420 .ds-ep-collapse-chevron {
9258
+ font-family: var(--ff-mono, monospace);
9259
+ width: 1em; flex-shrink: 0;
9260
+ color: var(--panel-text-3, var(--fg-3));
9261
+ }
9262
+ .ds-247420 .ds-ep-collapse-title { flex: 1; font-weight: 600; }
9263
+ .ds-247420 .ds-ep-collapse-body {
9264
+ padding: var(--space-2, 8px);
9265
+ border-top: 1px solid var(--rule);
9266
+ }
9267
+ .ds-247420 .ds-ep-collapse-group { display: flex; flex-direction: column; }
9268
+
9269
+ /* Divider — plain rule / labeled rule / vertical separator. */
9270
+ .ds-247420 .ds-ep-divider {
9271
+ border: none; border-top: 1px solid var(--rule);
9272
+ margin: var(--space-2, 8px) 0;
9273
+ }
9274
+ .ds-247420 .ds-ep-divider-labeled {
9275
+ display: flex; align-items: center; gap: var(--space-1-5, 5px);
9276
+ margin: var(--space-2, 8px) 0;
9277
+ }
9278
+ .ds-247420 .ds-ep-divider-labeled::before,
9279
+ .ds-247420 .ds-ep-divider-labeled::after {
9280
+ content: '';
9281
+ flex: 1;
9282
+ border-top: 1px solid var(--rule);
9283
+ }
9284
+ .ds-247420 .ds-ep-divider-label {
9285
+ font: var(--fs-tiny, 12px)/1 var(--ff-mono, monospace);
9286
+ color: var(--panel-text-3, var(--fg-3));
9287
+ white-space: nowrap;
9288
+ }
9289
+ .ds-247420 .ds-ep-divider-vertical {
9290
+ display: inline-block;
9291
+ align-self: stretch;
9292
+ width: 0;
9293
+ border-left: 1px solid var(--rule);
9294
+ margin: 0 var(--space-1-5, 5px);
9295
+ }
9296
+
9144
9297
  /* community-app.css */
9145
9298
  /* community-app.css — layout glue for mountCommunityApp (the full chat/community
9146
9299
  app GUI). Reuses the canonical app/body/main classes from app-shell.css and