shadok-ai 0.15.46 → 0.15.48

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/public/index.html +22 -16
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadok-ai",
3
- "version": "0.15.46",
3
+ "version": "0.15.48",
4
4
  "main": "dist/session.js",
5
5
  "scripts": {
6
6
  "test": "node --import tsx --test --test-timeout=120000 test/*.ts context/*/test/*.test.mjs",
package/public/index.html CHANGED
@@ -762,8 +762,11 @@
762
762
  padding: 12px 8px; overflow-y: auto;
763
763
  }
764
764
  body.has-groups #tabbar { border-radius: 0 var(--radius) var(--radius) 0; }
765
- /* Cancel <main>'s gap between the two halves of the card. */
766
- body.has-groups #groupRail { margin-right: -12px; }
765
+ /* The rail and the agents column sit flush (main's desktop gap is 0): the
766
+ rail has no right border and the two halves meet at one seam. No negative
767
+ margin — that used to cancel a 12px gap that the Teams layer removed, and
768
+ with gap:0 it only made the rail (and its active card) overlap the agents
769
+ column, which showed most in the collapsed dock. */
767
770
  .rail-head { display: flex; align-items: center; justify-content: space-between; padding: 0 4px 8px 8px; }
768
771
  #railMini { border: none; background: none; padding: 2px 6px; color: var(--text-dim); font-size: 13px; }
769
772
  #railMini:hover { color: var(--amber); }
@@ -819,23 +822,26 @@
819
822
  font-size: 13px; color: var(--text-dim); padding: 8px 10px;
820
823
  }
821
824
  #groupRail #newGroup:hover { color: var(--amber); border-color: var(--amber); }
822
- /* Collapsed to icons, like a dock: the names live in the tooltips. */
823
- body.rail-mini #groupRail { width: 52px; padding: 12px 6px; }
825
+ /* Collapsed dock, in the spirit of the old tools column: a big icon with the
826
+ group name in a small label beneath it, centered — not an icon-only dock. */
827
+ body.rail-mini #groupRail { width: 68px; padding: 12px 6px; }
824
828
  body.rail-mini .rail-head { justify-content: center; padding: 0 0 8px; }
825
829
  body.rail-mini .rail-head .label,
826
- body.rail-mini .rail-name, body.rail-mini .rail-count,
830
+ body.rail-mini .rail-count,
827
831
  body.rail-mini .rail-add, body.rail-mini .rail-del,
828
832
  body.rail-mini .rail-txt { display: none !important; }
829
- body.rail-mini .rail-item { justify-content: center; padding: 6px 0; }
830
- /* In the collapsed dock the icon IS the group — the name lives only in the
831
- tooltip — so make it noticeably bigger here. The 52px dock (40px inside
832
- its padding) leaves room for a 38px target. */
833
- body.rail-mini .rail-icon { width: 38px; height: 38px; font-size: 24px; border-radius: 8px; }
834
- body.rail-mini .rail-dot { position: absolute; top: 4px; right: 4px; }
833
+ body.rail-mini .rail-item { flex-direction: column; justify-content: center; gap: 3px; padding: 7px 2px; text-align: center; }
834
+ body.rail-mini .rail-icon { width: 34px; height: 34px; font-size: 22px; border-radius: 8px; }
835
+ /* The name sits under the icon; it is the whole point of this mode, so it is
836
+ shown (not hidden like the count), clipped to the dock's width. */
837
+ body.rail-mini .rail-name { display: block; flex: none; width: 100%; font-size: 10px; line-height: 1.15; color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
838
+ body.rail-mini .rail-item.active .rail-name { color: var(--text); }
839
+ body.rail-mini .rail-dot { position: absolute; top: 4px; right: 14px; }
840
+ body.rail-mini #groupRail #newGroup { text-align: center; padding: 8px 0; }
835
841
 
836
842
  /* The agents column, narrowed to the selected group. */
837
843
  /* With a column the list header is the selected group's name; with no
838
- column it is just "Agents" again (the "Ungrouped" view label would read
844
+ column it is just "Agents" again (the "Main" view label would read
839
845
  oddly when there is nothing to be ungrouped from). */
840
846
  body.has-groups #tabbar .side-label .sl-all { display: none; }
841
847
  body:not(.has-groups) #tabbar .side-label .sl-view { display: none; }
@@ -844,7 +850,7 @@
844
850
  #tabbar .group-body { padding-left: 0; }
845
851
  #tabbar .group.collapsed .group-body { display: flex; }
846
852
  /* The home agent is an agent like the others here: it shows in ITS group
847
- (usually Ungrouped), not pinned into every one. */
853
+ (usually Main), not pinned into every one. */
848
854
  #tabbar:not([data-view="ungrouped"]) #ungrouped,
849
855
  #tabbar[data-view="ungrouped"] #groups,
850
856
  #tabbar .group:not(.in-view) { display: none; }
@@ -4557,7 +4563,7 @@
4557
4563
  if (gi && gi.textContent !== g.icon) gi.textContent = g.icon;
4558
4564
  }
4559
4565
  const g = groups.find((x) => String(x.id) === v);
4560
- $("viewLabel").textContent = g ? `${g.icon} ${g.nameEl.textContent}` : "Ungrouped";
4566
+ $("viewLabel").textContent = g ? `${g.icon} ${g.nameEl.textContent}` : "Main";
4561
4567
  $("viewEmpty").hidden = tabsInView(v).length > 0 || v === "ungrouped";
4562
4568
  renderRail();
4563
4569
  }
@@ -4609,7 +4615,7 @@
4609
4615
  del.type = "button";
4610
4616
  del.className = "rail-del";
4611
4617
  del.textContent = "×";
4612
- del.title = "Ungroup (its agents move to Ungrouped)";
4618
+ del.title = "Ungroup (its agents move to Main)";
4613
4619
  item.appendChild(del);
4614
4620
  del.addEventListener("click", (e) => {
4615
4621
  e.stopPropagation();
@@ -4691,7 +4697,7 @@
4691
4697
  // dragend) nor while a name is being typed (a re-render would eat the input).
4692
4698
  if (dragGroupEl || railList.querySelector("input.rename")) return;
4693
4699
  const entries = [
4694
- { view: "ungrouped", icon: "📥", name: "Ungrouped" },
4700
+ { view: "ungrouped", icon: "📥", name: "Main" },
4695
4701
  ...[...groupsEl.children].map((el) =>
4696
4702
  ({ view: String(el._group.id), icon: el._group.icon, name: el._group.nameEl.textContent, group: el._group })),
4697
4703
  ];