sh3-core 0.15.4 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/BrandSlot.svelte +9 -9
  2. package/dist/{Shell.svelte → Sh3.svelte} +65 -65
  3. package/dist/Sh3.svelte.d.ts +5 -0
  4. package/dist/__test__/render.js +1 -1
  5. package/dist/actions/ActionPanel.svelte +3 -3
  6. package/dist/actions/CommandPalette.svelte +2 -2
  7. package/dist/actions/MenuBar.svelte +1 -1
  8. package/dist/actions/MenuBar.test.js +1 -1
  9. package/dist/actions/MenuButton.svelte +3 -3
  10. package/dist/actions/dispatcher.svelte.js +1 -1
  11. package/dist/actions/listActive.js +1 -1
  12. package/dist/actions/listeners.js +6 -6
  13. package/dist/actions/selection.svelte.d.ts +2 -2
  14. package/dist/actions/selection.svelte.js +4 -4
  15. package/dist/actions/selection.test.js +1 -1
  16. package/dist/actions/{shellActions.test.js → sh3Actions.test.js} +14 -14
  17. package/dist/actions/state.svelte.d.ts +3 -3
  18. package/dist/actions/state.svelte.js +3 -3
  19. package/dist/actions/syncMountedViewIds.test.js +1 -1
  20. package/dist/actions/types.d.ts +1 -1
  21. package/dist/api.d.ts +5 -5
  22. package/dist/api.js +7 -7
  23. package/dist/app/admin/ApiKeysView.svelte +9 -9
  24. package/dist/app/admin/AuthSettingsView.svelte +6 -6
  25. package/dist/app/admin/SystemView.svelte +12 -12
  26. package/dist/app/admin/UsersView.svelte +8 -8
  27. package/dist/app/store/AppUpdateAvailableModal.svelte +14 -14
  28. package/dist/app/store/PermissionConfirmModal.svelte +20 -20
  29. package/dist/app/store/StoreView.svelte +51 -51
  30. package/dist/app/store/UninstallAppDialog.svelte +14 -14
  31. package/dist/app/store/storeShard.svelte.js +1 -1
  32. package/dist/app/store/verbs.js +1 -1
  33. package/dist/apps/lifecycle.d.ts +1 -1
  34. package/dist/apps/lifecycle.js +4 -4
  35. package/dist/apps/lifecycle.test.js +5 -5
  36. package/dist/apps/registry.svelte.d.ts +2 -2
  37. package/dist/apps/registry.svelte.js +3 -3
  38. package/dist/apps/types.d.ts +1 -1
  39. package/dist/auth/GuestBanner.svelte +19 -19
  40. package/dist/auth/SignInWall.svelte +17 -17
  41. package/dist/auth/auth.svelte.d.ts +1 -1
  42. package/dist/auth/auth.svelte.js +1 -1
  43. package/dist/boot/satellitePayload.js +1 -1
  44. package/dist/build.d.ts +27 -0
  45. package/dist/build.js +59 -1
  46. package/dist/build.test.js +31 -0
  47. package/dist/color/api.d.ts +1 -1
  48. package/dist/color/api.js +1 -1
  49. package/dist/color/{shell-api.js → sh3-api.js} +3 -3
  50. package/dist/conflicts/ConflictModal.svelte +1 -1
  51. package/dist/conflicts/ConflictModal.svelte.d.ts +1 -1
  52. package/dist/conflicts/DetailView.svelte +19 -19
  53. package/dist/conflicts/PromptView.svelte +9 -9
  54. package/dist/conflicts/adapter-documents.js +1 -1
  55. package/dist/conflicts/api.d.ts +1 -1
  56. package/dist/conflicts/api.js +2 -2
  57. package/dist/conflicts/renderer-registry.js +1 -1
  58. package/dist/conflicts/renderers/MetaOnlyRenderer.svelte +8 -8
  59. package/dist/conflicts/renderers/TextDiffRenderer.svelte +15 -15
  60. package/dist/conflicts/renderers/index.js +1 -1
  61. package/dist/conflicts/resolve-primitive.js +1 -1
  62. package/dist/conflicts/{shell-api.js → sh3-api.js} +2 -2
  63. package/dist/contributions/registry.js +1 -1
  64. package/dist/createShell.d.ts +2 -2
  65. package/dist/createShell.js +6 -6
  66. package/dist/host-entry.d.ts +1 -1
  67. package/dist/host-entry.js +2 -2
  68. package/dist/host.js +2 -2
  69. package/dist/index.d.ts +1 -1
  70. package/dist/index.js +2 -2
  71. package/dist/keys/ConsentDialog.svelte +15 -15
  72. package/dist/keys/consent.svelte.d.ts +2 -2
  73. package/dist/keys/consent.svelte.js +3 -3
  74. package/dist/keys/revocation-bus.svelte.d.ts +3 -3
  75. package/dist/keys/revocation-bus.svelte.js +3 -3
  76. package/dist/layout/DragPreview.svelte +9 -9
  77. package/dist/layout/LayoutRenderer.browser.test.js +2 -2
  78. package/dist/layout/LayoutRenderer.svelte +4 -4
  79. package/dist/layout/SlotContainer.svelte +12 -12
  80. package/dist/layout/SlotDropZone.svelte +2 -2
  81. package/dist/layout/inspection.d.ts +1 -1
  82. package/dist/layout/inspection.js +1 -1
  83. package/dist/layout/store.svelte.js +3 -3
  84. package/dist/layout/types.d.ts +1 -1
  85. package/dist/layouts-shard/LayoutSaveModal.svelte +20 -20
  86. package/dist/layouts-shard/LayoutsSection.svelte +11 -11
  87. package/dist/layouts-shard/filter.test.js +3 -3
  88. package/dist/layouts-shard/layoutsApi.test.js +3 -3
  89. package/dist/layouts-shard/layoutsShard.svelte.test.js +7 -7
  90. package/dist/migrations/mode-id-rename.js +2 -2
  91. package/dist/overlays/ConfirmDialog.svelte +8 -8
  92. package/dist/overlays/EntityAppearanceModal.svelte +19 -19
  93. package/dist/overlays/FloatFrame.svelte +20 -20
  94. package/dist/overlays/FloatLayer.svelte +1 -1
  95. package/dist/overlays/ModalFrame.svelte +5 -5
  96. package/dist/overlays/PopupFrame.svelte +4 -4
  97. package/dist/overlays/ToastItem.svelte +12 -12
  98. package/dist/overlays/float.d.ts +2 -2
  99. package/dist/overlays/float.js +3 -3
  100. package/dist/overlays/float.test.js +6 -6
  101. package/dist/overlays/modal.js +1 -1
  102. package/dist/overlays/modal.test.js +2 -2
  103. package/dist/overlays/parentHost.js +2 -2
  104. package/dist/overlays/parentHost.test.js +5 -5
  105. package/dist/overlays/popup.js +2 -2
  106. package/dist/overlays/popup.test.js +2 -2
  107. package/dist/overlays/roots.js +4 -4
  108. package/dist/overlays/toast.js +1 -1
  109. package/dist/overlays/types.js +3 -3
  110. package/dist/primitives/Button.svelte +16 -16
  111. package/dist/primitives/Collapsible.svelte +11 -11
  112. package/dist/primitives/ResizableSplitter.svelte +10 -10
  113. package/dist/primitives/TabbedPanel.svelte +19 -19
  114. package/dist/primitives/base.css +57 -57
  115. package/dist/primitives/widgets/ColorSwatch.svelte +15 -15
  116. package/dist/primitives/widgets/ColorSwatch.svelte.test.js +4 -4
  117. package/dist/primitives/widgets/Field.svelte +20 -20
  118. package/dist/primitives/widgets/FilePicker.svelte +13 -13
  119. package/dist/primitives/widgets/IconPicker.svelte +14 -14
  120. package/dist/primitives/widgets/IconToggleGroup.svelte +14 -14
  121. package/dist/primitives/widgets/NumberInput.svelte +17 -17
  122. package/dist/primitives/widgets/PickerList.svelte +17 -17
  123. package/dist/primitives/widgets/RangeSlider.svelte +16 -16
  124. package/dist/primitives/widgets/Segmented.svelte +16 -16
  125. package/dist/primitives/widgets/Select.svelte +14 -14
  126. package/dist/primitives/widgets/Select.svelte.test.js +2 -2
  127. package/dist/primitives/widgets/Slider.svelte +20 -20
  128. package/dist/primitives/widgets/SliderGroup.svelte +2 -2
  129. package/dist/primitives/widgets/Textarea.svelte +13 -13
  130. package/dist/primitives/widgets/_select-listbox.svelte +15 -15
  131. package/dist/projects/session-state.svelte.js +1 -1
  132. package/dist/projects-shard/DeleteProjectDialog.svelte +12 -12
  133. package/dist/projects-shard/ProjectManage.svelte +25 -25
  134. package/dist/projects-shard/ProjectsSection.svelte +12 -12
  135. package/dist/registry/installer.d.ts +2 -2
  136. package/dist/registry/installer.js +2 -2
  137. package/dist/registry/loader.js +1 -1
  138. package/dist/registry/permission-descriptions.js +2 -2
  139. package/dist/registry/permission-descriptions.test.js +1 -1
  140. package/dist/runtime/runVerb-shell.test.js +2 -2
  141. package/dist/runtime/runVerb.js +4 -4
  142. package/dist/runtime/runVerb.test.js +4 -4
  143. package/dist/satellite/SatelliteShell.svelte +2 -2
  144. package/dist/{shell → sh3}/views/KeysAndPeers.svelte +7 -7
  145. package/dist/sh3Api/headless.d.ts +4 -0
  146. package/dist/{shell-shard/shellApi.js → sh3Api/headless.js} +5 -5
  147. package/dist/{shell-shard/shellApi.svelte.test.js → sh3Api/headless.svelte.test.js} +11 -11
  148. package/dist/{shellApi → sh3Api}/window.js +2 -2
  149. package/dist/{shellApi → sh3Api}/window.test.js +1 -1
  150. package/dist/{shellRuntime.svelte.d.ts → sh3Runtime.svelte.d.ts} +11 -11
  151. package/dist/{shellRuntime.svelte.js → sh3Runtime.svelte.js} +10 -10
  152. package/dist/sh3Runtime.svelte.test.d.ts +1 -0
  153. package/dist/{shellRuntime.svelte.test.js → sh3Runtime.svelte.test.js} +10 -10
  154. package/dist/sh3core-shard/AppInfoView.svelte +19 -19
  155. package/dist/sh3core-shard/{ShellHome.svelte → Sh3Home.svelte} +82 -82
  156. package/dist/sh3core-shard/Sh3Home.svelte.d.ts +3 -0
  157. package/dist/sh3core-shard/{ShellTitle.svelte → Sh3Title.svelte} +11 -11
  158. package/dist/sh3core-shard/Sh3Title.svelte.d.ts +3 -0
  159. package/dist/sh3core-shard/appActions.js +3 -3
  160. package/dist/sh3core-shard/sh3coreShard.svelte.js +7 -7
  161. package/dist/shards/activate.svelte.d.ts +1 -1
  162. package/dist/shards/activate.svelte.js +6 -6
  163. package/dist/shards/types.d.ts +5 -5
  164. package/dist/shards/types.js +2 -2
  165. package/dist/shell-shard/CommandLine.svelte +7 -7
  166. package/dist/shell-shard/InputLine.svelte +3 -3
  167. package/dist/shell-shard/ScrollbackView.svelte +2 -2
  168. package/dist/shell-shard/Terminal.svelte +5 -5
  169. package/dist/shell-shard/Terminal.svelte.d.ts +2 -2
  170. package/dist/shell-shard/dispatch-custom.test.js +2 -2
  171. package/dist/shell-shard/dispatch-gating.test.js +2 -2
  172. package/dist/shell-shard/dispatch-invoke.test.js +2 -2
  173. package/dist/shell-shard/dispatch-to-terminal.js +1 -1
  174. package/dist/shell-shard/dispatch.d.ts +2 -2
  175. package/dist/shell-shard/dispatch.js +2 -2
  176. package/dist/shell-shard/entries/PromptEntry.svelte +4 -4
  177. package/dist/shell-shard/entries/StatusEntry.svelte +4 -4
  178. package/dist/shell-shard/entries/TextEntry.svelte +3 -3
  179. package/dist/shell-shard/locateSlot.test.js +9 -9
  180. package/dist/shell-shard/manifest.js +2 -2
  181. package/dist/shell-shard/registry.d.ts +2 -2
  182. package/dist/shell-shard/rich/AppCard.svelte +1 -1
  183. package/dist/shell-shard/rich/AppsTable.svelte +1 -1
  184. package/dist/shell-shard/rich/HelpTable.svelte +1 -1
  185. package/dist/shell-shard/rich/HistoryList.svelte +1 -1
  186. package/dist/shell-shard/rich/ViewsTable.svelte +1 -1
  187. package/dist/shell-shard/rich/ZoneTree.svelte +2 -2
  188. package/dist/shell-shard/shellShard.svelte.d.ts +1 -1
  189. package/dist/shell-shard/shellShard.svelte.js +8 -8
  190. package/dist/shell-shard/terminal-dispatch.test.js +2 -2
  191. package/dist/shell-shard/toolbar/Toolbar.svelte +4 -4
  192. package/dist/shell-shard/toolbar/Toolbar.svelte.d.ts +2 -2
  193. package/dist/shell-shard/toolbar/slots/BusySlot.svelte +2 -2
  194. package/dist/shell-shard/toolbar/slots/FocusLockSlot.svelte +2 -2
  195. package/dist/shell-shard/toolbar/slots/ModeSlot.svelte +1 -1
  196. package/dist/shell-shard/toolbar/slots/TargetShardSlot.svelte +1 -1
  197. package/dist/shell-shard/toolbar/slots.d.ts +3 -3
  198. package/dist/shell-shard/verbs/apps.js +3 -3
  199. package/dist/shell-shard/verbs/help.js +1 -1
  200. package/dist/shell-shard/verbs/help.svelte.test.js +1 -1
  201. package/dist/shell-shard/verbs/history.js +1 -1
  202. package/dist/shell-shard/verbs/mode.js +2 -2
  203. package/dist/shell-shard/verbs/mode.test.js +2 -2
  204. package/dist/shell-shard/verbs/shards.js +1 -1
  205. package/dist/shell-shard/verbs/views.js +8 -8
  206. package/dist/shell-shard/verbs/zones.js +2 -2
  207. package/dist/state/zones.svelte.d.ts +2 -2
  208. package/dist/state/zones.svelte.js +4 -4
  209. package/dist/theme.d.ts +3 -3
  210. package/dist/theme.js +5 -5
  211. package/dist/tokens.css +68 -68
  212. package/dist/verbs/types.d.ts +5 -5
  213. package/dist/verbs/types.js +1 -1
  214. package/dist/version.d.ts +1 -1
  215. package/dist/version.js +1 -1
  216. package/package.json +1 -1
  217. package/dist/Shell.svelte.d.ts +0 -5
  218. package/dist/sh3core-shard/ShellHome.svelte.d.ts +0 -3
  219. package/dist/sh3core-shard/ShellTitle.svelte.d.ts +0 -3
  220. package/dist/shell-shard/shellApi.d.ts +0 -4
  221. /package/dist/actions/{shellActions.test.d.ts → sh3Actions.test.d.ts} +0 -0
  222. /package/dist/{shell-shard/shellApi.svelte.test.d.ts → build.test.d.ts} +0 -0
  223. /package/dist/color/{shell-api.d.ts → sh3-api.d.ts} +0 -0
  224. /package/dist/conflicts/{shell-api.d.ts → sh3-api.d.ts} +0 -0
  225. /package/dist/{shell → sh3}/views/KeysAndPeers.svelte.d.ts +0 -0
  226. /package/dist/{shellApi/window.test.d.ts → sh3Api/headless.svelte.test.d.ts} +0 -0
  227. /package/dist/{shellApi → sh3Api}/window.d.ts +0 -0
  228. /package/dist/{shellRuntime.svelte.test.d.ts → sh3Api/window.test.d.ts} +0 -0
@@ -134,21 +134,21 @@
134
134
  .sh3-conflict-detail {
135
135
  display: flex; flex-direction: column;
136
136
  width: min(920px, 96vw); height: min(640px, 90vh);
137
- background: var(--shell-bg, #1e1e1e);
138
- color: var(--shell-fg, #e0e0e0);
139
- border: 1px solid var(--shell-border, #444);
140
- border-radius: var(--shell-radius-md);
137
+ background: var(--sh3-bg, #1e1e1e);
138
+ color: var(--sh3-fg, #e0e0e0);
139
+ border: 1px solid var(--sh3-border, #444);
140
+ border-radius: var(--sh3-radius-md);
141
141
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
142
142
  }
143
143
  .sh3-conflict-detail-head {
144
- padding: 12px 16px; border-bottom: 1px solid var(--shell-border, #444);
144
+ padding: 12px 16px; border-bottom: 1px solid var(--sh3-border, #444);
145
145
  display: flex; justify-content: space-between; align-items: center;
146
146
  }
147
147
  .sh3-conflict-detail-head h3 { margin: 0; font-size: 1rem; font-weight: 600; }
148
- .sh3-conflict-detail-counter { color: var(--shell-fg-muted, #888); font-size: 0.8125rem; }
148
+ .sh3-conflict-detail-counter { color: var(--sh3-fg-muted, #888); font-size: 0.8125rem; }
149
149
  .sh3-conflict-detail-body { display: flex; flex: 1; min-height: 0; }
150
150
  .sh3-conflict-detail-rail {
151
- width: 240px; border-right: 1px solid var(--shell-border, #444);
151
+ width: 240px; border-right: 1px solid var(--sh3-border, #444);
152
152
  overflow-y: auto; display: flex; flex-direction: column;
153
153
  }
154
154
  .sh3-conflict-detail-rail-item {
@@ -157,42 +157,42 @@
157
157
  background: transparent; border: none; color: inherit;
158
158
  cursor: pointer; font: inherit; font-size: 0.8125rem;
159
159
  }
160
- .sh3-conflict-detail-rail-item:hover { background: var(--shell-input-bg, #2a2a2a); }
161
- .sh3-conflict-detail-rail-item.selected { background: var(--shell-input-bg, #2a2a2a); font-weight: 600; }
160
+ .sh3-conflict-detail-rail-item:hover { background: var(--sh3-input-bg, #2a2a2a); }
161
+ .sh3-conflict-detail-rail-item.selected { background: var(--sh3-input-bg, #2a2a2a); font-weight: 600; }
162
162
  .sh3-conflict-detail-rail-state { width: 1em; text-align: center; opacity: 0.7; }
163
- .sh3-conflict-detail-rail-state.resolved { color: var(--shell-success, #3a3); opacity: 1; }
164
- .sh3-conflict-detail-rail-state.skipped { color: var(--shell-fg-muted, #888); }
163
+ .sh3-conflict-detail-rail-state.resolved { color: var(--sh3-success, #3a3); opacity: 1; }
164
+ .sh3-conflict-detail-rail-state.skipped { color: var(--sh3-fg-muted, #888); }
165
165
  .sh3-conflict-detail-rail-label {
166
166
  flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
167
167
  }
168
168
  .sh3-conflict-detail-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
169
169
  .sh3-conflict-detail-branches {
170
170
  display: flex; gap: 12px; padding: 8px 16px;
171
- border-bottom: 1px solid var(--shell-border, #444);
171
+ border-bottom: 1px solid var(--sh3-border, #444);
172
172
  flex-wrap: wrap;
173
173
  }
174
174
  .sh3-conflict-detail-branch { display: flex; gap: 6px; align-items: center; font-size: 0.8125rem; }
175
175
  .sh3-conflict-detail-renderer { flex: 1; min-height: 0; overflow: auto; }
176
176
  .sh3-conflict-detail-foot {
177
- padding: 10px 16px; border-top: 1px solid var(--shell-border, #444);
177
+ padding: 10px 16px; border-top: 1px solid var(--sh3-border, #444);
178
178
  display: flex; justify-content: space-between; gap: 8px;
179
179
  }
180
180
  .sh3-conflict-detail-nav, .sh3-conflict-detail-actions { display: flex; gap: 8px; }
181
181
  .sh3-conflict-detail-nav button, .sh3-conflict-detail-actions button {
182
182
  padding: 6px 14px;
183
- background: var(--shell-input-bg, #2a2a2a);
184
- color: var(--shell-fg, #e0e0e0);
185
- border: 1px solid var(--shell-border, #444);
186
- border-radius: var(--shell-radius);
183
+ background: var(--sh3-input-bg, #2a2a2a);
184
+ color: var(--sh3-fg, #e0e0e0);
185
+ border: 1px solid var(--sh3-border, #444);
186
+ border-radius: var(--sh3-radius);
187
187
  font: inherit;
188
188
  font-size: 0.8125rem;
189
189
  cursor: pointer;
190
190
  }
191
191
  .sh3-conflict-detail-nav button:disabled { opacity: 0.5; cursor: not-allowed; }
192
192
  .sh3-conflict-detail-done {
193
- background: var(--shell-accent, #007acc) !important;
193
+ background: var(--sh3-accent, #007acc) !important;
194
194
  color: #fff !important;
195
195
  font-weight: 600;
196
- border-color: var(--shell-accent, #007acc) !important;
196
+ border-color: var(--sh3-accent, #007acc) !important;
197
197
  }
198
198
  </style>
@@ -31,25 +31,25 @@
31
31
 
32
32
  <style>
33
33
  .sh3-conflict-prompt { padding: 20px; display: flex; flex-direction: column; gap: 14px; min-width: 360px; max-width: 480px; }
34
- .sh3-conflict-prompt-title { margin: 0; font-size: 1.0625rem; font-weight: 600; color: var(--shell-fg, #e0e0e0); }
35
- .sh3-conflict-prompt-intro { margin: 0; color: var(--shell-fg-muted, #888); font-size: 0.875rem; }
34
+ .sh3-conflict-prompt-title { margin: 0; font-size: 1.0625rem; font-weight: 600; color: var(--sh3-fg, #e0e0e0); }
35
+ .sh3-conflict-prompt-intro { margin: 0; color: var(--sh3-fg-muted, #888); font-size: 0.875rem; }
36
36
  .sh3-conflict-prompt-actions { display: flex; flex-direction: column; gap: 8px; }
37
37
  .sh3-conflict-prompt-actions button {
38
38
  padding: 10px 14px;
39
- border-radius: var(--shell-radius);
40
- border: 1px solid var(--shell-border, #444);
41
- background: var(--shell-input-bg, #2a2a2a);
42
- color: var(--shell-fg, #e0e0e0);
39
+ border-radius: var(--sh3-radius);
40
+ border: 1px solid var(--sh3-border, #444);
41
+ background: var(--sh3-input-bg, #2a2a2a);
42
+ color: var(--sh3-fg, #e0e0e0);
43
43
  font-size: 0.875rem;
44
44
  font-family: inherit;
45
45
  cursor: pointer;
46
46
  text-align: left;
47
47
  }
48
48
  .sh3-conflict-prompt-primary {
49
- background: var(--shell-accent, #007acc) !important;
50
- border-color: var(--shell-accent, #007acc) !important;
49
+ background: var(--sh3-accent, #007acc) !important;
50
+ border-color: var(--sh3-accent, #007acc) !important;
51
51
  color: #fff !important;
52
52
  font-weight: 600;
53
53
  }
54
- .sh3-conflict-prompt-cancel { color: var(--shell-fg-muted, #888) !important; }
54
+ .sh3-conflict-prompt-cancel { color: var(--sh3-fg-muted, #888) !important; }
55
55
  </style>
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Doc-zone adapter for shell.conflicts.
2
+ * Doc-zone adapter for sh3.conflicts.
3
3
  *
4
4
  * Reads DocStatus for each requested path, filters to those actually in
5
5
  * conflict, fetches per-branch content for preview, and invokes the
@@ -101,7 +101,7 @@ export declare class ConflictPermissionError extends Error {
101
101
  export declare class ConflictSessionOrphanedError extends Error {
102
102
  constructor();
103
103
  }
104
- /** Runtime shape of `shell.conflicts`. */
104
+ /** Runtime shape of `sh3.conflicts`. */
105
105
  export interface ConflictsApi {
106
106
  resolve(items: ConflictItem[], opts?: ResolveOptions): Promise<ResolveOutcome>;
107
107
  resolveDocuments(ctx: ShardContext, input: ResolveDocumentsInput, opts?: ResolveOptions): Promise<DocsResolveOutcome>;
@@ -1,13 +1,13 @@
1
1
  /*
2
2
  * Public types for the conflict manager view.
3
3
  *
4
- * `shell.conflicts` exposes two entry points:
4
+ * `sh3.conflicts` exposes two entry points:
5
5
  * - resolve(items, opts): generic primitive
6
6
  * - resolveDocuments(ctx, input, opts): doc-zone adapter
7
7
  *
8
8
  * Shards construct ConflictItem arrays themselves (generic path) or pass
9
9
  * { shardId, paths } to the adapter (doc path). The doc-zone adapter
10
- * layers on top of the generic primitive — the shell does not know about
10
+ * layers on top of the generic primitive — the sh3 does not know about
11
11
  * documents; the adapter does.
12
12
  */
13
13
  /**
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Two registration surfaces:
5
5
  * - Built-in renderers (TextDiffRenderer, MetaOnlyRenderer) are
6
- * registered from within sh3-core at first `shell.conflicts` use via
6
+ * registered from within sh3-core at first `sh3.conflicts` use via
7
7
  * ensureBuiltInRenderersRegistered().
8
8
  * - Contributed renderers arrive via the ctx.contributions runtime
9
9
  * under CONFLICT_RENDERER_POINT. The conflict modal reads the
@@ -50,24 +50,24 @@
50
50
 
51
51
  <style>
52
52
  .sh3-conflict-meta { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
53
- .sh3-conflict-meta-note { color: var(--shell-fg-muted, #888); font-size: 0.875rem; font-style: italic; }
53
+ .sh3-conflict-meta-note { color: var(--sh3-fg-muted, #888); font-size: 0.875rem; font-style: italic; }
54
54
  .sh3-conflict-meta-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
55
55
  .sh3-conflict-meta-li { margin: 0; }
56
56
  .sh3-conflict-meta-row {
57
57
  width: 100%;
58
58
  text-align: left;
59
59
  padding: 10px 12px;
60
- background: var(--shell-input-bg, #2a2a2a);
61
- color: var(--shell-fg, #e0e0e0);
62
- border: 1px solid var(--shell-border, #444);
63
- border-radius: var(--shell-radius-sm);
60
+ background: var(--sh3-input-bg, #2a2a2a);
61
+ color: var(--sh3-fg, #e0e0e0);
62
+ border: 1px solid var(--sh3-border, #444);
63
+ border-radius: var(--sh3-radius-sm);
64
64
  cursor: pointer;
65
65
  font: inherit;
66
66
  }
67
67
  .sh3-conflict-meta-row.selected {
68
- border-color: var(--shell-accent, #007acc);
69
- box-shadow: 0 0 0 2px var(--shell-focus-ring, rgba(0,122,204,0.3));
68
+ border-color: var(--sh3-accent, #007acc);
69
+ box-shadow: 0 0 0 2px var(--sh3-focus-ring, rgba(0,122,204,0.3));
70
70
  }
71
71
  .sh3-conflict-meta-origin { font-weight: 600; font-size: 0.875rem; }
72
- .sh3-conflict-meta-detail { color: var(--shell-fg-muted, #888); font-size: 0.75rem; margin-top: 2px; }
72
+ .sh3-conflict-meta-detail { color: var(--sh3-fg-muted, #888); font-size: 0.75rem; margin-top: 2px; }
73
73
  </style>
@@ -121,34 +121,34 @@
121
121
  .sh3-conflict-text-dual { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; min-height: 0; flex: 1; }
122
122
  .sh3-conflict-text-pane {
123
123
  display: flex; flex-direction: column; min-height: 0;
124
- border: 1px solid var(--shell-border, #444);
125
- border-radius: var(--shell-radius-sm);
126
- background: var(--shell-input-bg, #2a2a2a);
124
+ border: 1px solid var(--sh3-border, #444);
125
+ border-radius: var(--sh3-radius-sm);
126
+ background: var(--sh3-input-bg, #2a2a2a);
127
127
  cursor: pointer;
128
128
  }
129
129
  .sh3-conflict-text-pane.selected {
130
- border-color: var(--shell-accent, #007acc);
131
- box-shadow: 0 0 0 2px var(--shell-focus-ring, rgba(0,122,204,0.3));
130
+ border-color: var(--sh3-accent, #007acc);
131
+ box-shadow: 0 0 0 2px var(--sh3-focus-ring, rgba(0,122,204,0.3));
132
132
  }
133
- .sh3-conflict-text-head { padding: 6px 10px; font-size: 0.75rem; color: var(--shell-fg-muted, #888); border-bottom: 1px solid var(--shell-border, #444); }
133
+ .sh3-conflict-text-head { padding: 6px 10px; font-size: 0.75rem; color: var(--sh3-fg-muted, #888); border-bottom: 1px solid var(--sh3-border, #444); }
134
134
  .sh3-conflict-text-body {
135
135
  margin: 0; padding: 10px; flex: 1; overflow: auto;
136
- font-family: var(--shell-font-mono, monospace); font-size: 0.8125rem;
136
+ font-family: var(--sh3-font-mono, monospace); font-size: 0.8125rem;
137
137
  }
138
138
  .sh3-conflict-text-diff { margin-top: 8px; }
139
- .sh3-conflict-text-diff pre { background: var(--shell-input-bg, #2a2a2a); padding: 8px; overflow: auto; max-height: 240px; }
140
- :global(.diff-left) { color: var(--shell-error, #e35); }
141
- :global(.diff-right) { color: var(--shell-success, #3a3); }
139
+ .sh3-conflict-text-diff pre { background: var(--sh3-input-bg, #2a2a2a); padding: 8px; overflow: auto; max-height: 240px; }
140
+ :global(.diff-left) { color: var(--sh3-error, #e35); }
141
+ :global(.diff-right) { color: var(--sh3-success, #3a3); }
142
142
  :global(.diff-same) { opacity: 0.7; }
143
143
  .sh3-conflict-text-tabs { display: flex; flex-direction: column; gap: 8px; min-height: 0; flex: 1; }
144
144
  .sh3-conflict-text-picker select {
145
- background: var(--shell-input-bg, #2a2a2a); color: var(--shell-fg, #e0e0e0);
146
- border: 1px solid var(--shell-border, #444); padding: 2px 6px;
145
+ background: var(--sh3-input-bg, #2a2a2a); color: var(--sh3-fg, #e0e0e0);
146
+ border: 1px solid var(--sh3-border, #444); padding: 2px 6px;
147
147
  }
148
148
  .sh3-conflict-text-tablist { display: flex; gap: 4px; flex-wrap: wrap; }
149
149
  .sh3-conflict-text-tab {
150
- padding: 4px 10px; background: var(--shell-input-bg, #2a2a2a); border: 1px solid var(--shell-border, #444);
151
- border-radius: var(--shell-radius-sm); color: var(--shell-fg, #e0e0e0); cursor: pointer; font-size: 0.8125rem;
150
+ padding: 4px 10px; background: var(--sh3-input-bg, #2a2a2a); border: 1px solid var(--sh3-border, #444);
151
+ border-radius: var(--sh3-radius-sm); color: var(--sh3-fg, #e0e0e0); cursor: pointer; font-size: 0.8125rem;
152
152
  }
153
- .sh3-conflict-text-tab.selected { border-color: var(--shell-accent, #007acc); }
153
+ .sh3-conflict-text-tab.selected { border-color: var(--sh3-accent, #007acc); }
154
154
  </style>
@@ -10,7 +10,7 @@
10
10
  * selectedOrigin state and updates via the onSelect callback.
11
11
  *
12
12
  * ensureBuiltInRenderersRegistered() is idempotent; it's called from
13
- * shell-api.ts on the first shell.conflicts use.
13
+ * sh3-api.ts on the first sh3.conflicts use.
14
14
  */
15
15
  import { mount, unmount } from 'svelte';
16
16
  import { inferKind, registerBuiltInRenderer } from '../renderer-registry';
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Generic conflict-resolve primitive — the modal machinery without the
3
3
  * doc-zone adapter. Lives in its own file so `adapter-documents.ts` can
4
- * import it statically without creating a cycle with the shell runtime.
4
+ * import it statically without creating a cycle with the sh3 runtime.
5
5
  */
6
6
  import { modalManager } from '../overlays/modal';
7
7
  import { list as listContributions } from '../contributions/registry';
@@ -1,9 +1,9 @@
1
1
  /*
2
- * shell.conflicts assembled API.
2
+ * sh3.conflicts assembled API.
3
3
  *
4
4
  * The generic primitive lives in resolve-primitive.ts and the doc-zone
5
5
  * adapter in adapter-documents.ts; this file just binds them together
6
- * as the object exposed on the shell singleton.
6
+ * as the object exposed on the sh3 singleton.
7
7
  */
8
8
  import { resolvePrimitive } from './resolve-primitive';
9
9
  import { resolveDocuments } from './adapter-documents';
@@ -6,7 +6,7 @@
6
6
  * Emitters are a Set of zero-arg callbacks; subscribers re-read `list`
7
7
  * themselves when notified.
8
8
  *
9
- * No tenant partitioning: the shell is single-tenant per session; a
9
+ * No tenant partitioning: the sh3 is single-tenant per session; a
10
10
  * future multi-tenant client would add a tenant dimension to the
11
11
  * outer map (see direction spec §5.2).
12
12
  */
@@ -1,5 +1,5 @@
1
1
  import type { Shard, App } from './index';
2
- export interface ShellConfig {
2
+ export interface Sh3Config {
3
3
  /** Framework shard IDs to exclude (all included by default) */
4
4
  excludeShards?: string[];
5
5
  /** Additional shards to register */
@@ -23,4 +23,4 @@ export interface ShellConfig {
23
23
  /** Server base URL ('' for same-origin) */
24
24
  serverUrl?: string;
25
25
  }
26
- export declare function createShell(config?: ShellConfig): Promise<void>;
26
+ export declare function createShell(config?: Sh3Config): Promise<void>;
@@ -1,13 +1,13 @@
1
1
  /*
2
- * createShell — public factory for booting an SH3 shell.
2
+ * createShell — public factory for booting an SH3 sh3.
3
3
  *
4
4
  * Consumers call this from their own main.ts instead of manually
5
- * importing registerShard / registerApp / bootstrap / Shell. The
5
+ * importing registerShard / registerApp / bootstrap / Sh3. The
6
6
  * factory handles platform detection, boot config, auth gating,
7
7
  * registration, bootstrap, and mounting in the correct order.
8
8
  */
9
9
  import { mount, unmount } from 'svelte';
10
- import { Shell } from './index';
10
+ import { Sh3 } from './index';
11
11
  import { registerShard, registerApp, bootstrap, bootstrapSatellite, __setBackend, setLocalOwner, } from './host';
12
12
  import { resolvePlatform } from './platform/index';
13
13
  import { hydrateTokenOverrides } from './theme';
@@ -35,7 +35,7 @@ export async function createShell(config) {
35
35
  }
36
36
  __setEnvServerUrl(sUrl);
37
37
  hydrateTokenOverrides();
38
- // 2. Resolve mount target early (needed for both sign-in wall and shell)
38
+ // 2. Resolve mount target early (needed for both sign-in wall and sh3)
39
39
  const target = typeof (config === null || config === void 0 ? void 0 : config.target) === 'string'
40
40
  ? document.querySelector(config.target)
41
41
  : (_b = config === null || config === void 0 ? void 0 : config.target) !== null && _b !== void 0 ? _b : document.getElementById('app');
@@ -130,8 +130,8 @@ export async function createShell(config) {
130
130
  await bootstrap(bootstrapConfig);
131
131
  // 8. Attach document-level keyboard / focus listeners
132
132
  attachGlobalListeners();
133
- // 9. Mount the shell
134
- mount(Shell, { target });
133
+ // 9. Mount the sh3
134
+ mount(Sh3, { target });
135
135
  }
136
136
  /**
137
137
  * Fetch and register every package the server reported via /api/packages.
@@ -10,4 +10,4 @@ export type { InstalledPackage, InstallResult, PackageMeta } from './registry/ty
10
10
  export { initFromBoot, login, logout, register, setLocalOwner as setLocalOwnerAuth } from './auth/index';
11
11
  export type { AuthUser, AuthSession, BootConfig, GlobalSettings } from './auth/types';
12
12
  export { createShell } from './createShell';
13
- export type { ShellConfig } from './createShell';
13
+ export type { Sh3Config } from './createShell';
@@ -2,7 +2,7 @@
2
2
  * Host-process entry for the `sh3-core` package.
3
3
  *
4
4
  * This file is what `import ... from 'sh3-core/host'` resolves to. Only code that
5
- * boots an SH3 shell (a main.ts that mounts Shell and registers shards/apps)
5
+ * boots an SH3 sh3 (a main.ts that mounts Sh3 and registers shards/apps)
6
6
  * should touch this path. Shards and apps must not import from here.
7
7
  */
8
8
  export { registerShard, registerApp, bootstrap, __setBackend, setLocalOwner } from './host';
@@ -13,5 +13,5 @@ export { __setEnvServerUrl } from './env/index';
13
13
  export { installPackage, uninstallPackage, listInstalledPackages, loadInstalledPackages, } from './registry/index';
14
14
  // Auth (host-only — session lifecycle, boot initialization).
15
15
  export { initFromBoot, login, logout, register, setLocalOwner as setLocalOwnerAuth } from './auth/index';
16
- // Shell boot factory.
16
+ // Sh3 boot factory.
17
17
  export { createShell } from './createShell';
package/dist/host.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * framework-owned shards and apps (filtering any the host excludes via
10
10
  * BootstrapConfig), walks the registered-shards map and activates every
11
11
  * self-starting shard, then reads the last-app user-zone entry and
12
- * either launches that app or leaves the shell on home.
12
+ * either launches that app or leaves the sh3 on home.
13
13
  *
14
14
  * This file is intentionally NOT re-exported through `api.ts`. The
15
15
  * import-hygiene rule is: shards and apps import from `api.ts`, the host
@@ -95,7 +95,7 @@ export async function bootstrap(config) {
95
95
  }
96
96
  catch (_a) {
97
97
  // Already logged + recorded in erroredShards by activateShard.
98
- // One bad self-starting shard must not prevent the shell from booting.
98
+ // One bad self-starting shard must not prevent the sh3 from booting.
99
99
  }
100
100
  }
101
101
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './api';
2
- export { default as Shell } from './Shell.svelte';
2
+ export { default as Sh3 } from './Sh3.svelte';
3
3
  export type { ArtifactManifest } from './artifact';
4
4
  export * from './shell-shard/protocol';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Main public entry for the `sh3-core` package.
3
3
  *
4
4
  * This file is what `import ... from 'sh3-core'` resolves to. It re-exports the
5
- * phase 8 public surface (api.ts) plus the Shell host component. Shard and
5
+ * phase 8 public surface (api.ts) plus the Sh3 host component. Shard and
6
6
  * app authors import from here.
7
7
  *
8
8
  * Host-process functions (registerShard, registerApp, bootstrap) are
@@ -10,5 +10,5 @@
10
10
  * and apps must not register each other. See host-entry.ts.
11
11
  */
12
12
  export * from './api';
13
- export { default as Shell } from './Shell.svelte';
13
+ export { default as Sh3 } from './Sh3.svelte';
14
14
  export * from './shell-shard/protocol';
@@ -1,8 +1,8 @@
1
1
  <!--
2
- Shell-owned consent dialog. Listens for consent requests and routes the
2
+ Sh3-owned consent dialog. Listens for consent requests and routes the
3
3
  user's Approve/Deny back into the runtime via resolveConsent().
4
4
 
5
- Mounted once by the shell at boot; never by shards.
5
+ Mounted once by the sh3 at boot; never by shards.
6
6
 
7
7
  Security: all shard-provided strings (shardId, label, scope, peerId)
8
8
  are rendered as plain text via Svelte's default interpolation — no @html.
@@ -76,9 +76,9 @@
76
76
  }
77
77
 
78
78
  .sh3-consent-card {
79
- background: var(--shell-bg-elevated, #222);
80
- color: var(--shell-fg, #eee);
81
- border: 1px solid var(--shell-border, #444);
79
+ background: var(--sh3-bg-elevated, #222);
80
+ color: var(--sh3-fg, #eee);
81
+ border: 1px solid var(--sh3-border, #444);
82
82
  padding: 1.5rem;
83
83
  border-radius: 8px;
84
84
  min-width: 360px;
@@ -90,11 +90,11 @@
90
90
  margin: 0 0 1rem;
91
91
  font-size: 1rem;
92
92
  font-weight: 600;
93
- color: var(--shell-fg, #eee);
93
+ color: var(--sh3-fg, #eee);
94
94
  }
95
95
 
96
96
  .sh3-consent-title span {
97
- color: var(--shell-accent, #7eb8f7);
97
+ color: var(--sh3-accent, #7eb8f7);
98
98
  }
99
99
 
100
100
  .sh3-consent-fields {
@@ -108,7 +108,7 @@
108
108
 
109
109
  .sh3-consent-fields dt {
110
110
  font-weight: 600;
111
- color: var(--shell-fg-muted, #aaa);
111
+ color: var(--sh3-fg-muted, #aaa);
112
112
  font-size: 0.8rem;
113
113
  text-transform: uppercase;
114
114
  letter-spacing: 0.05em;
@@ -134,7 +134,7 @@
134
134
  border: 1px solid rgba(255, 255, 255, 0.12);
135
135
  border-radius: 3px;
136
136
  font-size: 0.82em;
137
- font-family: var(--shell-font-mono, monospace);
137
+ font-family: var(--sh3-font-mono, monospace);
138
138
  }
139
139
 
140
140
  .sh3-consent-actions {
@@ -156,19 +156,19 @@
156
156
 
157
157
  .sh3-consent-deny {
158
158
  background: transparent;
159
- color: var(--shell-fg-muted, #aaa);
160
- border-color: var(--shell-border, #444);
159
+ color: var(--sh3-fg-muted, #aaa);
160
+ border-color: var(--sh3-border, #444);
161
161
  }
162
162
 
163
163
  .sh3-consent-deny:hover {
164
- color: var(--shell-fg, #eee);
165
- border-color: var(--shell-fg-muted, #aaa);
164
+ color: var(--sh3-fg, #eee);
165
+ border-color: var(--sh3-fg-muted, #aaa);
166
166
  }
167
167
 
168
168
  .sh3-consent-approve {
169
- background: var(--shell-accent, #7eb8f7);
169
+ background: var(--sh3-accent, #7eb8f7);
170
170
  color: #000;
171
- border-color: var(--shell-accent, #7eb8f7);
171
+ border-color: var(--sh3-accent, #7eb8f7);
172
172
  }
173
173
 
174
174
  .sh3-consent-approve:hover {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Shell-owned consent runtime — only place that can approve or deny a mint.
2
+ * Sh3-owned consent runtime — only place that can approve or deny a mint.
3
3
  *
4
- * The client shard calls requestConsent(); the shell shows ConsentDialog.svelte
4
+ * The client shard calls requestConsent(); the sh3 shows ConsentDialog.svelte
5
5
  * and calls resolveConsent(...) on user action.
6
6
  */
7
7
  import type { MintOpts } from './types';
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Shell-owned consent runtime — only place that can approve or deny a mint.
2
+ * Sh3-owned consent runtime — only place that can approve or deny a mint.
3
3
  *
4
- * The client shard calls requestConsent(); the shell shows ConsentDialog.svelte
4
+ * The client shard calls requestConsent(); the sh3 shows ConsentDialog.svelte
5
5
  * and calls resolveConsent(...) on user action.
6
6
  */
7
7
  const pending = new Map();
@@ -13,7 +13,7 @@ export function registerConsentListener(fn) {
13
13
  }
14
14
  export async function requestConsent(shardId, opts) {
15
15
  if (!listener)
16
- throw new Error('No consent listener registered — the shell must mount ConsentDialog.');
16
+ throw new Error('No consent listener registered — the sh3 must mount ConsentDialog.');
17
17
  const requestId = `c_${Math.random().toString(36).slice(2)}${Date.now()}`;
18
18
  return new Promise((resolve) => {
19
19
  pending.set(requestId, { resolve });
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Notifies active shards when one of their minted keys is revoked —
3
- * regardless of whether the revocation was initiated by the shell UI,
3
+ * regardless of whether the revocation was initiated by the sh3 UI,
4
4
  * the shard itself, or another tab.
5
5
  *
6
6
  * The bus is populated by a server-sent events stream on /api/keys/events
7
- * (wired by the shell runtime at boot) and/or by local revoke() calls.
7
+ * (wired by the sh3 runtime at boot) and/or by local revoke() calls.
8
8
  */
9
9
  type Handler = (keyId: string) => void;
10
10
  /**
@@ -26,7 +26,7 @@ export declare function emit(shardId: string | null, keyId: string): void;
26
26
  * Open a server-sent events stream at /api/keys/events and forward
27
27
  * revocation events into the local bus.
28
28
  *
29
- * Should be called once at shell boot. Returns a cleanup function that
29
+ * Should be called once at sh3 boot. Returns a cleanup function that
30
30
  * closes the EventSource.
31
31
  *
32
32
  * No-op in environments without EventSource (e.g. Node test runner).
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Notifies active shards when one of their minted keys is revoked —
3
- * regardless of whether the revocation was initiated by the shell UI,
3
+ * regardless of whether the revocation was initiated by the sh3 UI,
4
4
  * the shard itself, or another tab.
5
5
  *
6
6
  * The bus is populated by a server-sent events stream on /api/keys/events
7
- * (wired by the shell runtime at boot) and/or by local revoke() calls.
7
+ * (wired by the sh3 runtime at boot) and/or by local revoke() calls.
8
8
  */
9
9
  const handlersByShard = new Map();
10
10
  /**
@@ -70,7 +70,7 @@ export function emit(shardId, keyId) {
70
70
  * Open a server-sent events stream at /api/keys/events and forward
71
71
  * revocation events into the local bus.
72
72
  *
73
- * Should be called once at shell boot. Returns a cleanup function that
73
+ * Should be called once at sh3 boot. Returns a cleanup function that
74
74
  * closes the EventSource.
75
75
  *
76
76
  * No-op in environments without EventSource (e.g. Node test runner).
@@ -44,19 +44,19 @@
44
44
  position: absolute;
45
45
  display: inline-flex;
46
46
  align-items: center;
47
- gap: var(--shell-pad-sm);
48
- padding: var(--shell-pad-sm) var(--shell-pad-md);
49
- background: var(--shell-grad-bg-elevated, var(--shell-bg-elevated));
50
- color: var(--shell-fg);
51
- border: 1px solid var(--shell-accent);
52
- border-radius: var(--shell-radius-sm);
47
+ gap: var(--sh3-pad-sm);
48
+ padding: var(--sh3-pad-sm) var(--sh3-pad-md);
49
+ background: var(--sh3-grad-bg-elevated, var(--sh3-bg-elevated));
50
+ color: var(--sh3-fg);
51
+ border: 1px solid var(--sh3-accent);
52
+ border-radius: var(--sh3-radius-sm);
53
53
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
54
54
  font-size: 12px;
55
- font-family: var(--shell-font-ui);
55
+ font-family: var(--sh3-font-ui);
56
56
  pointer-events: none;
57
57
  opacity: 0.9;
58
- /* The layer root inherits its z-index from --shell-z-layer-2 via
59
- Shell.svelte; we don't set z-index here. */
58
+ /* The layer root inherits its z-index from --sh3-z-layer-2 via
59
+ Sh3.svelte; we don't set z-index here. */
60
60
  }
61
61
  .drag-preview-icon { font-size: 11px; }
62
62
  .drag-preview-label { white-space: nowrap; }
@@ -23,9 +23,9 @@ function stubView() {
23
23
  function settle(ms = 50) {
24
24
  return new Promise((r) => setTimeout(r, ms));
25
25
  }
26
- /** Remove all shell host elements from the body (cleanup between tests). */
26
+ /** Remove all sh3 host elements from the body (cleanup between tests). */
27
27
  function cleanupDOM() {
28
- const hosts = document.querySelectorAll('.sh3-shell-host');
28
+ const hosts = document.querySelectorAll('.sh3-sh3-host');
29
29
  hosts.forEach((h) => h.remove());
30
30
  }
31
31
  // ---------------------------------------------------------------------------
@@ -258,15 +258,15 @@
258
258
  flex-direction: column;
259
259
  align-items: center;
260
260
  justify-content: center;
261
- color: var(--shell-fg-muted);
261
+ color: var(--sh3-fg-muted);
262
262
  font-size: 12px;
263
263
  background:
264
264
  repeating-linear-gradient(
265
265
  45deg,
266
- var(--shell-bg) 0 10px,
267
- var(--shell-bg-elevated) 10px 20px
266
+ var(--sh3-bg) 0 10px,
267
+ var(--sh3-bg-elevated) 10px 20px
268
268
  );
269
- border: 1px dashed var(--shell-border-strong);
269
+ border: 1px dashed var(--sh3-border-strong);
270
270
  }
271
271
  .empty-tabs-custom {
272
272
  position: absolute;