@daltonr/pathwrite-solid 0.13.0 → 0.14.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/README.md CHANGED
@@ -35,7 +35,7 @@ import { PathShell } from "@daltonr/pathwrite-solid";
35
35
  import "@daltonr/pathwrite-solid/styles.css";
36
36
  import type { PathDefinition, PathData } from "@daltonr/pathwrite-core";
37
37
 
38
- interface SignupData extends PathData {
38
+ export interface SignupData extends PathData {
39
39
  name: string;
40
40
  email: string;
41
41
  }
@@ -66,6 +66,7 @@ export function SignupFlow() {
66
66
  ```tsx
67
67
  // DetailsStep.tsx
68
68
  import { usePathContext } from "@daltonr/pathwrite-solid";
69
+ import type { SignupData } from "./SignupFlow";
69
70
 
70
71
  export function DetailsStep() {
71
72
  const { snapshot, setData } = usePathContext<SignupData>();
package/dist/index.css CHANGED
@@ -53,7 +53,12 @@
53
53
  flex-direction: column;
54
54
  gap: var(--pw-shell-gap);
55
55
  padding: var(--pw-shell-padding);
56
- font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
56
+ font-family:
57
+ system-ui,
58
+ -apple-system,
59
+ "Segoe UI",
60
+ Roboto,
61
+ sans-serif;
57
62
  color: var(--pw-color-text);
58
63
  }
59
64
 
@@ -397,7 +402,9 @@
397
402
  border-radius: var(--pw-btn-radius);
398
403
  cursor: pointer;
399
404
  font-size: 14px;
400
- transition: background 0.15s ease, border-color 0.15s ease;
405
+ transition:
406
+ background 0.15s ease,
407
+ border-color 0.15s ease;
401
408
  }
402
409
 
403
410
  .pw-shell__btn:hover:not(:disabled) {
@@ -422,7 +429,9 @@
422
429
  }
423
430
 
424
431
  @keyframes pw-spin {
425
- to { transform: rotate(360deg); }
432
+ to {
433
+ transform: rotate(360deg);
434
+ }
426
435
  }
427
436
 
428
437
  .pw-shell__btn--next.pw-shell__btn--loading {
@@ -515,4 +524,3 @@
515
524
  .pw-shell__btn--suspend:hover:not(:disabled) {
516
525
  background: var(--pw-color-primary-light);
517
526
  }
518
-
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type Component, type JSX, type Accessor } from "solid-js";
2
2
  import { PathData, PathDefinition, PathEngine, PathEvent, PathSnapshot, ProgressLayout } from "@daltonr/pathwrite-core";
3
- export interface UsePathOptions {
3
+ export interface UsePathOptions<TData extends PathData = PathData> {
4
4
  /**
5
5
  * An externally-managed `PathEngine` to subscribe to — for example, the engine
6
6
  * returned by `restoreOrStart()` from `@daltonr/pathwrite-store`.
@@ -17,9 +17,9 @@ export interface UsePathOptions {
17
17
  * async `restoreOrStart()`) or is swapped is adopted — the hook
18
18
  * re-subscribes and re-seeds its snapshot from the new engine.
19
19
  */
20
- engine?: PathEngine | Accessor<PathEngine | undefined>;
20
+ engine?: PathEngine<TData> | Accessor<PathEngine<TData> | undefined>;
21
21
  /** Called for every engine event (stateChanged, completed, cancelled, resumed). */
22
- onEvent?: (event: PathEvent) => void;
22
+ onEvent?: (event: PathEvent<TData>) => void;
23
23
  }
24
24
  export interface UsePathReturn<TData extends PathData = PathData> {
25
25
  /**
@@ -28,9 +28,9 @@ export interface UsePathReturn<TData extends PathData = PathData> {
28
28
  */
29
29
  snapshot: Accessor<PathSnapshot<TData> | null>;
30
30
  /** Start (or restart) a path. */
31
- start: (path: PathDefinition<any>, initialData?: PathData) => Promise<void>;
32
- /** Push a sub-path onto the stack. Requires an active path. Pass an optional `meta` object for correlation — it is returned unchanged to the parent step's `onSubPathComplete` / `onSubPathCancel` hooks. */
33
- startSubPath: (path: PathDefinition<any>, initialData?: PathData, meta?: Record<string, unknown>) => Promise<void>;
31
+ start: (path: PathDefinition<TData>, initialData?: Partial<TData>) => Promise<void>;
32
+ /** Push a sub-path onto the stack. Requires an active path. A sub-path has its own data, so any definition is accepted. Pass an optional `meta` object for correlation — it is returned unchanged to the parent step's `onSubPathComplete` / `onSubPathCancel` hooks. */
33
+ startSubPath: (path: PathDefinition, initialData?: PathData, meta?: Record<string, unknown>) => Promise<void>;
34
34
  /** Advance one step. Completes the path on the last step. */
35
35
  next: () => Promise<void>;
36
36
  /** Go back one step. No-op when already on the first step of a top-level path. Pops back to the parent path when on the first step of a sub-path. */
@@ -63,7 +63,7 @@ export interface UsePathReturn<TData extends PathData = PathData> {
63
63
  /** Trigger inline validation on all steps without navigating. Sets `snapshot().hasValidated`. */
64
64
  validate: () => void;
65
65
  }
66
- export declare function usePath<TData extends PathData = PathData>(options?: UsePathOptions): UsePathReturn<TData>;
66
+ export declare function usePath<TData extends PathData = PathData>(options?: UsePathOptions<TData>): UsePathReturn<TData>;
67
67
  /**
68
68
  * Access the nearest `PathShell`'s path instance and optional services object.
69
69
  * Throws if used outside of a PathShell component.
@@ -92,7 +92,8 @@ export interface PathShellActions {
92
92
  suspend: () => Promise<void>;
93
93
  }
94
94
  export interface PathShellProps {
95
- path: PathDefinition<any>;
95
+ /** The path to run. The shell is not typed over the path's data, so a definition of any data type is accepted. */
96
+ path: PathDefinition;
96
97
  /**
97
98
  * An externally-managed engine — for example, the engine returned by
98
99
  * `restoreOrStart()` from `@daltonr/pathwrite-store`. When supplied, `PathShell` will skip its own
@@ -175,5 +176,5 @@ export interface PathShellProps {
175
176
  completionContent?: (snapshot: PathSnapshot) => JSX.Element;
176
177
  }
177
178
  export declare const PathShell: Component<PathShellProps>;
178
- export type { PathData, FieldErrors, PathDefinition, PathEvent, PathSnapshot, PathStep, PathStepContext, ProgressLayout, RootProgress, SerializedPathState, } from "@daltonr/pathwrite-core";
179
+ export type { PathData, FieldErrors, PathDefinition, PathEvent, PathSnapshot, StepStatus, PathStep, PathStepContext, ProgressLayout, RootProgress, SerializedPathState, } from "@daltonr/pathwrite-core";
179
180
  export { PathEngine } from "@daltonr/pathwrite-core";
package/dist/index.js CHANGED
@@ -41,13 +41,28 @@ export function usePath(options) {
41
41
  const cancel = () => engine.cancel();
42
42
  const goToStep = (stepId, options) => engine.goToStep(stepId, options);
43
43
  const goToStepChecked = (stepId, options) => engine.goToStepChecked(stepId, options);
44
- const setData = ((key, value) => engine.setData(key, value));
44
+ const setData = (key, value) => engine.setData(key, value);
45
45
  const resetStep = () => engine.resetStep();
46
46
  const restart = () => engine.restart();
47
47
  const retry = () => engine.retry();
48
48
  const suspend = () => engine.suspend();
49
49
  const validate = () => engine.validate();
50
- return { snapshot, start, startSubPath, next, previous, cancel, goToStep, goToStepChecked, setData, resetStep, restart, retry, suspend, validate };
50
+ return {
51
+ snapshot,
52
+ start,
53
+ startSubPath,
54
+ next,
55
+ previous,
56
+ cancel,
57
+ goToStep,
58
+ goToStepChecked,
59
+ setData,
60
+ resetStep,
61
+ restart,
62
+ retry,
63
+ suspend,
64
+ validate,
65
+ };
51
66
  }
52
67
  const PathContext = createContext(undefined);
53
68
  /**
@@ -100,11 +115,14 @@ export const PathShell = (props) => {
100
115
  if (event.type === "cancelled")
101
116
  props.onCancel?.(event.data);
102
117
  if (props.restoreKey && outerCtx && event.type === "stateChanged") {
103
- outerCtx.path.setData(props.restoreKey, { ...event.snapshot, serializedState: currentEngine().exportState() });
118
+ void outerCtx.path.setData(props.restoreKey, {
119
+ ...event.snapshot,
120
+ serializedState: currentEngine().exportState(),
121
+ });
104
122
  }
105
123
  },
106
124
  });
107
- const { snapshot, start, next, previous, cancel, goToStep, goToStepChecked, setData, restart, retry, suspend, validate } = pathReturn;
125
+ const { snapshot, start, next, previous, cancel, goToStep, goToStepChecked, setData, restart, retry, suspend, validate, } = pathReturn;
108
126
  onMount(() => {
109
127
  if (props.autoStart !== false && !props.engine && !restoredEngine) {
110
128
  let startData = props.initialData ?? {};
@@ -129,8 +147,12 @@ export const PathShell = (props) => {
129
147
  });
130
148
  const contextValue = { path: pathReturn, services: props.services ?? null };
131
149
  const actions = {
132
- next, previous, cancel, goToStep, goToStepChecked,
133
- setData: (key, value) => setData(key, value),
150
+ next,
151
+ previous,
152
+ cancel,
153
+ goToStep,
154
+ goToStepChecked,
155
+ setData,
134
156
  restart: () => restart(),
135
157
  retry: () => retry(),
136
158
  suspend: () => suspend(),
@@ -149,9 +171,10 @@ export const PathShell = (props) => {
149
171
  // A custom header is the consumer's decision: show it whenever progress is
150
172
  // not hidden, even for a single-step path. Only the *default* header hides
151
173
  // for one step (same rule as the React / Vue shells).
152
- const showActive = () => !effectiveHideProgress() && (props.renderHeader
153
- ? true
154
- : (snap().stepCount > 1 || snap().nestingLevel > 0) && props.progressLayout !== "rootOnly");
174
+ const showActive = () => !effectiveHideProgress() &&
175
+ (props.renderHeader
176
+ ? true
177
+ : (snap().stepCount > 1 || snap().nestingLevel > 0) && props.progressLayout !== "rootOnly");
155
178
  // The step render function must only run when the *step* changes. The
156
179
  // snapshot signal is `{ equals: false }` (a new object on every engine
157
180
  // event), so reading it in a tracked render position would tear the step
@@ -179,8 +202,14 @@ export const PathShell = (props) => {
179
202
  // current values reactively even though the step itself is created once.
180
203
  const liveSnapshot = new Proxy({}, {
181
204
  get: (_target, key) => snapshot()?.[key],
182
- has: (_target, key) => { const s = snapshot(); return s ? key in s : false; },
183
- ownKeys: () => { const s = snapshot(); return s ? Reflect.ownKeys(s) : []; },
205
+ has: (_target, key) => {
206
+ const s = snapshot();
207
+ return s ? key in s : false;
208
+ },
209
+ ownKeys: () => {
210
+ const s = snapshot();
211
+ return s ? Reflect.ownKeys(s) : [];
212
+ },
184
213
  getOwnPropertyDescriptor: (_target, key) => {
185
214
  const s = snapshot();
186
215
  const d = s ? Object.getOwnPropertyDescriptor(s, key) : undefined;
@@ -201,8 +230,7 @@ export const PathShell = (props) => {
201
230
  const showValidation = () => props.validationDisplay !== "inline" &&
202
231
  (snap().hasAttemptedNext || snap().hasValidated) &&
203
232
  Object.keys(snap().fieldErrors).length > 0;
204
- const showWarnings = () => props.validationDisplay !== "inline" &&
205
- Object.keys(snap().fieldWarnings).length > 0;
233
+ const showWarnings = () => props.validationDisplay !== "inline" && Object.keys(snap().fieldWarnings).length > 0;
206
234
  const showBlockingError = () => props.validationDisplay !== "inline" &&
207
235
  (snap().hasAttemptedNext || snap().hasValidated) &&
208
236
  !!snap().blockingError;
@@ -212,13 +240,7 @@ export const PathShell = (props) => {
212
240
  return fl;
213
241
  return snap().stepCount === 1 && snap().nestingLevel === 0 ? "form" : "wizard";
214
242
  };
215
- return (_jsx(PathContext.Provider, { value: contextValue, children: _jsx(Show, { when: snapshot(), fallback: _jsx("div", { class: "pw-shell", children: _jsxs("div", { class: "pw-shell__empty", children: [_jsx("p", { children: "No active path." }), _jsx(Show, { when: props.autoStart === false, children: _jsx("button", { type: "button", class: "pw-shell__start-btn", onClick: () => start(props.path, props.initialData ?? {}), children: "Start" }) })] }) }), children: _jsxs("div", { class: shellClass(), children: [_jsx(Show, { when: showRoot(), children: _jsx(SolidRootProgress, { root: snap().rootProgress }) }), _jsx(Show, { when: showActive(), children: props.renderHeader
216
- ? props.renderHeader(snap())
217
- : _jsx(SolidHeader, { snapshot: snap() }) }), _jsx(Show, { when: snap().status === "completed", children: _jsx("div", { class: "pw-shell__body", children: props.completionContent
218
- ? props.completionContent(snap())
219
- : (_jsxs("div", { class: "pw-shell__completion", children: [_jsx("p", { class: "pw-shell__completion-message", children: "All done." }), _jsx("button", { type: "button", class: "pw-shell__completion-restart", onClick: () => restart(), children: "Start over" })] })) }) }), _jsxs(Show, { when: snap().status !== "completed", children: [_jsx("div", { class: "pw-shell__body", children: _jsx(StepContent, {}) }), _jsx(Show, { when: showValidation(), children: _jsx("ul", { class: "pw-shell__validation", children: _jsx(For, { each: Object.entries(snap().fieldErrors), children: ([key, msg]) => (_jsxs("li", { class: "pw-shell__validation-item", children: [_jsx(Show, { when: key !== "_", children: _jsx("span", { class: "pw-shell__validation-label", children: formatFieldKey(key) }) }), msg] })) }) }) }), _jsx(Show, { when: showWarnings(), children: _jsx("ul", { class: "pw-shell__warnings", children: _jsx(For, { each: Object.entries(snap().fieldWarnings), children: ([key, msg]) => (_jsxs("li", { class: "pw-shell__warnings-item", children: [_jsx(Show, { when: key !== "_", children: _jsx("span", { class: "pw-shell__warnings-label", children: formatFieldKey(key) }) }), msg] })) }) }) }), _jsx(Show, { when: showBlockingError(), children: _jsx("p", { class: "pw-shell__blocking-error", children: snap().blockingError }) }), _jsx(Show, { when: snap().status === "error" && snap().error, fallback: _jsx(Show, { when: !effectiveHideFooter(), children: props.renderFooter
220
- ? props.renderFooter(snap(), actions)
221
- : _jsx(SolidFooter, { snapshot: snap(), actions: actions, backLabel: props.backLabel ?? "Previous", nextLabel: props.nextLabel ?? "Next", completeLabel: props.completeLabel ?? "Complete", loadingLabel: props.loadingLabel, cancelLabel: props.cancelLabel ?? "Cancel", hideCancel: props.hideCancel ?? false, layout: resolvedFooterLayout() }) }), children: _jsx(SolidErrorPanel, { snapshot: snap(), actions: actions }) })] })] }) }) }));
243
+ return (_jsx(PathContext.Provider, { value: contextValue, children: _jsx(Show, { when: snapshot(), fallback: _jsx("div", { class: "pw-shell", children: _jsxs("div", { class: "pw-shell__empty", children: [_jsx("p", { children: "No active path." }), _jsx(Show, { when: props.autoStart === false, children: _jsx("button", { type: "button", class: "pw-shell__start-btn", onClick: () => start(props.path, props.initialData ?? {}), children: "Start" }) })] }) }), children: _jsxs("div", { class: shellClass(), children: [_jsx(Show, { when: showRoot(), children: _jsx(SolidRootProgress, { root: snap().rootProgress }) }), _jsx(Show, { when: showActive(), children: props.renderHeader ? props.renderHeader(snap()) : _jsx(SolidHeader, { snapshot: snap() }) }), _jsx(Show, { when: snap().status === "completed", children: _jsx("div", { class: "pw-shell__body", children: props.completionContent ? (props.completionContent(snap())) : (_jsxs("div", { class: "pw-shell__completion", children: [_jsx("p", { class: "pw-shell__completion-message", children: "All done." }), _jsx("button", { type: "button", class: "pw-shell__completion-restart", onClick: () => restart(), children: "Start over" })] })) }) }), _jsxs(Show, { when: snap().status !== "completed", children: [_jsx("div", { class: "pw-shell__body", children: _jsx(StepContent, {}) }), _jsx(Show, { when: showValidation(), children: _jsx("ul", { class: "pw-shell__validation", children: _jsx(For, { each: Object.entries(snap().fieldErrors), children: ([key, msg]) => (_jsxs("li", { class: "pw-shell__validation-item", children: [_jsx(Show, { when: key !== "_", children: _jsx("span", { class: "pw-shell__validation-label", children: formatFieldKey(key) }) }), msg] })) }) }) }), _jsx(Show, { when: showWarnings(), children: _jsx("ul", { class: "pw-shell__warnings", children: _jsx(For, { each: Object.entries(snap().fieldWarnings), children: ([key, msg]) => (_jsxs("li", { class: "pw-shell__warnings-item", children: [_jsx(Show, { when: key !== "_", children: _jsx("span", { class: "pw-shell__warnings-label", children: formatFieldKey(key) }) }), msg] })) }) }) }), _jsx(Show, { when: showBlockingError(), children: _jsx("p", { class: "pw-shell__blocking-error", children: snap().blockingError }) }), _jsx(Show, { when: snap().status === "error" && snap().error, fallback: _jsx(Show, { when: !effectiveHideFooter(), children: props.renderFooter ? (props.renderFooter(snap(), actions)) : (_jsx(SolidFooter, { snapshot: snap(), actions: actions, backLabel: props.backLabel ?? "Previous", nextLabel: props.nextLabel ?? "Next", completeLabel: props.completeLabel ?? "Complete", loadingLabel: props.loadingLabel, cancelLabel: props.cancelLabel ?? "Cancel", hideCancel: props.hideCancel ?? false, layout: resolvedFooterLayout() })) }), children: _jsx(SolidErrorPanel, { snapshot: snap(), actions: actions }) })] })] }) }) }));
222
244
  };
223
245
  // ---------------------------------------------------------------------------
224
246
  // Root progress
@@ -238,7 +260,7 @@ function SolidHeader(props) {
238
260
  function SolidErrorPanel(props) {
239
261
  const error = () => props.snapshot.error;
240
262
  const escalated = () => error().retryCount >= 2;
241
- const title = () => escalated() ? "Still having trouble." : "Something went wrong.";
263
+ const title = () => (escalated() ? "Still having trouble." : "Something went wrong.");
242
264
  const phaseMsg = () => errorPhaseMessage(error().phase);
243
265
  return (_jsxs("div", { class: "pw-shell__error", children: [_jsx("div", { class: "pw-shell__error-title", children: title() }), _jsxs("div", { class: "pw-shell__error-message", children: [phaseMsg(), error().message ? ` ${error().message}` : ""] }), _jsxs("div", { class: "pw-shell__error-actions", children: [_jsx(Show, { when: !escalated(), children: _jsx("button", { type: "button", class: "pw-shell__btn pw-shell__btn--retry", onClick: props.actions.retry, children: "Try again" }) }), _jsx(Show, { when: props.snapshot.hasPersistence, children: _jsx("button", { type: "button", class: `pw-shell__btn ${escalated() ? "pw-shell__btn--retry" : "pw-shell__btn--suspend"}`, onClick: props.actions.suspend, children: "Save and come back later" }) }), _jsx(Show, { when: escalated() && !props.snapshot.hasPersistence, children: _jsx("button", { type: "button", class: "pw-shell__btn pw-shell__btn--retry", onClick: props.actions.retry, children: "Try again" }) })] })] }));
244
266
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daltonr/pathwrite-solid",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "SolidJS adapter for @daltonr/pathwrite-core — reactive usePath() composable and optional PathShell component.",
@@ -41,13 +41,13 @@
41
41
  "scripts": {
42
42
  "build": "tsc -p tsconfig.json && cp ../shell.css dist/index.css",
43
43
  "clean": "rm -rf dist tsconfig.tsbuildinfo",
44
- "prepublishOnly": "test -d dist && echo 'dist already built, skipping' || (npm run clean && npm run build)"
44
+ "prepublishOnly": "npm run clean && npm run build"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "solid-js": ">=1.8.0"
48
48
  },
49
49
  "dependencies": {
50
- "@daltonr/pathwrite-core": "^0.13.0"
50
+ "@daltonr/pathwrite-core": "^0.14.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "solid-js": "^1.9.0"
package/src/index.tsx CHANGED
@@ -31,7 +31,7 @@ import {
31
31
  // Types
32
32
  // ---------------------------------------------------------------------------
33
33
 
34
- export interface UsePathOptions {
34
+ export interface UsePathOptions<TData extends PathData = PathData> {
35
35
  /**
36
36
  * An externally-managed `PathEngine` to subscribe to — for example, the engine
37
37
  * returned by `restoreOrStart()` from `@daltonr/pathwrite-store`.
@@ -48,9 +48,9 @@ export interface UsePathOptions {
48
48
  * async `restoreOrStart()`) or is swapped is adopted — the hook
49
49
  * re-subscribes and re-seeds its snapshot from the new engine.
50
50
  */
51
- engine?: PathEngine | Accessor<PathEngine | undefined>;
51
+ engine?: PathEngine<TData> | Accessor<PathEngine<TData> | undefined>;
52
52
  /** Called for every engine event (stateChanged, completed, cancelled, resumed). */
53
- onEvent?: (event: PathEvent) => void;
53
+ onEvent?: (event: PathEvent<TData>) => void;
54
54
  }
55
55
 
56
56
  export interface UsePathReturn<TData extends PathData = PathData> {
@@ -60,9 +60,13 @@ export interface UsePathReturn<TData extends PathData = PathData> {
60
60
  */
61
61
  snapshot: Accessor<PathSnapshot<TData> | null>;
62
62
  /** Start (or restart) a path. */
63
- start: (path: PathDefinition<any>, initialData?: PathData) => Promise<void>;
64
- /** Push a sub-path onto the stack. Requires an active path. Pass an optional `meta` object for correlation — it is returned unchanged to the parent step's `onSubPathComplete` / `onSubPathCancel` hooks. */
65
- startSubPath: (path: PathDefinition<any>, initialData?: PathData, meta?: Record<string, unknown>) => Promise<void>;
63
+ start: (path: PathDefinition<TData>, initialData?: Partial<TData>) => Promise<void>;
64
+ /** Push a sub-path onto the stack. Requires an active path. A sub-path has its own data, so any definition is accepted. Pass an optional `meta` object for correlation — it is returned unchanged to the parent step's `onSubPathComplete` / `onSubPathCancel` hooks. */
65
+ startSubPath: (
66
+ path: PathDefinition,
67
+ initialData?: PathData,
68
+ meta?: Record<string, unknown>
69
+ ) => Promise<void>;
66
70
  /** Advance one step. Completes the path on the last step. */
67
71
  next: () => Promise<void>;
68
72
  /** Go back one step. No-op when already on the first step of a top-level path. Pops back to the parent path when on the first step of a sub-path. */
@@ -96,55 +100,68 @@ export interface UsePathReturn<TData extends PathData = PathData> {
96
100
  // usePath composable
97
101
  // ---------------------------------------------------------------------------
98
102
 
99
- export function usePath<TData extends PathData = PathData>(options?: UsePathOptions): UsePathReturn<TData> {
100
- let ownEngine: PathEngine | null = null;
101
- const resolveEngine = (): PathEngine => {
103
+ export function usePath<TData extends PathData = PathData>(
104
+ options?: UsePathOptions<TData>
105
+ ): UsePathReturn<TData> {
106
+ let ownEngine: PathEngine<TData> | null = null;
107
+ const resolveEngine = (): PathEngine<TData> => {
102
108
  const external = typeof options?.engine === "function" ? options.engine() : options?.engine;
103
- return external ?? (ownEngine ??= new PathEngine());
109
+ return external ?? (ownEngine ??= new PathEngine<TData>());
104
110
  };
105
111
  let engine = resolveEngine();
106
112
 
107
113
  const [snapshot, setSnapshot] = createSignal<PathSnapshot<TData> | null>(
108
- engine.snapshot() as PathSnapshot<TData> | null,
114
+ engine.snapshot(),
109
115
  // always notify — PathEngine produces new snapshot objects on every event
110
116
  { equals: false }
111
117
  );
112
118
 
113
- const onEngineEvent = (event: PathEvent): void => {
119
+ const onEngineEvent = (event: PathEvent<TData>): void => {
114
120
  if (event.type === "stateChanged" || event.type === "resumed") {
115
- setSnapshot(event.snapshot as PathSnapshot<TData>);
121
+ setSnapshot(event.snapshot);
116
122
  } else if (event.type === "completed" || event.type === "cancelled") {
117
- setSnapshot(engine.snapshot() as PathSnapshot<TData> | null);
123
+ setSnapshot(engine.snapshot());
118
124
  }
119
125
  options?.onEvent?.(event);
120
126
  };
121
127
  let unsubscribe = engine.subscribe(onEngineEvent);
122
128
 
123
129
  // Adopt a late or swapped engine: re-subscribe and re-seed the snapshot.
124
- createEffect(on(resolveEngine, (next) => {
125
- if (next === engine) return;
126
- unsubscribe();
127
- engine = next;
128
- setSnapshot(engine.snapshot() as PathSnapshot<TData> | null);
129
- unsubscribe = engine.subscribe(onEngineEvent);
130
- }, { defer: true }));
130
+ createEffect(
131
+ on(
132
+ resolveEngine,
133
+ (next) => {
134
+ if (next === engine) return;
135
+ unsubscribe();
136
+ engine = next;
137
+ setSnapshot(engine.snapshot());
138
+ unsubscribe = engine.subscribe(onEngineEvent);
139
+ },
140
+ { defer: true }
141
+ )
142
+ );
131
143
 
132
144
  onCleanup(() => unsubscribe());
133
145
 
134
- const start = (path: PathDefinition<any>, initialData: PathData = {}): Promise<void> =>
146
+ const start = (path: PathDefinition<TData>, initialData: Partial<TData> = {}): Promise<void> =>
135
147
  engine.start(path, initialData);
136
148
 
137
- const startSubPath = (path: PathDefinition<any>, initialData: PathData = {}, meta?: Record<string, unknown>): Promise<void> =>
138
- engine.startSubPath(path, initialData, meta);
149
+ const startSubPath = (
150
+ path: PathDefinition,
151
+ initialData: PathData = {},
152
+ meta?: Record<string, unknown>
153
+ ): Promise<void> => engine.startSubPath(path, initialData, meta);
139
154
 
140
155
  const next = (): Promise<void> => engine.next();
141
156
  const previous = (): Promise<void> => engine.previous();
142
157
  const cancel = (): Promise<void> => engine.cancel();
143
- const goToStep = (stepId: string, options?: { validateOnLeave?: boolean }): Promise<void> => engine.goToStep(stepId, options);
144
- const goToStepChecked = (stepId: string, options?: { validateOnLeave?: boolean }): Promise<void> => engine.goToStepChecked(stepId, options);
158
+ const goToStep = (stepId: string, options?: { validateOnLeave?: boolean }): Promise<void> =>
159
+ engine.goToStep(stepId, options);
160
+ const goToStepChecked = (stepId: string, options?: { validateOnLeave?: boolean }): Promise<void> =>
161
+ engine.goToStepChecked(stepId, options);
145
162
 
146
- const setData = (<K extends string & keyof TData>(key: K, value: TData[K]): Promise<void> =>
147
- engine.setData(key, value as unknown)) as UsePathReturn<TData>["setData"];
163
+ const setData = <K extends string & keyof TData>(key: K, value: TData[K]): Promise<void> =>
164
+ engine.setData(key, value);
148
165
 
149
166
  const resetStep = (): Promise<void> => engine.resetStep();
150
167
  const restart = (): Promise<void> => engine.restart();
@@ -152,7 +169,22 @@ export function usePath<TData extends PathData = PathData>(options?: UsePathOpti
152
169
  const suspend = (): Promise<void> => engine.suspend();
153
170
  const validate = (): void => engine.validate();
154
171
 
155
- return { snapshot, start, startSubPath, next, previous, cancel, goToStep, goToStepChecked, setData, resetStep, restart, retry, suspend, validate };
172
+ return {
173
+ snapshot,
174
+ start,
175
+ startSubPath,
176
+ next,
177
+ previous,
178
+ cancel,
179
+ goToStep,
180
+ goToStepChecked,
181
+ setData,
182
+ resetStep,
183
+ restart,
184
+ retry,
185
+ suspend,
186
+ validate,
187
+ };
156
188
  }
157
189
 
158
190
  // ---------------------------------------------------------------------------
@@ -174,13 +206,18 @@ const PathContext = createContext<PathContextValue | undefined>(undefined);
174
206
  * - `TData` narrows `snapshot().data`
175
207
  * - `TServices` types the `services` value — must match what was passed to `PathShell`
176
208
  */
177
- export function usePathContext<TData extends PathData = PathData, TServices = unknown>(): Omit<UsePathReturn<TData>, "snapshot"> & { snapshot: Accessor<PathSnapshot<TData>>; services: TServices } {
209
+ export function usePathContext<TData extends PathData = PathData, TServices = unknown>(): Omit<
210
+ UsePathReturn<TData>,
211
+ "snapshot"
212
+ > & { snapshot: Accessor<PathSnapshot<TData>>; services: TServices } {
178
213
  const ctx = useContext(PathContext);
179
214
  if (!ctx) {
180
215
  throw new Error("usePathContext must be used within a PathShell component.");
181
216
  }
182
217
  return {
183
- ...(ctx.path as unknown as Omit<UsePathReturn<TData>, "snapshot"> & { snapshot: Accessor<PathSnapshot<TData>> }),
218
+ ...(ctx.path as unknown as Omit<UsePathReturn<TData>, "snapshot"> & {
219
+ snapshot: Accessor<PathSnapshot<TData>>;
220
+ }),
184
221
  services: ctx.services as TServices,
185
222
  };
186
223
  }
@@ -202,7 +239,8 @@ export interface PathShellActions {
202
239
  }
203
240
 
204
241
  export interface PathShellProps {
205
- path: PathDefinition<any>;
242
+ /** The path to run. The shell is not typed over the path's data, so a definition of any data type is accepted. */
243
+ path: PathDefinition;
206
244
  /**
207
245
  * An externally-managed engine — for example, the engine returned by
208
246
  * `restoreOrStart()` from `@daltonr/pathwrite-store`. When supplied, `PathShell` will skip its own
@@ -294,7 +332,8 @@ export const PathShell: Component<PathShellProps> = (props) => {
294
332
  // step (which re-ran onEnter/onLeave and lost attempted / visited state).
295
333
  const restoredEngine: PathEngine | null = (() => {
296
334
  if (props.engine || !props.restoreKey || !outerCtx) return null;
297
- const stored = outerCtx.path.snapshot()?.data[props.restoreKey] as { serializedState?: SerializedPathState } | undefined;
335
+ const stored = outerCtx.path.snapshot()?.data[props.restoreKey] as
336
+ { serializedState?: SerializedPathState } | undefined;
298
337
  if (!stored || typeof stored !== "object" || !stored.serializedState) return null;
299
338
  try {
300
339
  return PathEngine.fromState(stored.serializedState, { [props.path.id]: props.path });
@@ -314,14 +353,28 @@ export const PathShell: Component<PathShellProps> = (props) => {
314
353
  if (event.type === "completed") props.onComplete?.(event.data as PathData);
315
354
  if (event.type === "cancelled") props.onCancel?.(event.data as PathData);
316
355
  if (props.restoreKey && outerCtx && event.type === "stateChanged") {
317
- (outerCtx.path.setData as unknown as (key: string, value: unknown) => void)(
318
- props.restoreKey, { ...event.snapshot, serializedState: currentEngine().exportState() }
319
- );
356
+ void outerCtx.path.setData(props.restoreKey, {
357
+ ...event.snapshot,
358
+ serializedState: currentEngine().exportState(),
359
+ });
320
360
  }
321
361
  },
322
362
  });
323
363
 
324
- const { snapshot, start, next, previous, cancel, goToStep, goToStepChecked, setData, restart, retry, suspend, validate } = pathReturn;
364
+ const {
365
+ snapshot,
366
+ start,
367
+ next,
368
+ previous,
369
+ cancel,
370
+ goToStep,
371
+ goToStepChecked,
372
+ setData,
373
+ restart,
374
+ retry,
375
+ suspend,
376
+ validate,
377
+ } = pathReturn;
325
378
 
326
379
  onMount(() => {
327
380
  if (props.autoStart !== false && !props.engine && !restoredEngine) {
@@ -348,8 +401,12 @@ export const PathShell: Component<PathShellProps> = (props) => {
348
401
  const contextValue: PathContextValue = { path: pathReturn, services: props.services ?? null };
349
402
 
350
403
  const actions: PathShellActions = {
351
- next, previous, cancel, goToStep, goToStepChecked,
352
- setData: (key, value) => setData(key as any, value as any),
404
+ next,
405
+ previous,
406
+ cancel,
407
+ goToStep,
408
+ goToStepChecked,
409
+ setData,
353
410
  restart: () => restart(),
354
411
  retry: () => retry(),
355
412
  suspend: () => suspend(),
@@ -367,13 +424,16 @@ export const PathShell: Component<PathShellProps> = (props) => {
367
424
 
368
425
  const effectiveHideProgress = () => props.hideProgress || props.layout === "tabs";
369
426
  const effectiveHideFooter = () => props.hideFooter || props.layout === "tabs";
370
- const showRoot = () => !effectiveHideProgress() && !!snap().rootProgress && props.progressLayout !== "activeOnly";
427
+ const showRoot = () =>
428
+ !effectiveHideProgress() && !!snap().rootProgress && props.progressLayout !== "activeOnly";
371
429
  // A custom header is the consumer's decision: show it whenever progress is
372
430
  // not hidden, even for a single-step path. Only the *default* header hides
373
431
  // for one step (same rule as the React / Vue shells).
374
- const showActive = () => !effectiveHideProgress() && (props.renderHeader
375
- ? true
376
- : (snap().stepCount > 1 || snap().nestingLevel > 0) && props.progressLayout !== "rootOnly");
432
+ const showActive = () =>
433
+ !effectiveHideProgress() &&
434
+ (props.renderHeader
435
+ ? true
436
+ : (snap().stepCount > 1 || snap().nestingLevel > 0) && props.progressLayout !== "rootOnly");
377
437
 
378
438
  // The step render function must only run when the *step* changes. The
379
439
  // snapshot signal is `{ equals: false }` (a new object on every engine
@@ -401,8 +461,14 @@ export const PathShell: Component<PathShellProps> = (props) => {
401
461
  // current values reactively even though the step itself is created once.
402
462
  const liveSnapshot = new Proxy({} as PathSnapshot, {
403
463
  get: (_target, key) => (snapshot() as unknown as Record<PropertyKey, unknown> | null)?.[key],
404
- has: (_target, key) => { const s = snapshot(); return s ? key in s : false; },
405
- ownKeys: () => { const s = snapshot(); return s ? Reflect.ownKeys(s) : []; },
464
+ has: (_target, key) => {
465
+ const s = snapshot();
466
+ return s ? key in s : false;
467
+ },
468
+ ownKeys: () => {
469
+ const s = snapshot();
470
+ return s ? Reflect.ownKeys(s) : [];
471
+ },
406
472
  getOwnPropertyDescriptor: (_target, key) => {
407
473
  const s = snapshot();
408
474
  const d = s ? Object.getOwnPropertyDescriptor(s, key) : undefined;
@@ -427,8 +493,7 @@ export const PathShell: Component<PathShellProps> = (props) => {
427
493
  Object.keys(snap().fieldErrors).length > 0;
428
494
 
429
495
  const showWarnings = () =>
430
- props.validationDisplay !== "inline" &&
431
- Object.keys(snap().fieldWarnings).length > 0;
496
+ props.validationDisplay !== "inline" && Object.keys(snap().fieldWarnings).length > 0;
432
497
 
433
498
  const showBlockingError = () =>
434
499
  props.validationDisplay !== "inline" &&
@@ -469,75 +534,71 @@ export const PathShell: Component<PathShellProps> = (props) => {
469
534
  </Show>
470
535
  {/* Header — progress (active path) */}
471
536
  <Show when={showActive()}>
472
- {props.renderHeader
473
- ? props.renderHeader(snap())
474
- : <SolidHeader snapshot={snap()} />}
537
+ {props.renderHeader ? props.renderHeader(snap()) : <SolidHeader snapshot={snap()} />}
475
538
  </Show>
476
539
  {/* Completion panel — shown when path finishes with stayOnFinal */}
477
540
  <Show when={snap().status === "completed"}>
478
541
  <div class="pw-shell__body">
479
- {props.completionContent
480
- ? props.completionContent(snap())
481
- : (
482
- <div class="pw-shell__completion">
483
- <p class="pw-shell__completion-message">All done.</p>
484
- <button
485
- type="button"
486
- class="pw-shell__completion-restart"
487
- onClick={() => restart()}
488
- >
489
- Start over
490
- </button>
491
- </div>
492
- )
493
- }
542
+ {props.completionContent ? (
543
+ props.completionContent(snap())
544
+ ) : (
545
+ <div class="pw-shell__completion">
546
+ <p class="pw-shell__completion-message">All done.</p>
547
+ <button type="button" class="pw-shell__completion-restart" onClick={() => restart()}>
548
+ Start over
549
+ </button>
550
+ </div>
551
+ )}
494
552
  </div>
495
553
  </Show>
496
554
  {/* Body — step content (hidden when completed) */}
497
555
  <Show when={snap().status !== "completed"}>
498
- <div class="pw-shell__body"><StepContent /></div>
499
- {/* Validation messages */}
500
- <Show when={showValidation()}>
501
- <ul class="pw-shell__validation">
502
- <For each={Object.entries(snap().fieldErrors)}>
503
- {([key, msg]) => (
504
- <li class="pw-shell__validation-item">
505
- <Show when={key !== "_"}>
506
- <span class="pw-shell__validation-label">{formatFieldKey(key)}</span>
507
- </Show>
508
- {msg}
509
- </li>
510
- )}
511
- </For>
512
- </ul>
513
- </Show>
514
- {/* Warning messages — non-blocking, shown immediately */}
515
- <Show when={showWarnings()}>
516
- <ul class="pw-shell__warnings">
517
- <For each={Object.entries(snap().fieldWarnings)}>
518
- {([key, msg]) => (
519
- <li class="pw-shell__warnings-item">
520
- <Show when={key !== "_"}>
521
- <span class="pw-shell__warnings-label">{formatFieldKey(key)}</span>
522
- </Show>
523
- {msg}
524
- </li>
525
- )}
526
- </For>
527
- </ul>
528
- </Show>
529
- {/* Blocking error */}
530
- <Show when={showBlockingError()}>
531
- <p class="pw-shell__blocking-error">{snap().blockingError}</p>
532
- </Show>
533
- {/* Error panel or footer */}
534
- <Show
535
- when={snap().status === "error" && snap().error}
536
- fallback={
537
- <Show when={!effectiveHideFooter()}>
538
- {props.renderFooter
539
- ? props.renderFooter(snap(), actions)
540
- : <SolidFooter
556
+ <div class="pw-shell__body">
557
+ <StepContent />
558
+ </div>
559
+ {/* Validation messages */}
560
+ <Show when={showValidation()}>
561
+ <ul class="pw-shell__validation">
562
+ <For each={Object.entries(snap().fieldErrors)}>
563
+ {([key, msg]) => (
564
+ <li class="pw-shell__validation-item">
565
+ <Show when={key !== "_"}>
566
+ <span class="pw-shell__validation-label">{formatFieldKey(key)}</span>
567
+ </Show>
568
+ {msg}
569
+ </li>
570
+ )}
571
+ </For>
572
+ </ul>
573
+ </Show>
574
+ {/* Warning messages — non-blocking, shown immediately */}
575
+ <Show when={showWarnings()}>
576
+ <ul class="pw-shell__warnings">
577
+ <For each={Object.entries(snap().fieldWarnings)}>
578
+ {([key, msg]) => (
579
+ <li class="pw-shell__warnings-item">
580
+ <Show when={key !== "_"}>
581
+ <span class="pw-shell__warnings-label">{formatFieldKey(key)}</span>
582
+ </Show>
583
+ {msg}
584
+ </li>
585
+ )}
586
+ </For>
587
+ </ul>
588
+ </Show>
589
+ {/* Blocking error */}
590
+ <Show when={showBlockingError()}>
591
+ <p class="pw-shell__blocking-error">{snap().blockingError}</p>
592
+ </Show>
593
+ {/* Error panel or footer */}
594
+ <Show
595
+ when={snap().status === "error" && snap().error}
596
+ fallback={
597
+ <Show when={!effectiveHideFooter()}>
598
+ {props.renderFooter ? (
599
+ props.renderFooter(snap(), actions)
600
+ ) : (
601
+ <SolidFooter
541
602
  snapshot={snap()}
542
603
  actions={actions}
543
604
  backLabel={props.backLabel ?? "Previous"}
@@ -548,13 +609,14 @@ export const PathShell: Component<PathShellProps> = (props) => {
548
609
  hideCancel={props.hideCancel ?? false}
549
610
  layout={resolvedFooterLayout()}
550
611
  />
551
- }
552
- </Show>
553
- }
554
- >
555
- <SolidErrorPanel snapshot={snap()} actions={actions} />
612
+ )}
613
+ </Show>
614
+ }
615
+ >
616
+ <SolidErrorPanel snapshot={snap()} actions={actions} />
617
+ </Show>
556
618
  </Show>
557
- </Show>{/* end status !== completed */}
619
+ {/* end status !== completed */}
558
620
  </div>
559
621
  </Show>
560
622
  </PathContext.Provider>
@@ -572,9 +634,7 @@ function SolidRootProgress(props: { root: RootProgress }) {
572
634
  <For each={props.root.steps}>
573
635
  {(step, i) => (
574
636
  <div class={`pw-shell__step pw-shell__step--${step.status}`}>
575
- <span class="pw-shell__step-dot">
576
- {step.status === "completed" ? "✓" : String(i() + 1)}
577
- </span>
637
+ <span class="pw-shell__step-dot">{step.status === "completed" ? "✓" : String(i() + 1)}</span>
578
638
  <span class="pw-shell__step-label">{step.title ?? step.id}</span>
579
639
  </div>
580
640
  )}
@@ -598,9 +658,7 @@ function SolidHeader(props: { snapshot: PathSnapshot }) {
598
658
  <For each={props.snapshot.steps}>
599
659
  {(step, i) => (
600
660
  <div class={`pw-shell__step pw-shell__step--${step.status}`}>
601
- <span class="pw-shell__step-dot">
602
- {step.status === "completed" ? "✓" : String(i() + 1)}
603
- </span>
661
+ <span class="pw-shell__step-dot">{step.status === "completed" ? "✓" : String(i() + 1)}</span>
604
662
  <span class="pw-shell__step-label">{step.title ?? step.id}</span>
605
663
  </div>
606
664
  )}
@@ -620,14 +678,15 @@ function SolidHeader(props: { snapshot: PathSnapshot }) {
620
678
  function SolidErrorPanel(props: { snapshot: PathSnapshot; actions: PathShellActions }) {
621
679
  const error = () => props.snapshot.error!;
622
680
  const escalated = () => error().retryCount >= 2;
623
- const title = () => escalated() ? "Still having trouble." : "Something went wrong.";
681
+ const title = () => (escalated() ? "Still having trouble." : "Something went wrong.");
624
682
  const phaseMsg = () => errorPhaseMessage(error().phase);
625
683
 
626
684
  return (
627
685
  <div class="pw-shell__error">
628
686
  <div class="pw-shell__error-title">{title()}</div>
629
687
  <div class="pw-shell__error-message">
630
- {phaseMsg()}{error().message ? ` ${error().message}` : ""}
688
+ {phaseMsg()}
689
+ {error().message ? ` ${error().message}` : ""}
631
690
  </div>
632
691
  <div class="pw-shell__error-actions">
633
692
  <Show when={!escalated()}>
@@ -740,6 +799,7 @@ export type {
740
799
  PathDefinition,
741
800
  PathEvent,
742
801
  PathSnapshot,
802
+ StepStatus,
743
803
  PathStep,
744
804
  PathStepContext,
745
805
  ProgressLayout,