@openviking/react 0.1.5 → 0.1.7

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 (145) hide show
  1. package/README.md +15 -11
  2. package/dist/2~0.js +6 -5
  3. package/dist/37~0.js +27 -0
  4. package/dist/3c~0.js +24 -12
  5. package/dist/3~0.js +19 -9
  6. package/dist/ae~0.js +8 -1
  7. package/dist/ark-message-list-view~0.js +9 -4
  8. package/dist/a~0.js +13 -7
  9. package/dist/c7r~0.js +50 -0
  10. package/dist/ck~0.js +7 -0
  11. package/dist/client/paths.d.ts +10 -0
  12. package/dist/client/provider.d.ts +6 -1
  13. package/dist/components/agent-connect/style.css +268 -37
  14. package/dist/components/directory-tour/style.css +265 -21
  15. package/dist/components/directory-tour.js +1 -1
  16. package/dist/components/experience-dashboard/dashboard-tabs.d.ts +11 -0
  17. package/dist/components/experience-dashboard/experience-dashboard.d.ts +2 -0
  18. package/dist/components/experience-dashboard/experience-impact.d.ts +11 -0
  19. package/dist/components/experience-dashboard/experience-list.d.ts +9 -0
  20. package/dist/components/experience-dashboard/experience-pagination.d.ts +8 -0
  21. package/dist/components/experience-dashboard/experience-tests.d.ts +6 -0
  22. package/dist/components/experience-dashboard/experience-trajectories.d.ts +6 -0
  23. package/dist/components/experience-dashboard/index.d.ts +2 -0
  24. package/dist/components/experience-dashboard/labels.d.ts +2 -0
  25. package/dist/components/experience-dashboard/style.css +914 -0
  26. package/dist/components/experience-dashboard/style.js +0 -0
  27. package/dist/components/experience-dashboard/types.d.ts +106 -0
  28. package/dist/components/experience-dashboard.js +1 -0
  29. package/dist/components/file-browser-entries/style.css +463 -86
  30. package/dist/components/file-preview/style.css +267 -78
  31. package/dist/components/file-tree/file-tree-toolbar.d.ts +3 -3
  32. package/dist/components/file-tree/locales/en-US.d.ts +3 -0
  33. package/dist/components/file-tree/locales/zh-CN.d.ts +3 -0
  34. package/dist/components/file-tree/style.css +372 -88
  35. package/dist/components/file-tree/types.d.ts +13 -4
  36. package/dist/components/scope-switcher/style.css +412 -39
  37. package/dist/components/style.css +9326 -4553
  38. package/dist/components/tui/style.css +385 -67
  39. package/dist/components/viking-bot/interaction/style.css +143 -22
  40. package/dist/components/viking-bot/style.css +1075 -278
  41. package/dist/components/wiki-dashboard/index.d.ts +2 -0
  42. package/dist/components/wiki-dashboard/labels.d.ts +2 -0
  43. package/dist/components/wiki-dashboard/style.css +956 -0
  44. package/dist/components/wiki-dashboard/style.js +0 -0
  45. package/dist/components/wiki-dashboard/types.d.ts +92 -0
  46. package/dist/components/wiki-dashboard/wiki-action-button.d.ts +9 -0
  47. package/dist/components/wiki-dashboard/wiki-conflict-card.d.ts +15 -0
  48. package/dist/components/wiki-dashboard/wiki-dashboard.d.ts +2 -0
  49. package/dist/components/wiki-dashboard/wiki-file-icon.d.ts +3 -0
  50. package/dist/components/wiki-dashboard/wiki-severity-filter.d.ts +8 -0
  51. package/dist/components/wiki-dashboard.js +1 -0
  52. package/dist/c~0.js +16 -8
  53. package/dist/ep~0.js +345 -0
  54. package/dist/e~0.js +33 -328
  55. package/dist/fj~0.js +507 -0
  56. package/dist/fl~0.js +709 -0
  57. package/dist/f~0.js +12 -27
  58. package/dist/icons/index.d.ts +28 -0
  59. package/dist/icons.js +1 -1
  60. package/dist/index.d.ts +4 -0
  61. package/dist/index.js +3 -1
  62. package/dist/k~0.js +277 -1
  63. package/dist/lk~0.js +56 -14
  64. package/dist/l~0.js +2786 -446
  65. package/dist/modules/console/index.d.ts +1 -2
  66. package/dist/modules/console/style.css +1787 -346
  67. package/dist/modules/console.js +1 -1
  68. package/dist/modules/file-browser/acl/acl-add-principal.d.ts +12 -0
  69. package/dist/modules/file-browser/acl/acl-candidate.d.ts +8 -0
  70. package/dist/modules/file-browser/acl/acl-client.d.ts +13 -0
  71. package/dist/modules/file-browser/acl/acl-confirmation.d.ts +6 -0
  72. package/dist/modules/file-browser/acl/acl-entry.d.ts +13 -0
  73. package/dist/modules/file-browser/acl/acl-labels.d.ts +47 -0
  74. package/dist/modules/file-browser/acl/acl-menu.d.ts +10 -0
  75. package/dist/modules/file-browser/acl/acl-modal.d.ts +17 -0
  76. package/dist/modules/file-browser/acl/acl-model.d.ts +17 -0
  77. package/dist/modules/file-browser/acl/acl-principal-tabs.d.ts +6 -0
  78. package/dist/modules/file-browser/acl/acl-tag.d.ts +7 -0
  79. package/dist/modules/file-browser/acl/locales/en-US.d.ts +44 -0
  80. package/dist/modules/file-browser/acl/locales/zh-CN.d.ts +44 -0
  81. package/dist/modules/file-browser/acl/use-acl-principals.d.ts +17 -0
  82. package/dist/modules/file-browser/acl/use-acl-report.d.ts +27 -0
  83. package/dist/modules/file-browser/acl-types.d.ts +86 -0
  84. package/dist/modules/file-browser/dashboard-data.d.ts +9 -0
  85. package/dist/modules/file-browser/dashboard-indicator.d.ts +8 -0
  86. package/dist/modules/file-browser/dashboard-labels.d.ts +9 -0
  87. package/dist/modules/file-browser/dashboard-model.d.ts +17 -0
  88. package/dist/modules/file-browser/dashboard-resource.d.ts +12 -0
  89. package/dist/modules/file-browser/experience-dashboard-pane.d.ts +8 -0
  90. package/dist/modules/file-browser/experience-data.d.ts +31 -0
  91. package/dist/modules/file-browser/file-browser-detail.d.ts +4 -1
  92. package/dist/modules/file-browser/file-browser-labels.d.ts +1 -1
  93. package/dist/modules/file-browser/file-browser-search.d.ts +20 -0
  94. package/dist/modules/file-browser/file-browser-toolbar.d.ts +3 -10
  95. package/dist/modules/file-browser/file-browser-tree-pane.d.ts +4 -7
  96. package/dist/modules/file-browser/file-browser.d.ts +1 -1
  97. package/dist/modules/file-browser/fs-directories.d.ts +9 -0
  98. package/dist/modules/file-browser/fs-lines.d.ts +36 -0
  99. package/dist/modules/file-browser/fs-memory-fields.d.ts +65 -0
  100. package/dist/modules/file-browser/fs-model.d.ts +15 -3
  101. package/dist/modules/file-browser/fs-read-file.d.ts +14 -0
  102. package/dist/modules/file-browser/index.d.ts +3 -2
  103. package/dist/modules/file-browser/locales/en-US.d.ts +5 -0
  104. package/dist/modules/file-browser/locales/zh-CN.d.ts +5 -0
  105. package/dist/modules/file-browser/style.css +4033 -483
  106. package/dist/modules/file-browser/types.d.ts +82 -20
  107. package/dist/modules/file-browser/use-browser-dashboards.d.ts +31 -0
  108. package/dist/modules/file-browser/use-dashboard-query.d.ts +9 -0
  109. package/dist/modules/file-browser/use-experience-dashboard.d.ts +27 -0
  110. package/dist/modules/file-browser/use-file-browser-acl.d.ts +15 -0
  111. package/dist/modules/file-browser/use-file-browser.d.ts +6 -51
  112. package/dist/modules/file-browser/use-fs-tree.d.ts +3 -0
  113. package/dist/modules/file-browser/use-wiki-dashboard.d.ts +17 -0
  114. package/dist/modules/file-browser/wiki-conflicts.d.ts +12 -0
  115. package/dist/modules/file-browser/wiki-dashboard-pane.d.ts +14 -0
  116. package/dist/modules/file-browser.js +1 -1
  117. package/dist/modules/scope-cascade/controller.d.ts +2 -2
  118. package/dist/modules/scope-cascade/index.d.ts +1 -2
  119. package/dist/modules/scope-cascade/scope-cascade.d.ts +1 -1
  120. package/dist/modules/scope-cascade/style.css +581 -39
  121. package/dist/modules/scope-cascade/types.d.ts +8 -3
  122. package/dist/modules/scope-cascade/use-scope-cascade.d.ts +2 -2
  123. package/dist/modules/scope-cascade.js +1 -1
  124. package/dist/modules/style.css +13589 -7966
  125. package/dist/n~0.js +73 -165
  126. package/dist/rt~0.js +255 -0
  127. package/dist/r~0.js +18 -39
  128. package/dist/shared/components/button/button.d.ts +20 -0
  129. package/dist/shared/components/input/input.d.ts +17 -0
  130. package/dist/shared/components/modal/locales/en-US.d.ts +4 -0
  131. package/dist/shared/components/modal/locales/zh-CN.d.ts +4 -0
  132. package/dist/shared/components/modal/modal.d.ts +2 -0
  133. package/dist/shared/components/modal/types.d.ts +18 -0
  134. package/dist/shared/components/overlay/lock-body-scroll.d.ts +1 -0
  135. package/dist/shared/components/popover/popover.d.ts +1 -1
  136. package/dist/shared/components/popover/types.d.ts +7 -1
  137. package/dist/shared/dashboard/dashboard-state.d.ts +12 -0
  138. package/dist/static/image/dashboard-background.png +0 -0
  139. package/dist/style.css +16088 -5602
  140. package/dist/s~0.js +16 -0
  141. package/dist/u~0.js +15 -6
  142. package/dist/viking-bot-composer~0.js +30 -12
  143. package/dist/viking-bot-interaction~0.js +2 -1
  144. package/package.json +14 -3
  145. package/dist/o~0.js +0 -106
@@ -1,4 +1,173 @@
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-button {
2
+ --ov-ui-button-height: 32px;
3
+ --ov-ui-button-padding: 16px;
4
+ --ov-ui-button-primary: var(--ov-ui-color-primary, var(--ov-ui-primary-default));
5
+ --ov-ui-button-text: var(--ov-ui-color-text-2, var(--ov-ui-text-2-default));
6
+ --ov-ui-button-fill: var(--ov-ui-color-bg-5, var(--ov-ui-bg-5-default));
7
+ --ov-ui-button-fill-hover: var(--ov-ui-color-bg-11, var(--ov-ui-bg-11-default));
8
+ --ov-ui-button-focus-ring: var(--ov-ui-color-neutral-4, var(--ov-ui-neutral-4-default));
9
+ appearance: none;
10
+ box-sizing: border-box;
11
+ height: var(--ov-ui-button-height);
12
+ padding: 0 var(--ov-ui-button-padding);
13
+ background: var(--ov-ui-button-fill);
14
+ color: var(--ov-ui-button-text);
15
+ white-space: nowrap;
16
+ cursor: pointer;
17
+ -webkit-user-select: none;
18
+ user-select: none;
19
+ border: 1px solid #0000;
20
+ border-radius: 6px;
21
+ flex-shrink: 0;
22
+ justify-content: center;
23
+ align-items: center;
24
+ gap: 8px;
25
+ margin: 0;
26
+ font-family: inherit;
27
+ font-size: 13px;
28
+ font-weight: 500;
29
+ line-height: 1.53846;
30
+ text-decoration: none;
31
+ transition: background-color .1s cubic-bezier(0, 0, 1, 1), border-color .1s cubic-bezier(0, 0, 1, 1), color .1s cubic-bezier(0, 0, 1, 1);
32
+ display: inline-flex;
33
+ }
34
+
35
+ .ov-button--mini {
36
+ --ov-ui-button-height: 24px;
37
+ --ov-ui-button-padding: 12px;
38
+ gap: 4px;
39
+ font-size: 12px;
40
+ }
41
+
42
+ .ov-button--small {
43
+ --ov-ui-button-height: 28px;
44
+ }
45
+
46
+ .ov-button--large {
47
+ --ov-ui-button-height: 36px;
48
+ }
49
+
50
+ .ov-button--icon-only {
51
+ width: var(--ov-ui-button-height);
52
+ padding: 0;
53
+ }
54
+
55
+ .ov-button--circle {
56
+ border-radius: 50%;
57
+ }
58
+
59
+ .ov-button--long {
60
+ width: 100%;
61
+ }
62
+
63
+ .ov-button:not(:disabled):not([aria-disabled="true"]):hover {
64
+ background: var(--ov-ui-button-fill-hover);
65
+ }
66
+
67
+ .ov-button:not(:disabled):not([aria-disabled="true"]):active {
68
+ background: var(--ov-ui-button-fill);
69
+ color: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default));
70
+ transition: none;
71
+ }
72
+
73
+ .ov-button:focus-visible {
74
+ box-shadow: 0 0 0 2px var(--ov-ui-button-focus-ring);
75
+ outline: none;
76
+ }
77
+
78
+ .ov-button:disabled:not(.ov-button--loading), .ov-button.ov-button--disabled, .ov-button[aria-disabled="true"] {
79
+ background: var(--ov-ui-color-bg-4, var(--ov-ui-bg-4-default));
80
+ cursor: not-allowed;
81
+ color: var(--ov-ui-color-text-disabled, var(--ov-ui-text-disabled-default));
82
+ }
83
+
84
+ .ov-button--primary, .ov-button--outline {
85
+ --ov-ui-button-focus-ring: var(--ov-ui-color-primary-disabled, var(--ov-ui-primary-disabled-default));
86
+ }
87
+
88
+ .ov-button--primary {
89
+ background: var(--ov-ui-button-primary);
90
+ color: var(--ov-ui-color-text-on-primary, var(--ov-ui-text-on-primary-default));
91
+ border-style: dashed;
92
+ }
93
+
94
+ .ov-button--primary:not(:disabled):not([aria-disabled="true"]):hover {
95
+ background: var(--ov-ui-color-primary-strong, var(--ov-ui-primary-strong-default));
96
+ color: var(--ov-ui-color-text-on-primary, var(--ov-ui-text-on-primary-default));
97
+ }
98
+
99
+ .ov-button--primary:not(:disabled):not([aria-disabled="true"]):active {
100
+ background: var(--ov-ui-button-primary);
101
+ color: var(--ov-ui-color-text-on-primary, var(--ov-ui-text-on-primary-default));
102
+ }
103
+
104
+ .ov-button--primary:disabled:not(.ov-button--loading), .ov-button--primary.ov-button--disabled, .ov-button--primary[aria-disabled="true"] {
105
+ background: var(--ov-ui-color-primary-disabled, var(--ov-ui-primary-disabled-default));
106
+ color: var(--ov-ui-color-text-on-primary-disabled, var(--ov-ui-on-primary-disabled-default));
107
+ }
108
+
109
+ .ov-button--outline, .ov-button--outline:disabled:not(.ov-button--loading), .ov-button--outline.ov-button--disabled, .ov-button--outline[aria-disabled="true"] {
110
+ border-color: var(--ov-ui-color-border-3, var(--ov-ui-border-3-default));
111
+ background: none;
112
+ }
113
+
114
+ .ov-button--outline:not(:disabled):not([aria-disabled="true"]):hover, .ov-button--outline:not(:disabled):not([aria-disabled="true"]):active {
115
+ background: var(--ov-ui-color-bg-7, var(--ov-ui-bg-7-default));
116
+ color: var(--ov-ui-button-text);
117
+ }
118
+
119
+ .ov-button--outline:not(:disabled):not([aria-disabled="true"]):active {
120
+ border-color: var(--ov-ui-color-border-4, var(--ov-ui-border-4-default));
121
+ }
122
+
123
+ .ov-button--text {
124
+ color: var(--ov-ui-color-link, var(--ov-ui-link-default));
125
+ background: none;
126
+ }
127
+
128
+ .ov-button--text:not(:disabled):not([aria-disabled="true"]):hover, .ov-button--text:disabled:not(.ov-button--loading), .ov-button--text.ov-button--disabled, .ov-button--text[aria-disabled="true"] {
129
+ color: var(--ov-ui-color-primary-muted, var(--ov-ui-primary-muted-default));
130
+ background: none;
131
+ }
132
+
133
+ .ov-button--text:not(:disabled):not([aria-disabled="true"]):active {
134
+ color: var(--ov-ui-color-link-active, var(--ov-ui-link-active-default));
135
+ background: none;
136
+ }
137
+
138
+ .ov-button__icon {
139
+ flex: none;
140
+ align-items: center;
141
+ display: inline-flex;
142
+ }
143
+
144
+ .ov-button__spinner {
145
+ box-sizing: border-box;
146
+ border: 1.5px solid;
147
+ border-inline-start-color: #0000;
148
+ border-radius: 50%;
149
+ width: 1em;
150
+ height: 1em;
151
+ animation: 1s linear infinite ov-button-spin;
152
+ }
153
+
154
+ @keyframes ov-button-spin {
155
+ to {
156
+ transform: rotate(360deg);
157
+ }
158
+ }
159
+
160
+ @media (prefers-reduced-motion: reduce) {
161
+ .ov-button {
162
+ transition: none;
163
+ }
164
+
165
+ .ov-button__spinner {
166
+ animation: none;
167
+ }
168
+ }
169
+
170
+ .ov-button, .ov-input, .ov-textarea, .ov-directory-tour, .ov-wiki-dashboard, .ov-experience-dashboard, .ov-agent-connect, .ov-console, .ov-divider, .ov-file-browser-entries, .ov-drawer, .ov-modal, .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
171
  --ov-ui-tour-shadow-default: 0 15px 35px #0000000d, 0 5px 15px #0000000d;
3
172
  --ov-ui-tour-highlight-default: #5252ff14;
4
173
  --ov-ui-primary-default: #5252ff;
@@ -35,9 +204,29 @@
35
204
  --ov-ui-overlay-default: #0006;
36
205
  --ov-ui-tooltip-bg-default: #1f2329;
37
206
  --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 {
207
+ --ov-ui-library-swatch-1-default: linear-gradient(145deg,
208
+ #ffd8ec 8%,
209
+ #ffabc8 46%,
210
+ #d8cbff 100%);
211
+ --ov-ui-library-swatch-2-default: linear-gradient(145deg,
212
+ #d9e8ff 8%,
213
+ #b8a6ff 52%,
214
+ #f3d6ff 100%);
215
+ --ov-ui-library-swatch-3-default: linear-gradient(145deg,
216
+ #ffe6bc 8%,
217
+ #ffaf96 48%,
218
+ #ff8bc5 100%);
219
+ --ov-ui-library-swatch-4-default: linear-gradient(145deg,
220
+ #eaf7ba 8%,
221
+ #b5efb8 52%,
222
+ #73d9c6 100%);
223
+ --ov-ui-library-swatch-5-default: linear-gradient(145deg,
224
+ #fff1ba 8%,
225
+ #ffc776 52%,
226
+ #bd9cff 100%);
227
+ }
228
+
229
+ html.dark .ov-button, html.dark .ov-input, html.dark .ov-textarea, .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-modal, .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
230
  --ov-ui-primary-default: #5f5fff;
42
231
  --ov-ui-primary-hover-default: #7075ff;
43
232
  --ov-ui-primary-active-default: #4242ba;
@@ -67,6 +256,52 @@
67
256
  --ov-ui-tooltip-text-default: #f0f1f3;
68
257
  }
69
258
 
259
+ .ov-button, .ov-input, .ov-textarea {
260
+ --ov-ui-bg-white-default: var(--ov-ui-bg-1-default);
261
+ --ov-ui-bg-2-default: #fafbfd;
262
+ --ov-ui-bg-7-default: var(--ov-ui-border-1-default);
263
+ --ov-ui-bg-11-default: #e1e3ef;
264
+ --ov-ui-border-4-default: #acb0c5;
265
+ --ov-ui-neutral-4-default: #c9cdd4;
266
+ --ov-ui-primary-muted-default: #8e96ff;
267
+ --ov-ui-primary-strong-default: var(--ov-ui-primary-active-default);
268
+ --ov-ui-link-default: var(--ov-ui-primary-default);
269
+ --ov-ui-link-active-default: var(--ov-ui-primary-active-default);
270
+ --ov-ui-text-5-default: #c9c9d4;
271
+ --ov-ui-on-primary-disabled-default: var(--ov-ui-text-on-primary-default);
272
+ --ov-ui-input-focus-ring-default: color-mix(in srgb,
273
+ var(--ov-ui-color-primary, var(--ov-ui-primary-default)) 30%,
274
+ transparent);
275
+ --ov-ui-error-default: #e31b54;
276
+ --ov-ui-error-bg-default: #ffecec;
277
+ --ov-ui-error-border-default: #ffa3a0;
278
+ }
279
+
280
+ html.dark .ov-button, html.dark .ov-input, html.dark .ov-textarea {
281
+ --ov-ui-bg-white-default: #fff0;
282
+ --ov-ui-bg-2-default: #fcfdfe03;
283
+ --ov-ui-bg-4-default: #f6f8fa0f;
284
+ --ov-ui-bg-5-default: #f1f3f514;
285
+ --ov-ui-bg-7-default: #1a1b1e;
286
+ --ov-ui-bg-11-default: #1e2023;
287
+ --ov-ui-border-2-default: #dde2e926;
288
+ --ov-ui-border-3-default: #dde2e94d;
289
+ --ov-ui-border-4-default: #6d6d6d;
290
+ --ov-ui-neutral-4-default: #5f5f60;
291
+ --ov-ui-primary-disabled-default: #3f3a89;
292
+ --ov-ui-primary-muted-default: #4c48b4;
293
+ --ov-ui-primary-strong-default: var(--ov-ui-primary-hover-default);
294
+ --ov-ui-link-default: #787dff;
295
+ --ov-ui-link-active-default: #949cff;
296
+ --ov-ui-text-disabled-default: #42464e;
297
+ --ov-ui-text-5-default: #e1e3ef;
298
+ --ov-ui-on-primary-disabled-default: #ffffff4d;
299
+ --ov-ui-input-focus-ring-default: #4583ff4d;
300
+ --ov-ui-error-default: #ff706d;
301
+ --ov-ui-error-bg-default: #9f211c33;
302
+ --ov-ui-error-border-default: #ff706d4d;
303
+ }
304
+
70
305
  .dark .ov-viking-bot {
71
306
  --ov-ui-code-bg-default: var(--ov-ui-bg-3-default);
72
307
  }
@@ -91,6 +326,30 @@
91
326
  --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
92
327
  }
93
328
 
329
+ .ov-wiki-dashboard, .ov-experience-dashboard, .ov-file-browser {
330
+ --ov-ui-dashboard-surface-default: #f8f8f8;
331
+ --ov-ui-dashboard-card-default: #fafafa;
332
+ --ov-ui-dashboard-muted-default: #787c91;
333
+ --ov-ui-dashboard-border-default: #edeef2;
334
+ --ov-ui-dashboard-warning-default: #eb7d00;
335
+ --ov-ui-dashboard-warning-light-default: #fff0e5;
336
+ --ov-ui-dashboard-danger-default: #d92d54;
337
+ --ov-ui-dashboard-danger-light-default: #ffecee;
338
+ --ov-ui-dashboard-success-default: #4f9c70;
339
+ }
340
+
341
+ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-file-browser {
342
+ --ov-ui-dashboard-surface-default: var(--ov-ui-bg-3-default);
343
+ --ov-ui-dashboard-card-default: var(--ov-ui-bg-3-default);
344
+ --ov-ui-dashboard-muted-default: var(--ov-ui-text-3-default);
345
+ --ov-ui-dashboard-border-default: var(--ov-ui-border-1-default);
346
+ --ov-ui-dashboard-warning-default: var(--ov-ui-warning-default);
347
+ --ov-ui-dashboard-warning-light-default: var(--ov-ui-warning-light-default);
348
+ --ov-ui-dashboard-danger-default: var(--ov-ui-status-error-default);
349
+ --ov-ui-dashboard-danger-light-default: var(--ov-ui-bg-5-default);
350
+ --ov-ui-dashboard-success-default: var(--ov-ui-status-success-default);
351
+ }
352
+
94
353
  .ov-popover {
95
354
  --ov-ui-popover-bg: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default, #fff));
96
355
  --ov-ui-popover-text: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default, #0b0b0f));
@@ -128,6 +387,55 @@
128
387
  }
129
388
  }
130
389
 
390
+ .ov-tooltip {
391
+ --ov-ui-tooltip-bg: var(--ov-ui-color-tooltip-bg, var(--ov-ui-tooltip-bg-default, #1f2329));
392
+ --ov-ui-tooltip-text: var(--ov-ui-color-tooltip-text, var(--ov-ui-tooltip-text-default, #fff));
393
+ --ov-ui-tooltip-border: transparent;
394
+ --ov-ui-tooltip-radius: var(--ov-ui-radius, 6px);
395
+ --ov-ui-tooltip-offset: 6px;
396
+ z-index: 1000;
397
+ box-sizing: border-box;
398
+ border: 1px solid var(--ov-ui-tooltip-border);
399
+ border-radius: var(--ov-ui-tooltip-radius);
400
+ background: var(--ov-ui-tooltip-bg);
401
+ max-width: 320px;
402
+ color: var(--ov-ui-tooltip-text);
403
+ overflow-wrap: break-word;
404
+ padding: 6px 8px;
405
+ font-family: inherit;
406
+ font-size: 12px;
407
+ line-height: 18px;
408
+ animation: .12s ease-out ov-tooltip-enter;
409
+ position: fixed;
410
+ box-shadow: 0 4px 12px #0000001f;
411
+ }
412
+
413
+ .ov-tooltip[role="dialog"] {
414
+ --ov-ui-tooltip-bg: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default, #fff));
415
+ --ov-ui-tooltip-text: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default, #0b0b0f));
416
+ --ov-ui-tooltip-border: var(--ov-ui-color-border-2, var(--ov-ui-border-2-default, #e1e4f2));
417
+ min-width: 120px;
418
+ max-width: 360px;
419
+ padding: 4px;
420
+ box-shadow: 0 6px 16px #0000001f;
421
+ }
422
+
423
+ @keyframes ov-tooltip-enter {
424
+ from {
425
+ opacity: 0;
426
+ }
427
+
428
+ to {
429
+ opacity: 1;
430
+ }
431
+ }
432
+
433
+ @media (prefers-reduced-motion: reduce) {
434
+ .ov-tooltip {
435
+ animation: none;
436
+ }
437
+ }
438
+
131
439
  .ov-file-tree {
132
440
  --ov-ui-file-tree-row-height: 32px;
133
441
  --ov-ui-file-tree-row-radius: 4px;
@@ -199,6 +507,21 @@
199
507
  transition: background-color .12s;
200
508
  }
201
509
 
510
+ .ov-file-tree__popover-anchor-container {
511
+ pointer-events: none;
512
+ justify-content: flex-end;
513
+ display: flex;
514
+ position: absolute;
515
+ inset: 0;
516
+ }
517
+
518
+ .ov-file-tree__popover-anchor {
519
+ flex: none;
520
+ width: 0;
521
+ position: sticky;
522
+ right: 0;
523
+ }
524
+
202
525
  .ov-file-tree__row:hover {
203
526
  background-color: var(--ov-ui-file-tree-row-hover);
204
527
  }
@@ -434,24 +757,6 @@
434
757
  }
435
758
  }
436
759
 
437
- .ov-file-tree__action {
438
- color: inherit;
439
- font: inherit;
440
- cursor: pointer;
441
- background: none;
442
- border: 0;
443
- padding: 0;
444
- transition: color .12s;
445
- }
446
-
447
- .ov-file-tree__action:hover:not(:disabled) {
448
- color: var(--ov-ui-file-tree-action);
449
- }
450
-
451
- .ov-file-tree__action:disabled {
452
- cursor: default;
453
- }
454
-
455
760
  @media (prefers-reduced-motion: reduce) {
456
761
  .ov-file-tree__chevron, .ov-file-tree__folder-layer {
457
762
  transition: none;
@@ -470,6 +775,14 @@
470
775
  color: var(--ov-file-tree-icon-dark, var(--ov-ui-file-tree-icon));
471
776
  }
472
777
 
778
+ .ov-file-tree .ov-button.ov-file-tree__action, .ov-file-tree .ov-button.ov-file-tree__action:disabled, .ov-file-tree .ov-button.ov-file-tree__action[aria-disabled="true"] {
779
+ color: var(--ov-ui-color-text-3, var(--ov-ui-text-3-default));
780
+ }
781
+
782
+ .ov-file-tree .ov-button.ov-file-tree__action:not(:disabled):not([aria-disabled="true"]):hover {
783
+ color: var(--ov-ui-color-primary, var(--ov-ui-primary-default));
784
+ }
785
+
473
786
  .ov-file-tree__controls {
474
787
  flex: none;
475
788
  align-items: center;
@@ -479,98 +792,69 @@
479
792
  display: flex;
480
793
  }
481
794
 
482
- .ov-file-tree__search, .ov-file-tree__refresh {
483
- box-sizing: border-box;
484
- border: 1px solid var(--ov-ui-color-border-2, var(--ov-ui-border-2-default));
485
- background: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default));
486
- height: 32px;
487
- color: var(--ov-ui-file-tree-icon);
488
- box-shadow: 0 1px 1px
489
- var(--ov-ui-color-shadow-control, var(--ov-ui-shadow-control-default));
490
- cursor: pointer;
491
- border-radius: 6px;
492
- flex-shrink: 0;
493
- justify-content: center;
494
- align-items: center;
495
- margin: 0;
496
- padding: 0;
497
- font-family: inherit;
498
- font-size: 12px;
499
- font-weight: 400;
500
- line-height: 22px;
501
- transition: border-color .16s, background-color .16s;
502
- display: inline-flex;
503
- }
504
-
505
- .ov-file-tree__search {
795
+ .ov-file-tree__controls .ov-file-tree__search {
796
+ --ov-ui-button-fill: var(--ov-ui-color-bg-white, var(--ov-ui-bg-white-default));
797
+ --ov-ui-button-fill-hover: var(--ov-ui-button-fill);
798
+ text-align: start;
506
799
  min-width: 0;
507
- color: var(--ov-ui-file-tree-text-muted);
508
- text-align: left;
800
+ box-shadow: 0 0 0 1px var(--ov-ui-color-border-2, var(--ov-ui-border-2-default)),
801
+ 0 1px 1px
802
+ var(--ov-ui-color-shadow-control, var(--ov-ui-shadow-control-default));
803
+ border: 0;
509
804
  flex: auto;
510
805
  justify-content: flex-start;
511
806
  gap: 4px;
512
807
  padding: 4px 12px;
808
+ font-weight: 400;
513
809
  }
514
810
 
515
- .ov-file-tree__search svg {
516
- flex: none;
517
- width: 16px;
518
- height: 16px;
519
- display: block;
811
+ .ov-file-tree__controls .ov-file-tree__search:not(:disabled):hover {
812
+ box-shadow: 0 0 0 1px var(--ov-ui-color-border-3, var(--ov-ui-border-3-default)),
813
+ 0 1px 1px
814
+ var(--ov-ui-color-shadow-control, var(--ov-ui-shadow-control-default));
520
815
  }
521
816
 
522
817
  .ov-file-tree__search-label {
523
- letter-spacing: .036px;
524
818
  text-overflow: ellipsis;
525
819
  white-space: nowrap;
526
820
  min-width: 0;
821
+ color: var(--ov-ui-color-text-3, var(--ov-ui-text-3-default));
822
+ letter-spacing: .036px;
823
+ font-size: 12px;
824
+ line-height: 22px;
527
825
  overflow: hidden;
528
826
  }
529
827
 
530
- .ov-file-tree__refresh {
531
- width: 32px;
532
- }
533
-
534
- .ov-file-tree__refresh svg {
535
- flex: none;
536
- display: block;
537
- }
538
-
539
- .ov-file-tree__search:hover:not(:disabled), .ov-file-tree__refresh:hover:not(:disabled) {
540
- border-color: var(--ov-ui-color-border-3, var(--ov-ui-border-3-default));
541
- }
542
-
543
- .ov-file-tree__refresh:hover:not(:disabled) {
544
- background: var(--ov-ui-file-tree-row-hover);
545
- }
546
-
547
- .ov-file-tree__search:focus-visible, .ov-file-tree__refresh:focus-visible {
548
- outline: 2px solid var(--ov-ui-file-tree-action);
549
- outline-offset: 2px;
828
+ .ov-file-tree__controls .ov-file-tree__refresh {
829
+ --ov-ui-button-fill: var(--ov-ui-color-bg-white, var(--ov-ui-bg-white-default));
830
+ --ov-ui-button-fill-hover: var(--ov-ui-color-bg-3, var(--ov-ui-bg-3-default));
831
+ box-shadow: 0 0 0 1px var(--ov-ui-color-border-2, var(--ov-ui-border-2-default)),
832
+ 0 1px 1px
833
+ var(--ov-ui-color-shadow-control, var(--ov-ui-shadow-control-default));
834
+ border: 0;
550
835
  }
551
836
 
552
- .ov-file-tree__search:disabled, .ov-file-tree__refresh:disabled {
553
- cursor: not-allowed;
837
+ .ov-file-tree__controls :is(.ov-file-tree__search, .ov-file-tree__refresh):disabled {
838
+ background: var(--ov-ui-button-fill);
839
+ color: var(--ov-ui-color-text-2, var(--ov-ui-text-2-default));
554
840
  opacity: .6;
555
841
  }
556
842
 
557
- .ov-file-tree__refresh[aria-busy="true"] {
558
- cursor: wait;
843
+ .ov-file-tree__controls .ov-file-tree__refresh[aria-busy="true"] {
559
844
  opacity: 1;
845
+ cursor: default;
560
846
  }
561
847
 
562
- .ov-file-tree__refresh-spinning {
563
- animation: .9s linear infinite ov-file-tree-spin;
848
+ .ov-file-tree__search > svg {
849
+ color: var(--ov-ui-color-text-3, var(--ov-ui-text-3-default));
564
850
  }
565
851
 
566
- @media (prefers-reduced-motion: reduce) {
567
- .ov-file-tree__search, .ov-file-tree__refresh {
568
- transition: none;
569
- }
570
-
571
- .ov-file-tree__refresh-spinning {
572
- animation-duration: 2s;
573
- }
852
+ .ov-file-tree__controls .ov-button:focus-visible {
853
+ box-shadow: 0 0 0 1px var(--ov-ui-color-border-2, var(--ov-ui-border-2-default)),
854
+ 0 1px 1px
855
+ var(--ov-ui-color-shadow-control, var(--ov-ui-shadow-control-default));
856
+ outline: 2px solid var(--ov-ui-color-focus, var(--ov-ui-focus-default));
857
+ outline-offset: -2px;
574
858
  }
575
859
 
576
860
 
@@ -96,6 +96,10 @@ export interface FileTreeEntryRow extends FileTreeRowBase {
96
96
  * without detail permission.
97
97
  */
98
98
  disabled?: boolean;
99
+ /** 允许展开但不选中,例如仅能遍历的目录。Allows expansion without selection. */
100
+ selectable?: boolean;
101
+ /** 权限状态的纯展示标签,不执行鉴权。Display-only permission status. */
102
+ access?: 'read-only' | 'denied' | 'container';
99
103
  /**
100
104
  * 名称下方的次要说明,例如摘要或行内描述。
101
105
  * Secondary line under the name, for example an abstract or inline
@@ -385,6 +389,9 @@ export interface FileTreeInfoLabels {
385
389
  * Replaceable copy with built-in Chinese and English defaults.
386
390
  */
387
391
  export interface FileTreeLabels {
392
+ readOnly?: string;
393
+ noAccess?: string;
394
+ traverseOnly?: string;
388
395
  /** 搜索入口文案。Search trigger label. */
389
396
  search?: string;
390
397
  /** 刷新按钮的无障碍名称。Accessible refresh button label. */
@@ -523,20 +530,22 @@ export interface FileTreeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'chi
523
530
  */
524
531
  selectedId?: string | null;
525
532
  /**
526
- * 显示内置搜索入口;默认隐藏,未提供 operations.search 时禁用。
527
- * Shows the built-in search trigger. Hidden by default; disabled without operations.search.
533
+ * 显示内置搜索入口;默认显示,未提供 operations.search 时禁用。
534
+ * Shows the built-in search trigger. Visible by default; disabled without operations.search.
528
535
  */
529
536
  search?: boolean | {
530
537
  disabled?: boolean;
531
538
  };
532
539
  /**
533
- * 显示内置刷新按钮;默认隐藏。loading 可表达宿主额外的刷新状态。
534
- * Shows the refresh button. Hidden by default; loading adds a host-controlled pending state.
540
+ * 显示内置刷新按钮;默认显示。loading 可表达宿主额外的刷新状态。
541
+ * Shows the refresh button. Visible by default; loading adds a host-controlled pending state.
535
542
  */
536
543
  refresh?: boolean | {
537
544
  disabled?: boolean;
538
545
  loading?: boolean;
539
546
  };
547
+ /** 刷新按钮的受控加载态,与异步刷新、refresh.loading 合并。Host-controlled refresh pending state. */
548
+ loading?: boolean;
540
549
  /**
541
550
  * 首次加载是否已完成。
542
551
  * Whether the tree has finished its first load.