@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
package/dist/6~0.js ADDED
@@ -0,0 +1,48 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
3
+ import { useAuthLabels, Field } from "./g~0.js";
4
+ import { validEmail, useForm, FormFrame } from "./5~0.js";
5
+ function PasswordResetRequestForm({ defaultEmail = '', sentMessage, retryAfter = 0, onSubmit, locale, labels: overrides, ...options }) {
6
+ const id = useId();
7
+ const labels = useAuthLabels(locale, overrides);
8
+ const form = useForm({
9
+ email: defaultEmail
10
+ }, ({ email })=>({
11
+ email: validEmail(email) ? void 0 : {
12
+ key: 'invalidEmail'
13
+ }
14
+ }));
15
+ const [sentEmail, message] = sentMessage ? [
16
+ sentMessage.email,
17
+ sentMessage.message
18
+ ] : [];
19
+ const sent = sentEmail === form.values.email.trim();
20
+ const remaining = Math.max(0, Math.ceil(retryAfter));
21
+ return /*#__PURE__*/ jsxs(FormFrame, {
22
+ ...options,
23
+ disabled: options.disabled || remaining > 0,
24
+ labels: labels,
25
+ submitLabel: `${sent ? labels.resend : labels.send}${remaining > 0 ? ` (${remaining}s)` : ''}`,
26
+ validate: form.validate,
27
+ onSubmit: ()=>onSubmit?.({
28
+ email: form.values.email.trim()
29
+ }),
30
+ children: [
31
+ /*#__PURE__*/ jsx(Field, {
32
+ id: `${id}-email`,
33
+ label: labels.email,
34
+ labels: labels,
35
+ value: form.values.email,
36
+ type: "email",
37
+ autoComplete: "email",
38
+ error: form.errors.email,
39
+ onChange: (value)=>form.update('email', value)
40
+ }),
41
+ sent && message && /*#__PURE__*/ jsx("p", {
42
+ role: "status",
43
+ children: message
44
+ })
45
+ ]
46
+ });
47
+ }
48
+ export { PasswordResetRequestForm };
package/dist/ae~0.js CHANGED
@@ -488,4 +488,11 @@ function useOvClient() {
488
488
  function useOvSignal() {
489
489
  return useContext(OvClientContext)?.base.signal;
490
490
  }
491
- export { OpenVikingProvider, OvClientError, createOvClient, isOvClientError, useOvClient, useOvSignal };
491
+ function useOvIdentity(options) {
492
+ const base = useContext(OvClientContext)?.base.identity;
493
+ return {
494
+ accountId: options?.accountId ?? base?.accountId,
495
+ userId: options?.userId ?? base?.userId
496
+ };
497
+ }
498
+ export { OpenVikingProvider, OvClientError, createOvClient, isOvClientError, useOvClient, useOvIdentity, useOvSignal };
@@ -9,6 +9,7 @@ import { DocumentIcon } from "./k~0.js";
9
9
  import { VikingBotIcon } from "./lg~0.js";
10
10
  import { groupActivityParts, mergeToolResults, resolveVikingBotLabels, toRenderItems } from "./c~0.js";
11
11
  import { groupByActivity, messageText, groupMessages } from "./h~0.js";
12
+ import { button_Button } from "./e~0.js";
12
13
  const PREFIX = '#viking-uri=';
13
14
  const RESOURCE = /viking:\/\/[^\s<>"'`]+/gi;
14
15
  const PROSE_RESOURCE = /viking:\/\/[^\s<>"'`,。;!?)\]]+/gi;
@@ -532,8 +533,10 @@ function MessageFooter({ message, showTime, labels, locale, onCopy }) {
532
533
  dateTime: message.createdAt,
533
534
  children: time
534
535
  }) : null,
535
- canCopy ? onCopy ? /*#__PURE__*/ jsx("button", {
536
- type: "button",
536
+ canCopy ? onCopy ? /*#__PURE__*/ jsx(button_Button, {
537
+ size: "mini",
538
+ type: "text",
539
+ htmlType: "button",
537
540
  className: "ov-viking-bot__copy",
538
541
  onClick: ()=>onCopy(text),
539
542
  children: labels.copy
@@ -560,8 +563,10 @@ function MessageActions({ message, onMessageAction }) {
560
563
  if (0 === actions.length) return null;
561
564
  return /*#__PURE__*/ jsx("div", {
562
565
  className: "ov-viking-bot__message-actions",
563
- children: actions.map(({ messageId, action })=>/*#__PURE__*/ jsx("button", {
564
- type: "button",
566
+ children: actions.map(({ messageId, action })=>/*#__PURE__*/ jsx(button_Button, {
567
+ size: "small",
568
+ type: "default",
569
+ htmlType: "button",
565
570
  className: "ov-viking-bot__message-action",
566
571
  disabled: Boolean(action.disabledReason) || 'pending' === action.status || 'success' === action.status,
567
572
  title: action.disabledReason,
package/dist/a~0.js CHANGED
@@ -5,8 +5,8 @@ import { resolveLocale, mergeLabels } from "./nx~0.js";
5
5
  import { useOvSignal, useOvClient, createOvClient, isOvClientError } from "./ae~0.js";
6
6
  import { useLocale, LocaleProvider } from "./28~0.js";
7
7
  import { new_sessionreact, historyreact } from "./lg~0.js";
8
- import { useOverlayPosition } from "./o~0.js";
9
- import { Tooltip } from "./rt~0.js";
8
+ import { Tooltip, useOverlayPosition } from "./rt~0.js";
9
+ import { button_Button } from "./e~0.js";
10
10
  import { VikingBotSessionActions, VikingBot } from "./c~0.js";
11
11
  import { Tui } from "./3c~0.js";
12
12
  const command_specs_uri = {
@@ -1066,9 +1066,12 @@ function ConsoleHistory({ records, isExecuting, locale, labels, onRecall }) {
1066
1066
  /*#__PURE__*/ jsx(Tooltip, {
1067
1067
  content: labels.history,
1068
1068
  className: "ov-console__action-tooltip",
1069
- children: /*#__PURE__*/ jsx("button", {
1069
+ children: /*#__PURE__*/ jsx(button_Button, {
1070
+ size: "small",
1071
+ type: "text",
1072
+ iconOnly: true,
1070
1073
  ...invoker,
1071
- type: "button",
1074
+ htmlType: "button",
1072
1075
  className: "ov-console__action",
1073
1076
  "aria-label": labels.history,
1074
1077
  "aria-haspopup": "dialog",
@@ -1181,9 +1184,12 @@ function ConsoleToolbar({ mode, panelId, locale, labels, records, isExecuting, o
1181
1184
  /*#__PURE__*/ jsx(Tooltip, {
1182
1185
  content: labels.clear,
1183
1186
  className: "ov-console__action-tooltip",
1184
- children: /*#__PURE__*/ jsx("button", {
1187
+ children: /*#__PURE__*/ jsx(button_Button, {
1188
+ size: "small",
1189
+ type: "text",
1190
+ iconOnly: true,
1185
1191
  className: "ov-console__action",
1186
- type: "button",
1192
+ htmlType: "button",
1187
1193
  "aria-label": labels.clear,
1188
1194
  onClick: ()=>{
1189
1195
  setSessionVersion((version)=>version + 1);
package/dist/c7r~0.js ADDED
@@ -0,0 +1,50 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ const input_Input = /*#__PURE__*/ forwardRef(function({ size = 'default', prefix, suffix, className, style, disabled, ...rest }, ref) {
4
+ return /*#__PURE__*/ jsxs("span", {
5
+ role: "presentation",
6
+ className: [
7
+ 'ov-input',
8
+ `ov-input--${size}`,
9
+ disabled && 'ov-input--disabled',
10
+ className
11
+ ].filter(Boolean).join(' '),
12
+ style: style,
13
+ onMouseDown: (event)=>{
14
+ if (event.target !== event.currentTarget.querySelector('input')) event.preventDefault();
15
+ },
16
+ onClick: (event)=>{
17
+ const input = event.currentTarget.querySelector('input');
18
+ if (!disabled && !event.defaultPrevented && event.target !== input) input?.focus();
19
+ },
20
+ children: [
21
+ null != prefix ? /*#__PURE__*/ jsx("span", {
22
+ className: "ov-input__affix",
23
+ "aria-hidden": "true",
24
+ children: prefix
25
+ }) : null,
26
+ /*#__PURE__*/ jsx("input", {
27
+ ...rest,
28
+ ref: ref,
29
+ disabled: disabled,
30
+ className: "ov-input__element"
31
+ }),
32
+ null != suffix ? /*#__PURE__*/ jsx("span", {
33
+ className: "ov-input__affix",
34
+ "aria-hidden": "true",
35
+ children: suffix
36
+ }) : null
37
+ ]
38
+ });
39
+ });
40
+ const input_TextArea = /*#__PURE__*/ forwardRef(function({ className, ...rest }, ref) {
41
+ return /*#__PURE__*/ jsx("textarea", {
42
+ ...rest,
43
+ ref: ref,
44
+ className: [
45
+ 'ov-textarea',
46
+ className
47
+ ].filter(Boolean).join(' ')
48
+ });
49
+ });
50
+ export { input_Input, input_TextArea };
package/dist/ck~0.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const OV_PATHS = {
2
+ acl: '/api/v1/acl',
2
3
  fsLs: '/api/v1/fs/ls',
3
4
  fsAttrs: '/api/v1/fs/attrs',
4
5
  compileConfigs: '/api/v1/compile/configs',
@@ -21,6 +22,8 @@ const OV_PATHS = {
21
22
  botChatStream: '/bot/v1/chat/stream'
22
23
  };
23
24
  const OV_PATH_BUILDERS = {
25
+ accountUsers: (accountId)=>`/api/v1/admin/accounts/${encodeURIComponent(accountId)}/users`,
26
+ accountGroups: (accountId)=>`/api/v1/admin/accounts/${encodeURIComponent(accountId)}/groups`,
24
27
  session: (sessionId)=>`${OV_PATHS.sessions}/${encodeURIComponent(sessionId)}`,
25
28
  sessionMessages: (sessionId)=>`${OV_PATH_BUILDERS.session(sessionId)}/messages`
26
29
  };
@@ -16,6 +16,8 @@
16
16
  * `verbatimModuleSyntax` cannot use.
17
17
  */
18
18
  export declare const OV_PATHS: {
19
+ /** 资源访问控制。Resource access control. */
20
+ readonly acl: '/api/v1/acl';
19
21
  /** 列出目录内容。List directory contents. */
20
22
  readonly fsLs: '/api/v1/fs/ls';
21
23
  readonly fsAttrs: '/api/v1/fs/attrs';
@@ -61,6 +63,10 @@ export type OvPath = (typeof OV_PATHS)[keyof typeof OV_PATHS];
61
63
  * containing `/` is not read as a path separator.
62
64
  */
63
65
  export declare const OV_PATH_BUILDERS: {
66
+ /** 账号用户目录(可关闭凭证返回)。Account user directory. */
67
+ readonly accountUsers: (accountId: string) => string;
68
+ /** 账号用户组目录。Account group directory. */
69
+ readonly accountGroups: (accountId: string) => string;
64
70
  /** 单个会话。One session. */
65
71
  readonly session: (sessionId: string) => string;
66
72
  /** 会话的消息。Messages of one session. */
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { Locale } from '../shared/locale.js';
3
- import type { OvClient, OvClientOptions } from './types.js';
3
+ import type { OvClient, OvClientOptions, OvRequestOptions } from './types.js';
4
4
  /**
5
5
  * {@link OpenVikingProvider} 的属性。请求字段与 {@link OvClientOptions} 同形,另可设置界面语言:
6
6
  * 服务地址、身份与作用域、Cookie 策略,都按字段传值。
@@ -56,3 +56,8 @@ export declare function OpenVikingProvider({ baseURL, apiKey, accountId, userId,
56
56
  export declare function useOvClient(): OvClient | null;
57
57
  /** Internal: modules compose their request lifetime with the inherited signal. */
58
58
  export declare function useOvSignal(): AbortSignal | undefined;
59
+ /** Internal identity inheritance for account-scoped principal directories. */
60
+ export declare function useOvIdentity(options?: OvRequestOptions): {
61
+ accountId: import("./types.js").OvIdentityValue | undefined;
62
+ userId: import("./types.js").OvIdentityValue | undefined;
63
+ };
@@ -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
  }
@@ -165,7 +382,7 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
165
382
  display: flex;
166
383
  }
167
384
 
168
- .ov-agent-connect__code-actions button {
385
+ .ov-agent-connect__code-actions button:not(.ov-button) {
169
386
  width: 24px;
170
387
  height: 24px;
171
388
  color: var(--ov-ui-agent-connect-secondary);
@@ -179,11 +396,11 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
179
396
  display: inline-flex;
180
397
  }
181
398
 
182
- .ov-agent-connect__code-actions button:hover {
399
+ .ov-agent-connect__code-actions button:not(.ov-button):hover {
183
400
  color: var(--ov-ui-agent-connect-primary);
184
401
  }
185
402
 
186
- .ov-agent-connect__code-actions button:disabled {
403
+ .ov-agent-connect__code-actions button:not(.ov-button):disabled {
187
404
  opacity: .6;
188
405
  cursor: wait;
189
406
  }
@@ -279,12 +496,12 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
279
496
  box-sizing: border-box;
280
497
  }
281
498
 
282
- .ov-agent-connect :where(button) {
499
+ .ov-agent-connect :where(button:not(.ov-button)) {
283
500
  font: inherit;
284
501
  cursor: pointer;
285
502
  }
286
503
 
287
- .ov-agent-connect button:focus-visible, .ov-agent-connect a:focus-visible {
504
+ .ov-agent-connect button:not(.ov-button):focus-visible, .ov-agent-connect a:focus-visible {
288
505
  outline: 2px solid var(--ov-ui-color-focus, var(--ov-ui-focus-default));
289
506
  outline-offset: 2px;
290
507
  }
@@ -475,40 +692,12 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
475
692
  line-height: 22px;
476
693
  }
477
694
 
478
- .ov-agent-connect__copy {
479
- background: var(--ov-ui-agent-connect-primary);
480
- height: 34px;
481
- color: var(--ov-ui-color-on-primary, var(--ov-ui-on-primary-default));
482
- border: 0;
483
- border-radius: 8px;
484
- justify-content: center;
485
- align-items: center;
486
- gap: 6px;
487
- padding: 5px 16px;
488
- font-size: 13px;
489
- line-height: 22px;
490
- display: inline-flex;
491
- }
492
-
493
695
  .ov-agent-connect__copy svg {
494
696
  flex: 0 0 16px;
495
697
  width: 16px;
496
698
  height: 16px;
497
699
  }
498
700
 
499
- .ov-agent-connect__copy:hover {
500
- background: var(--ov-ui-color-primary-hover, var(--ov-ui-primary-hover-default));
501
- }
502
-
503
- .ov-agent-connect__copy:active {
504
- background: var(--ov-ui-color-primary-active, var(--ov-ui-primary-active-default));
505
- }
506
-
507
- .ov-agent-connect__copy:disabled {
508
- opacity: .6;
509
- cursor: wait;
510
- }
511
-
512
701
  .ov-agent-connect__body {
513
702
  box-shadow: inset 0 0 0 1px var(--ov-ui-agent-connect-border);
514
703
  background: var(--ov-ui-agent-connect-card);
@@ -0,0 +1,2 @@
1
+ import type { ApiKeyLoginFormProps } from './types.js';
2
+ export declare function ApiKeyLoginForm({ alternateLogin, onSubmit, locale, labels: overrides, ...options }: ApiKeyLoginFormProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { ApiKeyLoginForm } from './api-key-login-form.js';
2
+ export type { ApiKeyLoginFormProps } from './types.js';
3
+ export type { AuthAction, AuthAgreements, AuthLabels, } from '../../shared/auth/types.js';