diff --git a/ui/src/styles/config.css b/ui/src/styles/config.css index c05bdcbe98e..455fbeb019a 100644 --- a/ui/src/styles/config.css +++ b/ui/src/styles/config.css @@ -962,6 +962,13 @@ font-size: 12px; } +/* Redacted (click-to-reveal) */ +.cfg-input--redacted, +.cfg-textarea--redacted { + cursor: pointer; + opacity: 0.7; +} + /* Number Input */ .cfg-number { display: inline-flex; diff --git a/ui/src/ui/app-render.ts b/ui/src/ui/app-render.ts index 11bcacae1ee..76a2fcb04b7 100644 --- a/ui/src/ui/app-render.ts +++ b/ui/src/ui/app-render.ts @@ -1512,6 +1512,7 @@ export function renderApp(state: AppViewState) { onRawChange: (next) => { state.configRaw = next; }, + onRequestUpdate: requestHostUpdate, onFormModeChange: (mode) => (state.configFormMode = mode), onFormPatch: (path, value) => updateConfigFormValue(state, path, value), onSearchChange: (query) => (state.configSearchQuery = query), @@ -1582,6 +1583,7 @@ export function renderApp(state: AppViewState) { onRawChange: (next) => { state.configRaw = next; }, + onRequestUpdate: requestHostUpdate, onFormModeChange: (mode) => (state.communicationsFormMode = mode), onFormPatch: (path, value) => updateConfigFormValue(state, path, value), onSearchChange: (query) => (state.communicationsSearchQuery = query), @@ -1646,6 +1648,7 @@ export function renderApp(state: AppViewState) { onRawChange: (next) => { state.configRaw = next; }, + onRequestUpdate: requestHostUpdate, onFormModeChange: (mode) => (state.appearanceFormMode = mode), onFormPatch: (path, value) => updateConfigFormValue(state, path, value), onSearchChange: (query) => (state.appearanceSearchQuery = query), @@ -1710,6 +1713,7 @@ export function renderApp(state: AppViewState) { onRawChange: (next) => { state.configRaw = next; }, + onRequestUpdate: requestHostUpdate, onFormModeChange: (mode) => (state.automationFormMode = mode), onFormPatch: (path, value) => updateConfigFormValue(state, path, value), onSearchChange: (query) => (state.automationSearchQuery = query), @@ -1774,6 +1778,7 @@ export function renderApp(state: AppViewState) { onRawChange: (next) => { state.configRaw = next; }, + onRequestUpdate: requestHostUpdate, onFormModeChange: (mode) => (state.infrastructureFormMode = mode), onFormPatch: (path, value) => updateConfigFormValue(state, path, value), onSearchChange: (query) => (state.infrastructureSearchQuery = query), @@ -1838,6 +1843,7 @@ export function renderApp(state: AppViewState) { onRawChange: (next) => { state.configRaw = next; }, + onRequestUpdate: requestHostUpdate, onFormModeChange: (mode) => (state.aiAgentsFormMode = mode), onFormPatch: (path, value) => updateConfigFormValue(state, path, value), onSearchChange: (query) => (state.aiAgentsSearchQuery = query), diff --git a/ui/src/ui/views/config-form.node.ts b/ui/src/ui/views/config-form.node.ts index e7758e1c29a..9e5be1c20f7 100644 --- a/ui/src/ui/views/config-form.node.ts +++ b/ui/src/ui/views/config-form.node.ts @@ -646,7 +646,6 @@ function renderTextInput(params: { // oxlint-disable typescript/no-base-to-string (schema.default !== undefined ? `Default: ${String(schema.default)}` : "")); const displayValue = sensitiveState.isRedacted ? "" : (value ?? ""); - const effectiveDisabled = disabled || sensitiveState.isRedacted; const effectiveInputType = sensitiveState.isSensitive && !sensitiveState.isRedacted ? "text" : inputType; @@ -658,11 +657,16 @@ function renderTextInput(params: {