@openviking/react 0.1.6 → 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 (94) hide show
  1. package/README.md +2 -0
  2. package/dist/2~0.js +6 -5
  3. package/dist/3c~0.js +10 -4
  4. package/dist/3~0.js +18 -8
  5. package/dist/ae~0.js +8 -1
  6. package/dist/ark-message-list-view~0.js +9 -4
  7. package/dist/a~0.js +12 -6
  8. package/dist/c7r~0.js +50 -0
  9. package/dist/ck~0.js +3 -0
  10. package/dist/client/paths.d.ts +6 -0
  11. package/dist/client/provider.d.ts +6 -1
  12. package/dist/components/agent-connect/style.css +222 -35
  13. package/dist/components/directory-tour/style.css +221 -21
  14. package/dist/components/directory-tour.js +1 -1
  15. package/dist/components/experience-dashboard/style.css +227 -12
  16. package/dist/components/experience-dashboard.js +1 -1
  17. package/dist/components/file-browser-entries/style.css +325 -80
  18. package/dist/components/file-preview/style.css +221 -76
  19. package/dist/components/file-tree/file-tree-toolbar.d.ts +3 -3
  20. package/dist/components/file-tree/locales/en-US.d.ts +3 -0
  21. package/dist/components/file-tree/locales/zh-CN.d.ts +3 -0
  22. package/dist/components/file-tree/style.css +311 -86
  23. package/dist/components/file-tree/types.d.ts +13 -4
  24. package/dist/components/scope-switcher/style.css +366 -37
  25. package/dist/components/scope-switcher.js +1 -1
  26. package/dist/components/style.css +3329 -640
  27. package/dist/components/tui/style.css +267 -35
  28. package/dist/components/viking-bot/interaction/style.css +143 -22
  29. package/dist/components/viking-bot/style.css +945 -295
  30. package/dist/components/wiki-dashboard/style.css +227 -12
  31. package/dist/c~0.js +16 -8
  32. package/dist/ep~0.js +345 -0
  33. package/dist/e~0.js +33 -328
  34. package/dist/fj~0.js +8 -4
  35. package/dist/fl~0.js +709 -0
  36. package/dist/f~0.js +302 -663
  37. package/dist/index.js +3 -3
  38. package/dist/lk~0.js +6 -3
  39. package/dist/l~0.js +1874 -437
  40. package/dist/modules/console/style.css +1471 -351
  41. package/dist/modules/file-browser/acl/acl-add-principal.d.ts +12 -0
  42. package/dist/modules/file-browser/acl/acl-candidate.d.ts +8 -0
  43. package/dist/modules/file-browser/acl/acl-client.d.ts +13 -0
  44. package/dist/modules/file-browser/acl/acl-confirmation.d.ts +6 -0
  45. package/dist/modules/file-browser/acl/acl-entry.d.ts +13 -0
  46. package/dist/modules/file-browser/acl/acl-labels.d.ts +47 -0
  47. package/dist/modules/file-browser/acl/acl-menu.d.ts +10 -0
  48. package/dist/modules/file-browser/acl/acl-modal.d.ts +17 -0
  49. package/dist/modules/file-browser/acl/acl-model.d.ts +17 -0
  50. package/dist/modules/file-browser/acl/acl-principal-tabs.d.ts +6 -0
  51. package/dist/modules/file-browser/acl/acl-tag.d.ts +7 -0
  52. package/dist/modules/file-browser/acl/locales/en-US.d.ts +44 -0
  53. package/dist/modules/file-browser/acl/locales/zh-CN.d.ts +44 -0
  54. package/dist/modules/file-browser/acl/use-acl-principals.d.ts +17 -0
  55. package/dist/modules/file-browser/acl/use-acl-report.d.ts +27 -0
  56. package/dist/modules/file-browser/acl-types.d.ts +86 -0
  57. package/dist/modules/file-browser/dashboard-model.d.ts +3 -0
  58. package/dist/modules/file-browser/file-browser-detail.d.ts +4 -1
  59. package/dist/modules/file-browser/file-browser-labels.d.ts +1 -1
  60. package/dist/modules/file-browser/file-browser-search.d.ts +20 -0
  61. package/dist/modules/file-browser/file-browser-toolbar.d.ts +3 -10
  62. package/dist/modules/file-browser/file-browser-tree-pane.d.ts +2 -6
  63. package/dist/modules/file-browser/file-browser.d.ts +1 -1
  64. package/dist/modules/file-browser/fs-directories.d.ts +1 -0
  65. package/dist/modules/file-browser/fs-model.d.ts +3 -1
  66. package/dist/modules/file-browser/index.d.ts +1 -0
  67. package/dist/modules/file-browser/locales/en-US.d.ts +5 -0
  68. package/dist/modules/file-browser/locales/zh-CN.d.ts +5 -0
  69. package/dist/modules/file-browser/style.css +2409 -603
  70. package/dist/modules/file-browser/types.d.ts +20 -20
  71. package/dist/modules/file-browser/use-file-browser-acl.d.ts +15 -0
  72. package/dist/modules/file-browser/use-file-browser.d.ts +5 -7
  73. package/dist/modules/file-browser/use-fs-tree.d.ts +1 -0
  74. package/dist/modules/scope-cascade/style.css +535 -37
  75. package/dist/modules/style.css +12227 -8757
  76. package/dist/n~0.js +60 -36
  77. package/dist/rt~0.js +107 -4
  78. package/dist/r~0.js +1 -1
  79. package/dist/shared/components/button/button.d.ts +20 -0
  80. package/dist/shared/components/input/input.d.ts +17 -0
  81. package/dist/shared/components/modal/locales/en-US.d.ts +4 -0
  82. package/dist/shared/components/modal/locales/zh-CN.d.ts +4 -0
  83. package/dist/shared/components/modal/modal.d.ts +2 -0
  84. package/dist/shared/components/modal/types.d.ts +18 -0
  85. package/dist/shared/components/overlay/lock-body-scroll.d.ts +1 -0
  86. package/dist/style.css +7776 -1571
  87. package/dist/s~0.js +16 -0
  88. package/dist/u~0.js +15 -6
  89. package/dist/viking-bot-composer~0.js +29 -11
  90. package/dist/viking-bot-interaction~0.js +2 -1
  91. package/package.json +3 -2
  92. package/dist/fi~0.js +0 -354
  93. package/dist/modules/file-browser/fs-selection.d.ts +0 -4
  94. package/dist/o~0.js +0 -106
package/README.md CHANGED
@@ -98,3 +98,5 @@ Built-in translations live alongside each component or module in `locales/en-US.
98
98
  Dynamic messages use typed formatter functions; dates and numbers use `Intl`. `npm test` checks matching keys, string placeholders and formatter arity across languages, while type checking validates parameter types. Undefined `labels` entries inherit the selected language; empty strings remain explicit overrides.
99
99
 
100
100
  Set `locale` on `OpenVikingProvider` for a subtree. Optional module and component Props override the nearest scope, then fall back to `en-US`. Standalone Hooks also inherit the Provider. The private `src/shared/locale-context.tsx` is shared across public entries and remains separate from request-client configuration, so language changes preserve requests and state.
101
+
102
+ The internal Input, Button, Modal and Drawer adapt Arco Design logic (MIT); its notice ships in `LICENSE.arco-design`. Input and Button visual rules are adapted from the console's `@arco-design/theme-ve-o-aml-design@0.0.36` (MIT), rather than Arco's default skin. They have no public component entry.
package/dist/2~0.js CHANGED
@@ -8,6 +8,7 @@ import { resolveLocale } from "./nx~0.js";
8
8
  import { removereact } from "./4~0.js";
9
9
  import { usePortalTheme } from "./9~0.js";
10
10
  import { useLocale } from "./28~0.js";
11
+ import { button_Button } from "./e~0.js";
11
12
  import { AgentConnect } from "./u~0.js";
12
13
  import * as __rspack_external_react from "react";
13
14
  __webpack_require__.add({
@@ -2282,8 +2283,8 @@ function FileBrowserEntries({ locale: localeProp, agentConnect, onConnectAgent,
2282
2283
  const [drawerOpen, setDrawerOpen] = useState(false);
2283
2284
  const text = resolveFileBrowserEntriesLabels(locale, labels);
2284
2285
  const showConnect = Boolean(agentConnect || onConnectAgent);
2285
- const importButton = /*#__PURE__*/ jsxs("button", {
2286
- type: "button",
2286
+ const importButton = /*#__PURE__*/ jsxs(button_Button, {
2287
+ htmlType: "button",
2287
2288
  className: "ov-file-browser-entries__entry",
2288
2289
  onClick: onImportResources,
2289
2290
  children: [
@@ -2308,9 +2309,9 @@ function FileBrowserEntries({ locale: localeProp, agentConnect, onConnectAgent,
2308
2309
  className
2309
2310
  ].filter(Boolean).join(' '),
2310
2311
  children: [
2311
- showConnect ? /*#__PURE__*/ jsxs("button", {
2312
+ showConnect ? /*#__PURE__*/ jsxs(button_Button, {
2312
2313
  ref: triggerRef,
2313
- type: "button",
2314
+ htmlType: "button",
2314
2315
  className: "ov-file-browser-entries__entry",
2315
2316
  "aria-haspopup": agentConnect ? 'dialog' : void 0,
2316
2317
  "aria-controls": agentConnect ? drawerId : void 0,
@@ -2360,4 +2361,4 @@ function FileBrowserEntries({ locale: localeProp, agentConnect, onConnectAgent,
2360
2361
  ]
2361
2362
  });
2362
2363
  }
2363
- export { FileBrowserEntries };
2364
+ export { FileBrowserEntries, es2015, lockBodyScroll };
package/dist/3c~0.js CHANGED
@@ -6,6 +6,7 @@ import { ArrowRightIcon } from "./k~0.js";
6
6
  import { resolveLocale } from "./nx~0.js";
7
7
  import { checkreact } from "./0~0.js";
8
8
  import { Tooltip } from "./rt~0.js";
9
+ import { button_Button } from "./e~0.js";
9
10
  import { useLocale } from "./28~0.js";
10
11
  function getTuiCommandInputText(command) {
11
12
  return command.inputText?.trim() || command.name;
@@ -1170,8 +1171,11 @@ function TuiCopyButton({ text, label, copiedLabel, onCopy, className }) {
1170
1171
  };
1171
1172
  return /*#__PURE__*/ jsx(Tooltip, {
1172
1173
  content: copied ? copiedLabel : label,
1173
- children: /*#__PURE__*/ jsx("button", {
1174
- type: "button",
1174
+ children: /*#__PURE__*/ jsx(button_Button, {
1175
+ size: "mini",
1176
+ type: "text",
1177
+ iconOnly: true,
1178
+ htmlType: "button",
1175
1179
  className: [
1176
1180
  'ov-tui__copy',
1177
1181
  className
@@ -1537,8 +1541,10 @@ function TuiResourceTree({ content, onOpenUri, loadMoreLabel, noResultLabel, res
1537
1541
  })
1538
1542
  }, item.id))
1539
1543
  }),
1540
- hiddenCount > 0 ? /*#__PURE__*/ jsxs("button", {
1541
- type: "button",
1544
+ hiddenCount > 0 ? /*#__PURE__*/ jsxs(button_Button, {
1545
+ size: "small",
1546
+ type: "default",
1547
+ htmlType: "button",
1542
1548
  className: "ov-tui__load-more",
1543
1549
  onClick: ()=>setVisibleCount((count)=>count + PAGE_SIZE),
1544
1550
  children: [
package/dist/3~0.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Fragment as external_react_Fragment, Suspense, forwardRef, lazy, useCallback, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
3
+ import { button_Button } from "./e~0.js";
3
4
  import { Tooltip } from "./rt~0.js";
4
5
  import { resolveLocale, mergeLabels } from "./nx~0.js";
5
6
  import { useLocale } from "./28~0.js";
@@ -37,8 +38,10 @@ function FilePreviewEditor({ draft, text, loading, failed, saveFailed, saving, o
37
38
  className: "ov-file-preview__state-title",
38
39
  children: text.loadFailed
39
40
  }),
40
- /*#__PURE__*/ jsx("button", {
41
- type: "button",
41
+ /*#__PURE__*/ jsx(button_Button, {
42
+ size: "small",
43
+ type: "default",
44
+ htmlType: "button",
42
45
  className: "ov-file-preview__button",
43
46
  onClick: onCancel,
44
47
  children: text.leaveEditing
@@ -140,8 +143,10 @@ function LoadFailedState({ text, description, onRetry }) {
140
143
  return /*#__PURE__*/ jsx(StatePanel, {
141
144
  title: text.loadFailed,
142
145
  description: description,
143
- action: onRetry ? /*#__PURE__*/ jsx("button", {
144
- type: "button",
146
+ action: onRetry ? /*#__PURE__*/ jsx(button_Button, {
147
+ size: "small",
148
+ type: "default",
149
+ htmlType: "button",
145
150
  className: "ov-file-preview__button",
146
151
  onClick: onRetry,
147
152
  children: text.retry
@@ -151,8 +156,10 @@ function LoadFailedState({ text, description, onRetry }) {
151
156
  function UnsupportedState({ text, onDownload }) {
152
157
  return /*#__PURE__*/ jsx(StatePanel, {
153
158
  title: text.unsupported,
154
- action: onDownload ? /*#__PURE__*/ jsx("button", {
155
- type: "button",
159
+ action: onDownload ? /*#__PURE__*/ jsx(button_Button, {
160
+ size: "small",
161
+ type: "default",
162
+ htmlType: "button",
156
163
  className: "ov-file-preview__button",
157
164
  onClick: onDownload,
158
165
  children: text.download
@@ -451,8 +458,11 @@ function FilePreviewBreadcrumb({ hiddenPathLabel, segments, title, canOpen, disa
451
458
  function FilePreviewCopyPath({ label, disabled, onClick }) {
452
459
  return /*#__PURE__*/ jsx(Tooltip, {
453
460
  content: label,
454
- children: /*#__PURE__*/ jsx("button", {
455
- type: "button",
461
+ children: /*#__PURE__*/ jsx(button_Button, {
462
+ size: "small",
463
+ type: "text",
464
+ iconOnly: true,
465
+ htmlType: "button",
456
466
  className: "ov-file-preview__action",
457
467
  "aria-label": label,
458
468
  disabled: disabled,
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,4 +1,173 @@
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-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;
@@ -57,7 +226,7 @@
57
226
  #bd9cff 100%);
58
227
  }
59
228
 
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 {
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 {
61
230
  --ov-ui-primary-default: #5f5fff;
62
231
  --ov-ui-primary-hover-default: #7075ff;
63
232
  --ov-ui-primary-active-default: #4242ba;
@@ -87,6 +256,52 @@
87
256
  --ov-ui-tooltip-text-default: #f0f1f3;
88
257
  }
89
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
+
90
305
  .dark .ov-viking-bot {
91
306
  --ov-ui-code-bg-default: var(--ov-ui-bg-3-default);
92
307
  }
@@ -165,7 +380,7 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
165
380
  display: flex;
166
381
  }
167
382
 
168
- .ov-agent-connect__code-actions button {
383
+ .ov-agent-connect__code-actions button:not(.ov-button) {
169
384
  width: 24px;
170
385
  height: 24px;
171
386
  color: var(--ov-ui-agent-connect-secondary);
@@ -179,11 +394,11 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
179
394
  display: inline-flex;
180
395
  }
181
396
 
182
- .ov-agent-connect__code-actions button:hover {
397
+ .ov-agent-connect__code-actions button:not(.ov-button):hover {
183
398
  color: var(--ov-ui-agent-connect-primary);
184
399
  }
185
400
 
186
- .ov-agent-connect__code-actions button:disabled {
401
+ .ov-agent-connect__code-actions button:not(.ov-button):disabled {
187
402
  opacity: .6;
188
403
  cursor: wait;
189
404
  }
@@ -279,12 +494,12 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
279
494
  box-sizing: border-box;
280
495
  }
281
496
 
282
- .ov-agent-connect :where(button) {
497
+ .ov-agent-connect :where(button:not(.ov-button)) {
283
498
  font: inherit;
284
499
  cursor: pointer;
285
500
  }
286
501
 
287
- .ov-agent-connect button:focus-visible, .ov-agent-connect a:focus-visible {
502
+ .ov-agent-connect button:not(.ov-button):focus-visible, .ov-agent-connect a:focus-visible {
288
503
  outline: 2px solid var(--ov-ui-color-focus, var(--ov-ui-focus-default));
289
504
  outline-offset: 2px;
290
505
  }
@@ -475,40 +690,12 @@ html.dark .ov-wiki-dashboard, html.dark .ov-experience-dashboard, html.dark .ov-
475
690
  line-height: 22px;
476
691
  }
477
692
 
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
693
  .ov-agent-connect__copy svg {
494
694
  flex: 0 0 16px;
495
695
  width: 16px;
496
696
  height: 16px;
497
697
  }
498
698
 
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
699
  .ov-agent-connect__body {
513
700
  box-shadow: inset 0 0 0 1px var(--ov-ui-agent-connect-border);
514
701
  background: var(--ov-ui-agent-connect-card);