@openviking/react 0.1.6 → 0.1.8-beta.10.1.g8e5299efeb0a

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 (172) hide show
  1. package/README.md +13 -1
  2. package/dist/1~0.js +57 -0
  3. package/dist/2~0.js +6 -5
  4. package/dist/3c~0.js +10 -4
  5. package/dist/3~0.js +189 -13
  6. package/dist/5~0.js +181 -0
  7. package/dist/6~0.js +48 -0
  8. package/dist/ae~0.js +8 -1
  9. package/dist/ark-message-list-view~0.js +9 -4
  10. package/dist/a~0.js +12 -6
  11. package/dist/c7r~0.js +50 -0
  12. package/dist/ck~0.js +3 -0
  13. package/dist/client/paths.d.ts +6 -0
  14. package/dist/client/provider.d.ts +6 -1
  15. package/dist/components/agent-connect/style.css +224 -35
  16. package/dist/components/api-key-login-form/api-key-login-form.d.ts +2 -0
  17. package/dist/components/api-key-login-form/index.d.ts +3 -0
  18. package/dist/components/api-key-login-form/style.css +438 -0
  19. package/dist/components/api-key-login-form/style.js +0 -0
  20. package/dist/components/api-key-login-form/types.d.ts +7 -0
  21. package/dist/components/api-key-login-form.js +1 -0
  22. package/dist/components/directory-tour/directory-tour-intro.d.ts +3 -0
  23. package/dist/components/directory-tour/index.d.ts +2 -1
  24. package/dist/components/directory-tour/style.css +367 -39
  25. package/dist/components/directory-tour/tour-card.d.ts +14 -0
  26. package/dist/components/directory-tour/types.d.ts +24 -1
  27. package/dist/components/directory-tour/use-tour-anchor.d.ts +1 -0
  28. package/dist/components/directory-tour/use-tour-position.d.ts +4 -1
  29. package/dist/components/directory-tour/use-tour-theme.d.ts +2 -0
  30. package/dist/components/directory-tour.js +53 -2
  31. package/dist/components/email-login-form/email-login-form.d.ts +2 -0
  32. package/dist/components/email-login-form/index.d.ts +3 -0
  33. package/dist/components/email-login-form/style.css +438 -0
  34. package/dist/components/email-login-form/style.js +0 -0
  35. package/dist/components/email-login-form/types.d.ts +11 -0
  36. package/dist/components/email-login-form.js +1 -0
  37. package/dist/components/experience-dashboard/experience-impact.d.ts +3 -1
  38. package/dist/components/experience-dashboard/style.css +229 -12
  39. package/dist/components/experience-dashboard.js +1 -1
  40. package/dist/components/file-browser-entries/style.css +331 -80
  41. package/dist/components/file-preview/file-preview-header.d.ts +4 -21
  42. package/dist/components/file-preview/file-preview-toolbar.d.ts +7 -0
  43. package/dist/components/file-preview/locales/en-US.d.ts +9 -0
  44. package/dist/components/file-preview/locales/zh-CN.d.ts +9 -0
  45. package/dist/components/file-preview/style.css +335 -76
  46. package/dist/components/file-preview/types.d.ts +14 -21
  47. package/dist/components/file-tree/file-tree-toolbar.d.ts +3 -3
  48. package/dist/components/file-tree/locales/en-US.d.ts +3 -0
  49. package/dist/components/file-tree/locales/zh-CN.d.ts +3 -0
  50. package/dist/components/file-tree/style.css +313 -86
  51. package/dist/components/file-tree/types.d.ts +13 -4
  52. package/dist/components/invitation-confirmation/index.d.ts +3 -0
  53. package/dist/components/invitation-confirmation/invitation-confirmation.d.ts +2 -0
  54. package/dist/components/invitation-confirmation/style.css +438 -0
  55. package/dist/components/invitation-confirmation/style.js +0 -0
  56. package/dist/components/invitation-confirmation/types.d.ts +20 -0
  57. package/dist/components/invitation-confirmation.js +1 -0
  58. package/dist/components/login-method-selector/index.d.ts +2 -0
  59. package/dist/components/login-method-selector/login-method-selector.d.ts +2 -0
  60. package/dist/components/login-method-selector/style.css +438 -0
  61. package/dist/components/login-method-selector/style.js +0 -0
  62. package/dist/components/login-method-selector/types.d.ts +14 -0
  63. package/dist/components/login-method-selector.js +1 -0
  64. package/dist/components/password-reset-request-form/index.d.ts +3 -0
  65. package/dist/components/password-reset-request-form/password-reset-request-form.d.ts +2 -0
  66. package/dist/components/password-reset-request-form/style.css +438 -0
  67. package/dist/components/password-reset-request-form/style.js +0 -0
  68. package/dist/components/password-reset-request-form/types.d.ts +13 -0
  69. package/dist/components/password-reset-request-form.js +1 -0
  70. package/dist/components/password-setup-form/index.d.ts +3 -0
  71. package/dist/components/password-setup-form/password-setup-form.d.ts +2 -0
  72. package/dist/components/password-setup-form/style.css +438 -0
  73. package/dist/components/password-setup-form/style.js +0 -0
  74. package/dist/components/password-setup-form/types.d.ts +10 -0
  75. package/dist/components/password-setup-form.js +1 -0
  76. package/dist/components/scope-switcher/style.css +368 -37
  77. package/dist/components/style.css +13071 -7474
  78. package/dist/components/tui/style.css +271 -35
  79. package/dist/components/viking-bot/interaction/style.css +143 -22
  80. package/dist/components/viking-bot/style.css +951 -295
  81. package/dist/components/wiki-dashboard/index.d.ts +1 -1
  82. package/dist/components/wiki-dashboard/style.css +241 -14
  83. package/dist/components/wiki-dashboard/types.d.ts +12 -16
  84. package/dist/components/wiki-dashboard/wiki-action-button.d.ts +2 -9
  85. package/dist/components/wiki-dashboard/wiki-conflict-card.d.ts +3 -10
  86. package/dist/c~0.js +16 -8
  87. package/dist/d~0.js +28 -0
  88. package/dist/ep~0.js +493 -0
  89. package/dist/e~0.js +33 -328
  90. package/dist/fi~0.js +13 -28
  91. package/dist/fj~0.js +38 -69
  92. package/dist/fl~0.js +710 -0
  93. package/dist/f~0.js +61 -685
  94. package/dist/g~0.js +135 -0
  95. package/dist/icons/index.d.ts +2 -0
  96. package/dist/icons.js +1 -1
  97. package/dist/index.d.ts +12 -0
  98. package/dist/index.js +9 -3
  99. package/dist/k~0.js +44 -4
  100. package/dist/l5~0.js +3813 -0
  101. package/dist/lk~0.js +5 -2
  102. package/dist/l~0.js +49 -2369
  103. package/dist/modules/console/style.css +1485 -351
  104. package/dist/modules/file-browser/acl/acl-add-principal.d.ts +12 -0
  105. package/dist/modules/file-browser/acl/acl-candidate.d.ts +8 -0
  106. package/dist/modules/file-browser/acl/acl-client.d.ts +13 -0
  107. package/dist/modules/file-browser/acl/acl-confirmation.d.ts +6 -0
  108. package/dist/modules/file-browser/acl/acl-entry.d.ts +13 -0
  109. package/dist/modules/file-browser/acl/acl-labels.d.ts +47 -0
  110. package/dist/modules/file-browser/acl/acl-menu.d.ts +10 -0
  111. package/dist/modules/file-browser/acl/acl-modal.d.ts +17 -0
  112. package/dist/modules/file-browser/acl/acl-model.d.ts +17 -0
  113. package/dist/modules/file-browser/acl/acl-principal-tabs.d.ts +6 -0
  114. package/dist/modules/file-browser/acl/acl-tag.d.ts +7 -0
  115. package/dist/modules/file-browser/acl/locales/en-US.d.ts +44 -0
  116. package/dist/modules/file-browser/acl/locales/zh-CN.d.ts +44 -0
  117. package/dist/modules/file-browser/acl/use-acl-principals.d.ts +17 -0
  118. package/dist/modules/file-browser/acl/use-acl-report.d.ts +27 -0
  119. package/dist/modules/file-browser/acl-types.d.ts +86 -0
  120. package/dist/modules/file-browser/dashboard-model.d.ts +3 -0
  121. package/dist/modules/file-browser/file-browser-detail-icons.d.ts +0 -6
  122. package/dist/modules/file-browser/file-browser-detail.d.ts +5 -23
  123. package/dist/modules/file-browser/file-browser-labels.d.ts +1 -1
  124. package/dist/modules/file-browser/file-browser-search.d.ts +20 -0
  125. package/dist/modules/file-browser/file-browser-toolbar.d.ts +3 -10
  126. package/dist/modules/file-browser/file-browser-tree-pane.d.ts +2 -6
  127. package/dist/modules/file-browser/file-browser.d.ts +1 -1
  128. package/dist/modules/file-browser/fs-directories.d.ts +1 -0
  129. package/dist/modules/file-browser/fs-file-editing.d.ts +4 -0
  130. package/dist/modules/file-browser/fs-model.d.ts +3 -1
  131. package/dist/modules/file-browser/fs-preview-images.d.ts +3 -0
  132. package/dist/modules/file-browser/fs-read-file.d.ts +1 -1
  133. package/dist/modules/file-browser/index.d.ts +1 -0
  134. package/dist/modules/file-browser/locales/en-US.d.ts +5 -0
  135. package/dist/modules/file-browser/locales/zh-CN.d.ts +5 -0
  136. package/dist/modules/file-browser/style.css +2595 -703
  137. package/dist/modules/file-browser/types.d.ts +22 -20
  138. package/dist/modules/file-browser/use-file-browser-acl.d.ts +16 -0
  139. package/dist/modules/file-browser/use-file-browser.d.ts +5 -7
  140. package/dist/modules/file-browser/use-fs-tree.d.ts +1 -0
  141. package/dist/modules/file-browser/wiki-dashboard-pane.d.ts +2 -4
  142. package/dist/modules/file-browser.js +1 -1
  143. package/dist/modules/scope-cascade/style.css +537 -37
  144. package/dist/modules/style.css +12429 -8855
  145. package/dist/n~0.js +61 -37
  146. package/dist/p0~0.js +27 -0
  147. package/dist/p~0.js +34 -25
  148. package/dist/rt~0.js +107 -4
  149. package/dist/r~0.js +1 -1
  150. package/dist/shared/auth/agreements.d.ts +10 -0
  151. package/dist/shared/auth/fields.d.ts +15 -0
  152. package/dist/shared/auth/form-frame.d.ts +12 -0
  153. package/dist/shared/auth/locales/en-US.d.ts +24 -0
  154. package/dist/shared/auth/locales/zh-CN.d.ts +24 -0
  155. package/dist/shared/auth/types.d.ts +61 -0
  156. package/dist/shared/auth/use-auth-labels.d.ts +3 -0
  157. package/dist/shared/auth/use-form.d.ts +8 -0
  158. package/dist/shared/components/button/button.d.ts +20 -0
  159. package/dist/shared/components/input/input.d.ts +17 -0
  160. package/dist/shared/components/modal/locales/en-US.d.ts +4 -0
  161. package/dist/shared/components/modal/locales/zh-CN.d.ts +4 -0
  162. package/dist/shared/components/modal/modal.d.ts +2 -0
  163. package/dist/shared/components/modal/types.d.ts +18 -0
  164. package/dist/shared/components/overlay/lock-body-scroll.d.ts +1 -0
  165. package/dist/style.css +15477 -6258
  166. package/dist/s~0.js +16 -0
  167. package/dist/u~0.js +15 -6
  168. package/dist/viking-bot-composer~0.js +29 -11
  169. package/dist/viking-bot-interaction~0.js +2 -1
  170. package/package.json +34 -3
  171. package/dist/modules/file-browser/fs-selection.d.ts +0 -4
  172. package/dist/o~0.js +0 -106
@@ -1,6 +1,177 @@
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 {
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-auth, .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;
173
+ --ov-ui-auth-on-primary-default: #fff;
174
+ --ov-ui-auth-backdrop-default: #0006;
4
175
  --ov-ui-primary-default: #5252ff;
5
176
  --ov-ui-primary-hover-default: #7075ff;
6
177
  --ov-ui-primary-active-default: #3833d2;
@@ -57,7 +228,7 @@
57
228
  #bd9cff 100%);
58
229
  }
59
230
 
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 {
231
+ 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-auth, .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 {
61
232
  --ov-ui-primary-default: #5f5fff;
62
233
  --ov-ui-primary-hover-default: #7075ff;
63
234
  --ov-ui-primary-active-default: #4242ba;
@@ -87,6 +258,52 @@
87
258
  --ov-ui-tooltip-text-default: #f0f1f3;
88
259
  }
89
260
 
261
+ .ov-button, .ov-input, .ov-textarea {
262
+ --ov-ui-bg-white-default: var(--ov-ui-bg-1-default);
263
+ --ov-ui-bg-2-default: #fafbfd;
264
+ --ov-ui-bg-7-default: var(--ov-ui-border-1-default);
265
+ --ov-ui-bg-11-default: #e1e3ef;
266
+ --ov-ui-border-4-default: #acb0c5;
267
+ --ov-ui-neutral-4-default: #c9cdd4;
268
+ --ov-ui-primary-muted-default: #8e96ff;
269
+ --ov-ui-primary-strong-default: var(--ov-ui-primary-active-default);
270
+ --ov-ui-link-default: var(--ov-ui-primary-default);
271
+ --ov-ui-link-active-default: var(--ov-ui-primary-active-default);
272
+ --ov-ui-text-5-default: #c9c9d4;
273
+ --ov-ui-on-primary-disabled-default: var(--ov-ui-text-on-primary-default);
274
+ --ov-ui-input-focus-ring-default: color-mix(in srgb,
275
+ var(--ov-ui-color-primary, var(--ov-ui-primary-default)) 30%,
276
+ transparent);
277
+ --ov-ui-error-default: #e31b54;
278
+ --ov-ui-error-bg-default: #ffecec;
279
+ --ov-ui-error-border-default: #ffa3a0;
280
+ }
281
+
282
+ html.dark .ov-button, html.dark .ov-input, html.dark .ov-textarea {
283
+ --ov-ui-bg-white-default: #fff0;
284
+ --ov-ui-bg-2-default: #fcfdfe03;
285
+ --ov-ui-bg-4-default: #f6f8fa0f;
286
+ --ov-ui-bg-5-default: #f1f3f514;
287
+ --ov-ui-bg-7-default: #1a1b1e;
288
+ --ov-ui-bg-11-default: #1e2023;
289
+ --ov-ui-border-2-default: #dde2e926;
290
+ --ov-ui-border-3-default: #dde2e94d;
291
+ --ov-ui-border-4-default: #6d6d6d;
292
+ --ov-ui-neutral-4-default: #5f5f60;
293
+ --ov-ui-primary-disabled-default: #3f3a89;
294
+ --ov-ui-primary-muted-default: #4c48b4;
295
+ --ov-ui-primary-strong-default: var(--ov-ui-primary-hover-default);
296
+ --ov-ui-link-default: #787dff;
297
+ --ov-ui-link-active-default: #949cff;
298
+ --ov-ui-text-disabled-default: #42464e;
299
+ --ov-ui-text-5-default: #e1e3ef;
300
+ --ov-ui-on-primary-disabled-default: #ffffff4d;
301
+ --ov-ui-input-focus-ring-default: #4583ff4d;
302
+ --ov-ui-error-default: #ff706d;
303
+ --ov-ui-error-bg-default: #9f211c33;
304
+ --ov-ui-error-border-default: #ff706d4d;
305
+ }
306
+
90
307
  .dark .ov-viking-bot {
91
308
  --ov-ui-code-bg-default: var(--ov-ui-bg-3-default);
92
309
  }
@@ -275,7 +492,7 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
275
492
  opacity: .5;
276
493
  }
277
494
 
278
- .ov-file-preview__tab:focus-visible, .ov-file-preview__action:focus-visible, .ov-file-preview__button:focus-visible, .ov-file-preview__switch-item:focus-visible, .ov-file-preview__breadcrumb-link:focus-visible {
495
+ .ov-file-preview__tab:focus-visible, .ov-file-preview__breadcrumb-link:focus-visible {
279
496
  outline: 2px solid var(--ov-ui-file-preview-focus-ring);
280
497
  outline-offset: 1px;
281
498
  }
@@ -439,7 +656,7 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
439
656
  overflow-y: auto;
440
657
  }
441
658
 
442
- .ov-file-preview__breadcrumb-menu button {
659
+ .ov-file-preview__breadcrumb-menu button:not(.ov-button) {
443
660
  box-sizing: border-box;
444
661
  border-radius: calc(var(--ov-ui-radius, 6px) - 2px);
445
662
  max-width: 320px;
@@ -456,31 +673,13 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
456
673
  overflow: hidden;
457
674
  }
458
675
 
459
- .ov-file-preview__breadcrumb-menu button:hover:not(:disabled) {
676
+ .ov-file-preview__breadcrumb-menu button:not(.ov-button):hover:not(:disabled) {
460
677
  background: var(--ov-ui-color-bg-5, var(--ov-ui-bg-5-default, #f1f2f9));
461
678
  }
462
679
 
463
680
  .ov-file-preview__action {
464
681
  box-sizing: border-box;
465
- width: 28px;
466
- height: 28px;
467
- color: var(--ov-ui-file-preview-text-path);
468
- font: inherit;
469
- cursor: pointer;
470
- background: none;
471
- border: 1px solid #0000;
472
- border-radius: 6px;
473
682
  flex: none;
474
- justify-content: center;
475
- align-items: center;
476
- padding: 0;
477
- transition: background-color .16s, border-color .16s;
478
- display: inline-flex;
479
- }
480
-
481
- .ov-file-preview__action:hover:not(:disabled) {
482
- background: var(--ov-ui-file-preview-row-hover);
483
- color: var(--ov-ui-file-preview-text);
484
683
  }
485
684
 
486
685
  .ov-file-preview__action--outlined {
@@ -493,11 +692,6 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
493
692
  border-color: var(--ov-ui-file-preview-text-muted);
494
693
  }
495
694
 
496
- .ov-file-preview__action:disabled {
497
- cursor: not-allowed;
498
- opacity: .4;
499
- }
500
-
501
695
  .ov-file-preview__switch {
502
696
  box-sizing: border-box;
503
697
  background: var(--ov-ui-file-preview-row-hover);
@@ -513,60 +707,13 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
513
707
 
514
708
  .ov-file-preview__switch-item {
515
709
  box-sizing: border-box;
516
- min-width: 50px;
517
- height: 24px;
518
- color: var(--ov-ui-file-preview-text-muted);
519
- font: inherit;
520
710
  white-space: nowrap;
521
- cursor: pointer;
522
- background: none;
523
- border: 0;
524
- border-radius: 6px;
525
- justify-content: center;
526
- align-items: center;
711
+ min-width: 50px;
527
712
  margin: 0;
528
- padding: 0 12px;
529
- font-size: 13px;
530
- line-height: 22px;
531
- transition: background-color .16s, color .16s;
532
- display: inline-flex;
533
- }
534
-
535
- .ov-file-preview__switch-item:hover:not([data-active]):not(:disabled) {
536
- color: var(--ov-ui-file-preview-text);
537
- }
538
-
539
- .ov-file-preview__switch-item[data-active] {
540
- background: var(--ov-ui-file-preview-surface);
541
- box-shadow: 0 0 0 1px var(--ov-ui-file-preview-border);
542
- color: var(--ov-ui-file-preview-text);
543
- font-weight: 500;
544
713
  }
545
714
 
546
715
  .ov-file-preview__button {
547
- border: 1px solid var(--ov-ui-file-preview-border);
548
- border-radius: var(--ov-ui-radius, 6px);
549
- color: inherit;
550
- font: inherit;
551
- cursor: pointer;
552
- background: none;
553
716
  flex: none;
554
- padding: 2px 10px;
555
- }
556
-
557
- .ov-file-preview__button:hover:not(:disabled) {
558
- background: var(--ov-ui-file-preview-row-hover);
559
- }
560
-
561
- .ov-file-preview__button--primary {
562
- border-color: var(--ov-ui-file-preview-accent);
563
- background: var(--ov-ui-file-preview-accent);
564
- color: #fff;
565
- }
566
-
567
- .ov-file-preview__button:disabled {
568
- cursor: not-allowed;
569
- opacity: .5;
570
717
  }
571
718
 
572
719
  .ov-file-preview__body {
@@ -4269,6 +4416,7 @@ button.ark-agentic-file-viewer-diff__gutter {
4269
4416
  .ov-file-preview {
4270
4417
  background: var(--ov-ui-file-preview-surface);
4271
4418
  color: var(--ov-ui-file-preview-text);
4419
+ container-type: inline-size;
4272
4420
  }
4273
4421
 
4274
4422
  .ov-file-preview__header {
@@ -4412,5 +4560,116 @@ button.ark-agentic-file-viewer-diff__gutter {
4412
4560
  right: 8px;
4413
4561
  }
4414
4562
 
4563
+ .ov-file-preview__tab-row {
4564
+ padding-block-start: 8px;
4565
+ }
4566
+
4567
+ .ov-file-preview__header {
4568
+ box-sizing: border-box;
4569
+ min-height: 44px;
4570
+ }
4571
+
4572
+ .ov-file-preview__toolbar, .ov-file-preview__edit-toolbar {
4573
+ align-items: center;
4574
+ gap: 8px;
4575
+ display: flex;
4576
+ }
4577
+
4578
+ .ov-file-preview__toolbar {
4579
+ flex-wrap: wrap;
4580
+ justify-content: flex-end;
4581
+ }
4582
+
4583
+ .ov-file-preview__toolbar-divider {
4584
+ background: var(--ov-ui-color-border-1, var(--ov-ui-border-1-default));
4585
+ width: 1px;
4586
+ height: 10px;
4587
+ margin-inline: 8px;
4588
+ }
4589
+
4590
+ .ov-file-preview__toolbar-button.ov-button {
4591
+ border-color: var(--ov-ui-color-border-1, var(--ov-ui-border-1-default));
4592
+ background: var(--ov-ui-file-preview-row-hover);
4593
+ height: 28px;
4594
+ color: var(--ov-ui-file-preview-text);
4595
+ gap: 6px;
4596
+ }
4597
+
4598
+ .ov-file-preview__switch-item {
4599
+ height: 24px;
4600
+ color: var(--ov-ui-file-preview-text-muted);
4601
+ font: inherit;
4602
+ cursor: pointer;
4603
+ background: none;
4604
+ border: 0;
4605
+ border-radius: 6px;
4606
+ padding: 0 12px;
4607
+ font-size: 13px;
4608
+ }
4609
+
4610
+ .ov-file-preview__switch-item[aria-pressed="true"] {
4611
+ background: var(--ov-ui-file-preview-surface);
4612
+ color: var(--ov-ui-file-preview-text);
4613
+ box-shadow: 0 0 0 1px var(--ov-ui-file-preview-border);
4614
+ font-weight: 500;
4615
+ }
4616
+
4617
+ .ov-file-preview__switch-item:focus-visible {
4618
+ outline: 2px solid var(--ov-ui-file-preview-focus-ring);
4619
+ outline-offset: -2px;
4620
+ }
4621
+
4622
+ .ov-file-preview__edit-toolbar {
4623
+ border-bottom: 1px solid var(--ov-ui-file-preview-border);
4624
+ background: var(--ov-ui-color-bg-3, var(--ov-ui-bg-3-default));
4625
+ flex: none;
4626
+ justify-content: space-between;
4627
+ padding: 12px 14px;
4628
+ font-weight: 500;
4629
+ }
4630
+
4631
+ .ov-file-preview__sr-only {
4632
+ clip-path: inset(50%);
4633
+ white-space: nowrap;
4634
+ width: 1px;
4635
+ height: 1px;
4636
+ position: absolute;
4637
+ overflow: hidden;
4638
+ }
4639
+
4640
+ @container (width <= 480px) {
4641
+ .ov-file-preview__header {
4642
+ flex-wrap: wrap;
4643
+ }
4644
+
4645
+ .ov-file-preview__header-actions {
4646
+ max-width: 100%;
4647
+ margin-inline-start: auto;
4648
+ }
4649
+ }
4650
+
4651
+ .ov-file-preview .ark-agentic-file-viewer-code, .ov-file-preview__editor {
4652
+ background: var(--ov-ui-color-bg-4, var(--ov-ui-bg-4-default));
4653
+ }
4654
+
4655
+ .ov-file-preview__toolbar-button.ov-button {
4656
+ border-radius: 6px;
4657
+ }
4658
+
4659
+ .ov-file-preview__toolbar-button.ov-button:hover:not(:disabled) {
4660
+ border-color: var(--ov-ui-file-preview-text-muted);
4661
+ }
4662
+
4663
+ .ov-file-preview .ark-agentic-file-viewer-code__lines {
4664
+ box-sizing: border-box;
4665
+ width: 100%;
4666
+ }
4667
+
4668
+ .ov-file-preview .ark-agentic-file-viewer-code__content {
4669
+ white-space: pre-wrap;
4670
+ overflow-wrap: anywhere;
4671
+ flex: auto;
4672
+ }
4673
+
4415
4674
 
4416
4675
 
@@ -395,15 +395,12 @@ export interface FilePreviewEditing {
395
395
  /**
396
396
  * 交给宿主的动作上下文:组件持有的视图与编辑状态,以及改变它们的方法。
397
397
  *
398
- * 组件只渲染外壳与正文,不内置复制、下载、视图切换、编辑这些按钮;宿主在
399
- * `slots.actions` 里用这份上下文自己拼。状态仍由组件维护,宿主不必接管。
398
+ * 默认工具栏与宿主自定义的 `slots.actions` 共用此上下文。
400
399
  *
401
400
  * The action context handed to the host: the view and editing state the component
402
401
  * owns, plus the methods that change it.
403
402
  *
404
- * The component renders only the shell and the body — it ships no copy, download,
405
- * view-switch or edit buttons. A host composes them in `slots.actions` from this
406
- * context. The state stays with the component; the host does not take it over.
403
+ * The default toolbar and host overrides in `slots.actions` share this context.
407
404
  */
408
405
  export interface FilePreviewActions {
409
406
  /** 当前视图模式。The current view mode. */
@@ -449,15 +446,10 @@ export interface FilePreviewActions {
449
446
  * body is the host's, so there is no component-provided header to fill.
450
447
  */
451
448
  export interface FilePreviewHeaderSlots {
452
- /**
453
- * 标题行右侧的动作区。组件不内置任何按钮,复制、下载、视图切换、编辑都由
454
- * 宿主用上下文里的状态与方法自行渲染。
455
- *
456
- * The action area on the right of the header. The component ships no buttons of
457
- * its own: copy, download, view switch and editing are all rendered by the host
458
- * from the state and methods in the context.
459
- */
449
+ /** 替换默认工具栏。Replaces the default toolbar; use null to hide it. */
460
450
  actions?: ReactNode | ((actions: FilePreviewActions) => ReactNode);
451
+ /** 追加到默认工具栏的宿主操作。Host actions appended to the default toolbar. */
452
+ extraActions?: ReactNode;
461
453
  /**
462
454
  * 标题旁的额外内容,例如权限标记、状态徽标或版本号;不需要时不传。
463
455
  * Extra content next to the title, for example a permission tag, a status badge
@@ -527,15 +519,16 @@ export interface FilePreviewFileTabSlots extends FilePreviewHeaderSlots {
527
519
  export interface FilePreviewLabels {
528
520
  /** 展开折叠路径层级的无障碍名称。Accessible name for hidden path levels. */
529
521
  showHiddenPath?: string;
530
- /**
531
- * 复制路径按钮的文案。这是组件自己渲染的唯一按钮——其余动作按钮由宿主在
532
- * `slots.actions` 里自绘,文案也归宿主。
533
- *
534
- * Label of the copy-path button. It is the only button the component renders
535
- * itself; every other action button belongs to the host's `slots.actions`,
536
- * copy included.
537
- */
538
522
  copyPath?: string;
523
+ copyContent?: string;
524
+ copied?: string;
525
+ copyFailed?: string;
526
+ previewMode?: string;
527
+ sourceMode?: string;
528
+ viewSwitch?: string;
529
+ edit?: string;
530
+ editFile?: string;
531
+ save?: string;
539
532
  /** 编辑区文本框的无障碍名称。Accessible name of the editor textarea. */
540
533
  editor?: string;
541
534
  /** 读取失败后退出编辑态的按钮文案。Label of the button that leaves editing after a failed load. */
@@ -1,11 +1,11 @@
1
1
  import type { ResolvedLabels } from './file-tree-row-context.js';
2
2
  import type { FileTreeProps } from './types.js';
3
- type ToolbarProps = Pick<FileTreeProps, 'search' | 'refresh'> & {
4
- text: ResolvedLabels;
3
+ type ToolbarProps = Pick<FileTreeProps, 'search' | 'refresh' | 'loading' | 'className'> & {
4
+ text: Pick<ResolvedLabels, 'search' | 'refresh'>;
5
5
  refreshing: boolean;
6
6
  onSearch?: () => void;
7
7
  onRefresh?: () => void;
8
8
  };
9
9
  /** Optional host-driven search and refresh controls; no data fetching here. */
10
- export declare function FileTreeToolbar({ search, refresh, text, refreshing, onSearch, onRefresh, }: ToolbarProps): import("react").JSX.Element | null;
10
+ export declare function FileTreeToolbar({ search, refresh, loading, text, refreshing, onSearch, onRefresh, className, }: ToolbarProps): import("react").JSX.Element | null;
11
11
  export {};
@@ -1,4 +1,7 @@
1
1
  declare const messages: {
2
+ readOnly: string;
3
+ noAccess: string;
4
+ traverseOnly: string;
2
5
  search: string;
3
6
  refresh: string;
4
7
  empty: string;
@@ -1,4 +1,7 @@
1
1
  declare const messages: {
2
+ readOnly: string;
3
+ noAccess: string;
4
+ traverseOnly: string;
2
5
  search: string;
3
6
  refresh: string;
4
7
  empty: string;