masks-server 0.7.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 (816) hide show
  1. checksums.yaml +7 -0
  2. data/app/controllers/concerns/masks/server/client_authentication.rb +65 -0
  3. data/app/controllers/concerns/masks/server/holds_login.rb +49 -0
  4. data/app/controllers/concerns/masks/server/manage_endpoint.rb +34 -0
  5. data/app/controllers/concerns/masks/server/rack_oauth2_endpoint.rb +45 -0
  6. data/app/controllers/concerns/masks/server/resource_token.rb +145 -0
  7. data/app/controllers/concerns/masks/server/saml_farewells.rb +53 -0
  8. data/app/controllers/concerns/masks/server/scim_endpoint.rb +100 -0
  9. data/app/controllers/concerns/masks/server/serves_pictures.rb +27 -0
  10. data/app/controllers/concerns/masks/server/token_presented.rb +47 -0
  11. data/app/controllers/masks/server/account_controller.rb +73 -0
  12. data/app/controllers/masks/server/account_exports_controller.rb +25 -0
  13. data/app/controllers/masks/server/addresses_controller.rb +78 -0
  14. data/app/controllers/masks/server/application_controller.rb +322 -0
  15. data/app/controllers/masks/server/apps_controller.rb +37 -0
  16. data/app/controllers/masks/server/authenticator_apps_controller.rb +53 -0
  17. data/app/controllers/masks/server/authorize_controller.rb +197 -0
  18. data/app/controllers/masks/server/avatars_controller.rb +118 -0
  19. data/app/controllers/masks/server/backup_codes_controller.rb +29 -0
  20. data/app/controllers/masks/server/client_logos_controller.rb +22 -0
  21. data/app/controllers/masks/server/code_factors_controller.rb +38 -0
  22. data/app/controllers/masks/server/connections_controller.rb +43 -0
  23. data/app/controllers/masks/server/delegations_controller.rb +24 -0
  24. data/app/controllers/masks/server/device_authorizations_controller.rb +74 -0
  25. data/app/controllers/masks/server/device_verifications_controller.rb +78 -0
  26. data/app/controllers/masks/server/devices_controller.rb +50 -0
  27. data/app/controllers/masks/server/discovery_controller.rb +18 -0
  28. data/app/controllers/masks/server/forward_auth_controller.rb +90 -0
  29. data/app/controllers/masks/server/handshakes_controller.rb +178 -0
  30. data/app/controllers/masks/server/introspections_controller.rb +51 -0
  31. data/app/controllers/masks/server/links_controller.rb +41 -0
  32. data/app/controllers/masks/server/logins_controller.rb +239 -0
  33. data/app/controllers/masks/server/manage/exports_controller.rb +22 -0
  34. data/app/controllers/masks/server/manage/graphql_controller.rb +70 -0
  35. data/app/controllers/masks/server/manage_controller.rb +19 -0
  36. data/app/controllers/masks/server/notifications_controller.rb +23 -0
  37. data/app/controllers/masks/server/organization_members_controller.rb +118 -0
  38. data/app/controllers/masks/server/passkeys_controller.rb +80 -0
  39. data/app/controllers/masks/server/passwords_controller.rb +67 -0
  40. data/app/controllers/masks/server/profiles_controller.rb +34 -0
  41. data/app/controllers/masks/server/provider_metadata_controller.rb +13 -0
  42. data/app/controllers/masks/server/pushed_authorizations_controller.rb +69 -0
  43. data/app/controllers/masks/server/received_signals_controller.rb +19 -0
  44. data/app/controllers/masks/server/registrations_controller.rb +137 -0
  45. data/app/controllers/masks/server/revocations_controller.rb +33 -0
  46. data/app/controllers/masks/server/saml_controller.rb +195 -0
  47. data/app/controllers/masks/server/scim/groups_controller.rb +157 -0
  48. data/app/controllers/masks/server/scim/metadata_controller.rb +123 -0
  49. data/app/controllers/masks/server/scim/users_controller.rb +128 -0
  50. data/app/controllers/masks/server/sessions_controller.rb +60 -0
  51. data/app/controllers/masks/server/sign_in_approvals_controller.rb +48 -0
  52. data/app/controllers/masks/server/signal_streams_controller.rb +162 -0
  53. data/app/controllers/masks/server/tenant_logos_controller.rb +21 -0
  54. data/app/controllers/masks/server/themes_controller.rb +21 -0
  55. data/app/controllers/masks/server/tokens_controller.rb +360 -0
  56. data/app/controllers/masks/server/userinfo_controller.rb +30 -0
  57. data/app/controllers/masks/server/verifications_controller.rb +32 -0
  58. data/app/graphql/masks/server/manage/mutations/activate_signing_key.rb +26 -0
  59. data/app/graphql/masks/server/manage/mutations/add_app.rb +64 -0
  60. data/app/graphql/masks/server/manage/mutations/add_group_member.rb +25 -0
  61. data/app/graphql/masks/server/manage/mutations/add_member.rb +36 -0
  62. data/app/graphql/masks/server/manage/mutations/approve_actor.rb +25 -0
  63. data/app/graphql/masks/server/manage/mutations/archive_client.rb +30 -0
  64. data/app/graphql/masks/server/manage/mutations/archive_event_stream.rb +28 -0
  65. data/app/graphql/masks/server/manage/mutations/archive_organization.rb +27 -0
  66. data/app/graphql/masks/server/manage/mutations/archive_provider.rb +28 -0
  67. data/app/graphql/masks/server/manage/mutations/archive_sender.rb +28 -0
  68. data/app/graphql/masks/server/manage/mutations/archive_sign_in_policy.rb +31 -0
  69. data/app/graphql/masks/server/manage/mutations/base_mutation.rb +139 -0
  70. data/app/graphql/masks/server/manage/mutations/block_device.rb +24 -0
  71. data/app/graphql/masks/server/manage/mutations/block_devices.rb +62 -0
  72. data/app/graphql/masks/server/manage/mutations/check_domain.rb +30 -0
  73. data/app/graphql/masks/server/manage/mutations/claim_domain.rb +26 -0
  74. data/app/graphql/masks/server/manage/mutations/create_actor.rb +50 -0
  75. data/app/graphql/masks/server/manage/mutations/create_client.rb +53 -0
  76. data/app/graphql/masks/server/manage/mutations/create_event_stream.rb +33 -0
  77. data/app/graphql/masks/server/manage/mutations/create_group.rb +25 -0
  78. data/app/graphql/masks/server/manage/mutations/create_organization.rb +34 -0
  79. data/app/graphql/masks/server/manage/mutations/create_provider.rb +117 -0
  80. data/app/graphql/masks/server/manage/mutations/create_saml_application.rb +53 -0
  81. data/app/graphql/masks/server/manage/mutations/create_sender.rb +35 -0
  82. data/app/graphql/masks/server/manage/mutations/create_sign_in_policy.rb +24 -0
  83. data/app/graphql/masks/server/manage/mutations/delete_actor.rb +31 -0
  84. data/app/graphql/masks/server/manage/mutations/delete_group.rb +24 -0
  85. data/app/graphql/masks/server/manage/mutations/disable_authenticator.rb +32 -0
  86. data/app/graphql/masks/server/manage/mutations/disable_code_factor.rb +27 -0
  87. data/app/graphql/masks/server/manage/mutations/discard_signing_key.rb +26 -0
  88. data/app/graphql/masks/server/manage/mutations/discover_provider.rb +39 -0
  89. data/app/graphql/masks/server/manage/mutations/dismiss_recovery.rb +25 -0
  90. data/app/graphql/masks/server/manage/mutations/domain_mutation.rb +24 -0
  91. data/app/graphql/masks/server/manage/mutations/export_events.rb +41 -0
  92. data/app/graphql/masks/server/manage/mutations/generate_backup_codes.rb +31 -0
  93. data/app/graphql/masks/server/manage/mutations/invite_actors.rb +46 -0
  94. data/app/graphql/masks/server/manage/mutations/issue_ldap_credential.rb +28 -0
  95. data/app/graphql/masks/server/manage/mutations/issue_provisioning_token.rb +33 -0
  96. data/app/graphql/masks/server/manage/mutations/organization_mutation.rb +26 -0
  97. data/app/graphql/masks/server/manage/mutations/read_saml_application_metadata.rb +39 -0
  98. data/app/graphql/masks/server/manage/mutations/read_saml_metadata.rb +43 -0
  99. data/app/graphql/masks/server/manage/mutations/register_provider.rb +30 -0
  100. data/app/graphql/masks/server/manage/mutations/release_domain.rb +25 -0
  101. data/app/graphql/masks/server/manage/mutations/release_namespace.rb +28 -0
  102. data/app/graphql/masks/server/manage/mutations/remove_avatar.rb +27 -0
  103. data/app/graphql/masks/server/manage/mutations/remove_group_member.rb +25 -0
  104. data/app/graphql/masks/server/manage/mutations/remove_member.rb +26 -0
  105. data/app/graphql/masks/server/manage/mutations/remove_tenant_logo.rb +19 -0
  106. data/app/graphql/masks/server/manage/mutations/resend_invitation.rb +25 -0
  107. data/app/graphql/masks/server/manage/mutations/resend_organization_invitation.rb +31 -0
  108. data/app/graphql/masks/server/manage/mutations/reset_password.rb +26 -0
  109. data/app/graphql/masks/server/manage/mutations/reset_second_factors.rb +23 -0
  110. data/app/graphql/masks/server/manage/mutations/restore_actor.rb +26 -0
  111. data/app/graphql/masks/server/manage/mutations/restore_client.rb +45 -0
  112. data/app/graphql/masks/server/manage/mutations/restore_event_stream.rb +28 -0
  113. data/app/graphql/masks/server/manage/mutations/restore_organization.rb +27 -0
  114. data/app/graphql/masks/server/manage/mutations/restore_provider.rb +28 -0
  115. data/app/graphql/masks/server/manage/mutations/restore_sender.rb +28 -0
  116. data/app/graphql/masks/server/manage/mutations/restore_sign_in_policy.rb +28 -0
  117. data/app/graphql/masks/server/manage/mutations/revoke_connection.rb +29 -0
  118. data/app/graphql/masks/server/manage/mutations/revoke_consent.rb +36 -0
  119. data/app/graphql/masks/server/manage/mutations/revoke_delegation.rb +24 -0
  120. data/app/graphql/masks/server/manage/mutations/revoke_ldap_credential.rb +26 -0
  121. data/app/graphql/masks/server/manage/mutations/revoke_passkey.rb +28 -0
  122. data/app/graphql/masks/server/manage/mutations/revoke_provisioning_token.rb +24 -0
  123. data/app/graphql/masks/server/manage/mutations/revoke_session.rb +25 -0
  124. data/app/graphql/masks/server/manage/mutations/revoke_token.rb +34 -0
  125. data/app/graphql/masks/server/manage/mutations/rotate_client_secret.rb +32 -0
  126. data/app/graphql/masks/server/manage/mutations/rotate_event_stream_secret.rb +28 -0
  127. data/app/graphql/masks/server/manage/mutations/rotate_signing_key.rb +21 -0
  128. data/app/graphql/masks/server/manage/mutations/serve_domain.rb +34 -0
  129. data/app/graphql/masks/server/manage/mutations/set_actor_scopes.rb +33 -0
  130. data/app/graphql/masks/server/manage/mutations/set_member_role.rb +26 -0
  131. data/app/graphql/masks/server/manage/mutations/set_provider_organization.rb +49 -0
  132. data/app/graphql/masks/server/manage/mutations/sign_in_policy_mutation.rb +57 -0
  133. data/app/graphql/masks/server/manage/mutations/sign_out_actor.rb +24 -0
  134. data/app/graphql/masks/server/manage/mutations/sign_out_device.rb +24 -0
  135. data/app/graphql/masks/server/manage/mutations/stage_signing_key.rb +27 -0
  136. data/app/graphql/masks/server/manage/mutations/suspend_actor.rb +27 -0
  137. data/app/graphql/masks/server/manage/mutations/test_event_stream.rb +33 -0
  138. data/app/graphql/masks/server/manage/mutations/test_sender.rb +31 -0
  139. data/app/graphql/masks/server/manage/mutations/unblock_device.rb +24 -0
  140. data/app/graphql/masks/server/manage/mutations/unblock_devices.rb +31 -0
  141. data/app/graphql/masks/server/manage/mutations/update_actor.rb +49 -0
  142. data/app/graphql/masks/server/manage/mutations/update_client.rb +105 -0
  143. data/app/graphql/masks/server/manage/mutations/update_domain_claim.rb +26 -0
  144. data/app/graphql/masks/server/manage/mutations/update_event_stream.rb +37 -0
  145. data/app/graphql/masks/server/manage/mutations/update_group.rb +24 -0
  146. data/app/graphql/masks/server/manage/mutations/update_mail_template.rb +37 -0
  147. data/app/graphql/masks/server/manage/mutations/update_organization.rb +34 -0
  148. data/app/graphql/masks/server/manage/mutations/update_provider.rb +87 -0
  149. data/app/graphql/masks/server/manage/mutations/update_sender.rb +35 -0
  150. data/app/graphql/masks/server/manage/mutations/update_sign_in_policy.rb +28 -0
  151. data/app/graphql/masks/server/manage/mutations/update_tenant.rb +122 -0
  152. data/app/graphql/masks/server/manage/mutations/upload_avatar.rb +27 -0
  153. data/app/graphql/masks/server/manage/mutations/upload_tenant_logo.rb +23 -0
  154. data/app/graphql/masks/server/manage/mutations/verify_email.rb +26 -0
  155. data/app/graphql/masks/server/manage/sources/membership_counts.rb +29 -0
  156. data/app/graphql/masks/server/manage/types/activity_day_type.rb +12 -0
  157. data/app/graphql/masks/server/manage/types/actor_type.rb +151 -0
  158. data/app/graphql/masks/server/manage/types/app_preset_type.rb +18 -0
  159. data/app/graphql/masks/server/manage/types/app_setting_type.rb +14 -0
  160. data/app/graphql/masks/server/manage/types/avatars_type.rb +13 -0
  161. data/app/graphql/masks/server/manage/types/base_object.rb +10 -0
  162. data/app/graphql/masks/server/manage/types/client_type.rb +121 -0
  163. data/app/graphql/masks/server/manage/types/connection_type.rb +37 -0
  164. data/app/graphql/masks/server/manage/types/consent_type.rb +30 -0
  165. data/app/graphql/masks/server/manage/types/delegation_type.rb +32 -0
  166. data/app/graphql/masks/server/manage/types/device_type.rb +35 -0
  167. data/app/graphql/masks/server/manage/types/domain_claim_type.rb +17 -0
  168. data/app/graphql/masks/server/manage/types/event_action_type.rb +20 -0
  169. data/app/graphql/masks/server/manage/types/event_stream_type.rb +21 -0
  170. data/app/graphql/masks/server/manage/types/event_type.rb +27 -0
  171. data/app/graphql/masks/server/manage/types/group_type.rb +25 -0
  172. data/app/graphql/masks/server/manage/types/invitation_outcome_type.rb +18 -0
  173. data/app/graphql/masks/server/manage/types/ldap_credential_type.rb +20 -0
  174. data/app/graphql/masks/server/manage/types/mail_preview_type.rb +19 -0
  175. data/app/graphql/masks/server/manage/types/mail_template_type.rb +20 -0
  176. data/app/graphql/masks/server/manage/types/membership_type.rb +24 -0
  177. data/app/graphql/masks/server/manage/types/mutation_type.rb +103 -0
  178. data/app/graphql/masks/server/manage/types/namespace_type.rb +26 -0
  179. data/app/graphql/masks/server/manage/types/organization_type.rb +70 -0
  180. data/app/graphql/masks/server/manage/types/passkey_type.rb +22 -0
  181. data/app/graphql/masks/server/manage/types/provider_preset_type.rb +21 -0
  182. data/app/graphql/masks/server/manage/types/provider_type.rb +108 -0
  183. data/app/graphql/masks/server/manage/types/provisioning_token_type.rb +18 -0
  184. data/app/graphql/masks/server/manage/types/query_type.rb +536 -0
  185. data/app/graphql/masks/server/manage/types/sender_field_type.rb +18 -0
  186. data/app/graphql/masks/server/manage/types/sender_service_type.rb +14 -0
  187. data/app/graphql/masks/server/manage/types/sender_type.rb +29 -0
  188. data/app/graphql/masks/server/manage/types/session_type.rb +19 -0
  189. data/app/graphql/masks/server/manage/types/sign_in_policy_type.rb +54 -0
  190. data/app/graphql/masks/server/manage/types/signing_key_type.rb +23 -0
  191. data/app/graphql/masks/server/manage/types/tally_type.rb +14 -0
  192. data/app/graphql/masks/server/manage/types/tenant_type.rb +64 -0
  193. data/app/graphql/masks/server/manage/types/token_type.rb +42 -0
  194. data/app/graphql/masks/server/manage/types/upload_type.rb +21 -0
  195. data/app/graphql/masks/server/manage_schema.rb +23 -0
  196. data/app/helpers/masks/server/account_helper.rb +59 -0
  197. data/app/helpers/masks/server/application_helper.rb +39 -0
  198. data/app/helpers/masks/server/avatars_helper.rb +20 -0
  199. data/app/helpers/masks/server/events_helper.rb +19 -0
  200. data/app/helpers/masks/server/scopes_helper.rb +15 -0
  201. data/app/jobs/masks/server/application_job.rb +7 -0
  202. data/app/jobs/masks/server/backchannel_logout_job.rb +38 -0
  203. data/app/jobs/masks/server/check_domain_claims_job.rb +31 -0
  204. data/app/jobs/masks/server/cleanup_job.rb +53 -0
  205. data/app/jobs/masks/server/client_logo_job.rb +20 -0
  206. data/app/jobs/masks/server/event_stream_job.rb +40 -0
  207. data/app/jobs/masks/server/idle_accounts_job.rb +14 -0
  208. data/app/jobs/masks/server/mail_delivery_job.rb +7 -0
  209. data/app/jobs/masks/server/notification_job.rb +17 -0
  210. data/app/jobs/masks/server/refresh_authenticators_job.rb +14 -0
  211. data/app/jobs/masks/server/refresh_saml_metadata_job.rb +24 -0
  212. data/app/jobs/masks/server/rotate_signing_keys_job.rb +37 -0
  213. data/app/jobs/masks/server/saml_logout_job.rb +38 -0
  214. data/app/jobs/masks/server/signal_job.rb +45 -0
  215. data/app/jobs/masks/server/text_job.rb +17 -0
  216. data/app/ldap/masks/server/ldap/ber.rb +202 -0
  217. data/app/ldap/masks/server/ldap/connection.rb +149 -0
  218. data/app/ldap/masks/server/ldap/directory.rb +175 -0
  219. data/app/ldap/masks/server/ldap/dn.rb +185 -0
  220. data/app/ldap/masks/server/ldap/entry.rb +30 -0
  221. data/app/ldap/masks/server/ldap/filter.rb +239 -0
  222. data/app/ldap/masks/server/ldap/gate.rb +169 -0
  223. data/app/ldap/masks/server/ldap/listener.rb +113 -0
  224. data/app/ldap/masks/server/ldap/protocol.rb +174 -0
  225. data/app/logins/masks/server/login_state.rb +153 -0
  226. data/app/logins/masks/server/login_states/app_access.rb +18 -0
  227. data/app/logins/masks/server/login_states/backup_code.rb +69 -0
  228. data/app/logins/masks/server/login_states/code_factor.rb +100 -0
  229. data/app/logins/masks/server/login_states/configure.rb +43 -0
  230. data/app/logins/masks/server/login_states/confirmation.rb +193 -0
  231. data/app/logins/masks/server/login_states/consent.rb +90 -0
  232. data/app/logins/masks/server/login_states/delegation.rb +172 -0
  233. data/app/logins/masks/server/login_states/email_code.rb +108 -0
  234. data/app/logins/masks/server/login_states/enrolment.rb +268 -0
  235. data/app/logins/masks/server/login_states/first_factor.rb +17 -0
  236. data/app/logins/masks/server/login_states/identifier.rb +48 -0
  237. data/app/logins/masks/server/login_states/inbox.rb +159 -0
  238. data/app/logins/masks/server/login_states/invitation.rb +80 -0
  239. data/app/logins/masks/server/login_states/one_time_password.rb +30 -0
  240. data/app/logins/masks/server/login_states/organization_choice.rb +108 -0
  241. data/app/logins/masks/server/login_states/passkey.rb +113 -0
  242. data/app/logins/masks/server/login_states/password.rb +40 -0
  243. data/app/logins/masks/server/login_states/password_reset.rb +88 -0
  244. data/app/logins/masks/server/login_states/provider.rb +181 -0
  245. data/app/logins/masks/server/login_states/risk_check.rb +79 -0
  246. data/app/logins/masks/server/login_states/second_factor.rb +55 -0
  247. data/app/logins/masks/server/login_states/signup.rb +351 -0
  248. data/app/logins/masks/server/login_states/suspension.rb +18 -0
  249. data/app/logins/masks/server/login_states/trusted_device.rb +84 -0
  250. data/app/mailers/masks/server/actor_mailer.rb +184 -0
  251. data/app/mailers/masks/server/application_mailer.rb +66 -0
  252. data/app/mailers/masks/server/sender_mailer.rb +13 -0
  253. data/app/models/concerns/masks/server/archivable.rb +22 -0
  254. data/app/models/concerns/masks/server/carries_authorization.rb +75 -0
  255. data/app/models/concerns/masks/server/mailed_link.rb +47 -0
  256. data/app/models/concerns/masks/server/paged.rb +18 -0
  257. data/app/models/concerns/masks/server/tenant_scoped.rb +13 -0
  258. data/app/models/masks/server/access_token.rb +69 -0
  259. data/app/models/masks/server/account_export.rb +144 -0
  260. data/app/models/masks/server/actor.rb +523 -0
  261. data/app/models/masks/server/addresses.rb +65 -0
  262. data/app/models/masks/server/app_preset.rb +251 -0
  263. data/app/models/masks/server/application_record.rb +17 -0
  264. data/app/models/masks/server/apps.rb +56 -0
  265. data/app/models/masks/server/authenticator.rb +57 -0
  266. data/app/models/masks/server/authenticator_app.rb +51 -0
  267. data/app/models/masks/server/authenticators.rb +78 -0
  268. data/app/models/masks/server/authorization.rb +200 -0
  269. data/app/models/masks/server/authorization_code.rb +32 -0
  270. data/app/models/masks/server/authorization_details.rb +235 -0
  271. data/app/models/masks/server/authorize_request.rb +57 -0
  272. data/app/models/masks/server/avatar.rb +52 -0
  273. data/app/models/masks/server/avatars.rb +99 -0
  274. data/app/models/masks/server/backchannel_logout.rb +67 -0
  275. data/app/models/masks/server/breached_passwords.rb +29 -0
  276. data/app/models/masks/server/client.rb +604 -0
  277. data/app/models/masks/server/client_assertion.rb +59 -0
  278. data/app/models/masks/server/client_keys.rb +130 -0
  279. data/app/models/masks/server/client_logo.rb +55 -0
  280. data/app/models/masks/server/client_metadata_document.rb +178 -0
  281. data/app/models/masks/server/code_factors.rb +103 -0
  282. data/app/models/masks/server/confirmation_code.rb +110 -0
  283. data/app/models/masks/server/confirmations.rb +51 -0
  284. data/app/models/masks/server/connection.rb +140 -0
  285. data/app/models/masks/server/consent.rb +70 -0
  286. data/app/models/masks/server/current.rb +8 -0
  287. data/app/models/masks/server/declared.rb +127 -0
  288. data/app/models/masks/server/delegation.rb +94 -0
  289. data/app/models/masks/server/device.rb +145 -0
  290. data/app/models/masks/server/device_factor.rb +39 -0
  291. data/app/models/masks/server/device_grant.rb +93 -0
  292. data/app/models/masks/server/domain_claim.rb +85 -0
  293. data/app/models/masks/server/email_verification.rb +22 -0
  294. data/app/models/masks/server/event.rb +251 -0
  295. data/app/models/masks/server/event_export.rb +73 -0
  296. data/app/models/masks/server/event_stream.rb +131 -0
  297. data/app/models/masks/server/exchange.rb +240 -0
  298. data/app/models/masks/server/federation/mcp.rb +29 -0
  299. data/app/models/masks/server/federation/oauth2.rb +27 -0
  300. data/app/models/masks/server/federation/oidc.rb +146 -0
  301. data/app/models/masks/server/federation/protocol.rb +114 -0
  302. data/app/models/masks/server/federation/saml.rb +120 -0
  303. data/app/models/masks/server/forward_code.rb +13 -0
  304. data/app/models/masks/server/forward_session.rb +14 -0
  305. data/app/models/masks/server/forwarded.rb +40 -0
  306. data/app/models/masks/server/group.rb +31 -0
  307. data/app/models/masks/server/group_member.rb +10 -0
  308. data/app/models/masks/server/handshake.rb +172 -0
  309. data/app/models/masks/server/help_requests.rb +50 -0
  310. data/app/models/masks/server/identicon.rb +71 -0
  311. data/app/models/masks/server/idle_accounts.rb +96 -0
  312. data/app/models/masks/server/initial_access_token.rb +14 -0
  313. data/app/models/masks/server/initials.rb +75 -0
  314. data/app/models/masks/server/invitation.rb +29 -0
  315. data/app/models/masks/server/invitations.rb +24 -0
  316. data/app/models/masks/server/issuer.rb +205 -0
  317. data/app/models/masks/server/journey.rb +97 -0
  318. data/app/models/masks/server/ldap_credential.rb +51 -0
  319. data/app/models/masks/server/linking.rb +81 -0
  320. data/app/models/masks/server/locales.rb +55 -0
  321. data/app/models/masks/server/localized.rb +42 -0
  322. data/app/models/masks/server/locked_out.rb +30 -0
  323. data/app/models/masks/server/login.rb +469 -0
  324. data/app/models/masks/server/logout.rb +99 -0
  325. data/app/models/masks/server/mail_previews.rb +90 -0
  326. data/app/models/masks/server/mail_template.rb +77 -0
  327. data/app/models/masks/server/manage_roles.rb +48 -0
  328. data/app/models/masks/server/master_key.rb +44 -0
  329. data/app/models/masks/server/members.rb +166 -0
  330. data/app/models/masks/server/membership.rb +105 -0
  331. data/app/models/masks/server/namespace.rb +85 -0
  332. data/app/models/masks/server/notifications.rb +156 -0
  333. data/app/models/masks/server/organization.rb +74 -0
  334. data/app/models/masks/server/outbound.rb +165 -0
  335. data/app/models/masks/server/passkey.rb +83 -0
  336. data/app/models/masks/server/password_reset.rb +30 -0
  337. data/app/models/masks/server/passwords.rb +21 -0
  338. data/app/models/masks/server/pending_handshake.rb +36 -0
  339. data/app/models/masks/server/pending_login.rb +23 -0
  340. data/app/models/masks/server/pending_request.rb +69 -0
  341. data/app/models/masks/server/pictures.rb +84 -0
  342. data/app/models/masks/server/presented_token.rb +106 -0
  343. data/app/models/masks/server/proof.rb +170 -0
  344. data/app/models/masks/server/proof_of_work.rb +43 -0
  345. data/app/models/masks/server/provider.rb +576 -0
  346. data/app/models/masks/server/provider_domains.rb +9 -0
  347. data/app/models/masks/server/provider_preset.rb +234 -0
  348. data/app/models/masks/server/provisioning_token.rb +35 -0
  349. data/app/models/masks/server/pushed_request.rb +39 -0
  350. data/app/models/masks/server/received_signal.rb +131 -0
  351. data/app/models/masks/server/recoveries.rb +40 -0
  352. data/app/models/masks/server/refresh_token.rb +19 -0
  353. data/app/models/masks/server/relying_party.rb +76 -0
  354. data/app/models/masks/server/replay.rb +11 -0
  355. data/app/models/masks/server/request_object.rb +84 -0
  356. data/app/models/masks/server/resource_metadata.rb +70 -0
  357. data/app/models/masks/server/risk.rb +110 -0
  358. data/app/models/masks/server/saml_identity/farewells.rb +51 -0
  359. data/app/models/masks/server/saml_identity/logout_reply.rb +31 -0
  360. data/app/models/masks/server/saml_identity/logout_request.rb +51 -0
  361. data/app/models/masks/server/saml_identity/message.rb +171 -0
  362. data/app/models/masks/server/saml_identity/metadata.rb +43 -0
  363. data/app/models/masks/server/saml_identity/request.rb +57 -0
  364. data/app/models/masks/server/saml_identity/response.rb +137 -0
  365. data/app/models/masks/server/saml_identity/sign_off.rb +46 -0
  366. data/app/models/masks/server/saml_identity.rb +87 -0
  367. data/app/models/masks/server/saml_participation.rb +35 -0
  368. data/app/models/masks/server/scim/directory.rb +57 -0
  369. data/app/models/masks/server/scim/filter.rb +124 -0
  370. data/app/models/masks/server/scim/group.rb +142 -0
  371. data/app/models/masks/server/scim/organization_directory.rb +70 -0
  372. data/app/models/masks/server/scim/user.rb +149 -0
  373. data/app/models/masks/server/scim.rb +41 -0
  374. data/app/models/masks/server/scopes.rb +128 -0
  375. data/app/models/masks/server/sector_identifier.rb +50 -0
  376. data/app/models/masks/server/sender.rb +173 -0
  377. data/app/models/masks/server/senders/click_send.rb +21 -0
  378. data/app/models/masks/server/senders/infobip.rb +34 -0
  379. data/app/models/masks/server/senders/mail.rb +36 -0
  380. data/app/models/masks/server/senders/message_bird.rb +20 -0
  381. data/app/models/masks/server/senders/plivo.rb +19 -0
  382. data/app/models/masks/server/senders/sinch.rb +22 -0
  383. data/app/models/masks/server/senders/sms.rb +76 -0
  384. data/app/models/masks/server/senders/sms_log.rb +19 -0
  385. data/app/models/masks/server/senders/smtp.rb +60 -0
  386. data/app/models/masks/server/senders/sns.rb +72 -0
  387. data/app/models/masks/server/senders/telnyx.rb +18 -0
  388. data/app/models/masks/server/senders/twilio.rb +21 -0
  389. data/app/models/masks/server/senders/vonage.rb +25 -0
  390. data/app/models/masks/server/session.rb +134 -0
  391. data/app/models/masks/server/sign_in_approval.rb +70 -0
  392. data/app/models/masks/server/sign_in_policy.rb +202 -0
  393. data/app/models/masks/server/signal_stream.rb +147 -0
  394. data/app/models/masks/server/signals.rb +72 -0
  395. data/app/models/masks/server/signing_key.rb +112 -0
  396. data/app/models/masks/server/single_sign_on.rb +262 -0
  397. data/app/models/masks/server/subject.rb +14 -0
  398. data/app/models/masks/server/subjects.rb +39 -0
  399. data/app/models/masks/server/tenant.rb +476 -0
  400. data/app/models/masks/server/tenant_logo.rb +44 -0
  401. data/app/models/masks/server/texting.rb +16 -0
  402. data/app/models/masks/server/themes.rb +64 -0
  403. data/app/models/masks/server/token.rb +183 -0
  404. data/app/models/masks/server/user_codes.rb +32 -0
  405. data/app/models/masks/server/verifications.rb +26 -0
  406. data/app/policies/masks/server/authorization_policy.rb +55 -0
  407. data/app/policies/masks/server/client_policy.rb +21 -0
  408. data/app/policies/masks/server/device_policy.rb +22 -0
  409. data/app/policies/masks/server/exchange_policy.rb +155 -0
  410. data/app/policies/masks/server/grant_checks.rb +45 -0
  411. data/app/policies/masks/server/policy.rb +64 -0
  412. data/app/views/layouts/masks/server/application.html.erb +40 -0
  413. data/app/views/layouts/masks/server/mailer.html.erb +263 -0
  414. data/app/views/layouts/masks/server/mailer.text.erb +7 -0
  415. data/app/views/layouts/masks/server/manage.html.erb +22 -0
  416. data/app/views/masks/server/account/_activity.html.erb +44 -0
  417. data/app/views/masks/server/account/_address.html.erb +42 -0
  418. data/app/views/masks/server/account/_approve.html.erb +56 -0
  419. data/app/views/masks/server/account/_apps.html.erb +129 -0
  420. data/app/views/masks/server/account/_delete.html.erb +40 -0
  421. data/app/views/masks/server/account/_devices.html.erb +57 -0
  422. data/app/views/masks/server/account/_export.html.erb +29 -0
  423. data/app/views/masks/server/account/_head.html.erb +58 -0
  424. data/app/views/masks/server/account/_info.html.erb +81 -0
  425. data/app/views/masks/server/account/_launcher.html.erb +18 -0
  426. data/app/views/masks/server/account/_organizations.html.erb +171 -0
  427. data/app/views/masks/server/account/_signing_in.html.erb +339 -0
  428. data/app/views/masks/server/account/index.html.erb +41 -0
  429. data/app/views/masks/server/actor_mailer/_action.html.erb +18 -0
  430. data/app/views/masks/server/actor_mailer/_message.html.erb +7 -0
  431. data/app/views/masks/server/actor_mailer/_message.text.erb +1 -0
  432. data/app/views/masks/server/actor_mailer/approval_requested.html.erb +7 -0
  433. data/app/views/masks/server/actor_mailer/approval_requested.text.erb +7 -0
  434. data/app/views/masks/server/actor_mailer/approved.html.erb +7 -0
  435. data/app/views/masks/server/actor_mailer/approved.text.erb +7 -0
  436. data/app/views/masks/server/actor_mailer/confirmation_code.html.erb +9 -0
  437. data/app/views/masks/server/actor_mailer/confirmation_code.text.erb +7 -0
  438. data/app/views/masks/server/actor_mailer/email_verification.html.erb +11 -0
  439. data/app/views/masks/server/actor_mailer/email_verification.text.erb +7 -0
  440. data/app/views/masks/server/actor_mailer/idle.html.erb +9 -0
  441. data/app/views/masks/server/actor_mailer/idle.text.erb +9 -0
  442. data/app/views/masks/server/actor_mailer/invitation.html.erb +19 -0
  443. data/app/views/masks/server/actor_mailer/invitation.text.erb +13 -0
  444. data/app/views/masks/server/actor_mailer/notification.html.erb +20 -0
  445. data/app/views/masks/server/actor_mailer/notification.text.erb +15 -0
  446. data/app/views/masks/server/actor_mailer/organization_invitation.html.erb +11 -0
  447. data/app/views/masks/server/actor_mailer/organization_invitation.text.erb +11 -0
  448. data/app/views/masks/server/actor_mailer/password_reset.html.erb +15 -0
  449. data/app/views/masks/server/actor_mailer/password_reset.text.erb +11 -0
  450. data/app/views/masks/server/actor_mailer/recovery_requested.html.erb +7 -0
  451. data/app/views/masks/server/actor_mailer/recovery_requested.text.erb +7 -0
  452. data/app/views/masks/server/application/_flashes.html.erb +8 -0
  453. data/app/views/masks/server/application/_person.html.erb +27 -0
  454. data/app/views/masks/server/authorize/error.html.erb +12 -0
  455. data/app/views/masks/server/device_verifications/approved.html.erb +8 -0
  456. data/app/views/masks/server/device_verifications/show.html.erb +23 -0
  457. data/app/views/masks/server/handshakes/refused.html.erb +20 -0
  458. data/app/views/masks/server/handshakes/show.html.erb +141 -0
  459. data/app/views/masks/server/links/expired.html.erb +10 -0
  460. data/app/views/masks/server/links/verified.html.erb +8 -0
  461. data/app/views/masks/server/logins/_accept_invitation.html.erb +31 -0
  462. data/app/views/masks/server/logins/_add_phone.html.erb +14 -0
  463. data/app/views/masks/server/logins/_awaiting_approval.html.erb +7 -0
  464. data/app/views/masks/server/logins/_backup_code.html.erb +23 -0
  465. data/app/views/masks/server/logins/_choose_organization.html.erb +21 -0
  466. data/app/views/masks/server/logins/_code_form.html.erb +12 -0
  467. data/app/views/masks/server/logins/_confirm_email.html.erb +19 -0
  468. data/app/views/masks/server/logins/_confirm_head.html.erb +12 -0
  469. data/app/views/masks/server/logins/_confirm_phone.html.erb +16 -0
  470. data/app/views/masks/server/logins/_consent.html.erb +109 -0
  471. data/app/views/masks/server/logins/_email_code.html.erb +7 -0
  472. data/app/views/masks/server/logins/_enrol.html.erb +103 -0
  473. data/app/views/masks/server/logins/_enrol_code_form.html.erb +9 -0
  474. data/app/views/masks/server/logins/_first_factor.html.erb +41 -0
  475. data/app/views/masks/server/logins/_head.html.erb +15 -0
  476. data/app/views/masks/server/logins/_header.html.erb +3 -0
  477. data/app/views/masks/server/logins/_hint.html.erb +6 -0
  478. data/app/views/masks/server/logins/_identified.html.erb +6 -0
  479. data/app/views/masks/server/logins/_identify.html.erb +24 -0
  480. data/app/views/masks/server/logins/_prove_email.html.erb +12 -0
  481. data/app/views/masks/server/logins/_providers.html.erb +21 -0
  482. data/app/views/masks/server/logins/_resend.html.erb +5 -0
  483. data/app/views/masks/server/logins/_reset_password.html.erb +23 -0
  484. data/app/views/masks/server/logins/_second_factor.html.erb +102 -0
  485. data/app/views/masks/server/logins/_setup_configure.html.erb +32 -0
  486. data/app/views/masks/server/logins/_signup.html.erb +85 -0
  487. data/app/views/masks/server/logins/_signup_credentials.html.erb +54 -0
  488. data/app/views/masks/server/logins/_signup_head.html.erb +20 -0
  489. data/app/views/masks/server/logins/_steps.html.erb +7 -0
  490. data/app/views/masks/server/logins/_warnings.html.erb +3 -0
  491. data/app/views/masks/server/logins/show.html.erb +14 -0
  492. data/app/views/masks/server/manage/index.html.erb +1 -0
  493. data/app/views/masks/server/refusals/show.html.erb +16 -0
  494. data/app/views/masks/server/saml/post.html.erb +16 -0
  495. data/app/views/masks/server/sender_mailer/trial.html.erb +1 -0
  496. data/app/views/masks/server/sender_mailer/trial.text.erb +1 -0
  497. data/app/views/masks/server/sessions/confirm.html.erb +29 -0
  498. data/config/initializers/fido_metadata.rb +5 -0
  499. data/config/initializers/inflections.rb +3 -0
  500. data/config/initializers/premailer.rb +7 -0
  501. data/config/initializers/rack_oauth2.rb +3 -0
  502. data/config/locales/de/account.yml +277 -0
  503. data/config/locales/de/actors.yml +8 -0
  504. data/config/locales/de/application.yml +6 -0
  505. data/config/locales/de/authorize.yml +7 -0
  506. data/config/locales/de/device_verifications.yml +15 -0
  507. data/config/locales/de/events.yml +189 -0
  508. data/config/locales/de/flashes.yml +164 -0
  509. data/config/locales/de/handshakes.yml +45 -0
  510. data/config/locales/de/links.yml +16 -0
  511. data/config/locales/de/logins.yml +272 -0
  512. data/config/locales/de/mailers.yml +135 -0
  513. data/config/locales/de/manage/activity.yml +31 -0
  514. data/config/locales/de/manage/actor.yml +125 -0
  515. data/config/locales/de/manage/actors.yml +78 -0
  516. data/config/locales/de/manage/api.yml +5 -0
  517. data/config/locales/de/manage/app.yml +24 -0
  518. data/config/locales/de/manage/client.yml +187 -0
  519. data/config/locales/de/manage/clients.yml +62 -0
  520. data/config/locales/de/manage/connections.yml +18 -0
  521. data/config/locales/de/manage/consents.yml +10 -0
  522. data/config/locales/de/manage/device.yml +30 -0
  523. data/config/locales/de/manage/devices.yml +59 -0
  524. data/config/locales/de/manage/directory.yml +5 -0
  525. data/config/locales/de/manage/domains.yml +28 -0
  526. data/config/locales/de/manage/emails.yml +30 -0
  527. data/config/locales/de/manage/event_labels.yml +5 -0
  528. data/config/locales/de/manage/events.yml +8 -0
  529. data/config/locales/de/manage/groups.yml +15 -0
  530. data/config/locales/de/manage/ldap.yml +35 -0
  531. data/config/locales/de/manage/mail_template.yml +18 -0
  532. data/config/locales/de/manage/messages.yml +11 -0
  533. data/config/locales/de/manage/namespaces.yml +14 -0
  534. data/config/locales/de/manage/organization.yml +132 -0
  535. data/config/locales/de/manage/organization_cell.yml +4 -0
  536. data/config/locales/de/manage/organization_headcount.yml +9 -0
  537. data/config/locales/de/manage/organizations.yml +31 -0
  538. data/config/locales/de/manage/pairing.yml +5 -0
  539. data/config/locales/de/manage/policies.yml +111 -0
  540. data/config/locales/de/manage/policy_rules.yml +73 -0
  541. data/config/locales/de/manage/presence.yml +26 -0
  542. data/config/locales/de/manage/providers.yml +156 -0
  543. data/config/locales/de/manage/provisioning.yml +29 -0
  544. data/config/locales/de/manage/scopes_editor.yml +21 -0
  545. data/config/locales/de/manage/senders.yml +43 -0
  546. data/config/locales/de/manage/settings.yml +147 -0
  547. data/config/locales/de/manage/settings_shell.yml +15 -0
  548. data/config/locales/de/manage/streams.yml +45 -0
  549. data/config/locales/de/manage/tokens.yml +21 -0
  550. data/config/locales/de/manage/ui.yml +23 -0
  551. data/config/locales/de/notifications.yml +15 -0
  552. data/config/locales/de/refusals.yml +16 -0
  553. data/config/locales/de/saml.yml +8 -0
  554. data/config/locales/de/scopes.yml +20 -0
  555. data/config/locales/de/senders.yml +12 -0
  556. data/config/locales/de/sessions.yml +10 -0
  557. data/config/locales/en/account.yml +278 -0
  558. data/config/locales/en/actors.yml +8 -0
  559. data/config/locales/en/application.yml +6 -0
  560. data/config/locales/en/authorize.yml +7 -0
  561. data/config/locales/en/device_verifications.yml +15 -0
  562. data/config/locales/en/events.yml +189 -0
  563. data/config/locales/en/flashes.yml +164 -0
  564. data/config/locales/en/handshakes.yml +45 -0
  565. data/config/locales/en/links.yml +16 -0
  566. data/config/locales/en/logins.yml +272 -0
  567. data/config/locales/en/mailers.yml +135 -0
  568. data/config/locales/en/manage/activity.yml +31 -0
  569. data/config/locales/en/manage/actor.yml +125 -0
  570. data/config/locales/en/manage/actors.yml +78 -0
  571. data/config/locales/en/manage/api.yml +5 -0
  572. data/config/locales/en/manage/app.yml +24 -0
  573. data/config/locales/en/manage/client.yml +187 -0
  574. data/config/locales/en/manage/clients.yml +62 -0
  575. data/config/locales/en/manage/connections.yml +18 -0
  576. data/config/locales/en/manage/consents.yml +10 -0
  577. data/config/locales/en/manage/device.yml +30 -0
  578. data/config/locales/en/manage/devices.yml +59 -0
  579. data/config/locales/en/manage/directory.yml +5 -0
  580. data/config/locales/en/manage/domains.yml +28 -0
  581. data/config/locales/en/manage/emails.yml +30 -0
  582. data/config/locales/en/manage/event_labels.yml +5 -0
  583. data/config/locales/en/manage/events.yml +8 -0
  584. data/config/locales/en/manage/groups.yml +15 -0
  585. data/config/locales/en/manage/ldap.yml +35 -0
  586. data/config/locales/en/manage/mail_template.yml +18 -0
  587. data/config/locales/en/manage/messages.yml +11 -0
  588. data/config/locales/en/manage/namespaces.yml +14 -0
  589. data/config/locales/en/manage/organization.yml +132 -0
  590. data/config/locales/en/manage/organization_cell.yml +4 -0
  591. data/config/locales/en/manage/organization_headcount.yml +9 -0
  592. data/config/locales/en/manage/organizations.yml +31 -0
  593. data/config/locales/en/manage/pairing.yml +5 -0
  594. data/config/locales/en/manage/policies.yml +111 -0
  595. data/config/locales/en/manage/policy_rules.yml +73 -0
  596. data/config/locales/en/manage/presence.yml +26 -0
  597. data/config/locales/en/manage/providers.yml +156 -0
  598. data/config/locales/en/manage/provisioning.yml +29 -0
  599. data/config/locales/en/manage/scopes_editor.yml +21 -0
  600. data/config/locales/en/manage/senders.yml +43 -0
  601. data/config/locales/en/manage/settings.yml +147 -0
  602. data/config/locales/en/manage/settings_shell.yml +15 -0
  603. data/config/locales/en/manage/streams.yml +45 -0
  604. data/config/locales/en/manage/tokens.yml +21 -0
  605. data/config/locales/en/manage/ui.yml +23 -0
  606. data/config/locales/en/notifications.yml +15 -0
  607. data/config/locales/en/refusals.yml +16 -0
  608. data/config/locales/en/saml.yml +8 -0
  609. data/config/locales/en/scopes.yml +20 -0
  610. data/config/locales/en/senders.yml +12 -0
  611. data/config/locales/en/sessions.yml +10 -0
  612. data/config/locales/es/account.yml +277 -0
  613. data/config/locales/es/actors.yml +8 -0
  614. data/config/locales/es/application.yml +6 -0
  615. data/config/locales/es/authorize.yml +7 -0
  616. data/config/locales/es/device_verifications.yml +15 -0
  617. data/config/locales/es/events.yml +189 -0
  618. data/config/locales/es/flashes.yml +164 -0
  619. data/config/locales/es/handshakes.yml +45 -0
  620. data/config/locales/es/links.yml +16 -0
  621. data/config/locales/es/logins.yml +272 -0
  622. data/config/locales/es/mailers.yml +135 -0
  623. data/config/locales/es/manage/activity.yml +31 -0
  624. data/config/locales/es/manage/actor.yml +125 -0
  625. data/config/locales/es/manage/actors.yml +78 -0
  626. data/config/locales/es/manage/api.yml +5 -0
  627. data/config/locales/es/manage/app.yml +24 -0
  628. data/config/locales/es/manage/client.yml +187 -0
  629. data/config/locales/es/manage/clients.yml +62 -0
  630. data/config/locales/es/manage/connections.yml +18 -0
  631. data/config/locales/es/manage/consents.yml +10 -0
  632. data/config/locales/es/manage/device.yml +30 -0
  633. data/config/locales/es/manage/devices.yml +59 -0
  634. data/config/locales/es/manage/directory.yml +5 -0
  635. data/config/locales/es/manage/domains.yml +28 -0
  636. data/config/locales/es/manage/emails.yml +30 -0
  637. data/config/locales/es/manage/event_labels.yml +5 -0
  638. data/config/locales/es/manage/events.yml +8 -0
  639. data/config/locales/es/manage/groups.yml +15 -0
  640. data/config/locales/es/manage/ldap.yml +35 -0
  641. data/config/locales/es/manage/mail_template.yml +18 -0
  642. data/config/locales/es/manage/messages.yml +11 -0
  643. data/config/locales/es/manage/namespaces.yml +14 -0
  644. data/config/locales/es/manage/organization.yml +132 -0
  645. data/config/locales/es/manage/organization_cell.yml +4 -0
  646. data/config/locales/es/manage/organization_headcount.yml +9 -0
  647. data/config/locales/es/manage/organizations.yml +31 -0
  648. data/config/locales/es/manage/pairing.yml +5 -0
  649. data/config/locales/es/manage/policies.yml +111 -0
  650. data/config/locales/es/manage/policy_rules.yml +73 -0
  651. data/config/locales/es/manage/presence.yml +26 -0
  652. data/config/locales/es/manage/providers.yml +156 -0
  653. data/config/locales/es/manage/provisioning.yml +29 -0
  654. data/config/locales/es/manage/scopes_editor.yml +21 -0
  655. data/config/locales/es/manage/senders.yml +43 -0
  656. data/config/locales/es/manage/settings.yml +147 -0
  657. data/config/locales/es/manage/settings_shell.yml +15 -0
  658. data/config/locales/es/manage/streams.yml +45 -0
  659. data/config/locales/es/manage/tokens.yml +21 -0
  660. data/config/locales/es/manage/ui.yml +23 -0
  661. data/config/locales/es/notifications.yml +15 -0
  662. data/config/locales/es/refusals.yml +16 -0
  663. data/config/locales/es/saml.yml +8 -0
  664. data/config/locales/es/scopes.yml +20 -0
  665. data/config/locales/es/senders.yml +12 -0
  666. data/config/locales/es/sessions.yml +10 -0
  667. data/config/locales/fr/account.yml +277 -0
  668. data/config/locales/fr/actors.yml +8 -0
  669. data/config/locales/fr/application.yml +6 -0
  670. data/config/locales/fr/authorize.yml +7 -0
  671. data/config/locales/fr/device_verifications.yml +15 -0
  672. data/config/locales/fr/events.yml +189 -0
  673. data/config/locales/fr/flashes.yml +164 -0
  674. data/config/locales/fr/handshakes.yml +45 -0
  675. data/config/locales/fr/links.yml +16 -0
  676. data/config/locales/fr/logins.yml +272 -0
  677. data/config/locales/fr/mailers.yml +135 -0
  678. data/config/locales/fr/manage/activity.yml +31 -0
  679. data/config/locales/fr/manage/actor.yml +125 -0
  680. data/config/locales/fr/manage/actors.yml +78 -0
  681. data/config/locales/fr/manage/api.yml +5 -0
  682. data/config/locales/fr/manage/app.yml +24 -0
  683. data/config/locales/fr/manage/client.yml +187 -0
  684. data/config/locales/fr/manage/clients.yml +62 -0
  685. data/config/locales/fr/manage/connections.yml +18 -0
  686. data/config/locales/fr/manage/consents.yml +10 -0
  687. data/config/locales/fr/manage/device.yml +30 -0
  688. data/config/locales/fr/manage/devices.yml +59 -0
  689. data/config/locales/fr/manage/directory.yml +5 -0
  690. data/config/locales/fr/manage/domains.yml +28 -0
  691. data/config/locales/fr/manage/emails.yml +30 -0
  692. data/config/locales/fr/manage/event_labels.yml +5 -0
  693. data/config/locales/fr/manage/events.yml +8 -0
  694. data/config/locales/fr/manage/groups.yml +15 -0
  695. data/config/locales/fr/manage/ldap.yml +35 -0
  696. data/config/locales/fr/manage/mail_template.yml +18 -0
  697. data/config/locales/fr/manage/messages.yml +11 -0
  698. data/config/locales/fr/manage/namespaces.yml +14 -0
  699. data/config/locales/fr/manage/organization.yml +132 -0
  700. data/config/locales/fr/manage/organization_cell.yml +4 -0
  701. data/config/locales/fr/manage/organization_headcount.yml +9 -0
  702. data/config/locales/fr/manage/organizations.yml +31 -0
  703. data/config/locales/fr/manage/pairing.yml +5 -0
  704. data/config/locales/fr/manage/policies.yml +111 -0
  705. data/config/locales/fr/manage/policy_rules.yml +73 -0
  706. data/config/locales/fr/manage/presence.yml +26 -0
  707. data/config/locales/fr/manage/providers.yml +156 -0
  708. data/config/locales/fr/manage/provisioning.yml +29 -0
  709. data/config/locales/fr/manage/scopes_editor.yml +21 -0
  710. data/config/locales/fr/manage/senders.yml +43 -0
  711. data/config/locales/fr/manage/settings.yml +147 -0
  712. data/config/locales/fr/manage/settings_shell.yml +15 -0
  713. data/config/locales/fr/manage/streams.yml +45 -0
  714. data/config/locales/fr/manage/tokens.yml +21 -0
  715. data/config/locales/fr/manage/ui.yml +23 -0
  716. data/config/locales/fr/notifications.yml +15 -0
  717. data/config/locales/fr/refusals.yml +16 -0
  718. data/config/locales/fr/saml.yml +8 -0
  719. data/config/locales/fr/scopes.yml +20 -0
  720. data/config/locales/fr/senders.yml +12 -0
  721. data/config/locales/fr/sessions.yml +10 -0
  722. data/config/passwords/LICENSE +21 -0
  723. data/config/passwords/common.txt +46907 -0
  724. data/config/routes.rb +152 -0
  725. data/db/authenticators.yml +18 -0
  726. data/db/migrate/20260912000000_create_masks_schema.rb +425 -0
  727. data/db/migrate/20260913000000_create_adapters.rb +46 -0
  728. data/db/migrate/20260913010000_create_sign_in_policies.rb +44 -0
  729. data/db/migrate/20260913020000_add_signup_to_actors.rb +10 -0
  730. data/db/migrate/20260913030000_add_consent_required_to_clients.rb +5 -0
  731. data/db/migrate/20260913040000_remove_upstream_tokens.rb +9 -0
  732. data/db/migrate/20260913050000_add_role_to_providers.rb +23 -0
  733. data/db/migrate/20260913060000_add_protocols_to_providers.rb +19 -0
  734. data/db/migrate/20260913070000_add_saml_to_providers.rb +10 -0
  735. data/db/migrate/20260913080000_grant_identities_to_actors.rb +14 -0
  736. data/db/migrate/20260913090000_create_delegations.rb +56 -0
  737. data/db/migrate/20260914000000_add_keys_to_clients.rb +8 -0
  738. data/db/migrate/20260914010000_add_require_signed_request_object_to_clients.rb +5 -0
  739. data/db/migrate/20260914020000_add_provisioning_to_actors.rb +10 -0
  740. data/db/migrate/20260914030000_add_saml_to_clients.rb +17 -0
  741. data/db/migrate/20260921000000_create_client_logos.rb +30 -0
  742. data/db/migrate/20260921010000_add_setup_token_to_tenants.rb +5 -0
  743. data/db/migrate/20260926000000_add_code_factors_to_actors.rb +8 -0
  744. data/db/migrate/20260926010000_add_idle_accounts.rb +14 -0
  745. data/db/migrate/20260926020000_create_event_streams.rb +28 -0
  746. data/db/migrate/20260927000000_add_apps_require_second_factor_to_sign_in_policies.rb +5 -0
  747. data/db/migrate/20260927010000_add_session_policies.rb +14 -0
  748. data/db/migrate/20260927020000_create_organizations.rb +47 -0
  749. data/db/migrate/20260927030000_add_organizations_to_policies_and_providers.rb +12 -0
  750. data/db/migrate/20260927040000_add_organizations_to_events_and_streams.rb +8 -0
  751. data/db/migrate/20260927050000_create_domain_claims.rb +27 -0
  752. data/db/migrate/20260927060000_add_event_retention_to_tenants.rb +5 -0
  753. data/db/migrate/20260927070000_add_risk_to_sign_in_policies.rb +11 -0
  754. data/db/migrate/20260927110000_create_signal_streams.rb +31 -0
  755. data/db/migrate/20260927120000_add_custom_host_to_tenants.rb +6 -0
  756. data/db/migrate/20260927140500_add_first_factor_to_sessions.rb +6 -0
  757. data/db/migrate/20260927160000_add_invited_at_to_memberships.rb +15 -0
  758. data/db/migrate/20260927170000_grant_identities_to_actors_in_every_tenant.rb +17 -0
  759. data/db/migrate/20260927180000_move_directory_ids_to_memberships.rb +46 -0
  760. data/db/migrate/20261003120000_add_metadata_expires_at_to_clients.rb +5 -0
  761. data/db/migrate/20261003130000_create_mail_templates.rb +23 -0
  762. data/db/migrate/20261003140000_add_authorization_details.rb +7 -0
  763. data/db/migrate/20261004120000_add_remembering_to_consents.rb +7 -0
  764. data/db/migrate/20261004130000_add_receives_signals_to_providers.rb +5 -0
  765. data/db/migrate/20261010120000_add_root_to_tokens.rb +27 -0
  766. data/db/migrate/20261010130000_add_recovery_requested_at_to_actors.rb +6 -0
  767. data/db/migrate/20261010140000_create_groups.rb +38 -0
  768. data/db/migrate/20261010150000_add_token_lifetimes_to_clients.rb +6 -0
  769. data/db/migrate/20261010160000_create_tenant_logos.rb +27 -0
  770. data/db/migrate/20261011120000_index_pending_approvals.rb +5 -0
  771. data/db/migrate/20261011130000_add_key_rotation_days_to_tenants.rb +5 -0
  772. data/db/migrate/20261011140000_add_keys_derived_at_to_tenants.rb +5 -0
  773. data/db/migrate/20261011150000_add_proof_of_work_to_sign_in_policies.rb +5 -0
  774. data/db/migrate/20261011160000_add_password_required_to_sign_in_policies.rb +5 -0
  775. data/db/migrate/20261011170000_create_saml_participations.rb +30 -0
  776. data/db/migrate/20261011180000_rename_adapters_to_senders.rb +45 -0
  777. data/lib/generators/masks/server/install/install_generator.rb +116 -0
  778. data/lib/generators/masks/server/install/templates/masks_server.rb.tt +7 -0
  779. data/lib/masks/server/configuration.rb +134 -0
  780. data/lib/masks/server/engine.rb +60 -0
  781. data/lib/masks/server/forwarded_app.rb +19 -0
  782. data/lib/masks/server/forwarding.rb +29 -0
  783. data/lib/masks/server/host.rb +21 -0
  784. data/lib/masks/server/isolation.rb +34 -0
  785. data/lib/masks/server/journey_serializer.rb +17 -0
  786. data/lib/masks/server/schema_reference.rb +164 -0
  787. data/lib/masks/server/tenancy/job.rb +78 -0
  788. data/lib/masks/server/tenancy/middleware.rb +104 -0
  789. data/lib/masks/server/tenant_isolation.rb +40 -0
  790. data/lib/masks/server/tenant_key_provider.rb +76 -0
  791. data/lib/masks/server/version.rb +5 -0
  792. data/lib/masks/server.rb +116 -0
  793. data/lib/masks-server.rb +1 -0
  794. data/lib/puma/plugin/masks_ldap.rb +25 -0
  795. data/lib/rack/oauth2/server/token/extension/device_code.rb +40 -0
  796. data/lib/rack/oauth2/server/token/extension/token_exchange.rb +48 -0
  797. data/lib/tasks/masks.rake +22 -0
  798. data/public/masks-assets/assets/account-D46qDQCo.js +2 -0
  799. data/public/masks-assets/assets/account-D46qDQCo.js.map +1 -0
  800. data/public/masks-assets/assets/app-olx-5PkA.css +2 -0
  801. data/public/masks-assets/assets/console-CiuQ3qj0.css +1 -0
  802. data/public/masks-assets/assets/handshake-BYhhQ_X3.js +2 -0
  803. data/public/masks-assets/assets/handshake-BYhhQ_X3.js.map +1 -0
  804. data/public/masks-assets/assets/initial-D99AzFOd.js +3 -0
  805. data/public/masks-assets/assets/initial-D99AzFOd.js.map +1 -0
  806. data/public/masks-assets/assets/login-CNs1UpxJ.js +4 -0
  807. data/public/masks-assets/assets/login-CNs1UpxJ.js.map +1 -0
  808. data/public/masks-assets/assets/manage-Z3GmPDNQ.js +560 -0
  809. data/public/masks-assets/assets/manage-Z3GmPDNQ.js.map +1 -0
  810. data/public/masks-assets/assets/passkey-DIj_5LCY.js +2 -0
  811. data/public/masks-assets/assets/passkey-DIj_5LCY.js.map +1 -0
  812. data/public/masks-public/favicon.svg +27 -0
  813. data/public/masks-public/icon.png +0 -0
  814. data/public/masks-public/icon.svg +26 -0
  815. data/version.txt +1 -0
  816. metadata +1095 -0
@@ -0,0 +1,4 @@
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./passkey-DIj_5LCY.js";import{A as s,B as c,C as l,D as u,E as d,G as f,H as p,I as m,J as h,K as g,L as _,M as v,O as y,R as b,T as x,U as S,V as C,W as w,X as T,Y as E,Z as D,at as O,b as k,d as A,dt as j,et as M,f as N,ft as P,i as F,it as I,j as L,k as R,l as z,lt as B,m as V,n as ee,o as H,q as U,r as W,s as G,t as K,tt as q,w as J,x as Y,y as X}from"./initial-D99AzFOd.js";var te=/%\{(\w+)\}/g;function Z(e,t){return t?e.replace(te,(e,n)=>Object.hasOwn(t,n)?String(t[n]):e):e}function ne(e){return(t,n)=>{let r=e()?.[t];return typeof r==`string`?Z(r,n):``}}var re=document.querySelector(`meta[name="masks-root"]`)?.content??``,ie=new Set([`javascript:`,`data:`,`vbscript:`,`file:`,`blob:`]),ae=e=>{if(typeof e!=`string`||e===``)return!1;try{return!ie.has(new URL(e,window.location.href).protocol)}catch{return!1}},oe=()=>document.querySelector(`meta[name="csrf-token"]`)?.content??``;async function se(e,t,n){let r=await fetch(e,{method:t,credentials:`same-origin`,headers:{"Content-Type":`application/json`,Accept:`application/json`,"X-CSRF-Token":oe()},body:n?JSON.stringify(n):void 0});if(!r.ok&&r.status!==422&&r.status!==429)throw Error(`login failed: ${r.status}`);return r.json()}function ce(e,t={}){let n=t.url??`${re}/login`,r=D(E(e)),i=D(!1),a=D(!1),o=null;async function s(e,t,{quiet:s=!1}={}){if(s&&c(i))return c(r);s||(T(i,!0),T(a,!1),o=[e,t]);try{let a=await se(n,e,c(r).rid?{rid:c(r).rid,...t}:t);return s&&c(i)?c(r):(T(r,a,!0),ae(c(r).redirectTo)&&window.location.assign(c(r).redirectTo),c(r))}catch{return s||T(a,!0),c(r)}finally{s||T(i,!1)}}return{t:ne(()=>c(r).copy),get auth(){return c(r)},get loading(){return c(i)},get failed(){return c(a)},get prompt(){return c(r).prompt},get backupCodes(){return c(r).backupCodes},get rememberable(){return c(r).rememberable},get consent(){return c(r).consent},get client(){return c(r).client},get actor(){return c(r).actor},warns(e){return(c(r).warnings??[]).includes(e)},submit(e,t={}){return s(`POST`,{event:e,...t})},startOver(){return s(`DELETE`)},poll(e,t={}){return s(`POST`,{event:e,...t},{quiet:!0})},retry(){return o?s(...o):Promise.resolve(c(r))}}}var le=v(`<span class="spinner action-mark"></span>`),ue=v(`<button><!> </button>`);function Q(e,t){O(t,!0);let n=F(t,`busy`,3,!1),r=F(t,`ready`,3,!0),i=F(t,`working`,3,null),a=F(t,`quiet`,3,!1),o=F(t,`plain`,3,!1),l=F(t,`fit`,3,!1),d=F(t,`grow`,3,!1),m=F(t,`onclick`,3,null),g=F(t,`type`,3,`button`),v=M(()=>n()||t.login.loading),y=M(()=>n()&&i()?i():t.label),b=M(()=>[`action`,a()&&`action-quiet`,o()&&`action-plain`,l()&&`action-fit`,d()&&`action-grow`,n()&&`action-busy`].filter(Boolean).join(` `));var x=ue(),S=f(x),C=e=>{var t=le();s(e,t)};u(S,e=>{n()&&e(C)});var w=h(S);B(x),p(()=>{N(x,`type`,g()),X(x,1,k(c(b))),x.disabled=!r()||c(v),N(x,`aria-busy`,n()||void 0),R(w,` ${c(y)??``}`)}),_(`click`,x,function(...e){m()?.apply(this,e)}),s(e,x),I()}m([`click`]);var de=v(`<span class="record-cap"> </span>`),fe=v(`&nbsp;<em> </em>`,1),pe=v(`<p class="prompt-lede"> </p>`),me=v(`<div class="prompt-head"><span aria-hidden="true"></span> <!> <h1 class="prompt-title"> <!></h1> <!></div>`);function $(e,t){O(t,!0);let n=F(t,`name`,3,null),r=F(t,`lede`,3,null),i=F(t,`cap`,3,null),a=F(t,`tone`,3,null),o=F(t,`busy`,3,!1),l=M(()=>a()===null&&(o()||t.login.loading));var d=me(),m=f(d);let _;var v=h(m,2),y=e=>{var t=de(),n=U(t,!0);p(()=>R(n,i())),s(e,t)};u(v,e=>{i()&&e(y)});var b=h(v,2),x=f(b,!0),S=h(x),C=e=>{var t=fe(),r=h(g(t)),i=U(r,!0);p(()=>R(i,n())),s(e,t)};u(S,e=>{n()&&e(C)}),B(b);var w=h(b,2),T=e=>{var t=pe(),n=U(t,!0);p(()=>R(n,r())),s(e,t)};u(w,e=>{r()&&e(T)}),B(d),p(()=>{_=X(m,1,`pulse`,null,_,{"pulse-on":c(l),"pulse-done":a()===`done`,"pulse-bad":a()===`bad`}),R(x,t.title)}),s(e,d),I()}var he=v(`<div role="alert"> </div>`),ge=v(`<div class="note note-warn recover" role="alert"><span> </span> <button type="button" class="textlink"> </button></div>`),_e=v(`<!> <!>`,1);function ve(e,t){O(t,!0);let n=M(()=>(t.login.auth.messages??[]).filter(e=>!e.field));var r=_e(),i=g(r);J(i,17,()=>c(n),e=>e.key,(e,t)=>{var n=he(),r=U(n,!0);p(()=>{X(n,1,k(c(t).tone)),R(r,c(t).text)}),s(e,n)});var a=h(i,2),o=e=>{var n=ge(),r=f(n),i=U(r,!0),a=h(r,2),o=U(a,!0);B(n),p((e,n)=>{R(i,e),a.disabled=t.login.loading,R(o,n)},[()=>t.login.t(`unreachable`),()=>t.login.loading?t.login.t(`checking`):t.login.t(`try_again`)]),_(`click`,a,()=>t.login.retry()),s(e,n)};u(a,e=>{t.login.failed&&e(o)}),s(e,r),I()}m([`click`]);var ye=v(`<span class="field-hint field-hint-bad" role="alert"> </span>`),be=v(`<span class="field-hint"> </span>`);function xe(e,t){O(t,!0);let n=F(t,`hint`,3,null),r=M(()=>(t.login.auth.messages??[]).find(e=>e.field===t.field));var i=L(),a=g(i),o=e=>{var t=ye(),n=U(t,!0);p(()=>R(n,c(r).text)),s(e,t)},l=e=>{var t=be(),r=U(t,!0);p(()=>R(r,n())),s(e,t)};u(a,e=>{c(r)?e(o):n()&&e(l,1)}),s(e,i),I()}var Se=v(`<label class="field"><span class="field-label"> </span> <input type="email" class="control" readonly=""/></label>`),Ce=v(`<!> <form class="flow"><label class="field"><span class="field-label"> </span> <input type="text" class="control" autocomplete="username" readonly=""/></label> <!> <label class="field"><span class="field-label"> </span> <input type="password" name="password" class="control" autocomplete="new-password"/> <!></label> <!></form>`,1);function we(e,t){O(t,!0);let n=D(``),r=M(()=>t.login.auth.invitation??{}),i=M(()=>c(r).minimum??8),a=M(()=>c(n).length>=c(i));function o(e){e.preventDefault(),c(a)&&!t.login.loading&&t.login.submit(`accept-invitation`,{password:c(n)})}var l=Ce(),d=g(l);{let e=M(()=>t.login.t(`title`)),n=M(()=>c(r).invitedBy?t.login.t(`invited_by`,{nickname:c(r).invitedBy}):null);$(d,{get login(){return t.login},get title(){return c(e)},get lede(){return c(n)}})}var m=h(d,2),_=f(m),v=f(_),y=U(v,!0),x=h(v,2);A(x),B(_);var S=h(_,2),C=e=>{var n=Se(),i=f(n),a=U(i,!0),o=h(i,2);A(o),B(n),p(e=>{R(a,e),V(o,c(r).email)},[()=>t.login.t(`email`)]),s(e,n)};u(S,e=>{c(r).email&&e(C)});var w=h(S,2),E=f(w),k=U(E,!0),j=h(E,2);A(j),q(j,!0);var P=h(j,2);{let e=M(()=>t.login.t(`hint`,{minimum:c(i)}));xe(P,{get login(){return t.login},field:`password`,get hint(){return c(e)}})}B(w);var F=h(w,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`working`));Q(F,{get login(){return t.login},type:`submit`,get ready(){return c(a)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(m),p((e,n)=>{N(m,`aria-busy`,t.login.loading||void 0),R(y,e),V(x,c(r).nickname??``),R(k,n)},[()=>t.login.t(`account`),()=>t.login.t(`password`)]),b(`submit`,m,o),z(j,()=>c(n),e=>T(n,e)),s(e,l),I()}var Te=v(`<div class="whom"><span class="whom-name"> </span> <button type="button" class="textlink"> </button></div>`);function Ee(e,t){O(t,!0);var n=Te(),r=f(n),i=U(r,!0),a=h(r,2),o=U(a,!0);B(n),p(e=>{R(i,t.login.auth.identifier),a.disabled=t.login.loading,R(o,e)},[()=>t.login.t(`not_you`)]),_(`click`,a,()=>t.login.startOver()),s(e,n),I()}m([`click`]);var De=v(`<img alt="" class="auth-mark auth-mark-logo"/>`),Oe=v(`<span class="auth-mark" aria-hidden="true"> </span>`);function ke(e,t){O(t,!0);var n=L(),r=g(n),i=e=>{var n=De();p(()=>N(n,`src`,t.tenant.logo)),s(e,n)},a=e=>{var n=Oe(),r=U(n,!0);p(e=>R(r,e),[()=>K(t.tenant?.name??``)]),s(e,n)};u(r,e=>{t.tenant?.logo?e(i):e(a,-1)}),s(e,n),I()}var Ae=v(`<span> </span>`),je=v(`<nav class="tabset"></nav>`);function Me(e,t){O(t,!0);let n=F(t,`steps`,19,()=>[]);var r=je();J(r,22,n,e=>e,(e,n,r)=>{let i=M(()=>c(r)+1);var a=Ae();let o;var l=U(a,!0);p(e=>{o=X(a,1,`tabset-tab`,null,o,{"tabset-done":c(i)<t.at,"tabset-now":c(i)===t.at}),N(a,`aria-current`,c(i)===t.at?`step`:void 0),R(l,e)},[()=>t.login.t(`tab_${n}`)]),s(e,a)}),B(r),p(e=>N(r,`aria-label`,e),[()=>t.login.t(`tabs`)]),s(e,r),I()}var Ne=v(`<img src="/masks-public/icon.svg" alt="" class="auth-mark auth-mark-rose"/>`),Pe=v(`<div class="auth-pair"><span aria-hidden="true"> </span> <span class="auth-wire"></span> <!></div> <!> <!>`,1);function Fe(e,t){O(t,!0);let n=F(t,`mark`,3,``),r=M(()=>t.login.auth.tenant?.name??``),i=M(()=>t.login.auth.signingUp??{steps:[]});var a=Pe(),o=g(a),l=f(o);let d;var m=U(l,!0),_=h(l,4),v=e=>{var t=Ne();s(e,t)},y=e=>{ke(e,{get tenant(){return t.login.auth.tenant}})};u(_,e=>{c(i).firstRun?e(v):e(y,-1)}),B(o);var b=h(o,2),x=e=>{{let n=M(()=>t.login.t(`setup_title`)),i=M(()=>t.login.t(`setup_cap`));$(e,{get login(){return t.login},get title(){return c(n)},get name(){return c(r)},get cap(){return c(i)}})}},S=e=>{{let n=M(()=>t.login.t(`signup_title`));$(e,{get login(){return t.login},get title(){return c(n)},get name(){return c(r)}})}};u(b,e=>{c(i).firstRun?e(x):e(S,-1)});var C=h(b,2);{let e=M(()=>t.at??c(i).steps.length);Me(C,{get login(){return t.login},get steps(){return c(i).steps},get at(){return c(e)}})}p((e,t)=>{d=X(l,1,`auth-mark auth-mark-client`,null,d,{"auth-mark-pending":e}),R(m,t)},[()=>!n().trim(),()=>K(n())]),s(e,a),I()}var Ie=v(`<p class="aside"> </p>`),Le=v(`<p class="aside aside-bad" role="alert"> </p>`),Re=v(`<div class="flow-tight"><!> <!> <!></div>`);function ze(n,i){O(i,!0);let a=F(i,`enrolling`,3,!1),l=F(i,`label`,3,null),d=F(i,`params`,19,()=>({})),m=D(!1),_=D(null),v=M(()=>(a()||!!i.login.auth.passkey?.offered)&&t());async function y(){T(m,!0),T(_,null);let t=null;try{let n=await i.login.submit(a()?`enrol:passkey-challenge`:`passkey:challenge`,{}),r=a()?n.enrolment?.passkeys?.options:n.passkey?.options;if(!r){T(_,i.login.t(`passkey_unoffered`),!0);return}t=performance.now();let s=a()?await e(r):await o(r);await i.login.submit(a()?`enrol:passkey`:`passkey:verify`,{...d(),passkey:s})}catch(e){(!r(e)||t!==null&&performance.now()-t<500)&&T(_,i.login.t(`passkey_unusable`),!0)}finally{T(m,!1)}}var b=L(),x=g(b),S=e=>{var t=Re(),n=f(t);{let e=M(()=>l()??i.login.t(`use_passkey`)),t=M(()=>i.login.t(`waiting_for_passkey`));Q(n,{get login(){return i.login},quiet:!0,get busy(){return c(m)},get label(){return c(e)},get working(){return c(t)},onclick:y})}var r=h(n,2),a=e=>{var t=Ie(),n=U(t,!0);p(e=>R(n,e),[()=>i.login.t(`passkey_hint`)]),s(e,t)};u(r,e=>{c(m)&&e(a)});var o=h(r,2),d=e=>{var t=Le(),n=U(t,!0);p(()=>R(n,c(_))),s(e,t)};u(o,e=>{c(_)&&e(d)}),B(t),s(e,t)};u(x,e=>{c(v)&&e(S)}),s(n,b),I()}var Be=v(`<form class="flow-tight"><input type="text" name="code" class="control control-code" inputmode="numeric" pattern="[0-9 ]*" autocomplete="one-time-code" maxlength="7" spellcheck="false"/> <!></form>`),Ve=v(`<!> <p class="aside"> </p>`,1),He=v(`<!> <!>`,1),Ue=v(`<span class="ledger-value"> </span>`),We=v(`<div class="enrol"><a class="enrol-qr"></a> <div class="enrol-key"><span class="field-hint"> </span> <span class="aside-mono enrol-secret"> </span></div></div> <!>`,1),Ge=v(`<div><span class="ledger-label"> </span> <!></div>`),Ke=v(`<div><span class="ledger-label"> </span> <span class="field-hint"> </span> <!></div>`),qe=v(`<span class="field-hint"> </span> <!>`,1),Je=v(`<li class="aside-mono"> </li>`),Ye=v(`<ol class="codes"></ol> <span class="field-hint"> </span> <div class="codes-actions"><button type="button" class="textlink"> </button> <a class="textlink"> </a></div>`,1),Xe=v(`<span class="field-hint"> </span>`),Ze=v(`<label class="check"><input type="checkbox" name="kept" required=""/> <span> </span></label>`),Qe=v(`<div><!> <div class="slab"><!> <!> <!> <!></div> <form class="flow"><!> <!></form></div>`);function $e(e,n){O(n,!0);let r=(e,t=j)=>{var r=Be(),i=f(r);A(i);var a=h(i,2);{let e=M(()=>H(t())),r=M(()=>n.login.t(`turn_on`));Q(a,{get login(){return n.login},type:`submit`,quiet:!0,get ready(){return c(e)},get label(){return c(r)}})}B(r),p((e,t)=>{N(r,`aria-busy`,n.login.loading||void 0),N(i,`aria-label`,e),N(i,`placeholder`,t)},[()=>n.login.t(`code`),()=>n.login.t(`code`)]),b(`submit`,r,e=>W(e,t())),z(i,()=>w[t()],e=>w[t()]=e),s(e,r)},i=M(()=>n.login.auth.enrolment??{}),a=M(()=>c(i).otp??{}),o=M(()=>c(i).passkeys??{count:0}),d=M(()=>c(i).backupCodes??{}),m=M(()=>!!n.login.auth.signingUp),v=M(()=>c(i).offers??{otp:!0,passkey:!0,backupCodes:!0}),y=M(()=>!c(i).required),x=M(()=>c(d).issued??[]),S=M(()=>Object.entries(c(i).codes??{})),C=M(()=>c(v).passkey&&t()),w=E({"enrol:otp":``,"enrol:code":``}),k=D(!1),F=D(!1),L=M(()=>c(y)&&(c(x).length===0||c(k))),V=M(()=>!!(c(a).enabled||c(o).count>0||c(S).some(([,e])=>e.enabled))),ee=M(()=>c(i).required?n.login.t(`lede`):n.login.t(`lede_optional`)),H=e=>w[e].replace(/\D/g,``).length===6;function W(e,t){if(e.preventDefault(),!H(t)||n.login.loading)return;let r=w[t];w[t]=``,n.login.submit(t,{code:r})}let K=typeof location>`u`?``:location.origin,q=typeof location>`u`?`masks`:location.hostname,Y=M(()=>{let e=[n.login.t(`backup_codes_file`,{account:n.login.actor?.identifier??``,origin:K}),n.login.t(`backup_codes_hint`),``,...c(x),``];return`data:text/plain;charset=utf-8,${encodeURIComponent(e.join(`
2
+ `))}`});async function te(){try{await navigator.clipboard.writeText(c(x).join(`
3
+ `)),T(F,!0)}catch{T(F,!1)}}function Z(e){e.preventDefault(),c(L)&&!n.login.loading&&n.login.submit(`enrol:done`,{kept:c(k)})}var ne=Qe();let re;var ie=f(ne),ae=e=>{var t=Ve(),r=g(t);{let e=M(()=>n.login.actor?.identifier??``);Fe(r,{get login(){return n.login},at:2,get mark(){return c(e)}})}var i=h(r,2),a=U(i,!0);p(()=>R(a,c(ee))),s(e,t)},oe=e=>{var t=He(),r=g(t);{let e=M(()=>n.login.t(`title`));$(r,{get login(){return n.login},get title(){return c(e)},get lede(){return c(ee)}})}Ee(h(r,2),{get login(){return n.login}}),s(e,t)};u(ie,e=>{c(m)?e(ae):e(oe,-1)});var se=h(ie,2),ce=f(se),le=e=>{var t=Ge();let i;var o=f(t),d=U(o,!0),m=h(o,2),_=e=>{var t=Ue(),r=U(t,!0);p(e=>R(r,e),[()=>n.login.t(`otp_on`)]),s(e,t)},v=e=>{var t=We(),i=g(t),o=f(i);l(o,()=>c(a).qr,!0),B(o);var u=h(o,2),d=f(u),m=U(d,!0),_=h(d,2),v=U(_,!0);B(u),B(i);var y=h(i,2);r(y,()=>`enrol:otp`),p((e,t)=>{N(o,`href`,c(a).uri),N(o,`aria-label`,e),R(m,t),R(v,c(a).secret)},[()=>n.login.t(`open`),()=>n.login.t(`scan_hint`)]),s(e,t)};u(m,e=>{c(a).enabled?e(_):e(v,-1)}),B(t),p(e=>{i=X(t,1,`ledger-row ledger-step`,null,i,{"ledger-step-done":c(a).enabled}),R(d,e)},[()=>n.login.t(`otp`)]),s(e,t)};u(ce,e=>{c(v).otp&&e(le)});var ue=h(ce,2),de=e=>{var t=Ke();let r;var i=f(t),a=U(i,!0),l=h(i,2),u=U(l,!0),d=h(l,2);{let e=M(()=>c(o).count>0?n.login.t(`add_another_passkey`):n.login.t(`add_passkey`));ze(d,{get login(){return n.login},enrolling:!0,get label(){return c(e)}})}B(t),p((e,n)=>{r=X(t,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":c(o).verified}),R(a,e),R(u,n)},[()=>n.login.t(`passkeys`),()=>c(o).count>0?n.login.t(`passkeys_some`,{count:c(o).count}):n.login.t(`passkeys_none`)]),s(e,t)};u(ue,e=>{c(C)&&e(de)});var fe=h(ue,2);J(fe,17,()=>c(S),([e,t])=>e,(e,t)=>{var i=M(()=>P(c(t),2));let a=()=>c(i)[0],o=()=>c(i)[1];var l=Ge();let d;var m=f(l),_=U(m,!0),v=h(m,2),y=e=>{var t=Ue(),r=U(t,!0);p(e=>R(r,e),[()=>n.login.t(`otp_on`)]),s(e,t)},b=e=>{var t=qe(),i=g(t),a=U(i,!0),c=h(i,2);r(c,()=>`enrol:code`),p(e=>R(a,e),[()=>n.login.t(`sent_to`,{to:o().to})]),s(e,t)},x=e=>{var t=qe(),r=g(t),i=U(r,!0),l=h(r,2);{let e=M(()=>n.login.t(`send_code`));Q(l,{get login(){return n.login},quiet:!0,get label(){return c(e)},onclick:()=>n.login.submit(`enrol:code-send`,{factor:a()})})}p(e=>R(i,e),[()=>n.login.t(`codes_${a()}_hint`,{to:o().to})]),s(e,t)};u(v,e=>{o().enabled?e(y):o().sent?e(b,1):e(x,-1)}),B(l),p(e=>{d=X(l,1,`ledger-row ledger-step`,null,d,{"ledger-step-done":o().enabled}),R(_,e)},[()=>n.login.t(`codes_${a()}`)]),s(e,l)});var pe=h(fe,2),me=e=>{var t=Ge();let r;var i=f(t),a=U(i,!0),o=h(i,2),l=e=>{var t=Ye(),r=g(t);J(r,20,()=>c(x),e=>e,(e,t)=>{var n=Je(),r=U(n,!0);p(()=>R(r,t)),s(e,n)}),B(r);var i=h(r,2),a=U(i,!0),o=h(i,2),l=f(o),u=U(l,!0),d=h(l,2),m=U(d,!0);B(o),p((e,t,n)=>{R(a,e),R(u,t),N(d,`href`,c(Y)),N(d,`download`,`backup-codes-${q??``}.txt`),R(m,n)},[()=>n.login.t(`backup_codes_hint`),()=>c(F)?n.login.t(`copied`):n.login.t(`copy`),()=>n.login.t(`download`)]),_(`click`,l,te),s(e,t)},m=e=>{var t=Xe(),r=U(t,!0);p(e=>R(r,e),[()=>n.login.t(`backup_codes_left`,{count:c(d).remaining})]),s(e,t)},v=e=>{var t=Xe(),r=U(t,!0);p(e=>R(r,e),[()=>n.login.t(`backup_codes_waiting`)]),s(e,t)};u(o,e=>{c(x).length>0?e(l):c(d).remaining>0?e(m,1):e(v,-1)}),B(t),p(e=>{r=X(t,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":c(x).length>0||c(d).remaining>0}),R(a,e)},[()=>n.login.t(`backup_codes`)]),s(e,t)};u(pe,e=>{c(v).backupCodes&&e(me)}),B(se);var he=h(se,2),ge=f(he),_e=e=>{var t=Ze(),r=f(t);A(r);var i=h(r,2),a=U(i,!0);B(t),p(e=>R(a,e),[()=>n.login.t(`kept`)]),G(r,()=>c(k),e=>T(k,e)),s(e,t)};u(ge,e=>{c(x).length>0&&e(_e)});var ve=h(ge,2);{let e=M(()=>c(V)||c(i).required?n.login.t(`done`):n.login.t(`skip`)),t=M(()=>n.login.t(`working`));Q(ve,{get login(){return n.login},type:`submit`,get ready(){return c(L)},get busy(){return n.login.loading},get label(){return c(e)},get working(){return c(t)}})}B(he),B(ne),p(()=>re=X(ne,1,`flow`,null,re,{setup:c(m),"setup-ready":c(m)&&c(L)})),b(`submit`,he,Z),s(e,ne),I()}m([`click`]);var et=v(`<!> <!> <form class="flow"><label class="field"><span class="field-label"> </span> <input type="text" name="backup_code" class="control control-mono" autocomplete="one-time-code" spellcheck="false" autocapitalize="off"/> <span class="field-hint"> </span></label> <!></form> <!>`,1);function tt(e,t){O(t,!0);let n=D(``),r=M(()=>c(n).trim().length>=8);function i(e){if(e.preventDefault(),!c(r)||t.login.loading)return;let i=c(n);T(n,``),t.login.submit(`backup`,{backup_code:i})}var a=et(),o=g(a);{let e=M(()=>t.login.t(`title`));$(o,{get login(){return t.login},get title(){return c(e)}})}var l=h(o,2);Ee(l,{get login(){return t.login}});var u=h(l,2),d=f(u),m=f(d),_=U(m,!0),v=h(m,2);A(v),q(v,!0);var y=h(v,2),x=U(y,!0);B(d);var S=h(d,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`checking`));Q(S,{get login(){return t.login},type:`submit`,get ready(){return c(r)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(u);var C=h(u,2);{let e=M(()=>t.login.t(`use_authenticator`));Q(C,{get login(){return t.login},plain:!0,get label(){return c(e)},onclick:()=>t.login.submit(`use-authenticator`,{})})}p((e,n)=>{N(u,`aria-busy`,t.login.loading||void 0),R(_,e),R(x,n)},[()=>t.login.t(`code`),()=>t.login.t(`hint`)]),b(`submit`,u,i),z(v,()=>c(n),e=>T(n,e)),s(e,a),I()}var nt=document.querySelector(`meta[name="csrf-token"]`)?.content??``,rt=v(`<span class="person-note"> </span>`),it=v(`<span class="person-sub"> <!></span>`),at=v(`<span class="person-role"> </span>`),ot=v(`<form class="signout" method="post"><input type="hidden" name="authenticity_token"/> <button type="submit" class="textlink"> </button></form>`),st=v(`<div class="person"><img width="44" height="44" alt="" class="avatar person-avatar"/> <div class="person-who"><span class="person-name"> </span> <!> <!></div> <!></div>`);function ct(e,t){O(t,!0);let n=F(t,`signOut`,3,null);var r=st(),i=f(r),a=h(i,2),o=f(a),c=U(o,!0),l=h(o,2),d=e=>{var n=it(),r=f(n),i=h(r),a=e=>{var n=rt(),r=U(n,!0);p(()=>R(r,t.person.note)),s(e,n)};u(i,e=>{t.person.note&&e(a)}),B(n),p(e=>R(r,`${e??``} `),[()=>t.person.details.join(` · `)]),s(e,n)};u(l,e=>{(t.person.details.length||t.person.note)&&e(d)});var m=h(l,2),g=e=>{var n=at(),r=U(n,!0);p(()=>R(r,t.person.role)),s(e,n)};u(m,e=>{t.person.role&&e(g)}),B(a);var _=h(a,2),v=e=>{var t=ot(),r=f(t);A(r);var i=h(r,2),a=U(i,!0);B(t),p(()=>{N(t,`action`,`${re}/logout`),V(r,nt),R(a,n())}),s(e,t)};u(_,e=>{n()&&e(v)}),B(r),p(()=>{N(i,`src`,t.person.avatar),R(c,t.person.name)}),s(e,r),I()}var lt=v(`<li><button type="button" class="org-pick"><span class="org-pick-mark" aria-hidden="true"> </span> <span class="org-pick-name"> </span> <span class="org-pick-role"> </span></button></li>`),ut=v(`<!> <!> <ul class="org-picks"></ul>`,1);function dt(e,t){O(t,!0);let n=D(null),r=M(()=>t.login.auth.organizations??[]),i=M(()=>t.login.client?.name??``);async function a(e){T(n,e.key,!0);try{await t.login.submit(`organization`,{organization:e.key})}finally{T(n,null)}}var o=ut(),l=g(o);{let e=M(()=>c(i)?t.login.t(`title_to`,{client:c(i)}):t.login.t(`title`)),n=M(()=>t.login.t(`lede`));$(l,{get login(){return t.login},get title(){return c(e)},get lede(){return c(n)}})}var d=h(l,2),m=e=>{{let n=M(()=>t.login.t(`sign_out`));ct(e,{get person(){return t.login.auth.person},get signOut(){return c(n)}})}};u(d,e=>{t.login.auth.person&&e(m)});var v=h(d,2);J(v,21,()=>c(r),e=>e.key,(e,r)=>{var i=lt(),o=f(i),l=f(o),u=U(l,!0),d=h(l,2),m=U(d,!0),g=h(d,2),v=U(g,!0);B(o),B(i),p((e,i,a)=>{o.disabled=t.login.loading,N(o,`aria-busy`,c(n)===c(r).key||void 0),N(o,`aria-label`,e),R(u,i),R(m,c(r).name),R(v,a)},[()=>t.login.t(`as`,{organization:c(r).name,role:c(r).role}),()=>ee(c(r).name),()=>c(n)===c(r).key?t.login.t(`working`):c(r).role]),_(`click`,o,()=>a(c(r))),s(e,i)}),B(v),p(e=>N(v,`aria-label`,e),[()=>t.login.t(`title`)]),s(e,o),I()}m([`click`]);var ft=v(`<img alt="" class="auth-mark auth-mark-client auth-mark-logo" referrerpolicy="no-referrer"/>`),pt=v(`<span class="auth-mark auth-mark-client" aria-hidden="true"> </span>`);function mt(e,t){O(t,!0);var n=L(),r=g(n),i=e=>{var n=ft();p(()=>N(n,`src`,t.client.logo)),s(e,n)},a=e=>{var n=pt(),r=U(n,!0);p(e=>R(r,e),[()=>K(t.client?.name)]),s(e,n)};u(r,e=>{t.client?.logo?e(i):e(a,-1)}),s(e,n),I()}var ht=/(:write|:command|:exec|:delete|:admin)$|^offline_access$|^masks:delegate:./;function gt(e){return ht.test(String(e))}function _t(e){let t=[],n=[];for(let r of e??[])(gt(r[0])?t:n).push(r);return{hot:t,rest:n}}var vt=v(`<p class="empty"> </p>`),yt=v(`<li class="grant-scope grant-scope-hot"><span> </span> <span class="chip-key"> </span></li>`),bt=v(`<li class="grant-scope-split"></li>`),xt=v(`<li class="grant-scope"><span> </span> <span class="chip-key"> </span></li>`),St=v(`<span class="ledger-value aside-mono"> </span>`),Ct=v(`<div class="ledger-row"><span class="ledger-label"> </span> <!></div>`),wt=v(`<dt> </dt> <dd class="aside-mono"> </dd>`,1),Tt=v(`<dl class="grant-fields"></dl>`),Et=v(`<li class="grant-scope grant-scope-hot grant-detail"><span> </span> <span class="chip-key"> </span> <!></li>`),Dt=v(`<div class="ledger-row"><span class="ledger-label"> </span> <ul class="grant-scopes"></ul></div>`),Ot=v(`<div class="ledger-row"><span class="ledger-label"> </span> <span class="ledger-value aside-mono"> </span></div>`),kt=v(`<a class="textlink" rel="noopener noreferrer" target="_blank"> </a>`),At=v(`<p class="aside client-links"></p>`),jt=v(`<div class="auth-pair"><!> <span class="auth-wire"></span> <!></div> <!> <!> <div class="slab"><div class="ledger-row"><span class="ledger-label"> </span> <!> <ul class="grant-scopes"><!> <!> <!></ul></div> <!> <!> <!></div> <!> <div class="action-row"><!> <!></div>`,1);function Mt(e,t){O(t,!0);let n=M(()=>_t(t.login.consent?.scopes??[])),r=M(()=>t.login.consent?.audience??[]),i=M(()=>t.login.consent?.details??[]),a=M(()=>t.login.client?.name??``),o=M(()=>[[`site`,t.login.t(`site`,{client:c(a)})],[`terms`,t.login.t(`terms`)],[`privacy`,t.login.t(`privacy`)]].filter(([e])=>t.login.client?.[e]));var l=jt(),d=g(l),m=f(d);mt(m,{get client(){return t.login.client}}),ke(h(m,4),{get tenant(){return t.login.auth.tenant}}),B(d);var _=h(d,2);{let e=M(()=>t.login.t(`title`,{client:c(a)}));$(_,{get login(){return t.login},get title(){return c(e)}})}var v=h(_,2),y=e=>{{let n=M(()=>t.login.t(`sign_out`));ct(e,{get person(){return t.login.auth.person},get signOut(){return c(n)}})}};u(v,e=>{t.login.auth.person&&e(y)});var b=h(v,2),S=f(b),C=f(S),w=U(C,!0),T=h(C,2),E=e=>{var n=vt(),r=U(n,!0);p(e=>R(r,e),[()=>t.login.t(`no_access`)]),s(e,n)};u(T,e=>{!c(n).hot.length&&!c(n).rest.length&&e(E)});var D=h(T,2),k=f(D);J(k,17,()=>c(n).hot,([e,t])=>e,(e,t)=>{var n=M(()=>P(c(t),2));let r=()=>c(n)[0],i=()=>c(n)[1];var a=yt(),o=f(a),l=U(o,!0),u=h(o,2),d=U(u,!0);B(a),p(()=>{R(l,i()),R(d,r())}),s(e,a)});var A=h(k,2),j=e=>{var t=bt();s(e,t)};u(A,e=>{c(n).hot.length&&c(n).rest.length&&e(j)});var F=h(A,2);J(F,17,()=>c(n).rest,([e,t])=>e,(e,t)=>{var n=M(()=>P(c(t),2));let r=()=>c(n)[0],i=()=>c(n)[1];var a=xt(),o=f(a),l=U(o,!0),u=h(o,2),d=U(u,!0);B(a),p(()=>{R(l,i()),R(d,r())}),s(e,a)}),B(D),B(S);var L=h(S,2),z=e=>{var n=Ct(),i=f(n),a=U(i,!0),o=h(i,2);J(o,16,()=>c(r),e=>e,(e,t)=>{var n=St(),r=U(n,!0);p(()=>R(r,t)),s(e,n)}),B(n),p(e=>R(a,e),[()=>t.login.t(`audience`)]),s(e,n)};u(L,e=>{c(r).length&&e(z)});var V=h(L,2),ee=e=>{var n=Dt(),r=f(n),a=U(r,!0),o=h(r,2);J(o,21,()=>c(i),x,(e,t)=>{var n=Et(),r=f(n),i=U(r,!0),a=h(r,2),o=U(a,!0),l=h(a,2),d=e=>{var n=Tt();J(n,21,()=>c(t).fields,([e,t])=>e,(e,t)=>{var n=M(()=>P(c(t),2));let r=()=>c(n)[0],i=()=>c(n)[1];var a=wt(),o=g(a),l=U(o,!0),u=h(o,2),d=U(u,!0);p(()=>{R(l,r()),R(d,i())}),s(e,a)}),B(n),s(e,n)};u(l,e=>{c(t).fields.length&&e(d)}),B(n),p(()=>{R(i,c(t).label),R(o,c(t).type)}),s(e,n)}),B(o),B(n),p(e=>R(a,e),[()=>t.login.t(`details`)]),s(e,n)};u(V,e=>{c(i).length&&e(ee)});var H=h(V,2),W=e=>{var n=Ot(),r=f(n),i=U(r,!0),a=h(r,2),o=U(a,!0);B(n),p(e=>{R(i,e),R(o,t.login.client.returnsTo)},[()=>t.login.t(`returns_to`)]),s(e,n)};u(H,e=>{t.login.client?.returnsTo&&e(W)}),B(b);var G=h(b,2),K=e=>{var n=At();J(n,21,()=>c(o),([e,t])=>e,(e,n)=>{var r=M(()=>P(c(n),2));let i=()=>c(r)[0],a=()=>c(r)[1];var o=kt(),l=U(o,!0);p(()=>{N(o,`href`,t.login.client[i()]),R(l,a())}),s(e,o)}),B(n),s(e,n)};u(G,e=>{c(o).length&&e(K)});var q=h(G,2),Y=f(q);{let e=M(()=>t.login.t(`allow`)),n=M(()=>t.login.t(`working`));Q(Y,{get login(){return t.login},grow:!0,get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)},onclick:()=>t.login.submit(`consent`,{approve:`yes`})})}var X=h(Y,2);{let e=M(()=>t.login.t(`deny`));Q(X,{get login(){return t.login},quiet:!0,fit:!0,get label(){return c(e)},onclick:()=>t.login.submit(`decline`,{})})}B(q),p(e=>R(w,e),[()=>t.login.t(`access`)]),s(e,l),I()}var Nt=v(`<form class="flow"><label class="field"><span class="field-label"> </span> <input type="text" name="code" class="control control-code" inputmode="numeric" pattern="[0-9]*" autocomplete="one-time-code" maxlength="6" spellcheck="false"/></label> <!></form>`);function Pt(e,t){O(t,!0);let n=D(``),r=M(()=>c(n).replace(/\D/g,``).length===6);function i(){if(!c(r)||t.login.loading)return;let e=c(n);T(n,``),t.login.submit(t.event,{code:e})}function a(e){e.preventDefault(),i()}S(()=>{c(r)&&i()});var o=Nt(),l=f(o),u=f(l),d=U(u,!0),m=h(u,2);A(m),q(m,!0),B(l);var g=h(l,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`checking`));Q(g,{get login(){return t.login},type:`submit`,get ready(){return c(r)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(o),p(e=>{N(o,`aria-busy`,t.login.loading||void 0),R(d,e)},[()=>t.login.t(`code`)]),b(`submit`,o,a),z(m,()=>c(n),e=>T(n,e)),s(e,o),I()}function Ft(e,t){O(t,!0);let n=F(t,`event`,3,`confirm:resend`),r=F(t,`ready`,3,null),i=D(!1);async function a(){await t.login.submit(n(),{}),T(i,!0)}{let n=M(()=>r()??t.login.auth.confirmation?.resendable!==!1),o=M(()=>c(i)?t.login.t(`sent_again`):t.login.t(`send_again`));Q(e,{get login(){return t.login},plain:!0,get ready(){return c(n)},get label(){return c(o)},onclick:a})}I()}var It=v(`<!> <!> <!> <!>`,1);function Lt(e,t){O(t,!0);var n=It(),r=g(n);{let e=M(()=>t.login.t(`title`)),n=M(()=>t.login.t(`lede`,{identifier:t.login.identifier??``}));$(r,{get login(){return t.login},get title(){return c(e)},get lede(){return c(n)}})}var i=h(r,2);Ee(i,{get login(){return t.login}});var a=h(i,2);Pt(a,{get login(){return t.login},event:`email-code:verify`});var o=h(a,2);{let e=M(()=>t.login.auth.emailCode?.resendable!==!1);Ft(o,{get login(){return t.login},event:`email-code:send`,get ready(){return c(e)}})}s(e,n),I()}var Rt=v(`<div class="providers"></div>`);function zt(e,t){O(t,!0);let n=M(()=>t.login.auth.providers??[]);var r=L(),i=g(r),a=e=>{var r=Rt();J(r,21,()=>c(n),e=>e.key,(e,n)=>{{let r=M(()=>t.login.t(`continue_with`,{provider:c(n).name}));Q(e,{get login(){return t.login},quiet:!0,get label(){return c(r)},onclick:()=>t.login.submit(`provider`,{provider:c(n).key})})}}),B(r),s(e,r)};u(i,e=>{c(n).length&&e(a)}),s(e,r),I()}var Bt=v(`<div class="otherwise"><span class="providers-rule"> </span> <!> <!></div>`);function Vt(e,n){O(n,!0);let r=M(()=>!!n.login.auth.passkey?.offered&&t()),i=M(()=>(n.login.auth.providers??[]).length>0);var a=L(),o=g(a),l=e=>{var t=Bt(),r=f(t),i=U(r,!0),a=h(r,2);ze(a,{get login(){return n.login}}),zt(h(a,2),{get login(){return n.login}}),B(t),p(e=>R(i,e),[()=>n.login.t(`or`)]),s(e,t)};u(o,e=>{(c(r)||c(i))&&e(l)}),s(e,a),I()}var Ht=v(`<form class="flow"><div class="field"><div class="field-line"><label class="field-label" for="password"> </label> <button type="button" class="textlink"> </button></div> <input id="password" type="password" name="password" class="control" autocomplete="current-password"/></div> <!></form>`),Ut=v(`<!> <!> <!> <!> <!>`,1);function Wt(e,t){O(t,!0);let n=D(``),r=M(()=>c(n).length>0),i=M(()=>!!t.login.auth.password?.offered),a=M(()=>!!t.login.auth.emailCode);function o(e){e.preventDefault(),c(r)&&!t.login.loading&&t.login.submit(`password`,{password:c(n)}).then(()=>{T(n,``)})}var l=Ut(),d=g(l);{let e=M(()=>c(i)||!c(a)?t.login.t(`title`):t.login.t(`title_code`));$(d,{get login(){return t.login},get title(){return c(e)}})}var m=h(d,2);Ee(m,{get login(){return t.login}});var v=h(m,2),y=e=>{var i=Ht(),a=f(i),l=f(a),u=f(l),d=U(u,!0),m=h(u,2),g=U(m,!0);B(l);var v=h(l,2);A(v),q(v,!0),B(a);var y=h(a,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`checking`));Q(y,{get login(){return t.login},type:`submit`,get ready(){return c(r)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(i),p((e,n)=>{N(i,`aria-busy`,t.login.loading||void 0),R(d,e),m.disabled=t.login.loading,R(g,n)},[()=>t.login.t(`password`),()=>t.login.t(`forgot`)]),b(`submit`,i,o),_(`click`,m,()=>t.login.submit(`forgot-password`,{})),z(v,()=>c(n),e=>T(n,e)),s(e,i)};u(v,e=>{c(i)&&e(y)});var x=h(v,2),S=e=>{{let n=M(()=>c(i)?t.login.t(`email_me`):t.login.t(`email_only`));Q(e,{get login(){return t.login},get quiet(){return c(i)},get label(){return c(n)},onclick:()=>t.login.submit(`email-code:send`,{})})}};u(x,e=>{c(a)&&e(S)}),Vt(h(x,2),{get login(){return t.login}}),s(e,l),I()}m([`click`]);function Gt(e,t){O(t,!0);let n=F(t,`tone`,3,null),r=M(()=>t.login.auth.client),i=M(()=>c(r)?.name?t.login.t(`heading_to`,{client:c(r).name}):t.login.t(`heading`));$(e,{get login(){return t.login},get title(){return c(i)},get tone(){return n()}}),I()}var Kt=v(`<span class="field-hint"> </span>`),qt=v(`<form class="flow"><label class="field"><span class="field-label"> </span> <input type="text" name="identifier" class="control" autocomplete="username webauthn" autocapitalize="none" autocorrect="off" spellcheck="false"/> <!></label> <!></form> <!>`,1),Jt=v(`<!> <!>`,1);function Yt(e,t){O(t,!0);let r=D(``),o=M(()=>c(r).trim().length>0);W(()=>{let e=!0;return(async()=>{if(!t.login.auth.passkey?.offered||!await i()||!e)return;let r=(await t.login.poll(`passkey:challenge`)).passkey?.options;if(!r||!e)return;let a=await n(r);e&&await t.login.submit(`passkey:verify`,{passkey:a})})().catch(()=>{}),()=>{e=!1,a()}});function l(e){e.preventDefault(),c(o)&&!t.login.loading&&t.login.submit(`identify`,{identifier:c(r)})}var d=Jt(),m=g(d);Gt(m,{get login(){return t.login}});var _=h(m,2),v=e=>{var n=qt(),i=g(n),a=f(i),d=f(a),m=U(d,!0),_=h(d,2);A(_),q(_,!0);var v=h(_,2),y=e=>{var n=Kt(),r=U(n,!0);p(e=>R(r,e),[()=>t.login.t(`signup_hint`)]),s(e,n)};u(v,e=>{t.login.auth.signupOpen&&e(y)}),B(a);var x=h(a,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`checking`));Q(x,{get login(){return t.login},type:`submit`,get ready(){return c(o)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(i),Vt(h(i,2),{get login(){return t.login}}),p(e=>{N(i,`aria-busy`,t.login.loading||void 0),R(m,e)},[()=>t.login.t(`identifier`)]),b(`submit`,i,l),z(_,()=>c(r),e=>T(r,e)),s(e,n)},y=e=>{zt(e,{get login(){return t.login}})};u(_,e=>{t.login.auth.identifies===!1?e(y,-1):e(v)}),s(e,d),I()}var Xt=v(`<!> <!>`,1),Zt=v(`<p class="note note-warn" role="alert"> </p>`),Qt=v(`<!> <!> <!>`,1);function $t(e,t){O(t,!0);let n=M(()=>t.login.auth.inbox??{});var r=Qt(),i=g(r);{let e=M(()=>t.login.t(`title`)),r=M(()=>c(n).mails?t.login.t(`lede`,{email:c(n).email}):null);$(i,{get login(){return t.login},get title(){return c(e)},get lede(){return c(r)}})}var a=h(i,2);Ee(a,{get login(){return t.login}});var o=h(a,2),l=e=>{var r=Xt(),i=g(r);Pt(i,{get login(){return t.login},event:`inbox:verify`});var a=h(i,2);{let e=M(()=>c(n).resendable!==!1);Ft(a,{get login(){return t.login},event:`inbox:resend`,get ready(){return c(e)}})}s(e,r)},d=e=>{var n=Zt(),r=U(n,!0);p(e=>R(r,e),[()=>t.login.t(`no_mailer`)]),s(e,n)};u(o,e=>{c(n).mails?e(l):e(d,-1)}),s(e,r),I()}var en=v(`<!> <form class="flow"><label class="field"><span class="field-label"> </span> <input type="text" class="control" autocomplete="username" readonly=""/></label> <label class="field"><span class="field-label"> </span> <input type="password" name="password" class="control" autocomplete="new-password"/> <!></label> <!></form>`,1);function tn(e,t){O(t,!0);let n=D(``),r=M(()=>t.login.auth.reset??{}),i=M(()=>c(r).minimum??8),a=M(()=>c(n).length>=c(i));function o(e){e.preventDefault(),c(a)&&!t.login.loading&&t.login.submit(`reset-password`,{password:c(n)})}var l=en(),u=g(l);{let e=M(()=>t.login.t(`title`));$(u,{get login(){return t.login},get title(){return c(e)}})}var d=h(u,2),m=f(d),_=f(m),v=U(_,!0),y=h(_,2);A(y),B(m);var x=h(m,2),S=f(x),C=U(S,!0),w=h(S,2);A(w),q(w,!0);var E=h(w,2);{let e=M(()=>t.login.t(`hint`,{minimum:c(i)}));xe(E,{get login(){return t.login},field:`password`,get hint(){return c(e)}})}B(x);var k=h(x,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`working`));Q(k,{get login(){return t.login},type:`submit`,get ready(){return c(a)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(d),p((e,n)=>{N(d,`aria-busy`,t.login.loading||void 0),R(v,e),V(y,c(r).nickname??``),R(C,n)},[()=>t.login.t(`account`),()=>t.login.t(`password`)]),b(`submit`,d,o),z(w,()=>c(n),e=>T(n,e)),s(e,l),I()}var nn=v(`<p class="aside" role="status"> </p>`),rn=v(`<label class="check"><input type="checkbox"/> <span> </span></label>`),an=v(`<!> <!> <!> <!>`,1),on=v(`<form class="flow"><label class="field"><span class="field-label"> </span> <input type="text" name="code" class="control control-code" inputmode="numeric" pattern="[0-9 ]*" autocomplete="one-time-code" maxlength="7" spellcheck="false"/></label> <!> <!></form>`),sn=v(`<!> <!>`,1),cn=v(`<div class="slab flow-tight" aria-live="polite"><span class="aside-mono approval-code"> </span> <span class="field-hint"> </span> <span class="aside"> </span></div>`),ln=v(`<p class="aside aside-bad" role="alert"> </p>`),un=v(`<!> <!> <!> <!> <!> <!> <!> <!> <!> <!>`,1);function dn(e,n){O(n,!0);let r=e=>{var t=L(),r=g(t),i=e=>{var t=nn(),r=U(t,!0);p(e=>R(r,e),[()=>n.login.t(`recovery_requested`)]),s(e,t)},a=e=>{{let t=M(()=>n.login.t(c(k)?`recovery_ask`:`recovery_request`));Q(e,{get login(){return n.login},plain:!0,get label(){return c(t)},onclick:()=>n.login.submit(`recovery:request`,{})})}};u(r,e=>{c(j).requested?e(i):e(a,-1)}),s(e,t)},i=e=>{var t=L(),r=g(t),i=e=>{var t=rn(),r=f(t);A(r);var i=h(r,2),a=U(i,!0);B(t),p(e=>R(a,e),[()=>n.login.t(`trust`,{duration:n.login.auth.trustFor})]),G(r,()=>c(o),e=>T(o,e)),s(e,t)};u(r,e=>{n.login.rememberable&&e(i)}),s(e,t)},a=D(``),o=D(!1),l=D(!1),d=M(()=>n.login.auth.secondFactors??{otp:!0}),m=M(()=>n.login.auth.codeFactors??{}),_=M(()=>Object.keys(c(m)).length>0),v=M(()=>n.login.auth.approval),y=M(()=>c(v)?.state===`waiting`),x=M(()=>c(l)?null:n.login.auth.codeSent),C=M(()=>c(a).replace(/\D/g,``).length===6),w=M(()=>!!(c(d).passkey&&n.login.auth.passkey?.offered)&&t()),E=M(()=>!!c(x)||c(d).otp),k=M(()=>!c(E)&&!c(w)&&!n.login.backupCodes&&!c(d).trustedDevice&&!c(_)),j=M(()=>n.login.auth.recovery??{}),F=M(()=>n.login.auth.codesWithheld?.includes(`email`)?`stuck_inbox`:c(d).passkey?globalThis.isSecureContext?`stuck_unsupported`:`stuck_insecure`:`stuck_nothing`);function V(){if(!c(C)||n.login.loading)return;let e=c(a);T(a,``),n.login.submit(c(x)?`code:verify`:`otp`,{code:e,remember:c(o)})}function ee(e){e.preventDefault(),V()}function H(e){T(l,!1),n.login.submit(`code:send`,{factor:e})}S(()=>{c(C)&&V()}),S(()=>{if(!c(y))return;let e=c(o),t,r=!1,i=async()=>{document.hidden||await n.login.poll(`approval:check`,{remember:e}),r||(t=setTimeout(i,2e3))};return t=setTimeout(i,2e3),()=>{r=!0,clearTimeout(t)}});var W=L(),K=g(W),Y=e=>{var t=an(),i=g(t);{let e=M(()=>n.login.t(`halted`)),t=M(()=>n.login.t(c(F)));$(i,{get login(){return n.login},tone:`bad`,get title(){return c(e)},get lede(){return c(t)}})}var a=h(i,2);Ee(a,{get login(){return n.login}});var o=h(a,2);r(o);var l=h(o,2);{let e=M(()=>n.login.t(`start_over`)),t=M(()=>n.login.t(`working`));Q(l,{get login(){return n.login},quiet:!0,get label(){return c(e)},get working(){return c(t)},get busy(){return n.login.loading},onclick:()=>n.login.startOver()})}s(e,t)},X=e=>{var t=un(),S=g(t);{let e=M(()=>n.login.t(c(E)?`title`:`title_passkey`)),t=M(()=>c(x)?n.login.t(`sent_to`,{to:c(x).to}):null);$(S,{get login(){return n.login},get title(){return c(e)},get lede(){return c(t)}})}var D=h(S,2);Ee(D,{get login(){return n.login}});var O=h(D,2),k=e=>{var t=on(),r=f(t),o=f(r),l=U(o,!0),u=h(o,2);A(u),q(u,!0),B(r);var d=h(r,2);i(d);var m=h(d,2);{let e=M(()=>n.login.t(`continue`)),t=M(()=>n.login.t(`checking`));Q(m,{get login(){return n.login},type:`submit`,get ready(){return c(C)},get busy(){return n.login.loading},get label(){return c(e)},get working(){return c(t)}})}B(t),p(e=>{N(t,`aria-busy`,n.login.loading||void 0),R(l,e)},[()=>n.login.t(`code`)]),b(`submit`,t,ee),z(u,()=>c(a),e=>T(a,e)),s(e,t)};u(O,e=>{c(E)&&e(k)});var j=h(O,2),F=e=>{var t=sn(),r=g(t),a=e=>{i(e)};u(r,e=>{c(E)||e(a)});var l=h(r,2);{let e=M(()=>({remember:c(o)}));ze(l,{get login(){return n.login},get params(){return c(e)}})}s(e,t)};u(j,e=>{c(w)&&e(F)});var I=h(j,2),V=e=>{i(e)};u(I,e=>{!c(E)&&!c(w)&&(c(y)||c(_))&&e(V)});var W=h(I,2),G=e=>{var t=cn(),r=f(t),i=U(r,!0),a=h(r,2),o=U(a,!0),l=h(a,2),u=U(l,!0);B(t),p((e,t)=>{R(i,c(v).code),R(o,e),R(u,t)},[()=>n.login.t(`approval_code`),()=>n.login.t(`approval_waiting`)]),s(e,t)},K=e=>{var t=sn(),r=g(t),i=e=>{var t=ln(),r=U(t,!0);p(e=>R(r,e),[()=>n.login.t(`approval_expired`)]),s(e,t)};u(r,e=>{c(v)?.state===`expired`&&e(i)});var a=h(r,2);{let e=M(()=>c(v)?n.login.t(`approval_again`):n.login.t(`use_trusted_device`));Q(a,{get login(){return n.login},plain:!0,get label(){return c(e)},onclick:()=>n.login.submit(`approval:request`,{})})}s(e,t)};u(W,e=>{c(y)?e(G):c(d).trustedDevice&&e(K,1)});var Y=h(W,2);J(Y,17,()=>Object.entries(c(m)),([e,t])=>e,(e,t)=>{var r=M(()=>P(c(t),2));let i=()=>c(r)[0],a=()=>c(r)[1];var o=L(),l=g(o),d=e=>{var t=L(),r=g(t),a=e=>{{let t=M(()=>n.login.t(`send_again`));Q(e,{get login(){return n.login},plain:!0,get label(){return c(t)},onclick:()=>H(i())})}};u(r,e=>{c(x).resendable&&e(a)}),s(e,t)},f=e=>{{let t=M(()=>n.login.t(`send_${i()}`,{to:a()}));Q(e,{get login(){return n.login},plain:!0,get label(){return c(t)},onclick:()=>H(i())})}};u(l,e=>{c(x)?.factor===i()?e(d):e(f,-1)}),s(e,o)});var X=h(Y,2),te=e=>{{let t=M(()=>n.login.t(`use_app`));Q(e,{get login(){return n.login},plain:!0,get label(){return c(t)},onclick:()=>T(l,!0)})}};u(X,e=>{c(x)&&c(d).otp&&e(te)});var Z=h(X,2),ne=e=>{{let t=M(()=>n.login.t(`use_backup_code`));Q(e,{get login(){return n.login},plain:!0,get label(){return c(t)},onclick:()=>n.login.submit(`use-backup-code`,{})})}};u(Z,e=>{n.login.backupCodes&&e(ne)});var re=h(Z,2);r(re),s(e,t)};u(K,e=>{c(k)?e(Y):e(X,-1)}),s(e,W),I()}var fn=v(`<div class="auth-pair"><!> <span class="auth-wire auth-wire-live"></span> <!></div>`),pn=v(`<div class="over"><!> <!></div>`);function mn(e,t){O(t,!0);let n=M(()=>t.login.client?.name??``),r=M(()=>c(n)?t.login.t(`heading_to`,{client:c(n)}):t.login.t(`heading`));var i=pn(),a=f(i),o=e=>{var n=fn(),r=f(n);ke(r,{get tenant(){return t.login.auth.tenant}}),mt(h(r,4),{get client(){return t.login.client}}),B(n),s(e,n)};u(a,e=>{c(n)&&e(o)});var l=h(a,2);{let e=M(()=>t.login.t(`waiting`));$(l,{get login(){return t.login},get title(){return c(r)},busy:!0,get lede(){return c(e)}})}B(i),s(e,i),I()}var hn=v(`<p class="prompt-lede"> </p>`),gn=v(`<!> <div class="prompt-head"><h2 class="prompt-title"> </h2> <!></div>`,1),_n=v(`<!> <!>`,1);function vn(e,t){O(t,!0);let n=F(t,`lede`,3,null),r=F(t,`tone`,3,null);var i=L(),a=g(i),o=e=>{var r=gn(),i=g(r);{let e=M(()=>t.login.actor?.identifier??``);Fe(i,{get login(){return t.login},get mark(){return c(e)}})}var a=h(i,2),o=f(a),l=U(o,!0),d=h(o,2),m=e=>{var t=hn(),r=U(t,!0);p(()=>R(r,n())),s(e,t)};u(d,e=>{n()&&e(m)}),B(a),p(()=>R(l,t.title)),s(e,r)},l=e=>{var i=_n(),a=g(i);$(a,{get login(){return t.login},get title(){return t.title},get lede(){return n()},get tone(){return r()}}),Ee(h(a,2),{get login(){return t.login}}),s(e,i)};u(a,e=>{t.login.auth.signingUp?e(o):e(l,-1)}),s(e,i),I()}var yn=v(`<!> <form class="flow"><label class="field"><span class="field-label"> </span> <input type="tel" name="phone" class="control" autocomplete="tel" placeholder="+15551234567"/> <span class="field-hint"> </span></label> <!></form>`,1);function bn(e,t){O(t,!0);let n=D(``),r=M(()=>/^\+?[\d\s().-]{7,}$/.test(c(n).trim()));function i(e){e.preventDefault(),c(r)&&!t.login.loading&&t.login.submit(`confirm:add-phone`,{phone:c(n)})}var a=yn(),o=g(a);{let e=M(()=>t.login.t(`title`)),n=M(()=>t.login.t(`lede`));vn(o,{get login(){return t.login},get title(){return c(e)},get lede(){return c(n)}})}var l=h(o,2),u=f(l),d=f(u),m=U(d,!0),_=h(d,2);A(_),q(_,!0);var v=h(_,2),y=U(v,!0);B(u);var x=h(u,2);{let e=M(()=>t.login.t(`continue`)),n=M(()=>t.login.t(`working`));Q(x,{get login(){return t.login},type:`submit`,get ready(){return c(r)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(l),p((e,n)=>{N(l,`aria-busy`,t.login.loading||void 0),R(m,e),R(y,n)},[()=>t.login.t(`phone`),()=>t.login.t(`hint`)]),b(`submit`,l,i),z(_,()=>c(n),e=>T(n,e)),s(e,a),I()}var xn=v(`<!> <p class="waiting aside"> </p> <!>`,1);function Sn(e,t){O(t,!0),S(()=>{let e=setInterval(()=>{t.login.loading||t.login.submit(`confirm:check`,{})},15e3);return()=>clearInterval(e)});var n=xn(),r=g(n);{let e=M(()=>t.login.t(`title`)),n=M(()=>t.login.t(`lede`));vn(r,{get login(){return t.login},get title(){return c(e)},get lede(){return c(n)}})}var i=h(r,2),a=U(i,!0),o=h(i,2);{let e=M(()=>t.login.t(`check`));Q(o,{get login(){return t.login},quiet:!0,get label(){return c(e)},get busy(){return t.login.loading},onclick:()=>t.login.submit(`confirm:check`,{})})}p(e=>R(a,e),[()=>t.login.t(`waiting`)]),s(e,n),I()}var Cn=v(`<p class="note note-warn" role="alert"> </p>`),wn=v(`<p class="waiting aside"> </p>`),Tn=v(`<!> <!> <!>`,1);function En(e,t){O(t,!0);let n=M(()=>t.login.auth.confirmation??{}),r=M(()=>c(n).mode===`link`);S(()=>{if(!c(r))return;let e=setInterval(()=>{t.login.loading||t.login.submit(`confirm:check`,{})},5e3);return()=>clearInterval(e)});var i=Tn(),a=g(i);{let e=M(()=>t.login.t(`title`)),i=M(()=>t.login.t(c(r)?`lede_link`:`lede`,{email:c(n).email}));vn(a,{get login(){return t.login},get title(){return c(e)},get lede(){return c(i)}})}var o=h(a,2),l=e=>{var n=Cn(),r=U(n,!0);p(e=>R(r,e),[()=>t.login.t(`no_mailer`)]),s(e,n)},d=e=>{var n=wn(),r=U(n,!0);p(e=>R(r,e),[()=>t.login.t(`waiting`)]),s(e,n)},f=e=>{Pt(e,{get login(){return t.login},event:`confirm:email`})};u(o,e=>{c(n).mails?c(r)?e(d,1):e(f,-1):e(l)});var m=h(o,2),_=e=>{Ft(e,{get login(){return t.login}})};u(m,e=>{c(n).mails&&e(_)}),s(e,i),I()}var Dn=v(`<!> <!>`,1),On=v(`<p class="note note-warn" role="alert"> </p>`),kn=v(`<!> <!> <!>`,1);function An(e,t){O(t,!0);let n=M(()=>t.login.auth.confirmation??{});var r=kn(),i=g(r);{let e=M(()=>t.login.t(`title`)),r=M(()=>t.login.t(`lede`,{phone:c(n).phone}));vn(i,{get login(){return t.login},get title(){return c(e)},get lede(){return c(r)}})}var a=h(i,2),o=e=>{var n=Dn(),r=g(n);Pt(r,{get login(){return t.login},event:`confirm:phone`}),Ft(h(r,2),{get login(){return t.login}}),s(e,n)},l=e=>{var n=On(),r=U(n,!0);p(e=>R(r,e),[()=>t.login.t(`no_texts`)]),s(e,n)};u(a,e=>{c(n).texts?e(o):e(l,-1)});var d=h(a,2);{let e=M(()=>t.login.t(`change_phone`));Q(d,{get login(){return t.login},plain:!0,get label(){return c(e)},onclick:()=>t.login.submit(`confirm:change-phone`,{})})}s(e,r),I()}var jn=512,Mn=new TextEncoder,Nn=new Map;function Pn(e){let t=new Uint8Array(e),n=0;for(let e of t){if(e===0){n+=8;continue}return n+Math.clz32(e)-24}return n}async function Fn({nonce:e,bits:t}){for(let n=0;;n+=jn){let r=(await Promise.all(Array.from({length:jn},(t,r)=>crypto.subtle.digest(`SHA-256`,Mn.encode(`${e}${n+r}`))))).findIndex(e=>Pn(e)>=t);if(r>=0)return String(n+r)}}function In(e){return e?(Nn.has(e.token)||Nn.set(e.token,Fn(e).then(t=>({work:e.token,work_counter:t}))),Nn.get(e.token)):Promise.resolve(null)}var Ln=v(`<label><span class="ledger-label"> </span> <input type="password" name="token" class="control" autocomplete="off"/> <!></label>`),Rn=v(`<label><span class="ledger-label"> </span> <input type="text" name="nickname" class="control" autocomplete="username" autocapitalize="none" autocorrect="off" spellcheck="false"/> <!></label>`),zn=v(`<label><span class="ledger-label"> </span> <input type="email" name="email" class="control" autocomplete="email"/> <!></label>`),Bn=v(`<label><span class="ledger-label"> </span> <input type="tel" name="phone" class="control" autocomplete="tel" placeholder="+15551234567"/> <!></label>`),Vn=v(`<div class="ledger-row"><span class="ledger-label"> </span> <span class="ledger-value aside-mono"> </span></div>`),Hn=v(`<a class="textlink" rel="noopener" target="_blank"> </a>`),Un=v(`<p class="aside"> <!></p>`),Wn=v(`<p class="aside"> <button type="button" class="textlink"> </button></p>`),Gn=v(`<div><!> <form class="flow"><div class="slab"><!> <label><span class="ledger-label"> </span> <input type="text" name="name" class="control" autocomplete="name"/></label> <!> <!> <!> <!></div> <!></form> <!></div>`);function Kn(e,t){O(t,!0);let n=M(()=>t.login.auth.signup??{}),r=M(()=>c(n).asks??{}),i=M(()=>new Set(c(n).fixed??[])),a=M(()=>!!t.login.auth.signingUp?.firstRun),o=M(()=>t.login.auth.docs),l=typeof location>`u`?``:location.origin,d=C(()=>t.login.auth.signup??{}),m=D(``),g=D(E(d.nickname??``)),v=D(E(d.email??``)),y=D(E(d.name??``)),x=D(E(d.phone??``)),w=D(!1),k=e=>e.trim().length>0,j=(e,t)=>c(r)[e]!==`required`||k(t),P=M(()=>(!c(n).token||k(c(m)))&&j(`nickname`,c(g))&&j(`email`,c(v))&&j(`phone`,c(x))&&(k(c(g))||k(c(v))));S(()=>{In(c(n).work).catch(()=>null)});async function F(){T(w,!0);try{return await In(c(n).work)??{}}catch{return{}}finally{T(w,!1)}}async function L(e){if(e.preventDefault(),c(P)&&!t.login.loading&&!c(w)){let e=await F();t.login.submit(`signup`,{token:c(m),nickname:c(g),email:c(v),name:c(y),phone:c(x),...e})}}var V=Gn();let ee;var H=f(V);{let e=M(()=>c(g)||c(v));Fe(H,{get login(){return t.login},at:1,get mark(){return c(e)}})}var W=h(H,2),G=f(W),K=f(G),J=e=>{var n=Ln();let r;var i=f(n),a=U(i,!0),o=h(i,2);A(o),q(o,!0);var l=h(o,2);{let e=M(()=>t.login.t(`token_hint`));xe(l,{get login(){return t.login},field:`token`,get hint(){return c(e)}})}B(n),p((e,t)=>{r=X(n,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":e}),R(a,t)},[()=>k(c(m)),()=>t.login.t(`token`)]),z(o,()=>c(m),e=>T(m,e)),s(e,n)};u(K,e=>{c(n).token&&e(J)});var Y=h(K,2);let te;var Z=f(Y),ne=U(Z,!0),re=h(Z,2);A(re),q(re,!c(n).token),B(Y);var ie=h(Y,2),ae=e=>{var n=Rn();let r;var i=f(n),a=U(i,!0),o=h(i,2);A(o),xe(h(o,2),{get login(){return t.login},field:`nickname`}),B(n),p((e,t)=>{r=X(n,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":e}),R(a,t)},[()=>k(c(g)),()=>t.login.t(`nickname`)]),z(o,()=>c(g),e=>T(g,e)),s(e,n)};u(ie,e=>{c(r).nickname!==`off`&&e(ae)});var oe=h(ie,2),se=e=>{var n=zn();let r;var a=f(n),o=U(a,!0),l=h(a,2);A(l),xe(h(l,2),{get login(){return t.login},field:`email`}),B(n),p((e,t,i)=>{r=X(n,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":e}),R(o,t),l.readOnly=i},[()=>k(c(v)),()=>t.login.t(`email`),()=>c(i).has(`email`)]),z(l,()=>c(v),e=>T(v,e)),s(e,n)};u(oe,e=>{c(r).email!==`off`&&e(se)});var ce=h(oe,2),le=e=>{var n=Bn();let r;var i=f(n),a=U(i,!0),o=h(i,2);A(o),xe(h(o,2),{get login(){return t.login},field:`phone`}),B(n),p((e,t)=>{r=X(n,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":e}),R(a,t)},[()=>k(c(x)),()=>t.login.t(`phone`)]),z(o,()=>c(x),e=>T(x,e)),s(e,n)};u(ce,e=>{c(r).phone!==`off`&&e(le)});var ue=h(ce,2),de=e=>{var n=Vn(),r=f(n),i=U(r,!0),a=h(r,2),o=U(a,!0);B(n),p(e=>{R(i,e),R(o,l)},[()=>t.login.t(`origin`)]),s(e,n)};u(ue,e=>{c(a)&&e(de)}),B(G);var fe=h(G,2);{let e=M(()=>t.login.loading||c(w)),n=M(()=>t.login.t(`continue`)),r=M(()=>c(w)?t.login.t(`proving`):t.login.t(`working`));Q(fe,{get login(){return t.login},type:`submit`,get ready(){return c(P)},get busy(){return c(e)},get label(){return c(n)},get working(){return c(r)}})}B(W);var pe=h(W,2),me=e=>{var n=Un(),r=f(n),i=h(r),a=e=>{var n=Hn(),r=U(n,!0);p(e=>{N(n,`href`,c(o)),R(r,e)},[()=>t.login.t(`docs`)]),s(e,n)};u(i,e=>{c(o)&&e(a)}),B(n),p(e=>R(r,`${e??``} `),[()=>t.login.t(`once`)]),s(e,n)},$=e=>{var n=Wn(),r=f(n),i=h(r),a=U(i,!0);B(n),p((e,n)=>{R(r,`${e??``} `),i.disabled=t.login.loading,R(a,n)},[()=>t.login.t(`have_account`),()=>t.login.t(`sign_in_instead`)]),_(`click`,i,()=>t.login.startOver()),s(e,n)};u(pe,e=>{c(a)?e(me):e($,-1)}),B(V),p((e,n)=>{ee=X(V,1,`setup flow`,null,ee,{"setup-ready":c(P)}),N(W,`aria-busy`,t.login.loading||void 0),te=X(Y,1,`ledger-row ledger-step`,null,te,{"ledger-step-done":e}),R(ne,n)},[()=>k(c(y)),()=>t.login.t(`name`)]),b(`submit`,W,L),z(re,()=>c(y),e=>T(y,e)),s(e,V),I()}m([`click`]);var qn=v(`<div class="ledger-row ledger-row-aside"><span class="ledger-label"> </span> <span class="ledger-value"> </span> <button type="button" class="textlink ledger-aside"> </button></div>`),Jn=v(`<button type="button" role="radio" class="credential-way"> </button>`),Yn=v(`<div class="ledger-row"><span class="ledger-label" id="credential-way"> </span> <div class="credential-ways" role="radiogroup" aria-labelledby="credential-way"></div></div>`),Xn=v(`<label><span class="ledger-label"> </span> <input type="password" name="password" class="control" autocomplete="new-password"/> <!></label> <label><span class="ledger-label"> </span> <input type="password" name="password_confirmation" class="control" autocomplete="new-password"/> <!></label>`,1),Zn=v(`<p class="aside"> </p>`),Qn=v(`<p class="aside aside-bad" role="alert"> </p>`),$n=v(`<div class="flow-tight"><p class="aside"> </p> <!> <!> <!></div>`),er=v(`<p class="note note-warn" role="alert"> </p>`),tr=v(`<a class="textlink" rel="noopener" target="_blank"> </a>`),nr=v(`<p class="aside"> <!></p>`),rr=v(`<div><!> <form class="flow"><div class="slab"><!> <!> <!></div> <!></form> <!> <!></div>`);function ir(n,i){O(i,!0);let a=M(()=>i.login.auth.signup??{}),o=M(()=>c(a).credentials??{password:!0,passkey:!1}),l=M(()=>!!i.login.auth.signingUp?.firstRun),d=M(()=>c(a).minimum??8),m=M(()=>i.login.auth.docs),v=M(()=>!!c(o).passkey&&t()),y=M(()=>c(l)?i.login.t(`submit_first_run`):i.login.t(`submit_signup`)),x=M(()=>[[`name`,c(a).name],[`nickname`,c(a).nickname],[`email`,c(a).email],[`phone`,c(a).phone]].filter(([,e])=>e)),S=D(null),C=M(()=>c(S)??(c(v)?`passkey`:`password`)),w=M(()=>!!c(o).password&&c(v)),E=M(()=>!!c(o).password&&(!c(v)||c(C)===`password`)),k=M(()=>c(v)&&(!c(o).password||c(C)===`passkey`)),j=D(``),F=D(``),L=D(!1),V=D(null),ee=M(()=>c(j).length>=c(d)),H=M(()=>c(ee)&&c(F)===c(j));function W(e){e.preventDefault(),c(H)&&!i.login.loading&&i.login.submit(`signup`,{password:c(j),password_confirmation:c(F)})}async function G(){T(L,!0),T(V,null);try{let t=(await i.login.submit(`signup:passkey-challenge`,{})).signup?.passkeyOptions;if(!t){T(V,i.login.t(`passkey_unoffered`),!0);return}await i.login.submit(`signup:passkey`,{passkey:await e(t)})}catch(e){r(e)||T(V,i.login.t(`passkey_unusable`),!0)}finally{T(L,!1)}}var K=rr();let Y;var te=f(K);{let e=M(()=>c(a).nickname||c(a).email||``);Fe(te,{get login(){return i.login},at:2,get mark(){return c(e)}})}var Z=h(te,2),ne=f(Z),re=f(ne);J(re,17,()=>c(x),([e,t])=>e,(e,t)=>{var n=M(()=>P(c(t),2));let r=()=>c(n)[0],a=()=>c(n)[1];var o=qn(),l=f(o),u=U(l,!0),d=h(l,2),m=U(d,!0),g=h(d,2),v=U(g,!0);B(o),p((e,t)=>{R(u,e),R(m,a()),g.disabled=i.login.loading,R(v,t)},[()=>i.login.t(r()),()=>i.login.t(`edit`)]),_(`click`,g,()=>i.login.submit(`signup-edit`)),s(e,o)});var ie=h(re,2),ae=e=>{var t=Yn(),n=f(t),r=U(n,!0),a=h(n,2);J(a,21,()=>[[`passkey`,i.login.t(`way_passkey`)],[`password`,i.login.t(`way_password`)]],([e,t])=>e,(e,t)=>{var n=M(()=>P(c(t),2));let r=()=>c(n)[0],a=()=>c(n)[1];var o=Jn(),l=U(o,!0);p(()=>{N(o,`aria-checked`,c(C)===r()),o.disabled=i.login.loading||c(L),R(l,a())}),_(`click`,o,()=>T(S,r(),!0)),s(e,o)}),B(a),B(t),p(e=>R(r,e),[()=>i.login.t(`way`)]),s(e,t)};u(ie,e=>{c(w)&&e(ae)});var oe=h(ie,2),se=e=>{var t=Xn(),n=g(t);let r;var a=f(n),o=U(a,!0),l=h(a,2);A(l),q(l,!c(w));var u=h(l,2);{let e=M(()=>i.login.t(`password_hint`,{minimum:c(d)}));xe(u,{get login(){return i.login},field:`password`,get hint(){return c(e)}})}B(n);var m=h(n,2);let _;var v=f(m),y=U(v,!0),b=h(v,2);A(b),xe(h(b,2),{get login(){return i.login},field:`password_confirmation`}),B(m),p((e,t)=>{r=X(n,1,`ledger-row ledger-step`,null,r,{"ledger-step-done":c(ee)}),R(o,e),_=X(m,1,`ledger-row ledger-step`,null,_,{"ledger-step-done":c(H)}),R(y,t)},[()=>i.login.t(`password`),()=>i.login.t(`confirm`)]),z(l,()=>c(j),e=>T(j,e)),z(b,()=>c(F),e=>T(F,e)),s(e,t)};u(oe,e=>{c(E)&&e(se)}),B(ne);var ce=h(ne,2),le=e=>{{let t=M(()=>i.login.loading&&!c(L)),n=M(()=>i.login.t(`working`));Q(e,{get login(){return i.login},type:`submit`,get ready(){return c(H)},get busy(){return c(t)},get label(){return c(y)},get working(){return c(n)}})}};u(ce,e=>{c(E)&&e(le)}),B(Z);var ue=h(Z,2),de=e=>{var t=$n(),n=f(t),r=U(n),a=h(n,2);{let e=M(()=>i.login.t(`create_passkey`)),t=M(()=>i.login.t(`waiting_for_passkey`));Q(a,{get login(){return i.login},get busy(){return c(L)},get label(){return c(e)},get working(){return c(t)},onclick:G})}var o=h(a,2),l=e=>{var t=Zn(),n=U(t,!0);p(e=>R(n,e),[()=>i.login.t(`passkey_hint`)]),s(e,t)};u(o,e=>{c(L)&&e(l)});var d=h(o,2),m=e=>{var t=Qn(),n=U(t,!0);p(()=>R(n,c(V))),s(e,t)};u(d,e=>{c(V)&&e(m)}),B(t),p((e,t)=>R(r,`${e??``} ${t??``}`),[()=>i.login.t(`passkey_lede`),()=>i.login.t(`passkey_later`)]),s(e,t)},fe=e=>{var t=er(),n=U(t,!0);p(e=>R(n,e),[()=>i.login.t(`no_passkeys`)]),s(e,t)};u(ue,e=>{c(k)?e(de):c(o).password||e(fe,1)});var pe=h(ue,2),me=e=>{var t=nr(),n=f(t),r=h(n),a=e=>{var t=tr(),n=U(t,!0);p(e=>{N(t,`href`,c(m)),R(n,e)},[()=>i.login.t(`docs`)]),s(e,t)};u(r,e=>{c(m)&&e(a)}),B(t),p(e=>R(n,`${e??``} `),[()=>i.login.t(`once`)]),s(e,t)};u(pe,e=>{c(l)&&e(me)}),B(K),p(()=>{Y=X(K,1,`setup flow`,null,Y,{"setup-ready":c(E)?c(H):c(k)}),N(Z,`aria-busy`,i.login.loading||void 0)}),b(`submit`,Z,W),s(n,K),I()}m([`click`]);var ar=v(`<a class="textlink" rel="noopener" target="_blank"> </a>`),or=v(`<div><!> <form class="flow"><div class="slab"><label><span class="ledger-label"> </span> <input type="text" name="called" class="control"/> <span class="field-hint"> </span></label> <div class="ledger-row"><span class="ledger-label"> </span> <span class="ledger-value aside-mono"> </span></div></div> <!></form> <p class="aside"> <!></p></div>`);function sr(e,t){O(t,!0);let n=M(()=>t.login.auth.docs),r=typeof location>`u`?``:location.origin,i=D(E(C(()=>t.login.auth.configure?.called??``))),a=M(()=>c(i).trim().length>0);function o(e){e.preventDefault(),c(a)&&!t.login.loading&&t.login.submit(`setup-configure`,{called:c(i)})}var l=or();let d;var m=f(l);{let e=M(()=>t.login.actor?.identifier??``);Fe(m,{get login(){return t.login},at:3,get mark(){return c(e)}})}var g=h(m,2),_=f(g),v=f(_);let y;var x=f(v),S=U(x,!0),w=h(x,2);A(w),q(w,!0);var k=h(w,2),j=U(k,!0);B(v);var P=h(v,2),F=f(P),L=U(F,!0),V=h(F,2),ee=U(V,!0);B(P),B(_);var H=h(_,2);{let e=M(()=>t.login.t(`submit`)),n=M(()=>t.login.t(`working`));Q(H,{get login(){return t.login},type:`submit`,get ready(){return c(a)},get busy(){return t.login.loading},get label(){return c(e)},get working(){return c(n)}})}B(g);var W=h(g,2),G=f(W),K=h(G),J=e=>{var r=ar(),i=U(r,!0);p(e=>{N(r,`href`,c(n)),R(i,e)},[()=>t.login.t(`docs`)]),s(e,r)};u(K,e=>{c(n)&&e(J)}),B(W),B(l),p((e,n,i,o)=>{d=X(l,1,`setup flow`,null,d,{"setup-ready":c(a)}),N(g,`aria-busy`,t.login.loading||void 0),y=X(v,1,`ledger-row ledger-step`,null,y,{"ledger-step-done":c(a)}),R(S,e),R(j,n),R(L,i),R(ee,r),R(G,`${o??``} `)},[()=>t.login.t(`called`),()=>t.login.t(`called_hint`),()=>t.login.t(`origin`),()=>t.login.t(`once`)]),b(`submit`,g,o),z(w,()=>c(i),e=>T(i,e)),s(e,l),I()}var cr=v(`<div class="over"><!> <!></div>`),lr=v(`<!> <div><!></div>`,1);function ur(e,t){O(t,!0);let n={signup:Kn,"signup-credentials":ir,"setup-configure":sr,"accept-invitation":we,identify:Yt,"prove-email":$t,"reset-password":tn,"first-factor":Wt,"email-code":Lt,"second-factor":dn,"backup-code":tt,enrol:$e,"confirm-email":En,"confirm-phone":An,"add-phone":bn,"awaiting-approval":Sn,"choose-organization":dt,consent:Mt,settled:mn},r=ce(C(()=>t.auth)),i=M(()=>n[r.prompt]),a=D(null),o=D(!1),l=D(0),m=()=>typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches;w(()=>{r.prompt;let e=C(()=>m()?0:c(a)?.offsetHeight??0);T(l,e,!0),T(o,e>0)}),S(()=>{let e=r.auth.surface??`challenge`,t=r.prompt===`settled`&&!!r.client?.name,n=document.querySelector(`.auth-col`);if(n){for(let t of[`challenge`,`grant`])n.classList.toggle(`surface-${t}`,t===e);document.querySelector(`.auth-id`)?.toggleAttribute(`hidden`,e!==`challenge`||t)}}),S(()=>{r.prompt;let e=c(a),t=C(()=>c(l));if(!e||!t)return;let n=e.offsetHeight;n!==t&&(e.classList.add(`gate-moving`),e.animate([{height:`${t}px`},{height:`${n}px`}],{duration:300,easing:`cubic-bezier(0.2, 0.8, 0.2, 1)`}).finished.catch(()=>{}).then(()=>e.classList.remove(`gate-moving`)));let i=setTimeout(()=>{T(o,!1)},500);return()=>clearTimeout(i)});var _=lr(),v=g(_);ve(v,{get login(){return r}});var y=h(v,2);let b;var x=f(y);d(x,()=>r.prompt,e=>{var t=L(),n=g(t),a=e=>{var t=L(),n=g(t);Y(n,()=>c(i),(e,t)=>{t(e,{get login(){return r}})}),s(e,t)},o=e=>{var t=cr(),n=f(t);{let e=M(()=>r.t(`halted`)),t=M(()=>r.t(`halted_lede`));$(n,{get login(){return r},tone:`bad`,get title(){return c(e)},get lede(){return c(t)}})}var i=h(n,2);{let e=M(()=>r.t(`start_over`)),t=M(()=>r.t(`working`));Q(i,{get login(){return r},quiet:!0,get label(){return c(e)},get working(){return c(t)},get busy(){return r.loading},onclick:()=>r.startOver()})}B(t),s(e,t)};u(n,e=>{c(i)?e(a):e(o,-1)}),s(e,t)}),B(y),H(y,e=>T(a,e),()=>c(a)),p(()=>b=X(y,1,`gate`,null,b,{"gate-enter":c(o)})),s(e,_),I()}var dr=document.getElementById(`login`);if(dr){let e=JSON.parse(dr.dataset.auth);dr.replaceChildren(),y(ur,{target:dr,props:{auth:e}})}
4
+ //# sourceMappingURL=login-CNs1UpxJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-CNs1UpxJ.js","names":["root","root","$.state","$.proxy","$.get","root","$.from_html","root_1","$.prop","$.derived","$.child","$.sibling","$.clsx","$.get","$.delegate","root","$.from_html","root_1","root_2","root_3","$.prop","$.derived","$.child","$.sibling","$.only_child","$.set_text","$.first_child","$.set_class","$.get","root","$.from_html","root_1","root_2","$.derived","$.first_child","$.get","$.only_child","$.clsx","$.sibling","$.child","$.delegate","root","$.from_html","root_1","$.prop","$.derived","$.comment","$.first_child","$.only_child","$.set_text","$.get","root","$.from_html","root_1","$.state","$.derived","$.get","$.first_child","$.sibling","$.child","$.only_child","$.set","root","$.from_html","$.child","$.only_child","$.sibling","$.delegate","root","$.from_html","root_1","$.comment","$.first_child","$.set_attribute","$.only_child","$.set_text","root","$.from_html","root_1","$.prop","$.derived","$.get","$.only_child","$.set_class","$.set_attribute","root","$.from_html","root_1","$.prop","$.derived","$.first_child","$.child","$.only_child","$.sibling","$.get","$.set_class","root","$.from_html","root_1","root_2","$.prop","$.state","$.derived","$.comment","$.first_child","$.child","$.get","$.sibling","$.only_child","$.set_text","root","$.from_html","root_1","root_2","root_3","root_4","root_5","root_6","root_7","root_8","root_9","root_10","root_11","root_12","$.noop","$.child","$.sibling","$.derived","$.get","$.proxy","$.state","$.first_child","$.only_child","$.set_text","$.set_class","$.to_array","$.set","$.delegate","root","$.from_html","$.state","$.derived","$.get","$.first_child","$.sibling","$.child","$.only_child","$.set","root_1","$.from_html","root_2","root_3","root_4","root_5","$.prop","$.child","$.sibling","$.only_child","$.set_text","root","root","$.from_html","root_1","$.state","$.derived","$.first_child","$.get","$.sibling","$.child","$.only_child","$.set_attribute","$.delegate","root","$.from_html","root_1","$.comment","$.first_child","$.set_attribute","$.only_child","$.set_text","root","$.from_html","root_1","root_2","root_3","root_4","root_5","root_6","root_7","root_8","root_9","root_10","$.derived","$.get","$.first_child","$.child","$.sibling","$.only_child","$.set_text","$.to_array","$.index","root","$.from_html","$.state","$.derived","$.get","$.child","$.only_child","$.sibling","$.set","$.prop","$.state","$.derived","$.get","root","$.from_html","$.first_child","$.derived","$.get","$.sibling","root","$.from_html","$.derived","$.comment","$.first_child","$.get","root","$.from_html","$.derived","$.comment","$.first_child","$.child","$.only_child","$.sibling","$.set_text","$.get","root","$.from_html","root_1","$.state","$.derived","$.get","$.first_child","$.sibling","$.child","$.only_child","$.set","$.delegate","$.prop","$.derived","$.get","root","$.from_html","root_1","root_2","$.state","$.derived","$.get","$.first_child","$.sibling","$.child","$.only_child","$.set_text","$.set","root","$.from_html","root_1","root_2","$.derived","$.first_child","$.get","$.sibling","$.only_child","$.set_text","root","$.from_html","$.state","reset","$.derived","$.get","$.first_child","$.sibling","$.child","$.only_child","$.set","root","$.from_html","root_1","root_2","root_3","root_4","root_5","root_6","root_7","$.comment","$.first_child","$.only_child","$.set_text","$.derived","$.get","$.child","$.sibling","$.set","$.state","$.to_array","root","$.from_html","root_1","$.derived","$.get","$.child","$.sibling","root","$.from_html","root_1","root_2","$.prop","$.comment","$.first_child","$.derived","$.get","$.sibling","$.child","$.only_child","$.set_text","root","$.from_html","$.state","$.derived","$.get","$.first_child","$.sibling","$.child","$.only_child","$.set","root","$.from_html","$.first_child","$.derived","$.get","$.sibling","$.only_child","$.set_text","root","$.from_html","root_1","root_2","$.derived","$.get","$.first_child","$.sibling","$.only_child","$.set_text","root","$.from_html","root_1","root_2","$.derived","$.first_child","$.get","$.sibling","$.only_child","$.set_text","root","$.from_html","root_1","root_2","root_3","root_4","root_5","root_6","root_7","root_8","$.derived","$.get","$.state","$.proxy","$.child","$.sibling","$.only_child","$.set_class","$.set","$.set_text","$.delegate","root","$.from_html","root_1","$.derived","$.get","$.state","$.child","$.sibling","$.to_array","$.only_child","$.set","$.set_text","$.first_child","$.set_class","$.delegate","root","$.from_html","root_1","$.derived","$.state","$.proxy","$.get","$.child","$.sibling","$.only_child","$.set_class","$.set","$.from_html","SignupCredentials","SetupConfigure","AcceptInvitation","ProveEmail","ResetPassword","FirstFactor","EmailCode","SecondFactor","BackupCode","ConfirmEmail","ConfirmPhone","AddPhone","AwaitingApproval","ChooseOrganization","$.derived","$.state","$.get","$.first_child","$.sibling","$.child","$.comment","$.set","$.set_class","enrol","available","refused","autofillable","settle","assert","append","get","html","if_block","key","child","template_effect","delegate","sibling","first_child","delegated","from_html","mount","event","index","user_effect","untrack","user_pre_effect","set","proxy","state","push","clsx","remove_input_defaults","noop","user_derived","set_attribute","to_array","prop","pop","comment","set_text","bind_value","reset","set_value","initials","bind_this","only_child","onMount","bind_checked","initial","autofocus","each","component","set_class","PLACEHOLDER","interpolate","values","text","name","whole","translator","found","source","root$34","UNNAVIGABLE","navigable","location","csrf","send","response","url","body","createLogin","options","auth","loading","failed","last","dispatch","quiet","method","held","updates","root$33","root_1$25","Action","$$props","busy","ready","working","plain","fit","grow","onclick","type","shown","classes","button","node","consequent","span","$$anchor","$$render","$$args","root$32","root_1$24","root_2$13","root_3$6","Head","lede","cap","tone","running","div","span_1","h1","text_1","node_1","consequent_1","fragment","em","text_2","node_2","consequent_2","p","text_3","root$31","root_1$23","root_2$12","Warnings","messages","message","div_1","$0","$1","root$30","root_1$22","Hint","hint","root$29","root_1$21","Accept_invitation","password","invitation","minimum","valid","onsubmit","form","label","input","label_1","input_1","label_2","span_2","input_2","node_3","$$value","root$28","Identified","root$27","root_1$20","TenantMark","img","alternate","root$26","root_1$19","Steps","steps","nav","step","place","root$25","root_1$18","SignupHead","mark","tenant","signingUp","alternate_1","root$24","root_1$17","root_2$11","PasskeyButton","enrolling","params","unusable","offered","start","asked","offer","credential","error","p_1","root$23","root_1$16","root_2$10","root_3$5","root_4$5","root_5$5","root_6$4","root_7$4","root_8$3","root_9$2","root_10$2","root_11$1","root_12$1","Enrol","codeForm","complete","turnOn","submitted","entered","enrolment","otp","passkeys","codes","offers","secured","issued","sendable","passkeyable","kept","copied","anything","row","code","origin","host","saved","lines","copy","done","fragment_1","node_5","div_2","classes_1","node_6","fragment_2","div_3","a","div_4","span_3","text_4","node_7","node_8","consequent_3","div_5","classes_2","span_4","text_5","span_5","text_6","node_9","node_10","factor","$$array","$$item","div_6","classes_3","span_6","text_7","node_11","consequent_4","span_7","text_8","consequent_5","fragment_3","span_8","text_9","node_12","alternate_2","fragment_4","span_9","text_10","node_13","node_14","consequent_8","div_7","classes_4","span_10","text_11","node_15","consequent_6","fragment_5","ol","li","text_12","span_11","text_13","div_8","text_14","a_1","text_15","$2","consequent_7","span_12","text_16","alternate_3","span_13","text_17","form_1","node_16","consequent_9","span_14","text_18","node_17","root$22","Backup_code","token","root_1$15","root_2$9","root_3$4","root_4$4","root_5$4","Person","signOut","root$21","root_1$14","Choose_organization","chosen","organizations","client","choose","organization","ul","root$20","root_1$13","ClientMark","CONSEQUENTIAL","consequential","scope","ranked","hot","rest","entry","scopes","root$19","root_1$12","root_2$8","root_3$3","root_4$3","root_5$3","root_6$3","root_7$3","root_8$2","root_9$1","root_10$1","root_11","root_12","root_13","Consent","audience","details","links","node_4","description","li_1","$$array_1","li_2","resource","ul_1","li_3","dl","detail","value","$$array_2","dt","dd","$$array_3","root$18","CodeForm","submit","Resend","sent","resend","root$17","Email_code","root$16","ProviderButtons","providers","provider","root$15","Otherwise","passkey","root$14","root_1$11","First_factor","offersPassword","emailing","PromptHeader","title","root$13","root_1$10","root_2$7","Identify","identifier","live","autofill","root$12","root_1$9","root_2$6","Prove_email","inbox","root$11","Reset_password","reset$1","root$10","root_1$8","root_2$5","root_3$2","root_4$2","root_5$2","root_6$2","root_7$2","Second_factor","help","stuck","recovery","trust","remember","useApp","methods","codeFactors","approval","approving","passkeyReady","asking","why","timer","stopped","check","fragment_6","fragment_9","node_18","node_19","to","fragment_10","node_20","consequent_11","fragment_11","node_21","consequent_10","node_22","consequent_12","node_23","consequent_13","node_24","root$9","root_1$7","Settled","root$8","root_1$6","root_2$4","ConfirmHead","h2","root$7","Add_phone","phone","root$6","Awaiting_approval","root$5","root_1$5","root_2$3","Confirm_email","confirmation","linked","root$4","root_1$4","root_2$2","Confirm_phone","BATCH","encoder","solved","leadingZeros","bytes","digest","count","byte","search","nonce","offset","bits","solve","work","counter","root$3","root_1$3","root_2$1","root_3$1","root_4$1","root_5$1","root_6$1","root_7$1","root_8$1","Signup","signup","asks","fixed","firstRun","docs","nickname","email","person","proving","filled","needs","field","proof","label_3","input_3","label_4","classes_5","input_4","root$2","root_1$2","root_2","root_3","root_4","root_5","root_6","root_7","root_8","root_9","root_10","Signup_credentials","credentials","submitLabel","rows","way","choosing","typing","passkeying","creating","long","matched","createPasskey","button_1","p_2","p_3","p_4","root$1","root_1$1","Setup_configure","called","$3","root","root_1","Login","prompts","login","Prompt","frame","entering","leaving","still","height","surface","paired","column","from","Prompt_1","target"],"sources":["../../../../server/app/frontend/lib/copy.js","../../../../server/app/frontend/lib/root.js","../../../../server/app/frontend/lib/login.svelte.js","../../../../server/app/frontend/shared/Action.svelte","../../../../server/app/frontend/shared/Head.svelte","../../../../server/app/frontend/shared/Warnings.svelte","../../../../server/app/frontend/shared/Hint.svelte","../../../../server/app/frontend/prompts/accept-invitation.svelte","../../../../server/app/frontend/shared/Identified.svelte","../../../../server/app/frontend/shared/TenantMark.svelte","../../../../server/app/frontend/shared/Steps.svelte","../../../../server/app/frontend/shared/SignupHead.svelte","../../../../server/app/frontend/shared/PasskeyButton.svelte","../../../../server/app/frontend/prompts/enrol.svelte","../../../../server/app/frontend/prompts/backup-code.svelte","../../../../server/app/frontend/shared/Person.svelte","../../../../server/app/frontend/prompts/choose-organization.svelte","../../../../server/app/frontend/shared/ClientMark.svelte","../../../../server/app/frontend/lib/scopes.js","../../../../server/app/frontend/prompts/consent.svelte","../../../../server/app/frontend/shared/CodeForm.svelte","../../../../server/app/frontend/shared/Resend.svelte","../../../../server/app/frontend/prompts/email-code.svelte","../../../../server/app/frontend/shared/ProviderButtons.svelte","../../../../server/app/frontend/shared/Otherwise.svelte","../../../../server/app/frontend/prompts/first-factor.svelte","../../../../server/app/frontend/shared/PromptHeader.svelte","../../../../server/app/frontend/prompts/identify.svelte","../../../../server/app/frontend/prompts/prove-email.svelte","../../../../server/app/frontend/prompts/reset-password.svelte","../../../../server/app/frontend/prompts/second-factor.svelte","../../../../server/app/frontend/prompts/settled.svelte","../../../../server/app/frontend/shared/ConfirmHead.svelte","../../../../server/app/frontend/prompts/add-phone.svelte","../../../../server/app/frontend/prompts/awaiting-approval.svelte","../../../../server/app/frontend/prompts/confirm-email.svelte","../../../../server/app/frontend/prompts/confirm-phone.svelte","../../../../server/app/frontend/lib/work.js","../../../../server/app/frontend/prompts/signup.svelte","../../../../server/app/frontend/prompts/signup-credentials.svelte","../../../../server/app/frontend/prompts/setup-configure.svelte","../../../../server/app/frontend/Login.svelte","../../../../server/app/frontend/entrypoints/login.js"],"sourcesContent":["const PLACEHOLDER = /%\\{(\\w+)\\}/g;\n\nfunction interpolate(text, values) {\n if (!values) return text;\n\n return text.replace(PLACEHOLDER, (whole, name) =>\n Object.hasOwn(values, name) ? String(values[name]) : whole,\n );\n}\n\nexport function translator(source) {\n return (key, values) => {\n const found = source()?.[key];\n\n return typeof found === \"string\" ? interpolate(found, values) : \"\";\n };\n}\n","export const root =\n document.querySelector('meta[name=\"masks-root\"]')?.content ?? \"\";\n","import { translator } from \"./copy.js\";\nimport { root } from \"./root.js\";\n\nconst UNNAVIGABLE = new Set([\n \"javascript:\",\n \"data:\",\n \"vbscript:\",\n \"file:\",\n \"blob:\",\n]);\n\nconst navigable = (location) => {\n if (typeof location !== \"string\" || location === \"\") return false;\n\n try {\n return !UNNAVIGABLE.has(new URL(location, window.location.href).protocol);\n } catch {\n return false;\n }\n};\n\nconst csrf = () =>\n document.querySelector('meta[name=\"csrf-token\"]')?.content ?? \"\";\n\nasync function send(url, method, body) {\n const response = await fetch(url, {\n method,\n credentials: \"same-origin\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n \"X-CSRF-Token\": csrf(),\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n if (!response.ok && response.status !== 422 && response.status !== 429) {\n throw new Error(`login failed: ${response.status}`);\n }\n\n return response.json();\n}\n\nexport function createLogin(initial, options = {}) {\n const url = options.url ?? `${root}/login`;\n\n let auth = $state(initial);\n let loading = $state(false);\n let failed = $state(false);\n let last = null;\n\n async function dispatch(method, body, { quiet = false } = {}) {\n if (quiet && loading) return auth;\n\n if (!quiet) {\n loading = true;\n failed = false;\n last = [method, body];\n }\n\n try {\n const held = await send(\n url,\n method,\n auth.rid ? { rid: auth.rid, ...body } : body,\n );\n\n if (quiet && loading) return auth;\n\n auth = held;\n\n if (navigable(auth.redirectTo)) {\n window.location.assign(auth.redirectTo);\n }\n\n return auth;\n } catch {\n if (!quiet) failed = true;\n\n return auth;\n } finally {\n if (!quiet) loading = false;\n }\n }\n\n const t = translator(() => auth.copy);\n\n return {\n t,\n get auth() {\n return auth;\n },\n get loading() {\n return loading;\n },\n get failed() {\n return failed;\n },\n get prompt() {\n return auth.prompt;\n },\n get backupCodes() {\n return auth.backupCodes;\n },\n get rememberable() {\n return auth.rememberable;\n },\n get consent() {\n return auth.consent;\n },\n get client() {\n return auth.client;\n },\n get actor() {\n return auth.actor;\n },\n warns(key) {\n return (auth.warnings ?? []).includes(key);\n },\n submit(event, updates = {}) {\n return dispatch(\"POST\", { event, ...updates });\n },\n startOver() {\n return dispatch(\"DELETE\");\n },\n poll(event, updates = {}) {\n return dispatch(\"POST\", { event, ...updates }, { quiet: true });\n },\n retry() {\n return last ? dispatch(...last) : Promise.resolve(auth);\n },\n };\n}\n","<script>\nlet {\n login,\n busy = false,\n ready = true,\n label,\n working = null,\n quiet = false,\n plain = false,\n fit = false,\n grow = false,\n onclick = null,\n type = \"button\",\n} = $props();\n\nconst held = $derived(busy || login.loading);\nconst shown = $derived(busy && working ? working : label);\n\nconst classes = $derived(\n [\n \"action\",\n quiet && \"action-quiet\",\n plain && \"action-plain\",\n fit && \"action-fit\",\n grow && \"action-grow\",\n busy && \"action-busy\",\n ]\n .filter(Boolean)\n .join(\" \"),\n);\n</script>\n\n<button\n {type}\n {onclick}\n class={classes}\n disabled={!ready || held}\n aria-busy={busy || undefined}\n>\n {#if busy}\n <span class=\"spinner action-mark\"></span>\n {/if}\n {shown}\n</button>\n","<script>\nlet {\n login,\n title,\n name = null,\n lede = null,\n cap = null,\n tone = null,\n busy = false,\n} = $props();\n\nconst running = $derived(tone === null && (busy || login.loading));\n</script>\n\n<div class=\"prompt-head\">\n <span\n class=\"pulse\"\n class:pulse-on={running}\n class:pulse-done={tone === \"done\"}\n class:pulse-bad={tone === \"bad\"}\n aria-hidden=\"true\"\n ></span>\n\n {#if cap}\n <span class=\"record-cap\">{cap}</span>\n {/if}\n\n <h1 class=\"prompt-title\">\n {title}{#if name}&nbsp;<em>{name}</em>{/if}\n </h1>\n\n {#if lede}\n <p class=\"prompt-lede\">{lede}</p>\n {/if}\n</div>\n","<script>\nlet { login } = $props();\n\nconst messages = $derived((login.auth.messages ?? []).filter((message) => !message.field));\n</script>\n\n{#each messages as message (message.key)}\n <div class={message.tone} role=\"alert\">{message.text}</div>\n{/each}\n\n{#if login.failed}\n <div class=\"note note-warn recover\" role=\"alert\">\n <span>{login.t(\"unreachable\")}</span>\n\n <button\n type=\"button\"\n class=\"textlink\"\n disabled={login.loading}\n onclick={() => login.retry()}\n >\n {login.loading ? login.t(\"checking\") : login.t(\"try_again\")}\n </button>\n </div>\n{/if}\n","<script>\nlet { login, field, hint = null } = $props();\n\nconst message = $derived((login.auth.messages ?? []).find((held) => held.field === field));\n</script>\n\n{#if message}\n <span class=\"field-hint field-hint-bad\" role=\"alert\">{message.text}</span>\n{:else if hint}\n <span class=\"field-hint\">{hint}</span>\n{/if}\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Hint from \"../shared/Hint.svelte\";\nimport Head from \"../shared/Head.svelte\";\n\nlet { login } = $props();\n\nlet password = $state(\"\");\n\nconst invitation = $derived(login.auth.invitation ?? {});\nconst minimum = $derived(invitation.minimum ?? 8);\n\nconst valid = $derived(password.length >= minimum);\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (valid && !login.loading) {\n login.submit(\"accept-invitation\", { password });\n }\n}\n</script>\n\n<Head\n {login}\n title={login.t(\"title\")}\n lede={invitation.invitedBy\n ? login.t(\"invited_by\", { nickname: invitation.invitedBy })\n : null}\n/>\n\n<form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"account\")}</span>\n <input\n type=\"text\"\n class=\"control\"\n autocomplete=\"username\"\n value={invitation.nickname ?? \"\"}\n readonly\n />\n </label>\n\n {#if invitation.email}\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"email\")}</span>\n <input type=\"email\" class=\"control\" value={invitation.email} readonly />\n </label>\n {/if}\n\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"password\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"password\"\n name=\"password\"\n class=\"control\"\n autocomplete=\"new-password\"\n autofocus\n bind:value={password}\n />\n <Hint {login} field=\"password\" hint={login.t(\"hint\", { minimum })} />\n </label>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"working\")}\n />\n</form>\n","<script>\nlet { login } = $props();\n</script>\n\n<div class=\"whom\">\n <span class=\"whom-name\">{login.auth.identifier}</span>\n\n <button\n type=\"button\"\n class=\"textlink\"\n disabled={login.loading}\n onclick={() => login.startOver()}\n >\n {login.t(\"not_you\")}\n </button>\n</div>\n","<script>\nimport { initial } from \"../lib/initial.js\";\n\nlet { tenant } = $props();\n</script>\n\n{#if tenant?.logo}\n <img src={tenant.logo} alt=\"\" class=\"auth-mark auth-mark-logo\" />\n{:else}\n <span class=\"auth-mark\" aria-hidden=\"true\">{initial(tenant?.name ?? \"\")}</span>\n{/if}\n","<script>\nlet { login, steps = [], at } = $props();\n</script>\n\n<nav class=\"tabset\" aria-label={login.t(\"tabs\")}>\n {#each steps as step, index (step)}\n {@const place = index + 1}\n <span\n class=\"tabset-tab\"\n class:tabset-done={place < at}\n class:tabset-now={place === at}\n aria-current={place === at ? \"step\" : undefined}>\n {login.t(`tab_${step}`)}\n </span>\n {/each}\n</nav>\n","<script>\nimport TenantMark from \"./TenantMark.svelte\";\nimport { initial } from \"../lib/initial.js\";\nimport Head from \"./Head.svelte\";\nimport Steps from \"./Steps.svelte\";\n\nlet { login, at, mark = \"\" } = $props();\n\nconst tenant = $derived(login.auth.tenant?.name ?? \"\");\nconst signingUp = $derived(login.auth.signingUp ?? { steps: [] });\n\n</script>\n\n<div class=\"auth-pair\">\n <span class=\"auth-mark auth-mark-client\" class:auth-mark-pending={!mark.trim()} aria-hidden=\"true\"\n >{initial(mark)}</span>\n <span class=\"auth-wire\"></span>\n {#if signingUp.firstRun}\n <img src=\"/masks-public/icon.svg\" alt=\"\" class=\"auth-mark auth-mark-rose\" />\n {:else}\n <TenantMark tenant={login.auth.tenant} />\n {/if}\n</div>\n\n{#if signingUp.firstRun}\n <Head {login} title={login.t(\"setup_title\")} name={tenant} cap={login.t(\"setup_cap\")} />\n{:else}\n <Head {login} title={login.t(\"signup_title\")} name={tenant} />\n{/if}\n\n<Steps {login} steps={signingUp.steps} at={at ?? signingUp.steps.length} />\n","<script>\nimport Action from \"./Action.svelte\";\nimport { assert, available, enrol, refused } from \"../lib/passkey.js\";\n\nlet { login, enrolling = false, label = null, params = {} } = $props();\n\nconst DELIBERATE = 500;\n\nlet busy = $state(false);\nlet unusable = $state(null);\n\nconst offered = $derived((enrolling || Boolean(login.auth.passkey?.offered)) && available());\n\nasync function start() {\n busy = true;\n unusable = null;\n\n let asked = null;\n\n try {\n const offer = await login.submit(enrolling ? \"enrol:passkey-challenge\" : \"passkey:challenge\", {});\n const options = enrolling ? offer.enrolment?.passkeys?.options : offer.passkey?.options;\n\n if (!options) {\n unusable = login.t(\"passkey_unoffered\");\n return;\n }\n\n asked = performance.now();\n\n const credential = enrolling ? await enrol(options) : await assert(options);\n\n await login.submit(enrolling ? \"enrol:passkey\" : \"passkey:verify\", { ...params, passkey: credential });\n } catch (error) {\n if (!refused(error) || (asked !== null && performance.now() - asked < DELIBERATE)) {\n unusable = login.t(\"passkey_unusable\");\n }\n } finally {\n busy = false;\n }\n}\n</script>\n\n{#if offered}\n <div class=\"flow-tight\">\n <Action\n {login}\n quiet\n {busy}\n label={label ?? login.t(\"use_passkey\")}\n working={login.t(\"waiting_for_passkey\")}\n onclick={start}\n />\n\n {#if busy}\n <p class=\"aside\">{login.t(\"passkey_hint\")}</p>\n {/if}\n\n {#if unusable}\n <p class=\"aside aside-bad\" role=\"alert\">{unusable}</p>\n {/if}\n </div>\n{/if}\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Identified from \"../shared/Identified.svelte\";\nimport SignupHead from \"../shared/SignupHead.svelte\";\nimport PasskeyButton from \"../shared/PasskeyButton.svelte\";\nimport { available } from \"../lib/passkey.js\";\n\nlet { login } = $props();\n\nconst enrolment = $derived(login.auth.enrolment ?? {});\nconst otp = $derived(enrolment.otp ?? {});\nconst passkeys = $derived(enrolment.passkeys ?? { count: 0 });\nconst codes = $derived(enrolment.backupCodes ?? {});\nconst signingUp = $derived(Boolean(login.auth.signingUp));\nconst offers = $derived(enrolment.offers ?? { otp: true, passkey: true, backupCodes: true });\nconst secured = $derived(!enrolment.required);\nconst issued = $derived(codes.issued ?? []);\nconst sendable = $derived(Object.entries(enrolment.codes ?? {}));\n\nconst passkeyable = $derived(offers.passkey && available());\n\nlet entered = $state({ \"enrol:otp\": \"\", \"enrol:code\": \"\" });\nlet kept = $state(false);\nlet copied = $state(false);\n\nconst ready = $derived(secured && (issued.length === 0 || kept));\nconst anything = $derived(\n Boolean(otp.enabled || passkeys.count > 0 || sendable.some(([, row]) => row.enabled)),\n);\nconst lede = $derived(enrolment.required ? login.t(\"lede\") : login.t(\"lede_optional\"));\n\nconst complete = (name) => entered[name].replace(/\\D/g, \"\").length === 6;\n\nfunction turnOn(submitted, name) {\n submitted.preventDefault();\n\n if (!complete(name) || login.loading) return;\n\n const code = entered[name];\n entered[name] = \"\";\n\n login.submit(name, { code });\n}\n\nconst origin = typeof location === \"undefined\" ? \"\" : location.origin;\nconst host = typeof location === \"undefined\" ? \"masks\" : location.hostname;\n\nconst saved = $derived.by(() => {\n const lines = [\n login.t(\"backup_codes_file\", { account: login.actor?.identifier ?? \"\", origin }),\n login.t(\"backup_codes_hint\"),\n \"\",\n ...issued,\n \"\",\n ];\n\n return `data:text/plain;charset=utf-8,${encodeURIComponent(lines.join(\"\\n\"))}`;\n});\n\nasync function copy() {\n try {\n await navigator.clipboard.writeText(issued.join(\"\\n\"));\n copied = true;\n } catch {\n copied = false;\n }\n}\n\nfunction done(event) {\n event.preventDefault();\n\n if (ready && !login.loading) login.submit(\"enrol:done\", { kept });\n}\n</script>\n\n{#snippet codeForm(name)}\n <form class=\"flow-tight\" onsubmit={(submitted) => turnOn(submitted, name)} aria-busy={login.loading || undefined}>\n <input\n type=\"text\"\n name=\"code\"\n class=\"control control-code\"\n inputmode=\"numeric\"\n pattern=\"[0-9 ]*\"\n autocomplete=\"one-time-code\"\n maxlength=\"7\"\n spellcheck=\"false\"\n aria-label={login.t(\"code\")}\n placeholder={login.t(\"code\")}\n bind:value={entered[name]}\n />\n\n <Action {login} type=\"submit\" quiet ready={complete(name)} label={login.t(\"turn_on\")} />\n </form>\n{/snippet}\n\n<div class=\"flow\" class:setup={signingUp} class:setup-ready={signingUp && ready}>\n {#if signingUp}\n <SignupHead {login} at={2} mark={login.actor?.identifier ?? \"\"} />\n\n <p class=\"aside\">{lede}</p>\n {:else}\n <Head\n {login}\n title={login.t(\"title\")}\n {lede}\n />\n\n <Identified {login} />\n {/if}\n\n <div class=\"slab\">\n {#if offers.otp}\n <div class=\"ledger-row ledger-step\" class:ledger-step-done={otp.enabled}>\n <span class=\"ledger-label\">{login.t(\"otp\")}</span>\n\n {#if otp.enabled}\n <span class=\"ledger-value\">{login.t(\"otp_on\")}</span>\n {:else}\n <div class=\"enrol\">\n <a class=\"enrol-qr\" href={otp.uri} aria-label={login.t(\"open\")}>{@html otp.qr}</a>\n <div class=\"enrol-key\">\n <span class=\"field-hint\">{login.t(\"scan_hint\")}</span>\n <span class=\"aside-mono enrol-secret\">{otp.secret}</span>\n </div>\n </div>\n\n {@render codeForm(\"enrol:otp\")}\n {/if}\n </div>\n {/if}\n\n {#if passkeyable}\n <div class=\"ledger-row ledger-step\" class:ledger-step-done={passkeys.verified}>\n <span class=\"ledger-label\">{login.t(\"passkeys\")}</span>\n <span class=\"field-hint\">\n {passkeys.count > 0\n ? login.t(\"passkeys_some\", { count: passkeys.count })\n : login.t(\"passkeys_none\")}\n </span>\n\n <PasskeyButton\n {login}\n enrolling\n label={passkeys.count > 0 ? login.t(\"add_another_passkey\") : login.t(\"add_passkey\")}\n />\n </div>\n {/if}\n\n {#each sendable as [factor, row] (factor)}\n <div class=\"ledger-row ledger-step\" class:ledger-step-done={row.enabled}>\n <span class=\"ledger-label\">{login.t(`codes_${factor}`)}</span>\n\n {#if row.enabled}\n <span class=\"ledger-value\">{login.t(\"otp_on\")}</span>\n {:else if row.sent}\n <span class=\"field-hint\">{login.t(\"sent_to\", { to: row.to })}</span>\n\n {@render codeForm(\"enrol:code\")}\n {:else}\n <span class=\"field-hint\">{login.t(`codes_${factor}_hint`, { to: row.to })}</span>\n\n <Action\n {login}\n quiet\n label={login.t(\"send_code\")}\n onclick={() => login.submit(\"enrol:code-send\", { factor })}\n />\n {/if}\n </div>\n {/each}\n\n {#if offers.backupCodes}\n <div class=\"ledger-row ledger-step\" class:ledger-step-done={issued.length > 0 || codes.remaining > 0}>\n <span class=\"ledger-label\">{login.t(\"backup_codes\")}</span>\n\n {#if issued.length > 0}\n <ol class=\"codes\">\n {#each issued as held (held)}\n <li class=\"aside-mono\">{held}</li>\n {/each}\n </ol>\n <span class=\"field-hint\">{login.t(\"backup_codes_hint\")}</span>\n <div class=\"codes-actions\">\n <button type=\"button\" class=\"textlink\" onclick={copy}>\n {copied ? login.t(\"copied\") : login.t(\"copy\")}\n </button>\n <a class=\"textlink\" href={saved} download=\"backup-codes-{host}.txt\">{login.t(\"download\")}</a>\n </div>\n {:else if codes.remaining > 0}\n <span class=\"field-hint\">{login.t(\"backup_codes_left\", { count: codes.remaining })}</span>\n {:else}\n <span class=\"field-hint\">{login.t(\"backup_codes_waiting\")}</span>\n {/if}\n </div>\n {/if}\n </div>\n\n <form class=\"flow\" onsubmit={done}>\n {#if issued.length > 0}\n <label class=\"check\">\n <input type=\"checkbox\" name=\"kept\" required bind:checked={kept} />\n <span>{login.t(\"kept\")}</span>\n </label>\n {/if}\n\n <Action\n {login}\n type=\"submit\"\n {ready}\n busy={login.loading}\n label={anything || enrolment.required ? login.t(\"done\") : login.t(\"skip\")}\n working={login.t(\"working\")}\n />\n </form>\n</div>\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Identified from \"../shared/Identified.svelte\";\n\nlet { login } = $props();\n\nlet code = $state(\"\");\n\nconst valid = $derived(code.trim().length >= 8);\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (!valid || login.loading) return;\n\n const entered = code;\n code = \"\";\n\n login.submit(\"backup\", { backup_code: entered });\n}\n</script>\n\n<Head {login} title={login.t(\"title\")} />\n\n<Identified {login} />\n\n<form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"code\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"text\"\n name=\"backup_code\"\n class=\"control control-mono\"\n autocomplete=\"one-time-code\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n autofocus\n bind:value={code}\n />\n <span class=\"field-hint\">{login.t(\"hint\")}</span>\n </label>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"checking\")}\n />\n</form>\n\n<Action\n {login}\n plain\n label={login.t(\"use_authenticator\")}\n onclick={() => login.submit(\"use-authenticator\", {})}\n/>\n","<script module>\nimport { root } from \"../lib/root.js\";\n\nconst token = document.querySelector('meta[name=\"csrf-token\"]')?.content ?? \"\";\n</script>\n\n<script>\nlet { person, signOut = null } = $props();\n</script>\n\n<div class=\"person\">\n <img src={person.avatar} width=\"44\" height=\"44\" alt=\"\" class=\"avatar person-avatar\" />\n\n <div class=\"person-who\">\n <span class=\"person-name\">{person.name}</span>\n\n {#if person.details.length || person.note}\n <span class=\"person-sub\">\n {person.details.join(\" · \")}\n {#if person.note}\n <span class=\"person-note\">{person.note}</span>\n {/if}\n </span>\n {/if}\n\n {#if person.role}\n <span class=\"person-role\">{person.role}</span>\n {/if}\n </div>\n\n {#if signOut}\n <form class=\"signout\" method=\"post\" action={`${root}/logout`}>\n <input type=\"hidden\" name=\"authenticity_token\" value={token} />\n <button type=\"submit\" class=\"textlink\">{signOut}</button>\n </form>\n {/if}\n</div>\n","<script>\nimport { initials } from \"../lib/initial.js\";\nimport Head from \"../shared/Head.svelte\";\nimport Person from \"../shared/Person.svelte\";\n\nlet { login } = $props();\n\nlet chosen = $state(null);\n\nconst organizations = $derived(login.auth.organizations ?? []);\nconst client = $derived(login.client?.name ?? \"\");\n\nasync function choose(organization) {\n chosen = organization.key;\n\n try {\n await login.submit(\"organization\", { organization: organization.key });\n } finally {\n chosen = null;\n }\n}\n</script>\n\n<Head\n {login}\n title={client ? login.t(\"title_to\", { client }) : login.t(\"title\")}\n lede={login.t(\"lede\")}\n/>\n\n{#if login.auth.person}\n <Person person={login.auth.person} signOut={login.t(\"sign_out\")} />\n{/if}\n\n<ul class=\"org-picks\" aria-label={login.t(\"title\")}>\n {#each organizations as organization (organization.key)}\n <li>\n <button\n type=\"button\"\n class=\"org-pick\"\n disabled={login.loading}\n aria-busy={chosen === organization.key || undefined}\n aria-label={login.t(\"as\", { organization: organization.name, role: organization.role })}\n onclick={() => choose(organization)}\n >\n <span class=\"org-pick-mark\" aria-hidden=\"true\">{initials(organization.name)}</span>\n <span class=\"org-pick-name\">{organization.name}</span>\n <span class=\"org-pick-role\">{chosen === organization.key ? login.t(\"working\") : organization.role}</span>\n </button>\n </li>\n {/each}\n</ul>\n","<script>\nimport { initial } from \"../lib/initial.js\";\n\nlet { client } = $props();\n</script>\n\n{#if client?.logo}\n <img src={client.logo} alt=\"\" class=\"auth-mark auth-mark-client auth-mark-logo\" referrerpolicy=\"no-referrer\" />\n{:else}\n <span class=\"auth-mark auth-mark-client\" aria-hidden=\"true\">{initial(client?.name)}</span>\n{/if}\n","const CONSEQUENTIAL =\n /(:write|:command|:exec|:delete|:admin)$|^offline_access$|^masks:delegate:./;\n\nfunction consequential(scope) {\n return CONSEQUENTIAL.test(String(scope));\n}\n\nexport function ranked(scopes) {\n const hot = [];\n const rest = [];\n\n for (const entry of scopes ?? []) {\n (consequential(entry[0]) ? hot : rest).push(entry);\n }\n\n return { hot, rest };\n}\n","<script>\nimport TenantMark from \"../shared/TenantMark.svelte\";\nimport Action from \"../shared/Action.svelte\";\nimport ClientMark from \"../shared/ClientMark.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Person from \"../shared/Person.svelte\";\nimport { ranked } from \"../lib/scopes.js\";\n\nlet { login } = $props();\n\nconst scopes = $derived(ranked(login.consent?.scopes ?? []));\nconst audience = $derived(login.consent?.audience ?? []);\nconst details = $derived(login.consent?.details ?? []);\nconst client = $derived(login.client?.name ?? \"\");\nconst links = $derived(\n [\n [\"site\", login.t(\"site\", { client })],\n [\"terms\", login.t(\"terms\")],\n [\"privacy\", login.t(\"privacy\")],\n ].filter(([key]) => login.client?.[key]),\n);\n\n</script>\n\n<div class=\"auth-pair\">\n <ClientMark client={login.client} />\n <span class=\"auth-wire\"></span>\n <TenantMark tenant={login.auth.tenant} />\n</div>\n\n<Head {login} title={login.t(\"title\", { client })} />\n\n{#if login.auth.person}\n <Person person={login.auth.person} signOut={login.t(\"sign_out\")} />\n{/if}\n\n<div class=\"slab\">\n <div class=\"ledger-row\">\n <span class=\"ledger-label\">{login.t(\"access\")}</span>\n\n {#if !scopes.hot.length && !scopes.rest.length}\n <p class=\"empty\">{login.t(\"no_access\")}</p>\n {/if}\n\n <ul class=\"grant-scopes\">\n {#each scopes.hot as [scope, description] (scope)}\n <li class=\"grant-scope grant-scope-hot\">\n <span>{description}</span>\n <span class=\"chip-key\">{scope}</span>\n </li>\n {/each}\n\n {#if scopes.hot.length && scopes.rest.length}\n <li class=\"grant-scope-split\"></li>\n {/if}\n\n {#each scopes.rest as [scope, description] (scope)}\n <li class=\"grant-scope\">\n <span>{description}</span>\n <span class=\"chip-key\">{scope}</span>\n </li>\n {/each}\n </ul>\n </div>\n\n {#if audience.length}\n <div class=\"ledger-row\">\n <span class=\"ledger-label\">{login.t(\"audience\")}</span>\n {#each audience as resource (resource)}\n <span class=\"ledger-value aside-mono\">{resource}</span>\n {/each}\n </div>\n {/if}\n\n {#if details.length}\n <div class=\"ledger-row\">\n <span class=\"ledger-label\">{login.t(\"details\")}</span>\n <ul class=\"grant-scopes\">\n {#each details as detail, index (index)}\n <li class=\"grant-scope grant-scope-hot grant-detail\">\n <span>{detail.label}</span>\n <span class=\"chip-key\">{detail.type}</span>\n {#if detail.fields.length}\n <dl class=\"grant-fields\">\n {#each detail.fields as [name, value] (name)}\n <dt>{name}</dt>\n <dd class=\"aside-mono\">{value}</dd>\n {/each}\n </dl>\n {/if}\n </li>\n {/each}\n </ul>\n </div>\n {/if}\n\n {#if login.client?.returnsTo}\n <div class=\"ledger-row\">\n <span class=\"ledger-label\">{login.t(\"returns_to\")}</span>\n <span class=\"ledger-value aside-mono\">{login.client.returnsTo}</span>\n </div>\n {/if}\n</div>\n\n{#if links.length}\n <p class=\"aside client-links\">\n {#each links as [key, label] (key)}\n <a class=\"textlink\" href={login.client[key]} rel=\"noopener noreferrer\" target=\"_blank\">{label}</a>\n {/each}\n </p>\n{/if}\n\n<div class=\"action-row\">\n <Action\n {login}\n grow\n busy={login.loading}\n label={login.t(\"allow\")}\n working={login.t(\"working\")}\n onclick={() => login.submit(\"consent\", { approve: \"yes\" })}\n />\n\n <Action\n {login}\n quiet\n fit\n label={login.t(\"deny\")}\n onclick={() => login.submit(\"decline\", {})}\n />\n</div>\n","<script>\nimport Action from \"./Action.svelte\";\n\nlet { login, event } = $props();\n\nlet code = $state(\"\");\n\nconst valid = $derived(code.replace(/\\D/g, \"\").length === 6);\n\nfunction submit() {\n if (!valid || login.loading) return;\n\n const entered = code;\n code = \"\";\n\n login.submit(event, { code: entered });\n}\n\nfunction onsubmit(submitted) {\n submitted.preventDefault();\n submit();\n}\n\n$effect(() => {\n if (valid) submit();\n});\n</script>\n\n<form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"code\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"text\"\n name=\"code\"\n class=\"control control-code\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n autocomplete=\"one-time-code\"\n maxlength=\"6\"\n spellcheck=\"false\"\n autofocus\n bind:value={code}\n />\n </label>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"checking\")}\n />\n</form>\n","<script>\nimport Action from \"./Action.svelte\";\n\nlet { login, event = \"confirm:resend\", ready = null } = $props();\n\nlet sent = $state(false);\n\nasync function resend() {\n await login.submit(event, {});\n sent = true;\n}\n</script>\n\n<Action\n {login}\n plain\n ready={ready ?? login.auth.confirmation?.resendable !== false}\n label={sent ? login.t(\"sent_again\") : login.t(\"send_again\")}\n onclick={resend}\n/>\n","<script>\nimport CodeForm from \"../shared/CodeForm.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Identified from \"../shared/Identified.svelte\";\nimport Resend from \"../shared/Resend.svelte\";\n\nlet { login } = $props();\n</script>\n\n<Head {login} title={login.t(\"title\")} lede={login.t(\"lede\", { identifier: login.identifier ?? \"\" })} />\n\n<Identified {login} />\n\n<CodeForm {login} event=\"email-code:verify\" />\n\n<Resend {login} event=\"email-code:send\" ready={login.auth.emailCode?.resendable !== false} />\n","<script>\nimport Action from \"./Action.svelte\";\n\nlet { login } = $props();\n\nconst providers = $derived(login.auth.providers ?? []);\n</script>\n\n{#if providers.length}\n <div class=\"providers\">\n {#each providers as provider (provider.key)}\n <Action\n {login}\n quiet\n label={login.t(\"continue_with\", { provider: provider.name })}\n onclick={() => login.submit(\"provider\", { provider: provider.key })}\n />\n {/each}\n </div>\n{/if}\n","<script>\nimport PasskeyButton from \"./PasskeyButton.svelte\";\nimport ProviderButtons from \"./ProviderButtons.svelte\";\nimport { available } from \"../lib/passkey.js\";\n\nlet { login } = $props();\n\nconst passkey = $derived(Boolean(login.auth.passkey?.offered) && available());\nconst providers = $derived((login.auth.providers ?? []).length > 0);\n</script>\n\n{#if passkey || providers}\n <div class=\"otherwise\">\n <span class=\"providers-rule\">{login.t(\"or\")}</span>\n\n <PasskeyButton {login} />\n\n <ProviderButtons {login} />\n </div>\n{/if}\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Identified from \"../shared/Identified.svelte\";\nimport Otherwise from \"../shared/Otherwise.svelte\";\n\nlet { login } = $props();\n\nlet password = $state(\"\");\n\nconst valid = $derived(password.length > 0);\nconst offersPassword = $derived(Boolean(login.auth.password?.offered));\nconst emailing = $derived(Boolean(login.auth.emailCode));\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (valid && !login.loading) {\n login.submit(\"password\", { password }).then(() => {\n password = \"\";\n });\n }\n}\n</script>\n\n<Head {login} title={offersPassword || !emailing ? login.t(\"title\") : login.t(\"title_code\")} />\n\n<Identified {login} />\n\n{#if offersPassword}\n<form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <div class=\"field\">\n <div class=\"field-line\">\n <label class=\"field-label\" for=\"password\">{login.t(\"password\")}</label>\n\n <button\n type=\"button\"\n class=\"textlink\"\n disabled={login.loading}\n onclick={() => login.submit(\"forgot-password\", {})}\n >\n {login.t(\"forgot\")}\n </button>\n </div>\n\n <!-- svelte-ignore a11y_autofocus -->\n <input\n id=\"password\"\n type=\"password\"\n name=\"password\"\n class=\"control\"\n autocomplete=\"current-password\"\n autofocus\n bind:value={password}\n />\n </div>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"checking\")}\n />\n</form>\n{/if}\n\n{#if emailing}\n <Action\n {login}\n quiet={offersPassword}\n label={offersPassword ? login.t(\"email_me\") : login.t(\"email_only\")}\n onclick={() => login.submit(\"email-code:send\", {})}\n />\n{/if}\n\n<Otherwise {login} />\n","<script>\nimport Head from \"./Head.svelte\";\n\nlet { login, tone = null } = $props();\n\nconst client = $derived(login.auth.client);\n\nconst title = $derived(\n client?.name\n ? login.t(\"heading_to\", { client: client.name })\n : login.t(\"heading\"),\n);\n</script>\n\n<Head {login} {title} {tone} />\n","<script>\nimport { onMount } from \"svelte\";\nimport { autofill, autofillable, settle } from \"../lib/passkey.js\";\nimport Action from \"../shared/Action.svelte\";\nimport Otherwise from \"../shared/Otherwise.svelte\";\nimport ProviderButtons from \"../shared/ProviderButtons.svelte\";\nimport PromptHeader from \"../shared/PromptHeader.svelte\";\n\nlet { login } = $props();\n\nlet identifier = $state(\"\");\n\nconst valid = $derived(identifier.trim().length > 0);\n\nonMount(() => {\n let live = true;\n\n (async () => {\n if (!login.auth.passkey?.offered || !(await autofillable()) || !live) return;\n\n const offer = await login.poll(\"passkey:challenge\");\n const options = offer.passkey?.options;\n if (!options || !live) return;\n\n const passkey = await autofill(options);\n if (live) await login.submit(\"passkey:verify\", { passkey });\n })().catch(() => {});\n\n return () => {\n live = false;\n settle();\n };\n});\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (valid && !login.loading) {\n login.submit(\"identify\", { identifier });\n }\n}\n</script>\n\n<PromptHeader {login} />\n\n{#if login.auth.identifies !== false}\n <form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"identifier\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"text\"\n name=\"identifier\"\n class=\"control\"\n autocomplete=\"username webauthn\"\n autocapitalize=\"none\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n autofocus\n bind:value={identifier}\n />\n {#if login.auth.signupOpen}\n <span class=\"field-hint\">{login.t(\"signup_hint\")}</span>\n {/if}\n </label>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"checking\")}\n />\n </form>\n\n <Otherwise {login} />\n{:else}\n <ProviderButtons {login} />\n{/if}\n","<script>\nimport CodeForm from \"../shared/CodeForm.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Identified from \"../shared/Identified.svelte\";\nimport Resend from \"../shared/Resend.svelte\";\n\nlet { login } = $props();\n\nconst inbox = $derived(login.auth.inbox ?? {});\n</script>\n\n<Head {login} title={login.t(\"title\")} lede={inbox.mails ? login.t(\"lede\", { email: inbox.email }) : null} />\n\n<Identified {login} />\n\n{#if inbox.mails}\n <CodeForm {login} event=\"inbox:verify\" />\n <Resend {login} event=\"inbox:resend\" ready={inbox.resendable !== false} />\n{:else}\n <p class=\"note note-warn\" role=\"alert\">{login.t(\"no_mailer\")}</p>\n{/if}\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Hint from \"../shared/Hint.svelte\";\nimport Head from \"../shared/Head.svelte\";\n\nlet { login } = $props();\n\nlet password = $state(\"\");\n\nconst reset = $derived(login.auth.reset ?? {});\nconst minimum = $derived(reset.minimum ?? 8);\n\nconst valid = $derived(password.length >= minimum);\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (valid && !login.loading) {\n login.submit(\"reset-password\", { password });\n }\n}\n</script>\n\n<Head {login} title={login.t(\"title\")} />\n\n<form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"account\")}</span>\n <input\n type=\"text\"\n class=\"control\"\n autocomplete=\"username\"\n value={reset.nickname ?? \"\"}\n readonly\n />\n </label>\n\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"password\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"password\"\n name=\"password\"\n class=\"control\"\n autocomplete=\"new-password\"\n autofocus\n bind:value={password}\n />\n <Hint {login} field=\"password\" hint={login.t(\"hint\", { minimum })} />\n </label>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"working\")}\n />\n</form>\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Head from \"../shared/Head.svelte\";\nimport Identified from \"../shared/Identified.svelte\";\nimport PasskeyButton from \"../shared/PasskeyButton.svelte\";\nimport { available } from \"../lib/passkey.js\";\n\nlet { login } = $props();\n\nlet code = $state(\"\");\nlet remember = $state(false);\nlet useApp = $state(false);\n\nconst methods = $derived(login.auth.secondFactors ?? { otp: true });\nconst codeFactors = $derived(login.auth.codeFactors ?? {});\nconst sendable = $derived(Object.keys(codeFactors).length > 0);\nconst approval = $derived(login.auth.approval);\nconst approving = $derived(approval?.state === \"waiting\");\nconst sent = $derived(useApp ? null : login.auth.codeSent);\nconst valid = $derived(code.replace(/\\D/g, \"\").length === 6);\nconst passkeyReady = $derived(\n Boolean(methods.passkey && login.auth.passkey?.offered) && available(),\n);\nconst asking = $derived(Boolean(sent) || methods.otp);\nconst stuck = $derived(\n !asking &&\n !passkeyReady &&\n !login.backupCodes &&\n !methods.trustedDevice &&\n !sendable,\n);\nconst recovery = $derived(login.auth.recovery ?? {});\nconst why = $derived.by(() => {\n if (login.auth.codesWithheld?.includes(\"email\")) return \"stuck_inbox\";\n if (!methods.passkey) return \"stuck_nothing\";\n\n return globalThis.isSecureContext ? \"stuck_unsupported\" : \"stuck_insecure\";\n});\n\nfunction submit() {\n if (!valid || login.loading) return;\n\n const entered = code;\n code = \"\";\n\n login.submit(sent ? \"code:verify\" : \"otp\", { code: entered, remember });\n}\n\nfunction onsubmit(event) {\n event.preventDefault();\n submit();\n}\n\nfunction send(factor) {\n useApp = false;\n login.submit(\"code:send\", { factor });\n}\n\n$effect(() => {\n if (valid) submit();\n});\n\n$effect(() => {\n if (!approving) return;\n\n const held = remember;\n let timer;\n let stopped = false;\n\n const check = async () => {\n if (!document.hidden) await login.poll(\"approval:check\", { remember: held });\n if (!stopped) timer = setTimeout(check, 2000);\n };\n\n timer = setTimeout(check, 2000);\n\n return () => {\n stopped = true;\n clearTimeout(timer);\n };\n});\n</script>\n\n{#snippet help()}\n {#if recovery.requested}\n <p class=\"aside\" role=\"status\">{login.t(\"recovery_requested\")}</p>\n {:else}\n <Action\n {login}\n plain\n label={login.t(stuck ? \"recovery_ask\" : \"recovery_request\")}\n onclick={() => login.submit(\"recovery:request\", {})}\n />\n {/if}\n{/snippet}\n\n{#snippet trust()}\n {#if login.rememberable}\n <label class=\"check\">\n <input type=\"checkbox\" bind:checked={remember} />\n <span>{login.t(\"trust\", { duration: login.auth.trustFor })}</span>\n </label>\n {/if}\n{/snippet}\n\n{#if stuck}\n <Head {login} tone=\"bad\" title={login.t(\"halted\")} lede={login.t(why)} />\n\n <Identified {login} />\n\n {@render help()}\n\n <Action\n {login}\n quiet\n label={login.t(\"start_over\")}\n working={login.t(\"working\")}\n busy={login.loading}\n onclick={() => login.startOver()}\n />\n{:else}\n <Head\n {login}\n title={login.t(asking ? \"title\" : \"title_passkey\")}\n lede={sent ? login.t(\"sent_to\", { to: sent.to }) : null}\n />\n\n <Identified {login} />\n\n {#if asking}\n <form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"code\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"text\"\n name=\"code\"\n class=\"control control-code\"\n inputmode=\"numeric\"\n pattern=\"[0-9 ]*\"\n autocomplete=\"one-time-code\"\n maxlength=\"7\"\n spellcheck=\"false\"\n autofocus\n bind:value={code}\n />\n </label>\n\n {@render trust()}\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"checking\")}\n />\n </form>\n {/if}\n\n {#if passkeyReady}\n {#if !asking}\n {@render trust()}\n {/if}\n\n <PasskeyButton {login} params={{ remember }} />\n {/if}\n\n {#if !asking && !passkeyReady && (approving || sendable)}\n {@render trust()}\n {/if}\n\n {#if approving}\n <div class=\"slab flow-tight\" aria-live=\"polite\">\n <span class=\"aside-mono approval-code\">{approval.code}</span>\n <span class=\"field-hint\">{login.t(\"approval_code\")}</span>\n <span class=\"aside\">{login.t(\"approval_waiting\")}</span>\n </div>\n {:else if methods.trustedDevice}\n {#if approval?.state === \"expired\"}\n <p class=\"aside aside-bad\" role=\"alert\">{login.t(\"approval_expired\")}</p>\n {/if}\n\n <Action\n {login}\n plain\n label={approval ? login.t(\"approval_again\") : login.t(\"use_trusted_device\")}\n onclick={() => login.submit(\"approval:request\", {})}\n />\n {/if}\n\n {#each Object.entries(codeFactors) as [factor, to] (factor)}\n {#if sent?.factor === factor}\n {#if sent.resendable}\n <Action {login} plain label={login.t(\"send_again\")} onclick={() => send(factor)} />\n {/if}\n {:else}\n <Action\n {login}\n plain\n label={login.t(`send_${factor}`, { to })}\n onclick={() => send(factor)}\n />\n {/if}\n {/each}\n\n {#if sent && methods.otp}\n <Action {login} plain label={login.t(\"use_app\")} onclick={() => (useApp = true)} />\n {/if}\n\n {#if login.backupCodes}\n <Action\n {login}\n plain\n label={login.t(\"use_backup_code\")}\n onclick={() => login.submit(\"use-backup-code\", {})}\n />\n {/if}\n\n {@render help()}\n{/if}\n","<script>\nimport TenantMark from \"../shared/TenantMark.svelte\";\nimport ClientMark from \"../shared/ClientMark.svelte\";\nimport Head from \"../shared/Head.svelte\";\n\nlet { login } = $props();\n\nconst client = $derived(login.client?.name ?? \"\");\n\nconst title = $derived(\n client ? login.t(\"heading_to\", { client }) : login.t(\"heading\"),\n);\n\n</script>\n\n<div class=\"over\">\n {#if client}\n <div class=\"auth-pair\">\n <TenantMark tenant={login.auth.tenant} />\n <span class=\"auth-wire auth-wire-live\"></span>\n <ClientMark client={login.client} />\n </div>\n {/if}\n\n <Head {login} {title} busy lede={login.t(\"waiting\")} />\n</div>\n","<script>\nimport Head from \"./Head.svelte\";\nimport Identified from \"./Identified.svelte\";\nimport SignupHead from \"./SignupHead.svelte\";\n\nlet { login, title, lede = null, tone = null } = $props();\n</script>\n\n{#if login.auth.signingUp}\n <SignupHead {login} mark={login.actor?.identifier ?? \"\"} />\n\n <div class=\"prompt-head\">\n <h2 class=\"prompt-title\">{title}</h2>\n {#if lede}<p class=\"prompt-lede\">{lede}</p>{/if}\n </div>\n{:else}\n <Head {login} {title} {lede} {tone} />\n\n <Identified {login} />\n{/if}\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport ConfirmHead from \"../shared/ConfirmHead.svelte\";\n\nlet { login } = $props();\n\nlet phone = $state(\"\");\n\nconst valid = $derived(/^\\+?[\\d\\s().-]{7,}$/.test(phone.trim()));\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (valid && !login.loading) login.submit(\"confirm:add-phone\", { phone });\n}\n</script>\n\n<ConfirmHead {login} title={login.t(\"title\")} lede={login.t(\"lede\")} />\n\n<form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <label class=\"field\">\n <span class=\"field-label\">{login.t(\"phone\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"tel\"\n name=\"phone\"\n class=\"control\"\n autocomplete=\"tel\"\n placeholder=\"+15551234567\"\n autofocus\n bind:value={phone}\n />\n <span class=\"field-hint\">{login.t(\"hint\")}</span>\n </label>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading}\n label={login.t(\"continue\")}\n working={login.t(\"working\")}\n />\n</form>\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport ConfirmHead from \"../shared/ConfirmHead.svelte\";\n\nlet { login } = $props();\n\n$effect(() => {\n const timer = setInterval(() => {\n if (!login.loading) login.submit(\"confirm:check\", {});\n }, 15000);\n\n return () => clearInterval(timer);\n});\n</script>\n\n<ConfirmHead {login} title={login.t(\"title\")} lede={login.t(\"lede\")} />\n\n<p class=\"waiting aside\">{login.t(\"waiting\")}</p>\n\n<Action {login} quiet label={login.t(\"check\")} busy={login.loading} onclick={() => login.submit(\"confirm:check\", {})} />\n","<script>\nimport CodeForm from \"../shared/CodeForm.svelte\";\nimport ConfirmHead from \"../shared/ConfirmHead.svelte\";\nimport Resend from \"../shared/Resend.svelte\";\n\nlet { login } = $props();\n\nconst confirmation = $derived(login.auth.confirmation ?? {});\nconst linked = $derived(confirmation.mode === \"link\");\n\n$effect(() => {\n if (!linked) return;\n\n const timer = setInterval(() => {\n if (!login.loading) login.submit(\"confirm:check\", {});\n }, 5000);\n\n return () => clearInterval(timer);\n});\n</script>\n\n<ConfirmHead\n {login}\n title={login.t(\"title\")}\n lede={login.t(linked ? \"lede_link\" : \"lede\", { email: confirmation.email })}\n/>\n\n{#if !confirmation.mails}\n <p class=\"note note-warn\" role=\"alert\">{login.t(\"no_mailer\")}</p>\n{:else if linked}\n <p class=\"waiting aside\">{login.t(\"waiting\")}</p>\n{:else}\n <CodeForm {login} event=\"confirm:email\" />\n{/if}\n\n{#if confirmation.mails}\n <Resend {login} />\n{/if}\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport CodeForm from \"../shared/CodeForm.svelte\";\nimport ConfirmHead from \"../shared/ConfirmHead.svelte\";\nimport Resend from \"../shared/Resend.svelte\";\n\nlet { login } = $props();\n\nconst confirmation = $derived(login.auth.confirmation ?? {});\n</script>\n\n<ConfirmHead {login} title={login.t(\"title\")} lede={login.t(\"lede\", { phone: confirmation.phone })} />\n\n{#if confirmation.texts}\n <CodeForm {login} event=\"confirm:phone\" />\n\n <Resend {login} />\n{:else}\n <p class=\"note note-warn\" role=\"alert\">{login.t(\"no_texts\")}</p>\n{/if}\n\n<Action {login} plain label={login.t(\"change_phone\")} onclick={() => login.submit(\"confirm:change-phone\", {})} />\n","const BATCH = 512;\nconst encoder = new TextEncoder();\nconst solved = new Map();\n\nfunction leadingZeros(digest) {\n const bytes = new Uint8Array(digest);\n let count = 0;\n\n for (const byte of bytes) {\n if (byte === 0) {\n count += 8;\n continue;\n }\n\n return count + Math.clz32(byte) - 24;\n }\n\n return count;\n}\n\nasync function search({ nonce, bits }) {\n for (let start = 0; ; start += BATCH) {\n const digests = await Promise.all(\n Array.from({ length: BATCH }, (_, offset) =>\n crypto.subtle.digest(\n \"SHA-256\",\n encoder.encode(`${nonce}${start + offset}`),\n ),\n ),\n );\n\n const found = digests.findIndex((digest) => leadingZeros(digest) >= bits);\n\n if (found >= 0) return String(start + found);\n }\n}\n\nexport function solve(work) {\n if (!work) return Promise.resolve(null);\n\n if (!solved.has(work.token)) {\n solved.set(\n work.token,\n search(work).then((counter) => ({\n work: work.token,\n work_counter: counter,\n })),\n );\n }\n\n return solved.get(work.token);\n}\n","<script>\nimport { untrack } from \"svelte\";\nimport Action from \"../shared/Action.svelte\";\nimport Hint from \"../shared/Hint.svelte\";\nimport SignupHead from \"../shared/SignupHead.svelte\";\nimport { solve } from \"../lib/work.js\";\n\nlet { login } = $props();\n\nconst signup = $derived(login.auth.signup ?? {});\nconst asks = $derived(signup.asks ?? {});\nconst fixed = $derived(new Set(signup.fixed ?? []));\nconst firstRun = $derived(Boolean(login.auth.signingUp?.firstRun));\nconst docs = $derived(login.auth.docs);\nconst origin = typeof location === \"undefined\" ? \"\" : location.origin;\n\nconst held = untrack(() => login.auth.signup ?? {});\n\nlet token = $state(\"\");\nlet nickname = $state(held.nickname ?? \"\");\nlet email = $state(held.email ?? \"\");\nlet person = $state(held.name ?? \"\");\nlet phone = $state(held.phone ?? \"\");\nlet proving = $state(false);\n\nconst filled = (value) => value.trim().length > 0;\nconst needs = (field, value) => asks[field] !== \"required\" || filled(value);\n\nconst valid = $derived(\n (!signup.token || filled(token)) &&\n needs(\"nickname\", nickname) &&\n needs(\"email\", email) &&\n needs(\"phone\", phone) &&\n (filled(nickname) || filled(email)),\n);\n\n$effect(() => {\n solve(signup.work).catch(() => null);\n});\n\nasync function proof() {\n proving = true;\n\n try {\n return (await solve(signup.work)) ?? {};\n } catch {\n return {};\n } finally {\n proving = false;\n }\n}\n\nasync function onsubmit(event) {\n event.preventDefault();\n\n if (valid && !login.loading && !proving) {\n const work = await proof();\n\n login.submit(\"signup\", { token, nickname, email, name: person, phone, ...work });\n }\n}\n</script>\n\n<div class=\"setup flow\" class:setup-ready={valid}>\n <SignupHead {login} at={1} mark={nickname || email} />\n\n <form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <div class=\"slab\">\n {#if signup.token}\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={filled(token)}>\n <span class=\"ledger-label\">{login.t(\"token\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input type=\"password\" name=\"token\" class=\"control\" autocomplete=\"off\" autofocus bind:value={token} />\n <Hint {login} field=\"token\" hint={login.t(\"token_hint\")} />\n </label>\n {/if}\n\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={filled(person)}>\n <span class=\"ledger-label\">{login.t(\"name\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input type=\"text\" name=\"name\" class=\"control\" autocomplete=\"name\" autofocus={!signup.token} bind:value={person} />\n </label>\n\n {#if asks.nickname !== \"off\"}\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={filled(nickname)}>\n <span class=\"ledger-label\">{login.t(\"nickname\")}</span>\n <input\n type=\"text\"\n name=\"nickname\"\n class=\"control\"\n autocomplete=\"username\"\n autocapitalize=\"none\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n bind:value={nickname}\n />\n <Hint {login} field=\"nickname\" />\n </label>\n {/if}\n\n {#if asks.email !== \"off\"}\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={filled(email)}>\n <span class=\"ledger-label\">{login.t(\"email\")}</span>\n <input\n type=\"email\"\n name=\"email\"\n class=\"control\"\n autocomplete=\"email\"\n readonly={fixed.has(\"email\")}\n bind:value={email}\n />\n <Hint {login} field=\"email\" />\n </label>\n {/if}\n\n {#if asks.phone !== \"off\"}\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={filled(phone)}>\n <span class=\"ledger-label\">{login.t(\"phone\")}</span>\n <input\n type=\"tel\"\n name=\"phone\"\n class=\"control\"\n autocomplete=\"tel\"\n placeholder=\"+15551234567\"\n bind:value={phone}\n />\n <Hint {login} field=\"phone\" />\n </label>\n {/if}\n\n {#if firstRun}\n <div class=\"ledger-row\">\n <span class=\"ledger-label\">{login.t(\"origin\")}</span>\n <span class=\"ledger-value aside-mono\">{origin}</span>\n </div>\n {/if}\n </div>\n\n <Action\n {login}\n type=\"submit\"\n ready={valid}\n busy={login.loading || proving}\n label={login.t(\"continue\")}\n working={proving ? login.t(\"proving\") : login.t(\"working\")}\n />\n </form>\n\n {#if firstRun}\n <p class=\"aside\">\n {login.t(\"once\")}\n {#if docs}\n <a class=\"textlink\" href={docs} rel=\"noopener\" target=\"_blank\">{login.t(\"docs\")}</a>\n {/if}\n </p>\n {:else}\n <p class=\"aside\">\n {login.t(\"have_account\")}\n <button type=\"button\" class=\"textlink\" disabled={login.loading} onclick={() => login.startOver()}\n >{login.t(\"sign_in_instead\")}</button\n >\n </p>\n {/if}\n</div>\n","<script>\nimport Action from \"../shared/Action.svelte\";\nimport Hint from \"../shared/Hint.svelte\";\nimport SignupHead from \"../shared/SignupHead.svelte\";\nimport { available, enrol, refused } from \"../lib/passkey.js\";\n\nlet { login } = $props();\n\nconst signup = $derived(login.auth.signup ?? {});\nconst credentials = $derived(signup.credentials ?? { password: true, passkey: false });\nconst firstRun = $derived(Boolean(login.auth.signingUp?.firstRun));\nconst minimum = $derived(signup.minimum ?? 8);\nconst docs = $derived(login.auth.docs);\nconst passkeyable = $derived(Boolean(credentials.passkey) && available());\nconst submitLabel = $derived(firstRun ? login.t(\"submit_first_run\") : login.t(\"submit_signup\"));\n\nconst rows = $derived(\n [\n [\"name\", signup.name],\n [\"nickname\", signup.nickname],\n [\"email\", signup.email],\n [\"phone\", signup.phone],\n ].filter(([, value]) => value),\n);\n\nlet way = $state(null);\n\nconst chosen = $derived(way ?? (passkeyable ? \"passkey\" : \"password\"));\nconst choosing = $derived(Boolean(credentials.password) && passkeyable);\nconst typing = $derived(Boolean(credentials.password) && (!passkeyable || chosen === \"password\"));\nconst passkeying = $derived(passkeyable && (!credentials.password || chosen === \"passkey\"));\n\nlet password = $state(\"\");\nlet confirmation = $state(\"\");\nlet creating = $state(false);\nlet unusable = $state(null);\n\nconst long = $derived(password.length >= minimum);\nconst matched = $derived(long && confirmation === password);\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (matched && !login.loading) {\n login.submit(\"signup\", { password, password_confirmation: confirmation });\n }\n}\n\nasync function createPasskey() {\n creating = true;\n unusable = null;\n\n try {\n const offer = await login.submit(\"signup:passkey-challenge\", {});\n const options = offer.signup?.passkeyOptions;\n\n if (!options) {\n unusable = login.t(\"passkey_unoffered\");\n return;\n }\n\n await login.submit(\"signup:passkey\", { passkey: await enrol(options) });\n } catch (error) {\n if (!refused(error)) {\n unusable = login.t(\"passkey_unusable\");\n }\n } finally {\n creating = false;\n }\n}\n</script>\n\n<div class=\"setup flow\" class:setup-ready={typing ? matched : passkeying}>\n <SignupHead {login} at={2} mark={signup.nickname || signup.email || \"\"} />\n\n <form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <div class=\"slab\">\n {#each rows as [field, value] (field)}\n <div class=\"ledger-row ledger-row-aside\">\n <span class=\"ledger-label\">{login.t(field)}</span>\n <span class=\"ledger-value\">{value}</span>\n <button\n type=\"button\"\n class=\"textlink ledger-aside\"\n disabled={login.loading}\n onclick={() => login.submit(\"signup-edit\")}>{login.t(\"edit\")}</button>\n </div>\n {/each}\n\n {#if choosing}\n <div class=\"ledger-row\">\n <span class=\"ledger-label\" id=\"credential-way\">{login.t(\"way\")}</span>\n <div class=\"credential-ways\" role=\"radiogroup\" aria-labelledby=\"credential-way\">\n {#each [[\"passkey\", login.t(\"way_passkey\")], [\"password\", login.t(\"way_password\")]] as [value, label] (value)}\n <button\n type=\"button\"\n role=\"radio\"\n class=\"credential-way\"\n aria-checked={chosen === value}\n disabled={login.loading || creating}\n onclick={() => (way = value)}>{label}</button\n >\n {/each}\n </div>\n </div>\n {/if}\n\n {#if typing}\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={long}>\n <span class=\"ledger-label\">{login.t(\"password\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input\n type=\"password\"\n name=\"password\"\n class=\"control\"\n autocomplete=\"new-password\"\n autofocus={!choosing}\n bind:value={password}\n />\n <Hint {login} field=\"password\" hint={login.t(\"password_hint\", { minimum })} />\n </label>\n\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={matched}>\n <span class=\"ledger-label\">{login.t(\"confirm\")}</span>\n <input\n type=\"password\"\n name=\"password_confirmation\"\n class=\"control\"\n autocomplete=\"new-password\"\n bind:value={confirmation}\n />\n <Hint {login} field=\"password_confirmation\" />\n </label>\n {/if}\n </div>\n\n {#if typing}\n <Action\n {login}\n type=\"submit\"\n ready={matched}\n busy={login.loading && !creating}\n label={submitLabel}\n working={login.t(\"working\")}\n />\n {/if}\n </form>\n\n {#if passkeying}\n <div class=\"flow-tight\">\n <p class=\"aside\">{login.t(\"passkey_lede\")} {login.t(\"passkey_later\")}</p>\n\n <Action\n {login}\n busy={creating}\n label={login.t(\"create_passkey\")}\n working={login.t(\"waiting_for_passkey\")}\n onclick={createPasskey}\n />\n\n {#if creating}\n <p class=\"aside\">{login.t(\"passkey_hint\")}</p>\n {/if}\n\n {#if unusable}\n <p class=\"aside aside-bad\" role=\"alert\">{unusable}</p>\n {/if}\n </div>\n {:else if !credentials.password}\n <p class=\"note note-warn\" role=\"alert\">{login.t(\"no_passkeys\")}</p>\n {/if}\n\n {#if firstRun}\n <p class=\"aside\">\n {login.t(\"once\")}\n {#if docs}\n <a class=\"textlink\" href={docs} rel=\"noopener\" target=\"_blank\">{login.t(\"docs\")}</a>\n {/if}\n </p>\n {/if}\n</div>\n","<script>\nimport { untrack } from \"svelte\";\nimport Action from \"../shared/Action.svelte\";\nimport SignupHead from \"../shared/SignupHead.svelte\";\n\nlet { login } = $props();\n\nconst docs = $derived(login.auth.docs);\nconst origin = typeof location === \"undefined\" ? \"\" : location.origin;\n\nlet called = $state(untrack(() => login.auth.configure?.called ?? \"\"));\n\nconst ready = $derived(called.trim().length > 0);\n\nfunction onsubmit(event) {\n event.preventDefault();\n\n if (ready && !login.loading) {\n login.submit(\"setup-configure\", { called });\n }\n}\n</script>\n\n<div class=\"setup flow\" class:setup-ready={ready}>\n <SignupHead {login} at={3} mark={login.actor?.identifier ?? \"\"} />\n\n <form {onsubmit} class=\"flow\" aria-busy={login.loading || undefined}>\n <div class=\"slab\">\n <label class=\"ledger-row ledger-step\" class:ledger-step-done={ready}>\n <span class=\"ledger-label\">{login.t(\"called\")}</span>\n <!-- svelte-ignore a11y_autofocus -->\n <input type=\"text\" name=\"called\" class=\"control\" autofocus bind:value={called} />\n <span class=\"field-hint\">{login.t(\"called_hint\")}</span>\n </label>\n\n <div class=\"ledger-row\">\n <span class=\"ledger-label\">{login.t(\"origin\")}</span>\n <span class=\"ledger-value aside-mono\">{origin}</span>\n </div>\n </div>\n\n <Action\n {login}\n type=\"submit\"\n {ready}\n busy={login.loading}\n label={login.t(\"submit\")}\n working={login.t(\"working\")}\n />\n </form>\n\n <p class=\"aside\">\n {login.t(\"once\")}\n {#if docs}\n <a class=\"textlink\" href={docs} rel=\"noopener\" target=\"_blank\">{login.t(\"docs\")}</a>\n {/if}\n </p>\n</div>\n","<script>\nimport { untrack } from \"svelte\";\nimport { createLogin } from \"./lib/login.svelte.js\";\nimport Action from \"./shared/Action.svelte\";\nimport Head from \"./shared/Head.svelte\";\nimport Warnings from \"./shared/Warnings.svelte\";\nimport AcceptInvitation from \"./prompts/accept-invitation.svelte\";\nimport Enrol from \"./prompts/enrol.svelte\";\nimport BackupCode from \"./prompts/backup-code.svelte\";\nimport ChooseOrganization from \"./prompts/choose-organization.svelte\";\nimport Consent from \"./prompts/consent.svelte\";\nimport EmailCode from \"./prompts/email-code.svelte\";\nimport FirstFactor from \"./prompts/first-factor.svelte\";\nimport Identify from \"./prompts/identify.svelte\";\nimport ProveEmail from \"./prompts/prove-email.svelte\";\nimport ResetPassword from \"./prompts/reset-password.svelte\";\nimport SecondFactor from \"./prompts/second-factor.svelte\";\nimport Settled from \"./prompts/settled.svelte\";\nimport AddPhone from \"./prompts/add-phone.svelte\";\nimport AwaitingApproval from \"./prompts/awaiting-approval.svelte\";\nimport ConfirmEmail from \"./prompts/confirm-email.svelte\";\nimport ConfirmPhone from \"./prompts/confirm-phone.svelte\";\nimport Signup from \"./prompts/signup.svelte\";\nimport SignupCredentials from \"./prompts/signup-credentials.svelte\";\nimport SetupConfigure from \"./prompts/setup-configure.svelte\";\n\nconst prompts = {\n signup: Signup,\n \"signup-credentials\": SignupCredentials,\n \"setup-configure\": SetupConfigure,\n \"accept-invitation\": AcceptInvitation,\n identify: Identify,\n \"prove-email\": ProveEmail,\n \"reset-password\": ResetPassword,\n \"first-factor\": FirstFactor,\n \"email-code\": EmailCode,\n \"second-factor\": SecondFactor,\n \"backup-code\": BackupCode,\n enrol: Enrol,\n \"confirm-email\": ConfirmEmail,\n \"confirm-phone\": ConfirmPhone,\n \"add-phone\": AddPhone,\n \"awaiting-approval\": AwaitingApproval,\n \"choose-organization\": ChooseOrganization,\n consent: Consent,\n settled: Settled,\n};\n\nlet { auth } = $props();\n\nconst login = createLogin(untrack(() => auth));\nconst Prompt = $derived(prompts[login.prompt]);\n\nlet frame = $state(null);\nlet entering = $state(false);\nlet leaving = $state(0);\n\nconst still = () =>\n typeof matchMedia === \"function\" &&\n matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n$effect.pre(() => {\n login.prompt;\n\n const height = untrack(() => (still() ? 0 : (frame?.offsetHeight ?? 0)));\n\n leaving = height;\n entering = height > 0;\n});\n\n$effect(() => {\n const surface = login.auth.surface ?? \"challenge\";\n const paired = login.prompt === \"settled\" && Boolean(login.client?.name);\n const column = document.querySelector(\".auth-col\");\n\n if (!column) return;\n\n for (const name of [\"challenge\", \"grant\"]) {\n column.classList.toggle(`surface-${name}`, name === surface);\n }\n\n document\n .querySelector(\".auth-id\")\n ?.toggleAttribute(\"hidden\", surface !== \"challenge\" || paired);\n});\n\n$effect(() => {\n login.prompt;\n\n const node = frame;\n const from = untrack(() => leaving);\n\n if (!node || !from) return;\n\n const to = node.offsetHeight;\n\n if (to !== from) {\n node.classList.add(\"gate-moving\");\n\n const move = node.animate(\n [{ height: `${from}px` }, { height: `${to}px` }],\n { duration: 300, easing: \"cubic-bezier(0.2, 0.8, 0.2, 1)\" },\n );\n\n move.finished\n .catch(() => {})\n .then(() => node.classList.remove(\"gate-moving\"));\n }\n\n const timer = setTimeout(() => {\n entering = false;\n }, 500);\n\n return () => clearTimeout(timer);\n});\n</script>\n\n<Warnings {login} />\n\n<div class=\"gate\" class:gate-enter={entering} bind:this={frame}>\n {#key login.prompt}\n {#if Prompt}\n <Prompt {login} />\n {:else}\n <div class=\"over\">\n <Head\n {login}\n tone=\"bad\"\n title={login.t(\"halted\")}\n lede={login.t(\"halted_lede\")}\n />\n\n <Action\n {login}\n quiet\n label={login.t(\"start_over\")}\n working={login.t(\"working\")}\n busy={login.loading}\n onclick={() => login.startOver()}\n />\n </div>\n {/if}\n {/key}\n</div>\n","import { mount } from \"svelte\";\nimport Login from \"../Login.svelte\";\n\nconst target = document.getElementById(\"login\");\n\nif (target) {\n const auth = JSON.parse(target.dataset.auth);\n\n target.replaceChildren();\n\n mount(Login, { target, props: { auth } });\n}\n"],"mappings":"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"}