@openviking/react 0.1.4 → 0.1.6

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 (139) hide show
  1. package/README.md +15 -11
  2. package/dist/28~0.js +15 -0
  3. package/dist/2~0.js +6 -3
  4. package/dist/37~0.js +27 -0
  5. package/dist/3c~0.js +17 -9
  6. package/dist/3~0.js +4 -2
  7. package/dist/ae~0.js +6 -2
  8. package/dist/a~0.js +79 -72
  9. package/dist/ck~0.js +4 -0
  10. package/dist/client/paths.d.ts +4 -0
  11. package/dist/client/provider.d.ts +10 -6
  12. package/dist/components/agent-connect/agent-connect-code-block.d.ts +14 -0
  13. package/dist/components/agent-connect/agent-connect-copy.d.ts +3 -0
  14. package/dist/components/agent-connect/agent-connect-design.d.ts +1 -1
  15. package/dist/components/agent-connect/agent-connect-installer.d.ts +1 -0
  16. package/dist/components/agent-connect/agent-connect-instructions-view.d.ts +4 -6
  17. package/dist/components/agent-connect/agent-connect-instructions.d.ts +13 -0
  18. package/dist/components/agent-connect/agent-connect-markdown.d.ts +8 -2
  19. package/dist/components/agent-connect/agent-connect-mask.d.ts +10 -0
  20. package/dist/components/agent-connect/agent-connect.d.ts +1 -1
  21. package/dist/components/agent-connect/locales/en-US.d.ts +3 -0
  22. package/dist/components/agent-connect/style.css +163 -5
  23. package/dist/components/agent-connect/types.d.ts +5 -3
  24. package/dist/components/agent-connect/use-agent-connect-copy.d.ts +6 -0
  25. package/dist/components/directory-tour/style.css +46 -2
  26. package/dist/components/directory-tour/types.d.ts +2 -1
  27. package/dist/components/experience-dashboard/dashboard-tabs.d.ts +11 -0
  28. package/dist/components/experience-dashboard/experience-dashboard.d.ts +2 -0
  29. package/dist/components/experience-dashboard/experience-impact.d.ts +11 -0
  30. package/dist/components/experience-dashboard/experience-list.d.ts +9 -0
  31. package/dist/components/experience-dashboard/experience-pagination.d.ts +8 -0
  32. package/dist/components/experience-dashboard/experience-tests.d.ts +6 -0
  33. package/dist/components/experience-dashboard/experience-trajectories.d.ts +6 -0
  34. package/dist/components/experience-dashboard/index.d.ts +2 -0
  35. package/dist/components/experience-dashboard/labels.d.ts +2 -0
  36. package/dist/components/experience-dashboard/style.css +699 -0
  37. package/dist/components/experience-dashboard/style.js +0 -0
  38. package/dist/components/experience-dashboard/types.d.ts +106 -0
  39. package/dist/components/experience-dashboard.js +1 -0
  40. package/dist/components/file-browser-entries/file-browser-entries.d.ts +1 -1
  41. package/dist/components/file-browser-entries/style.css +259 -13
  42. package/dist/components/file-browser-entries/types.d.ts +2 -2
  43. package/dist/components/file-preview/style.css +48 -4
  44. package/dist/components/file-preview/types.d.ts +2 -2
  45. package/dist/components/file-tree/style.css +63 -4
  46. package/dist/components/file-tree/types.d.ts +2 -2
  47. package/dist/components/scope-switcher/scope-switcher.d.ts +2 -2
  48. package/dist/components/scope-switcher/style.css +48 -4
  49. package/dist/components/scope-switcher/types.d.ts +5 -5
  50. package/dist/components/scope-switcher.js +1 -1
  51. package/dist/components/style.css +2451 -139
  52. package/dist/components/tui/style.css +122 -36
  53. package/dist/components/tui/tui.d.ts +1 -1
  54. package/dist/components/tui/types.d.ts +2 -2
  55. package/dist/components/viking-bot/ark-message-list-view.d.ts +4 -1
  56. package/dist/components/viking-bot/interaction/types.d.ts +2 -2
  57. package/dist/components/viking-bot/interaction/viking-bot-interaction.d.ts +1 -1
  58. package/dist/components/viking-bot/session-actions.d.ts +2 -2
  59. package/dist/components/viking-bot/style.css +159 -12
  60. package/dist/components/viking-bot/types.d.ts +7 -7
  61. package/dist/components/viking-bot/viking-bot.d.ts +1 -1
  62. package/dist/components/wiki-dashboard/index.d.ts +2 -0
  63. package/dist/components/wiki-dashboard/labels.d.ts +2 -0
  64. package/dist/components/wiki-dashboard/style.css +741 -0
  65. package/dist/components/wiki-dashboard/style.js +0 -0
  66. package/dist/components/wiki-dashboard/types.d.ts +92 -0
  67. package/dist/components/wiki-dashboard/wiki-action-button.d.ts +9 -0
  68. package/dist/components/wiki-dashboard/wiki-conflict-card.d.ts +15 -0
  69. package/dist/components/wiki-dashboard/wiki-dashboard.d.ts +2 -0
  70. package/dist/components/wiki-dashboard/wiki-file-icon.d.ts +3 -0
  71. package/dist/components/wiki-dashboard/wiki-severity-filter.d.ts +8 -0
  72. package/dist/components/wiki-dashboard.js +1 -0
  73. package/dist/c~0.js +169 -155
  74. package/dist/e~0.js +3 -1
  75. package/dist/fi~0.js +354 -0
  76. package/dist/fj~0.js +503 -0
  77. package/dist/f~0.js +661 -309
  78. package/dist/icons/index.d.ts +28 -0
  79. package/dist/icons.js +1 -1
  80. package/dist/index.d.ts +4 -0
  81. package/dist/index.js +3 -1
  82. package/dist/k~0.js +277 -1
  83. package/dist/lk~0.js +55 -13
  84. package/dist/l~0.js +1096 -187
  85. package/dist/modules/console/console.d.ts +1 -1
  86. package/dist/modules/console/index.d.ts +1 -2
  87. package/dist/modules/console/style.css +377 -56
  88. package/dist/modules/console/types.d.ts +2 -2
  89. package/dist/modules/console/use-console.d.ts +1 -1
  90. package/dist/modules/console.js +1 -1
  91. package/dist/modules/file-browser/dashboard-data.d.ts +9 -0
  92. package/dist/modules/file-browser/dashboard-indicator.d.ts +8 -0
  93. package/dist/modules/file-browser/dashboard-labels.d.ts +9 -0
  94. package/dist/modules/file-browser/dashboard-model.d.ts +14 -0
  95. package/dist/modules/file-browser/dashboard-resource.d.ts +12 -0
  96. package/dist/modules/file-browser/experience-dashboard-pane.d.ts +8 -0
  97. package/dist/modules/file-browser/experience-data.d.ts +31 -0
  98. package/dist/modules/file-browser/file-browser-labels.d.ts +1 -1
  99. package/dist/modules/file-browser/file-browser-tree-pane.d.ts +3 -2
  100. package/dist/modules/file-browser/file-browser.d.ts +1 -1
  101. package/dist/modules/file-browser/fs-directories.d.ts +8 -0
  102. package/dist/modules/file-browser/fs-lines.d.ts +36 -0
  103. package/dist/modules/file-browser/fs-memory-fields.d.ts +65 -0
  104. package/dist/modules/file-browser/fs-model.d.ts +12 -2
  105. package/dist/modules/file-browser/fs-read-file.d.ts +14 -0
  106. package/dist/modules/file-browser/fs-selection.d.ts +4 -0
  107. package/dist/modules/file-browser/index.d.ts +2 -2
  108. package/dist/modules/file-browser/style.css +1883 -25
  109. package/dist/modules/file-browser/types.d.ts +64 -2
  110. package/dist/modules/file-browser/use-browser-dashboards.d.ts +31 -0
  111. package/dist/modules/file-browser/use-dashboard-query.d.ts +9 -0
  112. package/dist/modules/file-browser/use-experience-dashboard.d.ts +27 -0
  113. package/dist/modules/file-browser/use-file-browser.d.ts +2 -45
  114. package/dist/modules/file-browser/use-fs-tree.d.ts +2 -0
  115. package/dist/modules/file-browser/use-wiki-dashboard.d.ts +17 -0
  116. package/dist/modules/file-browser/wiki-conflicts.d.ts +12 -0
  117. package/dist/modules/file-browser/wiki-dashboard-pane.d.ts +14 -0
  118. package/dist/modules/file-browser.js +1 -1
  119. package/dist/modules/scope-cascade/controller.d.ts +2 -2
  120. package/dist/modules/scope-cascade/index.d.ts +1 -2
  121. package/dist/modules/scope-cascade/scope-cascade.d.ts +2 -2
  122. package/dist/modules/scope-cascade/style.css +48 -4
  123. package/dist/modules/scope-cascade/types.d.ts +9 -4
  124. package/dist/modules/scope-cascade/use-scope-cascade.d.ts +2 -2
  125. package/dist/modules/scope-cascade.js +1 -1
  126. package/dist/modules/style.css +2459 -192
  127. package/dist/n~0.js +16 -130
  128. package/dist/rt~0.js +152 -0
  129. package/dist/r~0.js +17 -38
  130. package/dist/shared/components/popover/popover.d.ts +1 -1
  131. package/dist/shared/components/popover/types.d.ts +7 -1
  132. package/dist/shared/dashboard/dashboard-state.d.ts +12 -0
  133. package/dist/shared/locale-context.d.ts +8 -0
  134. package/dist/static/image/dashboard-background.png +0 -0
  135. package/dist/style.css +9445 -4822
  136. package/dist/u~0.js +324 -96
  137. package/dist/viking-bot-composer~0.js +4 -2
  138. package/dist/viking-bot-interaction~0.js +3 -1
  139. package/package.json +14 -2
@@ -0,0 +1,106 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import type { DashboardStatus } from '../../shared/dashboard/dashboard-state.js';
3
+ export interface ExperienceItem {
4
+ uri: string;
5
+ name: string;
6
+ description?: string;
7
+ modTime?: string;
8
+ injectionCount?: number;
9
+ recallCount?: number;
10
+ trajectoryCount?: number;
11
+ }
12
+ export interface ExperienceTrajectory {
13
+ uri: string;
14
+ name: string;
15
+ description?: string;
16
+ created_at?: string;
17
+ updated_at?: string;
18
+ }
19
+ export type ExperienceOutcome = 'success' | 'partial' | 'unfinished' | 'failure' | 'unknown';
20
+ export interface ExperienceDashboardData {
21
+ experiences?: readonly ExperienceItem[];
22
+ total?: number;
23
+ effect?: {
24
+ injectionCount: number;
25
+ recallCount: number;
26
+ injectionRate: number;
27
+ };
28
+ outcomes?: readonly {
29
+ outcome: ExperienceOutcome;
30
+ count: number;
31
+ }[];
32
+ trajectories?: readonly ExperienceTrajectory[];
33
+ trajectoryTotal?: number;
34
+ sources?: readonly ExperienceTrajectory[];
35
+ testMaterials?: readonly {
36
+ id: string;
37
+ title: string;
38
+ content: string;
39
+ taskQuery?: string;
40
+ uri?: string;
41
+ }[];
42
+ }
43
+ export interface ExperienceDashboardLabels {
44
+ latest: string;
45
+ sourceCount: string;
46
+ sourceUri: string;
47
+ task: string;
48
+ copy: string;
49
+ copied: string;
50
+ copyFailed: string;
51
+ title: string;
52
+ allExperiences: string;
53
+ index: string;
54
+ impact: string;
55
+ source: string;
56
+ test: string;
57
+ application: string;
58
+ notice: string;
59
+ injection: string;
60
+ recall: string;
61
+ listRecall: string;
62
+ rate: string;
63
+ outcomes: string;
64
+ trajectories: string;
65
+ empty: string;
66
+ emptySource: string;
67
+ emptyTests: string;
68
+ emptyOutcomes: string;
69
+ loading: string;
70
+ failed: string;
71
+ retry: string;
72
+ previous: string;
73
+ next: string;
74
+ all: string;
75
+ week: string;
76
+ month: string;
77
+ range: string;
78
+ updated: string;
79
+ name: string;
80
+ success: string;
81
+ partial: string;
82
+ unfinished: string;
83
+ failure: string;
84
+ unknown: string;
85
+ unsupportedMetric: string;
86
+ open: string;
87
+ }
88
+ export interface ExperienceDashboardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
89
+ uri: string;
90
+ kind: 'directory' | 'file';
91
+ data?: ExperienceDashboardData;
92
+ tab?: ExperienceDashboardTab;
93
+ days?: number;
94
+ page?: number;
95
+ hasMore?: boolean;
96
+ startIndex?: number;
97
+ states?: Partial<Record<'list' | 'outcomes' | 'trajectories' | 'sources' | 'tests', ExperienceDashboardState>>;
98
+ locale?: 'en-US' | 'zh-CN';
99
+ onTabChange?: (tab: ExperienceDashboardTab) => void;
100
+ onDaysChange?: (days: number) => void;
101
+ onPageChange?: (page: number) => void;
102
+ onOpenUri?: (uri: string) => void;
103
+ labels?: Partial<ExperienceDashboardLabels>;
104
+ }
105
+ export type ExperienceDashboardTab = 'impact' | 'source' | 'test';
106
+ export type ExperienceDashboardState = DashboardStatus;
@@ -0,0 +1 @@
1
+ export { ExperienceDashboard } from "../f~0.js";
@@ -11,4 +11,4 @@ export type { FileBrowserEntriesLabels, FileBrowserEntriesProps, } from './types
11
11
  * agentConnect enables the right-side drawer; callbacks also support host-owned flows.
12
12
  * Nothing renders without visible entries; hosts can wrap the default import button.
13
13
  */
14
- export declare function FileBrowserEntries({ locale, agentConnect, onConnectAgent, onImportResources, renderImportResources, labels, className, ...rest }: FileBrowserEntriesProps): import("react").JSX.Element | null;
14
+ export declare function FileBrowserEntries({ locale: localeProp, agentConnect, onConnectAgent, onImportResources, renderImportResources, labels, className, ...rest }: FileBrowserEntriesProps): import("react").JSX.Element | null;
@@ -1,4 +1,4 @@
1
- .ov-directory-tour, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
1
+ .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
2
2
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
3
3
  --ov-ui-tour-highlight-default: #5252ff14;
4
4
  --ov-ui-primary-default: #5252ff;
@@ -35,9 +35,29 @@
35
35
  --ov-ui-overlay-default: #0006;
36
36
  --ov-ui-tooltip-bg-default: #1f2329;
37
37
  --ov-ui-tooltip-text-default: #fff;
38
- }
39
-
40
- .dark .ov-directory-tour, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
38
+ --ov-ui-library-swatch-1-default: linear-gradient(145deg,
39
+ #ffd8ec 8%,
40
+ #ffabc8 46%,
41
+ #d8cbff 100%);
42
+ --ov-ui-library-swatch-2-default: linear-gradient(145deg,
43
+ #d9e8ff 8%,
44
+ #b8a6ff 52%,
45
+ #f3d6ff 100%);
46
+ --ov-ui-library-swatch-3-default: linear-gradient(145deg,
47
+ #ffe6bc 8%,
48
+ #ffaf96 48%,
49
+ #ff8bc5 100%);
50
+ --ov-ui-library-swatch-4-default: linear-gradient(145deg,
51
+ #eaf7ba 8%,
52
+ #b5efb8 52%,
53
+ #73d9c6 100%);
54
+ --ov-ui-library-swatch-5-default: linear-gradient(145deg,
55
+ #fff1ba 8%,
56
+ #ffc776 52%,
57
+ #bd9cff 100%);
58
+ }
59
+
60
+ .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
41
61
  --ov-ui-primary-default: #5f5fff;
42
62
  --ov-ui-primary-hover-default: #7075ff;
43
63
  --ov-ui-primary-active-default: #4242ba;
@@ -91,12 +111,36 @@
91
111
  --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
92
112
  }
93
113
 
114
+ .ov-wiki-dashboard, .ov-experience-dashboard, .ov-file-browser {
115
+ --ov-ui-dashboard-surface-default: #f8f8f8;
116
+ --ov-ui-dashboard-card-default: #fafafa;
117
+ --ov-ui-dashboard-muted-default: #787c91;
118
+ --ov-ui-dashboard-border-default: #edeef2;
119
+ --ov-ui-dashboard-warning-default: #eb7d00;
120
+ --ov-ui-dashboard-warning-light-default: #fff0e5;
121
+ --ov-ui-dashboard-danger-default: #d92d54;
122
+ --ov-ui-dashboard-danger-light-default: #ffecee;
123
+ --ov-ui-dashboard-success-default: #4f9c70;
124
+ }
125
+
126
+ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-file-browser {
127
+ --ov-ui-dashboard-surface-default: var(--ov-ui-bg-3-default);
128
+ --ov-ui-dashboard-card-default: var(--ov-ui-bg-3-default);
129
+ --ov-ui-dashboard-muted-default: var(--ov-ui-text-3-default);
130
+ --ov-ui-dashboard-border-default: var(--ov-ui-border-1-default);
131
+ --ov-ui-dashboard-warning-default: var(--ov-ui-warning-default);
132
+ --ov-ui-dashboard-warning-light-default: var(--ov-ui-warning-light-default);
133
+ --ov-ui-dashboard-danger-default: var(--ov-ui-status-error-default);
134
+ --ov-ui-dashboard-danger-light-default: var(--ov-ui-bg-5-default);
135
+ --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
136
+ }
137
+
94
138
  .ov-divider {
95
139
  box-sizing: border-box;
96
140
  display: block;
97
141
  }
98
142
 
99
- .ov-directory-tour, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
143
+ .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
100
144
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
101
145
  --ov-ui-tour-highlight-default: #5252ff14;
102
146
  --ov-ui-primary-default: #5252ff;
@@ -133,9 +177,29 @@
133
177
  --ov-ui-overlay-default: #0006;
134
178
  --ov-ui-tooltip-bg-default: #1f2329;
135
179
  --ov-ui-tooltip-text-default: #fff;
136
- }
137
-
138
- .dark .ov-directory-tour, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
180
+ --ov-ui-library-swatch-1-default: linear-gradient(145deg,
181
+ #ffd8ec 8%,
182
+ #ffabc8 46%,
183
+ #d8cbff 100%);
184
+ --ov-ui-library-swatch-2-default: linear-gradient(145deg,
185
+ #d9e8ff 8%,
186
+ #b8a6ff 52%,
187
+ #f3d6ff 100%);
188
+ --ov-ui-library-swatch-3-default: linear-gradient(145deg,
189
+ #ffe6bc 8%,
190
+ #ffaf96 48%,
191
+ #ff8bc5 100%);
192
+ --ov-ui-library-swatch-4-default: linear-gradient(145deg,
193
+ #eaf7ba 8%,
194
+ #b5efb8 52%,
195
+ #73d9c6 100%);
196
+ --ov-ui-library-swatch-5-default: linear-gradient(145deg,
197
+ #fff1ba 8%,
198
+ #ffc776 52%,
199
+ #bd9cff 100%);
200
+ }
201
+
202
+ .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
139
203
  --ov-ui-primary-default: #5f5fff;
140
204
  --ov-ui-primary-hover-default: #7075ff;
141
205
  --ov-ui-primary-active-default: #4242ba;
@@ -189,6 +253,30 @@
189
253
  --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
190
254
  }
191
255
 
256
+ .ov-wiki-dashboard, .ov-experience-dashboard, .ov-file-browser {
257
+ --ov-ui-dashboard-surface-default: #f8f8f8;
258
+ --ov-ui-dashboard-card-default: #fafafa;
259
+ --ov-ui-dashboard-muted-default: #787c91;
260
+ --ov-ui-dashboard-border-default: #edeef2;
261
+ --ov-ui-dashboard-warning-default: #eb7d00;
262
+ --ov-ui-dashboard-warning-light-default: #fff0e5;
263
+ --ov-ui-dashboard-danger-default: #d92d54;
264
+ --ov-ui-dashboard-danger-light-default: #ffecee;
265
+ --ov-ui-dashboard-success-default: #4f9c70;
266
+ }
267
+
268
+ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-file-browser {
269
+ --ov-ui-dashboard-surface-default: var(--ov-ui-bg-3-default);
270
+ --ov-ui-dashboard-card-default: var(--ov-ui-bg-3-default);
271
+ --ov-ui-dashboard-muted-default: var(--ov-ui-text-3-default);
272
+ --ov-ui-dashboard-border-default: var(--ov-ui-border-1-default);
273
+ --ov-ui-dashboard-warning-default: var(--ov-ui-warning-default);
274
+ --ov-ui-dashboard-warning-light-default: var(--ov-ui-warning-light-default);
275
+ --ov-ui-dashboard-danger-default: var(--ov-ui-status-error-default);
276
+ --ov-ui-dashboard-danger-light-default: var(--ov-ui-bg-5-default);
277
+ --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
278
+ }
279
+
192
280
  .ov-drawer {
193
281
  z-index: var(--ov-ui-drawer-z-index, 1001);
194
282
  position: fixed;
@@ -286,7 +374,7 @@
286
374
 
287
375
 
288
376
 
289
- .ov-directory-tour, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
377
+ .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
290
378
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
291
379
  --ov-ui-tour-highlight-default: #5252ff14;
292
380
  --ov-ui-primary-default: #5252ff;
@@ -323,9 +411,29 @@
323
411
  --ov-ui-overlay-default: #0006;
324
412
  --ov-ui-tooltip-bg-default: #1f2329;
325
413
  --ov-ui-tooltip-text-default: #fff;
326
- }
327
-
328
- .dark .ov-directory-tour, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
414
+ --ov-ui-library-swatch-1-default: linear-gradient(145deg,
415
+ #ffd8ec 8%,
416
+ #ffabc8 46%,
417
+ #d8cbff 100%);
418
+ --ov-ui-library-swatch-2-default: linear-gradient(145deg,
419
+ #d9e8ff 8%,
420
+ #b8a6ff 52%,
421
+ #f3d6ff 100%);
422
+ --ov-ui-library-swatch-3-default: linear-gradient(145deg,
423
+ #ffe6bc 8%,
424
+ #ffaf96 48%,
425
+ #ff8bc5 100%);
426
+ --ov-ui-library-swatch-4-default: linear-gradient(145deg,
427
+ #eaf7ba 8%,
428
+ #b5efb8 52%,
429
+ #73d9c6 100%);
430
+ --ov-ui-library-swatch-5-default: linear-gradient(145deg,
431
+ #fff1ba 8%,
432
+ #ffc776 52%,
433
+ #bd9cff 100%);
434
+ }
435
+
436
+ .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
329
437
  --ov-ui-primary-default: #5f5fff;
330
438
  --ov-ui-primary-hover-default: #7075ff;
331
439
  --ov-ui-primary-active-default: #4242ba;
@@ -379,6 +487,117 @@
379
487
  --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
380
488
  }
381
489
 
490
+ .ov-wiki-dashboard, .ov-experience-dashboard, .ov-file-browser {
491
+ --ov-ui-dashboard-surface-default: #f8f8f8;
492
+ --ov-ui-dashboard-card-default: #fafafa;
493
+ --ov-ui-dashboard-muted-default: #787c91;
494
+ --ov-ui-dashboard-border-default: #edeef2;
495
+ --ov-ui-dashboard-warning-default: #eb7d00;
496
+ --ov-ui-dashboard-warning-light-default: #fff0e5;
497
+ --ov-ui-dashboard-danger-default: #d92d54;
498
+ --ov-ui-dashboard-danger-light-default: #ffecee;
499
+ --ov-ui-dashboard-success-default: #4f9c70;
500
+ }
501
+
502
+ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-file-browser {
503
+ --ov-ui-dashboard-surface-default: var(--ov-ui-bg-3-default);
504
+ --ov-ui-dashboard-card-default: var(--ov-ui-bg-3-default);
505
+ --ov-ui-dashboard-muted-default: var(--ov-ui-text-3-default);
506
+ --ov-ui-dashboard-border-default: var(--ov-ui-border-1-default);
507
+ --ov-ui-dashboard-warning-default: var(--ov-ui-warning-default);
508
+ --ov-ui-dashboard-warning-light-default: var(--ov-ui-warning-light-default);
509
+ --ov-ui-dashboard-danger-default: var(--ov-ui-status-error-default);
510
+ --ov-ui-dashboard-danger-light-default: var(--ov-ui-bg-5-default);
511
+ --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
512
+ }
513
+
514
+ .ov-agent-connect__code-block {
515
+ border: 1px solid var(--ov-ui-agent-connect-border);
516
+ background: var(--ov-ui-agent-connect-bg);
517
+ white-space: normal;
518
+ border-radius: 8px;
519
+ margin-bottom: 12px;
520
+ overflow: hidden;
521
+ }
522
+
523
+ .ov-agent-connect__code-block:last-child {
524
+ margin-bottom: 0;
525
+ }
526
+
527
+ .ov-agent-connect__code-header {
528
+ border-bottom: 1px solid var(--ov-ui-agent-connect-border);
529
+ color: var(--ov-ui-agent-connect-muted);
530
+ justify-content: space-between;
531
+ align-items: center;
532
+ gap: 8px;
533
+ padding: 6px 12px;
534
+ font-size: 12px;
535
+ display: flex;
536
+ }
537
+
538
+ .ov-agent-connect__code-actions {
539
+ align-items: center;
540
+ gap: 12px;
541
+ display: flex;
542
+ }
543
+
544
+ .ov-agent-connect__code-actions button {
545
+ width: 24px;
546
+ height: 24px;
547
+ color: var(--ov-ui-agent-connect-secondary);
548
+ background: none;
549
+ border: 0;
550
+ border-radius: 4px;
551
+ justify-content: center;
552
+ align-items: center;
553
+ padding: 4px;
554
+ font-size: 12px;
555
+ display: inline-flex;
556
+ }
557
+
558
+ .ov-agent-connect__code-actions button:hover {
559
+ color: var(--ov-ui-agent-connect-primary);
560
+ }
561
+
562
+ .ov-agent-connect__code-actions button:disabled {
563
+ opacity: .6;
564
+ cursor: wait;
565
+ }
566
+
567
+ .ov-agent-connect__code-actions svg {
568
+ width: 16px;
569
+ height: 16px;
570
+ }
571
+
572
+ .ov-agent-connect .ov-agent-connect__code-block pre {
573
+ white-space: pre-wrap;
574
+ overflow-wrap: anywhere;
575
+ background: none;
576
+ border-radius: 0;
577
+ margin: 0;
578
+ padding: 12px;
579
+ font-size: 12px;
580
+ line-height: 20px;
581
+ }
582
+
583
+ .ov-agent-connect__code-block code {
584
+ font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
585
+ }
586
+
587
+ .ov-agent-connect__code-block > .ov-agent-connect__feedback:not(:empty) {
588
+ padding: 0 12px 8px;
589
+ display: block;
590
+ }
591
+
592
+ .ov-agent-connect__code-feedback {
593
+ clip-path: inset(50%);
594
+ white-space: nowrap;
595
+ width: 1px;
596
+ height: 1px;
597
+ position: absolute;
598
+ overflow: hidden;
599
+ }
600
+
382
601
  .ov-agent-connect {
383
602
  --ov-ui-agent-connect-text: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default));
384
603
  --ov-ui-agent-connect-secondary: var(--ov-ui-color-text-2, var(--ov-ui-text-2-default));
@@ -709,7 +928,7 @@
709
928
  white-space: normal;
710
929
  }
711
930
 
712
- .ov-agent-connect__markdown :where(p, pre, h5, table) {
931
+ .ov-agent-connect__markdown :where(p, pre, h5, table, ul, ol, blockquote, details) {
713
932
  margin: 0 0 12px;
714
933
  }
715
934
 
@@ -721,6 +940,33 @@
721
940
  white-space: pre-wrap;
722
941
  }
723
942
 
943
+ .ov-agent-connect__markdown :where(ul, ol) {
944
+ padding-left: 24px;
945
+ }
946
+
947
+ .ov-agent-connect__markdown ul {
948
+ list-style-type: disc;
949
+ }
950
+
951
+ .ov-agent-connect__markdown ol {
952
+ list-style-type: decimal;
953
+ }
954
+
955
+ .ov-agent-connect__markdown blockquote {
956
+ border-left: 2px solid var(--ov-ui-agent-connect-border);
957
+ margin-left: 0;
958
+ padding-left: 12px;
959
+ }
960
+
961
+ .ov-agent-connect__markdown summary {
962
+ cursor: pointer;
963
+ }
964
+
965
+ .ov-agent-connect__markdown summary:focus-visible {
966
+ outline: 2px solid var(--ov-ui-agent-connect-primary);
967
+ outline-offset: 2px;
968
+ }
969
+
724
970
  .ov-agent-connect__markdown h5 {
725
971
  color: var(--ov-ui-agent-connect-text);
726
972
  font-size: 14px;
@@ -33,8 +33,8 @@ export interface FileBrowserEntriesLabels {
33
33
  * there is nothing left to separate.
34
34
  */
35
35
  export interface FileBrowserEntriesProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
36
- /** 内置中英文文案的语言。Language of the built-in interface copy. */
37
- locale: Locale;
36
+ /** 可选文案语言;继承上层,最终默认英文。Optional locale; inherits or defaults to en-US. */
37
+ locale?: Locale;
38
38
  /**
39
39
  * 内置 AgentConnect 右侧抽屉的参数;传入后显示连接入口。
40
40
  * Options for the built-in AgentConnect drawer; enables the connect entry.
@@ -1,4 +1,4 @@
1
- .ov-directory-tour, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
1
+ .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
2
2
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
3
3
  --ov-ui-tour-highlight-default: #5252ff14;
4
4
  --ov-ui-primary-default: #5252ff;
@@ -35,9 +35,29 @@
35
35
  --ov-ui-overlay-default: #0006;
36
36
  --ov-ui-tooltip-bg-default: #1f2329;
37
37
  --ov-ui-tooltip-text-default: #fff;
38
- }
39
-
40
- .dark .ov-directory-tour, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
38
+ --ov-ui-library-swatch-1-default: linear-gradient(145deg,
39
+ #ffd8ec 8%,
40
+ #ffabc8 46%,
41
+ #d8cbff 100%);
42
+ --ov-ui-library-swatch-2-default: linear-gradient(145deg,
43
+ #d9e8ff 8%,
44
+ #b8a6ff 52%,
45
+ #f3d6ff 100%);
46
+ --ov-ui-library-swatch-3-default: linear-gradient(145deg,
47
+ #ffe6bc 8%,
48
+ #ffaf96 48%,
49
+ #ff8bc5 100%);
50
+ --ov-ui-library-swatch-4-default: linear-gradient(145deg,
51
+ #eaf7ba 8%,
52
+ #b5efb8 52%,
53
+ #73d9c6 100%);
54
+ --ov-ui-library-swatch-5-default: linear-gradient(145deg,
55
+ #fff1ba 8%,
56
+ #ffc776 52%,
57
+ #bd9cff 100%);
58
+ }
59
+
60
+ .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
41
61
  --ov-ui-primary-default: #5f5fff;
42
62
  --ov-ui-primary-hover-default: #7075ff;
43
63
  --ov-ui-primary-active-default: #4242ba;
@@ -91,6 +111,30 @@
91
111
  --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
92
112
  }
93
113
 
114
+ .ov-wiki-dashboard, .ov-experience-dashboard, .ov-file-browser {
115
+ --ov-ui-dashboard-surface-default: #f8f8f8;
116
+ --ov-ui-dashboard-card-default: #fafafa;
117
+ --ov-ui-dashboard-muted-default: #787c91;
118
+ --ov-ui-dashboard-border-default: #edeef2;
119
+ --ov-ui-dashboard-warning-default: #eb7d00;
120
+ --ov-ui-dashboard-warning-light-default: #fff0e5;
121
+ --ov-ui-dashboard-danger-default: #d92d54;
122
+ --ov-ui-dashboard-danger-light-default: #ffecee;
123
+ --ov-ui-dashboard-success-default: #4f9c70;
124
+ }
125
+
126
+ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-file-browser {
127
+ --ov-ui-dashboard-surface-default: var(--ov-ui-bg-3-default);
128
+ --ov-ui-dashboard-card-default: var(--ov-ui-bg-3-default);
129
+ --ov-ui-dashboard-muted-default: var(--ov-ui-text-3-default);
130
+ --ov-ui-dashboard-border-default: var(--ov-ui-border-1-default);
131
+ --ov-ui-dashboard-warning-default: var(--ov-ui-warning-default);
132
+ --ov-ui-dashboard-warning-light-default: var(--ov-ui-warning-light-default);
133
+ --ov-ui-dashboard-danger-default: var(--ov-ui-status-error-default);
134
+ --ov-ui-dashboard-danger-light-default: var(--ov-ui-bg-5-default);
135
+ --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
136
+ }
137
+
94
138
  .ov-tooltip {
95
139
  --ov-ui-tooltip-bg: var(--ov-ui-color-tooltip-bg, var(--ov-ui-tooltip-bg-default, #1f2329));
96
140
  --ov-ui-tooltip-text: var(--ov-ui-color-tooltip-text, var(--ov-ui-tooltip-text-default, #fff));
@@ -597,8 +597,8 @@ export interface FilePreviewProps extends Omit<HTMLAttributes<HTMLDivElement>, '
597
597
  * component for format rendering or renders fully custom `content`.
598
598
  */
599
599
  tabs: readonly [FilePreviewTab, ...FilePreviewTab[]];
600
- /** 内置中英文文案的语言。Language of the built-in interface copy. */
601
- locale: Locale;
600
+ /** 可选文案语言;继承上层,最终默认英文。Optional locale; inherits or defaults to en-US. */
601
+ locale?: Locale;
602
602
  /**
603
603
  * 受控的当前页签 key。传入时由宿主决定当前页签,组件只上报切换意图。
604
604
  * The controlled active tab key. When given, the host owns the active tab and
@@ -1,4 +1,4 @@
1
- .ov-directory-tour, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
1
+ .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-file-browser, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__popover, .ov-viking-bot__reference-picker--mention, .ov-viking-bot__interaction {
2
2
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
3
3
  --ov-ui-tour-highlight-default: #5252ff14;
4
4
  --ov-ui-primary-default: #5252ff;
@@ -35,9 +35,29 @@
35
35
  --ov-ui-overlay-default: #0006;
36
36
  --ov-ui-tooltip-bg-default: #1f2329;
37
37
  --ov-ui-tooltip-text-default: #fff;
38
- }
39
-
40
- .dark .ov-directory-tour, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
38
+ --ov-ui-library-swatch-1-default: linear-gradient(145deg,
39
+ #ffd8ec 8%,
40
+ #ffabc8 46%,
41
+ #d8cbff 100%);
42
+ --ov-ui-library-swatch-2-default: linear-gradient(145deg,
43
+ #d9e8ff 8%,
44
+ #b8a6ff 52%,
45
+ #f3d6ff 100%);
46
+ --ov-ui-library-swatch-3-default: linear-gradient(145deg,
47
+ #ffe6bc 8%,
48
+ #ffaf96 48%,
49
+ #ff8bc5 100%);
50
+ --ov-ui-library-swatch-4-default: linear-gradient(145deg,
51
+ #eaf7ba 8%,
52
+ #b5efb8 52%,
53
+ #73d9c6 100%);
54
+ --ov-ui-library-swatch-5-default: linear-gradient(145deg,
55
+ #fff1ba 8%,
56
+ #ffc776 52%,
57
+ #bd9cff 100%);
58
+ }
59
+
60
+ .dark .ov-directory-tour, html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, .dark .ov-agent-connect, .dark .ov-console, .dark .ov-divider, .dark .ov-file-browser-entries, .dark .ov-drawer, .dark .ov-file-browser, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__popover, .dark .ov-viking-bot__reference-picker--mention, .dark .ov-viking-bot__interaction {
41
61
  --ov-ui-primary-default: #5f5fff;
42
62
  --ov-ui-primary-hover-default: #7075ff;
43
63
  --ov-ui-primary-active-default: #4242ba;
@@ -91,6 +111,30 @@
91
111
  --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
92
112
  }
93
113
 
114
+ .ov-wiki-dashboard, .ov-experience-dashboard, .ov-file-browser {
115
+ --ov-ui-dashboard-surface-default: #f8f8f8;
116
+ --ov-ui-dashboard-card-default: #fafafa;
117
+ --ov-ui-dashboard-muted-default: #787c91;
118
+ --ov-ui-dashboard-border-default: #edeef2;
119
+ --ov-ui-dashboard-warning-default: #eb7d00;
120
+ --ov-ui-dashboard-warning-light-default: #fff0e5;
121
+ --ov-ui-dashboard-danger-default: #d92d54;
122
+ --ov-ui-dashboard-danger-light-default: #ffecee;
123
+ --ov-ui-dashboard-success-default: #4f9c70;
124
+ }
125
+
126
+ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-file-browser {
127
+ --ov-ui-dashboard-surface-default: var(--ov-ui-bg-3-default);
128
+ --ov-ui-dashboard-card-default: var(--ov-ui-bg-3-default);
129
+ --ov-ui-dashboard-muted-default: var(--ov-ui-text-3-default);
130
+ --ov-ui-dashboard-border-default: var(--ov-ui-border-1-default);
131
+ --ov-ui-dashboard-warning-default: var(--ov-ui-warning-default);
132
+ --ov-ui-dashboard-warning-light-default: var(--ov-ui-warning-light-default);
133
+ --ov-ui-dashboard-danger-default: var(--ov-ui-status-error-default);
134
+ --ov-ui-dashboard-danger-light-default: var(--ov-ui-bg-5-default);
135
+ --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
136
+ }
137
+
94
138
  .ov-popover {
95
139
  --ov-ui-popover-bg: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default, #fff));
96
140
  --ov-ui-popover-text: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default, #0b0b0f));
@@ -199,6 +243,21 @@
199
243
  transition: background-color .12s;
200
244
  }
201
245
 
246
+ .ov-file-tree__popover-anchor-container {
247
+ pointer-events: none;
248
+ justify-content: flex-end;
249
+ display: flex;
250
+ position: absolute;
251
+ inset: 0;
252
+ }
253
+
254
+ .ov-file-tree__popover-anchor {
255
+ flex: none;
256
+ width: 0;
257
+ position: sticky;
258
+ right: 0;
259
+ }
260
+
202
261
  .ov-file-tree__row:hover {
203
262
  background-color: var(--ov-ui-file-tree-row-hover);
204
263
  }
@@ -510,8 +510,8 @@ export interface FileTreeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'chi
510
510
  * Visible rows in render order.
511
511
  */
512
512
  rows: readonly FileTreeRow[];
513
- /** 内置中英文文案的语言。Language of the built-in interface copy. */
514
- locale: Locale;
513
+ /** 可选文案语言;继承上层,最终默认英文。Optional locale; inherits or defaults to en-US. */
514
+ locale?: Locale;
515
515
  /**
516
516
  * 操作的执行能力;省略对应方法时禁用该操作。
517
517
  * Operation capabilities; omitting a method disables its operation.
@@ -2,5 +2,5 @@ import type { ScopeSwitcherProps } from './types.js';
2
2
  export { ScopeSelector } from './scope-selector.js';
3
3
  export { SCOPE_SWITCHER_SEARCH_THRESHOLD } from './types.js';
4
4
  export type { ScopeSelectorBaseProps, ScopeSelectorFixedProps, ScopeSelectorProps, ScopeSelectorSelectableProps, ScopeSwitcherActions, ScopeSwitcherData, ScopeSwitcherIdentity, ScopeSwitcherLabels, ScopeSwitcherOption, ScopeSwitcherPanelContent, ScopeSwitcherProps, ScopeSwitcherScrollMetrics, ScopeSwitcherSlots, ScopeSwitcherState, ScopeSwitcherTrigger, } from './types.js';
5
- /** No shared state, data aggregation or subscription in the layout root. */
6
- export declare function ScopeSwitcher({ locale, children, className, ...props }: ScopeSwitcherProps): import("react").JSX.Element;
5
+ /** Layout and language scope only; selectors own data and interaction state. */
6
+ export declare function ScopeSwitcher({ locale: localeProp, children, className, ...props }: ScopeSwitcherProps): import("react").JSX.Element;