@hachej/boring-workspace 0.1.31 → 0.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FileTree-SmsE0Raq.js +289 -0
- package/dist/{MarkdownEditor-DPBSzTBz.js → MarkdownEditor-zbp8ezds.js} +1 -1
- package/dist/WorkspaceLoadingState-BlvZXmFg.js +719 -0
- package/dist/WorkspaceProvider-CuIZx1ua.js +6553 -0
- package/dist/app-front.d.ts +25 -2
- package/dist/app-front.js +697 -546
- package/dist/app-server.d.ts +21 -4
- package/dist/app-server.js +277 -104
- package/dist/boring-workspace.css +1 -1
- package/dist/{createInMemoryBridge--ZFPAgXy.d.ts → createInMemoryBridge-HJopAIbo.d.ts} +12 -2
- package/dist/plugin.d.ts +2 -2
- package/dist/server.d.ts +62 -9
- package/dist/server.js +261 -46
- package/dist/shared.d.ts +2 -2
- package/dist/{surface-CEEkd81D.d.ts → surface-obE7YwJk.d.ts} +2 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +1 -1
- package/dist/{ui-bridge-Bdgl2hR8.d.ts → ui-bridge-DFNem0df.d.ts} +2 -2
- package/dist/workspace.css +84 -27
- package/dist/workspace.d.ts +92 -3
- package/dist/workspace.js +472 -386
- package/docs/PLUGIN_STRUCTURE.md +5 -4
- package/docs/PLUGIN_SYSTEM.md +6 -6
- package/docs/plans/archive/UNIFIED_PLUGIN_SYSTEM_PLAN.md +2 -2
- package/package.json +3 -3
- package/dist/FileTree-DUxjUbxL.js +0 -266
- package/dist/WorkspaceLoadingState-DJF_4S4_.js +0 -613
- package/dist/WorkspaceProvider-0V-2x7AH.js +0 -6357
package/dist/workspace.css
CHANGED
|
@@ -1481,6 +1481,9 @@
|
|
|
1481
1481
|
.end {
|
|
1482
1482
|
inset-inline-end: var(--spacing);
|
|
1483
1483
|
}
|
|
1484
|
+
.-top-1\.5 {
|
|
1485
|
+
top: calc(var(--spacing) * -1.5);
|
|
1486
|
+
}
|
|
1484
1487
|
.top-0 {
|
|
1485
1488
|
top: calc(var(--spacing) * 0);
|
|
1486
1489
|
}
|
|
@@ -1499,9 +1502,6 @@
|
|
|
1499
1502
|
.right-0 {
|
|
1500
1503
|
right: calc(var(--spacing) * 0);
|
|
1501
1504
|
}
|
|
1502
|
-
.right-1 {
|
|
1503
|
-
right: calc(var(--spacing) * 1);
|
|
1504
|
-
}
|
|
1505
1505
|
.right-2 {
|
|
1506
1506
|
right: calc(var(--spacing) * 2);
|
|
1507
1507
|
}
|
|
@@ -1595,9 +1595,6 @@
|
|
|
1595
1595
|
.mt-px {
|
|
1596
1596
|
margin-top: 1px;
|
|
1597
1597
|
}
|
|
1598
|
-
.mr-1 {
|
|
1599
|
-
margin-right: calc(var(--spacing) * 1);
|
|
1600
|
-
}
|
|
1601
1598
|
.mr-auto {
|
|
1602
1599
|
margin-right: auto;
|
|
1603
1600
|
}
|
|
@@ -1668,6 +1665,10 @@
|
|
|
1668
1665
|
width: calc(var(--spacing) * 4);
|
|
1669
1666
|
height: calc(var(--spacing) * 4);
|
|
1670
1667
|
}
|
|
1668
|
+
.size-7 {
|
|
1669
|
+
width: calc(var(--spacing) * 7);
|
|
1670
|
+
height: calc(var(--spacing) * 7);
|
|
1671
|
+
}
|
|
1671
1672
|
.size-\[22px\] {
|
|
1672
1673
|
width: 22px;
|
|
1673
1674
|
height: 22px;
|
|
@@ -1675,6 +1676,9 @@
|
|
|
1675
1676
|
.h-1\.5 {
|
|
1676
1677
|
height: calc(var(--spacing) * 1.5);
|
|
1677
1678
|
}
|
|
1679
|
+
.h-2 {
|
|
1680
|
+
height: calc(var(--spacing) * 2);
|
|
1681
|
+
}
|
|
1678
1682
|
.h-3 {
|
|
1679
1683
|
height: calc(var(--spacing) * 3);
|
|
1680
1684
|
}
|
|
@@ -1702,6 +1706,9 @@
|
|
|
1702
1706
|
.h-12 {
|
|
1703
1707
|
height: calc(var(--spacing) * 12);
|
|
1704
1708
|
}
|
|
1709
|
+
.h-\[15px\] {
|
|
1710
|
+
height: 15px;
|
|
1711
|
+
}
|
|
1705
1712
|
.h-auto {
|
|
1706
1713
|
height: auto;
|
|
1707
1714
|
}
|
|
@@ -1738,6 +1745,9 @@
|
|
|
1738
1745
|
.w-1\.5 {
|
|
1739
1746
|
width: calc(var(--spacing) * 1.5);
|
|
1740
1747
|
}
|
|
1748
|
+
.w-2 {
|
|
1749
|
+
width: calc(var(--spacing) * 2);
|
|
1750
|
+
}
|
|
1741
1751
|
.w-3 {
|
|
1742
1752
|
width: calc(var(--spacing) * 3);
|
|
1743
1753
|
}
|
|
@@ -1762,6 +1772,9 @@
|
|
|
1762
1772
|
.w-11 {
|
|
1763
1773
|
width: calc(var(--spacing) * 11);
|
|
1764
1774
|
}
|
|
1775
|
+
.w-\[15px\] {
|
|
1776
|
+
width: 15px;
|
|
1777
|
+
}
|
|
1765
1778
|
.w-\[85vw\] {
|
|
1766
1779
|
width: 85vw;
|
|
1767
1780
|
}
|
|
@@ -1804,20 +1817,22 @@
|
|
|
1804
1817
|
.flex-1 {
|
|
1805
1818
|
flex: 1;
|
|
1806
1819
|
}
|
|
1820
|
+
.flex-\[0_0_0px\] {
|
|
1821
|
+
flex: 0 0 0px;
|
|
1822
|
+
}
|
|
1807
1823
|
.flex-none {
|
|
1808
1824
|
flex: none;
|
|
1809
1825
|
}
|
|
1810
1826
|
.shrink-0 {
|
|
1811
1827
|
flex-shrink: 0;
|
|
1812
1828
|
}
|
|
1829
|
+
.flex-grow {
|
|
1830
|
+
flex-grow: 1;
|
|
1831
|
+
}
|
|
1813
1832
|
.translate-x-1\/2 {
|
|
1814
1833
|
--tw-translate-x: calc(1 / 2 * 100%);
|
|
1815
1834
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1816
1835
|
}
|
|
1817
|
-
.-translate-y-1\/2 {
|
|
1818
|
-
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
|
|
1819
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1820
|
-
}
|
|
1821
1836
|
.translate-y-1\/2 {
|
|
1822
1837
|
--tw-translate-y: calc(1 / 2 * 100%);
|
|
1823
1838
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -2250,18 +2265,12 @@
|
|
|
2250
2265
|
.pt-12 {
|
|
2251
2266
|
padding-top: calc(var(--spacing) * 12);
|
|
2252
2267
|
}
|
|
2253
|
-
.pr-7 {
|
|
2254
|
-
padding-right: calc(var(--spacing) * 7);
|
|
2255
|
-
}
|
|
2256
2268
|
.pb-2 {
|
|
2257
2269
|
padding-bottom: calc(var(--spacing) * 2);
|
|
2258
2270
|
}
|
|
2259
2271
|
.pb-10 {
|
|
2260
2272
|
padding-bottom: calc(var(--spacing) * 10);
|
|
2261
2273
|
}
|
|
2262
|
-
.pl-2\.5 {
|
|
2263
|
-
padding-left: calc(var(--spacing) * 2.5);
|
|
2264
|
-
}
|
|
2265
2274
|
.pl-3 {
|
|
2266
2275
|
padding-left: calc(var(--spacing) * 3);
|
|
2267
2276
|
}
|
|
@@ -2271,6 +2280,9 @@
|
|
|
2271
2280
|
.pl-10 {
|
|
2272
2281
|
padding-left: calc(var(--spacing) * 10);
|
|
2273
2282
|
}
|
|
2283
|
+
.pl-14 {
|
|
2284
|
+
padding-left: calc(var(--spacing) * 14);
|
|
2285
|
+
}
|
|
2274
2286
|
.text-center {
|
|
2275
2287
|
text-align: center;
|
|
2276
2288
|
}
|
|
@@ -2578,6 +2590,16 @@
|
|
|
2578
2590
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2579
2591
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2580
2592
|
}
|
|
2593
|
+
.transition-\[flex-grow\,flex-basis\,width\,min-width\,max-width\] {
|
|
2594
|
+
transition-property: flex-grow,flex-basis,width,min-width,max-width;
|
|
2595
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2596
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2597
|
+
}
|
|
2598
|
+
.transition-\[opacity\,padding\] {
|
|
2599
|
+
transition-property: opacity,padding;
|
|
2600
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2601
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2602
|
+
}
|
|
2581
2603
|
.transition-\[width\,min-width\,max-width\] {
|
|
2582
2604
|
transition-property: width,min-width,max-width;
|
|
2583
2605
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -2666,10 +2688,10 @@
|
|
|
2666
2688
|
}
|
|
2667
2689
|
}
|
|
2668
2690
|
}
|
|
2669
|
-
.hover\:-translate-y-\[
|
|
2691
|
+
.hover\:-translate-y-\[1px\] {
|
|
2670
2692
|
&:hover {
|
|
2671
2693
|
@media (hover: hover) {
|
|
2672
|
-
--tw-translate-y: calc(
|
|
2694
|
+
--tw-translate-y: calc(1px * -1);
|
|
2673
2695
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
2674
2696
|
}
|
|
2675
2697
|
}
|
|
@@ -2885,6 +2907,21 @@
|
|
|
2885
2907
|
}
|
|
2886
2908
|
}
|
|
2887
2909
|
}
|
|
2910
|
+
.disabled\:pointer-events-none {
|
|
2911
|
+
&:disabled {
|
|
2912
|
+
pointer-events: none;
|
|
2913
|
+
}
|
|
2914
|
+
}
|
|
2915
|
+
.disabled\:opacity-50 {
|
|
2916
|
+
&:disabled {
|
|
2917
|
+
opacity: 50%;
|
|
2918
|
+
}
|
|
2919
|
+
}
|
|
2920
|
+
.disabled\:opacity-60 {
|
|
2921
|
+
&:disabled {
|
|
2922
|
+
opacity: 60%;
|
|
2923
|
+
}
|
|
2924
|
+
}
|
|
2888
2925
|
.aria-selected\:bg-\[color\:oklch\(from_var\(--accent\)_l_c_h\/0\.10\)\] {
|
|
2889
2926
|
&[aria-selected="true"] {
|
|
2890
2927
|
background-color: oklch(from var(--accent) l c h/0.10);
|
|
@@ -2976,9 +3013,9 @@
|
|
|
2976
3013
|
color: var(--accent);
|
|
2977
3014
|
}
|
|
2978
3015
|
}
|
|
2979
|
-
.\[\.active-tab_\&\]\:opacity-
|
|
3016
|
+
.\[\.active-tab_\&\]\:opacity-55 {
|
|
2980
3017
|
.active-tab & {
|
|
2981
|
-
opacity:
|
|
3018
|
+
opacity: 55%;
|
|
2982
3019
|
}
|
|
2983
3020
|
}
|
|
2984
3021
|
.\[\.active-tab_\&\]\:hover\:opacity-100 {
|
|
@@ -3003,9 +3040,9 @@
|
|
|
3003
3040
|
color: var(--accent);
|
|
3004
3041
|
}
|
|
3005
3042
|
}
|
|
3006
|
-
.\[\.dv-active-tab_\&\]\:opacity-
|
|
3043
|
+
.\[\.dv-active-tab_\&\]\:opacity-55 {
|
|
3007
3044
|
.dv-active-tab & {
|
|
3008
|
-
opacity:
|
|
3045
|
+
opacity: 55%;
|
|
3009
3046
|
}
|
|
3010
3047
|
}
|
|
3011
3048
|
.\[\.dv-active-tab_\&\]\:hover\:opacity-100 {
|
|
@@ -6437,8 +6474,8 @@
|
|
|
6437
6474
|
.dv-shell .tabs-and-actions-container {
|
|
6438
6475
|
background-color: var(--background) !important;
|
|
6439
6476
|
border-bottom: 1px solid oklch(from var(--border) l c h / 0.4);
|
|
6440
|
-
padding: 8px
|
|
6441
|
-
gap:
|
|
6477
|
+
padding: 6px 8px 0 8px;
|
|
6478
|
+
gap: 4px;
|
|
6442
6479
|
align-items: flex-end;
|
|
6443
6480
|
}
|
|
6444
6481
|
|
|
@@ -6446,6 +6483,9 @@
|
|
|
6446
6483
|
.dv-shell .tab-container {
|
|
6447
6484
|
background-color: transparent !important;
|
|
6448
6485
|
gap: 4px;
|
|
6486
|
+
align-self: stretch;
|
|
6487
|
+
display: flex;
|
|
6488
|
+
align-items: flex-end;
|
|
6449
6489
|
}
|
|
6450
6490
|
|
|
6451
6491
|
/* Workbench-specific tab strip height — matches WorkbenchLeftPane header for consistency */
|
|
@@ -6463,21 +6503,33 @@
|
|
|
6463
6503
|
padding-left: 44px !important;
|
|
6464
6504
|
}
|
|
6465
6505
|
|
|
6506
|
+
/* The workbench renders a "close workspace" control as an absolute overlay on
|
|
6507
|
+
the right edge of the tab strip (see SurfaceShell's WorkbenchCloseAction:
|
|
6508
|
+
a 24px icon button + 4px margins each side = ~32px wide, vertically centred
|
|
6509
|
+
in the 44px bar). Reserve room at the right of the tab strip so dockview's
|
|
6510
|
+
built-in "open tabs" overflow dropdown trigger (the ⌄ chevron at the end of
|
|
6511
|
+
the tab row) sits clearly LEFT of that control with a visible gap, instead of
|
|
6512
|
+
tucking right under it. 32px control + ~8px gap + the chevron's own width. */
|
|
6513
|
+
.workbench-dockview .dv-tabs-and-actions-container,
|
|
6514
|
+
.workbench-dockview .tabs-and-actions-container {
|
|
6515
|
+
padding-right: 44px !important;
|
|
6516
|
+
}
|
|
6517
|
+
|
|
6466
6518
|
/* Tab base — pill-style, rounded top */
|
|
6467
6519
|
.dv-shell .dv-tab,
|
|
6468
6520
|
.dv-shell .tab {
|
|
6469
6521
|
color: var(--muted-foreground) !important;
|
|
6470
6522
|
background-color: transparent !important;
|
|
6471
6523
|
border: 1px solid transparent;
|
|
6472
|
-
border-top-left-radius:
|
|
6473
|
-
border-top-right-radius:
|
|
6524
|
+
border-top-left-radius: 8px;
|
|
6525
|
+
border-top-right-radius: 8px;
|
|
6474
6526
|
transition: color 0.18s cubic-bezier(0.22, 1, 0.36, 1),
|
|
6475
6527
|
background-color 0.18s cubic-bezier(0.22, 1, 0.36, 1),
|
|
6476
6528
|
border-color 0.18s cubic-bezier(0.22, 1, 0.36, 1);
|
|
6477
6529
|
min-width: 120px;
|
|
6478
6530
|
max-width: 220px;
|
|
6479
6531
|
padding: 0;
|
|
6480
|
-
height:
|
|
6532
|
+
height: 34px;
|
|
6481
6533
|
align-self: end;
|
|
6482
6534
|
font-size: 12.5px;
|
|
6483
6535
|
letter-spacing: -0.01em;
|
|
@@ -6581,6 +6633,11 @@
|
|
|
6581
6633
|
color: var(--muted-foreground);
|
|
6582
6634
|
display: flex;
|
|
6583
6635
|
align-items: center;
|
|
6636
|
+
align-self: stretch;
|
|
6637
|
+
/* No bottom padding: the overflow (⌄) trigger lives here and must stay
|
|
6638
|
+
vertically centred in the tab strip so it lines up with the absolutely
|
|
6639
|
+
positioned close-workspace control on the right edge. A bottom pad pushed
|
|
6640
|
+
the chevron up and out of alignment with that control (regression). */
|
|
6584
6641
|
}
|
|
6585
6642
|
|
|
6586
6643
|
.dv-shell .right-actions-container:hover,
|
package/dist/workspace.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { Extension } from '@codemirror/state';
|
|
|
10
10
|
import { JSX } from 'react/jsx-runtime';
|
|
11
11
|
import { JSXElementConstructor } from 'react';
|
|
12
12
|
import { LucideIcon } from 'lucide-react';
|
|
13
|
+
import { MouseEvent as MouseEvent_2 } from 'react';
|
|
13
14
|
import { PersistOptions } from 'zustand/middleware';
|
|
14
15
|
import { ReactElement } from 'react';
|
|
15
16
|
import { ReactNode } from 'react';
|
|
@@ -726,6 +727,31 @@ declare interface FileEntry {
|
|
|
726
727
|
path: string;
|
|
727
728
|
}
|
|
728
729
|
|
|
730
|
+
export declare type FileRecordsFormat = "json-array" | "ndjson" | "csv";
|
|
731
|
+
|
|
732
|
+
export declare interface FileRecordsResult {
|
|
733
|
+
source: FileRecordsSource;
|
|
734
|
+
path: string;
|
|
735
|
+
format: FileRecordsFormat;
|
|
736
|
+
columns: {
|
|
737
|
+
name: string;
|
|
738
|
+
type: string;
|
|
739
|
+
}[];
|
|
740
|
+
rows: Record<string, unknown>[];
|
|
741
|
+
total: number;
|
|
742
|
+
hasMore: boolean;
|
|
743
|
+
offset: number;
|
|
744
|
+
limit: number;
|
|
745
|
+
mtimeMs?: number;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
export declare interface FileRecordsSource {
|
|
749
|
+
kind: "file";
|
|
750
|
+
path: string;
|
|
751
|
+
format: FileRecordsFormat;
|
|
752
|
+
recordSet?: string;
|
|
753
|
+
}
|
|
754
|
+
|
|
729
755
|
declare interface FileStat {
|
|
730
756
|
size: number;
|
|
731
757
|
mtimeMs: number;
|
|
@@ -1093,6 +1119,8 @@ export declare interface PanelConfig<T = any> {
|
|
|
1093
1119
|
/** Source: "builtin" | "app" */
|
|
1094
1120
|
source?: string;
|
|
1095
1121
|
pluginId?: string;
|
|
1122
|
+
/** Revision emitted by the runtime plugin asset manager for hot-loaded panels. */
|
|
1123
|
+
pluginRevision?: number;
|
|
1096
1124
|
/**
|
|
1097
1125
|
* Whether to wrap the component with React.lazy + Suspense. Omit to let
|
|
1098
1126
|
* the registry auto-detect: zero-arg functions (factories) are treated as
|
|
@@ -1268,6 +1296,21 @@ declare interface Props {
|
|
|
1268
1296
|
contributionKind: "panel" | "catalog-row" | "chat-suggestion";
|
|
1269
1297
|
contributionId?: string;
|
|
1270
1298
|
children?: ReactNode;
|
|
1299
|
+
onError?: (error: Error, info: ErrorInfo) => void;
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
export declare function readFileRecords(options: ReadFileRecordsOptions): Promise<FileRecordsResult>;
|
|
1303
|
+
|
|
1304
|
+
export declare interface ReadFileRecordsOptions {
|
|
1305
|
+
path: string;
|
|
1306
|
+
recordSet?: string;
|
|
1307
|
+
offset?: number;
|
|
1308
|
+
limit?: number;
|
|
1309
|
+
q?: string;
|
|
1310
|
+
apiBaseUrl?: string;
|
|
1311
|
+
headers?: Record<string, string>;
|
|
1312
|
+
workspaceId?: string;
|
|
1313
|
+
signal?: AbortSignal;
|
|
1271
1314
|
}
|
|
1272
1315
|
|
|
1273
1316
|
declare interface RegisteredPluginMeta {
|
|
@@ -1294,7 +1337,7 @@ export declare interface ResponsiveDockviewShellProps {
|
|
|
1294
1337
|
|
|
1295
1338
|
export declare type SerializedLayout = Parameters<DockviewApi["fromJSON"]>[0];
|
|
1296
1339
|
|
|
1297
|
-
export declare function SessionBrowser({ sessions, activeId, onSwitch, onCreate, onDelete, onClose, className, }: SessionBrowserProps): JSX.Element;
|
|
1340
|
+
export declare function SessionBrowser({ sessions, activeId, onSwitch, onCreate, onDelete, onLoadMore, hasMore, loadingMore, onClose, className, }: SessionBrowserProps): JSX.Element;
|
|
1298
1341
|
|
|
1299
1342
|
export declare interface SessionBrowserProps {
|
|
1300
1343
|
sessions: SessionItem[];
|
|
@@ -1302,6 +1345,9 @@ export declare interface SessionBrowserProps {
|
|
|
1302
1345
|
onSwitch?: (id: string) => void;
|
|
1303
1346
|
onCreate?: () => void;
|
|
1304
1347
|
onDelete?: (id: string) => void;
|
|
1348
|
+
onLoadMore?: () => void;
|
|
1349
|
+
hasMore?: boolean;
|
|
1350
|
+
loadingMore?: boolean;
|
|
1305
1351
|
onClose?: () => void;
|
|
1306
1352
|
className?: string;
|
|
1307
1353
|
}
|
|
@@ -1504,7 +1550,7 @@ export declare interface ToolExecContext {
|
|
|
1504
1550
|
sessionId?: string;
|
|
1505
1551
|
}
|
|
1506
1552
|
|
|
1507
|
-
declare type ToolReadinessRequirement = 'workspace-fs' | 'sandbox-exec' | 'ui-bridge'
|
|
1553
|
+
declare type ToolReadinessRequirement = 'workspace-fs' | 'sandbox-exec' | 'ui-bridge' | 'runtime-dependencies' | `runtime:${string}`;
|
|
1508
1554
|
|
|
1509
1555
|
export declare interface ToolResult {
|
|
1510
1556
|
content: Array<{
|
|
@@ -1767,7 +1813,14 @@ export declare function useWorkspaceContextOptional(): WorkspaceContextValue | n
|
|
|
1767
1813
|
|
|
1768
1814
|
export declare function useWorkspaceRequestId(): string | null;
|
|
1769
1815
|
|
|
1770
|
-
export declare function WorkbenchLeftPane({ rootDir, bridge, defaultTab, revealFileTreeRequest, onCollapse, className, }: WorkbenchLeftPaneProps): JSX.Element;
|
|
1816
|
+
export declare function WorkbenchLeftPane({ rootDir, bridge, defaultTab, revealFileTreeRequest, onOpenPanel, onCollapse, className, }: WorkbenchLeftPaneProps): JSX.Element;
|
|
1817
|
+
|
|
1818
|
+
declare interface WorkbenchLeftPaneOpenPanelConfig {
|
|
1819
|
+
id: string;
|
|
1820
|
+
component: string;
|
|
1821
|
+
title?: string;
|
|
1822
|
+
params?: Record<string, unknown>;
|
|
1823
|
+
}
|
|
1771
1824
|
|
|
1772
1825
|
export declare interface WorkbenchLeftPaneProps {
|
|
1773
1826
|
rootDir?: string;
|
|
@@ -1777,6 +1830,7 @@ export declare interface WorkbenchLeftPaneProps {
|
|
|
1777
1830
|
path: string;
|
|
1778
1831
|
seq: number;
|
|
1779
1832
|
} | null;
|
|
1833
|
+
onOpenPanel?: (config: WorkbenchLeftPaneOpenPanelConfig) => void;
|
|
1780
1834
|
onCollapse?: () => void;
|
|
1781
1835
|
className?: string;
|
|
1782
1836
|
}
|
|
@@ -1935,6 +1989,41 @@ declare interface WorkspaceHostEventMap {
|
|
|
1935
1989
|
};
|
|
1936
1990
|
}
|
|
1937
1991
|
|
|
1992
|
+
export declare function WorkspaceLink({ to, children, className, title, href, onClick }: WorkspaceLinkProps): ReactElement;
|
|
1993
|
+
|
|
1994
|
+
export declare function workspaceLinkCommand(to: WorkspaceLinkTarget): UiCommand;
|
|
1995
|
+
|
|
1996
|
+
export declare function workspaceLinkHref(to: WorkspaceLinkTarget): string;
|
|
1997
|
+
|
|
1998
|
+
export declare interface WorkspaceLinkProps {
|
|
1999
|
+
to: WorkspaceLinkTarget;
|
|
2000
|
+
children: ReactNode;
|
|
2001
|
+
className?: string;
|
|
2002
|
+
title?: string;
|
|
2003
|
+
href?: string;
|
|
2004
|
+
onClick?: (event: MouseEvent_2<HTMLAnchorElement>) => void;
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
export declare type WorkspaceLinkTarget = {
|
|
2008
|
+
kind: "openFile";
|
|
2009
|
+
path: string;
|
|
2010
|
+
mode?: "view" | "edit" | "diff";
|
|
2011
|
+
} | {
|
|
2012
|
+
kind: "openSurface";
|
|
2013
|
+
surfaceKind: string;
|
|
2014
|
+
target: string;
|
|
2015
|
+
meta?: Record<string, unknown>;
|
|
2016
|
+
} | {
|
|
2017
|
+
kind: "openPanel";
|
|
2018
|
+
id: string;
|
|
2019
|
+
component: string;
|
|
2020
|
+
title?: string;
|
|
2021
|
+
params?: Record<string, unknown>;
|
|
2022
|
+
} | {
|
|
2023
|
+
kind: "expandToFile";
|
|
2024
|
+
path: string;
|
|
2025
|
+
};
|
|
2026
|
+
|
|
1938
2027
|
export declare function WorkspaceLoadingState({ title, description, status, fullscreen, className, }: WorkspaceLoadingStateProps): JSX.Element;
|
|
1939
2028
|
|
|
1940
2029
|
export declare interface WorkspaceLoadingStateProps {
|