@peasant-labs/fairtrade 0.0.3 → 0.0.4

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/lib/ChartLine-Dlp6-CLL.js +264 -0
  2. package/dist/lib/InUseShell-DZvmRdj-.js +1532 -0
  3. package/dist/lib/analytics.css +1 -0
  4. package/dist/lib/analytics.js +1052 -0
  5. package/dist/lib/commons.css +1 -0
  6. package/dist/lib/commons.js +3275 -0
  7. package/dist/lib/components.css +1 -1
  8. package/dist/lib/graph.css +1 -0
  9. package/dist/lib/graph.js +823 -0
  10. package/dist/lib/types/Intensity.d.ts +3 -3
  11. package/dist/lib/types/MapCanvas.d.ts +37 -5
  12. package/dist/lib/types/RoleRoster.d.ts +12 -1
  13. package/dist/lib/types/analytics/ChartCard.d.ts +18 -0
  14. package/dist/lib/types/analytics/ContributorTable.d.ts +16 -0
  15. package/dist/lib/types/analytics/ProjectOverview.d.ts +40 -0
  16. package/dist/lib/types/analytics/format.d.ts +48 -0
  17. package/dist/lib/types/analytics/index.d.ts +24 -0
  18. package/dist/lib/types/analytics/metrics.d.ts +130 -0
  19. package/dist/lib/types/analytics/stats.d.ts +23 -0
  20. package/dist/lib/types/analytics/time.d.ts +32 -0
  21. package/dist/lib/types/analytics/types.d.ts +453 -0
  22. package/dist/lib/types/commons/Explore.d.ts +6 -0
  23. package/dist/lib/types/commons/Manage.d.ts +34 -0
  24. package/dist/lib/types/commons/index.d.ts +24 -0
  25. package/dist/lib/types/commons/providers.d.ts +8 -0
  26. package/dist/lib/types/commons/types.d.ts +356 -0
  27. package/dist/lib/types/graph/ChangeDetail.d.ts +28 -0
  28. package/dist/lib/types/graph/Changes.d.ts +21 -0
  29. package/dist/lib/types/graph/CodeMap.d.ts +49 -0
  30. package/dist/lib/types/graph/CodeMapComposition.d.ts +85 -0
  31. package/dist/lib/types/graph/changeGraph.d.ts +106 -0
  32. package/dist/lib/types/graph/index.d.ts +30 -0
  33. package/dist/lib/types/graph/types.d.ts +579 -0
  34. package/dist/lib/types/index.d.ts +1 -0
  35. package/dist/lib/types/inuse/InUseShell.d.ts +50 -0
  36. package/dist/lib/ui-oBFnHPFe.js +11146 -0
  37. package/dist/lib/ui.js +4 -12693
  38. package/package.json +37 -6
@@ -0,0 +1,579 @@
1
+ /**
2
+ * Classification of a map node within the path-derived tree.
3
+ * pkg/schema/map_api.go — MapNodeKind constants.
4
+ * @typedef {'module' | 'package' | 'file'} MapNodeKind
5
+ */
6
+ /** Canonical MapNodeKind values, in schema order. @type {readonly MapNodeKind[]} */
7
+ export const MAP_NODE_KINDS: readonly MapNodeKind[];
8
+ /**
9
+ * How strongly a recorded session is bound to a change.
10
+ * pkg/schema/map_api.go — ChangeBinding constants.
11
+ * @typedef {'bound' | 'candidate'} ChangeBinding
12
+ */
13
+ /** Canonical ChangeBinding values. @type {readonly ChangeBinding[]} */
14
+ export const CHANGE_BINDINGS: readonly ChangeBinding[];
15
+ /**
16
+ * Kind of structural violation on the map.
17
+ * pkg/schema/map_api.go — EdgeViolationKind constants.
18
+ * @typedef {'cycle' | 'wrong_way'} EdgeViolationKind
19
+ */
20
+ /** Canonical EdgeViolationKind values. @type {readonly EdgeViolationKind[]} */
21
+ export const EDGE_VIOLATION_KINDS: readonly EdgeViolationKind[];
22
+ /**
23
+ * Per-file change status (branch vs merge-base). Git rename detection strips the
24
+ * similarity score, so "R100"/"R087" normalize to "R".
25
+ * Grounded in internal/gitops/repo.go — FileStatus{Modified,Added,Deleted,Renamed}
26
+ * ("M"/"A"/"D"/"R"); carried verbatim onto FileChange.Status / ChangeDiffPayload.Status
27
+ * in pkg/schema/map_api.go.
28
+ * @typedef {'M' | 'A' | 'D' | 'R'} FileChangeStatus
29
+ */
30
+ /** Canonical FileChangeStatus values, in schema order. @type {readonly FileChangeStatus[]} */
31
+ export const FILE_CHANGE_STATUSES: readonly FileChangeStatus[];
32
+ /**
33
+ * Classification of one line within a unified-diff hunk.
34
+ * Grounded in internal/gitops/repo.go — DiffLine{Context,Added,Removed}
35
+ * ("context"/"add"/"del"); carried onto DiffLine.Kind in pkg/schema/map_api.go.
36
+ * @typedef {'context' | 'add' | 'del'} DiffLineKind
37
+ */
38
+ /** Canonical DiffLineKind values, in schema order. @type {readonly DiffLineKind[]} */
39
+ export const DIFF_LINE_KINDS: readonly DiffLineKind[];
40
+ /**
41
+ * Classification of a map node within the path-derived tree.
42
+ * pkg/schema/map_api.go — MapNodeKind constants.
43
+ */
44
+ export type MapNodeKind = "module" | "package" | "file";
45
+ /**
46
+ * How strongly a recorded session is bound to a change.
47
+ * pkg/schema/map_api.go — ChangeBinding constants.
48
+ */
49
+ export type ChangeBinding = "bound" | "candidate";
50
+ /**
51
+ * Kind of structural violation on the map.
52
+ * pkg/schema/map_api.go — EdgeViolationKind constants.
53
+ */
54
+ export type EdgeViolationKind = "cycle" | "wrong_way";
55
+ /**
56
+ * Per-file change status (branch vs merge-base). Git rename detection strips the
57
+ * similarity score, so "R100"/"R087" normalize to "R".
58
+ * Grounded in internal/gitops/repo.go — FileStatus{Modified,Added,Deleted,Renamed}
59
+ * ("M"/"A"/"D"/"R"); carried verbatim onto FileChange.Status / ChangeDiffPayload.Status
60
+ * in pkg/schema/map_api.go.
61
+ */
62
+ export type FileChangeStatus = "M" | "A" | "D" | "R";
63
+ /**
64
+ * Classification of one line within a unified-diff hunk.
65
+ * Grounded in internal/gitops/repo.go — DiffLine{Context,Added,Removed}
66
+ * ("context"/"add"/"del"); carried onto DiffLine.Kind in pkg/schema/map_api.go.
67
+ */
68
+ export type DiffLineKind = "context" | "add" | "del";
69
+ /**
70
+ * Lightweight commit reference used in the time strip and unrecorded commits.
71
+ * Mirrors CommitRef from pkg/schema/map_api.go.
72
+ */
73
+ export type CommitRefPayload = {
74
+ /**
75
+ * commit SHA
76
+ */
77
+ hash: string;
78
+ /**
79
+ * first line of the commit message
80
+ */
81
+ subject: string;
82
+ /**
83
+ * committer date, Unix millis; absent when unknown
84
+ */
85
+ timeMs?: number | null;
86
+ /**
87
+ * true when a recorded session is bound to this commit
88
+ */
89
+ hasSession: boolean;
90
+ };
91
+ /**
92
+ * A structure (import) dependency edge between two map nodes.
93
+ * Mirrors MapEdge from pkg/schema/map_api.go.
94
+ */
95
+ export type MapEdgePayload = {
96
+ /**
97
+ * source node ID (repo-relative path)
98
+ */
99
+ from: string;
100
+ /**
101
+ * target node ID
102
+ */
103
+ to: string;
104
+ /**
105
+ * underlying import count (aggregated)
106
+ */
107
+ count: number;
108
+ };
109
+ /**
110
+ * A co-edit (activity) observation edge: two nodes repeatedly edited by the
111
+ * same tasks. DISTINCT from MapEdgePayload — the count channel is `taskCount`
112
+ * (distinct tasks that edited both endpoints), NOT the import `count`.
113
+ * Mirrors ActivityEdge from pkg/schema/map_api.go.
114
+ */
115
+ export type ActivityEdgePayload = {
116
+ /**
117
+ * source node ID
118
+ */
119
+ from: string;
120
+ /**
121
+ * target node ID
122
+ */
123
+ to: string;
124
+ /**
125
+ * distinct tasks that edited both endpoints
126
+ */
127
+ taskCount: number;
128
+ };
129
+ /**
130
+ * A structural violation — a cycle or wrong-way import — on the map.
131
+ * Mirrors EdgeViolation from pkg/schema/map_api.go.
132
+ */
133
+ export type EdgeViolationPayload = {
134
+ kind: EdgeViolationKind;
135
+ /**
136
+ * source node ID
137
+ */
138
+ from: string;
139
+ /**
140
+ * target node ID
141
+ */
142
+ to: string;
143
+ };
144
+ /**
145
+ * One node on the code map (module, package, or file). Topology-only: the
146
+ * lifted <CodeMap> component derives pixel positions from layer/order using
147
+ * layout.ts internally; consumers supply raw topology.
148
+ * Mirrors MapNode from pkg/schema/map_api.go (field-for-field).
149
+ */
150
+ export type MapNodePayload = {
151
+ /**
152
+ * repo-relative path, e.g. "internal/ingest" or "web/src/lib/api.ts"
153
+ */
154
+ id: string;
155
+ /**
156
+ * ID of parent node; absent for top-level modules
157
+ */
158
+ parent?: string;
159
+ kind: MapNodeKind;
160
+ /**
161
+ * display leaf, e.g. "ingest"
162
+ */
163
+ name: string;
164
+ /**
165
+ * e.g. "go" or "typescript"; absent for activity-only nodes
166
+ */
167
+ language?: string;
168
+ /**
169
+ * 0 = top row; deterministic, server-assigned
170
+ */
171
+ layer: number;
172
+ /**
173
+ * stable sort within layer; server-assigned
174
+ */
175
+ order: number;
176
+ /**
177
+ * size metric (lines of code)
178
+ */
179
+ loc: number;
180
+ /**
181
+ * 1 for file nodes
182
+ */
183
+ fileCount: number;
184
+ /**
185
+ * files whose last edit traces to a recorded session
186
+ */
187
+ recordedFiles: number;
188
+ totalFiles: number;
189
+ /**
190
+ * recorded edits in the activity window (activity size metric)
191
+ */
192
+ touchCount: number;
193
+ /**
194
+ * 0..1 per-file re-edit/error density rollup (0 when unknown)
195
+ */
196
+ effortDensity: number;
197
+ };
198
+ /**
199
+ * A scoped sub-map: the touched nodes plus their one-hop neighborhood, with
200
+ * layer/order preserved from the full map. Used inside ChangeDetailPayload.
201
+ * Mirrors MapSlice from pkg/schema/map_api.go.
202
+ */
203
+ export type MapSlicePayload = {
204
+ /**
205
+ * topology-only; layer/order from the full map
206
+ */
207
+ nodes: MapNodePayload[];
208
+ /**
209
+ * parsed import edges within the slice (count = import count)
210
+ */
211
+ structureEdges: MapEdgePayload[];
212
+ /**
213
+ * co-edit observations within the slice (taskCount, NOT count)
214
+ */
215
+ activityEdges: ActivityEdgePayload[];
216
+ };
217
+ /**
218
+ * One row in the Changes list: a local branch measured against the default
219
+ * branch. Graph anchors (baseHash/tipCommitMs/mergeCommitHash) tie this row
220
+ * to the time strip lane.
221
+ * Mirrors ChangeSummary from pkg/schema/map_api.go.
222
+ */
223
+ export type ChangeSummaryPayload = {
224
+ branch: string;
225
+ /**
226
+ * commits ahead of the default branch
227
+ */
228
+ aheadCount: number;
229
+ behindCount: number;
230
+ filesChanged: number;
231
+ /**
232
+ * recorded sessions bound to this change
233
+ */
234
+ sessionCount: number;
235
+ /**
236
+ * distinct tasks across bound sessions
237
+ */
238
+ taskCount: number;
239
+ /**
240
+ * new import edges introduced
241
+ */
242
+ newEdges: number;
243
+ removedEdges: number;
244
+ /**
245
+ * count of structural violations introduced
246
+ */
247
+ violations: number;
248
+ /**
249
+ * most-recent recorded-session activity, Unix millis
250
+ */
251
+ lastWorkMs?: number | null;
252
+ merged: boolean;
253
+ mergedAtMs?: number | null;
254
+ /**
255
+ * true when this merged change was later git-reverted
256
+ */
257
+ reverted?: boolean;
258
+ /**
259
+ * graph anchor: merge-base commit hash (fork point; open branches)
260
+ */
261
+ baseHash?: string;
262
+ /**
263
+ * graph anchor: branch tip committer time (row position; open branches)
264
+ */
265
+ tipCommitMs?: number | null;
266
+ /**
267
+ * graph anchor: merge commit hash (join point; merged rows)
268
+ */
269
+ mergeCommitHash?: string;
270
+ };
271
+ /**
272
+ * The Changes surface prop payload. The adapter maps ReviewListPayload (CLEAN)
273
+ * onto this shape — field-for-field, no reshaping required.
274
+ */
275
+ export type ChangesPayload = {
276
+ /**
277
+ * false when the project root is not a git repo
278
+ */
279
+ repoFound: boolean;
280
+ defaultBranch?: string;
281
+ /**
282
+ * open branches first, then merged (reverse-chron within each)
283
+ */
284
+ changes: ChangeSummaryPayload[];
285
+ /**
286
+ * default-branch commits for the time strip, cap 200
287
+ */
288
+ recentCommits: CommitRefPayload[];
289
+ };
290
+ /**
291
+ * One task within a change's bound sessions.
292
+ * Mirrors TaskSummary from pkg/schema/map_api.go.
293
+ */
294
+ export type TaskSummaryPayload = {
295
+ sessionId: string;
296
+ /**
297
+ * depth-0 user-turn index (task identity)
298
+ */
299
+ entryIndex: number;
300
+ /**
301
+ * first ~80 chars of the user turn
302
+ */
303
+ title: string;
304
+ /**
305
+ * task start, Unix millis
306
+ */
307
+ startMs?: number | null;
308
+ /**
309
+ * session-level outcome string
310
+ */
311
+ outcome?: string;
312
+ /**
313
+ * repo-relative paths touched by this task
314
+ */
315
+ editedFiles: string[];
316
+ /**
317
+ * reads within this task's range
318
+ */
319
+ readCount: number;
320
+ /**
321
+ * true when an error streak ≥2 occurs inside this task
322
+ */
323
+ retryLoop: boolean;
324
+ /**
325
+ * effective auto/manual annotation values
326
+ */
327
+ labels: string[];
328
+ };
329
+ /**
330
+ * One recorded session bound to a change, with its tasks.
331
+ * Mirrors ChangeSession from pkg/schema/map_api.go.
332
+ */
333
+ export type ChangeSessionPayload = {
334
+ sessionId: string;
335
+ title: string;
336
+ harness: string;
337
+ startMs?: number | null;
338
+ /**
339
+ * "bound" = commit-in-branch AND file overlap; "candidate" = one arm only
340
+ */
341
+ binding: ChangeBinding;
342
+ tasks: TaskSummaryPayload[];
343
+ };
344
+ /**
345
+ * One neutral rate-elevation observation: a metric that runs above the project
346
+ * baseline for this change. Factual, never a grade.
347
+ * Mirrors UnusualSignal from pkg/schema/map_api.go.
348
+ */
349
+ export type UnusualSignalPayload = {
350
+ /**
351
+ * stable slug, e.g. "retryLoops"
352
+ */
353
+ kind: string;
354
+ /**
355
+ * plain, neutral description
356
+ */
357
+ label: string;
358
+ /**
359
+ * this change's per-conversation rate
360
+ */
361
+ perChange: number;
362
+ /**
363
+ * project baseline rate
364
+ */
365
+ perProject: number;
366
+ };
367
+ /**
368
+ * A neutral count of a recurring friction signal keyed to a file.
369
+ * Mirrors FrictionCluster from pkg/schema/map_api.go.
370
+ */
371
+ export type FrictionClusterPayload = {
372
+ /**
373
+ * signal slug, e.g. "retryLoop"
374
+ */
375
+ kind: string;
376
+ /**
377
+ * plain, neutral, e.g. "retry loops"
378
+ */
379
+ label: string;
380
+ /**
381
+ * repo-relative path
382
+ */
383
+ file: string;
384
+ /**
385
+ * occurrences (retry-loop tasks touching this file)
386
+ */
387
+ count: number;
388
+ /**
389
+ * distinct conversations the occurrences span
390
+ */
391
+ sessions: number;
392
+ };
393
+ /**
394
+ * One changed file within a branch (branch vs its merge-base).
395
+ * Mirrors FileChange from pkg/schema/map_api.go.
396
+ */
397
+ export type FileChangePayload = {
398
+ path: string;
399
+ /**
400
+ * modified / added / deleted / renamed
401
+ */
402
+ status: FileChangeStatus;
403
+ /**
404
+ * present for renames
405
+ */
406
+ oldPath?: string | null;
407
+ /**
408
+ * 0 for binary files or when numstat is unavailable
409
+ */
410
+ linesAdded: number;
411
+ linesRemoved: number;
412
+ };
413
+ /**
414
+ * The ChangeDetail surface prop payload. The adapter maps the wire
415
+ * ChangeDetailPayload (CLEAN) onto this shape — field-for-field.
416
+ * The lazy per-file diff (ChangeDiffPayload) is fetched separately and wired
417
+ * via a callback/slot on the ChangeDetail surface; it is NOT embedded here.
418
+ */
419
+ export type ChangeDetailPayload = {
420
+ branch: string;
421
+ /**
422
+ * merge-base commit hash
423
+ */
424
+ baseRef: string;
425
+ defaultBranch: string;
426
+ /**
427
+ * changed files (branch vs merge-base)
428
+ */
429
+ files: FileChangePayload[];
430
+ /**
431
+ * touched nodes + 1-hop neighborhood
432
+ */
433
+ slice: MapSlicePayload;
434
+ /**
435
+ * new import edges introduced
436
+ */
437
+ newEdges: MapEdgePayload[];
438
+ removedEdges: MapEdgePayload[];
439
+ /**
440
+ * new node IDs
441
+ */
442
+ newNodes: string[];
443
+ removedNodes: string[];
444
+ /**
445
+ * structural violations INTRODUCED by this change
446
+ */
447
+ violations: EdgeViolationPayload[];
448
+ /**
449
+ * bound sessions, with tasks (each = one "conversation"; count = work.length)
450
+ */
451
+ work: ChangeSessionPayload[];
452
+ /**
453
+ * commits on the branch with no recorded session
454
+ */
455
+ unrecordedCommits: CommitRefPayload[];
456
+ /**
457
+ * neutral rate-elevation observations
458
+ */
459
+ unusual: UnusualSignalPayload[];
460
+ /**
461
+ * neutral recurring-friction counts
462
+ */
463
+ frictions: FrictionClusterPayload[];
464
+ /**
465
+ * authoritative changed-file count (from the matching ChangeSummary; files[] may be capped)
466
+ */
467
+ filesChanged: number;
468
+ linesAdded: number;
469
+ linesRemoved: number;
470
+ /**
471
+ * SUM of output_tokens over bound sessions (the "ai wrote ≈N tokens" stat)
472
+ */
473
+ outputTokens: number;
474
+ costUsd?: number | null;
475
+ };
476
+ /**
477
+ * One line within a diff hunk. `kind` uses the unified-diff convention.
478
+ * Mirrors DiffLine from pkg/schema/map_api.go.
479
+ */
480
+ export type DiffLinePayload = {
481
+ /**
482
+ * context / add / del
483
+ */
484
+ kind: DiffLineKind;
485
+ /**
486
+ * line text, WITHOUT the leading +/-/space marker
487
+ */
488
+ text: string;
489
+ };
490
+ /**
491
+ * One unified-diff hunk (the `-old +new` range line). May carry conversation
492
+ * attribution when the hunk's added lines trace to a recorded session via git blame.
493
+ * Mirrors DiffHunk from pkg/schema/map_api.go.
494
+ */
495
+ export type DiffHunkPayload = {
496
+ oldStart: number;
497
+ oldLines: number;
498
+ newStart: number;
499
+ newLines: number;
500
+ /**
501
+ * hunk range header line, when present
502
+ */
503
+ header?: string;
504
+ lines: DiffLinePayload[];
505
+ /**
506
+ * conversation attribution: recorded session that wrote most of the hunk's new lines
507
+ */
508
+ sessionId?: string;
509
+ sessionTitle?: string;
510
+ };
511
+ /**
512
+ * The lazy per-file diff payload — fetched on demand when the user opens a
513
+ * file's diff inside the ChangeDetail surface. Adapter maps the wire
514
+ * ChangeDiffPayload (CLEAN) onto this shape — field-for-field.
515
+ */
516
+ export type ChangeDiffPayload = {
517
+ branch: string;
518
+ /**
519
+ * the new (or only) file path
520
+ */
521
+ file: string;
522
+ /**
523
+ * present for renames
524
+ */
525
+ oldPath?: string | null;
526
+ /**
527
+ * modified / added / deleted / renamed
528
+ */
529
+ status: FileChangeStatus;
530
+ /**
531
+ * true for binary files (no hunks)
532
+ */
533
+ binary: boolean;
534
+ /**
535
+ * true when the file exceeds the size cap
536
+ */
537
+ truncated: boolean;
538
+ hunks: DiffHunkPayload[];
539
+ /**
540
+ * HOST-SIDE error sentinel — NOT a wire field. The adapter
541
+ * must never map this from the REST payload; the host sets it
542
+ * (with empty `hunks`) when its lazy diff fetch FAILED, so the
543
+ * surface renders an error row instead of a perpetual spinner.
544
+ */
545
+ error?: string;
546
+ };
547
+ /**
548
+ * The CodeMap surface prop payload. The adapter maps MapGraphPayload
549
+ * (TRANSFORM) onto this shape: topology passes through field-for-field via
550
+ * mapGraphToData() (web/src/app/map/lib/mapData.ts); the lifted <CodeMap>
551
+ * component derives pixel geometry (x/y + width) from layer/order internally
552
+ * using layout.ts — geometry is NOT a field in this payload.
553
+ *
554
+ * activityEdges are excluded here: they feed the node-detail rail's
555
+ * "often edited with" rows, not the canvas. The surface slice wires them
556
+ * separately as a node-detail prop.
557
+ *
558
+ * Interaction-parity props (onExpand, highlightedIds, zoom, onZoomChange,
559
+ * Review changed-slice overlays, effort overlay, keyboard) are component-level
560
+ * props defined in the surface slice, not data fields in this payload.
561
+ */
562
+ export type CodeMapPayload = {
563
+ /**
564
+ * false when the project root is not a git repo; the component degrades to activity-only
565
+ */
566
+ repoFound: boolean;
567
+ /**
568
+ * topology nodes for all zoom levels; parent links form the tree
569
+ */
570
+ nodes: MapNodePayload[];
571
+ /**
572
+ * parsed import edges (aggregated per node pair)
573
+ */
574
+ structureEdges: MapEdgePayload[];
575
+ /**
576
+ * structural violations (cycles + wrong-way imports)
577
+ */
578
+ violations: EdgeViolationPayload[];
579
+ };
@@ -53,3 +53,4 @@ export { default as SignInProviders, HandleClaim, OnboardingCard } from "./SignI
53
53
  export { default as CliSteps, CommandBlock, GettingStarted } from "./CliOnboard.jsx";
54
54
  export { StatTile, StatGrid, GovTile, ProviderBars } from "./StatTiles.jsx";
55
55
  export { default as VisibilitySegmented, VisibilityEye, ScopeChip, FocusedModeToggle } from "./VisibilityControl.jsx";
56
+ export { default as InUseShell, GraphAppShell, GraphSectionNav, IN_USE_APPS, GRAPH_APP_SECTIONS } from "./inuse/InUseShell.jsx";
@@ -0,0 +1,50 @@
1
+ export default function InUseShell({ apps, defaultApp, activeApp, onAppChange, renderApp, brand, ariaLabel, }: {
2
+ apps?: readonly {
3
+ id: string;
4
+ mark: string;
5
+ icon: react.ForwardRefExoticComponent<any>;
6
+ }[];
7
+ defaultApp: any;
8
+ activeApp: any;
9
+ onAppChange: any;
10
+ renderApp: any;
11
+ brand?: string;
12
+ ariaLabel?: string;
13
+ }): any;
14
+ export function GraphAppShell({ sections, activeId, activePrimaryId, onSectionChange, backTo, onBack, children, ariaLabel, }: {
15
+ sections?: readonly {
16
+ id: string;
17
+ label: string;
18
+ }[];
19
+ activeId: any;
20
+ activePrimaryId: any;
21
+ onSectionChange: any;
22
+ backTo: any;
23
+ onBack: any;
24
+ children: any;
25
+ ariaLabel?: string;
26
+ }): any;
27
+ export function GraphSectionNav({ sections, activeId, hrefFor, LinkComponent, onSectionChange, className, itemClassName, activeItemClassName, activeMarker, ariaLabel, }: {
28
+ sections?: readonly {
29
+ id: string;
30
+ label: string;
31
+ }[];
32
+ activeId?: any;
33
+ hrefFor?: any;
34
+ LinkComponent?: any;
35
+ onSectionChange?: any;
36
+ className?: string;
37
+ itemClassName?: string;
38
+ activeItemClassName?: string;
39
+ activeMarker?: any;
40
+ ariaLabel?: string;
41
+ }): any;
42
+ export const IN_USE_APPS: readonly {
43
+ id: string;
44
+ mark: string;
45
+ icon: react.ForwardRefExoticComponent<any>;
46
+ }[];
47
+ export const GRAPH_APP_SECTIONS: readonly {
48
+ id: string;
49
+ label: string;
50
+ }[];