@hachej/boring-workspace 0.1.31 → 0.1.32
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-BltQETt9.js +289 -0
- package/dist/{MarkdownEditor-DPBSzTBz.js → MarkdownEditor-heUJdK4j.js} +1 -1
- package/dist/WorkspaceLoadingState-InXsc_8G.js +719 -0
- package/dist/{WorkspaceProvider-0V-2x7AH.js → WorkspaceProvider-Cg-J1wxr.js} +2750 -2570
- package/dist/app-front.d.ts +22 -2
- package/dist/app-front.js +672 -524
- 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 +79 -27
- package/dist/workspace.d.ts +88 -2
- 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/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,16 @@
|
|
|
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
|
+
}
|
|
2888
2920
|
.aria-selected\:bg-\[color\:oklch\(from_var\(--accent\)_l_c_h\/0\.10\)\] {
|
|
2889
2921
|
&[aria-selected="true"] {
|
|
2890
2922
|
background-color: oklch(from var(--accent) l c h/0.10);
|
|
@@ -2976,9 +3008,9 @@
|
|
|
2976
3008
|
color: var(--accent);
|
|
2977
3009
|
}
|
|
2978
3010
|
}
|
|
2979
|
-
.\[\.active-tab_\&\]\:opacity-
|
|
3011
|
+
.\[\.active-tab_\&\]\:opacity-55 {
|
|
2980
3012
|
.active-tab & {
|
|
2981
|
-
opacity:
|
|
3013
|
+
opacity: 55%;
|
|
2982
3014
|
}
|
|
2983
3015
|
}
|
|
2984
3016
|
.\[\.active-tab_\&\]\:hover\:opacity-100 {
|
|
@@ -3003,9 +3035,9 @@
|
|
|
3003
3035
|
color: var(--accent);
|
|
3004
3036
|
}
|
|
3005
3037
|
}
|
|
3006
|
-
.\[\.dv-active-tab_\&\]\:opacity-
|
|
3038
|
+
.\[\.dv-active-tab_\&\]\:opacity-55 {
|
|
3007
3039
|
.dv-active-tab & {
|
|
3008
|
-
opacity:
|
|
3040
|
+
opacity: 55%;
|
|
3009
3041
|
}
|
|
3010
3042
|
}
|
|
3011
3043
|
.\[\.dv-active-tab_\&\]\:hover\:opacity-100 {
|
|
@@ -6437,8 +6469,8 @@
|
|
|
6437
6469
|
.dv-shell .tabs-and-actions-container {
|
|
6438
6470
|
background-color: var(--background) !important;
|
|
6439
6471
|
border-bottom: 1px solid oklch(from var(--border) l c h / 0.4);
|
|
6440
|
-
padding: 8px
|
|
6441
|
-
gap:
|
|
6472
|
+
padding: 6px 8px 0 8px;
|
|
6473
|
+
gap: 4px;
|
|
6442
6474
|
align-items: flex-end;
|
|
6443
6475
|
}
|
|
6444
6476
|
|
|
@@ -6446,6 +6478,9 @@
|
|
|
6446
6478
|
.dv-shell .tab-container {
|
|
6447
6479
|
background-color: transparent !important;
|
|
6448
6480
|
gap: 4px;
|
|
6481
|
+
align-self: stretch;
|
|
6482
|
+
display: flex;
|
|
6483
|
+
align-items: flex-end;
|
|
6449
6484
|
}
|
|
6450
6485
|
|
|
6451
6486
|
/* Workbench-specific tab strip height — matches WorkbenchLeftPane header for consistency */
|
|
@@ -6463,21 +6498,33 @@
|
|
|
6463
6498
|
padding-left: 44px !important;
|
|
6464
6499
|
}
|
|
6465
6500
|
|
|
6501
|
+
/* The workbench renders a "close workspace" control as an absolute overlay on
|
|
6502
|
+
the right edge of the tab strip (see SurfaceShell's WorkbenchCloseAction:
|
|
6503
|
+
a 24px icon button + 4px margins each side = ~32px wide, vertically centred
|
|
6504
|
+
in the 44px bar). Reserve room at the right of the tab strip so dockview's
|
|
6505
|
+
built-in "open tabs" overflow dropdown trigger (the ⌄ chevron at the end of
|
|
6506
|
+
the tab row) sits clearly LEFT of that control with a visible gap, instead of
|
|
6507
|
+
tucking right under it. 32px control + ~8px gap + the chevron's own width. */
|
|
6508
|
+
.workbench-dockview .dv-tabs-and-actions-container,
|
|
6509
|
+
.workbench-dockview .tabs-and-actions-container {
|
|
6510
|
+
padding-right: 44px !important;
|
|
6511
|
+
}
|
|
6512
|
+
|
|
6466
6513
|
/* Tab base — pill-style, rounded top */
|
|
6467
6514
|
.dv-shell .dv-tab,
|
|
6468
6515
|
.dv-shell .tab {
|
|
6469
6516
|
color: var(--muted-foreground) !important;
|
|
6470
6517
|
background-color: transparent !important;
|
|
6471
6518
|
border: 1px solid transparent;
|
|
6472
|
-
border-top-left-radius:
|
|
6473
|
-
border-top-right-radius:
|
|
6519
|
+
border-top-left-radius: 8px;
|
|
6520
|
+
border-top-right-radius: 8px;
|
|
6474
6521
|
transition: color 0.18s cubic-bezier(0.22, 1, 0.36, 1),
|
|
6475
6522
|
background-color 0.18s cubic-bezier(0.22, 1, 0.36, 1),
|
|
6476
6523
|
border-color 0.18s cubic-bezier(0.22, 1, 0.36, 1);
|
|
6477
6524
|
min-width: 120px;
|
|
6478
6525
|
max-width: 220px;
|
|
6479
6526
|
padding: 0;
|
|
6480
|
-
height:
|
|
6527
|
+
height: 34px;
|
|
6481
6528
|
align-self: end;
|
|
6482
6529
|
font-size: 12.5px;
|
|
6483
6530
|
letter-spacing: -0.01em;
|
|
@@ -6581,6 +6628,11 @@
|
|
|
6581
6628
|
color: var(--muted-foreground);
|
|
6582
6629
|
display: flex;
|
|
6583
6630
|
align-items: center;
|
|
6631
|
+
align-self: stretch;
|
|
6632
|
+
/* No bottom padding: the overflow (⌄) trigger lives here and must stay
|
|
6633
|
+
vertically centred in the tab strip so it lines up with the absolutely
|
|
6634
|
+
positioned close-workspace control on the right edge. A bottom pad pushed
|
|
6635
|
+
the chevron up and out of alignment with that control (regression). */
|
|
6584
6636
|
}
|
|
6585
6637
|
|
|
6586
6638
|
.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 {
|
|
@@ -1504,7 +1547,7 @@ export declare interface ToolExecContext {
|
|
|
1504
1547
|
sessionId?: string;
|
|
1505
1548
|
}
|
|
1506
1549
|
|
|
1507
|
-
declare type ToolReadinessRequirement = 'workspace-fs' | 'sandbox-exec' | 'ui-bridge'
|
|
1550
|
+
declare type ToolReadinessRequirement = 'workspace-fs' | 'sandbox-exec' | 'ui-bridge' | 'runtime-dependencies' | `runtime:${string}`;
|
|
1508
1551
|
|
|
1509
1552
|
export declare interface ToolResult {
|
|
1510
1553
|
content: Array<{
|
|
@@ -1767,7 +1810,14 @@ export declare function useWorkspaceContextOptional(): WorkspaceContextValue | n
|
|
|
1767
1810
|
|
|
1768
1811
|
export declare function useWorkspaceRequestId(): string | null;
|
|
1769
1812
|
|
|
1770
|
-
export declare function WorkbenchLeftPane({ rootDir, bridge, defaultTab, revealFileTreeRequest, onCollapse, className, }: WorkbenchLeftPaneProps): JSX.Element;
|
|
1813
|
+
export declare function WorkbenchLeftPane({ rootDir, bridge, defaultTab, revealFileTreeRequest, onOpenPanel, onCollapse, className, }: WorkbenchLeftPaneProps): JSX.Element;
|
|
1814
|
+
|
|
1815
|
+
declare interface WorkbenchLeftPaneOpenPanelConfig {
|
|
1816
|
+
id: string;
|
|
1817
|
+
component: string;
|
|
1818
|
+
title?: string;
|
|
1819
|
+
params?: Record<string, unknown>;
|
|
1820
|
+
}
|
|
1771
1821
|
|
|
1772
1822
|
export declare interface WorkbenchLeftPaneProps {
|
|
1773
1823
|
rootDir?: string;
|
|
@@ -1777,6 +1827,7 @@ export declare interface WorkbenchLeftPaneProps {
|
|
|
1777
1827
|
path: string;
|
|
1778
1828
|
seq: number;
|
|
1779
1829
|
} | null;
|
|
1830
|
+
onOpenPanel?: (config: WorkbenchLeftPaneOpenPanelConfig) => void;
|
|
1780
1831
|
onCollapse?: () => void;
|
|
1781
1832
|
className?: string;
|
|
1782
1833
|
}
|
|
@@ -1935,6 +1986,41 @@ declare interface WorkspaceHostEventMap {
|
|
|
1935
1986
|
};
|
|
1936
1987
|
}
|
|
1937
1988
|
|
|
1989
|
+
export declare function WorkspaceLink({ to, children, className, title, href, onClick }: WorkspaceLinkProps): ReactElement;
|
|
1990
|
+
|
|
1991
|
+
export declare function workspaceLinkCommand(to: WorkspaceLinkTarget): UiCommand;
|
|
1992
|
+
|
|
1993
|
+
export declare function workspaceLinkHref(to: WorkspaceLinkTarget): string;
|
|
1994
|
+
|
|
1995
|
+
export declare interface WorkspaceLinkProps {
|
|
1996
|
+
to: WorkspaceLinkTarget;
|
|
1997
|
+
children: ReactNode;
|
|
1998
|
+
className?: string;
|
|
1999
|
+
title?: string;
|
|
2000
|
+
href?: string;
|
|
2001
|
+
onClick?: (event: MouseEvent_2<HTMLAnchorElement>) => void;
|
|
2002
|
+
}
|
|
2003
|
+
|
|
2004
|
+
export declare type WorkspaceLinkTarget = {
|
|
2005
|
+
kind: "openFile";
|
|
2006
|
+
path: string;
|
|
2007
|
+
mode?: "view" | "edit" | "diff";
|
|
2008
|
+
} | {
|
|
2009
|
+
kind: "openSurface";
|
|
2010
|
+
surfaceKind: string;
|
|
2011
|
+
target: string;
|
|
2012
|
+
meta?: Record<string, unknown>;
|
|
2013
|
+
} | {
|
|
2014
|
+
kind: "openPanel";
|
|
2015
|
+
id: string;
|
|
2016
|
+
component: string;
|
|
2017
|
+
title?: string;
|
|
2018
|
+
params?: Record<string, unknown>;
|
|
2019
|
+
} | {
|
|
2020
|
+
kind: "expandToFile";
|
|
2021
|
+
path: string;
|
|
2022
|
+
};
|
|
2023
|
+
|
|
1938
2024
|
export declare function WorkspaceLoadingState({ title, description, status, fullscreen, className, }: WorkspaceLoadingStateProps): JSX.Element;
|
|
1939
2025
|
|
|
1940
2026
|
export declare interface WorkspaceLoadingStateProps {
|