sh3-core 0.15.4 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BrandSlot.svelte +9 -9
- package/dist/{Shell.svelte → Sh3.svelte} +65 -65
- package/dist/Sh3.svelte.d.ts +5 -0
- package/dist/__test__/render.js +1 -1
- package/dist/actions/ActionPanel.svelte +3 -3
- package/dist/actions/CommandPalette.svelte +2 -2
- package/dist/actions/MenuBar.svelte +1 -1
- package/dist/actions/MenuBar.test.js +1 -1
- package/dist/actions/MenuButton.svelte +3 -3
- package/dist/actions/dispatcher.svelte.js +1 -1
- package/dist/actions/listActive.js +1 -1
- package/dist/actions/listeners.js +6 -6
- package/dist/actions/selection.svelte.d.ts +2 -2
- package/dist/actions/selection.svelte.js +4 -4
- package/dist/actions/selection.test.js +1 -1
- package/dist/actions/{shellActions.test.js → sh3Actions.test.js} +14 -14
- package/dist/actions/state.svelte.d.ts +3 -3
- package/dist/actions/state.svelte.js +3 -3
- package/dist/actions/syncMountedViewIds.test.js +1 -1
- package/dist/actions/types.d.ts +1 -1
- package/dist/api.d.ts +5 -5
- package/dist/api.js +7 -7
- package/dist/app/admin/ApiKeysView.svelte +9 -9
- package/dist/app/admin/AuthSettingsView.svelte +6 -6
- package/dist/app/admin/SystemView.svelte +12 -12
- package/dist/app/admin/UsersView.svelte +8 -8
- package/dist/app/store/AppUpdateAvailableModal.svelte +14 -14
- package/dist/app/store/PermissionConfirmModal.svelte +20 -20
- package/dist/app/store/StoreView.svelte +51 -51
- package/dist/app/store/UninstallAppDialog.svelte +14 -14
- package/dist/app/store/storeShard.svelte.js +1 -1
- package/dist/app/store/verbs.js +1 -1
- package/dist/apps/lifecycle.d.ts +1 -1
- package/dist/apps/lifecycle.js +4 -4
- package/dist/apps/lifecycle.test.js +5 -5
- package/dist/apps/registry.svelte.d.ts +2 -2
- package/dist/apps/registry.svelte.js +3 -3
- package/dist/apps/types.d.ts +1 -1
- package/dist/auth/GuestBanner.svelte +19 -19
- package/dist/auth/SignInWall.svelte +17 -17
- package/dist/auth/auth.svelte.d.ts +1 -1
- package/dist/auth/auth.svelte.js +1 -1
- package/dist/boot/satellitePayload.js +1 -1
- package/dist/color/api.d.ts +1 -1
- package/dist/color/api.js +1 -1
- package/dist/color/{shell-api.js → sh3-api.js} +3 -3
- package/dist/conflicts/ConflictModal.svelte +1 -1
- package/dist/conflicts/ConflictModal.svelte.d.ts +1 -1
- package/dist/conflicts/DetailView.svelte +19 -19
- package/dist/conflicts/PromptView.svelte +9 -9
- package/dist/conflicts/adapter-documents.js +1 -1
- package/dist/conflicts/api.d.ts +1 -1
- package/dist/conflicts/api.js +2 -2
- package/dist/conflicts/renderer-registry.js +1 -1
- package/dist/conflicts/renderers/MetaOnlyRenderer.svelte +8 -8
- package/dist/conflicts/renderers/TextDiffRenderer.svelte +15 -15
- package/dist/conflicts/renderers/index.js +1 -1
- package/dist/conflicts/resolve-primitive.js +1 -1
- package/dist/conflicts/{shell-api.js → sh3-api.js} +2 -2
- package/dist/contributions/registry.js +1 -1
- package/dist/createShell.d.ts +2 -2
- package/dist/createShell.js +6 -6
- package/dist/host-entry.d.ts +1 -1
- package/dist/host-entry.js +2 -2
- package/dist/host.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/keys/ConsentDialog.svelte +15 -15
- package/dist/keys/consent.svelte.d.ts +2 -2
- package/dist/keys/consent.svelte.js +3 -3
- package/dist/keys/revocation-bus.svelte.d.ts +3 -3
- package/dist/keys/revocation-bus.svelte.js +3 -3
- package/dist/layout/DragPreview.svelte +9 -9
- package/dist/layout/LayoutRenderer.browser.test.js +2 -2
- package/dist/layout/LayoutRenderer.svelte +4 -4
- package/dist/layout/SlotContainer.svelte +12 -12
- package/dist/layout/SlotDropZone.svelte +2 -2
- package/dist/layout/inspection.d.ts +1 -1
- package/dist/layout/inspection.js +1 -1
- package/dist/layout/store.svelte.js +3 -3
- package/dist/layout/types.d.ts +1 -1
- package/dist/layouts-shard/LayoutSaveModal.svelte +20 -20
- package/dist/layouts-shard/LayoutsSection.svelte +11 -11
- package/dist/layouts-shard/filter.test.js +3 -3
- package/dist/layouts-shard/layoutsApi.test.js +3 -3
- package/dist/layouts-shard/layoutsShard.svelte.test.js +7 -7
- package/dist/migrations/mode-id-rename.js +2 -2
- package/dist/overlays/ConfirmDialog.svelte +8 -8
- package/dist/overlays/EntityAppearanceModal.svelte +19 -19
- package/dist/overlays/FloatFrame.svelte +20 -20
- package/dist/overlays/FloatLayer.svelte +1 -1
- package/dist/overlays/ModalFrame.svelte +5 -5
- package/dist/overlays/PopupFrame.svelte +4 -4
- package/dist/overlays/ToastItem.svelte +12 -12
- package/dist/overlays/float.d.ts +2 -2
- package/dist/overlays/float.js +3 -3
- package/dist/overlays/float.test.js +6 -6
- package/dist/overlays/modal.js +1 -1
- package/dist/overlays/modal.test.js +2 -2
- package/dist/overlays/parentHost.js +2 -2
- package/dist/overlays/parentHost.test.js +5 -5
- package/dist/overlays/popup.js +2 -2
- package/dist/overlays/popup.test.js +2 -2
- package/dist/overlays/roots.js +4 -4
- package/dist/overlays/toast.js +1 -1
- package/dist/overlays/types.js +3 -3
- package/dist/primitives/Button.svelte +16 -16
- package/dist/primitives/Collapsible.svelte +11 -11
- package/dist/primitives/ResizableSplitter.svelte +10 -10
- package/dist/primitives/TabbedPanel.svelte +19 -19
- package/dist/primitives/base.css +57 -57
- package/dist/primitives/widgets/ColorSwatch.svelte +15 -15
- package/dist/primitives/widgets/ColorSwatch.svelte.test.js +4 -4
- package/dist/primitives/widgets/Field.svelte +20 -20
- package/dist/primitives/widgets/FilePicker.svelte +13 -13
- package/dist/primitives/widgets/IconPicker.svelte +14 -14
- package/dist/primitives/widgets/IconToggleGroup.svelte +14 -14
- package/dist/primitives/widgets/NumberInput.svelte +17 -17
- package/dist/primitives/widgets/PickerList.svelte +17 -17
- package/dist/primitives/widgets/RangeSlider.svelte +16 -16
- package/dist/primitives/widgets/Segmented.svelte +16 -16
- package/dist/primitives/widgets/Select.svelte +14 -14
- package/dist/primitives/widgets/Select.svelte.test.js +2 -2
- package/dist/primitives/widgets/Slider.svelte +20 -20
- package/dist/primitives/widgets/SliderGroup.svelte +2 -2
- package/dist/primitives/widgets/Textarea.svelte +13 -13
- package/dist/primitives/widgets/_select-listbox.svelte +15 -15
- package/dist/projects/session-state.svelte.js +1 -1
- package/dist/projects-shard/DeleteProjectDialog.svelte +12 -12
- package/dist/projects-shard/ProjectManage.svelte +25 -25
- package/dist/projects-shard/ProjectsSection.svelte +12 -12
- package/dist/registry/installer.d.ts +2 -2
- package/dist/registry/installer.js +2 -2
- package/dist/registry/loader.js +1 -1
- package/dist/registry/permission-descriptions.js +2 -2
- package/dist/registry/permission-descriptions.test.js +1 -1
- package/dist/runtime/runVerb-shell.test.js +2 -2
- package/dist/runtime/runVerb.js +4 -4
- package/dist/runtime/runVerb.test.js +4 -4
- package/dist/satellite/SatelliteShell.svelte +2 -2
- package/dist/{shell → sh3}/views/KeysAndPeers.svelte +7 -7
- package/dist/sh3Api/headless.d.ts +4 -0
- package/dist/{shell-shard/shellApi.js → sh3Api/headless.js} +5 -5
- package/dist/{shell-shard/shellApi.svelte.test.js → sh3Api/headless.svelte.test.js} +11 -11
- package/dist/{shellApi → sh3Api}/window.js +2 -2
- package/dist/{shellApi → sh3Api}/window.test.js +1 -1
- package/dist/{shellRuntime.svelte.d.ts → sh3Runtime.svelte.d.ts} +11 -11
- package/dist/{shellRuntime.svelte.js → sh3Runtime.svelte.js} +10 -10
- package/dist/{shellRuntime.svelte.test.js → sh3Runtime.svelte.test.js} +10 -10
- package/dist/sh3core-shard/AppInfoView.svelte +19 -19
- package/dist/sh3core-shard/{ShellHome.svelte → Sh3Home.svelte} +82 -82
- package/dist/sh3core-shard/Sh3Home.svelte.d.ts +3 -0
- package/dist/sh3core-shard/{ShellTitle.svelte → Sh3Title.svelte} +11 -11
- package/dist/sh3core-shard/Sh3Title.svelte.d.ts +3 -0
- package/dist/sh3core-shard/appActions.js +3 -3
- package/dist/sh3core-shard/sh3coreShard.svelte.js +7 -7
- package/dist/shards/activate.svelte.d.ts +1 -1
- package/dist/shards/activate.svelte.js +6 -6
- package/dist/shards/types.d.ts +5 -5
- package/dist/shards/types.js +2 -2
- package/dist/shell-shard/CommandLine.svelte +7 -7
- package/dist/shell-shard/InputLine.svelte +3 -3
- package/dist/shell-shard/ScrollbackView.svelte +2 -2
- package/dist/shell-shard/Terminal.svelte +5 -5
- package/dist/shell-shard/Terminal.svelte.d.ts +2 -2
- package/dist/shell-shard/dispatch-custom.test.js +2 -2
- package/dist/shell-shard/dispatch-gating.test.js +2 -2
- package/dist/shell-shard/dispatch-invoke.test.js +2 -2
- package/dist/shell-shard/dispatch-to-terminal.js +1 -1
- package/dist/shell-shard/dispatch.d.ts +2 -2
- package/dist/shell-shard/dispatch.js +2 -2
- package/dist/shell-shard/entries/PromptEntry.svelte +4 -4
- package/dist/shell-shard/entries/StatusEntry.svelte +4 -4
- package/dist/shell-shard/entries/TextEntry.svelte +3 -3
- package/dist/shell-shard/locateSlot.test.js +9 -9
- package/dist/shell-shard/manifest.js +2 -2
- package/dist/shell-shard/registry.d.ts +2 -2
- package/dist/shell-shard/rich/AppCard.svelte +1 -1
- package/dist/shell-shard/rich/AppsTable.svelte +1 -1
- package/dist/shell-shard/rich/HelpTable.svelte +1 -1
- package/dist/shell-shard/rich/HistoryList.svelte +1 -1
- package/dist/shell-shard/rich/ViewsTable.svelte +1 -1
- package/dist/shell-shard/rich/ZoneTree.svelte +2 -2
- package/dist/shell-shard/shellShard.svelte.d.ts +1 -1
- package/dist/shell-shard/shellShard.svelte.js +8 -8
- package/dist/shell-shard/terminal-dispatch.test.js +2 -2
- package/dist/shell-shard/toolbar/Toolbar.svelte +4 -4
- package/dist/shell-shard/toolbar/Toolbar.svelte.d.ts +2 -2
- package/dist/shell-shard/toolbar/slots/BusySlot.svelte +2 -2
- package/dist/shell-shard/toolbar/slots/FocusLockSlot.svelte +2 -2
- package/dist/shell-shard/toolbar/slots/ModeSlot.svelte +1 -1
- package/dist/shell-shard/toolbar/slots/TargetShardSlot.svelte +1 -1
- package/dist/shell-shard/toolbar/slots.d.ts +3 -3
- package/dist/shell-shard/verbs/apps.js +3 -3
- package/dist/shell-shard/verbs/help.js +1 -1
- package/dist/shell-shard/verbs/help.svelte.test.js +1 -1
- package/dist/shell-shard/verbs/history.js +1 -1
- package/dist/shell-shard/verbs/mode.js +2 -2
- package/dist/shell-shard/verbs/mode.test.js +2 -2
- package/dist/shell-shard/verbs/shards.js +1 -1
- package/dist/shell-shard/verbs/views.js +8 -8
- package/dist/shell-shard/verbs/zones.js +2 -2
- package/dist/state/zones.svelte.d.ts +2 -2
- package/dist/state/zones.svelte.js +4 -4
- package/dist/theme.d.ts +3 -3
- package/dist/theme.js +5 -5
- package/dist/tokens.css +68 -68
- package/dist/verbs/types.d.ts +5 -5
- package/dist/verbs/types.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/Shell.svelte.d.ts +0 -5
- package/dist/sh3core-shard/ShellHome.svelte.d.ts +0 -3
- package/dist/sh3core-shard/ShellTitle.svelte.d.ts +0 -3
- package/dist/shell-shard/shellApi.d.ts +0 -4
- /package/dist/actions/{shellActions.test.d.ts → sh3Actions.test.d.ts} +0 -0
- /package/dist/color/{shell-api.d.ts → sh3-api.d.ts} +0 -0
- /package/dist/conflicts/{shell-api.d.ts → sh3-api.d.ts} +0 -0
- /package/dist/{shell → sh3}/views/KeysAndPeers.svelte.d.ts +0 -0
- /package/dist/{shell-shard/shellApi.svelte.test.d.ts → sh3Api/headless.svelte.test.d.ts} +0 -0
- /package/dist/{shellApi → sh3Api}/window.d.ts +0 -0
- /package/dist/{shellApi → sh3Api}/window.test.d.ts +0 -0
- /package/dist/{shellRuntime.svelte.test.d.ts → sh3Runtime.svelte.test.d.ts} +0 -0
|
@@ -32,7 +32,7 @@ function notifyActiveChange() {
|
|
|
32
32
|
/**
|
|
33
33
|
* Subscribe to any change that could affect the set of currently-active
|
|
34
34
|
* actions or their resolved shortcuts (app/view/focus/selection/bindings
|
|
35
|
-
* transitions). Call sites outside this module (e.g., the
|
|
35
|
+
* transitions). Call sites outside this module (e.g., the sh3
|
|
36
36
|
* assembling registry-change notifications) dispatch via
|
|
37
37
|
* {@link __notifyActiveChange}.
|
|
38
38
|
*/
|
|
@@ -40,7 +40,7 @@ export function onActiveChange(cb) {
|
|
|
40
40
|
activeChangeListeners.add(cb);
|
|
41
41
|
return () => { activeChangeListeners.delete(cb); };
|
|
42
42
|
}
|
|
43
|
-
/** Internal — fired by the
|
|
43
|
+
/** Internal — fired by the sh3 runtime when the action registry mutates. */
|
|
44
44
|
export function __notifyActiveChange() {
|
|
45
45
|
notifyActiveChange();
|
|
46
46
|
}
|
|
@@ -63,7 +63,7 @@ export function setMountedViewIds(ids) {
|
|
|
63
63
|
* One-shot snapshot: walk the active layout tree and update
|
|
64
64
|
* `mountedViewIds` to match. Non-reactive — call from an `$effect` that
|
|
65
65
|
* reads `layoutStore.tree` to keep the set in sync as the tree mutates.
|
|
66
|
-
*
|
|
66
|
+
* Sh3.svelte owns that effect during boot.
|
|
67
67
|
*/
|
|
68
68
|
export function syncMountedViewIdsFromLayout() {
|
|
69
69
|
const refs = collectTreeSlotRefs(layoutStore.tree);
|
|
@@ -59,7 +59,7 @@ describe('syncMountedViewIdsFromLayout', () => {
|
|
|
59
59
|
],
|
|
60
60
|
}));
|
|
61
61
|
await launchApp('sync-app-float');
|
|
62
|
-
// Bind the float manager to the live tree (
|
|
62
|
+
// Bind the float manager to the live tree (Sh3.svelte does this at boot).
|
|
63
63
|
bindFloatStore(layoutStore.floats, () => ({ w: 1024, h: 768 }));
|
|
64
64
|
// Popout the anchor → creates a float with view:anchor inside.
|
|
65
65
|
popoutView('anchor');
|
package/dist/actions/types.d.ts
CHANGED
|
@@ -118,7 +118,7 @@ export interface ResolvedAction {
|
|
|
118
118
|
export type BindingSource = 'default' | 'user' | 'disabled' | 'none';
|
|
119
119
|
/**
|
|
120
120
|
* Read-only snapshot describing one action that is currently active.
|
|
121
|
-
* Produced by `
|
|
121
|
+
* Produced by `sh3.actions.listActive()`. One descriptor per action id,
|
|
122
122
|
* reporting the innermost active scope (same tier order as keyboard
|
|
123
123
|
* dispatch: element > focus > view > app > home).
|
|
124
124
|
*/
|
package/dist/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
1
|
+
export { sh3 } from './sh3Runtime.svelte';
|
|
2
|
+
export type { Sh3 } from './sh3Runtime.svelte';
|
|
3
3
|
export type { Shard, ShardManifest, SourceShard, SourceShardManifest, ShardContext, ViewDeclaration, ViewFactory, ViewHandle, MountContext, } from './shards/types';
|
|
4
4
|
export type { LayoutNode, SplitNode, TabsNode, SlotNode, TabEntry, SplitDirection, SizeMode, LayoutTree, FloatEntry, LayoutPreset, CanonicalPreset, TreeRootRef as SlotLocation, } from './layout/types';
|
|
5
5
|
export type { ActionDescriptor, ActiveActionDescriptor, BindingSource, AtomicScope, ActionScope, } from './actions/types';
|
|
@@ -18,8 +18,8 @@ export { listRegisteredApps, getActiveApp } from './apps/registry.svelte';
|
|
|
18
18
|
export { launchApp, returnToHome, unregisterApp } from './apps/lifecycle';
|
|
19
19
|
export { pushNavEntry } from './navigation';
|
|
20
20
|
export type { NavEntry, NavEntryHandle } from './navigation';
|
|
21
|
-
export { spawnSatellite } from './
|
|
22
|
-
export type { SpawnSatelliteOptions } from './
|
|
21
|
+
export { spawnSatellite } from './sh3Api/window';
|
|
22
|
+
export type { SpawnSatelliteOptions } from './sh3Api/window';
|
|
23
23
|
export type { SatellitePayload } from './boot/satellitePayload';
|
|
24
24
|
export { inspectActiveLayout, spliceIntoActiveLayout, dockIntoActiveLayout, focusTab, focusView, collapseChild, expandChild, closeTab, popoutView, dockFloat, locateSlot, } from './layout/inspection';
|
|
25
25
|
export type { DocumentHandle, DocumentHandleOptions, DocumentFormat, DocumentMeta, DocumentChange, AutosaveController, } from './documents/types';
|
|
@@ -49,7 +49,7 @@ export declare const capabilities: {
|
|
|
49
49
|
readonly hotInstall: boolean;
|
|
50
50
|
};
|
|
51
51
|
export type { ServerShard, ServerShardContext, TenantDocumentAPI } from './server-shard/types';
|
|
52
|
-
export type { Verb, VerbContext,
|
|
52
|
+
export type { Verb, VerbContext, Sh3Api, VerbSchema, PortableJSONSchema, DispatchToTerminalResult, } from './verbs/types';
|
|
53
53
|
export type { Scrollback } from './shell-shard/scrollback.svelte';
|
|
54
54
|
export type { SessionClient } from './shell-shard/session-client.svelte';
|
|
55
55
|
export { listVerbs } from './shards/registry';
|
package/dist/api.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* What belongs here:
|
|
7
7
|
* - Types that shards and apps consume (Shard, App, ShardContext, etc.)
|
|
8
|
-
* - The `
|
|
8
|
+
* - The `sh3` runtime singleton (modal/popup/toast)
|
|
9
9
|
* - Layout inspection/mutation helpers for advanced shards (added in
|
|
10
10
|
* Task 12)
|
|
11
11
|
* - Host actions callable from inside views (launchApp, returnToHome,
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
* now the convention is documented and honored by hand.
|
|
23
23
|
*/
|
|
24
24
|
// Runtime singleton.
|
|
25
|
-
export {
|
|
25
|
+
export { sh3 } from './sh3Runtime.svelte';
|
|
26
26
|
export { PERMISSION_STATE_MANAGE } from './state/types';
|
|
27
|
-
// Host actions callable from inside views (
|
|
27
|
+
// Host actions callable from inside views (sh3 home, status bar, etc.).
|
|
28
28
|
export { listRegisteredApps, getActiveApp } from './apps/registry.svelte';
|
|
29
29
|
export { launchApp, returnToHome, unregisterApp } from './apps/lifecycle';
|
|
30
30
|
// Navigation — apps push in-app nav entries; framework drives back/forward.
|
|
31
31
|
export { pushNavEntry } from './navigation';
|
|
32
|
-
// Multi-window — spawn a satellite native window from the host
|
|
33
|
-
export { spawnSatellite } from './
|
|
32
|
+
// Multi-window — spawn a satellite native window from the host sh3.
|
|
33
|
+
export { spawnSatellite } from './sh3Api/window';
|
|
34
34
|
// Layout inspection / mutation for advanced shards (diagnostic, etc.).
|
|
35
35
|
export { inspectActiveLayout, spliceIntoActiveLayout, dockIntoActiveLayout, focusTab, focusView, collapseChild, expandChild, closeTab, popoutView, dockFloat, locateSlot, } from './layout/inspection';
|
|
36
36
|
export { PERMISSION_DOCUMENTS_BROWSE, PERMISSION_DOCUMENTS_READ, PERMISSION_DOCUMENTS_WRITE, } from './documents/types';
|
|
@@ -62,7 +62,7 @@ export { listVerbs } from './shards/registry';
|
|
|
62
62
|
// advanced use cases like cross-tab dispatch wrappers; most consumers
|
|
63
63
|
// should call ctx.runVerb).
|
|
64
64
|
export { runVerbProgrammatic } from './runtime';
|
|
65
|
-
//
|
|
65
|
+
// Sh3 mode contributions (external shards extend the sh3 with new modes).
|
|
66
66
|
export { registerShellMode } from './shell-shard/registerShellMode';
|
|
67
67
|
export { SHELL_MODE_CONTRIBUTION_POINT } from './shell-shard/contract';
|
|
68
68
|
// Package version.
|
|
@@ -75,7 +75,7 @@ export const FRAMEWORK_SHARD_IDS = [
|
|
|
75
75
|
'sh3-store',
|
|
76
76
|
'sh3-admin',
|
|
77
77
|
];
|
|
78
|
-
// Theme token override API (
|
|
78
|
+
// Theme token override API (sh3-level theming support).
|
|
79
79
|
export { setTokenOverrides, clearTokenOverrides, getTokenOverrides, } from './theme';
|
|
80
80
|
// UI primitives for shards and apps. Must live on the public shim surface
|
|
81
81
|
// (api.ts) — not just index.ts — so dynamically loaded bundles can resolve
|
|
@@ -137,22 +137,22 @@
|
|
|
137
137
|
</div>
|
|
138
138
|
|
|
139
139
|
<style>
|
|
140
|
-
.admin-keys { padding: 24px; font-family: system-ui, sans-serif; color: var(--
|
|
140
|
+
.admin-keys { padding: 24px; font-family: system-ui, sans-serif; color: var(--sh3-fg); }
|
|
141
141
|
.admin-keys-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
|
|
142
142
|
.admin-keys-header h2 { margin: 0; font-size: 18px; }
|
|
143
143
|
.admin-create-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; max-width: 400px; }
|
|
144
|
-
.admin-input { padding: 8px 12px; background: var(--
|
|
144
|
+
.admin-input { padding: 8px 12px; background: var(--sh3-bg, #1a1a2e); color: var(--sh3-fg); border: 1px solid var(--sh3-border, #3a3a5c); border-radius: var(--sh3-radius, 6px); font-size: 13px; }
|
|
145
145
|
.admin-btn { font-weight: 600; font-size: 13px; }
|
|
146
146
|
.admin-btn:disabled { opacity: 0.6; cursor: not-allowed; }
|
|
147
|
-
.admin-btn-secondary { background: transparent; color: var(--
|
|
148
|
-
.admin-btn-danger { background: transparent; color: var(--
|
|
147
|
+
.admin-btn-secondary { background: transparent; color: var(--sh3-fg-subtle); border: 1px solid var(--sh3-border); font-size: 12px; }
|
|
148
|
+
.admin-btn-danger { background: transparent; color: var(--sh3-error, #d32f2f); border: 1px solid var(--sh3-error, #d32f2f); font-size: 12px; }
|
|
149
149
|
.admin-key-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
|
|
150
|
-
.admin-key-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--
|
|
150
|
+
.admin-key-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--sh3-bg-elevated, #252540); border: 1px solid var(--sh3-border, #3a3a5c); border-radius: var(--sh3-radius, 6px); }
|
|
151
151
|
.admin-key-info { display: flex; flex-direction: column; gap: 2px; }
|
|
152
152
|
.admin-key-label { font-weight: 600; }
|
|
153
|
-
.admin-key-meta { font-size: 11px; color: var(--
|
|
154
|
-
.admin-key-value { font-size: 12px; color: var(--
|
|
153
|
+
.admin-key-meta { font-size: 11px; color: var(--sh3-fg-subtle); }
|
|
154
|
+
.admin-key-value { font-size: 12px; color: var(--sh3-fg-muted); background: var(--sh3-bg, #1a1a2e); padding: 2px 6px; border-radius: 3px; margin-top: 2px; word-break: break-all; }
|
|
155
155
|
.admin-key-actions { display: flex; gap: 6px; flex-shrink: 0; }
|
|
156
|
-
.admin-muted { color: var(--
|
|
157
|
-
.admin-error { color: var(--
|
|
156
|
+
.admin-muted { color: var(--sh3-fg-muted); font-style: italic; }
|
|
157
|
+
.admin-error { color: var(--sh3-error, #d32f2f); font-size: 13px; }
|
|
158
158
|
</style>
|
|
@@ -88,18 +88,18 @@
|
|
|
88
88
|
</div>
|
|
89
89
|
|
|
90
90
|
<style>
|
|
91
|
-
.admin-auth { padding: 24px; font-family: system-ui, sans-serif; color: var(--
|
|
91
|
+
.admin-auth { padding: 24px; font-family: system-ui, sans-serif; color: var(--sh3-fg); }
|
|
92
92
|
.admin-auth h2 { margin: 0 0 16px; font-size: 18px; }
|
|
93
93
|
.admin-auth-fields { display: flex; flex-direction: column; gap: 16px; max-width: 480px; }
|
|
94
94
|
.admin-toggle { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; cursor: pointer; }
|
|
95
|
-
.admin-toggle input { accent-color: var(--
|
|
96
|
-
.admin-hint { flex-basis: 100%; font-size: 11px; color: var(--
|
|
95
|
+
.admin-toggle input { accent-color: var(--sh3-accent, #7c7cf0); }
|
|
96
|
+
.admin-hint { flex-basis: 100%; font-size: 11px; color: var(--sh3-fg-muted); margin-left: 24px; }
|
|
97
97
|
.admin-field { display: flex; flex-direction: column; gap: 4px; }
|
|
98
98
|
.admin-field span { font-size: 13px; }
|
|
99
|
-
.admin-input { padding: 8px 12px; background: var(--
|
|
99
|
+
.admin-input { padding: 8px 12px; background: var(--sh3-bg); color: var(--sh3-fg); border: 1px solid var(--sh3-border); border-radius: var(--sh3-radius, 6px); font-size: 13px; }
|
|
100
100
|
.admin-input-sm { max-width: 120px; }
|
|
101
101
|
.admin-btn { padding: 8px 16px; font-weight: 600; align-self: flex-start; }
|
|
102
102
|
.admin-btn:disabled { opacity: 0.6; cursor: not-allowed; }
|
|
103
|
-
.admin-error { margin-top: 8px; color: var(--
|
|
104
|
-
.admin-muted { color: var(--
|
|
103
|
+
.admin-error { margin-top: 8px; color: var(--sh3-error, #d32f2f); font-size: 13px; }
|
|
104
|
+
.admin-muted { color: var(--sh3-fg-muted); font-style: italic; }
|
|
105
105
|
</style>
|
|
@@ -185,27 +185,27 @@
|
|
|
185
185
|
</div>
|
|
186
186
|
|
|
187
187
|
<style>
|
|
188
|
-
.admin-system { padding: 24px; font-family: system-ui, sans-serif; color: var(--
|
|
188
|
+
.admin-system { padding: 24px; font-family: system-ui, sans-serif; color: var(--sh3-fg); }
|
|
189
189
|
.admin-system h2 { margin: 0 0 16px; font-size: 18px; }
|
|
190
|
-
.admin-system h3 { margin: 0 0 8px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--
|
|
190
|
+
.admin-system h3 { margin: 0 0 8px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--sh3-fg-subtle); }
|
|
191
191
|
.admin-system-info { margin-bottom: 24px; }
|
|
192
|
-
.admin-system-row { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--
|
|
193
|
-
.admin-system-label { color: var(--
|
|
194
|
-
.admin-system-section { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--
|
|
192
|
+
.admin-system-row { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--sh3-border, #3a3a5c); font-size: 13px; }
|
|
193
|
+
.admin-system-label { color: var(--sh3-fg-subtle); min-width: 140px; }
|
|
194
|
+
.admin-system-section { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--sh3-border, #3a3a5c); }
|
|
195
195
|
.admin-system-section:last-child { border-bottom: none; }
|
|
196
|
-
.admin-system-hint { font-size: 13px; color: var(--
|
|
196
|
+
.admin-system-hint { font-size: 13px; color: var(--sh3-fg-subtle); margin: 0 0 12px; }
|
|
197
197
|
.admin-system-readout { font-size: 13px; margin: 8px 0 12px; }
|
|
198
198
|
.admin-system-snaps { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
|
|
199
|
-
.admin-snap { padding: 4px 10px; font-size: 12px; background: transparent; border: 1px solid var(--
|
|
200
|
-
.admin-snap.active { background: var(--
|
|
199
|
+
.admin-snap { padding: 4px 10px; font-size: 12px; background: transparent; border: 1px solid var(--sh3-border, #3a3a5c); color: var(--sh3-fg); cursor: pointer; border-radius: var(--sh3-radius-sm, 3px); }
|
|
200
|
+
.admin-snap.active { background: var(--sh3-accent, #4a7bd4); color: var(--sh3-bg); border-color: var(--sh3-accent, #4a7bd4); }
|
|
201
201
|
.admin-snap:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
202
202
|
.admin-system-actions { display: flex; flex-direction: row; gap: 8px; align-items: center; flex-wrap: wrap; }
|
|
203
|
-
.admin-btn { padding: 8px 16px; background: var(--
|
|
203
|
+
.admin-btn { padding: 8px 16px; background: var(--sh3-accent, #4a7bd4); color: var(--sh3-bg); border: 1px solid var(--sh3-accent, #4a7bd4); font-weight: 600; cursor: pointer; border-radius: var(--sh3-radius-sm, 3px); }
|
|
204
204
|
.admin-btn:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
205
|
-
.admin-btn-ghost { padding: 8px 16px; background: transparent; color: var(--
|
|
205
|
+
.admin-btn-ghost { padding: 8px 16px; background: transparent; color: var(--sh3-fg); border: 1px solid var(--sh3-border, #3a3a5c); cursor: pointer; border-radius: var(--sh3-radius-sm, 3px); }
|
|
206
206
|
.admin-btn-ghost:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
207
|
-
.admin-btn-danger { padding: 8px 16px; background: transparent; color: var(--
|
|
207
|
+
.admin-btn-danger { padding: 8px 16px; background: transparent; color: var(--sh3-error, #d32f2f); border: 1px solid var(--sh3-error, #d32f2f); font-weight: 600; cursor: pointer; border-radius: var(--sh3-radius-sm, 3px); }
|
|
208
208
|
.admin-btn-danger:disabled { opacity: 0.6; cursor: not-allowed; }
|
|
209
|
-
.admin-error { color: var(--
|
|
209
|
+
.admin-error { color: var(--sh3-error, #d32f2f); font-size: 13px; }
|
|
210
210
|
input[type="range"] { width: 100%; max-width: 480px; }
|
|
211
211
|
</style>
|
|
@@ -167,22 +167,22 @@
|
|
|
167
167
|
</div>
|
|
168
168
|
|
|
169
169
|
<style>
|
|
170
|
-
.admin-users { padding: 24px; font-family: system-ui, sans-serif; color: var(--
|
|
170
|
+
.admin-users { padding: 24px; font-family: system-ui, sans-serif; color: var(--sh3-fg); }
|
|
171
171
|
.admin-users-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
|
|
172
172
|
.admin-users-header h2 { margin: 0; font-size: 18px; }
|
|
173
173
|
.admin-create-form, .admin-edit-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; max-width: 400px; }
|
|
174
|
-
.admin-input { padding: 8px 12px; background: var(--
|
|
174
|
+
.admin-input { padding: 8px 12px; background: var(--sh3-bg, #1a1a2e); color: var(--sh3-fg); border: 1px solid var(--sh3-border, #3a3a5c); border-radius: var(--sh3-radius, 6px); font-size: 13px; }
|
|
175
175
|
.admin-btn { font-weight: 600; font-size: 13px; }
|
|
176
176
|
.admin-btn:disabled { opacity: 0.6; cursor: not-allowed; }
|
|
177
|
-
.admin-btn-secondary { background: transparent; color: var(--
|
|
178
|
-
.admin-btn-danger { background: transparent; color: var(--
|
|
177
|
+
.admin-btn-secondary { background: transparent; color: var(--sh3-fg-subtle); border: 1px solid var(--sh3-border); font-size: 12px; }
|
|
178
|
+
.admin-btn-danger { background: transparent; color: var(--sh3-error, #d32f2f); border: 1px solid var(--sh3-error, #d32f2f); font-size: 12px; }
|
|
179
179
|
.admin-user-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
|
|
180
|
-
.admin-user-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--
|
|
180
|
+
.admin-user-item { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--sh3-bg-elevated, #252540); border: 1px solid var(--sh3-border, #3a3a5c); border-radius: var(--sh3-radius, 6px); }
|
|
181
181
|
.admin-user-info { display: flex; flex-direction: column; gap: 2px; }
|
|
182
182
|
.admin-user-name { font-weight: 600; }
|
|
183
|
-
.admin-user-meta { font-size: 11px; color: var(--
|
|
183
|
+
.admin-user-meta { font-size: 11px; color: var(--sh3-fg-subtle); }
|
|
184
184
|
.admin-user-actions { display: flex; gap: 6px; }
|
|
185
185
|
.admin-edit-actions { display: flex; gap: 6px; }
|
|
186
|
-
.admin-error { color: var(--
|
|
187
|
-
.admin-muted { color: var(--
|
|
186
|
+
.admin-error { color: var(--sh3-error, #d32f2f); font-size: 13px; }
|
|
187
|
+
.admin-muted { color: var(--sh3-fg-muted); font-style: italic; }
|
|
188
188
|
</style>
|
|
@@ -55,33 +55,33 @@
|
|
|
55
55
|
.app-update-modal {
|
|
56
56
|
padding: 16px 20px;
|
|
57
57
|
max-width: 460px;
|
|
58
|
-
color: var(--
|
|
59
|
-
background: var(--
|
|
58
|
+
color: var(--sh3-fg);
|
|
59
|
+
background: var(--sh3-bg);
|
|
60
60
|
font: inherit;
|
|
61
61
|
}
|
|
62
62
|
h2 { margin: 0 0 8px; font-size: 16px; }
|
|
63
63
|
p { margin: 4px 0; font-size: 13px; }
|
|
64
|
-
.hint { color: var(--
|
|
65
|
-
.error { color: var(--
|
|
64
|
+
.hint { color: var(--sh3-fg-muted); font-size: 12px; }
|
|
65
|
+
.error { color: var(--sh3-error, #c33); }
|
|
66
66
|
code {
|
|
67
|
-
font-family: var(--
|
|
68
|
-
background: var(--
|
|
67
|
+
font-family: var(--sh3-font-mono, monospace);
|
|
68
|
+
background: var(--sh3-bg-elevated);
|
|
69
69
|
padding: 0 4px;
|
|
70
|
-
border-radius: var(--
|
|
70
|
+
border-radius: var(--sh3-radius-sm, 3px);
|
|
71
71
|
}
|
|
72
72
|
.actions { display: flex; gap: 8px; margin-top: 16px; }
|
|
73
73
|
.actions button {
|
|
74
|
-
background: var(--
|
|
75
|
-
color: var(--
|
|
76
|
-
border: 1px solid var(--
|
|
77
|
-
border-radius: var(--
|
|
74
|
+
background: var(--sh3-bg-elevated);
|
|
75
|
+
color: var(--sh3-fg);
|
|
76
|
+
border: 1px solid var(--sh3-border);
|
|
77
|
+
border-radius: var(--sh3-radius-sm, 3px);
|
|
78
78
|
padding: 6px 14px; font: inherit; cursor: pointer;
|
|
79
79
|
}
|
|
80
80
|
.actions button.primary {
|
|
81
|
-
background: var(--
|
|
81
|
+
background: var(--sh3-accent);
|
|
82
82
|
color: #fff;
|
|
83
|
-
border-color: var(--
|
|
83
|
+
border-color: var(--sh3-accent);
|
|
84
84
|
}
|
|
85
|
-
.actions button:hover { border-color: var(--
|
|
85
|
+
.actions button:hover { border-color: var(--sh3-accent); }
|
|
86
86
|
.actions button:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
87
87
|
</style>
|
|
@@ -131,21 +131,21 @@
|
|
|
131
131
|
z-index: 1000;
|
|
132
132
|
}
|
|
133
133
|
.perm-modal-panel {
|
|
134
|
-
background: var(--
|
|
135
|
-
color: var(--
|
|
136
|
-
border: 1px solid var(--
|
|
137
|
-
border-radius: var(--
|
|
134
|
+
background: var(--sh3-bg, #1e1e1e);
|
|
135
|
+
color: var(--sh3-fg, #e0e0e0);
|
|
136
|
+
border: 1px solid var(--sh3-border, #444);
|
|
137
|
+
border-radius: var(--sh3-radius-md);
|
|
138
138
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
|
|
139
139
|
min-width: 360px;
|
|
140
140
|
max-width: 520px;
|
|
141
141
|
max-height: 80vh;
|
|
142
142
|
display: flex;
|
|
143
143
|
flex-direction: column;
|
|
144
|
-
font-family: var(--
|
|
144
|
+
font-family: var(--sh3-font-ui);
|
|
145
145
|
}
|
|
146
146
|
.perm-modal-header {
|
|
147
147
|
padding: 16px 20px 12px;
|
|
148
|
-
border-bottom: 1px solid var(--
|
|
148
|
+
border-bottom: 1px solid var(--sh3-border, #444);
|
|
149
149
|
}
|
|
150
150
|
.perm-modal-header h3 {
|
|
151
151
|
margin: 0 0 4px 0;
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
}
|
|
155
155
|
.perm-modal-subtitle {
|
|
156
156
|
font-size: 0.8125rem;
|
|
157
|
-
color: var(--
|
|
157
|
+
color: var(--sh3-fg-muted, #888);
|
|
158
158
|
}
|
|
159
159
|
.perm-modal-author {
|
|
160
160
|
margin-left: 8px;
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
.perm-modal-empty {
|
|
172
172
|
margin: 0;
|
|
173
173
|
font-size: 0.875rem;
|
|
174
|
-
color: var(--
|
|
174
|
+
color: var(--sh3-fg-muted, #888);
|
|
175
175
|
font-style: italic;
|
|
176
176
|
}
|
|
177
177
|
.perm-modal-list {
|
|
@@ -184,9 +184,9 @@
|
|
|
184
184
|
}
|
|
185
185
|
.perm-modal-item {
|
|
186
186
|
padding: 8px 10px;
|
|
187
|
-
background: var(--
|
|
188
|
-
border: 1px solid var(--
|
|
189
|
-
border-radius: var(--
|
|
187
|
+
background: var(--sh3-input-bg, #2a2a2a);
|
|
188
|
+
border: 1px solid var(--sh3-border, #444);
|
|
189
|
+
border-radius: var(--sh3-radius-sm);
|
|
190
190
|
}
|
|
191
191
|
.perm-modal-item-title {
|
|
192
192
|
font-size: 0.875rem;
|
|
@@ -194,18 +194,18 @@
|
|
|
194
194
|
}
|
|
195
195
|
.perm-modal-item-desc {
|
|
196
196
|
font-size: 0.75rem;
|
|
197
|
-
color: var(--
|
|
197
|
+
color: var(--sh3-fg-muted, #888);
|
|
198
198
|
margin-top: 2px;
|
|
199
199
|
}
|
|
200
200
|
.perm-modal-added .perm-modal-item {
|
|
201
|
-
border-color: color-mix(in srgb, var(--
|
|
201
|
+
border-color: color-mix(in srgb, var(--sh3-warning, #ff9800) 60%, var(--sh3-border, #444));
|
|
202
202
|
}
|
|
203
203
|
.perm-modal-removed .perm-modal-item {
|
|
204
204
|
opacity: 0.75;
|
|
205
205
|
}
|
|
206
206
|
.perm-modal-footer {
|
|
207
207
|
padding: 12px 20px;
|
|
208
|
-
border-top: 1px solid var(--
|
|
208
|
+
border-top: 1px solid var(--sh3-border, #444);
|
|
209
209
|
display: flex;
|
|
210
210
|
justify-content: flex-end;
|
|
211
211
|
gap: 8px;
|
|
@@ -213,18 +213,18 @@
|
|
|
213
213
|
.perm-modal-cancel {
|
|
214
214
|
padding: 6px 14px;
|
|
215
215
|
background: transparent;
|
|
216
|
-
color: var(--
|
|
217
|
-
border: 1px solid var(--
|
|
218
|
-
border-radius: var(--
|
|
216
|
+
color: var(--sh3-fg, #e0e0e0);
|
|
217
|
+
border: 1px solid var(--sh3-border, #444);
|
|
218
|
+
border-radius: var(--sh3-radius);
|
|
219
219
|
font-size: 0.8125rem;
|
|
220
220
|
cursor: pointer;
|
|
221
221
|
}
|
|
222
222
|
.perm-modal-confirm {
|
|
223
223
|
padding: 6px 14px;
|
|
224
|
-
background: var(--
|
|
224
|
+
background: var(--sh3-accent, #007acc);
|
|
225
225
|
color: #fff;
|
|
226
|
-
border: 1px solid var(--
|
|
227
|
-
border-radius: var(--
|
|
226
|
+
border: 1px solid var(--sh3-accent, #007acc);
|
|
227
|
+
border-radius: var(--sh3-radius);
|
|
228
228
|
font-size: 0.8125rem;
|
|
229
229
|
cursor: pointer;
|
|
230
230
|
font-weight: 600;
|
|
@@ -423,9 +423,9 @@
|
|
|
423
423
|
|
|
424
424
|
<style>
|
|
425
425
|
.store-view {
|
|
426
|
-
font-family: var(--
|
|
427
|
-
color: var(--
|
|
428
|
-
background: var(--
|
|
426
|
+
font-family: var(--sh3-font-ui);
|
|
427
|
+
color: var(--sh3-fg, #e0e0e0);
|
|
428
|
+
background: var(--sh3-bg, #1e1e1e);
|
|
429
429
|
padding: 16px;
|
|
430
430
|
height: 100%;
|
|
431
431
|
overflow-y: auto;
|
|
@@ -448,22 +448,22 @@
|
|
|
448
448
|
flex: 1;
|
|
449
449
|
min-width: 160px;
|
|
450
450
|
padding: 6px 10px;
|
|
451
|
-
background: var(--
|
|
452
|
-
color: var(--
|
|
453
|
-
border: 1px solid var(--
|
|
454
|
-
border-radius: var(--
|
|
451
|
+
background: var(--sh3-input-bg, #2a2a2a);
|
|
452
|
+
color: var(--sh3-fg, #e0e0e0);
|
|
453
|
+
border: 1px solid var(--sh3-border, #444);
|
|
454
|
+
border-radius: var(--sh3-radius);
|
|
455
455
|
font-family: inherit;
|
|
456
456
|
font-size: 0.875rem;
|
|
457
457
|
}
|
|
458
458
|
.store-search::placeholder {
|
|
459
|
-
color: var(--
|
|
459
|
+
color: var(--sh3-fg-muted, #888);
|
|
460
460
|
}
|
|
461
461
|
.store-filter {
|
|
462
462
|
padding: 6px 10px;
|
|
463
|
-
background: var(--
|
|
464
|
-
color: var(--
|
|
465
|
-
border: 1px solid var(--
|
|
466
|
-
border-radius: var(--
|
|
463
|
+
background: var(--sh3-input-bg, #2a2a2a);
|
|
464
|
+
color: var(--sh3-fg, #e0e0e0);
|
|
465
|
+
border: 1px solid var(--sh3-border, #444);
|
|
466
|
+
border-radius: var(--sh3-radius);
|
|
467
467
|
font-family: inherit;
|
|
468
468
|
font-size: 0.875rem;
|
|
469
469
|
}
|
|
@@ -474,10 +474,10 @@
|
|
|
474
474
|
.store-error {
|
|
475
475
|
padding: 8px 12px;
|
|
476
476
|
margin-bottom: 12px;
|
|
477
|
-
background: color-mix(in srgb, var(--
|
|
478
|
-
color: var(--
|
|
479
|
-
border: 1px solid var(--
|
|
480
|
-
border-radius: var(--
|
|
477
|
+
background: color-mix(in srgb, var(--sh3-error, #d32f2f) 15%, transparent);
|
|
478
|
+
color: var(--sh3-error, #d32f2f);
|
|
479
|
+
border: 1px solid var(--sh3-error, #d32f2f);
|
|
480
|
+
border-radius: var(--sh3-radius);
|
|
481
481
|
font-size: 0.8125rem;
|
|
482
482
|
}
|
|
483
483
|
.store-grid {
|
|
@@ -486,16 +486,16 @@
|
|
|
486
486
|
gap: 12px;
|
|
487
487
|
}
|
|
488
488
|
.store-card {
|
|
489
|
-
background: var(--
|
|
490
|
-
border: 1px solid var(--
|
|
491
|
-
border-radius: var(--
|
|
489
|
+
background: var(--sh3-input-bg, #2a2a2a);
|
|
490
|
+
border: 1px solid var(--sh3-border, #444);
|
|
491
|
+
border-radius: var(--sh3-radius-md);
|
|
492
492
|
padding: 14px;
|
|
493
493
|
display: flex;
|
|
494
494
|
flex-direction: column;
|
|
495
495
|
gap: 8px;
|
|
496
496
|
}
|
|
497
497
|
.store-card:hover {
|
|
498
|
-
border-color: var(--
|
|
498
|
+
border-color: var(--sh3-accent, #007acc);
|
|
499
499
|
}
|
|
500
500
|
.store-card-header {
|
|
501
501
|
display: flex;
|
|
@@ -513,7 +513,7 @@
|
|
|
513
513
|
.store-icon-img {
|
|
514
514
|
width: 36px;
|
|
515
515
|
height: 36px;
|
|
516
|
-
border-radius: var(--
|
|
516
|
+
border-radius: var(--sh3-radius);
|
|
517
517
|
object-fit: cover;
|
|
518
518
|
}
|
|
519
519
|
.store-icon-placeholder {
|
|
@@ -522,9 +522,9 @@
|
|
|
522
522
|
display: flex;
|
|
523
523
|
align-items: center;
|
|
524
524
|
justify-content: center;
|
|
525
|
-
background: var(--
|
|
525
|
+
background: var(--sh3-accent, #007acc);
|
|
526
526
|
color: #fff;
|
|
527
|
-
border-radius: var(--
|
|
527
|
+
border-radius: var(--sh3-radius);
|
|
528
528
|
font-weight: 700;
|
|
529
529
|
font-size: 1rem;
|
|
530
530
|
}
|
|
@@ -541,39 +541,39 @@
|
|
|
541
541
|
.store-card-badge {
|
|
542
542
|
font-size: 0.6875rem;
|
|
543
543
|
padding: 1px 6px;
|
|
544
|
-
border-radius: var(--
|
|
544
|
+
border-radius: var(--sh3-radius-sm);
|
|
545
545
|
text-transform: uppercase;
|
|
546
546
|
font-weight: 600;
|
|
547
547
|
letter-spacing: 0.04em;
|
|
548
548
|
}
|
|
549
549
|
.badge-shard {
|
|
550
|
-
background: color-mix(in srgb, var(--
|
|
551
|
-
color: var(--
|
|
550
|
+
background: color-mix(in srgb, var(--sh3-accent, #007acc) 25%, transparent);
|
|
551
|
+
color: var(--sh3-accent, #007acc);
|
|
552
552
|
}
|
|
553
553
|
.badge-app {
|
|
554
|
-
background: color-mix(in srgb, var(--
|
|
555
|
-
color: var(--
|
|
554
|
+
background: color-mix(in srgb, var(--sh3-success, #4caf50) 25%, transparent);
|
|
555
|
+
color: var(--sh3-success, #4caf50);
|
|
556
556
|
}
|
|
557
557
|
.store-card-version {
|
|
558
558
|
font-size: 0.75rem;
|
|
559
|
-
color: var(--
|
|
559
|
+
color: var(--sh3-fg-muted, #888);
|
|
560
560
|
}
|
|
561
561
|
.store-card-desc {
|
|
562
562
|
margin: 0;
|
|
563
563
|
font-size: 0.8125rem;
|
|
564
|
-
color: var(--
|
|
564
|
+
color: var(--sh3-fg-muted, #888);
|
|
565
565
|
line-height: 1.4;
|
|
566
566
|
}
|
|
567
567
|
.store-card-author {
|
|
568
568
|
font-size: 0.75rem;
|
|
569
|
-
color: var(--
|
|
569
|
+
color: var(--sh3-fg-muted, #888);
|
|
570
570
|
}
|
|
571
571
|
.store-card-warning {
|
|
572
572
|
font-size: 0.75rem;
|
|
573
|
-
color: var(--
|
|
573
|
+
color: var(--sh3-warning, #ff9800);
|
|
574
574
|
padding: 4px 8px;
|
|
575
|
-
background: color-mix(in srgb, var(--
|
|
576
|
-
border-radius: var(--
|
|
575
|
+
background: color-mix(in srgb, var(--sh3-warning, #ff9800) 10%, transparent);
|
|
576
|
+
border-radius: var(--sh3-radius-sm);
|
|
577
577
|
}
|
|
578
578
|
.store-card-actions {
|
|
579
579
|
margin-top: auto;
|
|
@@ -590,7 +590,7 @@
|
|
|
590
590
|
}
|
|
591
591
|
.store-installed-label {
|
|
592
592
|
font-size: 0.8125rem;
|
|
593
|
-
color: var(--
|
|
593
|
+
color: var(--sh3-success, #4caf50);
|
|
594
594
|
font-weight: 600;
|
|
595
595
|
}
|
|
596
596
|
.store-install-wrap {
|
|
@@ -601,12 +601,12 @@
|
|
|
601
601
|
}
|
|
602
602
|
.store-card-missing {
|
|
603
603
|
font-size: 0.75rem;
|
|
604
|
-
color: var(--
|
|
604
|
+
color: var(--sh3-warning, #ff9800);
|
|
605
605
|
}
|
|
606
606
|
.store-update-btn {
|
|
607
607
|
padding: 5px 14px;
|
|
608
|
-
background: var(--
|
|
609
|
-
color: var(--
|
|
608
|
+
background: var(--sh3-warning, #fbbf24);
|
|
609
|
+
color: var(--sh3-fg-on-warning, #1a1b1e);
|
|
610
610
|
font-size: 0.8125rem;
|
|
611
611
|
}
|
|
612
612
|
.store-update-btn:hover:not(:disabled) {
|
|
@@ -619,7 +619,7 @@
|
|
|
619
619
|
.store-empty {
|
|
620
620
|
text-align: center;
|
|
621
621
|
padding: 32px 16px;
|
|
622
|
-
color: var(--
|
|
622
|
+
color: var(--sh3-fg-muted, #888);
|
|
623
623
|
font-size: 0.875rem;
|
|
624
624
|
}
|
|
625
625
|
.store-registries {
|
|
@@ -633,23 +633,23 @@
|
|
|
633
633
|
align-items: center;
|
|
634
634
|
justify-content: space-between;
|
|
635
635
|
padding: 4px 8px;
|
|
636
|
-
background: var(--
|
|
637
|
-
border: 1px solid var(--
|
|
638
|
-
border-radius: var(--
|
|
636
|
+
background: var(--sh3-input-bg, #2a2a2a);
|
|
637
|
+
border: 1px solid var(--sh3-border, #444);
|
|
638
|
+
border-radius: var(--sh3-radius);
|
|
639
639
|
font-size: 0.8125rem;
|
|
640
640
|
}
|
|
641
641
|
.store-registry-url {
|
|
642
642
|
overflow: hidden;
|
|
643
643
|
text-overflow: ellipsis;
|
|
644
644
|
white-space: nowrap;
|
|
645
|
-
color: var(--
|
|
645
|
+
color: var(--sh3-fg-muted, #888);
|
|
646
646
|
}
|
|
647
647
|
.store-registry-remove {
|
|
648
648
|
padding: 2px 8px;
|
|
649
649
|
background: transparent;
|
|
650
|
-
color: var(--
|
|
651
|
-
border: 1px solid var(--
|
|
652
|
-
border-radius: var(--
|
|
650
|
+
color: var(--sh3-error, #d32f2f);
|
|
651
|
+
border: 1px solid var(--sh3-error, #d32f2f);
|
|
652
|
+
border-radius: var(--sh3-radius-sm);
|
|
653
653
|
font-size: 0.75rem;
|
|
654
654
|
flex-shrink: 0;
|
|
655
655
|
margin-left: 8px;
|
|
@@ -662,15 +662,15 @@
|
|
|
662
662
|
.store-registry-input {
|
|
663
663
|
flex: 1;
|
|
664
664
|
padding: 6px 10px;
|
|
665
|
-
background: var(--
|
|
666
|
-
color: var(--
|
|
667
|
-
border: 1px solid var(--
|
|
668
|
-
border-radius: var(--
|
|
665
|
+
background: var(--sh3-input-bg, #2a2a2a);
|
|
666
|
+
color: var(--sh3-fg, #e0e0e0);
|
|
667
|
+
border: 1px solid var(--sh3-border, #444);
|
|
668
|
+
border-radius: var(--sh3-radius);
|
|
669
669
|
font-family: inherit;
|
|
670
670
|
font-size: 0.8125rem;
|
|
671
671
|
}
|
|
672
672
|
.store-registry-input::placeholder {
|
|
673
|
-
color: var(--
|
|
673
|
+
color: var(--sh3-fg-muted, #888);
|
|
674
674
|
}
|
|
675
675
|
.store-add-btn {
|
|
676
676
|
font-size: 0.8125rem;
|