zidane-ui 9.1.4 → 9.1.6
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/dist/adapters/server-extensions-host.js +1 -1
- package/dist/adapters/server-host.js +2 -1
- package/dist/adapters/server-machines-host.js +1 -1
- package/dist/adapters/server-session-host.js +87 -13
- package/dist/adapters/server-settings-host.js +1 -1
- package/dist/appearance/AppearanceProvider.js +2 -2
- package/dist/appearance/headless/index.js +1 -1
- package/dist/approvals/headless/index.js +2 -2
- package/dist/chat/HostTranscript.d.ts +5 -1
- package/dist/chat/HostTranscript.js +16 -4
- package/dist/chat/RunEstimateChip.d.ts +5 -3
- package/dist/chat/RunEstimateChip.js +33 -3
- package/dist/chat/Transcript.js +1 -1
- package/dist/chat/composer/ConversationBadges.js +16 -10
- package/dist/chat/composer/composer-bus.d.ts +2 -2
- package/dist/chat/composer/composer-bus.js +2 -2
- package/dist/chat/composer/use-composer-stores.js +1 -1
- package/dist/chat/composer/use-run-meter.js +1 -1
- package/dist/chat/headless/composer/conversation-badges.d.ts +8 -3
- package/dist/chat/headless/composer/conversation-badges.js +26 -11
- package/dist/chat/headless/composer/index.js +2 -2
- package/dist/chat/headless/composer/labels-chrome.d.ts +3 -1
- package/dist/chat/headless/composer/labels-chrome.js +3 -1
- package/dist/chat/headless/index.d.ts +6 -3
- package/dist/chat/headless/index.js +16 -13
- package/dist/chat/headless/labels.d.ts +54 -1
- package/dist/chat/headless/labels.js +62 -2
- package/dist/chat/headless/secrets.d.ts +32 -0
- package/dist/chat/headless/secrets.js +43 -0
- package/dist/chat/headless/session-list.d.ts +45 -0
- package/dist/chat/headless/sidebar/estimates.js +13 -1
- package/dist/chat/headless/sidebar/history.d.ts +71 -0
- package/dist/chat/headless/sidebar/history.js +174 -0
- package/dist/chat/headless/sidebar/index.d.ts +3 -2
- package/dist/chat/headless/sidebar/index.js +2 -1
- package/dist/chat/headless/sidebar/labels.d.ts +50 -0
- package/dist/chat/headless/sidebar/labels.js +1 -0
- package/dist/chat/headless/sidebar/query.d.ts +2 -2
- package/dist/chat/headless/sidebar/query.js +6 -3
- package/dist/chat/headless/sidebar/types.d.ts +7 -1
- package/dist/chat/headless/sidebar/view.js +2 -0
- package/dist/chat/headless/transcript/auth-failure.d.ts +67 -0
- package/dist/chat/headless/transcript/auth-failure.js +87 -0
- package/dist/chat/headless/transcript/index.d.ts +2 -1
- package/dist/chat/headless/transcript/index.js +2 -1
- package/dist/chat/headless/transcript/nesting.d.ts +3 -3
- package/dist/chat/headless/transcript/nesting.js +12 -4
- package/dist/chat/index.d.ts +4 -2
- package/dist/chat/index.js +3 -1
- package/dist/chat/interactions/InboxPanel.d.ts +6 -2
- package/dist/chat/interactions/InboxPanel.js +82 -44
- package/dist/chat/interactions/PlanCard.d.ts +2 -2
- package/dist/chat/interactions/PlanCard.js +1 -1
- package/dist/chat/interactions/QuestionField.d.ts +8 -3
- package/dist/chat/interactions/QuestionField.js +89 -8
- package/dist/chat/interactions/QuestionForm.d.ts +3 -1
- package/dist/chat/interactions/QuestionForm.js +48 -10
- package/dist/chat/interactions/SecretInput.d.ts +32 -0
- package/dist/chat/interactions/SecretInput.js +72 -0
- package/dist/chat/interactions/card-ui.d.ts +5 -3
- package/dist/chat/interactions/card-ui.js +5 -3
- package/dist/chat/interactions/index.d.ts +2 -1
- package/dist/chat/interactions/index.js +2 -1
- package/dist/chat/sidebar/SessionSidebar.js +2 -0
- package/dist/chat/sidebar/SidebarFilterMenu.d.ts +7 -2
- package/dist/chat/sidebar/SidebarFilterMenu.js +26 -2
- package/dist/chat/sidebar/SidebarSessionRow.d.ts +3 -1
- package/dist/chat/sidebar/SidebarSessionRow.js +8 -3
- package/dist/chat/sidebar/sidebar-live.js +8 -4
- package/dist/chat/transcript/AuthFailureCard.d.ts +34 -0
- package/dist/chat/transcript/AuthFailureCard.js +358 -0
- package/dist/chat/transcript/InteractionToolBody.js +12 -2
- package/dist/chat/transcript/actions.d.ts +24 -1
- package/dist/chat/transcript/index.d.ts +3 -2
- package/dist/chat/transcript/index.js +2 -1
- package/dist/chat/transcript/notices.d.ts +2 -1
- package/dist/chat/transcript/notices.js +13 -1
- package/dist/chat/transcript/script-input.d.ts +1 -1
- package/dist/chat/transcript/shell-block.js +1 -1
- package/dist/components/HowItWorks.d.ts +8 -1
- package/dist/components/HowItWorks.js +2 -2
- package/dist/components/RowActionsMenu.d.ts +6 -1
- package/dist/components/RowActionsMenu.js +4 -0
- package/dist/core.css +24 -0
- package/dist/dist/{index-WlE93Q6d.d.ts → index-DqCio7Nd.d.ts} +36 -3
- package/dist/dist/index-f-XWIoYo.d.ts +1 -0
- package/dist/dist/index.d.ts +6 -0
- package/dist/dist/sandbox-B4OW6oNx.d.ts +2 -0
- package/dist/dist/timeout-B5pO5I5a.d.ts +30 -0
- package/dist/extensions/ExtensionSettingsPage.js +1 -1
- package/dist/extensions/ExtensionSettingsSidebar.js +1 -1
- package/dist/extensions/headless/fixture-host.js +1 -1
- package/dist/extensions/headless/index.js +4 -4
- package/dist/extensions/hooks.js +1 -1
- package/dist/files/DiffsTab.js +1 -1
- package/dist/files/EditorColumn.js +1 -1
- package/dist/files/MediaDiff.js +1 -1
- package/dist/files/SearchPanel.js +121 -53
- package/dist/files/headless/name-match.js +29 -14
- package/dist/files/useEntryActions.js +1 -1
- package/dist/files/useOpenFiles.js +1 -1
- package/dist/git/WherePicker.js +2 -2
- package/dist/git/headless/environment.d.ts +6 -1
- package/dist/git/headless/environment.js +5 -2
- package/dist/git/headless/labels.d.ts +2 -0
- package/dist/git/headless/labels.js +2 -0
- package/dist/git/index.d.ts +2 -1
- package/dist/git/index.js +2 -1
- package/dist/git/useStartFromPanel.d.ts +22 -0
- package/dist/git/useStartFromPanel.js +91 -0
- package/dist/keybindings/KeyCommands.js +1 -1
- package/dist/keybindings/KeybindingsProvider.js +1 -1
- package/dist/keybindings/headless/catalog.d.ts +1 -1
- package/dist/keybindings/headless/catalog.js +14 -2
- package/dist/keybindings/headless/index.js +2 -2
- package/dist/keybindings/headless/key-scope.d.ts +4 -2
- package/dist/keybindings/headless/key-scope.js +17 -2
- package/dist/keybindings/headless/overrides.js +1 -1
- package/dist/machines/HostSyncPanel.js +1 -1
- package/dist/machines/SyncOutcomeBadge.js +1 -1
- package/dist/machines/headless/index.js +1 -1
- package/dist/onboarding/demos/features.d.ts +9 -1
- package/dist/onboarding/demos/features.js +107 -2
- package/dist/onboarding/demos/how-it-works.d.ts +5 -1
- package/dist/onboarding/demos/how-it-works.js +120 -2
- package/dist/onboarding/demos/index.js +1 -1
- package/dist/onboarding/headless/labels.d.ts +17 -0
- package/dist/onboarding/headless/labels.js +17 -0
- package/dist/onboarding/index.js +4 -4
- package/dist/onboarding/marks.d.ts +1 -2
- package/dist/onboarding/marks.js +4 -12
- package/dist/onboarding/steps/ConnectorsStep.js +1 -1
- package/dist/onboarding/steps/ReadyStep.js +1 -1
- package/dist/onboarding/steps/SkillsStep.js +1 -1
- package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
- package/dist/onboarding/tutorials.d.ts +3 -1
- package/dist/onboarding/tutorials.js +2 -1
- package/dist/palette/app-sources.js +1 -1
- package/dist/palette/headless/app-sources.js +10 -0
- package/dist/palette/headless/labels.js +2 -0
- package/dist/session/ArtifactsPanel.js +1 -1
- package/dist/session/PanelAttention.d.ts +14 -6
- package/dist/session/PanelAttention.js +35 -24
- package/dist/session/PlanTracker.d.ts +54 -0
- package/dist/session/PlanTracker.js +413 -0
- package/dist/session/ProjectHome.d.ts +15 -2
- package/dist/session/ProjectHome.js +158 -85
- package/dist/session/RemindersPanel.d.ts +25 -0
- package/dist/session/RemindersPanel.js +526 -0
- package/dist/session/SecretsPanel.d.ts +19 -0
- package/dist/session/SecretsPanel.js +241 -0
- package/dist/session/SessionProvider.d.ts +26 -5
- package/dist/session/SessionProvider.js +51 -6
- package/dist/session/StepStatusIcon.d.ts +24 -0
- package/dist/session/StepStatusIcon.js +50 -0
- package/dist/session/TodoList.d.ts +4 -3
- package/dist/session/TodoList.js +6 -5
- package/dist/session/headless/fixture-host.d.ts +32 -22
- package/dist/session/headless/fixture-host.js +86 -51
- package/dist/session/headless/fixture-plans.d.ts +57 -0
- package/dist/session/headless/fixture-plans.js +141 -0
- package/dist/session/headless/fixture-schedules.d.ts +49 -0
- package/dist/session/headless/fixture-schedules.js +133 -0
- package/dist/session/headless/home-layout.d.ts +10 -2
- package/dist/session/headless/home-layout.js +7 -2
- package/dist/session/headless/host.d.ts +85 -13
- package/dist/session/headless/index.d.ts +5 -3
- package/dist/session/headless/index.js +5 -3
- package/dist/session/headless/labels.d.ts +95 -12
- package/dist/session/headless/labels.js +67 -18
- package/dist/session/headless/plans.d.ts +53 -0
- package/dist/session/headless/plans.js +78 -0
- package/dist/session/headless/reminder-labels.d.ts +63 -0
- package/dist/session/headless/reminder-labels.js +84 -0
- package/dist/session/headless/schedules.d.ts +93 -0
- package/dist/session/headless/schedules.js +190 -0
- package/dist/session/headless/secrets.d.ts +28 -0
- package/dist/session/headless/secrets.js +48 -0
- package/dist/session/index.d.ts +7 -5
- package/dist/session/index.js +6 -4
- package/dist/session/testing/contract.d.ts +18 -5
- package/dist/session/testing/contract.js +351 -43
- package/dist/session/testing/index.d.ts +4 -2
- package/dist/session/testing/index.js +4 -2
- package/dist/settings/headless/catalog.js +17 -1
- package/dist/settings/headless/index.d.ts +2 -2
- package/dist/settings/headless/index.js +3 -3
- package/dist/settings/headless/labels.d.ts +0 -2
- package/dist/settings/headless/labels.js +0 -2
- package/dist/settings/headless/layout.js +7 -1
- package/dist/settings/headless/providers.d.ts +17 -1
- package/dist/settings/headless/providers.js +19 -1
- package/dist/settings/headless/search.d.ts +1 -1
- package/dist/settings/rows.d.ts +1 -1
- package/dist/settings/rows.js +2 -2
- package/dist/settings/sections/appearance/AppearanceSection.js +2 -2
- package/dist/settings/sections/claude-import/ClaudeImportDialog.js +1 -1
- package/dist/settings/sections/editor/EditorSection.js +1 -1
- package/dist/settings/sections/environments/EnvironmentsSection.js +1 -1
- package/dist/settings/sections/extensions/ChangeOriginDialog.js +1 -1
- package/dist/settings/sections/extensions/CreateExtensionDialog.js +1 -1
- package/dist/settings/sections/extensions/ExtensionsSection.js +1 -1
- package/dist/settings/sections/host-catalog/HostCatalogSection.js +1 -1
- package/dist/settings/sections/instructions/InstructionsSection.js +1 -1
- package/dist/settings/sections/keybindings/labels.d.ts +2 -0
- package/dist/settings/sections/keybindings/labels.js +2 -0
- package/dist/settings/sections/keybindings/rows.js +8 -0
- package/dist/settings/sections/mcp/McpSection.js +1 -1
- package/dist/settings/sections/mcp/McpServerRow.js +1 -1
- package/dist/settings/sections/models/ModelRows.js +2 -2
- package/dist/settings/sections/providers/ProvidersSection.js +209 -201
- package/dist/settings/sections/providers/ServerProvidersSection.js +1 -1
- package/dist/settings/sections/shared/catalog.js +1 -1
- package/dist/settings/sections/skills/SkillList.js +1 -1
- package/dist/settings/sections/skills/SkillsSection.js +2 -2
- package/dist/styles.css +59 -1
- package/dist/terminal/HostTerminalSurface.js +2 -2
- package/dist/workspace/PanelContentView.d.ts +22 -4
- package/dist/workspace/PanelContentView.js +112 -16
- package/dist/workspace/PanelGlyph.d.ts +21 -0
- package/dist/workspace/PanelGlyph.js +33 -0
- package/dist/workspace/PanelHome.js +5 -3
- package/dist/workspace/PanelStrip.js +11 -4
- package/dist/workspace/PanelToolbar.d.ts +32 -0
- package/dist/workspace/PanelToolbar.js +194 -0
- package/dist/workspace/WorkspaceProvider.d.ts +3 -1
- package/dist/workspace/WorkspaceProvider.js +6 -2
- package/dist/workspace/extension-tabs.js +5 -2
- package/dist/workspace/headless/host.d.ts +4 -0
- package/dist/workspace/headless/index.d.ts +3 -1
- package/dist/workspace/headless/index.js +4 -2
- package/dist/workspace/headless/labels.d.ts +10 -0
- package/dist/workspace/headless/labels.js +11 -1
- package/dist/workspace/headless/pages.d.ts +15 -0
- package/dist/workspace/headless/pages.js +49 -0
- package/dist/workspace/headless/tab-mark.d.ts +14 -0
- package/dist/workspace/headless/tab-mark.js +27 -0
- package/dist/workspace/headless/view.d.ts +7 -1
- package/dist/workspace/index.d.ts +3 -2
- package/dist/workspace/index.js +3 -2
- package/dist/workspace/testing/index.js +6 -0
- package/dist/workspace/workspace-key-commands.js +3 -3
- package/package.json +2 -2
- package/src/styles/motion.css +13 -0
- package/src/styles/onboarding.css +0 -1
- package/src/styles/primitives.css +10 -0
- package/src/styles/workspace.css +17 -0
- package/dist/session/TodosPanel.d.ts +0 -19
- package/dist/session/TodosPanel.js +0 -251
- package/dist/session/headless/todos.d.ts +0 -22
- package/dist/session/headless/todos.js +0 -38
|
@@ -3,17 +3,17 @@ import { BTN_DANGER, BTN_PRIMARY, BTN_SECONDARY } from "../../../components/butt
|
|
|
3
3
|
import { MetaChip } from "../../../components/Form.js";
|
|
4
4
|
import { BrowserSignIn } from "../../../components/BrowserSignIn.js";
|
|
5
5
|
import { constant, useReadable } from "../../../chat/headless/store.js";
|
|
6
|
-
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
7
6
|
import { toSettingsError } from "../../headless/host.js";
|
|
8
|
-
import {
|
|
9
|
-
import { useSectionLabels } from "../use-section-labels.js";
|
|
7
|
+
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
10
8
|
import { useSignIn } from "../../../onboarding/useSignIn.js";
|
|
11
|
-
import {
|
|
9
|
+
import { SettingFocus, SettingFocusContext, SettingsPanel, SettingsPanelBody } from "../../section.js";
|
|
10
|
+
import { useSectionLabels } from "../use-section-labels.js";
|
|
11
|
+
import { accountsFocusId, accountsKeyFocusId, hasCredentialChoice } from "../../headless/providers.js";
|
|
12
12
|
import { useSettingsResource } from "../shared/catalog.js";
|
|
13
13
|
import { CredentialSources } from "./CredentialSources.js";
|
|
14
14
|
import { DEFAULT_ACCOUNTS_SECTION_LABELS } from "./labels.js";
|
|
15
15
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
|
-
import { useMemo, useRef, useState } from "react";
|
|
16
|
+
import { useContext, useMemo, useRef, useState } from "react";
|
|
17
17
|
import { providerBrand } from "zidane/chat/pure";
|
|
18
18
|
//#region src/settings/sections/providers/ProvidersSection.tsx
|
|
19
19
|
/**
|
|
@@ -74,9 +74,11 @@ function ProvidersSection({ cwd, intro, confirm = YES, className, style }) {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
function ProviderRow({ status, cwd, host, writable, labels: l, confirm }) {
|
|
77
|
-
const
|
|
77
|
+
const { focusKey } = useContext(SettingFocusContext);
|
|
78
|
+
const keyFocus = accountsKeyFocusId(status.key);
|
|
79
|
+
const [editing, setEditing] = useState(() => focusKey === keyFocus && writable && (status.customFields?.length ? host.configure !== void 0 : host.setApiKey !== void 0));
|
|
78
80
|
const [value, setValue] = useState("");
|
|
79
|
-
const [fieldValues, setFieldValues] = useState({});
|
|
81
|
+
const [fieldValues, setFieldValues] = useState(() => ({ ...status.configuredFields }));
|
|
80
82
|
const [busy, setBusy] = useState(null);
|
|
81
83
|
const [rowError, setRowError] = useState(null);
|
|
82
84
|
const [namingAccount, setNamingAccount] = useState(false);
|
|
@@ -149,203 +151,209 @@ function ProviderRow({ status, cwd, host, writable, labels: l, confirm }) {
|
|
|
149
151
|
setBusy(null);
|
|
150
152
|
}
|
|
151
153
|
};
|
|
152
|
-
return /* @__PURE__ */
|
|
154
|
+
return /* @__PURE__ */ jsx("li", {
|
|
153
155
|
className: "zg-raised border rounded-zg-md p-3",
|
|
154
|
-
children:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
className: "flex
|
|
167
|
-
children: [
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
156
|
+
children: /* @__PURE__ */ jsxs(SettingFocus, {
|
|
157
|
+
id: accountsFocusId(status.key),
|
|
158
|
+
children: [
|
|
159
|
+
/* @__PURE__ */ jsxs("div", {
|
|
160
|
+
className: "flex items-start gap-3",
|
|
161
|
+
children: [
|
|
162
|
+
/* @__PURE__ */ jsx(BrandMark, {
|
|
163
|
+
brand: providerBrand(status.key),
|
|
164
|
+
label: status.label,
|
|
165
|
+
className: "shrink-0"
|
|
166
|
+
}),
|
|
167
|
+
/* @__PURE__ */ jsxs("div", {
|
|
168
|
+
className: "flex-1 min-w-0",
|
|
169
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
170
|
+
className: "flex items-center gap-1.5 flex-wrap",
|
|
171
|
+
children: [
|
|
172
|
+
/* @__PURE__ */ jsx("div", {
|
|
173
|
+
className: "text-sm font-medium text-[var(--zg-text)] mr-0.5",
|
|
174
|
+
children: status.label
|
|
175
|
+
}),
|
|
176
|
+
/* @__PURE__ */ jsx("span", {
|
|
177
|
+
className: `inline-block w-2 h-2 rounded-full shrink-0 mr-0.5 ${available ? "bg-zg-success-dot" : "bg-[var(--zg-border-strong)]"}`,
|
|
178
|
+
role: "img",
|
|
179
|
+
"aria-label": available ? l.accountsAuthenticated : l.accountsNotAuthenticated,
|
|
180
|
+
title: available ? l.accountsAuthenticated : l.accountsNotAuthenticated
|
|
181
|
+
}),
|
|
182
|
+
hasConfiguration && /* @__PURE__ */ jsx(MetaChip, { children: l.accountsConfigured }),
|
|
183
|
+
hasApiKey && !hasConfiguration && /* @__PURE__ */ jsx(MetaChip, { children: l.accountsApiKeyChip }),
|
|
184
|
+
hasOAuth && /* @__PURE__ */ jsx(MetaChip, { children: l.accountsOAuthChip })
|
|
185
|
+
]
|
|
186
|
+
}), description && /* @__PURE__ */ jsx("div", {
|
|
187
|
+
className: "text-xs text-[var(--zg-text-muted)] mt-0.5",
|
|
188
|
+
children: description
|
|
189
|
+
})]
|
|
190
|
+
}),
|
|
191
|
+
!editing && !namingAccount && canSignIn && !flow && /* @__PURE__ */ jsx("button", {
|
|
192
|
+
type: "button",
|
|
193
|
+
onClick: () => {
|
|
194
|
+
if (hasOAuth) {
|
|
195
|
+
setRowError(null);
|
|
196
|
+
setAccountName("");
|
|
197
|
+
setNamingAccount(true);
|
|
198
|
+
} else startSignIn();
|
|
199
|
+
},
|
|
200
|
+
className: BTN_PRIMARY,
|
|
201
|
+
children: hasOAuth ? l.accountsAddAccount : l.accountsSignInWith(signInWith)
|
|
202
|
+
}),
|
|
203
|
+
!editing && canEdit && /* @__PURE__ */ jsx("button", {
|
|
204
|
+
type: "button",
|
|
205
|
+
onClick: startEditing,
|
|
206
|
+
className: BTN_SECONDARY,
|
|
207
|
+
children: hasCustomFields ? available ? l.accountsEditConfig : l.accountsConfigure : hasApiKey ? l.accountsReplaceKey : l.accountsSetKey
|
|
208
|
+
}),
|
|
209
|
+
!editing && available && canClear && /* @__PURE__ */ jsx("button", {
|
|
210
|
+
type: "button",
|
|
211
|
+
onClick: clear,
|
|
212
|
+
disabled: busy === "clearing",
|
|
213
|
+
className: BTN_DANGER,
|
|
214
|
+
children: busy === "clearing" ? l.accountsClearing : l.accountsClear
|
|
215
|
+
})
|
|
216
|
+
]
|
|
217
|
+
}),
|
|
218
|
+
flow && /* @__PURE__ */ jsx(BrowserSignIn, {
|
|
219
|
+
className: "mt-3",
|
|
220
|
+
state: flow,
|
|
221
|
+
service: signInWith,
|
|
222
|
+
onCancel: signIn.cancel,
|
|
223
|
+
onRetry: () => startSignIn(lastOptions.current),
|
|
224
|
+
...signIn.submit ? { onSubmit: signIn.submit } : {}
|
|
225
|
+
}),
|
|
226
|
+
namingAccount && !flow && /* @__PURE__ */ jsxs("div", {
|
|
227
|
+
className: "mt-3 flex items-center gap-2",
|
|
228
|
+
children: [
|
|
229
|
+
/* @__PURE__ */ jsx("input", {
|
|
230
|
+
autoFocus: true,
|
|
231
|
+
type: "text",
|
|
232
|
+
placeholder: l.accountsAccountNamePlaceholder,
|
|
233
|
+
value: accountName,
|
|
234
|
+
onChange: (e) => setAccountName(e.target.value),
|
|
235
|
+
onKeyDown: (e) => {
|
|
236
|
+
if (e.key === "Enter") startNamedAccount();
|
|
237
|
+
if (e.key === "Escape") setNamingAccount(false);
|
|
238
|
+
},
|
|
239
|
+
"aria-label": l.accountsAccountName,
|
|
240
|
+
className: `zg-well w-full h-8 px-2.5 text-zg-ui placeholder:text-[var(--zg-text-subtle)] disabled:opacity-zg-disabled flex-1 !w-auto`
|
|
241
|
+
}),
|
|
242
|
+
/* @__PURE__ */ jsx("button", {
|
|
243
|
+
type: "button",
|
|
244
|
+
disabled: !trimmedAccountName,
|
|
245
|
+
onClick: startNamedAccount,
|
|
246
|
+
className: BTN_PRIMARY,
|
|
247
|
+
children: l.accountsSignIn
|
|
248
|
+
}),
|
|
249
|
+
/* @__PURE__ */ jsx("button", {
|
|
250
|
+
type: "button",
|
|
251
|
+
onClick: () => setNamingAccount(false),
|
|
252
|
+
className: BTN_SECONDARY,
|
|
253
|
+
children: l.accountsCancel
|
|
254
|
+
})
|
|
255
|
+
]
|
|
256
|
+
}),
|
|
257
|
+
editing && /* @__PURE__ */ jsx(SettingFocus, {
|
|
258
|
+
id: keyFocus,
|
|
259
|
+
children: hasCustomFields ? /* @__PURE__ */ jsxs("div", {
|
|
260
|
+
className: "mt-3 space-y-3",
|
|
261
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
262
|
+
className: "grid grid-cols-1 md:grid-cols-2 gap-2",
|
|
263
|
+
children: customFields.map((field, index) => {
|
|
264
|
+
const valueForField = fieldValues[field.key] ?? "";
|
|
265
|
+
const placeholder = field.secret && available ? l.accountsKeepSecret : field.placeholder || keyPlaceholder;
|
|
266
|
+
return /* @__PURE__ */ jsxs("label", {
|
|
267
|
+
className: "flex flex-col gap-1",
|
|
268
|
+
children: [
|
|
269
|
+
/* @__PURE__ */ jsxs("span", {
|
|
270
|
+
className: "text-xs text-[var(--zg-text-muted)]",
|
|
271
|
+
children: [field.label, field.required ? l.accountsRequired : ""]
|
|
272
|
+
}),
|
|
273
|
+
/* @__PURE__ */ jsx("input", {
|
|
274
|
+
autoFocus: index === 0,
|
|
275
|
+
type: field.secret ? "password" : "text",
|
|
276
|
+
placeholder,
|
|
277
|
+
value: valueForField,
|
|
278
|
+
onChange: (e) => setFieldValues((prev) => ({
|
|
279
|
+
...prev,
|
|
280
|
+
[field.key]: e.target.value
|
|
281
|
+
})),
|
|
282
|
+
onKeyDown: (e) => {
|
|
283
|
+
if ((e.metaKey || e.ctrlKey) && e.key === "Enter") save();
|
|
284
|
+
if (e.key === "Escape") cancelEditing();
|
|
285
|
+
},
|
|
286
|
+
className: `zg-well w-full h-8 px-2.5 text-zg-ui placeholder:text-[var(--zg-text-subtle)] disabled:opacity-zg-disabled font-mono`
|
|
287
|
+
}),
|
|
288
|
+
field.hint && /* @__PURE__ */ jsx("span", {
|
|
289
|
+
className: "text-zg-meta leading-snug text-[var(--zg-text-muted)]",
|
|
290
|
+
children: field.hint
|
|
291
|
+
})
|
|
292
|
+
]
|
|
293
|
+
}, field.key);
|
|
294
|
+
})
|
|
295
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
296
|
+
className: "flex items-center gap-2",
|
|
297
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
298
|
+
type: "button",
|
|
299
|
+
disabled: !requiredCustomFieldsSatisfied || busy === "setting",
|
|
300
|
+
onClick: save,
|
|
301
|
+
className: BTN_PRIMARY,
|
|
302
|
+
children: busy === "setting" ? l.accountsSaving : l.accountsSaveConfig
|
|
303
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
304
|
+
type: "button",
|
|
305
|
+
onClick: cancelEditing,
|
|
306
|
+
className: BTN_SECONDARY,
|
|
307
|
+
children: l.accountsCancel
|
|
308
|
+
})]
|
|
185
309
|
})]
|
|
186
|
-
}),
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
state: flow,
|
|
217
|
-
service: signInWith,
|
|
218
|
-
onCancel: signIn.cancel,
|
|
219
|
-
onRetry: () => startSignIn(lastOptions.current),
|
|
220
|
-
...signIn.submit ? { onSubmit: signIn.submit } : {}
|
|
221
|
-
}),
|
|
222
|
-
namingAccount && !flow && /* @__PURE__ */ jsxs("div", {
|
|
223
|
-
className: "mt-3 flex items-center gap-2",
|
|
224
|
-
children: [
|
|
225
|
-
/* @__PURE__ */ jsx("input", {
|
|
226
|
-
autoFocus: true,
|
|
227
|
-
type: "text",
|
|
228
|
-
placeholder: l.accountsAccountNamePlaceholder,
|
|
229
|
-
value: accountName,
|
|
230
|
-
onChange: (e) => setAccountName(e.target.value),
|
|
231
|
-
onKeyDown: (e) => {
|
|
232
|
-
if (e.key === "Enter") startNamedAccount();
|
|
233
|
-
if (e.key === "Escape") setNamingAccount(false);
|
|
234
|
-
},
|
|
235
|
-
"aria-label": l.accountsAccountName,
|
|
236
|
-
className: `zg-well w-full h-8 px-2.5 text-zg-ui placeholder:text-[var(--zg-text-subtle)] disabled:opacity-zg-disabled flex-1 !w-auto`
|
|
237
|
-
}),
|
|
238
|
-
/* @__PURE__ */ jsx("button", {
|
|
239
|
-
type: "button",
|
|
240
|
-
disabled: !trimmedAccountName,
|
|
241
|
-
onClick: startNamedAccount,
|
|
242
|
-
className: BTN_PRIMARY,
|
|
243
|
-
children: l.accountsSignIn
|
|
244
|
-
}),
|
|
245
|
-
/* @__PURE__ */ jsx("button", {
|
|
246
|
-
type: "button",
|
|
247
|
-
onClick: () => setNamingAccount(false),
|
|
248
|
-
className: BTN_SECONDARY,
|
|
249
|
-
children: l.accountsCancel
|
|
310
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
311
|
+
className: "mt-3 flex items-center gap-2",
|
|
312
|
+
children: [
|
|
313
|
+
/* @__PURE__ */ jsx("input", {
|
|
314
|
+
autoFocus: true,
|
|
315
|
+
type: "password",
|
|
316
|
+
placeholder: keyPlaceholder,
|
|
317
|
+
value,
|
|
318
|
+
onChange: (e) => setValue(e.target.value),
|
|
319
|
+
onKeyDown: (e) => {
|
|
320
|
+
if (e.key === "Enter") save();
|
|
321
|
+
if (e.key === "Escape") cancelEditing();
|
|
322
|
+
},
|
|
323
|
+
"aria-label": l.accountsKeyField(status.label),
|
|
324
|
+
className: `zg-well w-full h-8 px-2.5 text-zg-ui placeholder:text-[var(--zg-text-subtle)] disabled:opacity-zg-disabled flex-1 !w-auto font-mono`
|
|
325
|
+
}),
|
|
326
|
+
/* @__PURE__ */ jsx("button", {
|
|
327
|
+
type: "button",
|
|
328
|
+
disabled: !value.trim() || busy === "setting",
|
|
329
|
+
onClick: save,
|
|
330
|
+
className: BTN_PRIMARY,
|
|
331
|
+
children: busy === "setting" ? l.accountsSaving : l.accountsSave
|
|
332
|
+
}),
|
|
333
|
+
/* @__PURE__ */ jsx("button", {
|
|
334
|
+
type: "button",
|
|
335
|
+
onClick: cancelEditing,
|
|
336
|
+
className: BTN_SECONDARY,
|
|
337
|
+
children: l.accountsCancel
|
|
338
|
+
})
|
|
339
|
+
]
|
|
250
340
|
})
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
/* @__PURE__ */ jsx("input", {
|
|
268
|
-
autoFocus: index === 0,
|
|
269
|
-
type: field.secret ? "password" : "text",
|
|
270
|
-
placeholder,
|
|
271
|
-
value: valueForField,
|
|
272
|
-
onChange: (e) => setFieldValues((prev) => ({
|
|
273
|
-
...prev,
|
|
274
|
-
[field.key]: e.target.value
|
|
275
|
-
})),
|
|
276
|
-
onKeyDown: (e) => {
|
|
277
|
-
if ((e.metaKey || e.ctrlKey) && e.key === "Enter") save();
|
|
278
|
-
if (e.key === "Escape") cancelEditing();
|
|
279
|
-
},
|
|
280
|
-
className: `zg-well w-full h-8 px-2.5 text-zg-ui placeholder:text-[var(--zg-text-subtle)] disabled:opacity-zg-disabled font-mono`
|
|
281
|
-
}),
|
|
282
|
-
field.hint && /* @__PURE__ */ jsx("span", {
|
|
283
|
-
className: "text-zg-meta leading-snug text-[var(--zg-text-muted)]",
|
|
284
|
-
children: field.hint
|
|
285
|
-
})
|
|
286
|
-
]
|
|
287
|
-
}, field.key);
|
|
288
|
-
})
|
|
289
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
290
|
-
className: "flex items-center gap-2",
|
|
291
|
-
children: [/* @__PURE__ */ jsx("button", {
|
|
292
|
-
type: "button",
|
|
293
|
-
disabled: !requiredCustomFieldsSatisfied || busy === "setting",
|
|
294
|
-
onClick: save,
|
|
295
|
-
className: BTN_PRIMARY,
|
|
296
|
-
children: busy === "setting" ? l.accountsSaving : l.accountsSaveConfig
|
|
297
|
-
}), /* @__PURE__ */ jsx("button", {
|
|
298
|
-
type: "button",
|
|
299
|
-
onClick: cancelEditing,
|
|
300
|
-
className: BTN_SECONDARY,
|
|
301
|
-
children: l.accountsCancel
|
|
302
|
-
})]
|
|
303
|
-
})]
|
|
304
|
-
}) : /* @__PURE__ */ jsxs("div", {
|
|
305
|
-
className: "mt-3 flex items-center gap-2",
|
|
306
|
-
children: [
|
|
307
|
-
/* @__PURE__ */ jsx("input", {
|
|
308
|
-
autoFocus: true,
|
|
309
|
-
type: "password",
|
|
310
|
-
placeholder: keyPlaceholder,
|
|
311
|
-
value,
|
|
312
|
-
onChange: (e) => setValue(e.target.value),
|
|
313
|
-
onKeyDown: (e) => {
|
|
314
|
-
if (e.key === "Enter") save();
|
|
315
|
-
if (e.key === "Escape") cancelEditing();
|
|
316
|
-
},
|
|
317
|
-
"aria-label": l.accountsKeyField(status.label),
|
|
318
|
-
className: `zg-well w-full h-8 px-2.5 text-zg-ui placeholder:text-[var(--zg-text-subtle)] disabled:opacity-zg-disabled flex-1 !w-auto font-mono`
|
|
319
|
-
}),
|
|
320
|
-
/* @__PURE__ */ jsx("button", {
|
|
321
|
-
type: "button",
|
|
322
|
-
disabled: !value.trim() || busy === "setting",
|
|
323
|
-
onClick: save,
|
|
324
|
-
className: BTN_PRIMARY,
|
|
325
|
-
children: busy === "setting" ? l.accountsSaving : l.accountsSave
|
|
326
|
-
}),
|
|
327
|
-
/* @__PURE__ */ jsx("button", {
|
|
328
|
-
type: "button",
|
|
329
|
-
onClick: cancelEditing,
|
|
330
|
-
className: BTN_SECONDARY,
|
|
331
|
-
children: l.accountsCancel
|
|
332
|
-
})
|
|
333
|
-
]
|
|
334
|
-
})),
|
|
335
|
-
hasCredentialChoice(status) && /* @__PURE__ */ jsx(CredentialSources, {
|
|
336
|
-
provider: status,
|
|
337
|
-
cwd,
|
|
338
|
-
host: writable ? host : { list: host.list },
|
|
339
|
-
labels: l,
|
|
340
|
-
confirm,
|
|
341
|
-
onError: setRowError,
|
|
342
|
-
onReauth: canSignIn && !flow ? startSignIn : void 0
|
|
343
|
-
}),
|
|
344
|
-
rowError && /* @__PURE__ */ jsx("div", {
|
|
345
|
-
className: "mt-2 text-xs text-zg-danger",
|
|
346
|
-
children: l.accountsError(rowError)
|
|
347
|
-
})
|
|
348
|
-
]
|
|
341
|
+
}),
|
|
342
|
+
hasCredentialChoice(status) && /* @__PURE__ */ jsx(CredentialSources, {
|
|
343
|
+
provider: status,
|
|
344
|
+
cwd,
|
|
345
|
+
host: writable ? host : { list: host.list },
|
|
346
|
+
labels: l,
|
|
347
|
+
confirm,
|
|
348
|
+
onError: setRowError,
|
|
349
|
+
onReauth: canSignIn && !flow ? startSignIn : void 0
|
|
350
|
+
}),
|
|
351
|
+
rowError && /* @__PURE__ */ jsx("div", {
|
|
352
|
+
className: "mt-2 text-xs text-zg-danger",
|
|
353
|
+
children: l.accountsError(rowError)
|
|
354
|
+
})
|
|
355
|
+
]
|
|
356
|
+
})
|
|
349
357
|
});
|
|
350
358
|
}
|
|
351
359
|
//#endregion
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BTN_DANGER, BTN_PRIMARY, BTN_SECONDARY } from "../../../components/button.js";
|
|
2
2
|
import { ErrorNote, FormCard, FormSection, MetaChip, OpLine, RowText } from "../../../components/Form.js";
|
|
3
3
|
import { constant, useReadable } from "../../../chat/headless/store.js";
|
|
4
|
-
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
5
4
|
import { toSettingsError } from "../../headless/host.js";
|
|
5
|
+
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
6
6
|
import { SettingsPanel, SettingsPanelBody } from "../../section.js";
|
|
7
7
|
import { hasCredentialChoice } from "../../headless/providers.js";
|
|
8
8
|
import { useSettingsResource } from "../shared/catalog.js";
|
|
@@ -2,8 +2,8 @@ import { IconButton } from "../../../components/IconButton.js";
|
|
|
2
2
|
import { Segmented } from "../../../components/Segmented.js";
|
|
3
3
|
import { EmptyState } from "../../../components/Surface.js";
|
|
4
4
|
import { Checkbox } from "../../../components/Form.js";
|
|
5
|
-
import { useSettingsDocument, useSettingsHost, useSettingsWritable } from "../../SettingsProvider.js";
|
|
6
5
|
import { toSettingsError } from "../../headless/host.js";
|
|
6
|
+
import { useSettingsDocument, useSettingsHost, useSettingsWritable } from "../../SettingsProvider.js";
|
|
7
7
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
8
8
|
import { enabledNames, toggleEnabled } from "../../headless/enabled.js";
|
|
9
9
|
import { DEFAULT_CATALOG_SHARED_LABELS } from "./labels.js";
|
|
@@ -6,8 +6,8 @@ import { Checkbox, MetaChip } from "../../../components/Form.js";
|
|
|
6
6
|
import { LoadError } from "../../../components/LoadError.js";
|
|
7
7
|
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
8
8
|
import { useSectionLabels } from "../use-section-labels.js";
|
|
9
|
-
import { useCodeDocument } from "../../../code/editor/useCodeDocument.js";
|
|
10
9
|
import { OpenFileButton, RevealPathButton, useCatalogSharedLabels, useEnabledList, useSettingsResource } from "../shared/catalog.js";
|
|
10
|
+
import { useCodeDocument } from "../../../code/editor/useCodeDocument.js";
|
|
11
11
|
import { formatTokens } from "../../../session/headless/usage-format.js";
|
|
12
12
|
import { DEFAULT_SKILLS_SECTION_LABELS } from "./labels.js";
|
|
13
13
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BTN_LG_SECONDARY, BTN_PRIMARY, BTN_SECONDARY } from "../../../components/button.js";
|
|
2
2
|
import { OpLine } from "../../../components/Form.js";
|
|
3
|
-
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
4
3
|
import { toSettingsError } from "../../headless/host.js";
|
|
4
|
+
import { useSettingsHost } from "../../SettingsProvider.js";
|
|
5
5
|
import { SettingsPanel, SettingsPanelActions, SettingsPanelBody } from "../../section.js";
|
|
6
|
-
import { SkillSourceBrowser } from "../../../onboarding/skills/SkillSourceBrowser.js";
|
|
7
6
|
import { ScopePicker, useCatalogSharedLabels, useOpLine, useSettingsResource, useSettingsValues, useWriteSetting } from "../shared/catalog.js";
|
|
8
7
|
import { SettingsTutorial } from "../../SettingsTutorial.js";
|
|
8
|
+
import { SkillSourceBrowser } from "../../../onboarding/skills/SkillSourceBrowser.js";
|
|
9
9
|
import { SkillActions, SkillList, useSkillsSectionLabels } from "./SkillList.js";
|
|
10
10
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|