1<!DOCTYPE html> 2 3<!-- Last Published: Tue, September 29 2026 17:24:26 --> 4<html lang="en-US" dir="ltr"> 5<head> 6 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> 10 <link rel="preconnect" href="https://assets.softr-files.com"> 11 <link rel="stylesheet" 12 href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" 13 integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" 14 crossorigin="anonymous"> 15
15<script> 16 const reactDefaultThemes = {defaultBaseTextSize: '16px',defaultBodyFont: 'Plus Jakarta Sans',defaultBodyFontWeight: '500',defaultBodyTextColor: '#152237',defaultButtonBackgroundColor: '#0035d0',defaultButtonRoundness: '.25rem',defaultRoundButtonsAndInputs: false,defaultButtonTextColor: '#ffffff',defaultContainerStyle: 'container-fluid',defaultTitleFont: 'Plus Jakarta Sans',defaultTitleFontWeight: '600',defaultTitleTextColor: '#080a19',defaultSize: 'S',defaultSizeDesktop: 'S',defaultSizeMobile: 'M',defaultDensityLayout: 'COMPACT',defaultDensitySection: 'COMPACT',defaultBackgroundColor: '#ffffff',defaultShadow: false,defaultBackgroundStyle: 'HIGHLIGHTED',defaultSurfaceColor: '#faf9f7',defaultSuccessColor: '#0c9b10',defaultWarningColor: '#f5c630',defaultDangerColor: '#e7000b',defaultNavigationDesktopTop: 'regular',defaultNavigationDesktopSide: 'regular',defaultNavigationMobileTop: 'regular',defaultNavigationMobileSide: 'surface',defaultNavigationMobileBottom: 'surface',defaultBorderVariant: 'off'}; 17 </script>
17 18
18<script>window.isNavigationTransitionsEnabled = true; window.isViteBuildEnabled = true; </script>
18 19
19<script src="https://assets.softr-files.com/softr-blocks/prod/libs/softr-page-renderer/softr-page-renderer.js?t=1779882547065"></script>
19 20 21<meta name="twitter:title" content="Log in"> 22<meta property="twitter:title" content="Log in"> 23<meta property="og:title" content="Log in"> 24<meta name="twitter:description" content="Made with Softr, the easiest way to turn your data into internal tools and client portals. No coding required."> 25<meta property="twitter:description" content="Made with Softr, the easiest way to turn your data into internal tools and client portals. No coding required."> 26<meta property="og:description" content="Made with Softr, the easiest way to turn your data into internal tools and client portals. No coding required."> 27<meta property="og:image" content="https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/e4945c67-5a04-44cd-87fa-ab9af9cdb1d4.png"> 28<meta name="twitter:image" content="https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/e4945c67-5a04-44cd-87fa-ab9af9cdb1d4.png"> 29<meta name="twitter:card" content="summary_large_image"> 30<meta property="og:url" content="https://toptierclosers.softr.app/login"> 31<meta property="twitter:url" content="https://toptierclosers.softr.app/login"> 32<meta property="og:type" content="website"> 33<meta property="og:site_name" content="Top Tier Closers"> 34 35<title>Log in</title> 36<meta name="description" content="Made with Softr, the easiest way to turn your data into internal tools and client portals. No coding required."> 37 38 39<link rel="icon" type="image/x-icon" href="https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/a1383469-8f07-4611-ae5d-afd17a6c8e5e.png?rnd=1784552303513"/> 40 41 42<link rel="canonical" href="https://toptierclosers.softr.app/login" /> 43<link href="https://fonts.softr-files.com/google/api/css?family=Plus+Jakarta+Sans:200,300,400,500,600,700,800,200i,300i,400i,500i,600i,700i,800i&display=block" rel="stylesheet"> 44 45<link href="https://assets.softr-files.com/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet"> 46 47 48<style type="text/css"> 49 50 html { 51 scroll-behavior: smooth; 52 font-size: 16px; 53 overflow-x: hidden; 54 background-color: #ffffff; 55 } 56 57 body { 58 /* fallback for devices that do not support dvh units */ 59 min-height: 100vh; 60 min-height: 100dvh; 61 /* reboot.css sets its own background, but we want it to match our theme */ 62 background-color: inherit; 63 } 64 65 .container { 66 max-width: 100%; 67 } 68 69 @media (min-width: 576px) { 70 .container { 71 max-width: 100%; 72 } 73 } 74 75 @media (max-width: 576px) { 76 .navbar-brand img { 77 max-width: 15rem !important; 78 } 79 } 80 81 @media (min-width: 768px) { 82 .container { 83 max-width: 100%; 84 } 85 } 86 87 @media (min-width: 992px) { 88 .container { 89 max-width: 100%; 90 } 91 } 92 93 @media (min-width: 1200px) { 94 .container { 95 max-width: 100%; 96 } 97 } 98 99 p, h1, h2, h3, h4, h5, small { 100 white-space: pre-line; 101 } 102 103 @media screen and (max-width: 768px) { 104 input, select, textarea { 105 font-size: 16px !important; 106 } 107 } 108 109 h1.sw-font-family-default, 110 h2.sw-font-family-default, 111 h3.sw-font-family-default { 112 font-family: "Plus Jakarta Sans"; 113 } 114 115 h1.sw-font-weight-default, 116 h2.sw-font-weight-default, 117 h3.sw-font-family-default { 118 font-weight: 600; 119 } 120 121 h1.sw-text-color-default, 122 h2.sw-text-color-default, 123 h3.sw-font-family-default { 124 color: #080a19; 125 } 126 127 section.sw-font-family-default, 128 header.sw-font-family-default, 129 nav.sw-font-family-default, 130 footer.sw-font-family-default, 131 div.sw-font-family-default, 132 span.sw-font-family-default, 133 small.sw-font-family-default, 134 pre.sw-font-family-default, 135 p.sw-font-family-default, 136 b.sw-font-family-default, 137 li.sw-font-family-default, 138 ul.sw-font-family-default, 139 a.sw-font-family-default, 140 h4.sw-font-family-default, 141 h5.sw-font-family-default, 142 h6.sw-font-family-default { 143 font-family: "Plus Jakarta Sans"; 144 } 145 146 span.sw-font-weight-default, 147 li.sw-font-weight-default span, 148 small.sw-font-weight-default, 149 li.sw-font-weight-default small, 150 pre.sw-font-weight-default, 151 p.sw-font-weight-default, 152 h4.sw-font-weight-default, 153 h5.sw-font-weight-default, 154 h6.sw-font-weight-default { 155 font-weight: 500; 156 } 157 158 span.sw-text-color-default, 159 li.sw-text-color-default span, 160 small.sw-text-color-default, 161 li.sw-text-color-default small, 162 pre.sw-text-color-default, 163 p.sw-text-color-default, 164 div.sw-text-color-default, 165 h4.sw-text-color-default, 166 h5.sw-text-color-default, 167 h6.sw-text-color-default { 168 color: #152237; 169 } 170 171 input.sw-font-family-default, 172 textarea.sw-font-family-default { 173 font-family: "Plus Jakarta Sans"; 174 } 175 176 input.sw-font-weight-default, 177 textarea.sw-font-weight-default { 178 font-weight: 500; 179 } 180 181 .sw-font-family-default::-webkit-input-placeholder, 182 .sw-font-family-default::-moz-placeholder, 183 .sw-font-family-default:-ms-input-placeholder, 184 .sw-font-family-default:-moz-placeholder { 185 font-family: "Plus Jakarta Sans"; 186 } 187 188 .sw-font-family-default::-webkit-input-placeholder, 189 .sw-font-family-default::-moz-placeholder, 190 .sw-font-family-default:-ms-input-placeholder, 191 .sw-font-family-default:-moz-placeholder { 192 font-weight: 500; 193 } 194 195 .sw-text-color-default[data-element='button'] { 196 color: #ffffff; 197 } 198 199 .sw-background-color-default[data-element='button'] { 200 background-color: #0035d0; 201 } 202 203 .sw-border-radius-default[data-element='button'] { 204 border-radius: .25rem; 205 } 206 207 /* Micromodal styles */ 208 .sw-modal { 209 display: none; 210 } 211 212 .sw-modal.is-open { 213 display: block; 214 } 215 216 .sw-modal .sw-modal-overlay { 217 position: fixed; 218 top: 0; 219 left: 0; 220 right: 0; 221 bottom: 0; 222 background: rgba(0, 0, 0, 0.6); 223 display: flex; 224 justify-content: center; 225 align-items: center; 226 z-index: 9999; 227 } 228 229 .sw-modal .sw-modal-container { 230 background-color: #FFFFFF; 231 padding: 40px 10px 10px 10px; 232 overflow-y: auto; 233 box-sizing: border-box; 234 position: relative; 235 margin: auto; 236 border-radius: 16px; 237 } 238 239 .sw-modal #sw-modal-content { 240 display: flex; 241 align-items: center; 242 justify-content: center; 243 } 244 245 .sw-modal .sw-modal-close { 246 background: transparent; 247 border: 0; 248 position: absolute; 249 right: 10px; 250 top: 10px; 251 } 252
253 .sw-modal-close:focus { 254 outline: none; 255 } 256 257 .sw-modal .sw-modal-iframe { 258 border: none; 259 } 260 261 .sw-modal-size-sm { 262 width: 464px; 263 height: 350px; 264 max-width: 95vw; 265 max-height: 95vh; 266 } 267 268 269 .sw-modal-size-md { 270 width: 755px; 271 height: 600px; 272 max-width: 95vw; 273 max-height: 95vh; 274 } 275 276 .sw-modal-size-lg { 277 width: 1196px; 278 height: 780px; 279 max-width: 95vw; 280 max-height: 95vh; 281 } 282 283 .sw-modal-size-xl { 284 width: 95vw; 285 height: 95vh; 286 } 287 288 .sw-modal-container > div, #sw-modal-content, #sw-modal-content iframe { 289 width: 100%; 290 height: 100%; 291 } 292 293 .sw-modal-close:before { 294 content: "\2715"; 295 } 296 297 @keyframes rotation { 298 from { 299 transform: rotate(0deg); 300 } 301 to { 302 transform: rotate(359deg); 303 } 304 } 305 306 307</style> 308 309<style> 310 .sw-font-size-3xl { 311 font-size: 2rem; 312 } 313 .sw-font-size-4xl { 314 font-size: 2.25rem; 315 } 316 .sw-font-size-5xl { 317 font-size: 3rem; 318 } 319 320</style> 321 322<!-- App Integrations --> 323 324<!-- End Integrations --> 325 326 327
328<script>window['application_context'] = {}; window['application_context']['policies'] ={"numberOfSupportedDomains":1,"canDisableSoftrBranding":true,"hasSoftrBrandingFooterBoundSupport":true,"numberOfDatasourceRecordsPerTable":null,"numberOfInternalUsers":null,"numberOfExternalUsers":null,"supportedNumberOfMembershipUsers":null,"hasGoogleAuthenticationSupport":true,"hasSamlAuthenticationSupport":false,"hasOpenIdAuthenticationSupport":false,"hasUserLastSeenSupport":true,"hasUserAuthOneTimeCodeSupport":true,"has2faSupport":false,"hasAdvancedSecuritySupport":false,"hasScimSupport":false,"numberOfDaysApplicationHistory":90,"hasCustomCodeSupport":true,"hasEmbedBlockSupport":true,"hasTransferApplicationsAcrossWorkspace":true,"hasPwaSupport":true,"hasPushNotificationsSupport":true,"hasInAppNotificationsSupport":true,"hasDynamicAppLogoSupport":false,"hasSignatureFieldSupport":true,"hasFormConditionsSupport":true,"numberOfFormStepConditions":null,"numberOfFormSectionConditions":null,"numberOfFormEndings":null,"hasTransferOwnershipSupport":null,"hasActionButtonRecordLevelVisibilitySupport":true,"hasActionButtonCustomUserGroupVisibilitySupport":true,"numberOfUsersInWorkspace":100,"numberOfCustomUserGroups":3,"numberOfBuilders":null,"hasBuilderAddOnSupport":false,"numberOfTeamUsers":null,"maxTeamUsers":null,"numberOfClientUsers":null,"maxClientUsers":null,"restrictedDataSources":["HUBSPOT","GOOGLE_BIGQUERY","MYSQL","POSTGRESQL","SQL_SERVER","MARIADB","SNOWFLAKE","SALESFORCE","MICROSOFT_EXCEL"],"restrictedBlocks":[],"hasInlineEditingSupport":true,"hasFilteredUserSyncSupport":true,"restrictedActions":[],"hasEditAddFormOptionFilterSupport":null,"hasCustomEmailSenderSupport":true,"hasSoftrApiSupport":true,"hasDomainRestrictedSignUpSupport":false,"supportedDataRestrictionOperations":["VIEW"],"hasHideBlockOnDetailsPageSupport":true,"hasOptionFilterSupport":true,"restrictedFiledOptions":["EMAIL_DOMAIN_RESTRICTIONS","EMAIL_CHECK_IF_EMAIL_EXISTS","EMAIL_DISALLOW_FREE_DOMAINS"],"hasAdvancedEmailValidation":false,"hasCustomDomainAddOnSupport":true,"hasUserAddOnSupport":true,"numberOfAiCredits":5000,"hasAgentsByokSupport":false,"workflowsMaxExecutionTimeSeconds":null,"workflowsMinimumPollingIntervalSeconds":60,"numberOfWorkflowActionExecutionsPerMonth":10000,"restrictedWorkflowActions":["OPEN_AI_SEND_PROMPT","OPEN_AI_WRITE_TEXT","OPEN_AI_SUMMARIZE_TEXT","OPEN_AI_CATEGORISE_TEXT","ANTHROPIC_AI_SEND_PROMPT","ANTHROPIC_AI_WRITE_TEXT","ANTHROPIC_AI_SUMMARIZE_TEXT","ANTHROPIC_AI_CATEGORISE_TEXT","GEMINI_AI_CATEGORISE_TEXT","GEMINI_AI_SEND_PROMPT","GEMINI_AI_SUMMARIZE_TEXT","GEMINI_AI_WRITE_TEXT","MISTRAL_AI_CATEGORISE_TEXT","MISTRAL_AI_SEND_PROMPT","MISTRAL_AI_SUMMARIZE_TEXT","MISTRAL_AI_WRITE_TEXT"],"restrictedWorkflowTriggers":[],"workflowsExecutionLogsRetentionTimeDays":60,"hasApplicationLevelCommentsSupport":true,"numberOfSupportedSoftrDatabaseRecordsPerWorkspace":500000,"numberOfSupportedSoftrDatabaseRecordsPerDatabase":50000,"supportedSoftrDatabaseStorageSizePerWorkspace":50000000000,"hasSoftrDatabaseApiSupport":true,"numberOfSoftrDatabaseSnapshotHistoryDays":14,"numberOfSoftrDatabaseSnapshotFrequencyDays":1,"numberOfSoftrDatabaseManualSnapshots":10,"numberOfSoftrDatabaseRecordHistoryDays":30,"canDisableSoftrBrandingForStandaloneForm":true,"canChangeSocialSettingsForStandaloneForm":true,"hasDomainRestrictedStandaloneForm":true,"hasAuditLogSupport":false,"hasOnboardingFlowsSupport":true,"hasGlobalSearchSupport":false,"hasRegexValidationSupport":true,"hasLiveChatSupport":true,"hasApplicationMcpSupport":false}; window['application_context']['date_and_time_settings'] = {"formatSettings":{"type":"LOCAL","localSettings":{"localizeDayAndMonth":true},"fixedSettings":null},"timezoneSettings":{"type":"LOCAL","fixedTimezone":null}}; window['application_context']['number_formatting_settings'] = {"type":"LOCAL","fixedLocale":"en-US"}; window['application_context']['global_search_settings'] = {"enabled":false,"searchPlaceholder":"Search","initialStateMessage":"Type something to start searching","initialStateImage":null,"noResultsMessage":"No results found","noResultsImage":null,"backdrop":null}; window['application_context']['user_settings'] = {"authSettings":{"loginEnabled":true,"authenticationMethods":["EMAIL"],"signUpSettings":{"policy":"DISABLED","allowedDomains":[]},"userSessionExpiration":"90_DAYS","userInactivityTimeout":"NEVER","emailAuthSettings":{"loginMethods":["PASSWORD","EMAIL_CODE"],"passwordSettings":{"inputLabel":"Password","inputPlaceholder":"Enter your password","forgotPasswordText":"Forgot password","incorrectPasswordText":"Incorrect password.","newPasswordLabel":"New password","newPasswordPlaceholder":"Set a secure password","strongPasswords":true,"minimumCharactersText":"At least 12 characters","upperAndLowerCaseText":"1 uppercase & 1 lowercase","numberText":"1 number (0-9)","symbolText":"1 symbol (!@#$%^&*)","repeatPasswordLabel":"Repeat password","repeatPasswordPlaceholder":"Repeat your password","passwordsDontMatchText":"Passwords don't match."},"emailOneTimeCodeSettings":{"expiration":"5_MINUTES","inputLabel":"Verification code","inputPlaceholder":"Enter verification code","resendText":"Resend","invali
328dCodeText":"Invalid code."},"secondaryLoginMethods":[],"smsOneTimeCodeSettings":null,"authenticatorSettings":null,"inputLabel":"Email","inputPlaceholder":"Enter your email"},"googleSettings":{"clientId":null,"clientSecret":null,"userType":"INTERNAL","emailDomains":[]},"ssoSettings":{"type":"SAML","emailDomains":[],"saml":{"acsUrl":null,"audienceUrl":null,"metadataXml":null,"emailKey":null,"firstNameKey":null,"lastNameKey":null},"openId":{"callbackUrl":null,"providerUrl":null,"tokenServiceUrl":null,"clientId":null,"clientSecret":null}},"authenticatorAppSettings":{"enabled":false,"generalSettings":{"emailPairing":"OPTIONAL","googlePairing":"OPTIONAL","ssoPairing":"OPTIONAL"},"setupSettings":{"setupPrompt":{"title":"Secure your account with 2FA","subtitle":"Set up an authenticator app to make your account more secure","skipButton":"Not now","setupButton":"Set up"},"setupInstruction":{"title":"Set up authenticator app","qrDesktop":"Scan the QR code below with an authenticator app","mobileText":"Click the button below to set up an authenticator app","mobileButton":"Open authenticator","manualCode":"Or enter the setup code manually","verifyPlaceholder":"Enter the 6-digit code from your authenticator app","incorrectError":"Incorrect code. Please try again"},"backupCodes":{"title":"Save your backup codes","description":"Use these codes if you lose access to your authenticator app. Each code will only work once.\n\nThis is your only chance to copy them. Please save them somewhere safe.","downloadButton":"Download","copyButton":"Copy","printButton":"Print","hideDoneUntilAction":true,"doneButton":"Done"}},"loginSettings":{"codeInput":{"label":"Enter the 6-digit code from your authenticator app","useBackupCodeLink":"Use backup code instead","incorrectError":"Incorrect code. Please try again"},"backupCode":{"backButton":"Back","inputLabel":"Enter one of your backup codes","invalidCodeError":"This code is either invalid or has been used","additionalRecoveryInstruction":"If you have trouble finding your backup codes, please contact your application's admin for assistance.","continueButton":"Continue","resetAuthenticatorToast":"Reset your authenticator to avoid getting locked out","resetButton":"Reset"}},"accountSettings":{"authenticatorField":{"label":"Authenticator","enabledStatus":"Enabled","setupButton":"Set up","resetButton":"Reset","removeButton":"Remove"},"resetOrRemoveFlow":{"title":"Let's verify it's you","subtitle":"Please enter the verification code we just sent to your email","continueButton":"Continue","resetSuccessMessage":"Your authenticator app has changed. Please make sure to log in with the new authenticator next time.","removeSuccessMessage":"Your authenticator app has been removed."}}}},"autoInvite":true}; window['application_context']['application_logo'] = {"type":"IMAGE","icon":{"logo":"","text":""},"image":{"horizontal":"https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/bf9c3510-0b10-4a0a-bab1-db127e73bce7.png","square":"https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/3807dfb2-bdfc-4ba1-af84-db3618ab3ca7.png"}}; window['application_context']['user_connection'] = {}; window['application_context']['user_connection']['datasource'] = {}; window['application_context']['user_connection']['datasource']['id'] = '9821c768-6232-42af-8b8c-5cca0a196e10'; window['application_context']['user_connection']['datasource']['datasource_integration_type'] = 'SOFTR_TABLES'; window['application_context']['user_connection']['attributes'] = {"nameFieldName":"DmhDn","emailFieldName":"lco6l","profilePictureFieldName":"qBRwS"}; </script>
328 329 330<style> 331 .sw-font-size-5xl { 332 font-size: 3rem; 333 } 334 .sw-font-size-4xl { 335 font-size: 2.25rem; 336 } 337</style>
338<script> 339 document.addEventListener("DOMContentLoaded", () => { 340 if($(window).width() < 768) { 341 $('h1.sw-font-size-10xl').removeClass('sw-font-size-10xl').addClass('sw-font-size-5xl'); 342 $('h1.sw-font-size-9xl').removeClass('sw-font-size-9xl').addClass('sw-font-size-5xl'); 343 $('h1.sw-font-size-8xl').removeClass('sw-font-size-8xl').addClass('sw-font-size-5xl'); 344 $('h1.sw-font-size-7xl').removeClass('sw-font-size-7xl').addClass('sw-font-size-5xl'); 345 $('h1.sw-font-size-6xl').removeClass('sw-font-size-6xl').addClass('sw-font-size-4xl'); 346 $('h2.sw-font-size-10xl').removeClass('sw-font-size-10xl').addClass('sw-font-size-5xl'); 347 $('h2.sw-font-size-9xl').removeClass('sw-font-size-9xl').addClass('sw-font-size-5xl'); 348 $('h2.sw-font-size-8xl').removeClass('sw-font-size-8xl').addClass('sw-font-size-5xl'); 349 $('h2.sw-font-size-7xl').removeClass('sw-font-size-7xl').addClass('sw-font-size-5xl'); 350 $('h2.sw-font-size-6xl').removeClass('sw-font-size-6xl').addClass('sw-font-size-4xl'); 351 $('div.sw-font-size-10xl').removeClass('sw-font-size-10xl').addClass('sw-font-size-5xl'); 352 $('div.sw-font-size-9xl').removeClass('sw-font-size-9xl').addClass('sw-font-size-5xl'); 353 $('div.sw-font-size-8xl').removeClass('sw-font-size-8xl').addClass('sw-font-size-5xl'); 354 $('div.sw-font-size-7xl').removeClass('sw-font-size-7xl').addClass('sw-font-size-5xl'); 355 $('div.sw-font-size-6xl').removeClass('sw-font-size-6xl').addClass('sw-font-size-4xl'); 356 $('p.sw-font-size-10xl').removeClass('sw-font-size-10xl').addClass('sw-font-size-5xl'); 357 $('p.sw-font-size-9xl').removeClass('sw-font-size-9xl').addClass('sw-font-size-5xl'); 358 $('p.sw-font-size-8xl').removeClass('sw-font-size-8xl').addClass('sw-font-size-5xl'); 359 $('p.sw-font-size-7xl').removeClass('sw-font-size-7xl').addClass('sw-font-size-5xl'); 360 $('p.sw-font-size-6xl').removeClass('sw-font-size-6xl').addClass('sw-font-size-4xl'); 361 $('span.sw-font-size-10xl').removeClass('sw-font-size-10xl').addClass('sw-font-size-5xl'); 362 $('span.sw-font-size-9xl').removeClass('sw-font-size-9xl').addClass('sw-font-size-5xl'); 363 $('span.sw-font-size-8xl').removeClass('sw-font-size-8xl').addClass('sw-font-size-5xl'); 364 $('span.sw-font-size-7xl').removeClass('sw-font-size-7xl').addClass('sw-font-size-5xl'); 365 $('span.sw-font-size-6xl').removeClass('sw-font-size-6xl').addClass('sw-font-size-4xl'); 366 } 367 }); 368</script>
368 369 370 371 372
373<script>window['is401Page'] = false; </script>
373 374 375
376<script> 377 const BlocksRenderedEventName = "@softr/page-content-loaded"; 378</script>
378 379
380<script> 381 function applyMobileTextSizesForV4Blocks() { 382 const width = window.innerWidth; 383 384 const largeElements = [ 385 'h1.sw-font-size-10xl', 'h1.sw-font-size-9xl', 'h1.sw-font-size-8xl', 'h1.sw-font-size-7xl', 386 'h2.sw-font-size-10xl', 'h2.sw-font-size-9xl', 'h2.sw-font-size-8xl', 'h2.sw-font-size-7xl', 387 'h3.sw-font-size-10xl', 'h3.sw-font-size-9xl', 'h3.sw-font-size-8xl', 'h3.sw-font-size-7xl', 388 'div.sw-font-size-10xl', 'div.sw-font-size-9xl', 'div.sw-font-size-8xl', 'div.sw-font-size-7xl', 389 'p.sw-font-size-10xl', 'p.sw-font-size-9xl', 'p.sw-font-size-8xl', 'p.sw-font-size-7xl', 390 'span.sw-font-size-10xl', 'span.sw-font-size-9xl', 'span.sw-font-size-8xl', 'span.sw-font-size-7xl', 391 ]; 392 393 const smallElements = [ 394 'h1.sw-font-size-6xl', 'h2.sw-font-size-6xl', 'h3.sw-font-size-6xl', 'div.sw-font-size-6xl', 'p.sw-font-size-6xl', 'span.sw-font-size-6xl', 395 ]; 396 397 if (width < 576) { 398 largeElements.forEach(selector => { 399 document.querySelectorAll(selector).forEach(el => { 400 el.classList.remove(selector.split('.').slice(1).join(' ')); 401 el.classList.add('sw-font-size-4xl'); 402 }); 403 }); 404 405 smallElements.forEach(selector => { 406 document.querySelectorAll(selector).forEach(el => { 407 el.classList.remove(selector.split('.').slice(1).join(' ')); 408 el.classList.add('sw-font-size-3xl'); 409 }); 410 }); 411 } else if (width < 768) { 412 largeElements.forEach(selector => { 413 document.querySelectorAll(selector).forEach(el => { 414 el.classList.remove(selector.split('.').slice(1).join(' ')); 415 el.classList.add('sw-font-size-5xl'); 416 }); 417 }); 418 419 smallElements.forEach(selector => { 420 document.querySelectorAll(selector).forEach(el => { 421 el.classList.remove(selector.split('.').slice(1).join(' ')); 422 el.classList.add('sw-font-size-4xl'); 423 }); 424 }); 425 } 426 } 427</script>
427 428 429<!-- This script synchronizes the query parameters and path of the top window with those of the iframe. 430 It updates the top window's URL, and include any query parameters from the iframe's URL 431 when the iframe's path is redirected. -->
432<script> 433 function topWindowLocationHref() { 434 try { 435 return window.top.location.href; 436 } catch (_error) { // explicitly ignored to avoid noise 437 // It's possible that the page is embedded in a cross-origin iframe, in which case, 438 // accessing window.top.location will throw. 439 // This creates a lot of noise in sentry, so catching and ignoring it here 440 return window.location.href; 441 } 442 } 443 444 document.addEventListener("DOMContentLoaded", function() { 445 if (shouldNotReplaceTopWithCurrent()) { 446 return; 447 } 448 try { 449 const currentUrl = new URL(window.location.href); 450 const topUrl = new URL(topWindowLocationHref()); 451 452 const currentParams = new URLSearchParams(currentUrl.search); 453 const topParams = new URLSearchParams(topUrl.search); 454 455 for (const [key, value] of topParams) { 456 // do not append duplicate query parameters 457 if (!currentParams.has(key) && !Array.from(currentParams).some(([k, v]) => k === key)) { 458 currentParams.append(key, value); 459 } 460 } 461 462 currentUrl.search = currentParams.toString(); 463 window.top.history.pushState(null, '', currentUrl.toString()); 464 } catch (error) { 465 console.error("An error occurred while updating query parameters:", error); 466 } 467 }); 468 469 function shouldNotReplaceTopWithCurrent() { 470 if (window.location.href.split('?')[0] === topWindowLocationHref().split('?')[0]) { 471 return true; 472 } 473 474 if ("false" !== "true" && !topWindowLocationHref().includes(".preview.")) { 475 return true; 476 } 477 478 if ("false" === "true" || window.location.href.includes("viewMode=modal") || window.location.href.includes("viewMode%3Dmodal")) { 479 return true; 480 } 481 482 return false; 483 } 484</script>
484 485
486<script> 487 document.addEventListener("DOMContentLoaded", function () { 488 window.parent.postMessage({ name: 'previewIframeLoaded' }, '*'); 489 }); 490 /** Image lineup on mobile **/ 491 window.addEventListener(BlocksRenderedEventName, function () { 492 function changeImageDirectionsOnMobile() { 493 494 const classListSection = $('body>div>section')?.attr('class')?.split(/\s+/); 495 const textClassSection = classListSection?.find(cls => cls.startsWith('feature')); 496 497 const classListHeader = $('body>div>header')?.attr('class')?.split(/\s+/); 498 const textClassHeader = classListHeader?.find(cls => cls.startsWith('hero')); 499 500 /*If FEATURE block*/ 501 if (textClassSection) { 502 findRowsWidthImageAndReverse(textClassSection) 503 } 504 505 /*If HERO block*/ 506 if (textClassHeader) { 507 findRowsWidthImageAndReverse(textClassHeader) 508 } 509 } 510 511 function findRowsWidthImageAndReverse(textClass) { 512 const rowsWithImages = $('.' + textClass + ' .row.align-items-center').has('img').toArray(); 513 const rowsWithLeftSideImages = rowsWithImages.filter(row => { 514 return $(row).children().first().children().first().prop("tagName") === 'IMG'; 515 }); 516 517 518 rowsWithLeftSideImages.forEach(row => { 519 if ($(window).width() <= 768) { 520 row.classList.add('flex-column-reverse') 521 } 522 }); 523 } 524 525 if ($(window).width() <= 768) { 526 changeImageDirectionsOnMobile(); 527 } 528 }); 529 530 /** BG Size on mobile **/ 531 window.addEventListener(BlocksRenderedEventName, function () { 532 if ($(window).width() <= 768) { 533 var element = $('section.sw-background-size-auto, header.sw-background-size-auto'); 534 element.removeClass('sw-background-size-auto'); 535 element.css('background-size', 'cover'); 536 537 $('section.sw-background-attachment-fixed, header.sw-background-attachment-fixed').removeClass('sw-background-attachment-fixed'); 538 } 539 }); 540 541 /** Disable zoom on mobile **/ 542 window.addEventListener(BlocksRenderedEventName, function () { 543 if ($(window).width() <= 768) { 544 $('input.sw-font-size-s').removeClass('sw-font-size-s'); 545 $('textarea.sw-font-size-s').removeClass('sw-font-size-s'); 546 $('select.sw-font-size-s').removeClass('sw-font-size-s'); 547 } 548 }); 549 550 window.addEventListener('user-sign-out', (e) => { 551 const message = { 552 name: 'user-sign-out-triggered', 553 }; 554 555 window.parent.postMessage(message, '*'); 556 }); 557 558 function isSafari() { 559 const chromeAgent = window.navigator.userAgent.includes("Chrome"); 560 const safariAgent = window.navigator.userAgent.includes("Safari"); 561 562 // Google Chrome also contains "Safari" user agent. 563 return safariAgent && !chromeAgent; 564 } 565</script>
565 566
567<script> 568 // Detect PWA mode early (before any fullscreen API calls) and mark the document. 569 // This allows hiding elements in PWA even when it enters fullscreen, 570 // without affecting regular browser fullscreen mode. 571 if (window.matchMedia('(display-mode: standalone)').matches // Chrome/Edge/Safari desktop & mobile PWA 572 || window.matchMedia('(display-mode: minimal-ui)').matches // minimal-ui PWA 573 || window.matchMedia('(display-mode: window-controls-overlay)').matches // desktop PWA with custom title bar 574 || window.matchMedia('(display-mode: fullscreen)').matches // PWA manifest set to fullscreen (safe at load time) 575 || window.navigator.standalone === true) { // iOS Safari home screen app 576 document.documentElement.classList.add('is-pwa'); 577 } 578</script>
vendor: 1 bytes, line 578
578
579<script> 580 // When the transition SW activates Softr-native push, reload so the page 581 // initialises with push enabled in application_context. 582 if (navigator.serviceWorker) { 583 navigator.serviceWorker.addEventListener('message', function (e) { 584 if (e.data && e.data.type === 'softr-pwa-bootstrap') { 585 window.location.reload(); 586 } 587 }); 588 } 589</script>
589 590 591 592</head> 593 594<body> 595 596 597<div id="page-content" data-appsubdomain="toptierclosers.softr.app" data-appid="333a21e4-e9da-4e79-9250-e3d3dd6f2414" data-pageId="c28e2985-4ee8-4367-a365-f98b3c2f4021" data-workspaceid="cccdb788-4516-4ab1-80c7-8b54a2619524" data-paymentplan="price_1PmrXcIWZwIztnHl4pzYxY2f" class="content"> 598 599</div> 600 601 602<!-- Scripts -->
603<script src="https://assets.softr-files.com/libs/jquery/3.7.0/jquery.min.js"></script>
vendor: 1 bytes, line 603
603
604<script src="https://assets.softr-files.com/libs/popper.js/1.14.7/umd/popper.min.js"></script>
vendor: 1 bytes, line 604
604
605<script 606 src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" 607 integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" 608 crossorigin="anonymous"> 609</script>
vendor: 1 bytes, line 609
609
610<script src="https://assets.softr-files.com/libs/micromodal/0.4.10/micromodal.min.js"></script>
610 611
612<script> 613 /** this function is called from list blocks (do not delete) **/ 614 function openSwModal(url, size) { 615 MicroModal.init({ 616 disableScroll: true, 617 awaitOpenAnimation: true, 618 awaitCloseAnimation: true 619 }); 620 621 MicroModal.show("sw-modal"); 622 623 const iframeElem = document.querySelector(".sw-modal-iframe"); 624 const modalContainer = document.querySelector(".sw-modal-container"); 625 626 const viewModeParam = "viewMode=modal"; 627 const urlIsLocal = url.startsWith('#') || url.startsWith('/') || url.startsWith(window.location.origin); 628 const modalUrl = urlIsLocal ? (url.indexOf("?") !== -1 ? url + "&" + viewModeParam : url + "?" + viewModeParam) : url; 629 iframeElem.setAttribute("src", modalUrl); 630 631 modalContainer.classList.remove('sw-modal-size-sm', 'sw-modal-size-md', 'sw-modal-size-lg', 'sw-modal-size-xl'); 632 modalContainer.classList.add('sw-modal-size-' + size); 633 634 setTimeout(() => { 635 // Add event listener to detect when the modal is closed 636 const closeButton = document.querySelector('.sw-modal-close'); 637 const backdrop = document.querySelector('.sw-modal-overlay'); 638 639 closeButton.addEventListener('click', resetIframe); 640 backdrop.addEventListener('click', resetIframe); 641 }, 1000) 642 643 } 644 645 const resetIframe = () => { 646 const iframeElem = document.querySelector('.sw-modal-iframe'); 647 iframeElem.removeAttribute('src'); 648 } 649</script>
649 650
651<script> 652 /** Bugfix on multiple ?recordId= issue **/ 653 setInterval(function () { 654 $('section a').each(function () { 655 const href = $(this).attr('href'); 656 if (href && href.includes('?recordId=')) { 657 const countOfRecords = (href.match(/\?recordId=/g) || []).length; 658 if (countOfRecords > 1) { 659 const index = href.lastIndexOf('?recordId='); 660 const cleanedHref = href.substring(0, index); 661 $(this).attr('href', cleanedHref); 662 } 663 } 664 }); 665 }, 1000); 666</script>
666 667
668<script type="text/javascript"> 669 if (window.jQuery && window.jQuery.ajaxSetup) { 670 window.jQuery.ajaxSetup({ 671 beforeSend: function (xhr, settings) { 672 if (settings && settings.url && ( 673 settings.url.includes('/integrations/airtable/') 674 || settings.url.includes('/v1/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414') 675 || settings.url.includes('/v1/comments') 676 || settings.url.includes('/v3/comments') 677 || settings.url.includes('/forms/form-to-email') 678 || settings.url.includes('/forms/form-to-api')) 679 ) { 680 xhr.setRequestHeader('softr-page-id', 'c28e2985-4ee8-4367-a365-f98b3c2f4021'); 681 } 682 } 683 }); 684 } 685 686 window['user-accounts1'] = {}; 687var softrBlocks = [{"id":"e5d65a8e-e684-4be6-a974-7595a6ef773b","version":"5.0.8","hrid":"user-accounts1","name":"signIn","title":"Sign In","image":"https://softr-assets-eu-shared.s3.eu-central-1.amazonaws.com/studio/blocks/assets/sign-up1.png","category":"User Accounts","keywords":"contact form, simple, log in, Authentication, signin, sign in, sign up, with code, Authentication, login, passwordless, password-less","elements":{"definitions":{"supportedFieldTypes":["short_text","email","long_text","url","file","checkbox","rating","auto_sync_dropdown","number","date","dateTime","phone_number","signature","rich_text","hidden"]},"signInConfig":{"logoSize":"large","logoPosition":"top","title":"Welcome back!","subtitle":"Log in to continue","authMethods":{"EMAIL":{"continueButtonLabel":"Continue","oneTimeCodeStep":{"title":"Enter verification code","subtitle":"We just sent you a code. Please check your inbox.","redirectButton":"Continue with password instead"},"passwordStep":{"title":"Enter your password","subtitle":"","redirectButton":"Continue with one-time code instead"}},"GOOGLE":{"buttonLabel":"Continue with Google"},"SSO":{"buttonLabel":"Continue with SSO"}},"sideSection":{"enabled":true,"backgroundImage":"https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/ea553d9a-91a9-4c4b-b3d3-bdf3084cbb57.jpeg","heading":{"enabled":false,"value":"Something important","variant":"title"},"text":{"enabled":false,"value":"Something less important"},"image":{"enabled":false,"value":"https://assets.softr-files.com/assets/blocks/v5/mock-images/abstract/05.jpg"},"order":["heading","text","image"]},"redirectConfig":{"enabled":false,"text":"Don't have an account?","linkLabel":"Sign up","page":"/sign-up"},"recaptcha":false,"hiddenAuthMethods":[],"logoEnabled":true,"forgotPasswordPage":"/forgot-password","consentMessage":{"enabled":false,"value":"By signing up, you agree to our Terms and Conditions & Privacy Policy"}},"container":{"styles":[{"type":"group","styles":[{"type":"control","controlType":"background","label":"Background","styles":[{"type":"control","controlType":"select","value":null,"fallback":{"type":"VALUE","value":"COLOR"},"options":["COLOR","IMAGE"],"optionsMeta":{"COLOR":{"label":"Solid color"},"IMAGE":{"label":"Image"}},"label":"Background style","key":"block.backgroundStyle"},{"type":"control","controlType":"color","value":null,"fallback":{"type":"THEME","key":"tokens.colors.background.default"},"label":"Background color","key":"block.backgroundColor","visible":{"operator":"EQUALS","key":"block.backgroundStyle","value":"COLOR"}},{"type":"control","controlType":"image","value":null,"fallback":{"type":"VALUE","value":null},"label":"Background image","key":"block.backgroundImage","visible":{"operator":"EQUALS","key":"block.backgroundStyle","value":"IMAGE"}}]},{"type":"control","controlType":"size","value":null,"fallback":{"type":"THEME","key":"config.size"},"options":["S","M","L"],"label":"Size","key":"block.size"},{"type":"control","controlType":"roundness","value":null,"fallback":{"type":"THEME","key":"config.roundness"},"options":["NONE","SUBTLE","STANDARD","SMOOTH","CIRCULAR"],"label":"Roundness","key":"block.roundness"},{"type":"control","controlType":"align","value":null,"fallback":{"type":"VALUE","value":"center"},"options":["start","center"],"label":"Content alignment","key":"block.alignment"},{"type":"control","controlType":"boolean","value":null,"fallback":{"type":"VALUE","value":true},"key":"surface.enabled","label":"Surface"},{"type":"control","controlType":"boolean","value":null,"fallback":{"type":"THEME","key":"config.shadow"},"key":"surface.shadow","label":"Surface shadow","visible":{"operator":"EQUALS","key":"surface.enabled","value":true}},{"type":"control","controlType":"color","value":null,"fallback":{"type":"THEME","key":"tokens.colors.dialog.background.idle"},"label":"Surface background","key":"surface.backgroundColor","visible":{"operator":"EQUALS","key":"surface.enabled","value":true}},{"type":"control","controlType":"border","label":"Border","styles":[{"type":"control","controlType":"color","value":null,"fallback":{"type":"THEME","key":"tokens.colors.border.primary"},"label":"Color","key":"surface.borderColor"},{"type":"control","controlType":"borderStyle","value":null,"fallback":{"type":"VALUE","value":"solid"},"options":["none","solid","dashed","dotted"],"label":"Border style","key":"surface.borderStyle"},{"type":"control","controlType":"borderWidth","value":null,"fallback":{"type":"VALUE","value":1},"options":[0,1,2,3,4],"label":"Border width","key":"surface.borderWidth"}],"visible":{"operator":"EQUALS","key":"surface.enabled","value":true}}],"expanded":false,"label":"General"}],"sideSectionStyles":[{"type":"group","styles":[{"type":"control","controlType":"placement","value":null,"fallback":{"type":"VALUE","value":"RIGHT"},"options":["LEFT","RIGHT"],"label":"Position","key":"position"}],"expanded":false,"label":"background"},{"type":"group","styles":[{"type":"control","controlType":"color","value":null,"fallback":{"type":"THEME","key":"tokens.colors.text.ui"},"label":"Color","key":"heading.color"}],"expanded":false,"label":"heading"},{"type":"group","styles":[{"type":"control","controlType":"color","value":null,"fallback":{"type":"THEME","key":"tokens.colors.text.ui"},"label":"Color","key":"text.color"}],"expanded":false,"label":"text"},{"type":"group","styles":[{"type":"control","controlType":"width","value":null,"fallback":{"type":"VALUE","value":"M"},"options":["XS","S","M","L"],"label":"Width","key":"image.width"},{"type":"control","controlType":"aspectRatio","value":null,"fallback":{"type":"VALUE","value":"AUTO"},"options":["1:1","4:3","16:9","AUTO"],"label":"Aspect ratio","key":"image.as
687pectRatio","visible":{"key":"image.fit","operator":"EQUALS","value":"FILL"}},{"type":"control","controlType":"select","value":null,"fallback":{"type":"VALUE","value":"FILL"},"options":["FILL","FIT"],"optionsMeta":{"FILL":{"label":"Cover"},"FIT":{"label":"Contain"}},"label":"Image fit","key":"image.fit","info":"Cover: Fill images to cover available space, cropping if needed. Best for photos or images with solid background.\n\nContain: Show the whole image in original aspect ratio. Best for logos and icons."}],"expanded":false,"label":"image"}]}},"type":"dynamic","collection":null,"enabled":"true","order":"null","updated":[{"date":[2025,1,8,12,8,46,112000000],"version":"5.0.1"},{"date":[2025,1,9,8,28,36,274000000],"version":"5.0.2"},{"date":[2025,1,10,12,18,14,249000000],"version":"5.0.3"},{"date":[2025,3,19,13,50,1,916000000],"version":"5.0.4"},{"date":[2026,3,23,14,5,34,118000000],"version":"5.0.5"},{"date":[2026,3,23,14,5,34,118000000],"version":"5.0.6"},{"date":[2026,3,23,14,5,34,118000000],"version":"5.0.7"},{"date":[2026,3,23,14,5,34,118000000],"version":"5.0.8"}],"visibility":{"userGroup":{"predefinedUserGroupType":"NON_LOGGED_IN_USERS","customUserGroupIds":[],"enabledPredefinedUserGroupTypes":["NON_LOGGED_IN_USERS"]},"devices":["laptop","tablet","mobile"],"detailsPageRecordCondition":null},"settings":{},"container":null,"presets":null,"created_at":"2025-01-02T18:21:36.398"}]; 688softrBlocks.forEach(function(block) { 689 var blockUniqueName = block.id.replace(/-/g, ''); 690 window['block_' + blockUniqueName + '_defJson'] = block; 691 window['block_' + blockUniqueName + '_defJson']['defaultTheme'] = reactDefaultThemes; 692}); 693SoftrPageRenderer.render({blocks: softrBlocks, targetElement: document.getElementById('page-content'), workspaceId: "cccdb788-4516-4ab1-80c7-8b54a2619524", appId: "333a21e4-e9da-4e79-9250-e3d3dd6f2414", pageId: "c28e2985-4ee8-4367-a365-f98b3c2f4021", showMadeWithBadge: true, badgeType: "FLOATING_BADGE", aiApp: false, paymentPlan: "price_1PmrXcIWZwIztnHl4pzYxY2f", baseUrl: "https://assets.softr-files.com/softr-blocks/prod/blocks", theme: reactDefaultThemes, appCustomHeaderCode: "", pageCustomHeaderCode: "", appCustomFooterCode: "", pageCustomFooterCode: "", featureFlags: {"navigationLayout": true, "fixedBlockRoots": true, "universalDSForAirtable": true, }, context: {"application_context": {"application_logo":{"type":"IMAGE","icon":{"logo":"","text":""},"image":{"horizontal":"https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/bf9c3510-0b10-4a0a-bab1-db127e73bce7.png","square":"https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/3807dfb2-bdfc-4ba1-af84-db3618ab3ca7.png"}},"date_and_time_settings":{"format_settings":{"type":"LOCAL","local_settings":{"localize_day_and_month":true},"fixed_settings":null},"timezone_settings":{"type":"LOCAL","fixed_timezone":null}},"number_formatting_settings":{"type":"LOCAL","fixed_locale":"en-US"},"global_search_settings":{"enabled":false,"search_placeholder":"Search","initial_state_message":"Type something to start searching","initial_state_image":null,"no_results_message":"No results found","no_results_image":null,"backdrop":null},"user_settings":{"auth_settings":{"login_enabled":true,"authentication_methods":["EMAIL"],"sign_up_settings":{"policy":"DISABLED","allowed_domains":[]},"user_session_expiration":"90_DAYS","user_inactivity_timeout":"NEVER","email_auth_settings":{"login_methods":["PASSWORD","EMAIL_CODE"],"password_settings":{"input_label":"Password","input_placeholder":"Enter your password","forgot_password_text":"Forgot password","incorrect_password_text":"Incorrect password.","new_password_label":"New password","new_password_placeholder":"Set a secure password","strong_passwords":true,"minimum_characters_text":"At least 12 characters","upper_and_lower_case_text":"1 uppercase & 1 lowercase","number_text":"1 number (0-9)","symbol_text":"1 symbol (!@#$%^&*)","repeat_password_label":"Repeat password","repeat_password_placeholder":"Repeat your password","passwords_dont_match_text":"Passwords don't match."},"email_one_time_code_settings":{"expiration":"5_MINUTES","input_label":"Verification code","input_placeholder":"Enter verification code","resend_text":"Resend","invali
693d_code_text":"Invalid code."},"secondary_login_methods":[],"sms_one_time_code_settings":null,"authenticator_settings":null,"input_label":"Email","input_placeholder":"Enter your email"},"google_settings":{"client_id":null,"client_secret":null,"user_type":"INTERNAL","email_domains":[]},"sso_settings":{"type":"SAML","email_domains":[],"saml":{"acs_url":null,"audience_url":null,"metadata_xml":null,"email_key":null,"first_name_key":null,"last_name_key":null},"open_id":{"callback_url":null,"provider_url":null,"token_service_url":null,"client_id":null,"client_secret":null}},"authenticator_app_settings":{"enabled":false,"general_settings":{"email_pairing":"OPTIONAL","google_pairing":"OPTIONAL","sso_pairing":"OPTIONAL"},"setup_settings":{"setup_prompt":{"title":"Secure your account with 2FA","subtitle":"Set up an authenticator app to make your account more secure","skip_button":"Not now","setup_button":"Set up"},"setup_instruction":{"title":"Set up authenticator app","qr_desktop":"Scan the QR code below with an authenticator app","mobile_text":"Click the button below to set up an authenticator app","mobile_button":"Open authenticator","manual_code":"Or enter the setup code manually","verify_placeholder":"Enter the 6-digit code from your authenticator app","incorrect_error":"Incorrect code. Please try again"},"backup_codes":{"title":"Save your backup codes","description":"Use these codes if you lose access to your authenticator app. Each code will only work once.\n\nThis is your only chance to copy them. Please save them somewhere safe.","download_button":"Download","copy_button":"Copy","print_button":"Print","hide_done_until_action":true,"done_button":"Done"}},"login_settings":{"code_input":{"label":"Enter the 6-digit code from your authenticator app","use_backup_code_link":"Use backup code instead","incorrect_error":"Incorrect code. Please try again"},"backup_code":{"back_button":"Back","input_label":"Enter one of your backup codes","invalid_code_error":"This code is either invalid or has been used","additional_recovery_instruction":"If you have trouble finding your backup codes, please contact your application's admin for assistance.","continue_button":"Continue","reset_authenticator_toast":"Reset your authenticator to avoid getting locked out","reset_button":"Reset"}},"account_settings":{"authenticator_field":{"label":"Authenticator","enabled_status":"Enabled","setup_button":"Set up","reset_button":"Reset","remove_button":"Remove"},"reset_or_remove_flow":{"title":"Let's verify it's you","subtitle":"Please enter the verification code we just sent to your email","continue_button":"Continue","reset_success_message":"Your authenticator app has changed. Please make sure to log in with the new authenticator next time.","remove_success_message":"Your authenticator app has been removed."}}}},"auto_invite":true},"user_connection":{"datasource":{"id":"9821c768-6232-42af-8b8c-5cca0a196e10","datasource_integration_type":"SOFTR_TABLES"},"attributes":{"nameFieldName":"DmhDn","emailFieldName":"lco6l","profilePictureFieldName":"qBRwS"}},"user_group_redirection":null,"polling_configs":{"defaultPollingInterval":10000,"datasources":{"SQL_SERVER":8000,"ZOHO_CRM":8000,"MARIADB":8000,"MYSQL":8000,"XANO_SQL":8000,"SALESFORCE":8000,"GOOGLE_SHEET":8000,"SUPABASE":8000,"NOTION":8000,"SMARTSUITE":8000,"MONDAY":8000,"SOFTR_TABLES":8000,"SHAREPOINT":8000,"CLICKUP":8000,"CODA":8000,"MICROSOFT_EXCEL":8000,"SNOWFLAKE":8000,"AIRTABLE":8000,"POSTGRESQL":8000}},"comment_settings":{"general_settings":{"allow_mentions":false,"allow_attachments":true,"rich_text_formatting":false,"notifications_enabled":true,"block_display_settings":{"sort_direction":"OLDEST_ON_TOP","surface":false,"show_vertical_line":false},"side_panel_display_settings":{"sort_direction":"OLDEST_ON_TOP","surface":false,"show_vertical_line":false,"comment_panel_display_mode":"COVER_MAIN_CONTENT"},"keep_comments_for_inactive_users":true,"comment_deletion_user_groups":[]},"message_settings":{"comment_list_title":"Comments","comment_box_placeholder":"Leave a comment...","notifications_toggle_label":"Notifications","submit_button":{"label":"Submit","icon":""},"cancel_button":{"label":"Cancel","icon":""},"edit_button":{"label":"Edit","icon":"edit-02"},"delete_button":{"label":"Delete","icon":"trash-01"},"load_more_comments_button":{"label":"Load more comments","icon":""},"empty_state_message":"No comments yet","edited_comment_indicator":"(edited)"},"mention_permissions":[],"comment_block_settings":[]},"push_notification_settings":{"desktop_enabled":false,"mobile_enabled":false,"permission_prompt":null,"vapid_public_key":"BBugfIG6rCfoscP1EA9Jvt-KLWBNgWCNSNaleAQM4fA1fCQQpyj2BTbb4pliE3vg2cVL8CcOt7SuNczkbW1I4c8"},"in_app_notification_settings":{"enabled":false,"default_icon":"https://assets.softr-files.com/applications/333a21e4-e9da-4e79-9250-e3d3dd6f2414/assets/3807dfb2-bdfc-4ba1-af84-db3618ab3ca7.png","button_label":"Notifications","button_icon":"bell-01","all_tab_name":"All","all_tab_empty_message":"No notifications.","unread_tab_name":"Unread","unread_tab_empty_message":"No unread notifications.","filter_all_option":"All notifications","filter_comments_option":"Comments only","mark_all_as_read_label":"Mark all as read","mark_as_read_label":"Mark as read","mark_as_unread_label":"Mark as unread","mark_as_read_icon":"check-square","mark_as_unread_icon":"notification-box"},"pwa_settings":null,"spa_mode_enabled":true,"agents":[]}}}).then(() => window.dispatchEvent(new Event("@softr/page-content-loaded"))); 694 695</script>
695 696 697
698<script src="https://assets.softr-files.com/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" crossorigin="anonymous"></script>
698 699 700<!-- Localhost -->
701<script type="text/javascript"> 702 if (window.location.hostname === 'localhost') { 703 if (getUrlParam('domain')) { 704 setCookie('serverName', getUrlParam('domain'), 30); 705 } 706 } 707 708 function setCookie(name, value, days) { 709 var date = new Date(); 710 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 711 var expires = "expires=" + date.toUTCString(); 712 document.cookie = name + "=" + value + ";" + expires + ";path=/;" + "SameSite=None; Secure"; 713 } 714 715 function getUrlParam(name) { 716 const url = new URL(window.location.href); 717 let param; 718 for (var key of url.searchParams.keys()) { 719 if (key.toLowerCase() === name.toLowerCase()) { 720 param = url.searchParams.get(name); 721 break; 722 } 723 } 724 return param; 725 } 726</script>
726 727 728<!-- Modal HTML --> 729<div id="sw-modal" class="sw-modal" aria-hidden="true"> 730 <div class="sw-modal-overlay" data-micromodal-close> 731 <div tabindex="-1" class="sw-modal-container"> 732 <div role="dialog" aria-modal="true" aria-labelledby="micromodal-title"> 733 <button aria-label="Close modal" class="sw-modal-close" onclick="MicroModal.close('sw-modal')"></button> 734 <div id="sw-modal-content"> 735 <iframe class="sw-modal-iframe"></iframe> 736 </div> 737 </div> 738 </div> 739 </div> 740</div> 741 742<!--Scroll to section-->
743<script> 744 745 window.addEventListener(BlocksRenderedEventName, function () { 746 $('a').each(function (index, el) { 747 let href = $(el).attr('href'); 748 let path = cleanSlugFromPath(location.pathname); 749 if (href && href.startsWith(path + '#')) { 750 const scrollTo = href.split('#')[1]; 751 $(this).attr('href', '#' + scrollTo); 752 } 753 }); 754 755 function cleanSlugFromPath(pagePath) { 756 if (pagePath.includes("/r/rec")) { 757 pagePath = pagePath.substring(0, pagePath.indexOf("/r/rec")); 758 pagePath = pagePath.substring(0, pagePath.lastIndexOf("/")); 759 } 760 761 return pagePath + (pagePath.endsWith('/') ? '' : '/'); 762 } 763 }); 764 765</script>
765 766 767</body> 768 769</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.