We couldn't finish the setup.
diff --git a/apps/web/src/app/admin/alerting-ttfb/TtfbAlertingContent.tsx b/apps/web/src/app/admin/alerting-ttfb/TtfbAlertingContent.tsx
index 1956645046..39dbec164e 100644
--- a/apps/web/src/app/admin/alerting-ttfb/TtfbAlertingContent.tsx
+++ b/apps/web/src/app/admin/alerting-ttfb/TtfbAlertingContent.tsx
@@ -194,6 +194,7 @@ export function TtfbAlertingContent() {
handleSearchChange(e.target.value)}
className="pl-8"
diff --git a/apps/web/src/app/admin/alerting/AddModelDialog.tsx b/apps/web/src/app/admin/alerting/AddModelDialog.tsx
index 96bc16345c..f03b08d5d8 100644
--- a/apps/web/src/app/admin/alerting/AddModelDialog.tsx
+++ b/apps/web/src/app/admin/alerting/AddModelDialog.tsx
@@ -46,6 +46,7 @@ export function AddModelDialog({
onSearchChange(e.target.value)}
/>
diff --git a/apps/web/src/components/app-builder/PromptInput.tsx b/apps/web/src/components/app-builder/PromptInput.tsx
index a5c4d9e6d4..ab77d86f0d 100644
--- a/apps/web/src/components/app-builder/PromptInput.tsx
+++ b/apps/web/src/components/app-builder/PromptInput.tsx
@@ -134,6 +134,7 @@ const BottomBar = memo(function BottomBar({
'h-9 cursor-help border border-amber-500/50 bg-amber-500/10 text-amber-500 hover:bg-amber-500/20 hover:text-amber-400',
!isLanding && 'w-9'
)}
+ aria-label={isLanding ? undefined : 'Submit with warning'}
>
{isLanding &&
Submit}
@@ -162,6 +163,7 @@ const BottomBar = memo(function BottomBar({
onClick={onInterrupt}
disabled={isInterrupting}
className="h-9 w-9"
+ aria-label={isInterrupting ? 'Stopping' : 'Stop generating'}
>
@@ -173,6 +175,7 @@ const BottomBar = memo(function BottomBar({
onClick={onSubmit}
disabled={isSubmitDisabled}
className="h-9 w-9"
+ aria-label="Send message"
>
@@ -341,6 +344,7 @@ export function PromptInput({
onChange={handleChange}
onKeyDown={handleKeyDown}
placeholder={effectivePlaceholder}
+ aria-label={isLanding ? 'App prompt' : 'Message'}
disabled={disabled || isSubmitting}
className={cn(
'resize-none border-none bg-transparent px-0 shadow-none outline-none focus-visible:ring-0 focus-visible:ring-offset-0',
diff --git a/apps/web/src/components/deployments/PasswordFormFields.test.ts b/apps/web/src/components/deployments/PasswordFormFields.test.ts
new file mode 100644
index 0000000000..9cac05068c
--- /dev/null
+++ b/apps/web/src/components/deployments/PasswordFormFields.test.ts
@@ -0,0 +1,43 @@
+import React from 'react';
+import { renderToStaticMarkup } from 'react-dom/server';
+import { describe, expect, it } from '@jest/globals';
+import { PasswordProtection } from './PasswordFormFields';
+
+function render(enabled: boolean) {
+ return renderToStaticMarkup(
+ React.createElement(PasswordProtection, {
+ value: { password: '', confirmPassword: '', enabled },
+ onChange: () => undefined,
+ })
+ );
+}
+
+function visibilityToggles(html: string): string[] {
+ return html.match(/