@openviking/react 0.1.7 → 0.1.8-beta.11.1.gc6def608a25e

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 (127) hide show
  1. package/README.md +11 -1
  2. package/dist/1~0.js +57 -0
  3. package/dist/3~0.js +171 -5
  4. package/dist/5~0.js +181 -0
  5. package/dist/6~0.js +48 -0
  6. package/dist/ark-message-list-view~0.js +50 -8
  7. package/dist/components/agent-connect/style.css +4 -2
  8. package/dist/components/api-key-login-form/api-key-login-form.d.ts +2 -0
  9. package/dist/components/api-key-login-form/index.d.ts +3 -0
  10. package/dist/components/api-key-login-form/style.css +438 -0
  11. package/dist/components/api-key-login-form/style.js +0 -0
  12. package/dist/components/api-key-login-form/types.d.ts +7 -0
  13. package/dist/components/api-key-login-form.js +1 -0
  14. package/dist/components/directory-tour/directory-tour-intro.d.ts +3 -0
  15. package/dist/components/directory-tour/index.d.ts +2 -1
  16. package/dist/components/directory-tour/style.css +154 -26
  17. package/dist/components/directory-tour/tour-card.d.ts +14 -0
  18. package/dist/components/directory-tour/types.d.ts +24 -1
  19. package/dist/components/directory-tour/use-tour-anchor.d.ts +1 -0
  20. package/dist/components/directory-tour/use-tour-position.d.ts +4 -1
  21. package/dist/components/directory-tour/use-tour-theme.d.ts +2 -0
  22. package/dist/components/directory-tour.js +52 -1
  23. package/dist/components/email-login-form/email-login-form.d.ts +2 -0
  24. package/dist/components/email-login-form/index.d.ts +3 -0
  25. package/dist/components/email-login-form/style.css +438 -0
  26. package/dist/components/email-login-form/style.js +0 -0
  27. package/dist/components/email-login-form/types.d.ts +11 -0
  28. package/dist/components/email-login-form.js +1 -0
  29. package/dist/components/experience-dashboard/experience-impact.d.ts +3 -1
  30. package/dist/components/experience-dashboard/style.css +4 -2
  31. package/dist/components/file-browser-entries/style.css +12 -6
  32. package/dist/components/file-preview/file-preview-header.d.ts +4 -21
  33. package/dist/components/file-preview/file-preview-toolbar.d.ts +7 -0
  34. package/dist/components/file-preview/locales/en-US.d.ts +9 -0
  35. package/dist/components/file-preview/locales/zh-CN.d.ts +9 -0
  36. package/dist/components/file-preview/style.css +116 -2
  37. package/dist/components/file-preview/types.d.ts +14 -21
  38. package/dist/components/file-tree/style.css +4 -2
  39. package/dist/components/invitation-confirmation/index.d.ts +3 -0
  40. package/dist/components/invitation-confirmation/invitation-confirmation.d.ts +2 -0
  41. package/dist/components/invitation-confirmation/style.css +438 -0
  42. package/dist/components/invitation-confirmation/style.js +0 -0
  43. package/dist/components/invitation-confirmation/types.d.ts +20 -0
  44. package/dist/components/invitation-confirmation.js +1 -0
  45. package/dist/components/login-method-selector/index.d.ts +2 -0
  46. package/dist/components/login-method-selector/login-method-selector.d.ts +2 -0
  47. package/dist/components/login-method-selector/style.css +438 -0
  48. package/dist/components/login-method-selector/style.js +0 -0
  49. package/dist/components/login-method-selector/types.d.ts +14 -0
  50. package/dist/components/login-method-selector.js +1 -0
  51. package/dist/components/password-reset-request-form/index.d.ts +3 -0
  52. package/dist/components/password-reset-request-form/password-reset-request-form.d.ts +2 -0
  53. package/dist/components/password-reset-request-form/style.css +438 -0
  54. package/dist/components/password-reset-request-form/style.js +0 -0
  55. package/dist/components/password-reset-request-form/types.d.ts +13 -0
  56. package/dist/components/password-reset-request-form.js +1 -0
  57. package/dist/components/password-setup-form/index.d.ts +3 -0
  58. package/dist/components/password-setup-form/password-setup-form.d.ts +2 -0
  59. package/dist/components/password-setup-form/style.css +438 -0
  60. package/dist/components/password-setup-form/style.js +0 -0
  61. package/dist/components/password-setup-form/types.d.ts +10 -0
  62. package/dist/components/password-setup-form.js +1 -0
  63. package/dist/components/scope-switcher/style.css +4 -2
  64. package/dist/components/scope-switcher.js +1 -1
  65. package/dist/components/style.css +3120 -79
  66. package/dist/components/tui/style.css +8 -4
  67. package/dist/components/viking-bot/bot-popover.d.ts +2 -1
  68. package/dist/components/viking-bot/composer-reference-tags.d.ts +8 -0
  69. package/dist/components/viking-bot/composer-references.d.ts +0 -5
  70. package/dist/components/viking-bot/locales/en-US.d.ts +1 -0
  71. package/dist/components/viking-bot/locales/zh-CN.d.ts +1 -0
  72. package/dist/components/viking-bot/model.d.ts +1 -0
  73. package/dist/components/viking-bot/popover-tab-navigation.d.ts +3 -0
  74. package/dist/components/viking-bot/style.css +166 -27
  75. package/dist/components/viking-bot/types.d.ts +3 -1
  76. package/dist/components/viking-bot/user-message-group.d.ts +9 -0
  77. package/dist/components/wiki-dashboard/index.d.ts +1 -1
  78. package/dist/components/wiki-dashboard/style.css +16 -4
  79. package/dist/components/wiki-dashboard/types.d.ts +12 -16
  80. package/dist/components/wiki-dashboard/wiki-action-button.d.ts +2 -9
  81. package/dist/components/wiki-dashboard/wiki-conflict-card.d.ts +3 -10
  82. package/dist/c~0.js +77 -6
  83. package/dist/d~0.js +28 -0
  84. package/dist/ep~0.js +281 -133
  85. package/dist/fi~0.js +339 -0
  86. package/dist/fj~0.js +32 -67
  87. package/dist/fl~0.js +3 -2
  88. package/dist/f~0.js +63 -326
  89. package/dist/g~0.js +135 -0
  90. package/dist/icons/index.d.ts +2 -0
  91. package/dist/icons/viking-bot-icons.d.ts +1 -1
  92. package/dist/icons.js +1 -1
  93. package/dist/index.d.ts +12 -0
  94. package/dist/index.js +8 -2
  95. package/dist/k~0.js +44 -4
  96. package/dist/l5~0.js +3813 -0
  97. package/dist/lg~0.js +41 -1
  98. package/dist/lk~0.js +1 -1
  99. package/dist/l~0.js +54 -3811
  100. package/dist/modules/console/style.css +182 -35
  101. package/dist/modules/file-browser/file-browser-detail-icons.d.ts +0 -6
  102. package/dist/modules/file-browser/file-browser-detail.d.ts +2 -23
  103. package/dist/modules/file-browser/file-browser.d.ts +1 -1
  104. package/dist/modules/file-browser/fs-file-editing.d.ts +4 -0
  105. package/dist/modules/file-browser/fs-preview-images.d.ts +3 -0
  106. package/dist/modules/file-browser/fs-read-file.d.ts +1 -1
  107. package/dist/modules/file-browser/style.css +156 -70
  108. package/dist/modules/file-browser/types.d.ts +2 -0
  109. package/dist/modules/file-browser/use-file-browser-acl.d.ts +1 -0
  110. package/dist/modules/file-browser/wiki-dashboard-pane.d.ts +2 -4
  111. package/dist/modules/file-browser.js +1 -1
  112. package/dist/modules/scope-cascade/style.css +4 -2
  113. package/dist/modules/style.css +346 -109
  114. package/dist/n~0.js +1 -1
  115. package/dist/p0~0.js +27 -0
  116. package/dist/p~0.js +34 -25
  117. package/dist/shared/auth/agreements.d.ts +10 -0
  118. package/dist/shared/auth/fields.d.ts +15 -0
  119. package/dist/shared/auth/form-frame.d.ts +12 -0
  120. package/dist/shared/auth/locales/en-US.d.ts +24 -0
  121. package/dist/shared/auth/locales/zh-CN.d.ts +24 -0
  122. package/dist/shared/auth/types.d.ts +61 -0
  123. package/dist/shared/auth/use-auth-labels.d.ts +3 -0
  124. package/dist/shared/auth/use-form.d.ts +8 -0
  125. package/dist/style.css +3690 -410
  126. package/dist/viking-bot-composer~0.js +86 -29
  127. package/package.json +32 -2
package/dist/c~0.js CHANGED
@@ -22,6 +22,7 @@ const en_US_messages = {
22
22
  searchReferences: 'Search files and directories',
23
23
  emptyReferences: 'No matching files or directories',
24
24
  removeReference: 'Remove reference',
25
+ openReference: 'Open {uri}',
25
26
  expandReference: 'Expand {name}',
26
27
  collapseReference: 'Collapse {name}',
27
28
  welcomeTitle: 'Welcome to VikingBot',
@@ -62,6 +63,7 @@ const zh_CN_messages = {
62
63
  searchReferences: '搜索文件或目录',
63
64
  emptyReferences: '暂无匹配的文件或目录',
64
65
  removeReference: '移除引用',
66
+ openReference: '打开 {uri}',
65
67
  expandReference: '展开 {name}',
66
68
  collapseReference: '收起 {name}',
67
69
  welcomeTitle: '欢迎使用 VikingBot',
@@ -95,20 +97,82 @@ const DEFAULT_LABELS = en_US;
95
97
  function resolveVikingBotLabels(locale, labels) {
96
98
  return resolveLocale(LOCALES, locale, labels);
97
99
  }
100
+ function navigatePopoverTab(event, anchor, surface, close) {
101
+ if ('Tab' !== event.key || event.altKey || event.ctrlKey || event.metaKey) return;
102
+ const trigger = anchor?.querySelector('button');
103
+ const controls = [
104
+ ...surface?.querySelectorAll('button, a[href], input, select, textarea, [tabindex], [contenteditable="true"]') ?? []
105
+ ].filter((element)=>element.tabIndex >= 0 && !element.matches(':disabled'));
106
+ const first = controls[0];
107
+ const last = controls.at(-1);
108
+ const destination = event.shiftKey || event.target !== trigger ? event.shiftKey && event.target === first ? trigger : void 0 : first;
109
+ if (destination) {
110
+ event.preventDefault();
111
+ event.stopPropagation();
112
+ destination.focus();
113
+ } else if (!event.shiftKey && event.target === last) {
114
+ event.stopPropagation();
115
+ close();
116
+ }
117
+ }
98
118
  const subscribe = ()=>()=>{};
99
- function BotPopover({ label, trigger: renderTrigger, children, placement = 'bottom', onOpen }) {
119
+ function BotPopover({ label, trigger: renderTrigger, children, placement = 'bottom', onOpen, hover = false }) {
100
120
  const mounted = useSyncExternalStore(subscribe, ()=>true, ()=>false);
101
121
  const native = mounted && 'popover' in HTMLElement.prototype;
102
122
  const [open, setOpen] = useState(false);
103
123
  const [surface, setSurface] = useState(null);
104
124
  const anchor = useRef(null);
125
+ const dismissTimer = useRef(void 0);
126
+ const skipFocus = useRef(false);
105
127
  const id = useId();
106
128
  const position = useOverlayPosition(open, anchor, surface, placement, 'end');
107
- const close = ()=>{
129
+ const cancelDismiss = ()=>window.clearTimeout(dismissTimer.current);
130
+ const hide = ()=>{
131
+ cancelDismiss();
108
132
  if (native) surface?.hidePopover();
109
133
  else setOpen(false);
134
+ };
135
+ const show = ()=>{
136
+ cancelDismiss();
137
+ if (native) surface?.showPopover({
138
+ source: anchor.current?.querySelector('button') ?? void 0
139
+ });
140
+ else {
141
+ setOpen(true);
142
+ if (!open) onOpen?.();
143
+ }
144
+ };
145
+ const close = ()=>{
146
+ skipFocus.current = true;
147
+ hide();
110
148
  anchor.current?.querySelector('button')?.focus();
149
+ skipFocus.current = false;
111
150
  };
151
+ const interest = hover ? {
152
+ onMouseEnter: show,
153
+ onMouseLeave: ()=>{
154
+ cancelDismiss();
155
+ dismissTimer.current = window.setTimeout(()=>{
156
+ if (!anchor.current?.contains(document.activeElement) && !surface?.contains(document.activeElement)) hide();
157
+ }, 100);
158
+ },
159
+ onFocus: ()=>{
160
+ if (!skipFocus.current) show();
161
+ },
162
+ onBlur: (event)=>{
163
+ const next = event.relatedTarget;
164
+ if (next && !anchor.current?.contains(next) && !surface?.contains(next)) hide();
165
+ },
166
+ onKeyDown: (event)=>{
167
+ if (open && !native) navigatePopoverTab(event, anchor.current, surface, close);
168
+ if (open && 'Escape' === event.key) {
169
+ event.preventDefault();
170
+ event.stopPropagation();
171
+ close();
172
+ }
173
+ }
174
+ } : {};
175
+ useEffect(()=>()=>window.clearTimeout(dismissTimer.current), []);
112
176
  useEffect(()=>{
113
177
  if (!surface) return;
114
178
  const toggle = ()=>{
@@ -124,11 +188,12 @@ function BotPopover({ label, trigger: renderTrigger, children, placement = 'bott
124
188
  onOpen
125
189
  ]);
126
190
  useEffect(()=>{
127
- if (!open) return;
191
+ if (!open || hover) return;
128
192
  (surface?.querySelector('input, button') ?? surface)?.focus();
129
193
  }, [
130
194
  open,
131
- surface
195
+ surface,
196
+ hover
132
197
  ]);
133
198
  useEffect(()=>{
134
199
  if (native || !open) return;
@@ -158,13 +223,17 @@ function BotPopover({ label, trigger: renderTrigger, children, placement = 'bott
158
223
  return /*#__PURE__*/ jsxs("span", {
159
224
  className: "ov-viking-bot__popover-anchor",
160
225
  ref: anchor,
226
+ ...interest,
161
227
  children: [
162
228
  renderTrigger({
163
229
  ...invoker,
164
230
  'aria-haspopup': 'dialog',
165
231
  'aria-controls': id,
166
232
  'aria-expanded': open,
167
- onClick: native ? void 0 : ()=>{
233
+ onClick: hover ? (event)=>{
234
+ event.preventDefault();
235
+ show();
236
+ } : native ? void 0 : ()=>{
168
237
  setOpen(!open);
169
238
  if (!open) onOpen?.();
170
239
  }
@@ -172,7 +241,7 @@ function BotPopover({ label, trigger: renderTrigger, children, placement = 'bott
172
241
  mounted ? /*#__PURE__*/ createPortal(/*#__PURE__*/ jsx("div", {
173
242
  ref: setSurface,
174
243
  id: id,
175
- popover: "auto",
244
+ popover: native ? 'auto' : void 0,
176
245
  role: "dialog",
177
246
  tabIndex: -1,
178
247
  "aria-label": label,
@@ -182,6 +251,7 @@ function BotPopover({ label, trigger: renderTrigger, children, placement = 'bott
182
251
  top: position.top,
183
252
  left: position.left
184
253
  },
254
+ ...interest,
185
255
  children: open ? children(close) : null
186
256
  }), document.body) : null
187
257
  ]
@@ -678,6 +748,7 @@ function VikingBot({ messages, className, streaming, draft, attachments, isSendi
678
748
  } : void 0,
679
749
  onFilesAdded: onFilesAdded,
680
750
  onAttachmentRemove: onAttachmentRemove,
751
+ onOpenUri: onOpenUri,
681
752
  onSend: onSend,
682
753
  onCancel: onCancel,
683
754
  labels: overrides
package/dist/d~0.js ADDED
@@ -0,0 +1,28 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ function LoginMethodSelector({ methods, disabled, className, onSelect, title, description }) {
3
+ return /*#__PURE__*/ jsxs("div", {
4
+ className: `ov-auth ${className ?? ''}`,
5
+ children: [
6
+ title && /*#__PURE__*/ jsx("h2", {
7
+ children: title
8
+ }),
9
+ description && /*#__PURE__*/ jsx("p", {
10
+ className: "ov-auth__description",
11
+ children: description
12
+ }),
13
+ /*#__PURE__*/ jsx("div", {
14
+ className: "ov-auth__methods",
15
+ children: methods.map((method)=>/*#__PURE__*/ jsxs("button", {
16
+ type: "button",
17
+ disabled: disabled || method.disabled,
18
+ onClick: ()=>onSelect?.(method.id),
19
+ children: [
20
+ method.icon,
21
+ method.label
22
+ ]
23
+ }, method.id))
24
+ })
25
+ ]
26
+ });
27
+ }
28
+ export { LoginMethodSelector };