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
@@ -129,32 +129,32 @@
129
129
  flex-direction: column;
130
130
  align-items: center;
131
131
  justify-content: center;
132
- gap: var(--shell-pad-sm);
133
- color: var(--shell-fg-muted);
132
+ gap: var(--sh3-pad-sm);
133
+ color: var(--sh3-fg-muted);
134
134
  font-size: 12px;
135
135
  text-align: center;
136
- padding: var(--shell-pad-md);
136
+ padding: var(--sh3-pad-md);
137
137
  background:
138
138
  repeating-linear-gradient(
139
139
  45deg,
140
- var(--shell-bg) 0 10px,
141
- var(--shell-bg-elevated) 10px 20px
140
+ var(--sh3-bg) 0 10px,
141
+ var(--sh3-bg-elevated) 10px 20px
142
142
  );
143
- border: 1px dashed var(--shell-border-strong);
143
+ border: 1px dashed var(--sh3-border-strong);
144
144
  pointer-events: none;
145
145
  }
146
146
  .slot-id {
147
- color: var(--shell-fg);
148
- font-family: var(--shell-font-mono);
147
+ color: var(--sh3-fg);
148
+ font-family: var(--sh3-font-mono);
149
149
  font-size: 13px;
150
150
  }
151
151
  .slot-meta code {
152
- font-family: var(--shell-font-mono);
153
- color: var(--shell-accent);
152
+ font-family: var(--sh3-font-mono);
153
+ color: var(--sh3-accent);
154
154
  }
155
155
  .slot-dims {
156
- font-family: var(--shell-font-mono);
157
- color: var(--shell-fg-subtle);
156
+ font-family: var(--sh3-font-mono);
157
+ color: var(--sh3-fg-subtle);
158
158
  font-size: 11px;
159
159
  }
160
160
  </style>
@@ -153,9 +153,9 @@
153
153
  }
154
154
  .quad-highlight {
155
155
  position: absolute;
156
- background: var(--shell-accent);
156
+ background: var(--sh3-accent);
157
157
  opacity: 0.18;
158
- border: 1px dashed var(--shell-accent);
158
+ border: 1px dashed var(--sh3-accent);
159
159
  pointer-events: none;
160
160
  transition: inset 80ms ease;
161
161
  }
@@ -69,7 +69,7 @@ export declare function popoutView(slotId: string): string | null;
69
69
  export declare function dockFloat(floatId: string): boolean;
70
70
  /**
71
71
  * Dock a view into the currently-rendered layout without caring which
72
- * root it is. Used by the Ctrl+` shell hotkey and other "just put it
72
+ * root it is. Used by the Ctrl+` sh3 hotkey and other "just put it
73
73
  * somewhere sensible" callers. Policy:
74
74
  *
75
75
  * 1. If a tab with the same `viewId` already exists, focus it and
@@ -274,7 +274,7 @@ function findFirstSlotPath(node, path = []) {
274
274
  }
275
275
  /**
276
276
  * Dock a view into the currently-rendered layout without caring which
277
- * root it is. Used by the Ctrl+` shell hotkey and other "just put it
277
+ * root it is. Used by the Ctrl+` sh3 hotkey and other "just put it
278
278
  * somewhere sensible" callers. Policy:
279
279
  *
280
280
  * 1. If a tab with the same `viewId` already exists, focus it and
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Layout manager — owns both the framework-constant shell home layout
2
+ * Layout manager — owns both the framework-constant sh3 home layout
3
3
  * and the currently-active app's persisted layout, and swaps between
4
4
  * them without tearing down the held tree.
5
5
  *
@@ -24,7 +24,7 @@
24
24
  * entirely (there is no "held home while rendering app" state).
25
25
  *
26
26
  * Orphan cleanup:
27
- * The pre-phase-8 shell wrote to `sh3:workspace:__shell__`. Phase 8
27
+ * The pre-phase-8 sh3 wrote to `sh3:workspace:__shell__`. Phase 8
28
28
  * switches to per-app keys; the old entry would otherwise sit as dead
29
29
  * data. On first load after upgrade, the manager clears that orphan
30
30
  * unconditionally (clearing a non-existent entry is a no-op).
@@ -35,7 +35,7 @@ import { normalizeInitialLayout } from './presets';
35
35
  import { collectTreeSlotRefs } from './tree-walk';
36
36
  import { bindPresetBlob, unbindPresetBlob } from '../overlays/presets';
37
37
  import { getRegisteredApp } from '../apps/registry.svelte';
38
- // ---------- orphan cleanup of pre-phase-8 shell layout key ----------------
38
+ // ---------- orphan cleanup of pre-phase-8 sh3 layout key ----------------
39
39
  // Legacy pre-phase-8 orphan cleanup. The literal '__shell__' here is
40
40
  // intentional — it clears data written under the old reserved id before
41
41
  // this shard was restructured. Do not replace with '__sh3core__'.
@@ -190,7 +190,7 @@ export type TreeRootRef = {
190
190
  export declare const LAYOUT_SCHEMA_VERSION = 4;
191
191
  /**
192
192
  * The wire shape of a persisted layout in the workspace state zone.
193
- * One blob per shell (or per program, once per-program layouts exist);
193
+ * One blob per sh3 (or per program, once per-program layouts exist);
194
194
  * the version field gates compatibility.
195
195
  */
196
196
  export interface PersistedLayout {
@@ -100,46 +100,46 @@
100
100
  .layout-save {
101
101
  padding: 16px 20px;
102
102
  max-width: 460px;
103
- color: var(--shell-fg);
104
- background: var(--shell-bg);
103
+ color: var(--sh3-fg);
104
+ background: var(--sh3-bg);
105
105
  font: inherit;
106
106
  }
107
107
  h2 { margin: 0 0 12px; font-size: 16px; }
108
108
  .row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; font-size: 13px; }
109
- .row span { color: var(--shell-fg-muted); }
109
+ .row span { color: var(--sh3-fg-muted); }
110
110
  .name-input {
111
- background: var(--shell-bg-elevated);
112
- color: var(--shell-fg);
113
- border: 1px solid var(--shell-border);
114
- border-radius: var(--shell-radius-sm, 3px);
111
+ background: var(--sh3-bg-elevated);
112
+ color: var(--sh3-fg);
113
+ border: 1px solid var(--sh3-border);
114
+ border-radius: var(--sh3-radius-sm, 3px);
115
115
  padding: 6px 8px; font: inherit; font-size: 13px;
116
116
  }
117
117
  .preview { margin: 4px 0 12px; }
118
- .preview-label { font-size: 12px; color: var(--shell-fg-muted); margin-bottom: 4px; }
118
+ .preview-label { font-size: 12px; color: var(--sh3-fg-muted); margin-bottom: 4px; }
119
119
  .preview-list {
120
120
  list-style: none; padding: 0; margin: 0;
121
121
  font-size: 12px; max-height: 160px; overflow: auto;
122
- border: 1px solid var(--shell-border);
123
- border-radius: var(--shell-radius-sm, 3px);
124
- background: var(--shell-bg-elevated);
122
+ border: 1px solid var(--sh3-border);
123
+ border-radius: var(--sh3-radius-sm, 3px);
124
+ background: var(--sh3-bg-elevated);
125
125
  }
126
- .preview-list li { padding: 4px 8px; border-bottom: 1px solid var(--shell-border); }
126
+ .preview-list li { padding: 4px 8px; border-bottom: 1px solid var(--sh3-border); }
127
127
  .preview-list li:last-child { border-bottom: 0; }
128
- .muted { color: var(--shell-fg-muted); }
128
+ .muted { color: var(--sh3-fg-muted); }
129
129
  .error {
130
- color: var(--shell-fg-muted);
130
+ color: var(--sh3-fg-muted);
131
131
  font-style: italic;
132
132
  margin: 4px 0 12px;
133
133
  }
134
134
  .actions { display: flex; gap: 8px; margin-top: 8px; }
135
135
  .actions button {
136
- background: var(--shell-bg-elevated);
137
- color: var(--shell-fg);
138
- border: 1px solid var(--shell-border);
139
- border-radius: var(--shell-radius-sm, 3px);
136
+ background: var(--sh3-bg-elevated);
137
+ color: var(--sh3-fg);
138
+ border: 1px solid var(--sh3-border);
139
+ border-radius: var(--sh3-radius-sm, 3px);
140
140
  padding: 6px 14px; font: inherit; cursor: pointer;
141
141
  }
142
- .actions button.primary { background: var(--shell-accent); color: #fff; border-color: var(--shell-accent); }
143
- .actions button:hover { border-color: var(--shell-accent); }
142
+ .actions button.primary { background: var(--sh3-accent); color: #fff; border-color: var(--sh3-accent); }
143
+ .actions button:hover { border-color: var(--sh3-accent); }
144
144
  .actions button:disabled { opacity: 0.5; cursor: not-allowed; }
145
145
  </style>
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  /*
3
- * Saved-layouts section for ShellHome. Renders one card per SavedLayout.
3
+ * Saved-layouts section for Sh3Home. Renders one card per SavedLayout.
4
4
  * Click → restoreToFloat. Right-click sets a typed selection so card
5
5
  * actions (Customize, Delete) can recover the layoutId.
6
6
  */
@@ -9,7 +9,7 @@
9
9
  import { restoreToFloat } from './layoutsApi';
10
10
  import { listStandaloneViews } from '../shards/activate.svelte';
11
11
  import { toastManager } from '../overlays/toast';
12
- import { shell } from '../shellRuntime.svelte';
12
+ import { sh3 } from '../sh3Runtime.svelte';
13
13
  import { makeSelectionApi } from '../actions/selection.svelte';
14
14
  import iconsUrl from '../assets/icons.svg';
15
15
 
@@ -32,7 +32,7 @@
32
32
  function openCardContextMenu(event: MouseEvent, layoutId: string): void {
33
33
  event.preventDefault();
34
34
  selection.set({ type: 'saved-layout', ref: { layoutId } });
35
- shell.actions.openContextMenu({
35
+ sh3.actions.openContextMenu({
36
36
  x: event.clientX,
37
37
  y: event.clientY,
38
38
  scope: { element: 'saved-layout' },
@@ -78,7 +78,7 @@
78
78
  font-weight: 600;
79
79
  text-transform: uppercase;
80
80
  letter-spacing: 0.06em;
81
- color: var(--shell-fg-subtle);
81
+ color: var(--sh3-fg-subtle);
82
82
  margin: 0 0 12px;
83
83
  }
84
84
  .saved-layouts-grid {
@@ -104,24 +104,24 @@
104
104
  display: flex;
105
105
  align-items: center;
106
106
  justify-content: center;
107
- background: var(--saved-layout-color, var(--shell-grad-bg-elevated, var(--shell-bg-elevated)));
108
- border: 1px dashed var(--shell-border);
109
- border-radius: var(--shell-radius-md);
107
+ background: var(--saved-layout-color, var(--sh3-grad-bg-elevated, var(--sh3-bg-elevated)));
108
+ border: 1px dashed var(--sh3-border);
109
+ border-radius: var(--sh3-radius-md);
110
110
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.15);
111
111
  transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
112
112
  }
113
113
  .saved-layout-card:hover .saved-layout-card-square {
114
- border-color: var(--shell-accent);
114
+ border-color: var(--sh3-accent);
115
115
  transform: translateY(-1px);
116
116
  box-shadow:
117
117
  0 6px 14px rgba(0, 0, 0, 0.3),
118
- 0 0 0 1px color-mix(in srgb, var(--shell-accent) 35%, transparent),
119
- 0 4px 12px color-mix(in srgb, var(--shell-accent) 18%, transparent);
118
+ 0 0 0 1px color-mix(in srgb, var(--sh3-accent) 35%, transparent),
119
+ 0 4px 12px color-mix(in srgb, var(--sh3-accent) 18%, transparent);
120
120
  }
121
121
  .saved-layout-card-icon {
122
122
  width: 28px;
123
123
  height: 28px;
124
- color: var(--shell-fg);
124
+ color: var(--sh3-fg);
125
125
  }
126
126
  .saved-layout-card-label {
127
127
  font-weight: 600;
@@ -20,7 +20,7 @@ describe('filterToStandalone', () => {
20
20
  type: 'tabs',
21
21
  activeTab: 0,
22
22
  tabs: [
23
- { slotId: 'a', viewId: 'shell:terminal', label: 'Shell' },
23
+ { slotId: 'a', viewId: 'shell:terminal', label: 'Sh3' },
24
24
  { slotId: 'b', viewId: 'app-only:view', label: 'App' },
25
25
  { slotId: 'c', viewId: 'graphlive:hierarchy', label: 'Graph' },
26
26
  ],
@@ -30,7 +30,7 @@ describe('filterToStandalone', () => {
30
30
  type: 'tabs',
31
31
  activeTab: 0,
32
32
  tabs: [
33
- { slotId: 'a', viewId: 'shell:terminal', label: 'Shell' },
33
+ { slotId: 'a', viewId: 'shell:terminal', label: 'Sh3' },
34
34
  { slotId: 'c', viewId: 'graphlive:hierarchy', label: 'Graph' },
35
35
  ],
36
36
  });
@@ -40,7 +40,7 @@ describe('filterToStandalone', () => {
40
40
  type: 'tabs',
41
41
  activeTab: 1,
42
42
  tabs: [
43
- { slotId: 'a', viewId: 'shell:terminal', label: 'Shell' },
43
+ { slotId: 'a', viewId: 'shell:terminal', label: 'Sh3' },
44
44
  { slotId: 'b', viewId: 'app-only:view', label: 'App' },
45
45
  ],
46
46
  };
@@ -20,7 +20,7 @@ describe('captureFromFloat', () => {
20
20
  const content = {
21
21
  type: 'tabs',
22
22
  activeTab: 0,
23
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
23
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
24
24
  };
25
25
  const id = floatManager.openWithContent({ content, size: { w: 700, h: 500 } });
26
26
  const out = captureFromFloat(id, isStandalone);
@@ -32,7 +32,7 @@ describe('captureFromFloat', () => {
32
32
  out.content.tabs[0].label = 'MUTATED';
33
33
  const live = floatManager.list().find((f) => f.id === id);
34
34
  if (live.content.type === 'tabs') {
35
- expect(live.content.tabs[0].label).toBe('Shell');
35
+ expect(live.content.tabs[0].label).toBe('Sh3');
36
36
  }
37
37
  });
38
38
  });
@@ -60,7 +60,7 @@ describe('restoreToFloat', () => {
60
60
  const layout = mk({
61
61
  type: 'tabs',
62
62
  activeTab: 0,
63
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
63
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
64
64
  });
65
65
  const id = restoreToFloat(layout, isStandalone, toast);
66
66
  expect(id).not.toBe('');
@@ -13,7 +13,7 @@ const stubShard = {
13
13
  id: 'stub',
14
14
  label: 'Stub',
15
15
  version: '0.0.0',
16
- views: [{ id: 'shell:terminal', label: 'Shell', standalone: true }],
16
+ views: [{ id: 'shell:terminal', label: 'Sh3', standalone: true }],
17
17
  },
18
18
  activate(ctx) {
19
19
  ctx.registerView('shell:terminal', {
@@ -45,7 +45,7 @@ describe('layoutsShard — sh3.layout.save', () => {
45
45
  content: {
46
46
  type: 'tabs',
47
47
  activeTab: 0,
48
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
48
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
49
49
  },
50
50
  size: { w: 800, h: 600 },
51
51
  });
@@ -86,7 +86,7 @@ describe('layoutsShard — sh3.layout.open palette submenu', () => {
86
86
  content: {
87
87
  type: 'tabs',
88
88
  activeTab: 0,
89
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
89
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
90
90
  },
91
91
  size: { w: 600, h: 400 },
92
92
  });
@@ -101,7 +101,7 @@ describe('layoutsShard — sh3.layout.open palette submenu', () => {
101
101
  content: {
102
102
  type: 'tabs',
103
103
  activeTab: 0,
104
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
104
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
105
105
  },
106
106
  size: { w: 720, h: 480 },
107
107
  });
@@ -140,7 +140,7 @@ describe('layoutsShard — sh3.layout.customize', () => {
140
140
  content: {
141
141
  type: 'tabs',
142
142
  activeTab: 0,
143
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
143
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
144
144
  },
145
145
  size: { w: 600, h: 400 },
146
146
  });
@@ -160,7 +160,7 @@ describe('layoutsShard — sh3.layout.customize', () => {
160
160
  content: {
161
161
  type: 'tabs',
162
162
  activeTab: 0,
163
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
163
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
164
164
  },
165
165
  size: { w: 600, h: 400 },
166
166
  });
@@ -196,7 +196,7 @@ describe('layoutsShard — sh3.layout.delete', () => {
196
196
  content: {
197
197
  type: 'tabs',
198
198
  activeTab: 0,
199
- tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Shell' }],
199
+ tabs: [{ slotId: 's', viewId: 'shell:terminal', label: 'Sh3' }],
200
200
  },
201
201
  size: { w: 600, h: 400 },
202
202
  });
@@ -1,9 +1,9 @@
1
1
  /*
2
- * One-shot migration: rewrites persisted shell-mode preferences from the
2
+ * One-shot migration: rewrites persisted sh3-mode preferences from the
3
3
  * pre-rename ids (`dev`, `user`) to the new ids (`bash`, `sh3`). Idempotent —
4
4
  * gated by a localStorage flag, safe to call on every boot.
5
5
  *
6
- * Persistence shape: localStorage keys of the form `sh3.shell.lastMode.<userId>`
6
+ * Persistence shape: localStorage keys of the form `sh3.sh3.lastMode.<userId>`
7
7
  * (see packages/sh3-core/src/shell-shard/modes/prefs.ts).
8
8
  */
9
9
  const FLAG_KEY = 'sh3:migrations:mode-id-rename:done';
@@ -101,11 +101,11 @@
101
101
  .confirm-dialog-title {
102
102
  font-size: 16px;
103
103
  font-weight: 600;
104
- color: var(--shell-fg);
104
+ color: var(--sh3-fg);
105
105
  }
106
106
  .confirm-dialog-body {
107
107
  font-size: 13px;
108
- color: var(--shell-fg-muted, var(--shell-fg));
108
+ color: var(--sh3-fg-muted, var(--sh3-fg));
109
109
  line-height: 1.5;
110
110
  }
111
111
  .confirm-dialog-actions {
@@ -117,10 +117,10 @@
117
117
  .confirm-dialog-btn {
118
118
  font-size: 13px;
119
119
  padding: 6px 14px;
120
- border-radius: var(--shell-radius-sm, 4px);
121
- border: 1px solid var(--shell-border-strong);
120
+ border-radius: var(--sh3-radius-sm, 4px);
121
+ border: 1px solid var(--sh3-border-strong);
122
122
  background: transparent;
123
- color: var(--shell-fg);
123
+ color: var(--sh3-fg);
124
124
  cursor: pointer;
125
125
  }
126
126
  .confirm-dialog-btn:disabled {
@@ -128,11 +128,11 @@
128
128
  cursor: not-allowed;
129
129
  }
130
130
  .confirm-dialog-btn-default {
131
- background: var(--shell-bg-elevated);
131
+ background: var(--sh3-bg-elevated);
132
132
  }
133
133
  .confirm-dialog-btn-danger {
134
134
  background: transparent;
135
- color: var(--shell-error, #d32f2f);
136
- border-color: var(--shell-error, #d32f2f);
135
+ color: var(--sh3-error, #d32f2f);
136
+ border-color: var(--sh3-error, #d32f2f);
137
137
  }
138
138
  </style>
@@ -112,19 +112,19 @@
112
112
  .app-appearance {
113
113
  padding: 16px 20px;
114
114
  max-width: 460px;
115
- color: var(--shell-fg);
116
- background: var(--shell-bg);
115
+ color: var(--sh3-fg);
116
+ background: var(--sh3-bg);
117
117
  font: inherit;
118
118
  }
119
119
  h2 { margin: 0 0 12px; font-size: 16px; }
120
120
  .row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; font-size: 13px; }
121
- .row span { color: var(--shell-fg-muted); }
121
+ .row span { color: var(--sh3-fg-muted); }
122
122
  .row span em { font-style: italic; opacity: 0.7; }
123
123
  .name-input {
124
- background: var(--shell-bg-elevated);
125
- color: var(--shell-fg);
126
- border: 1px solid var(--shell-border);
127
- border-radius: var(--shell-radius-sm, 3px);
124
+ background: var(--sh3-bg-elevated);
125
+ color: var(--sh3-fg);
126
+ border: 1px solid var(--sh3-border);
127
+ border-radius: var(--sh3-radius-sm, 3px);
128
128
  padding: 6px 8px; font: inherit; font-size: 13px;
129
129
  }
130
130
  .link {
@@ -132,14 +132,14 @@
132
132
  background: transparent;
133
133
  border: none;
134
134
  padding: 0;
135
- color: var(--shell-accent);
135
+ color: var(--sh3-accent);
136
136
  font: inherit;
137
137
  font-size: 13px;
138
138
  cursor: pointer;
139
139
  text-decoration: underline;
140
140
  }
141
141
  .link--align-right { align-self: flex-end; margin-top: 4px; }
142
- .link:hover { color: var(--shell-fg); }
142
+ .link:hover { color: var(--sh3-fg); }
143
143
  .preview { display: flex; justify-content: center; margin-bottom: 16px; }
144
144
  .preview-card {
145
145
  display: flex; flex-direction: column;
@@ -149,13 +149,13 @@
149
149
  .preview-card-square {
150
150
  width: 64px; height: 64px;
151
151
  display: flex; align-items: center; justify-content: center;
152
- background: var(--shell-grad-bg-elevated, var(--shell-bg-elevated));
153
- border: 1px solid var(--shell-border);
154
- border-radius: var(--shell-radius-md);
152
+ background: var(--sh3-grad-bg-elevated, var(--sh3-bg-elevated));
153
+ border: 1px solid var(--sh3-border);
154
+ border-radius: var(--sh3-radius-md);
155
155
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.15);
156
156
  }
157
157
  .preview-card--tinted .preview-card-square { background: var(--card-color); }
158
- .preview-card-icon { width: 28px; height: 28px; color: var(--shell-fg); }
158
+ .preview-card-icon { width: 28px; height: 28px; color: var(--sh3-fg); }
159
159
  .preview-card-label {
160
160
  font-weight: 600; font-size: 11px; line-height: 1.2;
161
161
  text-align: center; word-break: break-word;
@@ -167,13 +167,13 @@
167
167
  }
168
168
  .actions { display: flex; gap: 8px; margin-top: 16px; }
169
169
  .actions button {
170
- background: var(--shell-bg-elevated);
171
- color: var(--shell-fg);
172
- border: 1px solid var(--shell-border);
173
- border-radius: var(--shell-radius-sm, 3px);
170
+ background: var(--sh3-bg-elevated);
171
+ color: var(--sh3-fg);
172
+ border: 1px solid var(--sh3-border);
173
+ border-radius: var(--sh3-radius-sm, 3px);
174
174
  padding: 6px 14px; font: inherit; cursor: pointer;
175
175
  }
176
- .actions button.primary { background: var(--shell-accent); color: #fff; border-color: var(--shell-accent); }
177
- .actions button:hover { border-color: var(--shell-accent); }
176
+ .actions button.primary { background: var(--sh3-accent); color: #fff; border-color: var(--sh3-accent); }
177
+ .actions button:hover { border-color: var(--sh3-accent); }
178
178
  .actions button:disabled { opacity: 0.5; cursor: not-allowed; }
179
179
  </style>
@@ -31,9 +31,9 @@
31
31
  import { registerDismissableFrame, unregisterDismissableFrame } from './floatDismiss';
32
32
  import { computeMinSize } from '../layout/floats';
33
33
  import type { FloatEntry } from '../layout/types';
34
- import { shell } from '../shellRuntime.svelte';
34
+ import { sh3 } from '../sh3Runtime.svelte';
35
35
  import { makeSelectionApi } from '../actions/selection.svelte';
36
- import { spawnSatellite } from '../shellApi/window';
36
+ import { spawnSatellite } from '../sh3Api/window';
37
37
  import { walkShardsForContent } from '../satellite/walkShards';
38
38
 
39
39
  const isTauri =
@@ -44,7 +44,7 @@
44
44
  function openHeaderContextMenu(e: MouseEvent): void {
45
45
  e.preventDefault();
46
46
  floatHeaderSelection.set({ type: 'float-header', ref: { floatId: entry.id } });
47
- shell.actions.openContextMenu({
47
+ sh3.actions.openContextMenu({
48
48
  x: e.clientX,
49
49
  y: e.clientY,
50
50
  scope: { element: 'float-header' },
@@ -196,7 +196,7 @@
196
196
  });
197
197
  floatManager.close(entry.id);
198
198
  } catch (err) {
199
- shell.toast.notify(
199
+ sh3.toast.notify(
200
200
  `Pop-out failed: ${(err as Error).message}`,
201
201
  { level: 'error', duration: 5000 },
202
202
  );
@@ -208,7 +208,7 @@
208
208
  <!-- svelte-ignore a11y_click_events_have_key_events -->
209
209
  <div
210
210
  class="sh3-float-frame"
211
- data-shell-overlay-host="float"
211
+ data-sh3-overlay-host="float"
212
212
  bind:this={frameEl}
213
213
  style:left="{entry.position.x}px"
214
214
  style:top="{entry.position.y}px"
@@ -272,10 +272,10 @@
272
272
  position: absolute;
273
273
  display: flex;
274
274
  flex-direction: column;
275
- background: var(--shell-grad-bg-elevated, var(--shell-bg-elevated));
276
- color: var(--shell-fg);
277
- border: 1px solid var(--shell-border-strong);
278
- border-radius: var(--shell-radius);
275
+ background: var(--sh3-grad-bg-elevated, var(--sh3-bg-elevated));
276
+ color: var(--sh3-fg);
277
+ border: 1px solid var(--sh3-border-strong);
278
+ border-radius: var(--sh3-radius);
279
279
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
280
280
  pointer-events: auto;
281
281
  }
@@ -284,17 +284,17 @@
284
284
  align-items: center;
285
285
  justify-content: space-between;
286
286
  padding: 4px 8px;
287
- background: var(--shell-grad-bg-sunken, var(--shell-bg-sunken));
287
+ background: var(--sh3-grad-bg-sunken, var(--sh3-bg-sunken));
288
288
  cursor: move;
289
289
  user-select: none;
290
- border-bottom: 1px solid var(--shell-border-strong);
291
- border-top-left-radius: var(--shell-radius);
292
- border-top-right-radius: var(--shell-radius);
290
+ border-bottom: 1px solid var(--sh3-border-strong);
291
+ border-top-left-radius: var(--sh3-radius);
292
+ border-top-right-radius: var(--sh3-radius);
293
293
  flex-shrink: 0;
294
294
  }
295
295
  .sh3-float-title {
296
296
  font-size: 12px;
297
- color: var(--shell-fg);
297
+ color: var(--sh3-fg);
298
298
  overflow: hidden;
299
299
  text-overflow: ellipsis;
300
300
  white-space: nowrap;
@@ -310,7 +310,7 @@
310
310
  .sh3-float-close {
311
311
  background: transparent;
312
312
  border: none;
313
- color: var(--shell-fg);
313
+ color: var(--sh3-fg);
314
314
  line-height: 1;
315
315
  cursor: pointer;
316
316
  padding: 0 4px;
@@ -342,14 +342,14 @@
342
342
  135deg,
343
343
  transparent 0,
344
344
  transparent 6px,
345
- var(--shell-border-strong) 6px,
346
- var(--shell-border-strong) 7px,
345
+ var(--sh3-border-strong) 6px,
346
+ var(--sh3-border-strong) 7px,
347
347
  transparent 7px,
348
348
  transparent 10px,
349
- var(--shell-border-strong) 10px,
350
- var(--shell-border-strong) 11px,
349
+ var(--sh3-border-strong) 10px,
350
+ var(--sh3-border-strong) 11px,
351
351
  transparent 11px
352
352
  );
353
- border-bottom-right-radius: var(--shell-radius);
353
+ border-bottom-right-radius: var(--sh3-radius);
354
354
  }
355
355
  </style>
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  Layer 1 overlay root — iterates the active LayoutTree's floats and
3
3
  renders a FloatFrame for each. Mounted into the layer-1 DOM root by
4
- Shell.svelte. Reactivity flows from the workspace-zone proxy through
4
+ Sh3.svelte. Reactivity flows from the workspace-zone proxy through
5
5
  layoutStore.floats into this component, so mutations (open, close,
6
6
  position changes, reorder) re-render automatically.
7
7
  -->
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Responsibilities:
7
7
  * - Span the full layer as a transparent centering container so every
8
- * modal box renders in the middle of the shell.
8
+ * modal box renders in the middle of the sh3.
9
9
  * - Catch pointer events on the area around the box so clicks outside
10
10
  * the top modal do not fall through to modals beneath or to the
11
11
  * underlying layout.
@@ -81,10 +81,10 @@
81
81
  pointer-events: auto;
82
82
  }
83
83
  .modal-box {
84
- background: var(--shell-grad-bg-elevated, var(--shell-bg-elevated));
85
- color: var(--shell-fg);
86
- border: 1px solid var(--shell-border-strong);
87
- border-radius: var(--shell-radius);
84
+ background: var(--sh3-grad-bg-elevated, var(--sh3-bg-elevated));
85
+ color: var(--sh3-fg);
86
+ border: 1px solid var(--sh3-border-strong);
87
+ border-radius: var(--sh3-radius);
88
88
  min-width: 320px;
89
89
  max-width: min(640px, 90vw);
90
90
  max-height: 90vh;
@@ -73,10 +73,10 @@
73
73
  <style>
74
74
  .popup-frame {
75
75
  position: absolute;
76
- background: var(--shell-grad-bg-elevated, var(--shell-bg-elevated));
77
- color: var(--shell-fg);
78
- border: 1px solid var(--shell-border-strong);
79
- border-radius: var(--shell-radius-sm);
76
+ background: var(--sh3-grad-bg-elevated, var(--sh3-bg-elevated));
77
+ color: var(--sh3-fg);
78
+ border: 1px solid var(--sh3-border-strong);
79
+ border-radius: var(--sh3-radius-sm);
80
80
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
81
81
  min-width: 120px;
82
82
  outline: none;