@atproto/oauth-provider-ui 0.0.2 → 0.1.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 (182) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/{src/authorization-page.html → authorization-page.html} +36 -33
  3. package/{src/error-page.html → error-page.html} +17 -24
  4. package/package.json +28 -37
  5. package/src/authorization-page.tsx +21 -27
  6. package/src/components/forms/button.tsx +8 -8
  7. package/src/components/forms/fieldset.tsx +1 -1
  8. package/src/components/forms/form-card-async.tsx +1 -1
  9. package/src/components/forms/form-card.tsx +1 -1
  10. package/src/components/forms/input-checkbox.tsx +3 -3
  11. package/src/components/forms/input-container.tsx +12 -12
  12. package/src/components/forms/input-text.tsx +2 -2
  13. package/src/components/forms/wizard-card.tsx +2 -2
  14. package/src/components/layouts/layout-title-page.tsx +9 -8
  15. package/src/components/layouts/layout-welcome.tsx +21 -16
  16. package/src/components/utils/account-image.tsx +2 -2
  17. package/src/components/utils/admonition.tsx +5 -5
  18. package/src/components/utils/client-name.tsx +30 -4
  19. package/src/components/utils/error-card.tsx +1 -1
  20. package/src/components/utils/help-card.tsx +3 -3
  21. package/src/components/utils/multi-lang-string.tsx +14 -8
  22. package/src/components/utils/password-strength-meter.tsx +3 -3
  23. package/src/components/utils/url-viewer.tsx +1 -1
  24. package/src/error-page.tsx +8 -14
  25. package/src/hooks/use-api.ts +65 -45
  26. package/src/hydration-data.d.ts +42 -0
  27. package/src/lib/api.ts +12 -21
  28. package/src/{cookies.ts → lib/cookies.ts} +8 -2
  29. package/src/lib/json-client.ts +62 -18
  30. package/src/lib/util.ts +2 -1
  31. package/src/locales/an/messages.po +35 -28
  32. package/src/locales/ast/messages.po +35 -28
  33. package/src/locales/ca/messages.po +35 -28
  34. package/src/locales/da/messages.po +35 -28
  35. package/src/locales/de/messages.po +35 -28
  36. package/src/locales/el/messages.po +35 -28
  37. package/src/locales/en/messages.po +35 -28
  38. package/src/locales/en-GB/messages.po +35 -28
  39. package/src/locales/es/messages.po +35 -28
  40. package/src/locales/eu/messages.po +35 -28
  41. package/src/locales/fi/messages.po +35 -28
  42. package/src/locales/fr/messages.po +35 -28
  43. package/src/locales/ga/messages.po +35 -28
  44. package/src/locales/gl/messages.po +35 -28
  45. package/src/locales/hi/messages.po +35 -28
  46. package/src/locales/hu/messages.po +35 -28
  47. package/src/locales/ia/messages.po +35 -28
  48. package/src/locales/id/messages.po +35 -28
  49. package/src/locales/it/messages.po +35 -28
  50. package/src/locales/ja/messages.po +35 -28
  51. package/src/locales/km/messages.po +35 -28
  52. package/src/locales/ko/messages.po +35 -28
  53. package/src/locales/locale-provider.tsx +55 -59
  54. package/src/locales/locale-selector.tsx +13 -14
  55. package/src/locales/locales.ts +161 -146
  56. package/src/locales/ne/messages.po +35 -28
  57. package/src/locales/nl/messages.po +35 -28
  58. package/src/locales/pl/messages.po +35 -28
  59. package/src/locales/pt-BR/messages.po +35 -28
  60. package/src/locales/ro/messages.po +35 -28
  61. package/src/locales/ru/messages.po +35 -28
  62. package/src/locales/sv/messages.po +35 -28
  63. package/src/locales/th/messages.po +35 -28
  64. package/src/locales/tr/messages.po +35 -28
  65. package/src/locales/uk/messages.po +35 -28
  66. package/src/locales/vi/messages.po +35 -28
  67. package/src/locales/zh-CN/messages.po +35 -28
  68. package/src/locales/zh-HK/messages.po +35 -28
  69. package/src/locales/zh-TW/messages.po +35 -28
  70. package/src/style.css +219 -0
  71. package/src/views/authorize/accept/accept-form.tsx +11 -6
  72. package/src/views/authorize/authorize-view.tsx +13 -10
  73. package/src/views/authorize/reset-password/reset-password-view.tsx +2 -2
  74. package/src/views/authorize/sign-in/sign-in-form.tsx +39 -41
  75. package/src/views/authorize/sign-in/sign-in-picker.tsx +3 -3
  76. package/src/views/authorize/sign-up/sign-up-disclaimer.tsx +3 -3
  77. package/src/views/authorize/sign-up/sign-up-handle-form.tsx +6 -6
  78. package/src/views/authorize/sign-up/sign-up-view.tsx +3 -3
  79. package/src/views/authorize/welcome/welcome-view.tsx +5 -5
  80. package/tsconfig.json +1 -2
  81. package/{tsconfig.frontend.json → tsconfig.src.json} +4 -1
  82. package/tsconfig.src.tsbuildinfo +1 -0
  83. package/tsconfig.tools.json +1 -1
  84. package/tsconfig.tools.tsbuildinfo +1 -1
  85. package/vite.config.mjs +38 -7
  86. package/dist/assets/COdVzed-.css +0 -3
  87. package/dist/assets/COdVzed-.js +0 -100
  88. package/dist/assets/COdVzed-.js.map +0 -1
  89. package/dist/assets/Cqnfnbvc.js +0 -6
  90. package/dist/assets/Cqnfnbvc.js.map +0 -1
  91. package/dist/assets/bundle-manifest.json +0 -630
  92. package/dist/assets/error-view-Bu4y7Nd8.js +0 -208
  93. package/dist/assets/error-view-Bu4y7Nd8.js.map +0 -1
  94. package/dist/assets/index-DXlCRM6V.js +0 -36
  95. package/dist/assets/index-DXlCRM6V.js.map +0 -1
  96. package/dist/assets/messages-2GoTm2qL.js +0 -4
  97. package/dist/assets/messages-2GoTm2qL.js.map +0 -1
  98. package/dist/assets/messages-6Cn2Jbhw.js +0 -4
  99. package/dist/assets/messages-6Cn2Jbhw.js.map +0 -1
  100. package/dist/assets/messages-75hFgOK2.js +0 -4
  101. package/dist/assets/messages-75hFgOK2.js.map +0 -1
  102. package/dist/assets/messages-B3OK4k0O.js +0 -4
  103. package/dist/assets/messages-B3OK4k0O.js.map +0 -1
  104. package/dist/assets/messages-BNXlPzKV.js +0 -4
  105. package/dist/assets/messages-BNXlPzKV.js.map +0 -1
  106. package/dist/assets/messages-BUygB8mD.js +0 -4
  107. package/dist/assets/messages-BUygB8mD.js.map +0 -1
  108. package/dist/assets/messages-BVPPcwNr.js +0 -4
  109. package/dist/assets/messages-BVPPcwNr.js.map +0 -1
  110. package/dist/assets/messages-BbbWUQS8.js +0 -4
  111. package/dist/assets/messages-BbbWUQS8.js.map +0 -1
  112. package/dist/assets/messages-BibKCYyW.js +0 -4
  113. package/dist/assets/messages-BibKCYyW.js.map +0 -1
  114. package/dist/assets/messages-BlPrr9_7.js +0 -4
  115. package/dist/assets/messages-BlPrr9_7.js.map +0 -1
  116. package/dist/assets/messages-ByVCw40U.js +0 -4
  117. package/dist/assets/messages-ByVCw40U.js.map +0 -1
  118. package/dist/assets/messages-C5DU1neP.js +0 -4
  119. package/dist/assets/messages-C5DU1neP.js.map +0 -1
  120. package/dist/assets/messages-C6IgUtbX.js +0 -4
  121. package/dist/assets/messages-C6IgUtbX.js.map +0 -1
  122. package/dist/assets/messages-C92Zzt2o.js +0 -4
  123. package/dist/assets/messages-C92Zzt2o.js.map +0 -1
  124. package/dist/assets/messages-CGZqYT14.js +0 -4
  125. package/dist/assets/messages-CGZqYT14.js.map +0 -1
  126. package/dist/assets/messages-CGlsy4wt.js +0 -4
  127. package/dist/assets/messages-CGlsy4wt.js.map +0 -1
  128. package/dist/assets/messages-CPT1nd0u.js +0 -4
  129. package/dist/assets/messages-CPT1nd0u.js.map +0 -1
  130. package/dist/assets/messages-CTTdXyw_.js +0 -4
  131. package/dist/assets/messages-CTTdXyw_.js.map +0 -1
  132. package/dist/assets/messages-ChK_C_Pj.js +0 -4
  133. package/dist/assets/messages-ChK_C_Pj.js.map +0 -1
  134. package/dist/assets/messages-CjJbk7Uf.js +0 -4
  135. package/dist/assets/messages-CjJbk7Uf.js.map +0 -1
  136. package/dist/assets/messages-CoiLjLYO.js +0 -4
  137. package/dist/assets/messages-CoiLjLYO.js.map +0 -1
  138. package/dist/assets/messages-Cwx6B4Ti.js +0 -4
  139. package/dist/assets/messages-Cwx6B4Ti.js.map +0 -1
  140. package/dist/assets/messages-D0uXAp_H.js +0 -4
  141. package/dist/assets/messages-D0uXAp_H.js.map +0 -1
  142. package/dist/assets/messages-DG0_arU0.js +0 -4
  143. package/dist/assets/messages-DG0_arU0.js.map +0 -1
  144. package/dist/assets/messages-DOXFJh9K.js +0 -4
  145. package/dist/assets/messages-DOXFJh9K.js.map +0 -1
  146. package/dist/assets/messages-DPK7nOoC.js +0 -4
  147. package/dist/assets/messages-DPK7nOoC.js.map +0 -1
  148. package/dist/assets/messages-Duccgtu0.js +0 -4
  149. package/dist/assets/messages-Duccgtu0.js.map +0 -1
  150. package/dist/assets/messages-DxTqgsHq.js +0 -4
  151. package/dist/assets/messages-DxTqgsHq.js.map +0 -1
  152. package/dist/assets/messages-E5_lTg7A.js +0 -4
  153. package/dist/assets/messages-E5_lTg7A.js.map +0 -1
  154. package/dist/assets/messages-UhunAjh1.js +0 -4
  155. package/dist/assets/messages-UhunAjh1.js.map +0 -1
  156. package/dist/assets/messages-Xg_3YLGw.js +0 -4
  157. package/dist/assets/messages-Xg_3YLGw.js.map +0 -1
  158. package/dist/assets/messages-iliBQHY2.js +0 -4
  159. package/dist/assets/messages-iliBQHY2.js.map +0 -1
  160. package/dist/assets/messages-lRprpIl-.js +0 -4
  161. package/dist/assets/messages-lRprpIl-.js.map +0 -1
  162. package/dist/assets/messages-pbPHQbz1.js +0 -4
  163. package/dist/assets/messages-pbPHQbz1.js.map +0 -1
  164. package/dist/assets/messages-q-O7ZQGs.js +0 -4
  165. package/dist/assets/messages-q-O7ZQGs.js.map +0 -1
  166. package/dist/lib/index.d.ts +0 -19
  167. package/dist/lib/index.d.ts.map +0 -1
  168. package/dist/lib/index.js +0 -47
  169. package/dist/lib/index.js.map +0 -1
  170. package/dist/tsconfig.backend.tsbuildinfo +0 -1
  171. package/lib/index.ts +0 -72
  172. package/rollup.config.js +0 -102
  173. package/src/backend-data.ts +0 -35
  174. package/src/hooks/use-csrf-token.ts +0 -5
  175. package/src/lib/backend-data.ts +0 -6
  176. package/src/lib/clsx.ts +0 -6
  177. package/src/locales/locale-context.ts +0 -19
  178. package/src/styles.css +0 -33
  179. package/tailwind.config.js +0 -31
  180. package/tsconfig.backend.json +0 -8
  181. package/tsconfig.frontend.tsbuildinfo +0 -1
  182. /package/{src/index.html → index.html} +0 -0
@@ -1,100 +0,0 @@
1
- import { r as reactExports, j as jsxRuntimeExports, c as clsx, L as LocaleSelector, A as Api, l as l$3, U as UnknownRequestUriError, a, u as useRandomString, E as ErrorCard, b as EyeIcon, d as EyeSlashIcon, e as LockIcon, T as TokenIcon, f as Admonition, g as AtSymbolIcon, S as SecondAuthenticationFactorRequiredError, I as InvalidCredentialsError, h as AccountIcon, C as CaretRightIcon, i as LinkAnchor, k as CheckMarkIcon, X as XMarkIcon, m as LayoutWelcome, n as readBackendData, o as clientExports, p as LocaleProvider, q as ErrorView } from './error-view-Bu4y7Nd8.js';
2
-
3
- let i$2=reactExports.createContext(null),l$2={didCatch:false,error:null};let u$1 = class u extends reactExports.Component{static getDerivedStateFromError(r){return {didCatch:true,error:r}}resetErrorBoundary(){let{error:r}=this.state;if(null!==r){for(var e,t,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];null===(e=(t=this.props).onReset)||void 0===e||e.call(t,{args:n,reason:"imperative-api"}),this.setState(l$2);}}componentDidCatch(r,e){var t,o;null===(t=(o=this.props).onError)||void 0===t||t.call(o,r,e);}componentDidUpdate(r,e){let{didCatch:t}=this.state,{resetKeys:o}=this.props;if(t&&null!==e.error&&function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return r.length!==e.length||r.some((r,t)=>!Object.is(r,e[t]))}(r.resetKeys,o)){var n,s;null===(n=(s=this.props).onReset)||void 0===n||n.call(s,{next:o,prev:r.resetKeys,reason:"keys"}),this.setState(l$2);}}render(){let{children:r,fallbackRender:e,FallbackComponent:o,fallback:n}=this.props,{didCatch:s,error:a}=this.state,l=r;if(s){let r={error:a,resetErrorBoundary:this.resetErrorBoundary};if("function"==typeof e)l=e(r);else if(o)l=reactExports.createElement(o,r);else if(void 0!==n)l=n;else throw a}return reactExports.createElement(i$2.Provider,{value:{didCatch:s,error:a,resetErrorBoundary:this.resetErrorBoundary}},l)}constructor(r){super(r),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=l$2;}};function d$3(){let r=reactExports.useContext(i$2);!function(r){if(null==r||"boolean"!=typeof r.didCatch||"function"!=typeof r.resetErrorBoundary)throw Error("ErrorBoundaryContext not found")}(r);let[e,t]=reactExports.useState({error:null,hasError:false}),a=reactExports.useMemo(()=>({resetBoundary:()=>{r.resetErrorBoundary(),t({error:null,hasError:false});},showBoundary:r=>t({error:r,hasError:true})}),[r.resetErrorBoundary]);if(e.hasError)throw e.error;return a}
4
-
5
- function LayoutTitlePage({children:d,title:s,subtitle:r,className:a,...x}){return jsxRuntimeExports.jsxs("div",{...x,className:clsx(a,"flex flex-col items-center","md:flex md:flex-row md:justify-stretch md:items-center","min-h-screen min-w-screen","bg-white text-slate-900","dark:bg-slate-900 dark:text-slate-100"),children:[s&&jsxRuntimeExports.jsx("title",{children:s}),jsxRuntimeExports.jsxs("div",{className:clsx("px-6 pt-4","w-full","md:max-w-lg","flex flex-row md:flex-col","md:self-stretch","md:w-1/2 md:max-w-fix md:p-4","md:text-right","md:dark:border-r md:dark:border-slate-700","md:bg-slate-100 md:dark:bg-slate-800"),children:[jsxRuntimeExports.jsxs("div",{className:"flex-grow grid content-center md:justify-items-end",children:[s&&jsxRuntimeExports.jsx("h1",{className:"text-xl md:text-2xl lg:text-5xl md:my-4 font-semibold text-brand",children:s},"title"),r&&jsxRuntimeExports.jsx("p",{className:"hidden md:block max-w-xs text-slate-600 dark:text-slate-400",children:r},"subtitle")]}),jsxRuntimeExports.jsx(LocaleSelector,{className:"m-1 md:m-2"},"localeSelector")]}),jsxRuntimeExports.jsx("main",{className:"w-full p-6 md:max-w-3xl md:px-12",children:d})]})}
6
-
7
- function upsert(e,n,t){let i=e.findIndex(t);return -1===i?[...e,n]:[...e.slice(0,i),n,...e.slice(i+1)]}
8
-
9
- const parseCookieString=o=>Object.fromEntries(o.split(";").filter(Boolean).map(o=>o.split("=",2).map(o=>decodeURIComponent(o.trim()))));const cookies=parseCookieString(document.cookie);
10
-
11
- function useCsrfToken(r){return cookies[r]}
12
-
13
- function u(t,i){let{showBoundary:r}=d$3();return reactExports.useCallback(async(...e)=>{try{return await t(...e)}catch(t){throw t instanceof UnknownRequestUriError&&r(t),t}},i.concat(r))}function useApi({requestUri:c,sessions:n=[],newSessionsRequireConsent:l=true,onRedirected:f}){let d=useCsrfToken(`csrf-${c}`);if(!d)throw Error("CSRF token is missing");let m=reactExports.useMemo(()=>new Api(d),[d]),[p,w]=reactExports.useState(n),{i18n:y,_:b}=l$3(),{locale:h}=y,g=reactExports.useCallback(t=>{w(e=>t===(e.find(t=>t.selected)?.account.sub||null)?e:e.map(e=>({...e,selected:e.account.sub===t})));},[w]),R=reactExports.useCallback(({account:t,consentRequired:e})=>{let i={account:t,selected:true,loginRequired:false,consentRequired:l||e};w(e=>upsert(e,i,e=>e.account.sub===t.sub).map(t=>t!==i&&t.selected?{...t,selected:false}:t));},[w,l]),q=reactExports.useCallback(t=>{window.location.href=String(t),f&&setTimeout(f);},[f]),A=u(async(t,e)=>{R(await m.fetch("/sign-in",{...t,locale:h},{signal:e}));},[m,h,R]),j=u(async(t,e)=>{await m.fetch("/reset-password-request",{...t,locale:h},{signal:e});},[m,h]),k=u(async(t,e)=>{await m.fetch("/reset-password-confirm",t,{signal:e});},[m]),v=u(async(t,e)=>{await m.fetch("/verify-handle-availability",t,{signal:e});},[m]),S=u(async(t,e)=>{R(await m.fetch("/sign-up",{...t,locale:h},{signal:e}));},[m,h,R]);return {sessions:p,selectSub:g,doSignIn:A,doInitiatePasswordReset:j,doConfirmResetPassword:k,doValidateNewHandle:v,doSignUp:S,doAccept:u(async t=>{q(m.buildAcceptUrl(t));},[m,q]),doReject:u(async()=>{q(m.buildRejectUrl());},[m,q])}}
14
-
15
- function useBoundDispatch(t,o){return reactExports.useCallback(()=>t(o),[t,o])}
16
-
17
- function Button({color:a="grey",transparent:e=false,loading:n,square:o=false,children:d,className:b,type:i="button",role:c="Button",disabled:g=false,...s}){return jsxRuntimeExports.jsx("button",{role:c,type:i,disabled:g||true===n,...s,className:clsx("rounded-lg truncate cursor-pointer touch-manipulation tracking-wide overflow-hidden",o?"p-2":"py-2 px-6","brand"===a?clsx("accent-slate-100",e?"bg-transparent text-brand":"bg-brand text-brand-c"):"grey"===a?clsx("accent-brand","text-slate-600 dark:text-slate-300","hover:bg-gray-200 dark:hover:bg-gray-700",e?"bg-transparent":"bg-gray-100 dark:bg-gray-800"):void 0,"disabled:opacity-50",b),children:d})}
18
-
19
- function FormCard({actions:s,cancel:a,append:c,children:i,prepend:l,disabled:n,inert:d=n,...t}){return jsxRuntimeExports.jsxs("form",{...t,inert:d,className:"flex flex-col space-y-4",children:[l&&jsxRuntimeExports.jsx("div",{children:l},"prepend"),jsxRuntimeExports.jsx("div",{className:"space-y-4",children:i},"children"),c&&jsxRuntimeExports.jsx("div",{children:c},"append"),(s||a)&&jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap flex-row-reverse items-center justify-end space-x-reverse space-x-2",children:[s,jsxRuntimeExports.jsx("div",{className:"flex-auto"}),a]},"buttons")]})}
20
-
21
- function AccountIdentifier({account:r,...n}){return jsxRuntimeExports.jsx("b",{...n,children:r.preferred_username||r.email||r.sub})}
22
-
23
- function UrlViewer({url:n,proto:t=false,host:s=true,path:u=false,query:o=false,hash:c=false,as:i="span",...p}){let h=reactExports.useMemo(()=>new URL(n),[n]);return jsxRuntimeExports.jsxs(i,{...p,children:[t&&jsxRuntimeExports.jsx(r$2,{value:`${h.protocol}//`,...true===t?null:t}),s&&jsxRuntimeExports.jsx(r$2,{value:h.host,...true===s?{faded:false,bold:true}:s}),u&&jsxRuntimeExports.jsx(r$2,{value:h.pathname,...true===u?null:u}),o&&jsxRuntimeExports.jsx(r$2,{value:h.search,...true===o?null:o}),c&&jsxRuntimeExports.jsx(r$2,{value:h.hash,...true===c?null:c})]})}function r$2({value:a,faded:l=true,bold:r=false}){return jsxRuntimeExports.jsx(r?"b":"span",{className:l?"opacity-50":"",children:a})}
24
-
25
- function ClientName({clientId:i,clientMetadata:n,clientTrusted:a$1,...s}){return a$1&&n.client_name?jsxRuntimeExports.jsx("span",{...s,children:n.client_name}):i.startsWith("http://")?jsxRuntimeExports.jsx("span",{...s,children:jsxRuntimeExports.jsx(a,{message:"An application on your device",id:"eYNzrj"})}):i.startsWith("https://")?jsxRuntimeExports.jsx(UrlViewer,{...s,url:i,path:true}):jsxRuntimeExports.jsx("span",{...s,children:i})}
26
-
27
- function AcceptForm({clientId:m,clientMetadata:u,clientTrusted:d,account:p,scopeDetails:f,onAccept:g,onReject:h,onBack:y,...b}){let{i18n:x,_:k}=l$3();return jsxRuntimeExports.jsxs(FormCard,{...b,onSubmit:e=>{e.preventDefault(),g();},cancel:y&&jsxRuntimeExports.jsx(Button,{onClick:y,children:"Back"}),actions:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Button,{type:"submit",color:"brand",children:jsxRuntimeExports.jsx(a,{message:"Authorize",id:"yIVrHZ"})}),jsxRuntimeExports.jsx(Button,{onClick:h,children:jsxRuntimeExports.jsx(a,{message:"Deny access",id:"54JiGG"})})]}),children:[d&&u.logo_uri&&jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center",children:jsxRuntimeExports.jsx("img",{crossOrigin:"anonymous",src:u.logo_uri,alt:u.client_name,className:"w-16 h-16 rounded-full"})},"logo"),jsxRuntimeExports.jsx("p",{children:jsxRuntimeExports.jsx(a,{message:"<0/> is asking for permission to access your account (<1/>).",id:"BVbdlE",components:{0:jsxRuntimeExports.jsx(ClientName,{clientId:m,clientMetadata:u,clientTrusted:d}),1:jsxRuntimeExports.jsx(AccountIdentifier,{account:p})}})}),jsxRuntimeExports.jsx("p",{children:jsxRuntimeExports.jsx(a,{message:"By clicking <0>Authorize</0>, you allow this application to perform the following actions in accordance with their <1>terms of service</1> and <2>privacy policy</2>:",id:"/aj5l4",components:{0:jsxRuntimeExports.jsx("b",{}),1:jsxRuntimeExports.jsx("a",{role:"link",href:u.tos_uri,rel:"nofollow noopener",target:"_blank",className:"text-brand underline"}),2:jsxRuntimeExports.jsx("a",{role:"link",href:u.policy_uri,rel:"nofollow noopener",target:"_blank",className:"text-brand underline"})}})}),f?.length?jsxRuntimeExports.jsx("ul",{className:"list-disc list-inside","aria-label":x._({id:"c7cY3z",message:"Requested permissions"}),children:f.map(({scope:i,description:n})=>jsxRuntimeExports.jsx("li",{children:n||jsxRuntimeExports.jsx(l$1,{scope:i})},i))},"scopes"):null]})}function l$1({scope:i}){switch(i){case "atproto":return jsxRuntimeExports.jsx(a,{message:"Uniquely identify you",id:"BWM1dL"});case "transition:generic":return jsxRuntimeExports.jsx(a,{message:"Access your account data (except chat messages)",id:"myiH7A"});case "transition:chat.bsky":return jsxRuntimeExports.jsx(a,{message:"Access your chat messages",id:"kJrqQq"});default:return i}}
28
-
29
- function AcceptView({clientId:o,clientMetadata:i,clientTrusted:c,account:n,scopeDetails:m,onAccept:l,onReject:u,onBack:p,title:d,subtitle:f=jsxRuntimeExports.jsx(a,{message:"Grant access to your <0>{0}</0> account",id:"QdVx1C",values:{0:n.preferred_username||n.email||n.sub},components:{0:jsxRuntimeExports.jsx("b",{className:"text-slate-800 dark:text-slate-200"})}}),...x}){let{i18n:g,_:y}=l$3();return jsxRuntimeExports.jsx(LayoutTitlePage,{...x,title:d??g._({id:"yIVrHZ",message:"Authorize"}),subtitle:f,children:jsxRuntimeExports.jsx(AcceptForm,{clientId:o,clientMetadata:i,clientTrusted:c,account:n,scopeDetails:m,onBack:p,onAccept:l,onReject:u})})}
30
-
31
- const FieldsetContext=reactExports.createContext({disabled:false});FieldsetContext.displayName="FieldsetContext";function Fieldset({label:l,children:d,disabled:a,...r}){let o=useRandomString({prefix:"fieldset-"}),n=reactExports.useMemo(()=>({disabled:a??false,labelId:l?o:void 0}),[a,l,o]);return jsxRuntimeExports.jsxs("fieldset",{...r,"aria-labelledby":o,disabled:a,children:[l&&jsxRuntimeExports.jsx("legend",{id:o,className:"mb-1 text-slate-600 dark:text-slate-400 text-sm font-medium",children:l},"title"),jsxRuntimeExports.jsx("div",{className:"flex flex-col space-y-4",children:jsxRuntimeExports.jsx(FieldsetContext,{value:n,children:d})})]})}
32
-
33
- function useAsyncAction(c,{ref:u,onLoading:a,onError:l}={}){let[i,s]=reactExports.useState(false),[b,f]=reactExports.useState(),y=reactExports.useCallback(r=>{f(r),l?.(r);},[l]),A=reactExports.useCallback(r=>{s(r),a?.(r);},[a]),E=reactExports.useRef(null),d=reactExports.useRef(null);return reactExports.useEffect(()=>(d.current=()=>{E.current?.abort(),E.current=null,y(void 0),A(false);},()=>{d.current=null;}),[y,A]),reactExports.useImperativeHandle(u,()=>({reset:()=>d.current?.()}),[]),reactExports.useEffect(()=>()=>{E.current?.abort(),E.current=null;},[]),{loading:i,error:b,run:reactExports.useCallback(async()=>{E.current?.abort(),A(true),y(void 0);let r=new AbortController,{signal:n}=r;E.current=r;try{await c(n);}catch(o){var t,e;r===E.current?y(o instanceof Error?o:Error(String(o))):(t=n,e=o,t.aborted&&(t.reason===e||t.reason===e?.cause||e instanceof DOMException&&"AbortError"===e.name)||console.warn("Async action error after abort",o));}finally{r===E.current&&(E.current=null,A(false)),r.abort();}},[c,A,y])}}
34
-
35
- const errorRenderDefault=({error:t})=>jsxRuntimeExports.jsx(ErrorCard,{error:t});function FormCardAsync({invalid:i,disabled:s,onSubmit:m,submitLabel:c,onCancel:d,cancelLabel:l,errorRender:u=errorRenderDefault,ref:p,onLoading:f,onError:b,children:x,...g}){let{run:h,loading:y,error:A}=useAsyncAction(m,{ref:p,onError:b,onLoading:f}),C=reactExports.useCallback(r=>{r.preventDefault(),!r.currentTarget.reportValidity()||s||i||h();},[s,i,h]);return jsxRuntimeExports.jsx(FormCard,{...g,onSubmit:C,disabled:s||y,prepend:null!=A?u({error:A}):void 0,cancel:d&&jsxRuntimeExports.jsx(Button,{onClick:d,children:l||jsxRuntimeExports.jsx(a,{message:"Cancel",id:"dEgA5A"})}),actions:jsxRuntimeExports.jsx(Button,{color:"brand",type:"submit",loading:y,disabled:s,children:c||jsxRuntimeExports.jsx(a,{message:"Submit",id:"hQRttt"})}),children:x})}
36
-
37
- var t$1;const MIN_PASSWORD_LENGTH=8;let e=/(\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/,r$1=/[A-Z]/,n=/[a-z]/,o$1=/[0-9]/,d$2=/[^a-zA-Z0-9]/;var PasswordStrength=((t$1={})[t$1.weak=1]="weak",t$1[t$1.moderate=2]="moderate",t$1[t$1.strong=3]="strong",t$1[t$1.extra=4]="extra",t$1);function getPasswordStrength(t){return t.length<8?1:t.length>=20?4:t.length>=16?f(t,[d$2])||f(t,[r$1,n,o$1],2)?4:3:t.length>=8&&f(t,[e])?3:t.length>=14?f(t,[d$2])||f(t,[r$1,n,o$1],2)?3:2:t.length>=12?f(t,[d$2])||f(t,[r$1,n,o$1],2)?2:1:t.length>=8&&(f(t,[d$2])||f(t,[r$1,n,o$1]))?2:1}function f(t,e,r=e.length){if(r<1||r>e.length)throw TypeError("Invalid regexpsCountToMatch");for(let n of e)if(n.test(t)&&0==--r)return true;return false}
38
-
39
- function PasswordStrengthLabel({password:t,...n}){let{i18n:o,_:m}=l$3(),g=getPasswordStrength(t);return jsxRuntimeExports.jsx("span",{...n,"aria-label":o._({id:"osAB4a",message:"Password strength"}),children:g===PasswordStrength.extra?jsxRuntimeExports.jsx(a,{message:"Extra",id:"/Ltc/k"}):g===PasswordStrength.strong?jsxRuntimeExports.jsx(a,{message:"Strong",id:"LLx/nr"}):g===PasswordStrength.moderate?jsxRuntimeExports.jsx(a,{message:"Moderate",id:"dvYuhh"}):t?jsxRuntimeExports.jsx(a,{message:"Weak",id:"9ls/Vs"}):jsxRuntimeExports.jsx(a,{message:"Missing",id:"VU3Nrn"})})}
40
-
41
- function PasswordStrengthMeter({password:i,className:o,...l}){let{i18n:n,_:m}=l$3(),g=i?getPasswordStrength(i):0,d=g===PasswordStrength.extra||g===PasswordStrength.strong?"bg-success":g===PasswordStrength.moderate?"bg-warning":"bg-error";return jsxRuntimeExports.jsx("div",{...l,className:clsx("w-full h-1 flex space-x-2",o),role:"meter","aria-label":n._({id:"xfNKwI",message:"Password strength indicator"}),"aria-valuemin":0,"aria-valuemax":PasswordStrength.extra,"aria-valuenow":g,children:Array.from({length:4},(a,e)=>jsxRuntimeExports.jsx("div",{className:`rounded h-1 w-1/4 ${g>e?d:"bg-gray-300 dark:bg-slate-500"}`},e))})}
42
-
43
- function updateRef(e,t){"function"==typeof e?e(t):e&&(e.current=t);}function mergeRefs(e){return t=>{for(let f of e)f&&updateRef(f,t);}}
44
-
45
- function ButtonToggleVisibility({visible:s,toggleVisible:n,onClick:o,...l}){let{i18n:m,_:u}=l$3();return jsxRuntimeExports.jsx(Button,{...l,square:true,onClick:i=>{o?.(i),i.defaultPrevented||n();},"aria-label":s?m._({id:"vLyv1R",message:"Hide"}):m._({id:"huXYDE",message:"Make visible"}),children:s?jsxRuntimeExports.jsx(EyeIcon,{className:"w-5","aria-hidden":true}):jsxRuntimeExports.jsx(EyeSlashIcon,{className:"w-5","aria-hidden":true})})}
46
-
47
- function InputContainer({icon:d,append:o,bellow:s,className:n,children:l,onFocus:c,onBlur:i,...b}){let[u,f]=reactExports.useState(false);return jsxRuntimeExports.jsxs("div",{...b,onFocus:e=>{c?.(e),e.defaultPrevented||f(true);},onBlur:e=>{i?.(e),e.defaultPrevented||f(false);},className:clsx("min-h-12","max-w-full","overflow-hidden","rounded-lg",n),children:[jsxRuntimeExports.jsxs("div",{className:clsx("px-1","w-full min-h-12","flex items-center justify-stretch","rounded-lg",s?"rounded-br-none rounded-bl-none":void 0,"outline-none","border-solid border-2 border-transparent","focus:border-brand has-[:focus]:border-brand","hover:border-gray-400 hover:focus:border-gray-400","dark:hover:border-gray-500 dark:hover:focus:border-gray-500","bg-gray-100 focus:bg-slate-200 has-[:focus]:bg-slate-200","dark:bg-slate-800 dark:focus:bg-slate-700 dark:has-[:focus]:bg-slate-700","text-slate-600 dark:text-slate-300","accent-brand"),children:[d&&jsxRuntimeExports.jsx("div",{className:clsx("shrink-0 grow-0","mx-1",u?"text-brand":"text-slate-500"),children:d}),l,jsxRuntimeExports.jsx("div",{className:"ml-1 grow-0 shrink-0 flex items-center",children:o})]}),s&&jsxRuntimeExports.jsx("div",{className:clsx("px-3 py-2 space-x-2","flex flex-row items-center gap-1","rounded-br-2 rounded-bl-2","bg-gray-200 dark:bg-slate-700","text-gray-700 dark:text-gray-300","text-sm italic"),children:s})]})}
48
-
49
- function InputText({icon:i,append:s,bellow:p,className:u,onFocus:c,onBlur:d,ref:b,disabled:f,title:m,"aria-label":x=m,"aria-labelledby":g,placeholder:h=x,...v}){let P=reactExports.useContext(FieldsetContext),w=reactExports.useRef(null),y=reactExports.useRef(false);return jsxRuntimeExports.jsx(InputContainer,{icon:i,append:s,bellow:p,className:clsx("cursor-text",u),tabIndex:-1,onClick:e=>{w.current!==e.target&&(e.preventDefault(),e.stopPropagation(),w.current?.focus());},onMouseDown:e=>{y.current&&e.target!==w.current&&(e.preventDefault(),e.stopPropagation());},children:jsxRuntimeExports.jsx("input",{...v,disabled:f??P.disabled,title:m,placeholder:h,"aria-label":x,"aria-labelledby":g??P.labelId,ref:mergeRefs([b,w]),className:"w-full bg-transparent bg-clip-padding text-base text-inherit outline-none dark:placeholder-gray-500 text-ellipsis",onFocus:e=>{c?.(e),e.defaultPrevented||(y.current=true);},onBlur:e=>{d?.(e),e.defaultPrevented||(y.current=false);}})})}
50
-
51
- function InputPassword({autoHide:p=true,onBlur:f,onChange:c,append:g,autoComplete:d="current-password",icon:x=jsxRuntimeExports.jsx(LockIcon,{className:"w-5"}),value:b,defaultValue:v=b,ref:w,title:C,dir:h="auto",autoCapitalize:j="none",autoCorrect:y="off",spellCheck:P="false",...k}){let{i18n:N,_:_}=l$3(),z=reactExports.useRef(null),[B,F]=reactExports.useState(false),[I,L]=reactExports.useState("string"==typeof v?v:""),T=reactExports.useCallback(t=>{c?.(t),L(t.target.value);},[c]);return jsxRuntimeExports.jsx(InputText,{...k,title:C??N._({id:"8ZsakT",message:"Password"}),ref:mergeRefs([w,z]),dir:h,autoCapitalize:j,autoCorrect:y,spellCheck:P,icon:x,onBlur:p?t=>{f?.(t),t.defaultPrevented||F(false);}:f,value:I,onChange:T,type:B?"text":"password",autoComplete:d,append:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(ButtonToggleVisibility,{className:"m-1",visible:B,toggleVisible:()=>{F(t=>!t),z.current?.focus();}}),g]})})}
52
-
53
- function InputNewPassword({password:n="",onPassword:p,onChange:w,autoComplete:g="new-password",minLength:u=MIN_PASSWORD_LENGTH,...x}){let{i18n:c,_:f}=l$3(),[h,_]=reactExports.useState(n),v=reactExports.useCallback(t=>{let{value:s}=t.target;w?.(t),t.defaultPrevented||(_(s),p?.(t.target.validity.valid?s:void 0));},[w,p]);return jsxRuntimeExports.jsx(InputPassword,{...x,placeholder:c._({id:"3tOlz6",message:"Enter a password"}),"aria-label":c._({id:"0StR7t",message:"Enter your new password"}),title:c._({id:"5CqSPX",message:"Password with at least {MIN_PASSWORD_LENGTH} characters",values:{MIN_PASSWORD_LENGTH:MIN_PASSWORD_LENGTH}}),minLength:u,onChange:v,value:h,autoComplete:g,bellow:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(PasswordStrengthMeter,{password:h}),jsxRuntimeExports.jsx(PasswordStrengthLabel,{className:"grow-1 min-w-max text-xs text-gray-500 dark:text-gray-400",password:h})]})})}
54
-
55
- function InputToken({example:a="XXXXX-XXXXX",onToken:i,icon:s=jsxRuntimeExports.jsx(TokenIcon,{className:"w-5"}),title:u=a,onChange:c,value:p,defaultValue:X=p,...m}){let{i18n:f,_:g}=l$3(),[x,h]=reactExports.useState("string"==typeof X?X:"");return jsxRuntimeExports.jsx(InputText,{...m,type:"text",autoCapitalize:"none",autoCorrect:"off",autoComplete:"off",spellCheck:"false",minLength:11,maxLength:11,dir:"auto",icon:s,pattern:"^[A-Z2-7]{5}-[A-Z2-7]{5}$",placeholder:f._({id:"0hTJM+",message:"Looks like {example}",values:{example:a}}),title:u,value:x,onChange:e=>{let{value:t,selectionEnd:r,selectionStart:l}=e.currentTarget,n=o(t);e.currentTarget.value=n;let a=r??l;if(null!=a){let r=o(t.slice(0,a));e.currentTarget.selectionStart=e.currentTarget.selectionEnd=r.length;}h(n),c?.(e),e.isDefaultPrevented()||i?.(11===n.length?n:null);}})}function o(e){let t=e.toUpperCase().replaceAll(/[^A-Z2-7]/g,"");return t.length<=5?t:`${t.slice(0,5)}-${t.slice(5,10)}`}
56
-
57
- function ResetPasswordConfirmForm({onSubmit:c,invalid:p,...f}){let u=useRandomString({prefix:"reset-pwd-email-"}),w=reactExports.useRef(null),[x,h]=reactExports.useState(null),[g,y]=reactExports.useState(void 0);return jsxRuntimeExports.jsxs(FormCardAsync,{...f,onSubmit:e=>{if(x&&g)return c({token:x,password:g},e)},invalid:p||!x||!g,children:[jsxRuntimeExports.jsx(Admonition,{role:"info",children:jsxRuntimeExports.jsx("p",{id:u,className:"text-md",children:jsxRuntimeExports.jsx(a,{message:'You will receive an email with a "reset code". Enter that code here then enter your new password.',id:"imRJNy"})})}),jsxRuntimeExports.jsx(Fieldset,{label:jsxRuntimeExports.jsx(a,{message:"Reset code",id:"vJgYMA"}),children:jsxRuntimeExports.jsx(InputToken,{name:"code","aria-labelledby":u,enterKeyHint:"next",required:true,autoFocus:true,onToken:e=>{h(e),e&&w.current?.focus();}})}),jsxRuntimeExports.jsx(Fieldset,{label:jsxRuntimeExports.jsx(a,{message:"New password",id:"/nT6AE"}),children:jsxRuntimeExports.jsx(InputNewPassword,{ref:w,name:"password",enterKeyHint:"done",required:true,password:g,onPassword:y})})]})}
58
-
59
- function InputEmailAddress({onEmail:s,autoCapitalize:l="none",autoComplete:m="email",autoCorrect:n="off",dir:u="auto",icon:p=jsxRuntimeExports.jsx(AtSymbolIcon,{className:"w-5"}),onBlur:f,onChange:c,pattern:d="^[^@]+@[^@]+\\.[^@]+$",spellCheck:g="false",value:x,defaultValue:C=x,title:v,...y}){let{i18n:L,_:h}=l$3(),[j,w]=reactExports.useState("string"==typeof C?C:""),A=reactExports.useCallback(t=>{let e=t.target.value.toLowerCase();w(e),c?.(t),s?.(t.target.validity.valid?e:void 0);},[c,s]);return jsxRuntimeExports.jsx(InputText,{...y,title:v??L._({id:"ATGYL1",message:"Email address"}),type:"email",autoCapitalize:l,autoCorrect:n,dir:u,spellCheck:g,icon:p,pattern:d,autoComplete:m,value:j,onChange:A,onBlur:f})}
60
-
61
- function ResetPasswordRequestForm({emailDefault:f,onSubmit:p,invalid:x,ref:g,...h}){let{i18n:y,_:b}=l$3(),E=useRandomString({prefix:"reset-pwd-email-"}),[w,j]=reactExports.useState(f),q=reactExports.useRef(null),L=reactExports.useCallback(e=>{if(w)return p({email:w},e)},[w,p]);return jsxRuntimeExports.jsx(FormCardAsync,{...h,ref:mergeRefs([g,q]),invalid:x||!w,onSubmit:L,children:jsxRuntimeExports.jsxs(Fieldset,{label:jsxRuntimeExports.jsx(a,{message:"Email address",id:"ATGYL1"}),children:[jsxRuntimeExports.jsx(InputEmailAddress,{name:"email",placeholder:y._({id:"xRPn3U",message:"Enter your email address"}),"aria-labelledby":E,title:y._({id:"ATGYL1",message:"Email address"}),required:true,autoFocus:true,value:w,onEmail:e=>{q.current?.reset(),j(e);}}),jsxRuntimeExports.jsx(Admonition,{role:"info",children:jsxRuntimeExports.jsx("p",{id:E,className:"",children:jsxRuntimeExports.jsx(a,{message:'Enter the email you used to create your account. We\'ll send you a "reset code" so you can set a new password.',id:"cHrOqs"})})})]})})}
62
-
63
- var l,m=((l=m||{})[l.RequestReset=0]="RequestReset",l[l.ConfirmReset=1]="ConfirmReset",l[l.PasswordUpdated=2]="PasswordUpdated",l);function ResetPasswordView({emailDefault:l,onresetPasswordRequest:m,onResetPasswordConfirm:c,onBack:u,...p}){let{i18n:g,_:b}=l$3(),[f,w]=reactExports.useState(0);if(0===f)return jsxRuntimeExports.jsxs(LayoutTitlePage,{...p,title:p.title||g._({id:"dn8X5t",message:"Forgot Password"}),subtitle:p.subtitle||jsxRuntimeExports.jsx(a,{message:"Let's get your password reset!",id:"Esfg1M"}),children:[jsxRuntimeExports.jsx(ResetPasswordRequestForm,{emailDefault:l,submitLabel:jsxRuntimeExports.jsx(a,{message:"Next",id:"hXzOVo"}),onSubmit:async(e,s)=>{await m(e,s),s.aborted||w(1);},cancelLabel:jsxRuntimeExports.jsx(a,{message:"Back",id:"iH8pgl"}),onCancel:u}),jsxRuntimeExports.jsx("hr",{className:"my-5 border-gray-300 dark:border-gray-700"}),jsxRuntimeExports.jsx("center",{children:jsxRuntimeExports.jsx(Button,{transparent:true,onClick:()=>w(1),children:jsxRuntimeExports.jsx(a,{message:"Already have a code?",id:"FTT4a4"})})})]});if(1===f)return jsxRuntimeExports.jsx(LayoutTitlePage,{...p,title:p.title||g._({id:"KbS2K9",message:"Reset Password"}),subtitle:p.subtitle||jsxRuntimeExports.jsx(a,{message:"Enter the code you received to reset your password.",id:"xg/UcZ"}),children:jsxRuntimeExports.jsx(ResetPasswordConfirmForm,{submitLabel:jsxRuntimeExports.jsx(a,{message:"Next",id:"hXzOVo"}),onSubmit:async(e,s)=>{await c(e,s),s.aborted||w(2);},cancelLabel:jsxRuntimeExports.jsx(a,{message:"Back",id:"iH8pgl"}),onCancel:u})});if(2===f)return jsxRuntimeExports.jsx(LayoutTitlePage,{...p,title:p.title||g._({id:"fSy6T1",message:"Password Updated"}),subtitle:p.subtitle||jsxRuntimeExports.jsx(a,{message:"Your password has been updated!",id:"+qGdcW"}),children:jsxRuntimeExports.jsxs("center",{children:[jsxRuntimeExports.jsx("h2",{className:"text-xl font-bold pb-2",children:jsxRuntimeExports.jsx(a,{message:"Password updated!",id:"DKeVgZ"})}),jsxRuntimeExports.jsx("p",{className:"pb-4",children:jsxRuntimeExports.jsx(a,{message:"You can now sign in with your new password.",id:"67nRLM"})}),jsxRuntimeExports.jsx(Button,{color:"brand",onClick:u,children:jsxRuntimeExports.jsx(a,{message:"Okay",id:"UaXeX3"})})]})});throw Error(`Invalid view: ${f}`)}
64
-
65
- function InputCheckbox({className:c,children:s,id:m,ref:b,disabled:u,title:d,"aria-label":p=d,"aria-labelledby":f,...x}){let h=useRandomString("input-checkbox-"),k=reactExports.useRef(null),y=reactExports.useRef(null),I=reactExports.useContext(FieldsetContext),N=m??h;return jsxRuntimeExports.jsx(InputContainer,{className:clsx("cursor-pointer",c),icon:jsxRuntimeExports.jsx("input",{...x,disabled:u??I.disabled,title:d,"aria-label":p,"aria-labelledby":s?void 0:f??I.labelId,ref:mergeRefs([b,y]),id:N,className:"accent-brand outline-none",type:"checkbox"}),tabIndex:-1,onClick:({target:e})=>{e!==k.current&&e!==y.current&&y.current?.click();},children:s&&jsxRuntimeExports.jsx("label",{ref:k,htmlFor:N,className:"block w-full leading-[1.6] select-none cursor-pointer",children:s})})}
66
-
67
- function SignInForm({usernameDefault:y="",usernameReadonly:C=false,rememberDefault:k=false,onSubmit:v,onBack:w,onForgotPassword:_,ref:F,invalid:N,children:H,...L}){let{i18n:O,_:q}=l$3(),[S,j]=reactExports.useState(y),[A,K]=reactExports.useState(""),[T,Z]=reactExports.useState(k),[P,R]=reactExports.useState(null),[U,z]=reactExports.useState(null),[B,W]=reactExports.useState(false),G=reactExports.useRef(null),I=reactExports.useCallback(()=>{R(null),z(null);},[R,z]),M=reactExports.useCallback(()=>{I(),G.current?.reset();},[I,G]),V=reactExports.useCallback(async e=>{try{await v({username:S,password:A,remember:T,...U?{[U.type]:P}:{}},e);}catch(t){if(e.aborted)return;if(t instanceof SecondAuthenticationFactorRequiredError){z(t);return}throw t instanceof InvalidCredentialsError&&I(),t}},[S,A,T,U,P,v]);return jsxRuntimeExports.jsxs(FormCardAsync,{...L,ref:mergeRefs([F,G]),onLoading:W,onCancel:w,cancelLabel:O._({id:"iH8pgl",message:"Back"}),append:H,invalid:N||!S||!A||null!=U&&!P,submitLabel:U?O._({id:"7VpPHA",message:"Confirm"}):O._({id:"5lWFkC",message:"Sign in"}),onSubmit:V,children:[jsxRuntimeExports.jsx(Fieldset,{disabled:B,label:jsxRuntimeExports.jsx(a,{message:"Account",id:"AeXO77"}),children:jsxRuntimeExports.jsx(InputText,{icon:jsxRuntimeExports.jsx(AtSymbolIcon,{className:"w-5"}),name:"username",type:"text",title:O._({id:"nZx9mr",message:"Username or email address"}),autoCapitalize:"none",autoCorrect:"off",autoComplete:"username",spellCheck:"false",dir:"auto",enterKeyHint:"next",required:true,readOnly:C,disabled:C,autoFocus:true,value:S,onChange:e=>{M(),j(e.target.value);}})}),jsxRuntimeExports.jsx(InputPassword,{name:"password",onChange:e=>{M(),K(e.target.value);},append:_&&jsxRuntimeExports.jsx(Button,{className:"text-sm",type:"button",onClick:()=>{_(S?.includes("@")?S:void 0);},"aria-label":O._({id:"slOprG",message:"Reset your password"}),children:jsxRuntimeExports.jsx(a,{message:"Forgot?",id:"F4OP4y"})}),enterKeyHint:U?"next":"done",disabled:B,required:true}),jsxRuntimeExports.jsxs(Admonition,{role:"status",children:[jsxRuntimeExports.jsx("p",{className:"font-bold text-md text-brand pb-1",children:jsxRuntimeExports.jsx(a,{message:"Warning",id:"r6y+jM"})}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:jsxRuntimeExports.jsx(a,{message:"Please verify the domain name of the website before entering your password. Never enter your password on a domain you do not trust.",id:"+Z2ZNt"})})]}),jsxRuntimeExports.jsx(Fieldset,{disabled:B,label:jsxRuntimeExports.jsx(a,{message:"Session",id:"CqO9qC"}),children:jsxRuntimeExports.jsx(InputCheckbox,{name:"remember",title:O._({id:"1TxdLU",message:"Remember this account on this device"}),enterKeyHint:U?"next":"done",checked:T,onChange:e=>Z(e.target.checked),children:jsxRuntimeExports.jsx(a,{message:"Remember this account on this device",id:"1TxdLU"})})},"remember"),U&&jsxRuntimeExports.jsx(Fieldset,{disabled:B,label:jsxRuntimeExports.jsx(a,{message:"2FA Confirmation",id:"4blS0m"}),children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(InputToken,{title:O._({id:"ioZOzk",message:"Confirmation code"}),enterKeyHint:"done",required:true,autoFocus:true,value:P??"",onToken:R}),jsxRuntimeExports.jsx("p",{className:"text-slate-600 dark:text-slate-400 text-sm",children:jsxRuntimeExports.jsx(a,{message:"Check your {0} email for a login code and enter it here.",id:"B+Yy3b",values:{0:U.hint}})})]})},"2fa")]})}
68
-
69
- function AccountImage({src:d,alt:i}){let[n,m]=reactExports.useState(false);return reactExports.useEffect(()=>{m(false);},[d]),d&&!n?jsxRuntimeExports.jsx("img",{"aria-hidden":true,crossOrigin:"anonymous",src:d,alt:i,className:"-ml-1 w-6 h-6 rounded-full",onError:()=>m(true)}):jsxRuntimeExports.jsx("div",{"aria-hidden":true,className:"h-6 w-6 text-white bg-brand rounded-full border-solid border-2 border-brand overflow-hidden",children:jsxRuntimeExports.jsx(AccountIcon,{className:"-mx-1 -mb-1"})})}
70
-
71
- function SignInPicker({accounts:c,onAccount:d,onOther:p,onBack:u,children:x,...f}){let{i18n:h,_:g}=l$3();return jsxRuntimeExports.jsxs(FormCard,{...f,append:x,actions:null,cancel:u&&jsxRuntimeExports.jsx(Button,{onClick:u,children:jsxRuntimeExports.jsx(a,{message:"Back",id:"iH8pgl"})}),children:[jsxRuntimeExports.jsx("p",{className:"text-slate-600 dark:text-slate-400 text-sm font-medium",children:jsxRuntimeExports.jsx(a,{message:"Sign in as...",id:"FT1MVS"})}),c.map(t=>{let[n,s]=[t.name,t.preferred_username,t.email,t.sub].filter(Boolean);return jsxRuntimeExports.jsx(InputContainer,{tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&d(t);},onClick:()=>d(t),role:"button","aria-label":h._({id:"N9o7n5",message:"Sign in as {0}",values:{0:t.name}}),icon:jsxRuntimeExports.jsx(AccountImage,{src:t.picture,alt:n}),append:jsxRuntimeExports.jsx(CaretRightIcon,{"aria-hidden":true,className:"h-4"}),children:jsxRuntimeExports.jsxs("span",{className:"flex flex-wrap items-center",children:[jsxRuntimeExports.jsx("span",{className:"font-medium truncate mr-2","arial-label":h._({id:"6YtxFj",message:"Name"}),children:n}),s&&jsxRuntimeExports.jsx("span",{className:"text-sm text-neutral-500 dark:text-neutral-400 truncate","arial-label":h._({id:"sJGljQ",message:"Identifier"}),children:s})]})},t.sub)}),p&&jsxRuntimeExports.jsx(InputContainer,{tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&p();},onClick:p,"aria-label":h._({id:"cR9UpQ",message:"Login to account that is not listed"}),role:"button",append:jsxRuntimeExports.jsx(CaretRightIcon,{"aria-hidden":true,className:"h-4"}),icon:jsxRuntimeExports.jsx(AtSymbolIcon,{"aria-hidden":true,className:"h-4"}),children:jsxRuntimeExports.jsx("span",{className:"truncate text-slate-700 dark:text-slate-400",children:jsxRuntimeExports.jsx(a,{message:"Another account",id:"+TaG50"})})},"other")]})}
72
-
73
- function SignInView({loginHint:l,sessions:c,selectSub:d,onSignIn:g,onForgotPassword:p,onBack:f,title:b,subtitle:w,...h}){let{i18n:y,_:k}=l$3(),x=reactExports.useMemo(()=>c.find(e=>e.selected),[c]),S=reactExports.useCallback(()=>d(null),[d]),B=reactExports.useMemo(()=>c.map(e=>e.account),[c]),[F,P]=reactExports.useState(0===c.length);return (b??(b=y._({id:"5lWFkC",message:"Sign in"})),reactExports.useEffect(()=>{x&&P(false);},[x]),x)?x.loginRequired?jsxRuntimeExports.jsx(LayoutTitlePage,{...h,title:b,subtitle:w??jsxRuntimeExports.jsx(a,{message:"Confirm your password to continue",id:"HaGV2g"}),children:jsxRuntimeExports.jsx(SignInForm,{onSubmit:g,onForgotPassword:p,onBack:S,usernameDefault:x.account.preferred_username||x.account.sub,usernameReadonly:true,rememberDefault:true})}):null:l?jsxRuntimeExports.jsx(LayoutTitlePage,{...h,title:b,subtitle:w??jsxRuntimeExports.jsx(a,{message:"Enter your password",id:"NgaR6B"}),children:jsxRuntimeExports.jsx(SignInForm,{onSubmit:g,onForgotPassword:p,onBack:f,usernameDefault:l,usernameReadonly:true})}):0===c.length?jsxRuntimeExports.jsx(LayoutTitlePage,{...h,title:b,subtitle:w??jsxRuntimeExports.jsx(a,{message:"Enter your username and password",id:"T0KLp4"}),children:jsxRuntimeExports.jsx(SignInForm,{onSubmit:g,onForgotPassword:p,onBack:f})}):F?jsxRuntimeExports.jsx(LayoutTitlePage,{...h,title:b,subtitle:w??jsxRuntimeExports.jsx(a,{message:"Enter your username and password",id:"T0KLp4"}),children:jsxRuntimeExports.jsx(SignInForm,{onSubmit:g,onForgotPassword:p,onBack:()=>P(false)})}):jsxRuntimeExports.jsx(LayoutTitlePage,{...h,title:b,subtitle:w??jsxRuntimeExports.jsx(a,{message:"Select from an existing account",id:"o3dwub"}),children:jsxRuntimeExports.jsx(SignInPicker,{accounts:B,onAccount:e=>d(e.sub),onOther:()=>P(true),onBack:f})})}
74
-
75
- let i$1=e=>null!=e&&false!==e,d$1=e=>i$1(e)&&true===e.invalid,r=e=>!i$1(e)||false===e.invalid;function useStepper(a){let f=a.findIndex(i$1),l=a.findLastIndex(i$1),o=a.findIndex(d$1),[x,p]=reactExports.useState(f),s=reactExports.useCallback(e=>-1!==e&&!!a[e]&&(p(e),true),[a.map(i$1).join()]),u=a.findLastIndex((e,n)=>i$1(e)&&n<x),I=a.findIndex((e,n)=>i$1(e)&&n>x),v=reactExports.useCallback(()=>s(f),[s,f]),c=reactExports.useCallback(()=>s(l),[s,l]),m=reactExports.useCallback(()=>s(u),[s,u]),L=reactExports.useCallback(()=>s(I),[s,I]),g=reactExports.useCallback(()=>s(o),[s,o]),h=x+1+a.reduce((e,n,t)=>t>=x||i$1(n)?e:e-1,0),j=a.filter(i$1).length,y=a.every(r),F=-1!==x&&a[x]?a[x]:void 0,S=-1===x;return reactExports.useEffect(()=>{S&&v();},[S]),{current:F,currentPosition:h,count:j,completed:y,atFirst:1===h,atLast:h===j,toFirst:v,toLast:c,toPrev:m,toNext:L,toRequired:g}}
76
-
77
- function WizardCard({prevLabel:n,nextLabel:o,onBack:l,backLabel:m,onDone:c,doneLabel:d,steps:x,className:p,...u}){let{atFirst:f,atLast:h,count:v,current:g,currentPosition:b,completed:N,toNext:j,toPrev:k,toRequired:z}=useStepper(x),B=reactExports.useCallback(()=>{j()||z();},[j,z]),L={current:true,invalid:!!g&&g.invalid,prevLabel:f&&m||n||jsxRuntimeExports.jsx(a,{message:"Back",id:"iH8pgl"}),prev:f?l:k,nextLabel:h&&d||o||jsxRuntimeExports.jsx(a,{message:"Next",id:"hXzOVo"}),next:h&&N?c:B},P=g?.titleRender?.(L),R=g?.contentRender?.(L);return jsxRuntimeExports.jsxs("div",{className:clsx(p,"flex flex-col"),...u,children:[jsxRuntimeExports.jsx("p",{className:"text-slate-500 dark:text-slate-400",children:jsxRuntimeExports.jsx(a,{message:"Step {currentPosition} of {count}",id:"BEx8rG",values:{currentPosition:b,count:v}})}),P&&jsxRuntimeExports.jsx("h2",{className:"font-medium text-xl mb-4",children:P}),R]})}
78
-
79
- function HelpCard({links:a$1,className:l,...s}){let n=a$1?.find(e=>"help"===e.rel);return n?jsxRuntimeExports.jsx("p",{...s,className:clsx("text-sm rounded-md bg-slate-100 text-slate-800 dark:bg-slate-800 dark:text-slate-400 p-3",l),children:jsxRuntimeExports.jsx(a,{message:"Having trouble? <0>Contact support</0>",id:"87VTIH",components:{0:jsxRuntimeExports.jsx("a",{role:"link",href:n.href,rel:n.rel,target:"_blank",className:"text-brand"})}})}):null}
80
-
81
- function SignUpAccountForm({inviteCodeRequired:f=true,credentials:g,onCredentials:v,onNext:b,nextLabel:w,onPrev:h,prevLabel:C,children:H,ref:K,invalid:j,...q}){let{i18n:y,_:I}=l$3(),[k,F]=reactExports.useState(g?.email),[L,_]=reactExports.useState(g?.password),[E,N]=reactExports.useState(g?.inviteCode),P=reactExports.useRef(null),S=()=>P.current?.reset(),T=reactExports.useMemo(()=>k&&L&&(!f||E)?{email:k,password:L,inviteCode:f?E:void 0}:void 0,[k,L,E,f]);return reactExports.useEffect(()=>{v?.(T);},[T,v]),jsxRuntimeExports.jsxs(FormCardAsync,{...q,ref:mergeRefs([K,P]),invalid:j||!T,onCancel:h,cancelLabel:C,onSubmit:b,submitLabel:w,append:H,children:[f&&jsxRuntimeExports.jsx(Fieldset,{label:jsxRuntimeExports.jsx(a,{message:"Invite code",id:"6KlkHI"}),children:jsxRuntimeExports.jsx(InputText,{icon:jsxRuntimeExports.jsx(TokenIcon,{className:"w-5"}),autoFocus:true,name:"inviteCode",title:y._({id:"6KlkHI",message:"Invite code"}),placeholder:y._({id:"jxqcgY",message:"example-com-xxxxx-xxxxx"}),required:true,value:E||"",onChange:e=>{N(e.target.value||void 0),S();},enterKeyHint:"next"})}),jsxRuntimeExports.jsx(Fieldset,{label:jsxRuntimeExports.jsx(a,{message:"Email",id:"O3oNi5"}),children:jsxRuntimeExports.jsx(InputEmailAddress,{autoFocus:!f,name:"email",enterKeyHint:"next",required:true,defaultValue:k,onEmail:e=>{F(e),S();}})}),jsxRuntimeExports.jsx(Fieldset,{label:jsxRuntimeExports.jsx(a,{message:"Password",id:"8ZsakT"}),children:jsxRuntimeExports.jsx(InputNewPassword,{name:"password",enterKeyHint:"next",required:true,password:L,onPassword:e=>{_(e),S();}})})]})}
82
-
83
- function SignUpDisclaimer({links:t,className:a$1,...c}){let n=t?.find(e=>"terms-of-service"===e.rel),l=t?.find(e=>"privacy-policy"===e.rel);return jsxRuntimeExports.jsx("p",{className:clsx("text-sm text-slate-500 dark:text-slate-400",a$1),...c,children:jsxRuntimeExports.jsx(a,{message:"By creating an account you agree to the {0} and the {1} of this service.",id:"mBUXx0",values:{0:n?jsxRuntimeExports.jsx(LinkAnchor,{className:"text-brand underline",link:n,children:jsxRuntimeExports.jsx(a,{message:"Terms of Service",id:"xowcRf"})}):jsxRuntimeExports.jsx(a,{message:"Terms of Service",id:"xowcRf"}),1:l?jsxRuntimeExports.jsx(LinkAnchor,{className:"text-brand underline",link:l,children:jsxRuntimeExports.jsx(a,{message:"Privacy Policy",id:"LcET2C"})}):jsxRuntimeExports.jsx(a,{message:"Privacy Policy",id:"LcET2C"})}})})}
84
-
85
- let x=e=>3+e.length<=30&&e.startsWith(".")&&!e.endsWith(".");function SignUpHandleForm({domains:a$1,onNext:g,nextLabel:h,onPrev:v,prevLabel:y,handle:w,onHandle:L,invalid:N,children:C,ref:k,...z}){let{i18n:_,_:B}=l$3(),H=a$1.filter(x),S=reactExports.useRef(null),[$,j]=reactExports.useState(()=>{let e=H.findIndex(e=>w?.endsWith(e));return -1===e?0:e}),[M,V]=reactExports.useState(()=>w?.split(".")[0]||"");reactExports.useEffect(()=>{j(e=>Math.min(e,H.length-1));},[H.length]);let D=H[$]||H[0]||null,{minLength:F,maxLength:T,validateSegment:W}=function(e){let t=Math.min(18,30-e.length),a=reactExports.useCallback(e=>{let a=e.length>=3&&e.length<=t,n=/^[a-z0-9][a-z0-9-]+[a-z0-9]$/g.test(e);return {validLength:a,validCharset:n,valid:a&&n}},[t,3]);return {minLength:3,maxLength:t,validateSegment:a}}(D),I=W(M),J=D&&I.valid?`${M}${D}`:void 0;reactExports.useEffect(()=>{S.current?.reset(),L?.(J);},[L,J]);let K=reactExports.useRef(null),O=`@${M}${D}`;return jsxRuntimeExports.jsxs(FormCardAsync,{...z,ref:mergeRefs([k,S]),onCancel:v,cancelLabel:y,onSubmit:g,submitLabel:h,invalid:N||!J,append:C,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(b,{hasValue:!!M,valid:I.validLength,children:jsxRuntimeExports.jsx(a,{message:"Between {minLength} and {maxLength} characters",id:"4Rgp24",values:{minLength:F,maxLength:T}})}),jsxRuntimeExports.jsx(b,{hasValue:!!M,valid:I.validCharset,children:jsxRuntimeExports.jsx(a,{message:"Only letters, numbers, and hyphens",id:"yDlXDJ"})})]}),jsxRuntimeExports.jsx(InputText,{ref:K,icon:jsxRuntimeExports.jsx(AtSymbolIcon,{className:"w-5"}),name:"handle",type:"text",title:_._({id:"LX2sHe",message:"Type your desired username"}),pattern:"[a-z0-9][a-z0-9\\-]+[a-z0-9]",minLength:F,maxLength:T,autoCapitalize:"none",autoCorrect:"off",autoComplete:"off",dir:"auto",enterKeyHint:"done",autoFocus:true,required:true,value:M,onChange:e=>{let t=e.target.value.toLowerCase(),a=e.target.selectionStart,n=e.target.selectionEnd;e.target.value=t,e.target.setSelectionRange(a,n),V(t);},append:H.length>1&&jsxRuntimeExports.jsx("select",{onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),value:$,"aria-label":_._({id:"HB+TbB",message:"Select domain"}),onChange:e=>{j(Number(e.target.value)),K.current?.focus();},className:clsx("block w-full","text-sm","rounded-lg p-2","bg-white dark:bg-slate-600"),children:H.map((t,a)=>jsxRuntimeExports.jsx("option",{value:a,children:t},t))}),bellow:jsxRuntimeExports.jsx(a,{message:"Your full username will be: {0}",id:"r/b/p8",values:{0:M.length?jsxRuntimeExports.jsx("strong",{className:"text-gray-800 dark:text-gray-200",children:O}):jsxRuntimeExports.jsx("span",{"aria-hidden":true,className:"bg-gray-300 dark:bg-slate-600 rounded-md p-2 w-24"})}})}),jsxRuntimeExports.jsx(Admonition,{role:"status",children:jsxRuntimeExports.jsx("p",{className:"text-md",children:jsxRuntimeExports.jsx(a,{message:"You can change this username to any domain name you control after your account is set up.",id:"B9VwbO"})})})]})}function b({valid:l,hasValue:r,children:i,className:s,...o}){let{i18n:m,_:d}=l$3();return jsxRuntimeExports.jsxs("div",{...o,className:clsx("flex flex-row items-center gap-2",s),children:[r?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:l?jsxRuntimeExports.jsx(CheckMarkIcon,{className:"inline-block w-4 h-4 text-success",title:m._({id:"nfagfM",message:"Valid"})}):jsxRuntimeExports.jsx(XMarkIcon,{className:"inline-block w-4 h-4 text-error",title:m._({id:"JHB/Ky",message:"Invalid"})})}):jsxRuntimeExports.jsx("div",{"aria-hidden":true,className:"w-4 h-4 flex items-center justify-center",children:jsxRuntimeExports.jsx("div",{className:"bg-gray-300 dark:bg-slate-600 rounded-full w-2 h-2"})}),jsxRuntimeExports.jsx("div",{className:"text-sm",children:i})]})}
86
-
87
- let t="undefined"==typeof window?null:window.matchMedia("(prefers-color-scheme: dark)");function useBrowserColorScheme(){let[n,o]=reactExports.useState(t?.matches?"dark":"light");return reactExports.useEffect(()=>{if(!t)return;let e=()=>{o(t.matches?"dark":"light");};return t.addEventListener("change",e),()=>{t.removeEventListener("change",e);}},[]),n}
88
-
89
- let i=reactExports.lazy(()=>import('./index-DXlCRM6V.js'));function SignUpHcaptchaForm({siteKey:e,token:s,onToken:l,prevLabel:p,onPrev:f,nextLabel:u,onNext:h,ref:b,invalid:d,children:x,...k}){let y=reactExports.useRef(null),L=useBrowserColorScheme(),[j,w]=reactExports.useState(s),C=reactExports.useCallback(()=>{y.current?.execute();},[]),S=reactExports.useCallback((r,e)=>{w(r),l(r,e);},[l]),U=reactExports.useCallback(r=>{if(j)return h(r);if(y.current)y.current.execute();else throw Error("Unable to load hCaptcha")},[j,h]);return jsxRuntimeExports.jsx(FormCardAsync,{...k,cancelLabel:p,onCancel:f,submitLabel:u,onSubmit:U,append:x,invalid:d||!j,children:jsxRuntimeExports.jsx(i,{theme:L,sitekey:e,onLoad:C,onVerify:S,ref:mergeRefs([b,y])})})}
90
-
91
- function SignUpView({customizationData:{availableUserDomains:p=[],hcaptchaSiteKey:f,inviteCodeRequired:x=true,links:g}={},onValidateNewHandle:v,onDone:h,onBack:b,...R}){let{i18n:k,_:L}=l$3(),[y,N]=reactExports.useState(void 0),[w,j]=reactExports.useState(void 0),[C,P]=reactExports.useState(void 0),S=null==f?void 0:C||false,T=reactExports.useCallback(e=>{if(y&&w&&false!==S)return h({...y,handle:w,hcaptchaToken:S},e)},[y,w,S,h]);return jsxRuntimeExports.jsxs(LayoutTitlePage,{...R,title:R.title??k._({id:"IS0nrP",message:"Create Account"}),subtitle:R.subtitle??jsxRuntimeExports.jsx(a,{message:"We're so excited to have you join us!",id:"qjBGxf"}),children:[jsxRuntimeExports.jsx(WizardCard,{doneLabel:jsxRuntimeExports.jsx(a,{message:"Sign up",id:"e+RpCP"}),onBack:b,onDone:T,steps:[{invalid:!w,titleRender:()=>jsxRuntimeExports.jsx(a,{message:"Choose a username",id:"khEQ02"}),contentRender:({prev:n,prevLabel:i,next:t,nextLabel:o,invalid:r})=>jsxRuntimeExports.jsx(SignUpHandleForm,{className:"flex-grow",invalid:r,domains:p,handle:w,onHandle:j,prevLabel:i,onPrev:n,nextLabel:o,onNext:async e=>{if(w&&await v({handle:w},e),!e.aborted)return t(e)},children:jsxRuntimeExports.jsx(SignUpDisclaimer,{links:g})})},{invalid:!y,titleRender:()=>jsxRuntimeExports.jsx(a,{message:"Your account",id:"gdRnT7"}),contentRender:({prev:n,prevLabel:i,next:t,nextLabel:o,invalid:r})=>jsxRuntimeExports.jsx(SignUpAccountForm,{className:"flex-grow",invalid:r,prevLabel:i,onPrev:n,nextLabel:o,onNext:t,inviteCodeRequired:x,credentials:y,onCredentials:N,children:jsxRuntimeExports.jsx(SignUpDisclaimer,{links:g})})},null!=f&&{invalid:false===S,titleRender:()=>jsxRuntimeExports.jsx(a,{message:"Verify you are human",id:"aIar4b"}),contentRender:({prev:n,prevLabel:i,next:t,nextLabel:o,invalid:r})=>jsxRuntimeExports.jsx(SignUpHcaptchaForm,{className:"flex-grow",invalid:r,siteKey:f,token:C,onToken:P,prevLabel:i,onPrev:n,nextLabel:o,onNext:t,children:jsxRuntimeExports.jsx(SignUpDisclaimer,{links:g})})}]}),jsxRuntimeExports.jsx(HelpCard,{className:"mt-4",links:g})]})}
92
-
93
- function WelcomeView({onSignUp:a$1,onSignIn:s,onCancel:l,...r}){let{i18n:c,_:u}=l$3();return jsxRuntimeExports.jsxs(LayoutWelcome,{...r,title:r.title??c._({id:"OX6vme",message:"Authenticate"}),children:[a$1&&jsxRuntimeExports.jsx(Button,{className:"m-1 w-60 max-w-full min-w-min",color:s?"brand":void 0,onClick:a$1,children:jsxRuntimeExports.jsx(a,{message:"Create a new account",id:"mpt9T+"})}),s&&jsxRuntimeExports.jsx(Button,{className:"m-1 w-60 max-w-full min-w-min",color:a$1?void 0:"brand",onClick:s,children:jsxRuntimeExports.jsx(a,{message:"Sign in",id:"5lWFkC"})}),l&&jsxRuntimeExports.jsx(Button,{className:"m-1 w-60 max-w-full min-w-min",onClick:l,children:jsxRuntimeExports.jsx(a,{message:"Cancel",id:"dEgA5A"})})]})}
94
-
95
- var d,g=((d=g||{})[d.Welcome=0]="Welcome",d[d.SignUp=1]="SignUp",d[d.SignIn=2]="SignIn",d[d.ResetPassword=3]="ResetPassword",d[d.Accept=4]="Accept",d[d.Done=5]="Done",d);function AuthorizeView({authorizeData:d,customizationData:g,...f}){let{i18n:w,_:v}=l$3(),x=d?.loginHint!=null,[D,h]=reactExports.useState(2*!!x),R=useBoundDispatch(h,5),S=useBoundDispatch(h,2),k=useBoundDispatch(h,3),I=useBoundDispatch(h,1),U=useBoundDispatch(h,4),q=useBoundDispatch(h,0),[H,P]=reactExports.useState(void 0),{sessions:b,selectSub:A,doValidateNewHandle:B,doSignUp:j,doSignIn:z,doInitiatePasswordReset:C,doConfirmResetPassword:T,doAccept:y,doReject:L}=useApi({...d,onRedirected:R}),M=b.find(e=>e.selected&&!e.loginRequired);reactExports.useEffect(()=>{M&&(M.consentRequired?U():y(M.account));},[M,y,U]);let Q=!!g?.availableUserDomains?.length&&!d.loginHint,V=1===D&&!Q||4===D&&!M;if(reactExports.useEffect(()=>{V&&q();},[V,q]),0===D)return jsxRuntimeExports.jsx(WelcomeView,{...f,customizationData:g,onSignIn:S,onSignUp:Q?I:void 0,onCancel:L});if(1===D)return jsxRuntimeExports.jsx(SignUpView,{...f,customizationData:g,onValidateNewHandle:B,onBack:q,onDone:j});if(3===D)return jsxRuntimeExports.jsx(ResetPasswordView,{...f,emailDefault:H,onresetPasswordRequest:C,onResetPasswordConfirm:T,onBack:x?S:q});if(2===D)return jsxRuntimeExports.jsx(SignInView,{...f,loginHint:d.loginHint,sessions:b,selectSub:A,onSignIn:z,onBack:x?L:q,onForgotPassword:e=>{k(),P(e);}});if(4===D)return M?jsxRuntimeExports.jsx(AcceptView,{...f,clientId:d.clientId,clientMetadata:d.clientMetadata,clientTrusted:d.clientTrusted,account:M.account,scopeDetails:d.scopeDetails,onAccept:()=>y(M.account),onReject:L,onBack:x?void 0:()=>{A(null),h(2*!!b.length);}}):null;if(5===D)return jsxRuntimeExports.jsx(LayoutTitlePage,{...f,title:f.title??w._({id:"UCOd1e",message:"Login complete"}),children:jsxRuntimeExports.jsx(a,{message:"You are being redirected...",id:"qq6QQ5"})});throw Error("Unexpected application state")}
96
-
97
- const availableLocales=readBackendData("__availableLocales");const customizationData=readBackendData("__customizationData");const authorizeData=readBackendData("__authorizeData");if(authorizeData){let a=new URL(window.location.href);"/oauth/authorize"!==a.pathname||a.searchParams.has("request_uri")||(a.search="",a.searchParams.set("client_id",authorizeData.clientId),a.searchParams.set("request_uri",authorizeData.requestUri),window.history.replaceState(history.state,"",a.pathname+a.search));}clientExports.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(reactExports.StrictMode,{children:jsxRuntimeExports.jsx(LocaleProvider,{availableLocales:availableLocales,children:jsxRuntimeExports.jsx(u$1,{fallbackRender:({error:t})=>jsxRuntimeExports.jsx(ErrorView,{error:t,customizationData:customizationData}),children:jsxRuntimeExports.jsx(AuthorizeView,{customizationData:customizationData,authorizeData:authorizeData})})})}));
98
-
99
- export { authorizeData, availableLocales, customizationData };
100
- //# sourceMappingURL=COdVzed-.js.map