sh3-core 0.12.0 → 0.13.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 (88) hide show
  1. package/dist/__test__/reset.js +2 -0
  2. package/dist/actions/MenuButton.svelte +2 -1
  3. package/dist/actions/contextMenuModel.js +8 -0
  4. package/dist/actions/contextMenuModel.test.js +22 -2
  5. package/dist/actions/listeners.js +17 -6
  6. package/dist/actions/listeners.test.js +42 -2
  7. package/dist/api.d.ts +16 -0
  8. package/dist/api.js +14 -0
  9. package/dist/apps/lifecycle.js +3 -0
  10. package/dist/apps/lifecycle.test.js +45 -0
  11. package/dist/host.js +12 -0
  12. package/dist/navigation/back-stack.d.ts +29 -0
  13. package/dist/navigation/back-stack.js +87 -0
  14. package/dist/navigation/back-stack.test.d.ts +1 -0
  15. package/dist/navigation/back-stack.test.js +145 -0
  16. package/dist/navigation/index.d.ts +2 -0
  17. package/dist/navigation/index.js +6 -0
  18. package/dist/navigation/platform-web.d.ts +3 -0
  19. package/dist/navigation/platform-web.js +54 -0
  20. package/dist/navigation/platform-web.test.d.ts +1 -0
  21. package/dist/navigation/platform-web.test.js +96 -0
  22. package/dist/overlays/modal.js +7 -0
  23. package/dist/overlays/modal.test.js +35 -0
  24. package/dist/overlays/popup.js +7 -0
  25. package/dist/overlays/popup.test.js +33 -0
  26. package/dist/platform/index.d.ts +15 -0
  27. package/dist/platform/index.js +47 -0
  28. package/dist/primitives/base.css +17 -6
  29. package/dist/primitives/widgets/ColorSwatch.svelte +66 -0
  30. package/dist/primitives/widgets/ColorSwatch.svelte.d.ts +9 -0
  31. package/dist/primitives/widgets/Field.svelte +127 -0
  32. package/dist/primitives/widgets/Field.svelte.d.ts +20 -0
  33. package/dist/primitives/widgets/FilePicker.d.ts +3 -0
  34. package/dist/primitives/widgets/FilePicker.js +19 -0
  35. package/dist/primitives/widgets/FilePicker.svelte +82 -0
  36. package/dist/primitives/widgets/FilePicker.svelte.d.ts +14 -0
  37. package/dist/primitives/widgets/FilePicker.test.d.ts +1 -0
  38. package/dist/primitives/widgets/FilePicker.test.js +44 -0
  39. package/dist/primitives/widgets/IconToggleGroup.d.ts +2 -0
  40. package/dist/primitives/widgets/IconToggleGroup.js +8 -0
  41. package/dist/primitives/widgets/IconToggleGroup.svelte +89 -0
  42. package/dist/primitives/widgets/IconToggleGroup.svelte.d.ts +17 -0
  43. package/dist/primitives/widgets/IconToggleGroup.test.d.ts +1 -0
  44. package/dist/primitives/widgets/IconToggleGroup.test.js +19 -0
  45. package/dist/primitives/widgets/NumberInput.d.ts +6 -0
  46. package/dist/primitives/widgets/NumberInput.js +19 -0
  47. package/dist/primitives/widgets/NumberInput.svelte +176 -0
  48. package/dist/primitives/widgets/NumberInput.svelte.d.ts +18 -0
  49. package/dist/primitives/widgets/NumberInput.test.d.ts +1 -0
  50. package/dist/primitives/widgets/NumberInput.test.js +28 -0
  51. package/dist/primitives/widgets/RangeSlider.d.ts +2 -0
  52. package/dist/primitives/widgets/RangeSlider.js +7 -0
  53. package/dist/primitives/widgets/RangeSlider.svelte +128 -0
  54. package/dist/primitives/widgets/RangeSlider.svelte.d.ts +14 -0
  55. package/dist/primitives/widgets/RangeSlider.test.d.ts +1 -0
  56. package/dist/primitives/widgets/RangeSlider.test.js +14 -0
  57. package/dist/primitives/widgets/Segmented.d.ts +9 -0
  58. package/dist/primitives/widgets/Segmented.js +28 -0
  59. package/dist/primitives/widgets/Segmented.svelte +89 -0
  60. package/dist/primitives/widgets/Segmented.svelte.d.ts +11 -0
  61. package/dist/primitives/widgets/Segmented.test.d.ts +1 -0
  62. package/dist/primitives/widgets/Segmented.test.js +24 -0
  63. package/dist/primitives/widgets/Select.d.ts +11 -0
  64. package/dist/primitives/widgets/Select.js +42 -0
  65. package/dist/primitives/widgets/Select.svelte +167 -0
  66. package/dist/primitives/widgets/Select.svelte.d.ts +15 -0
  67. package/dist/primitives/widgets/Select.test.d.ts +1 -0
  68. package/dist/primitives/widgets/Select.test.js +68 -0
  69. package/dist/primitives/widgets/Slider.d.ts +6 -0
  70. package/dist/primitives/widgets/Slider.js +19 -0
  71. package/dist/primitives/widgets/Slider.svelte +208 -0
  72. package/dist/primitives/widgets/Slider.svelte.d.ts +16 -0
  73. package/dist/primitives/widgets/Slider.test.d.ts +1 -0
  74. package/dist/primitives/widgets/Slider.test.js +31 -0
  75. package/dist/primitives/widgets/SliderGroup.svelte +61 -0
  76. package/dist/primitives/widgets/SliderGroup.svelte.d.ts +19 -0
  77. package/dist/primitives/widgets/Textarea.svelte +84 -0
  78. package/dist/primitives/widgets/Textarea.svelte.d.ts +17 -0
  79. package/dist/primitives/widgets/_select-listbox.svelte +228 -0
  80. package/dist/primitives/widgets/_select-listbox.svelte.d.ts +18 -0
  81. package/dist/shell-shard/Terminal.svelte +1 -4
  82. package/dist/shell-shard/verbs/index.js +2 -0
  83. package/dist/shell-shard/verbs/reset.d.ts +2 -0
  84. package/dist/shell-shard/verbs/reset.js +26 -0
  85. package/dist/tokens.css +34 -0
  86. package/dist/version.d.ts +1 -1
  87. package/dist/version.js +1 -1
  88. package/package.json +1 -1
@@ -78,10 +78,6 @@
78
78
  let focusLocked = $state(false);
79
79
  let targetShard = $state<string | null>(null);
80
80
 
81
- function toggleFocusLock(): void {
82
- focusLocked = !focusLocked;
83
- }
84
-
85
81
  // Toolbar slot registry
86
82
  const toolbarRegistry = new ToolbarSlotRegistry();
87
83
  toolbarRegistry.register({ id: 'mode', order: 10, visible: () => true, component: ModeSlot });
@@ -101,6 +97,7 @@
101
97
  const found = getActiveViewId(child);
102
98
  if (found !== null) return found;
103
99
  }
100
+ return null;
104
101
  }
105
102
  // slot node
106
103
  return node.viewId ?? null;
@@ -13,6 +13,7 @@ import { pwdVerb, cdVerb, whoamiVerb } from './session';
13
13
  import { envVerb } from './env';
14
14
  import { lsVerb } from './ls';
15
15
  import { catVerb } from './cat';
16
+ import { resetVerb } from './reset';
16
17
  export function registerV1Verbs(ctx) {
17
18
  ctx.registerVerb(makeHelpVerb());
18
19
  ctx.registerVerb(clearVerb);
@@ -33,4 +34,5 @@ export function registerV1Verbs(ctx) {
33
34
  ctx.registerVerb(whoamiVerb);
34
35
  ctx.registerVerb(lsVerb);
35
36
  ctx.registerVerb(catVerb);
37
+ ctx.registerVerb(resetVerb);
36
38
  }
@@ -0,0 +1,2 @@
1
+ import type { Verb } from '../../verbs/types';
2
+ export declare const resetVerb: Verb;
@@ -0,0 +1,26 @@
1
+ import { wipeUserData } from '../../platform/index';
2
+ export const resetVerb = {
3
+ name: 'reset',
4
+ summary: 'Wipe SH3 state and reload (preserves documents). Requires --confirm.',
5
+ async run(ctx, args) {
6
+ if (!args.includes('--confirm')) {
7
+ ctx.scrollback.push({
8
+ kind: 'status',
9
+ text: 'reset: erases the package registry, all zone state (including Tauri stores), ' +
10
+ 'and theme overrides, then reloads. Documents are preserved. ' +
11
+ 'Re-run as `reset --confirm` to proceed.',
12
+ level: 'warn',
13
+ ts: Date.now(),
14
+ });
15
+ return;
16
+ }
17
+ ctx.scrollback.push({
18
+ kind: 'status',
19
+ text: 'reset: wiping data…',
20
+ level: 'info',
21
+ ts: Date.now(),
22
+ });
23
+ await wipeUserData();
24
+ location.reload();
25
+ },
26
+ };
package/dist/tokens.css CHANGED
@@ -86,6 +86,40 @@
86
86
  --shell-z-layer-4: 400; /* modals */
87
87
  --shell-z-layer-5: 500; /* toasts */
88
88
  --shell-z-layer-6: 600; /* command palette / AI input */
89
+
90
+ /* ── Widget tokens (ADR-022) ─────────────────────────────────────── */
91
+
92
+ /* Field metrics — fields, selects, number inputs share these */
93
+ --shell-field-height-sm: 24px;
94
+ --shell-field-height-md: 28px;
95
+ --shell-field-pad-x: 10px;
96
+
97
+ /* Slider tracks */
98
+ --shell-track-bg: var(--shell-bg-sunken);
99
+ --shell-track-border: var(--shell-border);
100
+ --shell-track-fill: var(--shell-accent);
101
+
102
+ /* Slider thumbs — pinned to a fixed near-white instead of var(--shell-fg)
103
+ so light themes don't render a dark thumb. Themes that want a different
104
+ thumb override --shell-thumb-bg directly. */
105
+ --shell-thumb-bg: #e4e6eb;
106
+ --shell-thumb-border: var(--shell-accent);
107
+ --shell-thumb-shadow: var(--shell-shadow-sm);
108
+
109
+ /* Slider ticks */
110
+ --shell-tick-bg: var(--shell-fg-subtle);
111
+ --shell-tick-strong-bg: var(--shell-border-strong);
112
+
113
+ /* Widget radii */
114
+ --shell-widget-radius: var(--shell-radius);
115
+ --shell-widget-radius-pill: 999px;
116
+
117
+ /* Minimal shadow scale (1 token, just what thumbs need) */
118
+ --shell-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
119
+
120
+ /* Minimal motion scale */
121
+ --shell-motion-fast: 120ms;
122
+ --shell-ease-standard: cubic-bezier(0.2, 0, 0, 1);
89
123
  }
90
124
 
91
125
  /* Base reset — intentionally minimal */
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Auto-generated from package.json — do not edit manually. */
2
- export declare const VERSION = "0.12.0";
2
+ export declare const VERSION = "0.13.1";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Auto-generated from package.json — do not edit manually. */
2
- export const VERSION = '0.12.0';
2
+ export const VERSION = '0.13.1';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sh3-core",
3
- "version": "0.12.0",
3
+ "version": "0.13.1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"