@agent-native/core 0.192.0-nightly-20260926081002 → 0.192.0

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 (139) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/CHANGELOG.md +17 -0
  3. package/corpus/templates/analytics/actions/get-sql-dashboard.ts +27 -3
  4. package/corpus/templates/analytics/app/components/AnalyticsReviewArtifactPreview.tsx +8 -2
  5. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +14 -10
  6. package/corpus/templates/analytics/app/root.tsx +2 -4
  7. package/corpus/templates/analytics/app/routes/_index.tsx +1 -36
  8. package/corpus/templates/analytics/app/routes/home.tsx +1 -1
  9. package/corpus/templates/analytics/changelog/2026-09-25-human-review-previews-show-same-organization-dashboard-chart.md +6 -0
  10. package/corpus/templates/analytics/changelog/2026-09-25-human-review-skips-saved-bigquery-queries-in-previews.md +6 -0
  11. package/corpus/templates/analytics/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  12. package/corpus/templates/analytics/server/lib/dashboards-store.ts +14 -0
  13. package/corpus/templates/analytics/server/plugins/auth.ts +0 -3
  14. package/corpus/templates/assets/CHANGELOG.md +16 -0
  15. package/corpus/templates/assets/app/root.tsx +2 -7
  16. package/corpus/templates/assets/app/routes/_index.tsx +1 -36
  17. package/corpus/templates/assets/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  18. package/corpus/templates/assets/server/plugins/auth.ts +0 -3
  19. package/corpus/templates/brain/app/root.tsx +2 -13
  20. package/corpus/templates/brain/app/routes/_index.tsx +1 -35
  21. package/corpus/templates/brain/app/routes/home.tsx +1 -1
  22. package/corpus/templates/calendar/CHANGELOG.md +15 -0
  23. package/corpus/templates/calendar/app/root.tsx +2 -10
  24. package/corpus/templates/calendar/app/routes/_index.tsx +1 -34
  25. package/corpus/templates/calendar/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  26. package/corpus/templates/calendar/server/plugins/auth.ts +0 -3
  27. package/corpus/templates/chat/AGENTS.md +3 -3
  28. package/corpus/templates/chat/app/root.tsx +3 -15
  29. package/corpus/templates/chat/app/routes/_index.tsx +1 -37
  30. package/corpus/templates/chat/server/plugins/auth.ts +0 -3
  31. package/corpus/templates/clips/CHANGELOG.md +10 -0
  32. package/corpus/templates/clips/app/root.tsx +2 -10
  33. package/corpus/templates/clips/app/routes/_index.tsx +1 -33
  34. package/corpus/templates/clips/app/routes/share.$shareId.tsx +2 -3
  35. package/corpus/templates/clips/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  36. package/corpus/templates/clips/server/plugins/auth.ts +0 -3
  37. package/corpus/templates/content/app/root.tsx +2 -3
  38. package/corpus/templates/content/app/routes/_index.tsx +1 -33
  39. package/corpus/templates/content/server/plugins/auth.ts +0 -3
  40. package/corpus/templates/crm/app/root.tsx +3 -16
  41. package/corpus/templates/crm/app/routes/_index.tsx +1 -36
  42. package/corpus/templates/crm/app/routes/home.tsx +1 -1
  43. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +30 -17
  44. package/corpus/templates/design/CHANGELOG.md +31 -0
  45. package/corpus/templates/design/actions/connect-localhost.ts +98 -37
  46. package/corpus/templates/design/actions/get-design.schema.ts +10 -0
  47. package/corpus/templates/design/actions/get-design.ts +25 -6
  48. package/corpus/templates/design/actions/publish-visual-edit-pending.ts +4 -59
  49. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +108 -49
  50. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +63 -21
  51. package/corpus/templates/design/app/components/design/types.ts +2 -0
  52. package/corpus/templates/design/app/pages/design-editor/commands/cross-screen-element-drop.ts +98 -9
  53. package/corpus/templates/design/app/pages/design-editor/commands/cross-screen-insert-timeout.ts +61 -6
  54. package/corpus/templates/design/app/pages/design-editor/commands/mode-change.ts +6 -5
  55. package/corpus/templates/design/app/pages/design-editor/commands/publish-visual-edit-pending.ts +21 -3
  56. package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +4 -7
  57. package/corpus/templates/design/app/root.tsx +2 -20
  58. package/corpus/templates/design/app/routes/_index.tsx +1 -34
  59. package/corpus/templates/design/changelog/2026-09-25-fix-live-visual-edit-recovery-handoff-and-interaction-workfl.md +6 -0
  60. package/corpus/templates/design/changelog/2026-09-25-human-review-previews-show-the-actual-design-when-you-have-o.md +6 -0
  61. package/corpus/templates/design/changelog/2026-09-25-live-screens-recover-safely-from-interrupted-cross-screen-mo.md +6 -0
  62. package/corpus/templates/design/changelog/2026-09-26-canvas-focus-stays-on-toolbar-controls-when-a-live-preview-f.md +6 -0
  63. package/corpus/templates/design/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  64. package/corpus/templates/design/server/plugins/auth.ts +0 -3
  65. package/corpus/templates/dispatch/app/root.tsx +2 -11
  66. package/corpus/templates/dispatch/app/routes/_index.tsx +1 -34
  67. package/corpus/templates/dispatch/server/plugins/setup-dispatch.ts +0 -3
  68. package/corpus/templates/factory/app/root.tsx +3 -15
  69. package/corpus/templates/factory/app/routes/_index.tsx +1 -34
  70. package/corpus/templates/factory/app/routes/home.tsx +1 -1
  71. package/corpus/templates/forms/AGENTS.md +1 -1
  72. package/corpus/templates/forms/app/root.tsx +2 -4
  73. package/corpus/templates/forms/app/routes/_index.tsx +1 -34
  74. package/corpus/templates/forms/server/plugins/auth.ts +0 -3
  75. package/corpus/templates/mail/CHANGELOG.md +8 -0
  76. package/corpus/templates/mail/app/root.tsx +2 -6
  77. package/corpus/templates/mail/app/routes/_index.tsx +1 -36
  78. package/corpus/templates/mail/app/routes/home.tsx +1 -1
  79. package/corpus/templates/mail/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  80. package/corpus/templates/mail/server/plugins/auth.ts +0 -3
  81. package/corpus/templates/plan/app/root.tsx +7 -13
  82. package/corpus/templates/plan/app/routes/_index.tsx +1 -35
  83. package/corpus/templates/plan/app/routes/home.tsx +1 -1
  84. package/corpus/templates/plan/server/plugins/auth.ts +0 -3
  85. package/corpus/templates/slides/CHANGELOG.md +21 -0
  86. package/corpus/templates/slides/actions/get-deck.ts +49 -12
  87. package/corpus/templates/slides/app/root.tsx +1 -3
  88. package/corpus/templates/slides/app/routes/_index.tsx +1 -36
  89. package/corpus/templates/slides/app/routes/home.tsx +1 -1
  90. package/corpus/templates/slides/changelog/2026-09-25-human-review-previews-show-same-organization-slides-for-orga.md +6 -0
  91. package/corpus/templates/slides/changelog/2026-09-26-the-app-entry-now-opens-the-shared-sign-in-and-sign-up-scree.md +6 -0
  92. package/corpus/templates/slides/server/plugins/auth.ts +0 -3
  93. package/corpus/templates/tasks/AGENTS.md +1 -1
  94. package/corpus/templates/tasks/README.md +1 -1
  95. package/corpus/templates/tasks/app/root.tsx +2 -11
  96. package/corpus/templates/tasks/app/routes/_index.tsx +1 -37
  97. package/corpus/templates/tasks/app/routes/home.tsx +1 -1
  98. package/dist/cli/design-connect.d.ts +1 -0
  99. package/dist/cli/design-connect.js +94 -32
  100. package/dist/client/auth/AuthPage.d.ts +1 -17
  101. package/dist/client/auth/AuthPage.js +7 -49
  102. package/dist/client/observability/OutputPreview.js +8 -2
  103. package/dist/client/sign-in-landing.d.ts +1 -0
  104. package/dist/client/sign-in-landing.js +8 -0
  105. package/dist/collab/awareness.d.ts +2 -2
  106. package/dist/deploy/workspace-deploy.js +32 -8
  107. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  108. package/dist/provider-api/actions/custom-provider-registration.d.ts +7 -7
  109. package/dist/provider-api/actions/provider-api.d.ts +3 -3
  110. package/dist/server/auth-marketing.d.ts +0 -7
  111. package/dist/server/auth-marketing.js +0 -36
  112. package/dist/server/auth.d.ts +1 -10
  113. package/dist/server/index.d.ts +1 -1
  114. package/dist/server/index.js +1 -1
  115. package/dist/server/onboarding-html.d.ts +1 -12
  116. package/dist/server/onboarding-html.js +4 -817
  117. package/dist/shared/ssr-auth-redirect.d.ts +3 -3
  118. package/dist/shared/ssr-auth-redirect.js +4 -4
  119. package/dist/templates/chat/AGENTS.md +3 -3
  120. package/dist/templates/chat/app/root.tsx +3 -15
  121. package/dist/templates/chat/app/routes/_index.tsx +1 -37
  122. package/dist/templates/chat/server/plugins/auth.ts +0 -3
  123. package/dist/templates/default/AGENTS.md +2 -4
  124. package/dist/templates/default/DEVELOPING.md +3 -5
  125. package/dist/templates/default/app/root.tsx +2 -9
  126. package/dist/templates/default/app/routes/_index.tsx +8 -15
  127. package/package.json +5 -4
  128. package/src/templates/chat/AGENTS.md +3 -3
  129. package/src/templates/chat/app/root.tsx +3 -15
  130. package/src/templates/chat/app/routes/_index.tsx +1 -37
  131. package/src/templates/chat/server/plugins/auth.ts +0 -3
  132. package/src/templates/default/AGENTS.md +2 -4
  133. package/src/templates/default/DEVELOPING.md +3 -5
  134. package/src/templates/default/app/root.tsx +2 -9
  135. package/src/templates/default/app/routes/_index.tsx +8 -15
  136. package/dist/server/auth-marketing-locales.d.ts +0 -9
  137. package/dist/server/auth-marketing-locales.js +0 -1322
  138. package/dist/templates/chat/public/auth-marketing/chat.webp +0 -0
  139. package/src/templates/chat/public/auth-marketing/chat.webp +0 -0
@@ -20,8 +20,7 @@ import { PASSWORD_MAX_LENGTH, PASSWORD_MIN_LENGTH, } from "../shared/password-po
20
20
  import { signInJourney } from "../shared/sign-in-journey.js";
21
21
  import { AGENT_NATIVE_SOCIAL_IMAGE_ALT, AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT, AGENT_NATIVE_SOCIAL_IMAGE_PATH, AGENT_NATIVE_SOCIAL_IMAGE_TYPE, AGENT_NATIVE_SOCIAL_IMAGE_WIDTH, withAgentNativeSocialImageCacheBuster, } from "../shared/social-meta.js";
22
22
  import { getAppBasePathFromViteEnv, normalizeAppBasePath, } from "./app-base-path.js";
23
- import { AUTH_MARKETING_LOCALE_COPY, } from "./auth-marketing-locales.js";
24
- import { BUILT_IN_AUTH_MARKETING, resolveBuiltInAuthMarketing, resolveBuiltInAuthMarketingByName, resolveBuiltInAuthMarketingPresentation, resolveBuiltInAuthMarketingSlug, } from "./auth-marketing.js";
23
+ import { resolveBuiltInAuthMarketing, resolveBuiltInAuthMarketingByName, resolveBuiltInAuthMarketingPresentation, } from "./auth-marketing.js";
25
24
  import { resolveGoogleAuthMode, } from "./google-auth-mode.js";
26
25
  import { hasGoogleSignInCredentials } from "./google-oauth-credentials.js";
27
26
  import { isCanonicalIdentitySsoClientRequest, isCanonicalIdentitySsoClientConfigured, isIdentitySsoAvailableForRequest, isNetlifyDeployPermalinkIdentitySsoClientRequest, } from "./identity-sso-store.js";
@@ -886,32 +885,6 @@ const AUTH_LOCALE_COPY = {
886
885
  googlePopupHelp: "اسمح بالنوافذ المنبثقة لهذا الموقع ثم حاول مرة أخرى",
887
886
  },
888
887
  };
889
- function resolveBuiltInMarketingSlug(marketing, opts = {}) {
890
- if (!marketing)
891
- return undefined;
892
- const matchesBuiltInMarketing = (builtIn) => marketing.appName === builtIn.appName &&
893
- marketing.tagline === builtIn.tagline &&
894
- marketing.description === builtIn.description &&
895
- JSON.stringify(marketing.features ?? []) ===
896
- JSON.stringify(builtIn.features ?? []) &&
897
- JSON.stringify(marketing.signupLocalModeNote ?? null) ===
898
- JSON.stringify(builtIn.signupLocalModeNote ?? null);
899
- const requestSlug = resolveBuiltInAuthMarketingSlug(opts);
900
- if (requestSlug) {
901
- const builtIn = BUILT_IN_AUTH_MARKETING[requestSlug];
902
- if (builtIn && matchesBuiltInMarketing(builtIn))
903
- return requestSlug;
904
- }
905
- for (const [slug, builtIn] of Object.entries(BUILT_IN_AUTH_MARKETING)) {
906
- // Caller-supplied marketing can reuse a built-in app name. Only an exact
907
- // content match may claim a slug, or localized copy would overwrite the
908
- // custom description/features.
909
- if (matchesBuiltInMarketing(builtIn)) {
910
- return slug;
911
- }
912
- }
913
- return undefined;
914
- }
915
888
  function normalizeRequestHostname(host) {
916
889
  const firstHost = host?.split(",")[0]?.trim().toLowerCase() ?? "";
917
890
  if (!firstHost)
@@ -1012,26 +985,12 @@ export function getOnboardingHtml(opts = {}) {
1012
985
  const marketingWasResolvedFromCatalog = !opts.marketing;
1013
986
  const isFirstPartyMarketing = marketing?.learnMoreUrl?.startsWith("https://agent-native.com/apps/") ??
1014
987
  false;
1015
- const marketingSlug = marketingWasResolvedFromCatalog
1016
- ? resolveBuiltInMarketingSlug(marketing, {
1017
- requestHost: opts.requestHost,
1018
- requestPath: opts.requestPath,
1019
- })
1020
- : undefined;
1021
988
  const marketingPresentation = marketingWasResolvedFromCatalog || isFirstPartyMarketing
1022
989
  ? resolveBuiltInAuthMarketingPresentation(marketing, {
1023
990
  requestHost: opts.requestHost,
1024
991
  requestPath: opts.requestPath,
1025
992
  })
1026
993
  : undefined;
1027
- const localizedMarketingCopy = {};
1028
- if (marketingSlug) {
1029
- for (const [locale, copyBySlug] of Object.entries(AUTH_MARKETING_LOCALE_COPY)) {
1030
- const copy = copyBySlug?.[marketingSlug];
1031
- if (copy)
1032
- localizedMarketingCopy[locale] = copy;
1033
- }
1034
- }
1035
994
  const signupLocalModeNote = isAgentNativeHostedHost(opts.requestHost) &&
1036
995
  marketing?.signupLocalModeNote?.command.trim()
1037
996
  ? {
@@ -1039,8 +998,6 @@ export function getOnboardingHtml(opts = {}) {
1039
998
  command: marketing.signupLocalModeNote.command.trim(),
1040
999
  }
1041
1000
  : undefined;
1042
- const brandMarkSrc = withAppBasePath("/agent-native-icon-dark.svg", appBasePath);
1043
- const brandMarkLightSrc = withAppBasePath("/agent-native-icon-light.svg", appBasePath);
1044
1001
  const socialImageUrl = withAgentNativeSocialImageCacheBuster(opts.requestOrigin
1045
1002
  ? `${opts.requestOrigin}${withAppBasePath(AGENT_NATIVE_SOCIAL_IMAGE_PATH, appBasePath)}`
1046
1003
  : withAppBasePath(AGENT_NATIVE_SOCIAL_IMAGE_PATH, appBasePath));
@@ -1083,367 +1040,6 @@ export function getOnboardingHtml(opts = {}) {
1083
1040
  const identitySsoAuto = identitySsoEnabled &&
1084
1041
  (isCanonicalIdentitySsoClientRequest(identitySsoRequestHost, identitySsoRequestProtocol) ||
1085
1042
  (!identitySsoRequestHost && isCanonicalIdentitySsoClientConfigured()));
1086
- const marketingStyles = hasMarketing
1087
- ? `
1088
- body.has-marketing {
1089
- --b-hero-ocean-opacity: 0.32;
1090
- --b-hero-shader-opacity: 0.15;
1091
- padding: 0;
1092
- position: relative;
1093
- overflow-x: clip;
1094
- color-scheme: dark;
1095
- }
1096
- [data-agent-native-starfield] {
1097
- position: fixed;
1098
- inset: 0;
1099
- width: 100%;
1100
- height: 100%;
1101
- opacity: var(--b-hero-shader-opacity, 0.15);
1102
- pointer-events: none;
1103
- z-index: 0;
1104
- }
1105
- @media (prefers-reduced-motion: reduce) {
1106
- [data-agent-native-starfield] {
1107
- opacity: var(--b-hero-shader-opacity, 0.15);
1108
- }
1109
- }
1110
- .split {
1111
- position: relative;
1112
- z-index: 1;
1113
- display: flex;
1114
- min-height: 100vh;
1115
- width: 100%;
1116
- max-width: 1100px;
1117
- margin: 0 auto;
1118
- }
1119
- .auth-marketing-learn-more {
1120
- display: block;
1121
- color: hsl(var(--foreground, 0 0% 90%));
1122
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1123
- font-size: 1.5rem;
1124
- font-weight: 500;
1125
- line-height: 1;
1126
- text-decoration: none;
1127
- white-space: nowrap;
1128
- }
1129
- .auth-marketing-learn-more:hover { color: hsl(var(--foreground, 0 0% 90%)); }
1130
- .auth-marketing-learn-more-link { color: inherit; }
1131
- .auth-marketing-screenshot-wrap {
1132
- display: flex;
1133
- align-items: center;
1134
- justify-content: flex-start;
1135
- width: 100%;
1136
- max-width: 100%;
1137
- max-height: calc(100vh - 3rem);
1138
- aspect-ratio: 914 / 818;
1139
- border-radius: 0.75rem;
1140
- overflow: hidden;
1141
- box-shadow: 0 12px 36px rgba(0,0,0,0.38); /* guard:allow-raw-color - standalone auth HTML has no app theme token layer */
1142
- }
1143
- .auth-marketing-screenshot {
1144
- display: block;
1145
- width: 100%;
1146
- height: 100%;
1147
- max-height: calc(100vh - 3rem);
1148
- object-fit: cover;
1149
- }
1150
- .marketing-panel {
1151
- flex: 1;
1152
- display: flex;
1153
- flex-direction: column;
1154
- justify-content: center;
1155
- padding: 3rem 3.5rem;
1156
- }
1157
- .marketing-content { max-width: 480px; }
1158
- .app-name {
1159
- display: flex;
1160
- align-items: center;
1161
- gap: 0.625rem;
1162
- font-size: 2rem;
1163
- font-weight: 700;
1164
- color: #fff;
1165
- margin-bottom: 0.625rem;
1166
- letter-spacing: -0.02em;
1167
- }
1168
- .app-name img.brand-mark {
1169
- height: 2.21375rem;
1170
- width: auto;
1171
- display: block;
1172
- flex-shrink: 0;
1173
- }
1174
- .app-tagline {
1175
- font-size: 1.25rem;
1176
- color: #a1a1aa;
1177
- line-height: 1.6;
1178
- margin-bottom: 2rem;
1179
- }
1180
- .app-desc {
1181
- font-size: 1rem;
1182
- color: #71717a;
1183
- line-height: 1.6;
1184
- margin-bottom: 2rem;
1185
- }
1186
- .feature-list {
1187
- list-style: none;
1188
- display: flex;
1189
- flex-direction: column;
1190
- gap: 0.875rem;
1191
- }
1192
- .feature-list li {
1193
- display: flex;
1194
- align-items: flex-start;
1195
- gap: 0.625rem;
1196
- font-size: 1rem;
1197
- color: #a1a1aa;
1198
- line-height: 1.5;
1199
- }
1200
- .feature-list li::before {
1201
- content: '';
1202
- flex-shrink: 0;
1203
- width: 8px;
1204
- height: 8px;
1205
- margin-top: 6px;
1206
- border-radius: 50%;
1207
- background: #3f3f46;
1208
- border: 1px solid #52525b;
1209
- }
1210
- .oss-link {
1211
- display: inline-flex;
1212
- align-items: center;
1213
- gap: 0.375rem;
1214
- font-size: 0.8125rem;
1215
- font-weight: 600;
1216
- color: #00B5FF;
1217
- text-decoration: none;
1218
- transition: color 0.15s ease;
1219
- }
1220
- .oss-link:hover { color: #33C4FF; }
1221
- .oss-link svg { width: 15px; height: 15px; flex-shrink: 0; }
1222
- .marketing-actions {
1223
- display: flex;
1224
- flex-wrap: wrap;
1225
- align-items: center;
1226
- gap: 0.75rem;
1227
- margin-top: 2rem;
1228
- }
1229
- .copy-run-local {
1230
- margin-top: 0.625rem;
1231
- padding: 0.375rem 0.625rem;
1232
- background: transparent;
1233
- color: #a1a1aa;
1234
- border: 1px solid rgba(255,255,255,0.12);
1235
- border-radius: 6px;
1236
- font-size: 0.75rem;
1237
- cursor: pointer;
1238
- }
1239
- .copy-run-local:hover { color: #fff; border-color: rgba(255,255,255,0.22); }
1240
- .form-panel {
1241
- flex: 0 0 440px;
1242
- display: flex;
1243
- flex-direction: column;
1244
- align-items: center;
1245
- justify-content: center;
1246
- padding: 2rem;
1247
- }
1248
- .form-panel .card { max-width: 400px; }
1249
- /* guard:allow-raw-color - standalone auth HTML has no app theme token layer */
1250
- .auth-marketing-home .card { box-shadow: 0 18px 50px rgba(0,0,0,0.62); }
1251
- @media (max-width: 900px) {
1252
- .auth-marketing-shell-with-top-right {
1253
- display: flex;
1254
- flex-direction: column;
1255
- align-items: stretch;
1256
- min-height: auto;
1257
- }
1258
- .auth-marketing-top-right {
1259
- display: flex;
1260
- justify-content: flex-start;
1261
- flex: none;
1262
- padding: 1rem 1rem 0;
1263
- }
1264
- .auth-marketing-learn-more {
1265
- font-size: 0.75rem;
1266
- }
1267
- .split { flex-direction: column; min-height: auto; }
1268
- .marketing-panel { padding: 4.25rem 1.5rem 1.5rem; }
1269
- .app-name { font-size: 1.375rem; }
1270
- .app-name img.brand-mark { height: 1.58125rem; }
1271
- .app-tagline { font-size: 1rem; margin-bottom: 1rem; }
1272
- .app-desc { margin-bottom: 1rem; }
1273
- .feature-list { gap: 0.5rem; }
1274
- .form-panel { flex: none; padding: 1.5rem 1rem; }
1275
- }
1276
- @media (prefers-color-scheme: light) {
1277
- body.has-marketing {
1278
- --b-hero-ocean-opacity: 0.3;
1279
- --b-hero-shader-opacity: 0.22;
1280
- background: color-mix(in srgb, CanvasText 4%, Canvas);
1281
- color: CanvasText;
1282
- color-scheme: light;
1283
- }
1284
- .auth-marketing-home {
1285
- background: color-mix(in srgb, CanvasText 4%, Canvas);
1286
- color: CanvasText;
1287
- }
1288
- .auth-marketing-home .auth-marketing-learn-more,
1289
- .auth-marketing-home .auth-marketing-learn-more:hover,
1290
- body.has-marketing .locale-trigger {
1291
- color: CanvasText;
1292
- }
1293
- .auth-marketing-home .auth-marketing-learn-more-link { color: inherit; }
1294
- /* The marketing panel's base colors are picked for the near-black body.
1295
- Without these the app name renders white-on-white and the whole panel
1296
- reads as empty rather than as low contrast. */
1297
- .auth-marketing-home .app-name { color: CanvasText; }
1298
- .auth-marketing-home .app-tagline,
1299
- .auth-marketing-home .feature-list li {
1300
- color: color-mix(in srgb, CanvasText 72%, Canvas);
1301
- }
1302
- .auth-marketing-home .app-desc {
1303
- color: color-mix(in srgb, CanvasText 62%, Canvas);
1304
- }
1305
- .auth-marketing-home .feature-list li::before {
1306
- background: color-mix(in srgb, CanvasText 22%, transparent);
1307
- border-color: color-mix(in srgb, CanvasText 38%, transparent);
1308
- }
1309
- .auth-marketing-home .oss-link { color: LinkText; }
1310
- .auth-marketing-home .oss-link:hover {
1311
- color: color-mix(in srgb, LinkText 75%, CanvasText);
1312
- }
1313
- .auth-marketing-home .copy-run-local {
1314
- color: color-mix(in srgb, CanvasText 62%, Canvas);
1315
- border-color: color-mix(in srgb, CanvasText 18%, transparent);
1316
- }
1317
- .auth-marketing-home .copy-run-local:hover {
1318
- color: CanvasText;
1319
- border-color: color-mix(in srgb, CanvasText 32%, transparent);
1320
- }
1321
- .auth-marketing-home .card {
1322
- background: Canvas;
1323
- border-color: color-mix(in srgb, CanvasText 14%, transparent);
1324
- color: CanvasText;
1325
- box-shadow: 0 18px 50px color-mix(in srgb, CanvasText 18%, transparent);
1326
- }
1327
- .auth-marketing-home .card h1 { color: CanvasText; }
1328
- .auth-marketing-home .card .subtitle,
1329
- .auth-marketing-home .card label { color: GrayText; }
1330
- .auth-marketing-home .card input {
1331
- color: CanvasText;
1332
- border-color: color-mix(in srgb, CanvasText 18%, transparent);
1333
- }
1334
- .auth-marketing-home .card input::placeholder { color: GrayText; }
1335
- .auth-marketing-home .card .tabs {
1336
- background: color-mix(in srgb, CanvasText 7%, transparent);
1337
- }
1338
- .auth-marketing-home .card .tab { color: GrayText; }
1339
- .auth-marketing-home .card .tab.active {
1340
- background: color-mix(in srgb, CanvasText 12%, transparent);
1341
- color: CanvasText;
1342
- box-shadow: 0 1px 2px color-mix(in srgb, CanvasText 18%, transparent);
1343
- }
1344
- .auth-marketing-home .card button[type="submit"],
1345
- .auth-marketing-home .card .btn-primary {
1346
- background: CanvasText;
1347
- color: Canvas;
1348
- }
1349
- .auth-marketing-home .card button[type="submit"]:hover,
1350
- .auth-marketing-home .card .btn-primary:hover {
1351
- background: color-mix(in srgb, CanvasText 82%, Canvas);
1352
- }
1353
- .auth-marketing-home .card .btn-google {
1354
- background: Canvas;
1355
- color: CanvasText;
1356
- border: 1px solid color-mix(in srgb, CanvasText 14%, transparent);
1357
- }
1358
- .auth-marketing-home .card .btn-google:hover {
1359
- background: color-mix(in srgb, CanvasText 6%, Canvas);
1360
- }
1361
- .auth-marketing-home .card .btn-secondary {
1362
- color: GrayText;
1363
- border-color: color-mix(in srgb, CanvasText 14%, transparent);
1364
- }
1365
- .auth-marketing-home .card .btn-secondary:hover,
1366
- .auth-marketing-home .card .link-button:hover {
1367
- color: CanvasText;
1368
- border-color: color-mix(in srgb, CanvasText 24%, transparent);
1369
- }
1370
- .auth-marketing-home .card .divider { color: GrayText; }
1371
- .auth-marketing-home .card .divider::before,
1372
- .auth-marketing-home .card .divider::after {
1373
- background: color-mix(in srgb, CanvasText 12%, transparent);
1374
- }
1375
- .auth-marketing-home .card .legal-note,
1376
- .auth-marketing-home .card .legal-note a,
1377
- .auth-marketing-home .card .local-dev-full-options {
1378
- color: GrayText;
1379
- }
1380
- .auth-marketing-home .card .signup-local-mode-note {
1381
- color: GrayText;
1382
- background: color-mix(in srgb, CanvasText 4%, transparent);
1383
- border-color: color-mix(in srgb, CanvasText 14%, transparent);
1384
- }
1385
- .auth-marketing-home .card .signup-local-mode-note code { color: CanvasText; }
1386
- .auth-marketing-home .card .progress-step { color: GrayText; }
1387
- .auth-marketing-home .card .progress-step::before {
1388
- background: color-mix(in srgb, CanvasText 12%, transparent);
1389
- }
1390
- .auth-marketing-home .card .progress-step span {
1391
- background: color-mix(in srgb, CanvasText 4%, Canvas);
1392
- border-color: color-mix(in srgb, CanvasText 18%, transparent);
1393
- color: GrayText;
1394
- }
1395
- .auth-marketing-home .card .progress-step.complete,
1396
- .auth-marketing-home .card .progress-step.current { color: CanvasText; }
1397
- .auth-marketing-home .card .progress-step.complete span {
1398
- background: color-mix(in srgb, LinkText 16%, transparent);
1399
- border-color: color-mix(in srgb, LinkText 55%, transparent);
1400
- color: LinkText;
1401
- }
1402
- .auth-marketing-home .card .progress-step.current span {
1403
- background: CanvasText;
1404
- border-color: CanvasText;
1405
- color: Canvas;
1406
- box-shadow: 0 0 0 4px color-mix(in srgb, CanvasText 8%, transparent);
1407
- }
1408
- .auth-marketing-home .card .verification-panel {
1409
- background: color-mix(in srgb, CanvasText 4%, transparent);
1410
- border-color: color-mix(in srgb, CanvasText 14%, transparent);
1411
- }
1412
- .auth-marketing-home .card .verification-kicker { color: LinkText; }
1413
- .auth-marketing-home .card .verification-copy,
1414
- .auth-marketing-home .card .verification-copy strong { color: CanvasText; }
1415
- .auth-marketing-home .card .verification-note,
1416
- .auth-marketing-home .card .link-button { color: GrayText; }
1417
- body.has-marketing .locale-menu {
1418
- background: Canvas;
1419
- color: CanvasText;
1420
- border-color: color-mix(in srgb, CanvasText 14%, transparent);
1421
- box-shadow: 0 18px 50px color-mix(in srgb, CanvasText 18%, transparent);
1422
- }
1423
- body.has-marketing .locale-menu-item { color: GrayText; }
1424
- body.has-marketing .locale-menu-item:hover,
1425
- body.has-marketing .locale-menu-item:focus,
1426
- body.has-marketing .locale-menu-item[aria-checked="true"] {
1427
- background: color-mix(in srgb, CanvasText 7%, transparent);
1428
- color: CanvasText;
1429
- }
1430
- }
1431
- `
1432
- : "";
1433
- const authMarketingLocales = Object.fromEntries(Object.entries(localizedMarketingCopy).map(([locale, copy]) => [
1434
- locale,
1435
- {
1436
- appName: marketing?.appName ?? "",
1437
- tagline: copy.tagline ?? marketing?.tagline ?? "",
1438
- description: copy.description ?? marketing?.description,
1439
- features: copy.features ?? marketing?.features,
1440
- authHeadline: copy.authHeadline ?? copy.tagline,
1441
- authDescription: copy.authDescription ??
1442
- copy.description ??
1443
- marketingPresentation?.description ??
1444
- marketing?.description,
1445
- },
1446
- ]));
1447
1043
  const authPageProps = {
1448
1044
  authMode,
1449
1045
  googleOnly,
@@ -1462,29 +1058,7 @@ export function getOnboardingHtml(opts = {}) {
1462
1058
  value: locale,
1463
1059
  label: localeDisplayName(locale),
1464
1060
  })),
1465
- marketing: hasMarketing && marketing
1466
- ? {
1467
- appName: marketing.appName,
1468
- tagline: marketing.tagline,
1469
- description: marketing.description,
1470
- features: marketing.features,
1471
- authHeadline: marketing.authHeadline ?? marketingPresentation?.headline,
1472
- authDescription: marketing.authDescription ?? marketingPresentation?.description,
1473
- screenshotSrc: marketing.screenshotPath
1474
- ? withAppBasePath(marketing.screenshotPath, appBasePath)
1475
- : undefined,
1476
- screenshotWidth: marketing.screenshotWidth,
1477
- screenshotHeight: marketing.screenshotHeight,
1478
- learnMoreUrl: marketing.learnMoreUrl ??
1479
- (marketingSlug
1480
- ? `https://agent-native.com/apps/${marketingSlug}`
1481
- : undefined),
1482
- }
1483
- : undefined,
1484
- marketingLocales: authMarketingLocales,
1485
- brandMarkSrc,
1486
- brandMarkLightSrc,
1487
- githubUrl: "https://github.com/BuilderIO/agent-native",
1061
+ appName: hasMarketing ? marketing?.appName : undefined,
1488
1062
  showGoogle,
1489
1063
  organizationSsoEnabled: getAppConfig().access.sso.enabled,
1490
1064
  signupLegalNotice,
@@ -2115,392 +1689,9 @@ export function getOnboardingHtml(opts = {}) {
2115
1689
  word-break: break-word;
2116
1690
  }
2117
1691
  .google-debug.show { display: block; }
2118
- ${marketingStyles}
2119
1692
  /* guard:allow-raw-color - standalone auth HTML has no app theme token layer */
2120
1693
  body.simplified-auth { background: #141414; }
2121
1694
  body.simplified-auth .card { border-color: transparent; box-shadow: none; }
2122
- `;
2123
- const authPageLayoutStyles = `
2124
- .auth-root { width: 100%; }
2125
- .auth-marketing-home { width: 100%; padding: 0; position: relative; overflow: clip; }
2126
- .auth-marketing-shell { padding: 0; }
2127
- .auth-marketing-home .auth-marketing-shell-with-top-right {
2128
- position: relative;
2129
- display: block;
2130
- min-height: 100vh;
2131
- }
2132
- .auth-marketing-top-right {
2133
- display: flex;
2134
- justify-content: flex-end;
2135
- align-items: center;
2136
- position: absolute;
2137
- padding: 0;
2138
- top: max(1rem, env(safe-area-inset-top));
2139
- inset-inline-end: max(4rem, calc(env(safe-area-inset-right) + 3.5rem));
2140
- z-index: 2;
2141
- }
2142
- .auth-marketing-learn-more { font-size: 0.8rem; }
2143
- .auth-marketing-home .auth-marketing-layout {
2144
- min-height: 100vh;
2145
- display: flex;
2146
- align-items: stretch;
2147
- }
2148
- .auth-marketing-home .split { width: 100%; max-width: none; margin: 0; }
2149
- .auth-marketing-home .marketing-panel {
2150
- order: 1;
2151
- flex: 1 1 50%;
2152
- max-width: none;
2153
- min-width: 0;
2154
- min-height: 100vh;
2155
- padding: 0;
2156
- }
2157
- .auth-marketing-visual {
2158
- position: relative;
2159
- display: flex;
2160
- min-height: 100vh;
2161
- width: 100%;
2162
- flex-direction: column;
2163
- justify-content: stretch;
2164
- overflow: hidden;
2165
- padding: 3rem 3.5rem;
2166
- }
2167
- .auth-marketing-visual > [data-agent-native-starfield] {
2168
- position: absolute;
2169
- inset: 0;
2170
- width: 100%;
2171
- height: 100%;
2172
- transform: none;
2173
- }
2174
- .auth-marketing-visual .marketing-content {
2175
- position: relative;
2176
- z-index: 1;
2177
- display: flex;
2178
- flex: 1;
2179
- flex-direction: column;
2180
- justify-content: space-between;
2181
- width: 100%;
2182
- min-height: calc(100vh - 6rem);
2183
- }
2184
- .auth-marketing-visual .marketing-copy { margin-top: auto; }
2185
- .auth-marketing-home .form-panel {
2186
- order: 2;
2187
- flex: 1 1 50%;
2188
- width: auto;
2189
- max-width: none;
2190
- min-width: 0;
2191
- min-height: 100vh;
2192
- padding: 2rem clamp(2rem, 6vw, 6rem);
2193
- background: color-mix(in srgb, CanvasText 4%, Canvas);
2194
- border-inline-start: 1px solid color-mix(in srgb, CanvasText 10%, transparent);
2195
- }
2196
- .auth-marketing-home .form-panel > .card { margin-block: auto; }
2197
- @media (max-width: 900px) {
2198
- body.has-marketing {
2199
- align-items: flex-start;
2200
- justify-content: flex-start;
2201
- }
2202
- .auth-marketing-home .auth-marketing-top-right {
2203
- top: max(1rem, env(safe-area-inset-top));
2204
- inset-inline-start: auto;
2205
- inset-inline-end: max(4rem, calc(env(safe-area-inset-right) + 3.5rem));
2206
- transform: none;
2207
- }
2208
- .auth-marketing-home .auth-marketing-visual {
2209
- min-height: min(62vh, 560px);
2210
- padding: 4.25rem 1.5rem 2rem;
2211
- }
2212
- .auth-marketing-home .auth-marketing-visual .marketing-content {
2213
- min-height: min(54vh, 470px);
2214
- }
2215
- .auth-marketing-home .form-panel {
2216
- flex: none;
2217
- width: 100%;
2218
- min-height: auto;
2219
- padding: 1.5rem 1.25rem;
2220
- border-inline-start: 0;
2221
- }
2222
- .auth-marketing-home .auth-marketing-layout { min-height: auto; }
2223
- .auth-marketing-home .auth-marketing-shell { display: block; }
2224
- .auth-marketing-home .auth-marketing-shell-with-top-right { display: flex; }
2225
- }
2226
- /* guard:allow-raw-color - these are the exact standalone auth palette tokens from Figma */
2227
- body.has-marketing {
2228
- --auth-marketing-left-bg: #090909; /* guard:allow-raw-color - exact Figma auth palette */
2229
- --auth-marketing-right-bg: #141414; /* guard:allow-raw-color - exact Figma auth palette */
2230
- --auth-marketing-foreground: #faf9f5; /* guard:allow-raw-color - exact Figma auth palette */
2231
- --auth-marketing-muted: #9a9997; /* guard:allow-raw-color - exact Figma auth palette */
2232
- --auth-marketing-subtle: #858583; /* guard:allow-raw-color - exact Figma auth palette */
2233
- --auth-marketing-border: #2e2e2e; /* guard:allow-raw-color - exact Figma auth palette */
2234
- --auth-marketing-badge-bg: #1b1b1b; /* guard:allow-raw-color - exact Figma auth palette */
2235
- }
2236
- body.has-marketing,
2237
- .auth-marketing-home {
2238
- font-family: "Geist", system-ui, sans-serif;
2239
- font-synthesis: none;
2240
- }
2241
- .auth-marketing-home {
2242
- background: var(--auth-marketing-right-bg);
2243
- color: var(--auth-marketing-foreground);
2244
- }
2245
- .auth-marketing-home .auth-marketing-top-right {
2246
- top: 4.5rem;
2247
- inset-inline-end: 5rem;
2248
- }
2249
- .auth-marketing-home .auth-marketing-learn-more {
2250
- color: var(--auth-marketing-muted);
2251
- font-family: "Geist Mono", ui-monospace, monospace;
2252
- font-size: 1rem;
2253
- font-weight: 400;
2254
- line-height: 1.25;
2255
- }
2256
- .auth-marketing-home .auth-marketing-learn-more:hover,
2257
- .auth-marketing-home .auth-marketing-learn-more-link {
2258
- color: inherit;
2259
- }
2260
- .auth-marketing-home .auth-marketing-layout {
2261
- border: 0;
2262
- }
2263
- .auth-marketing-home .marketing-panel {
2264
- background: var(--auth-marketing-left-bg);
2265
- }
2266
- .auth-marketing-home .auth-marketing-visual {
2267
- min-height: 100vh;
2268
- padding: 4.5rem 5rem 4rem;
2269
- background: var(--auth-marketing-left-bg);
2270
- }
2271
- .auth-marketing-home .auth-marketing-screenshot-wrap {
2272
- position: fixed;
2273
- inset: 0;
2274
- z-index: 0;
2275
- display: block;
2276
- width: 100%;
2277
- height: 100%;
2278
- max-width: none;
2279
- max-height: none;
2280
- margin: 0;
2281
- border-radius: 0;
2282
- box-shadow: none;
2283
- }
2284
- .auth-marketing-home .auth-marketing-screenshot {
2285
- display: block;
2286
- width: 100%;
2287
- height: 100%;
2288
- max-width: none;
2289
- max-height: none;
2290
- filter: none;
2291
- }
2292
- .auth-marketing-home [data-agent-native-starfield] {
2293
- position: fixed;
2294
- inset: 0;
2295
- width: 100%;
2296
- height: 100%;
2297
- transform: translateY(-5vh);
2298
- }
2299
- .auth-marketing-home .auth-marketing-visual .marketing-content {
2300
- min-height: calc(100vh - 8.5rem);
2301
- }
2302
- .auth-marketing-home .app-name {
2303
- gap: 0.7rem;
2304
- margin: 0;
2305
- color: var(--auth-marketing-foreground);
2306
- font: 600 1.8rem/1 "Geist", system-ui, sans-serif;
2307
- letter-spacing: -0.04em;
2308
- }
2309
- .auth-marketing-home .app-name img.brand-mark {
2310
- width: auto;
2311
- height: 1.55rem;
2312
- filter: grayscale(1) brightness(0) invert(1);
2313
- }
2314
- .auth-marketing-home .app-status-badge {
2315
- display: inline-flex;
2316
- align-items: center;
2317
- min-height: 1.6rem;
2318
- padding: 0.3rem 0.7rem;
2319
- border-radius: 999px;
2320
- background: var(--auth-marketing-foreground);
2321
- color: var(--auth-marketing-right-bg);
2322
- font: 600 0.8rem/1 "Geist Mono", ui-monospace, monospace;
2323
- letter-spacing: 0.02em;
2324
- text-transform: uppercase;
2325
- }
2326
- .auth-marketing-home .marketing-copy {
2327
- max-width: 50rem;
2328
- }
2329
- .auth-marketing-home .auth-marketing-headline {
2330
- max-width: 52rem;
2331
- margin: 0;
2332
- color: var(--auth-marketing-foreground);
2333
- font: 400 2.875rem/1.2 "Geist", system-ui, sans-serif;
2334
- letter-spacing: -0.04em;
2335
- white-space: pre-line;
2336
- }
2337
- .auth-marketing-home .auth-marketing-description {
2338
- margin: 1.5rem 0 0;
2339
- color: var(--auth-marketing-muted);
2340
- font: 400 1.25rem/1.35 "Geist", system-ui, sans-serif;
2341
- }
2342
- .auth-marketing-home .auth-marketing-description-link {
2343
- color: inherit;
2344
- text-decoration: underline;
2345
- text-underline-offset: 0.15em;
2346
- white-space: nowrap;
2347
- }
2348
- .auth-marketing-home .auth-marketing-description-link:hover {
2349
- color: var(--auth-marketing-foreground);
2350
- }
2351
- .auth-marketing-home .marketing-actions {
2352
- margin-top: 3rem;
2353
- }
2354
- .auth-marketing-home .oss-badge {
2355
- display: inline-flex;
2356
- align-items: center;
2357
- gap: 0.5rem;
2358
- min-height: 2.125rem;
2359
- padding: 0.5rem 0.75rem;
2360
- border: 1px solid var(--auth-marketing-border);
2361
- border-radius: 0.375rem;
2362
- background: var(--auth-marketing-badge-bg);
2363
- color: var(--auth-marketing-foreground);
2364
- font: 600 0.875rem/1 "Geist Mono", ui-monospace, monospace;
2365
- letter-spacing: 0.02em;
2366
- text-decoration: none;
2367
- text-transform: uppercase;
2368
- }
2369
- .auth-marketing-home .oss-badge:hover {
2370
- border-color: var(--auth-marketing-muted);
2371
- }
2372
- .auth-marketing-home .form-panel {
2373
- padding: 0 5rem;
2374
- background: var(--auth-marketing-right-bg);
2375
- border-inline-start: 1px solid var(--auth-marketing-border);
2376
- position: relative;
2377
- z-index: 1;
2378
- }
2379
- .auth-marketing-home .form-panel > .card {
2380
- width: min(27.5rem, 100%);
2381
- max-width: 27.5rem;
2382
- padding: 0;
2383
- background: transparent;
2384
- border: 0;
2385
- border-radius: 0;
2386
- box-shadow: none;
2387
- }
2388
- .auth-marketing-home .card h1 {
2389
- margin-bottom: 0.75rem;
2390
- color: var(--auth-marketing-foreground);
2391
- font: 400 2.5rem/1.2 "Geist", system-ui, sans-serif;
2392
- letter-spacing: -0.035em;
2393
- text-align: center;
2394
- }
2395
- .auth-marketing-home .card .subtitle {
2396
- margin-bottom: 3rem;
2397
- color: var(--auth-marketing-muted);
2398
- font: 400 1.125rem/1.35 "Geist", system-ui, sans-serif;
2399
- text-align: center;
2400
- }
2401
- .auth-marketing-home .card .divider {
2402
- color: var(--auth-marketing-muted);
2403
- font: 400 1rem/1.35 "Geist", system-ui, sans-serif;
2404
- }
2405
- .auth-marketing-home .card .auth-mode-switch {
2406
- margin-top: 0.75rem;
2407
- font: 400 0.9375rem/1.35 "Geist", system-ui, sans-serif;
2408
- text-align: start;
2409
- }
2410
- .auth-marketing-home .card .auth-mode-link,
2411
- .auth-marketing-home .card .auth-mode-link:hover {
2412
- color: var(--auth-marketing-muted);
2413
- font: inherit;
2414
- text-decoration: none;
2415
- }
2416
- .auth-marketing-home .card .legal-note {
2417
- margin: 3.5rem 0 0;
2418
- color: var(--auth-marketing-subtle);
2419
- font: 400 0.8125rem/1.35 "Geist", system-ui, sans-serif;
2420
- text-align: center;
2421
- }
2422
- .auth-marketing-home .card .legal-note a,
2423
- .auth-marketing-home .card .legal-note a:hover {
2424
- color: inherit;
2425
- text-decoration: underline;
2426
- text-underline-offset: 0.125rem;
2427
- }
2428
- body.has-marketing .locale-picker {
2429
- top: auto;
2430
- bottom: max(1.25rem, env(safe-area-inset-bottom));
2431
- inset-inline-end: max(1.25rem, env(safe-area-inset-right));
2432
- }
2433
- @media (prefers-color-scheme: light) {
2434
- body.has-marketing {
2435
- --auth-marketing-left-bg: Canvas;
2436
- --auth-marketing-right-bg: Canvas;
2437
- --auth-marketing-foreground: CanvasText;
2438
- --auth-marketing-muted: GrayText;
2439
- --auth-marketing-subtle: GrayText;
2440
- --auth-marketing-border: color-mix(in srgb, CanvasText 18%, transparent);
2441
- --auth-marketing-badge-bg: color-mix(in srgb, CanvasText 7%, Canvas);
2442
- }
2443
- .auth-marketing-home .auth-marketing-visual,
2444
- .auth-marketing-home .marketing-panel,
2445
- .auth-marketing-home .form-panel {
2446
- background: Canvas;
2447
- }
2448
- .auth-marketing-home .app-name img.brand-mark {
2449
- filter: grayscale(1) brightness(0);
2450
- }
2451
- }
2452
- @media (max-width: 900px) {
2453
- .auth-marketing-home {
2454
- min-height: 100vh;
2455
- min-height: 100svh;
2456
- }
2457
- .auth-marketing-home .auth-marketing-shell-with-top-right {
2458
- flex-direction: column;
2459
- }
2460
- .auth-marketing-home .auth-marketing-top-right {
2461
- display: none;
2462
- }
2463
- .auth-marketing-home .auth-marketing-layout {
2464
- flex-direction: column;
2465
- }
2466
- .auth-marketing-home .auth-marketing-visual {
2467
- min-height: min(62vh, 560px);
2468
- padding: 4.5rem 1.5rem 2rem;
2469
- }
2470
- .auth-marketing-home .auth-marketing-visual .marketing-content {
2471
- min-height: min(54vh, 470px);
2472
- }
2473
- .auth-marketing-home .auth-marketing-headline {
2474
- font-size: 2.25rem;
2475
- }
2476
- .auth-marketing-home .form-panel {
2477
- order: 1;
2478
- padding: max(1.5rem, env(safe-area-inset-top)) 1.25rem max(1.5rem, env(safe-area-inset-bottom));
2479
- border-inline-start: 0;
2480
- }
2481
- .auth-marketing-home .marketing-panel { display: none; }
2482
- .auth-marketing-home .card h1 {
2483
- font-size: clamp(1.625rem, 6vw, 2rem);
2484
- line-height: 1.15;
2485
- margin-bottom: 0.5rem;
2486
- }
2487
- .auth-marketing-home .card .subtitle {
2488
- margin-bottom: 1.5rem;
2489
- font-size: 1rem;
2490
- line-height: 1.4;
2491
- }
2492
- .auth-marketing-home .card .divider { margin: 1rem 0; }
2493
- .auth-marketing-home .card .legal-note { margin-top: 1.5rem; }
2494
- .auth-marketing-home .card input,
2495
- .auth-marketing-home .card button {
2496
- min-height: 2.75rem;
2497
- }
2498
- body.has-marketing .locale-trigger {
2499
- min-width: 2.75rem;
2500
- min-height: 2.75rem;
2501
- }
2502
- .auth-marketing-home .card input { font-size: 1rem; }
2503
- }
2504
1695
  `;
2505
1696
  const authClientScriptPath = authClientAssetPath(appBasePath);
2506
1697
  const title = hasMarketing
@@ -2625,17 +1816,13 @@ ${marketingStyles}
2625
1816
  ]
2626
1817
  : null, createElement("style", {
2627
1818
  dangerouslySetInnerHTML: {
2628
- __html: authDocumentStyles + authPageLayoutStyles,
1819
+ __html: authDocumentStyles,
2629
1820
  },
2630
1821
  }), createElement("script", {
2631
1822
  type: "module",
2632
1823
  src: authClientScriptPath,
2633
1824
  })), createElement("body", {
2634
- className: simplifiedAuth
2635
- ? "simplified-auth"
2636
- : hasMarketing
2637
- ? "has-marketing"
2638
- : undefined,
1825
+ className: simplifiedAuth ? "simplified-auth" : undefined,
2639
1826
  }, createElement("div", { id: "agent-native-auth-root", className: "auth-root" }, createElement(AuthPage, authPageProps)), createElement("script", {
2640
1827
  type: "application/json",
2641
1828
  id: "agent-native-auth-data",