@principal-ai/subsystems-react 0.49.0 → 0.50.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.
Files changed (38) hide show
  1. package/dist/pierre/PierreFileView.d.ts +1 -1
  2. package/dist/pierre/PierreFileView.d.ts.map +1 -1
  3. package/dist/pierre/PierreFileView.js +2 -1
  4. package/dist/pierre/PierreFileView.js.map +1 -1
  5. package/dist/pierre/PierreSnippetView.d.ts +1 -1
  6. package/dist/pierre/PierreSnippetView.d.ts.map +1 -1
  7. package/dist/pierre/PierreSnippetView.js +2 -1
  8. package/dist/pierre/PierreSnippetView.js.map +1 -1
  9. package/dist/pierre/PierreTrailCodeView.d.ts +7 -1
  10. package/dist/pierre/PierreTrailCodeView.d.ts.map +1 -1
  11. package/dist/pierre/PierreTrailCodeView.js +71 -18
  12. package/dist/pierre/PierreTrailCodeView.js.map +1 -1
  13. package/dist/pierre/pierreBackground.d.ts +36 -2
  14. package/dist/pierre/pierreBackground.d.ts.map +1 -1
  15. package/dist/pierre/pierreBackground.js +40 -13
  16. package/dist/pierre/pierreBackground.js.map +1 -1
  17. package/dist/pierre/visibleStep.d.ts +48 -0
  18. package/dist/pierre/visibleStep.d.ts.map +1 -0
  19. package/dist/pierre/visibleStep.js +53 -0
  20. package/dist/pierre/visibleStep.js.map +1 -0
  21. package/dist/subsystem/FileDrawer.d.ts +10 -1
  22. package/dist/subsystem/FileDrawer.d.ts.map +1 -1
  23. package/dist/subsystem/FileDrawer.js +61 -40
  24. package/dist/subsystem/FileDrawer.js.map +1 -1
  25. package/dist/subsystem/SubsystemComponentGraph.d.ts +6 -0
  26. package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
  27. package/dist/subsystem/SubsystemComponentGraph.js +21 -10
  28. package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/pierre/PierreFileView.tsx +2 -1
  31. package/src/pierre/PierreSnippetView.tsx +2 -1
  32. package/src/pierre/PierreTrailCodeView.tsx +81 -22
  33. package/src/pierre/pierreBackground.ts +62 -12
  34. package/src/pierre/visibleStep.test.ts +108 -0
  35. package/src/pierre/visibleStep.ts +76 -0
  36. package/src/stories/Subsystem/ComponentGraph/Flows.stories.tsx +6 -0
  37. package/src/subsystem/FileDrawer.tsx +112 -63
  38. package/src/subsystem/SubsystemComponentGraph.tsx +29 -5
@@ -15,5 +15,5 @@ export interface PierreFileViewProps {
15
15
  /** 1-based line to highlight and scroll into view after load. */
16
16
  focusLine?: number;
17
17
  }
18
- export declare function PierreFileView({ filePath, fileName, readFile, background, focusLine, }: PierreFileViewProps): import("react").JSX.Element;
18
+ export declare function PierreFileView({ filePath, fileName, readFile, background: backgroundProp, focusLine, }: PierreFileViewProps): import("react").JSX.Element;
19
19
  //# sourceMappingURL=PierreFileView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PierreFileView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAeH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE,mBAAmB,+BAkHrB"}
1
+ {"version":3,"file":"PierreFileView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAeH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EAAE,cAAc,EAC1B,SAAS,GACV,EAAE,mBAAmB,+BAmHrB"}
@@ -13,8 +13,9 @@ import { buildPierreOptions, PIERRE_FILE_STYLE } from './pierreBackground';
13
13
  import { pierreLangForPath } from './pierreFileLang';
14
14
  import { isFileUnavailableError } from './fileAvailability';
15
15
  import { scrollFocusLineIntoView } from './scrollAnchor';
16
- export function PierreFileView({ filePath, fileName, readFile, background, focusLine, }) {
16
+ export function PierreFileView({ filePath, fileName, readFile, background: backgroundProp, focusLine, }) {
17
17
  const { theme } = useTheme();
18
+ const background = backgroundProp ?? theme.colors.background;
18
19
  const [contents, setContents] = useState(null);
19
20
  const [error, setError] = useState(null);
20
21
  // Pierre highlights on the main thread with no worker pool: a cold first
@@ -1 +1 @@
1
- {"version":3,"file":"PierreFileView.js","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PierreFileView.js","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"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"}
@@ -24,5 +24,5 @@ export interface PierreSnippetViewProps {
24
24
  /** Override Pierre's container background. Any CSS color string. */
25
25
  background?: string;
26
26
  }
27
- export declare function PierreSnippetView({ filePath, fileName, startLine, endLine, focusLine, contextLines, readFile, background, }: PierreSnippetViewProps): import("react").JSX.Element;
27
+ export declare function PierreSnippetView({ filePath, fileName, startLine, endLine, focusLine, contextLines, readFile, background: backgroundProp, }: PierreSnippetViewProps): import("react").JSX.Element;
28
28
  //# sourceMappingURL=PierreSnippetView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PierreSnippetView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreSnippetView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;AAgBH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAgB,EAChB,QAAQ,EACR,UAAU,GACX,EAAE,sBAAsB,+BAmIxB"}
1
+ {"version":3,"file":"PierreSnippetView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreSnippetView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;AAgBH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAgB,EAChB,QAAQ,EACR,UAAU,EAAE,cAAc,GAC3B,EAAE,sBAAsB,+BAoIxB"}
@@ -16,8 +16,9 @@ import { buildPierreOptions, PIERRE_FILE_STYLE } from './pierreBackground';
16
16
  import { pierreLangForPath } from './pierreFileLang';
17
17
  import { remapSnippetLineNumbers, sliceSnippetWindow } from './sliceSnippet';
18
18
  import { scrollFocusLineIntoView } from './scrollAnchor';
19
- export function PierreSnippetView({ filePath, fileName, startLine, endLine, focusLine, contextLines = 2, readFile, background, }) {
19
+ export function PierreSnippetView({ filePath, fileName, startLine, endLine, focusLine, contextLines = 2, readFile, background: backgroundProp, }) {
20
20
  const { theme } = useTheme();
21
+ const background = backgroundProp ?? theme.colors.background;
21
22
  const [contents, setContents] = useState(null);
22
23
  const [error, setError] = useState(null);
23
24
  // Warm the shared highlighter before mounting <File>; a cold first render
@@ -1 +1 @@
1
- {"version":3,"file":"PierreSnippetView.js","sourceRoot":"","sources":["../../src/pierre/PierreSnippetView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PierreSnippetView.js","sourceRoot":"","sources":["../../src/pierre/PierreSnippetView.tsx"],"names":[],"mappings":"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"}
@@ -30,6 +30,12 @@ export interface PierreTrailCodeViewProps {
30
30
  background?: string;
31
31
  /** Open the step's full source file (header button or double-click snippet body). */
32
32
  onOpenFile?: (path: string, opts?: SubsystemOpenFileOptions) => void;
33
+ /**
34
+ * Fires when scrolling brings a different step to the top of the view, with
35
+ * that step's index. Drives a progress readout that tracks the viewport
36
+ * rather than the selected step. Only fires on change, not per scroll event.
37
+ */
38
+ onVisibleStepChange?: (index: number) => void;
33
39
  /**
34
40
  * Aliases of components marked `proposed`. A step whose file can't be read
35
41
  * but whose endpoint is proposed reads as "planned" rather than "missing".
@@ -45,5 +51,5 @@ export interface PierreTrailCodeViewProps {
45
51
  /** Fired when a token resolved by `resolveSymbol` is clicked. */
46
52
  onSymbolClick?: (symbol: string, query: TrailSymbolQuery) => void;
47
53
  }
48
- export declare function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines, background, onOpenFile, proposedAliases, resolveSymbol, onSymbolClick, }: PierreTrailCodeViewProps): import("react").JSX.Element;
54
+ export declare function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines, background, onOpenFile, onVisibleStepChange, proposedAliases, resolveSymbol, onSymbolClick, }: PierreTrailCodeViewProps): import("react").JSX.Element;
49
55
  //# sourceMappingURL=PierreTrailCodeView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PierreTrailCodeView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreTrailCodeView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AA6BH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAW5E;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAmBD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,cAAc,CAAC;IACtB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mFAAmF;IACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACrE;;;OAGG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3D,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnE;AAoFD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAgB,EAChB,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,GACd,EAAE,wBAAwB,+BA0W1B"}
1
+ {"version":3,"file":"PierreTrailCodeView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreTrailCodeView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AA6BH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAY5E;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AA6BD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,cAAc,CAAC;IACtB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mFAAmF;IACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACrE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C;;;OAGG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3D,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnE;AAoFD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAgB,EAChB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,aAAa,GACd,EAAE,wBAAwB,+BAmZ1B"}
@@ -14,6 +14,7 @@ import { useTheme } from '@principal-ade/industry-theme';
14
14
  import { buildPierreOptions, PIERRE_FILE_STYLE } from './pierreBackground';
15
15
  import { pierreLangForPath } from './pierreFileLang';
16
16
  import { resolvePierreSyntaxThemeName } from './pierreSyntaxTheme';
17
+ import { resolveVisibleStepIndex } from './visibleStep';
17
18
  import { fileUnavailableNotice, isFileUnavailableError } from './fileAvailability';
18
19
  import { remapSnippetLineNumbers, sliceSnippetWindow, } from './sliceSnippet';
19
20
  /** Ctx item id → step index, for CodeView's `trailId:index` item ids. */
@@ -24,6 +25,15 @@ function stepIndexFromItemContext(context) {
24
25
  const index = Number.parseInt(id.split(':').pop() ?? '', 10);
25
26
  return Number.isFinite(index) ? index : null;
26
27
  }
28
+ /**
29
+ * Assumed height of the compact file header, in px.
30
+ *
31
+ * Must track the header chrome passed to `buildPierreOptions` (fontSizes[0] at
32
+ * line-height 1.15 plus 2px vertical padding) — CodeView sizes its
33
+ * virtualization window and sticky offset from this, and the library's own
34
+ * default of 44 is more than double the compact header.
35
+ */
36
+ const TRAIL_HEADER_HEIGHT = 18;
27
37
  /** Pointer/dotted-underline affordance for a clickable construct token. */
28
38
  function paintSymbolToken(el, active) {
29
39
  if (el == null)
@@ -76,9 +86,11 @@ function OpenFileHeaderButton({ file, line, onOpenFile, }) {
76
86
  transition: 'background 120ms ease, color 120ms ease',
77
87
  }, children: [_jsx(Maximize2, { size: 11 }), "Open file"] }));
78
88
  }
79
- export function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines = 8, background, onOpenFile, proposedAliases, resolveSymbol, onSymbolClick, }) {
89
+ export function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines = 8, background, onOpenFile, onVisibleStepChange, proposedAliases, resolveSymbol, onSymbolClick, }) {
80
90
  const { theme, mode } = useTheme();
81
91
  const viewRef = useRef(null);
92
+ // CodeView's scroll container — also the box we measure items against.
93
+ const containerRef = useRef(null);
82
94
  const [load, setLoad] = useState({ status: 'loading' });
83
95
  // Keep the newest symbol callbacks in refs so the Pierre options object stays
84
96
  // stable (host callbacks are recreated per render).
@@ -86,6 +98,41 @@ export function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines =
86
98
  resolveSymbolRef.current = resolveSymbol;
87
99
  const onSymbolClickRef = useRef(onSymbolClick);
88
100
  onSymbolClickRef.current = onSymbolClick;
101
+ const onVisibleStepChangeRef = useRef(onVisibleStepChange);
102
+ onVisibleStepChangeRef.current = onVisibleStepChange;
103
+ const visibleStepRef = useRef(null);
104
+ // Report which step the viewport is on. The geometry lives in `visibleStep` so
105
+ // it can be tested — the answer depends on how tall the final snippet is
106
+ // relative to the viewport, which is not something to eyeball.
107
+ const reportVisibleStep = useCallback(() => {
108
+ const container = containerRef.current;
109
+ const viewer = viewRef.current?.getInstance();
110
+ if (container == null || viewer == null)
111
+ return;
112
+ const rect = container.getBoundingClientRect();
113
+ const rects = [];
114
+ for (const rendered of viewer.getRenderedItems()) {
115
+ const index = Number.parseInt(rendered.id.split(':').pop() ?? '', 10);
116
+ if (!Number.isFinite(index))
117
+ continue;
118
+ const itemRect = rendered.element.getBoundingClientRect();
119
+ rects.push({ index, top: itemRect.top, bottom: itemRect.bottom });
120
+ }
121
+ const next = resolveVisibleStepIndex({
122
+ top: rect.top,
123
+ bottom: rect.bottom,
124
+ scrollTop: container.scrollTop,
125
+ clientHeight: container.clientHeight,
126
+ scrollHeight: container.scrollHeight,
127
+ }, rects);
128
+ if (next == null || next === visibleStepRef.current)
129
+ return;
130
+ visibleStepRef.current = next;
131
+ onVisibleStepChangeRef.current?.(next);
132
+ }, []);
133
+ const onCodeViewScroll = useCallback(() => {
134
+ reportVisibleStep();
135
+ }, [reportVisibleStep]);
89
136
  // A step onto a proposed component is planned work; label its missing file
90
137
  // accordingly instead of showing a bare "not found".
91
138
  const isProposedStep = useCallback((step) => proposedAliases != null &&
@@ -201,26 +248,18 @@ export function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines =
201
248
  }, [slices, trail.id]);
202
249
  const onPostRender = useCallback((node, _instance, _phase, context) => {
203
250
  const id = context?.item?.id;
251
+ // Item-level renders don't move the viewport, but the first paint does
252
+ // decide which step is on screen.
253
+ reportVisibleStep();
204
254
  if (id == null)
205
255
  return;
206
256
  const sliceStart = sliceStartByItemId.get(id);
207
257
  if (sliceStart == null)
208
258
  return;
209
259
  remapSnippetLineNumbers(node, sliceStart);
210
- }, [sliceStartByItemId]);
211
- const renderHeaderPrefix = useMemo(() => {
212
- return (item) => {
213
- const index = Number.parseInt(item.id.split(':').pop() ?? '', 10);
214
- if (!trail.steps[index])
215
- return null;
216
- return (_jsxs("span", { style: {
217
- fontFamily: theme.fonts.monospace,
218
- fontSize: theme.fontSizes[0],
219
- color: theme.colors.textSecondary,
220
- marginRight: 8,
221
- }, children: [index + 1, "."] }));
222
- };
223
- }, [trail.steps, theme]);
260
+ }, [sliceStartByItemId, reportVisibleStep]);
261
+ // No step numbers in the file header: the sidebar already numbers the steps,
262
+ // and the drawer header carries a segmented progress readout.
224
263
  const renderHeaderMetadata = useMemo(() => {
225
264
  return (item) => {
226
265
  const index = Number.parseInt(item.id.split(':').pop() ?? '', 10);
@@ -308,15 +347,29 @@ export function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines =
308
347
  light: resolvePierreSyntaxThemeName('light'),
309
348
  },
310
349
  stickyHeaders: true,
350
+ // CodeView never injects `unsafeCSS` into its own shadow root, but it
351
+ // forwards the option to each file item (CODE_VIEW_FILE_OPTION_KEYS),
352
+ // which does — so this retints the file surfaces and headers. It cannot
353
+ // reach CodeView's host, hence the spread only carries
354
+ // PIERRE_BASE_OPTIONS and `disableFileHeader` must follow it.
355
+ ...buildPierreOptions(background, {
356
+ background: theme.colors.backgroundSecondary,
357
+ fontSize: `${theme.fontSizes[0]}px`,
358
+ lineHeight: '1.15',
359
+ padding: '2px 8px',
360
+ }),
311
361
  disableFileHeader: false,
362
+ // The library assumes a 44px header (DEFAULT_VIRTUAL_FILE_METRICS); the
363
+ // compact chrome above is ~18px. CodeView uses this for its
364
+ // virtualization window and sticky offset, so leaving it at 44 drifts.
365
+ itemMetrics: { diffHeaderHeight: TRAIL_HEADER_HEIGHT },
312
366
  layout: { paddingTop: 0, paddingBottom: 0, gap: 4 },
313
367
  onPostRender,
314
368
  ...(onOpenFile ? { onLineClick } : {}),
315
369
  ...symbolHandlers,
316
- ...(background ? buildPierreOptions(background) : {}),
317
370
  ...(mode === 'light' || mode === 'dark' ? { themeType: mode } : {}),
318
371
  };
319
- }, [background, mode, onPostRender, onOpenFile, onLineClick, symbolHandlers]);
372
+ }, [background, theme.colors.backgroundSecondary, theme.fontSizes, mode, onPostRender, onOpenFile, onLineClick, symbolHandlers]);
320
373
  useEffect(() => {
321
374
  if (load.status !== 'ready' || stepIndex == null)
322
375
  return;
@@ -350,6 +403,6 @@ export function PierreTrailCodeView({ trail, stepIndex, readFile, contextLines =
350
403
  return (_jsx("div", { style: { padding: 16, color: theme.colors.textSecondary }, children: "No steps in this trail." }));
351
404
  }
352
405
  const CodeViewLoose = CodeView;
353
- return (_jsx(CodeViewLoose, { ref: viewRef, items: items, options: options, selectedLines: selectedLines, renderHeaderPrefix: renderHeaderPrefix, renderHeaderMetadata: renderHeaderMetadata, renderAnnotation: renderAnnotation, style: { ...PIERRE_FILE_STYLE, height: '100%', overflow: 'auto' } }));
406
+ return (_jsx(CodeViewLoose, { ref: viewRef, containerRef: containerRef, items: items, options: options, onScroll: onCodeViewScroll, selectedLines: selectedLines, renderHeaderMetadata: renderHeaderMetadata, renderAnnotation: renderAnnotation, style: { ...PIERRE_FILE_STYLE, height: '100%', overflow: 'auto' } }));
354
407
  }
355
408
  //# sourceMappingURL=PierreTrailCodeView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PierreTrailCodeView.js","sourceRoot":"","sources":["../../src/pierre/PierreTrailCodeView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PierreTrailCodeView.js","sourceRoot":"","sources":["../../src/pierre/PierreTrailCodeView.tsx"],"names":[],"mappings":"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"}
@@ -5,8 +5,42 @@ export declare const PIERRE_FILE_STYLE: {
5
5
  export declare const PIERRE_BASE_OPTIONS: {
6
6
  readonly disableFileHeader: true;
7
7
  };
8
- export declare function buildBackgroundCSS(background: string): string;
9
- export declare function buildPierreOptions(background?: string): {
8
+ /** Chrome overrides for the per-file header (`[data-diffs-header]`). */
9
+ export interface PierreHeaderStyle {
10
+ /** Fill behind the header row. */
11
+ background?: string;
12
+ /** Rule under the header row. */
13
+ borderBottom?: string;
14
+ /** Explicit size — the library leaves the header to inherit its line box. */
15
+ fontSize?: string;
16
+ lineHeight?: string;
17
+ /** Vertical padding. The library ships none, so this is the only breathing room. */
18
+ padding?: string;
19
+ }
20
+ /**
21
+ * Retint Pierre's code surface to `background`, optionally restyling the file
22
+ * header.
23
+ *
24
+ * Every background in `@pierre/diffs` resolves to `--diffs-bg`, which is
25
+ * `light-dark(var(--diffs-light-bg, #fff), var(--diffs-dark-bg, #000))` — so
26
+ * overriding both inputs re-tints the whole surface from one variable and lets
27
+ * the diff / selection / hover layers keep recomputing their `color-mix` tints
28
+ * against it.
29
+ *
30
+ * `:host` still needs a direct override: the theme layer writes a literal
31
+ * `background-color` there from the Shiki theme, which does not go through
32
+ * `--diffs-bg`.
33
+ *
34
+ * Header rules land in each file item's shadow root, which is where
35
+ * `FileRenderer` puts the header — `CodeView` forwards `unsafeCSS` to its file
36
+ * items even though it never injects it into its own shadow root.
37
+ *
38
+ * Changing header height also invalidates `itemMetrics.diffHeaderHeight`, which
39
+ * `CodeView` uses for its virtualization window and sticky offset. Keep the two
40
+ * in step when overriding `fontSize` / `lineHeight` / `padding`.
41
+ */
42
+ export declare function buildBackgroundCSS(background: string, header?: PierreHeaderStyle): string;
43
+ export declare function buildPierreOptions(background?: string, header?: PierreHeaderStyle): {
10
44
  readonly disableFileHeader: true;
11
45
  } | {
12
46
  unsafeCSS: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pierreBackground.d.ts","sourceRoot":"","sources":["../../src/pierre/pierreBackground.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,eAAO,MAAM,iBAAiB;;CAAgC,CAAC;AAE/D,eAAO,MAAM,mBAAmB;;CAEtB,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB7D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM;;;;;EAMrD"}
1
+ {"version":3,"file":"pierreBackground.d.ts","sourceRoot":"","sources":["../../src/pierre/pierreBackground.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,eAAO,MAAM,iBAAiB;;CAAgC,CAAC;AAE/D,eAAO,MAAM,mBAAmB;;CAEtB,CAAC;AAEX,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,iBAAiB,GACzB,MAAM,CAqBR;AAMD,wBAAgB,kBAAkB,CAChC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,iBAAiB;;;;;EAO3B"}
@@ -3,29 +3,56 @@ export const PIERRE_FILE_STYLE = { display: 'block' };
3
3
  export const PIERRE_BASE_OPTIONS = {
4
4
  disableFileHeader: true,
5
5
  };
6
- export function buildBackgroundCSS(background) {
6
+ /**
7
+ * Retint Pierre's code surface to `background`, optionally restyling the file
8
+ * header.
9
+ *
10
+ * Every background in `@pierre/diffs` resolves to `--diffs-bg`, which is
11
+ * `light-dark(var(--diffs-light-bg, #fff), var(--diffs-dark-bg, #000))` — so
12
+ * overriding both inputs re-tints the whole surface from one variable and lets
13
+ * the diff / selection / hover layers keep recomputing their `color-mix` tints
14
+ * against it.
15
+ *
16
+ * `:host` still needs a direct override: the theme layer writes a literal
17
+ * `background-color` there from the Shiki theme, which does not go through
18
+ * `--diffs-bg`.
19
+ *
20
+ * Header rules land in each file item's shadow root, which is where
21
+ * `FileRenderer` puts the header — `CodeView` forwards `unsafeCSS` to its file
22
+ * items even though it never injects it into its own shadow root.
23
+ *
24
+ * Changing header height also invalidates `itemMetrics.diffHeaderHeight`, which
25
+ * `CodeView` uses for its virtualization window and sticky offset. Keep the two
26
+ * in step when overriding `fontSize` / `lineHeight` / `padding`.
27
+ */
28
+ export function buildBackgroundCSS(background, header) {
29
+ const headerDeclarations = header
30
+ ? Object.entries(header)
31
+ .map(([property, value]) => ` ${kebab(property)}: ${value};`)
32
+ .join("\n")
33
+ : "";
7
34
  return `
8
35
  :host {
36
+ --diffs-light-bg: ${background};
37
+ --diffs-dark-bg: ${background};
9
38
  background: ${background} !important;
10
39
  }
11
- pre, code,
12
- [data-gutter], [data-content],
13
- [data-line], [data-column-number],
14
- [data-gutter-buffer], [data-line-annotation], [data-no-newline],
15
- [data-separator], [data-separator-wrapper] {
16
- background: ${background} !important;
17
- }
18
- [data-line] span {
19
- background: ${background} !important;
20
- }
40
+ ${headerDeclarations
41
+ ? `[data-diffs-header] {
42
+ ${headerDeclarations}
43
+ }`
44
+ : ""}
21
45
  `;
22
46
  }
23
- export function buildPierreOptions(background) {
47
+ function kebab(property) {
48
+ return property.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);
49
+ }
50
+ export function buildPierreOptions(background, header) {
24
51
  if (!background)
25
52
  return PIERRE_BASE_OPTIONS;
26
53
  return {
27
54
  ...PIERRE_BASE_OPTIONS,
28
- unsafeCSS: buildBackgroundCSS(background),
55
+ unsafeCSS: buildBackgroundCSS(background, header),
29
56
  };
30
57
  }
31
58
  //# sourceMappingURL=pierreBackground.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pierreBackground.js","sourceRoot":"","sources":["../../src/pierre/pierreBackground.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,OAAO,EAAE,OAAO,EAAW,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,IAAI;CACf,CAAC;AAEX,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,OAAO;;kBAES,UAAU;;;;;;;kBAOV,UAAU;;;kBAGV,UAAU;;CAE3B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,mBAAmB,CAAC;IAC5C,OAAO;QACL,GAAG,mBAAmB;QACtB,SAAS,EAAE,kBAAkB,CAAC,UAAU,CAAC;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pierreBackground.js","sourceRoot":"","sources":["../../src/pierre/pierreBackground.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,OAAO,EAAE,OAAO,EAAW,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,IAAI;CACf,CAAC;AAeX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,MAA0B;IAE1B,MAAM,kBAAkB,GAAG,MAAM;QAC/B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACnB,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,GAAG,CAAC;aAC7D,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;wBAEe,UAAU;uBACX,UAAU;kBACf,UAAU;;IAGxB,kBAAkB;QAChB,CAAC,CAAC;EACN,kBAAkB;IAChB;QACE,CAAC,CAAC,EACN;CACD,CAAC;AACF,CAAC;AAED,SAAS,KAAK,CAAC,QAAgB;IAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,UAAmB,EACnB,MAA0B;IAE1B,IAAI,CAAC,UAAU;QAAE,OAAO,mBAAmB,CAAC;IAC5C,OAAO;QACL,GAAG,mBAAmB;QACtB,SAAS,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * visibleStep — pick which step a scroll position should report as current.
3
+ *
4
+ * Kept separate from the component so the geometry can be tested directly:
5
+ * the answer depends on how tall the final snippet is relative to the
6
+ * viewport, which is not something to eyeball.
7
+ */
8
+ /** A mounted CodeView item reduced to what the choice depends on. */
9
+ export interface VisibleStepRect {
10
+ /** Step index parsed from the item id. */
11
+ index: number;
12
+ /** Viewport-relative top edge, in px. */
13
+ top: number;
14
+ /** Viewport-relative bottom edge, in px. */
15
+ bottom: number;
16
+ }
17
+ /** The scroll container's box plus its scroll metrics, in px. */
18
+ export interface VisibleStepViewport {
19
+ top: number;
20
+ bottom: number;
21
+ scrollTop: number;
22
+ clientHeight: number;
23
+ scrollHeight: number;
24
+ }
25
+ /** Sub-pixel slack so a bottom edge that lands a hair off still counts. */
26
+ export declare const AT_END_TOLERANCE_PX = 2;
27
+ /**
28
+ * Index of the step to report as current.
29
+ *
30
+ * Normally the topmost step still on screen. The exception is the end of the
31
+ * content: when the final snippet is shorter than the viewport, reaching the
32
+ * bottom still leaves the previous step's tail on screen, and reporting that
33
+ * would strand a progress readout one step short of full.
34
+ *
35
+ * 'At the end' is accepted two ways, because either can be the authoritative
36
+ * one depending on how the view is nested:
37
+ * - the lowest mounted item's bottom edge has entered the container's box, or
38
+ * - the container's own scroll offset has reached its scroll extent.
39
+ *
40
+ * The second signal is only consulted when the container actually scrolls. If
41
+ * an ancestor scrolls instead, `scrollHeight` equals `clientHeight` and
42
+ * `scrollTop` is pinned at 0, which would otherwise read as 'at the end' from
43
+ * the very first pixel.
44
+ *
45
+ * Returns `null` when nothing measurable is on screen.
46
+ */
47
+ export declare function resolveVisibleStepIndex(viewport: VisibleStepViewport, rects: readonly VisibleStepRect[]): number | null;
48
+ //# sourceMappingURL=visibleStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibleStep.d.ts","sourceRoot":"","sources":["../../src/pierre/visibleStep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,SAAS,eAAe,EAAE,GAChC,MAAM,GAAG,IAAI,CAsBf"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * visibleStep — pick which step a scroll position should report as current.
3
+ *
4
+ * Kept separate from the component so the geometry can be tested directly:
5
+ * the answer depends on how tall the final snippet is relative to the
6
+ * viewport, which is not something to eyeball.
7
+ */
8
+ /** Sub-pixel slack so a bottom edge that lands a hair off still counts. */
9
+ export const AT_END_TOLERANCE_PX = 2;
10
+ /**
11
+ * Index of the step to report as current.
12
+ *
13
+ * Normally the topmost step still on screen. The exception is the end of the
14
+ * content: when the final snippet is shorter than the viewport, reaching the
15
+ * bottom still leaves the previous step's tail on screen, and reporting that
16
+ * would strand a progress readout one step short of full.
17
+ *
18
+ * 'At the end' is accepted two ways, because either can be the authoritative
19
+ * one depending on how the view is nested:
20
+ * - the lowest mounted item's bottom edge has entered the container's box, or
21
+ * - the container's own scroll offset has reached its scroll extent.
22
+ *
23
+ * The second signal is only consulted when the container actually scrolls. If
24
+ * an ancestor scrolls instead, `scrollHeight` equals `clientHeight` and
25
+ * `scrollTop` is pinned at 0, which would otherwise read as 'at the end' from
26
+ * the very first pixel.
27
+ *
28
+ * Returns `null` when nothing measurable is on screen.
29
+ */
30
+ export function resolveVisibleStepIndex(viewport, rects) {
31
+ let topIndex = null;
32
+ let lastIndex = null;
33
+ let lowestBottom = Number.NEGATIVE_INFINITY;
34
+ for (const rect of rects) {
35
+ if (topIndex == null && rect.bottom > viewport.top)
36
+ topIndex = rect.index;
37
+ if (lastIndex == null || rect.index > lastIndex)
38
+ lastIndex = rect.index;
39
+ if (rect.bottom > lowestBottom)
40
+ lowestBottom = rect.bottom;
41
+ }
42
+ if (topIndex == null)
43
+ return null;
44
+ const reachedLastItem = lowestBottom <= viewport.bottom + AT_END_TOLERANCE_PX;
45
+ const containerScrolls = viewport.scrollHeight > viewport.clientHeight;
46
+ const reachedScrollEnd = containerScrolls &&
47
+ viewport.scrollTop + viewport.clientHeight >=
48
+ viewport.scrollHeight - AT_END_TOLERANCE_PX;
49
+ return reachedLastItem || reachedScrollEnd
50
+ ? (lastIndex ?? topIndex)
51
+ : topIndex;
52
+ }
53
+ //# sourceMappingURL=visibleStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibleStep.js","sourceRoot":"","sources":["../../src/pierre/visibleStep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA6B,EAC7B,KAAiC;IAEjC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG;YAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1E,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,SAAS;YAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY;YAAE,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;KAC5D;IACD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,eAAe,GAAG,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,CAAC;IAC9E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IACvE,MAAM,gBAAgB,GACpB,gBAAgB;QAChB,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY;YACxC,QAAQ,CAAC,YAAY,GAAG,mBAAmB,CAAC;IAEhD,OAAO,eAAe,IAAI,gBAAgB;QACxC,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC;QACzB,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC"}
@@ -13,7 +13,7 @@ export declare const FILE_DRAWER_HEIGHT_MS = 200;
13
13
  * footprint so the canvas shrinks while open (nothing covered). Stays mounted
14
14
  * so open/close/maximize animate. The header's maximize button (or a
15
15
  * double-click) grows it over the whole graph column for whole-file reading. */
16
- export declare function FileDrawer({ title, onClose, fillHeight, suppressEscape, hidden, children, }: {
16
+ export declare function FileDrawer({ title, onClose, fillHeight, suppressEscape, hidden, progress, children, }: {
17
17
  /** Drawer chrome title; `null` closes the drawer. */
18
18
  title: string | null;
19
19
  onClose: () => void;
@@ -23,6 +23,15 @@ export declare function FileDrawer({ title, onClose, fillHeight, suppressEscape,
23
23
  suppressEscape?: boolean;
24
24
  /** Suppress the drawer entirely — no spacer, no panel (embeds). */
25
25
  hidden?: boolean;
26
+ /**
27
+ * Segmented progress readout for the drawer content, e.g. trail step 2 of 5.
28
+ * Rendered as one tick per step, filled through the current one. Omit for
29
+ * content with no position (a single file).
30
+ */
31
+ progress?: {
32
+ index: number;
33
+ total: number;
34
+ } | null;
26
35
  children?: ReactNode;
27
36
  }): import("react").JSX.Element;
28
37
  //# sourceMappingURL=FileDrawer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileDrawer.d.ts","sourceRoot":"","sources":["../../src/subsystem/FileDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;2EAC2E;AAC3E,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;iFAIiF;AACjF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,UAAkB,EAClB,cAAsB,EACtB,MAAc,EACd,QAAQ,GACT,EAAE;IACD,qDAAqD;IACrD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BAiJA"}
1
+ {"version":3,"file":"FileDrawer.d.ts","sourceRoot":"","sources":["../../src/subsystem/FileDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;2EAC2E;AAC3E,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;iFAIiF;AACjF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,UAAkB,EAClB,cAAsB,EACtB,MAAc,EACd,QAAe,EACf,QAAQ,GACT,EAAE;IACD,qDAAqD;IACrD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BA2LA"}