@nextclaw/ui 0.26.1 → 0.26.3
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.
- package/CHANGELOG.md +27 -0
- package/dist/.vite/manifest.json +366 -365
- package/dist/assets/{account-panel-ZM2qzKF4.js → account-panel-DIdHjKG-.js} +1 -1
- package/dist/assets/{api-Cjq-o1VN.js → api-DkLJrSCd.js} +2 -2
- package/dist/assets/app-presenter-provider-Co8uKOyW.js +124 -0
- package/dist/assets/{appearance-settings-page-B4zouKzg.js → appearance-settings-page-DI8aDY2G.js} +1 -1
- package/dist/assets/{book-open-AteA89HX.js → book-open-BPMkKSci.js} +1 -1
- package/dist/assets/{card-BLXvBstA.js → card-Bqu8zWLq.js} +1 -1
- package/dist/assets/{channels-list-page-fj8kMo-T.js → channels-list-page-CCIaTQu7.js} +1 -1
- package/dist/assets/{circle-dashed-LSYZTzM7.js → circle-dashed-B48a0t6p.js} +1 -1
- package/dist/assets/{client-DudCRJw4.js → client-imrVphQb.js} +1 -1
- package/dist/assets/{config-split-page-G7Kt2BnV.js → config-split-page-Bd-bGKsw.js} +1 -1
- package/dist/assets/{confirm-dialog-DShT64F6.js → confirm-dialog-10Qb3dpZ.js} +1 -1
- package/dist/assets/context-menu-CRqH2SEk.js +1 -0
- package/dist/assets/{createLucideIcon-D7hvIHV-.js → createLucideIcon-B4xj2I2g.js} +1 -1
- package/dist/assets/{desktop-capabilities-page-CzqzFZUY.js → desktop-capabilities-page-CFcT2g8-.js} +1 -1
- package/dist/assets/{desktop-update-config-CgeQ0Ffo.js → desktop-update-config-CRJd_An1.js} +1 -1
- package/dist/assets/{dialog-C7glmAQJ.js → dialog-BgL3vKJQ.js} +2 -2
- package/dist/assets/doc-browser-52t2_rSF.js +1 -0
- package/dist/assets/{doc-browser-context-BlhBAOLH.js → doc-browser-context-DH4aWvkS.js} +1 -1
- package/dist/assets/{download-BYgECE0n.js → download-Cr337h4W.js} +1 -1
- package/dist/assets/{es2015-CsjAAQ6X.js → es2015-D-CRf3_Z.js} +1 -1
- package/dist/assets/{extensions-qYL-NpL3.js → extensions-CsmJPz7g.js} +1 -1
- package/dist/assets/{eye-BBuTzJ53.js → eye-DrQRSAfJ.js} +1 -1
- package/dist/assets/{form-actions-CLGWO52v.js → form-actions-BEeWTGUZ.js} +1 -1
- package/dist/assets/{i18n-qBGEbcW6.js → i18n-OGmF0Ws_.js} +2 -2
- package/dist/assets/{keyboard-shortcuts-settings-page-B-wK_6zG.js → keyboard-shortcuts-settings-page-DQU56SrW.js} +1 -1
- package/dist/assets/loader-circle-DbOQWT9C.js +1 -0
- package/dist/assets/login-page-DW1AZXqX.js +1 -0
- package/dist/assets/{login-page-Cd84lpVV.js → login-page-sgivRYG1.js} +1 -1
- package/dist/assets/main-B-oxUq-o.js +2 -0
- package/dist/assets/main-BpL6OjwM.css +1 -0
- package/dist/assets/main-i18n-catalog.config-Bpu5GcwF.js +1 -0
- package/dist/assets/mcp-marketplace-page-DSLRpJEB.js +1 -0
- package/dist/assets/{model-config-page-D0DQlSDa.js → model-config-page-CDQBhmVr.js} +1 -1
- package/dist/assets/{navigation-link-32iM1-e6.js → navigation-link-D3pzNHeA.js} +1 -1
- package/dist/assets/panel-app-BYfQu_TS.js +1 -0
- package/dist/assets/panel-app-i18n-catalog.config-D44qmtfk.js +1 -0
- package/dist/assets/{panelStandalone-C9EKaApN.js → panelStandalone-CGkYeMK5.js} +2 -2
- package/dist/assets/panelStandalone-D-mhAGNa.css +1 -0
- package/dist/assets/{privacy-settings-page-Bxxx12OO.js → privacy-settings-page-CjoAkoDt.js} +1 -1
- package/dist/assets/projects-C7Zxpcoi.js +1 -0
- package/dist/assets/{provider-models-C3frdXeW.js → provider-models-YW7rIeOD.js} +1 -1
- package/dist/assets/{provider-scoped-model-input-CYetrPYZ.js → provider-scoped-model-input-axJ-pTEu.js} +1 -1
- package/dist/assets/{providers-config-page-DESB1h8g.js → providers-config-page-_QhBXQ4M.js} +1 -1
- package/dist/assets/{puzzle-CWHfFyYN.js → puzzle--RLCeYML.js} +1 -1
- package/dist/assets/{pwa-CiGUjpcd.js → pwa-DcizGowz.js} +1 -1
- package/dist/assets/{refresh-cw-y3L6PyLt.js → refresh-cw-syCVj_nw.js} +1 -1
- package/dist/assets/remote-BLQU7aY5.js +1 -0
- package/dist/assets/{rotate-cw-CNE9qSHi.js → rotate-cw-BlH9El3x.js} +1 -1
- package/dist/assets/{runtime-config-page-5o98T-TD.js → runtime-config-page-Cco9dS73.js} +1 -1
- package/dist/assets/{save-B0p5a0ET.js → save-BWynuRQ2.js} +1 -1
- package/dist/assets/{search-config-page-CpGcnIzi.js → search-config-page-Cc74_SAU.js} +1 -1
- package/dist/assets/{secrets-config-page-C4VTiW3r.js → secrets-config-page-raYDzlFC.js} +1 -1
- package/dist/assets/security-config-aE_jOwy-.js +1 -0
- package/dist/assets/{select-CctTN205.js → select-6Uq4chZW.js} +1 -1
- package/dist/assets/{service-apps-panel-CKE5HKNY.js → service-apps-panel-jBWAa4qZ.js} +1 -1
- package/dist/assets/{settings-2-EPflrNk6.js → settings-2-COvVf1XX.js} +1 -1
- package/dist/assets/{status-dot-CensgJZC.js → status-dot-DZlxa5zW.js} +1 -1
- package/dist/assets/{tag-chip-Bjzb4-qW.js → tag-chip-DXHtZ8AS.js} +1 -1
- package/dist/assets/{theme-provider-hlle7Skk.js → theme-provider-C5PCDBPB.js} +1 -1
- package/dist/assets/{trash-2-C5KH5Rw9.js → trash-2-DazgBvmJ.js} +1 -1
- package/dist/assets/{use-config-CPl_F79t.js → use-config-DRRGF9Zb.js} +1 -1
- package/dist/assets/{use-desktop-capabilities-CEg9-DrQ.js → use-desktop-capabilities-CdfOUjdE.js} +1 -1
- package/dist/assets/{use-viewport-layout-CPZUmTPi.js → use-viewport-layout-DdxVnCYc.js} +1 -1
- package/dist/assets/x-CQIp_nJT.js +1 -0
- package/dist/index.html +34 -34
- package/dist/panel-standalone.html +11 -11
- package/package.json +8 -8
- package/src/app/components/layout/page-layout.tsx +5 -2
- package/src/app/configs/__tests__/app-navigation.config.test.ts +10 -0
- package/src/app/configs/app-navigation.config.ts +6 -2
- package/src/app/styles/charcoal-theme.css +1 -1
- package/src/app/styles/design-system.css +8 -2
- package/src/app/styles/island-theme.css +1 -1
- package/src/features/agents/components/agent-details-dialog.tsx +1 -1
- package/src/features/agents/components/agents-page.tsx +5 -3
- package/src/features/apps/components/app-package-card.tsx +7 -6
- package/src/features/chat/components/conversation/chat-conversation-header-section.tsx +3 -3
- package/src/features/chat/components/conversation/chat-conversation-header.tsx +4 -4
- package/src/features/chat/components/layout/chat-page-shell.tsx +1 -1
- package/src/features/chat/components/layout/chat-sidebar-toolbar.tsx +12 -5
- package/src/features/chat/features/session/components/chat-mobile-session-row.tsx +1 -1
- package/src/features/chat/features/session/components/session-header/__tests__/chat-session-header-actions.test.tsx +1 -1
- package/src/features/chat/features/session/components/session-header/chat-session-header-actions.tsx +3 -5
- package/src/features/chat/features/session/components/session-header/chat-session-header-menu-item.tsx +4 -3
- package/src/features/chat/features/session/components/session-header/chat-session-title-switcher.tsx +1 -1
- package/src/features/chat/features/workspace/components/project-files/workspace-project-files-toolbar.tsx +3 -1
- package/src/features/cron/components/cron-config.tsx +1 -0
- package/src/features/cron/components/cron-job-row.tsx +4 -4
- package/src/features/inbox/components/inbox-delivery-content.tsx +1 -1
- package/src/features/inbox/pages/inbox-page.tsx +24 -28
- package/src/features/marketplace/components/marketplace-page-parts.tsx +4 -3
- package/src/features/marketplace/components/marketplace-page.tsx +2 -2
- package/src/features/panel-apps/components/panel-app-open-standalone-menu-item.tsx +3 -1
- package/src/features/projects/components/project-overview.tsx +1 -1
- package/src/features/projects/pages/project-home-page.tsx +11 -2
- package/src/features/projects/pages/projects-page.test.tsx +4 -2
- package/src/platforms/mobile/components/mobile-app-shell.tsx +1 -1
- package/src/platforms/mobile/components/mobile-bottom-nav.tsx +8 -7
- package/src/platforms/mobile/components/mobile-settings-shell.tsx +24 -23
- package/src/platforms/mobile/components/mobile-topbar.tsx +10 -11
- package/src/shared/components/doc-browser/__tests__/doc-browser.test.tsx +34 -2
- package/src/shared/components/doc-browser/doc-browser-tab-strip.tsx +36 -5
- package/src/shared/components/doc-browser/doc-browser.tsx +5 -1
- package/src/shared/components/settings/settings-page.tsx +1 -1
- package/src/shared/components/ui/actions/__tests__/icon-action-button.test.tsx +5 -5
- package/src/shared/components/ui/actions/action-feedback.ts +8 -0
- package/src/shared/components/ui/actions/icon-action-button.tsx +13 -12
- package/src/shared/components/ui/button.tsx +1 -1
- package/src/shared/components/ui/context-menu/context-menu-items.tsx +4 -3
- package/src/shared/components/ui/dialog.tsx +4 -3
- package/src/shared/components/ui/input.tsx +1 -0
- package/src/shared/components/ui/select.tsx +2 -1
- package/src/shared/components/ui/tab-strip/compact-tab-strip.tsx +5 -3
- package/src/shared/components/ui/tabs.tsx +2 -2
- package/src/shared/components/ui/textarea.tsx +1 -0
- package/src/shared/components/workbench/workbench-surface-toolbar.tsx +3 -4
- package/src/shared/components/workbench/workbench-surface.tsx +2 -2
- package/src/shared/lib/i18n/locales/en-US/agents.json +2 -0
- package/src/shared/lib/i18n/locales/en-US/core.json +1 -0
- package/src/shared/lib/i18n/locales/en-US/desktop-update.json +1 -1
- package/src/shared/lib/i18n/locales/zh-CN/agents.json +2 -0
- package/src/shared/lib/i18n/locales/zh-CN/core.json +1 -0
- package/src/shared/lib/i18n/locales/zh-CN/desktop-update.json +1 -1
- package/dist/assets/app-presenter-provider-C02YPoMr.js +0 -124
- package/dist/assets/context-menu-rd7b_kVD.js +0 -1
- package/dist/assets/doc-browser-dBiR9Qi0.js +0 -1
- package/dist/assets/loader-circle-BA7EMkih.js +0 -1
- package/dist/assets/login-page-VdMyNkFf.js +0 -1
- package/dist/assets/main-CR0SrTBf.js +0 -2
- package/dist/assets/main-DXH6EdXI.css +0 -1
- package/dist/assets/main-i18n-catalog.config-Btp_OowF.js +0 -1
- package/dist/assets/mcp-marketplace-page-jacRwiI-.js +0 -1
- package/dist/assets/panel-app-CC0bVSu4.js +0 -1
- package/dist/assets/panel-app-i18n-catalog.config-LUSBp5Ce.js +0 -1
- package/dist/assets/panelStandalone-Y91OJkgV.css +0 -1
- package/dist/assets/projects-D56yAPNT.js +0 -1
- package/dist/assets/remote-DiGFV8nP.js +0 -1
- package/dist/assets/security-config-C5-RQVpS.js +0 -1
- package/dist/assets/x--xxUvHKW.js +0 -1
|
@@ -40,6 +40,7 @@ const DialogContent = React.forwardRef<
|
|
|
40
40
|
data-theme-overlay="dialog"
|
|
41
41
|
className={cn(
|
|
42
42
|
"fixed left-[50%] top-[50%] z-[var(--z-modal,10050)] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border border-border bg-popover p-6 text-popover-foreground shadow-xl duration-base data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
|
|
43
|
+
"max-md:max-w-[calc(100vw-1.5rem)] max-h-[calc(100dvh-1.5rem)] max-md:max-h-[calc(100dvh-env(safe-area-inset-top,0px)-env(safe-area-inset-bottom,0px)-1.5rem)] overflow-y-auto overscroll-contain",
|
|
43
44
|
className
|
|
44
45
|
)}
|
|
45
46
|
{...props}
|
|
@@ -48,7 +49,7 @@ const DialogContent = React.forwardRef<
|
|
|
48
49
|
}}
|
|
49
50
|
>
|
|
50
51
|
{children}
|
|
51
|
-
<DialogPrimitive.Close className="absolute right-
|
|
52
|
+
<DialogPrimitive.Close className="absolute right-1 top-1 flex h-11 w-11 items-center justify-center rounded-lg opacity-70 transition-all duration-fast hover:bg-[var(--interaction-hover)] hover:text-accent-foreground hover:opacity-100 focus:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:pointer-events-none sm:right-4 sm:top-4 sm:h-6 sm:w-6">
|
|
52
53
|
<X className="h-4 w-4 text-muted-foreground" />
|
|
53
54
|
<span className="sr-only">Close</span>
|
|
54
55
|
</DialogPrimitive.Close>
|
|
@@ -63,7 +64,7 @@ const DialogHeader = ({
|
|
|
63
64
|
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
64
65
|
<div
|
|
65
66
|
className={cn(
|
|
66
|
-
"flex flex-col space-y-2
|
|
67
|
+
"flex flex-col space-y-2 pr-7 text-left",
|
|
67
68
|
className
|
|
68
69
|
)}
|
|
69
70
|
{...props}
|
|
@@ -77,7 +78,7 @@ const DialogFooter = ({
|
|
|
77
78
|
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
78
79
|
<div
|
|
79
80
|
className={cn(
|
|
80
|
-
"flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-3",
|
|
81
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:gap-3",
|
|
81
82
|
className
|
|
82
83
|
)}
|
|
83
84
|
{...props}
|
|
@@ -10,6 +10,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
|
10
10
|
type={type}
|
|
11
11
|
className={cn(
|
|
12
12
|
'flex h-9 w-full rounded-xl border border-border/75 bg-card px-3.5 py-2 text-sm text-foreground file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/55 placeholder:font-normal transition-colors focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50',
|
|
13
|
+
'max-md:min-h-[var(--control-touch-size)] max-md:text-base',
|
|
13
14
|
className
|
|
14
15
|
)}
|
|
15
16
|
ref={ref}
|
|
@@ -26,6 +26,7 @@ const SelectTrigger = React.forwardRef<
|
|
|
26
26
|
ref={ref}
|
|
27
27
|
className={cn(
|
|
28
28
|
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-xl border border-border/75 bg-card px-3 py-2 text-sm text-foreground ring-offset-background placeholder:text-muted-foreground transition-colors focus:outline-none focus:ring-0 focus:border-border disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
29
|
+
'max-md:min-h-[var(--control-touch-size)]',
|
|
29
30
|
className
|
|
30
31
|
)}
|
|
31
32
|
{...props}
|
|
@@ -120,7 +121,7 @@ const SelectItem = React.forwardRef<
|
|
|
120
121
|
<SelectPrimitive.Item
|
|
121
122
|
ref={ref}
|
|
122
123
|
className={cn(
|
|
123
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 hover:bg-[var(--interaction-hover)]",
|
|
124
|
+
"relative flex max-md:min-h-[var(--control-touch-size)] w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 hover:bg-[var(--interaction-hover)]",
|
|
124
125
|
className
|
|
125
126
|
)}
|
|
126
127
|
{...props}
|
|
@@ -2,6 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { MoreVertical, X } from "lucide-react";
|
|
3
3
|
import {
|
|
4
4
|
IconActionButton,
|
|
5
|
+
IconActionGroup,
|
|
5
6
|
type IconActionButtonProps,
|
|
6
7
|
} from "@/shared/components/ui/actions/icon-action-button";
|
|
7
8
|
import {
|
|
@@ -305,13 +306,14 @@ export function CompactTabStrip({
|
|
|
305
306
|
))}
|
|
306
307
|
</div>
|
|
307
308
|
</div>
|
|
308
|
-
<
|
|
309
|
-
className={
|
|
309
|
+
<IconActionGroup
|
|
310
|
+
className={actionsClassName}
|
|
310
311
|
data-testid={actionsTestId}
|
|
311
312
|
onPointerDown={(event) => event.stopPropagation()}
|
|
312
313
|
>
|
|
313
314
|
{actions.map((action) => (
|
|
314
315
|
<IconActionButton
|
|
316
|
+
size="sm"
|
|
315
317
|
key={action.key}
|
|
316
318
|
icon={action.icon}
|
|
317
319
|
label={action.label}
|
|
@@ -320,7 +322,7 @@ export function CompactTabStrip({
|
|
|
320
322
|
className={actionButtonClassName}
|
|
321
323
|
/>
|
|
322
324
|
))}
|
|
323
|
-
</
|
|
325
|
+
</IconActionGroup>
|
|
324
326
|
</div>
|
|
325
327
|
);
|
|
326
328
|
}
|
|
@@ -63,7 +63,7 @@ export function TabsList({ children, className }: TabsListProps) {
|
|
|
63
63
|
role="tablist"
|
|
64
64
|
onKeyDown={handleKeyDown}
|
|
65
65
|
className={cn(
|
|
66
|
-
'inline-flex h-9 items-center justify-center rounded-xl bg-muted p-1 text-muted-foreground',
|
|
66
|
+
'inline-flex h-9 max-md:h-auto items-center justify-center rounded-xl bg-muted p-1 text-muted-foreground',
|
|
67
67
|
className
|
|
68
68
|
)}
|
|
69
69
|
>
|
|
@@ -87,7 +87,7 @@ export function TabsTrigger({ value, children, className }: TabsTriggerProps) {
|
|
|
87
87
|
tabIndex={isActive ? 0 : -1}
|
|
88
88
|
data-state={isActive ? 'active' : 'inactive'}
|
|
89
89
|
className={cn(
|
|
90
|
-
'inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-[13px] font-medium transition-all duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:pointer-events-none disabled:opacity-50',
|
|
90
|
+
'inline-flex max-md:min-h-[var(--control-touch-size)] items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-[13px] font-medium transition-all duration-fast focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border disabled:pointer-events-none disabled:opacity-50',
|
|
91
91
|
isActive
|
|
92
92
|
? 'bg-card text-foreground shadow-sm'
|
|
93
93
|
: 'text-muted-foreground hover:bg-[var(--interaction-hover)] hover:text-accent-foreground',
|
|
@@ -8,6 +8,7 @@ export const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
8
8
|
<textarea
|
|
9
9
|
className={cn(
|
|
10
10
|
"flex min-h-28 w-full rounded-xl border border-border/75 bg-card px-3.5 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/55 placeholder:font-normal transition-colors focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50",
|
|
11
|
+
'max-md:text-base',
|
|
11
12
|
className,
|
|
12
13
|
)}
|
|
13
14
|
ref={ref}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
PictureInPicture2,
|
|
8
8
|
X,
|
|
9
9
|
} from "lucide-react";
|
|
10
|
-
import { IconActionButton } from "@/shared/components/ui/actions/icon-action-button";
|
|
10
|
+
import { IconActionButton, IconActionGroup } from "@/shared/components/ui/actions/icon-action-button";
|
|
11
11
|
import { t } from "@/shared/lib/i18n";
|
|
12
12
|
import type { WorkbenchSurfaceState } from "./types/workbench-surface.types";
|
|
13
13
|
|
|
@@ -33,8 +33,7 @@ export function WorkbenchSurfaceToolbar({
|
|
|
33
33
|
onOpenMain?: () => void;
|
|
34
34
|
}) {
|
|
35
35
|
return (
|
|
36
|
-
<
|
|
37
|
-
className="flex shrink-0 items-center gap-0.5"
|
|
36
|
+
<IconActionGroup
|
|
38
37
|
data-workbench-actions=""
|
|
39
38
|
>
|
|
40
39
|
{onOpenMain && (
|
|
@@ -97,6 +96,6 @@ export function WorkbenchSurfaceToolbar({
|
|
|
97
96
|
label={closeLabel}
|
|
98
97
|
onClick={onClose}
|
|
99
98
|
/>
|
|
100
|
-
</
|
|
99
|
+
</IconActionGroup>
|
|
101
100
|
);
|
|
102
101
|
}
|
|
@@ -265,8 +265,8 @@ export function WorkbenchSurface({
|
|
|
265
265
|
}}
|
|
266
266
|
>
|
|
267
267
|
<header
|
|
268
|
-
className="flex min-h-10 shrink-0 select-none items-center gap-
|
|
269
|
-
style={{ touchAction: floating ? "none" : undefined }}
|
|
268
|
+
className="flex min-h-10 shrink-0 select-none items-center gap-1 border-b border-border/60 bg-muted/30 px-2"
|
|
269
|
+
style={{ touchAction: floating ? "none" : undefined, paddingTop: isCompact ? "env(safe-area-inset-top, 0px)" : undefined }}
|
|
270
270
|
onPointerDown={(event) => startInteraction(event)}
|
|
271
271
|
onDoubleClick={(event) => {
|
|
272
272
|
if (!isCompact && !blocksDrag(event.target))
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"agentsPageTitle": "Agents",
|
|
3
|
+
"mobileAgents": "Agents",
|
|
4
|
+
"mobileNavigation": "Main navigation",
|
|
3
5
|
"agentsPageDescription": "Manage conversational agent identities. Each agent owns its home directory, setup, memory, and skills.",
|
|
4
6
|
"agentsHeroEyebrow": "Agent Gallery",
|
|
5
7
|
"agentsHeroTitle": "Give every agent the presence of a real collaborator",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"runtimeUpdatesPageDescription": "NextClaw checks every two hours; you choose when to start each update.",
|
|
5
5
|
"runtimeUpdatesUnavailableTitle": "Updates Are Currently Unavailable",
|
|
6
6
|
"runtimeUpdatesUnavailableDescription": "This runtime environment does not currently expose an update host.",
|
|
7
|
-
"runtimeUpdatesUnavailableHint": "
|
|
7
|
+
"runtimeUpdatesUnavailableHint": "Update using the method you used to install NextClaw. An update button will appear when in-app updates are supported.",
|
|
8
8
|
"runtimeUpdatesHostVersion": "Host Version",
|
|
9
9
|
"runtimeUpdatesDownloadedBannerDescription": "Version {version} has finished downloading and is ready to finish updating.",
|
|
10
10
|
"runtimeUpdatesActionsDescription": "Check manually, then complete the update in one action whenever you are ready.",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"runtimeUpdatesPageDescription": "系统每两小时自动检查新版本;发现更新后,由你决定何时开始更新。",
|
|
5
5
|
"runtimeUpdatesUnavailableTitle": "当前环境暂不支持更新",
|
|
6
6
|
"runtimeUpdatesUnavailableDescription": "这个运行环境暂时没有可用的更新宿主。",
|
|
7
|
-
"runtimeUpdatesUnavailableHint": "
|
|
7
|
+
"runtimeUpdatesUnavailableHint": "请使用安装 NextClaw 时的方式更新;支持应用内更新后,更新按钮会自动出现。",
|
|
8
8
|
"runtimeUpdatesHostVersion": "宿主版本",
|
|
9
9
|
"runtimeUpdatesDownloadedBannerDescription": "版本 {version} 已下载完成,可以继续完成更新。",
|
|
10
10
|
"runtimeUpdatesActionsDescription": "你可以手动检查,并在准备好之后一次完成更新。",
|