@rolatech/angular-auth 20.3.2-beta.1 → 20.3.2-beta.3

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.
@@ -697,7 +697,7 @@ class AgentAccessMenu {
697
697
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: AgentAccessMenu, isStandalone: true, selector: "rolatech-agent-access-menu", inputs: { applicationCode: { classPropertyName: "applicationCode", publicName: "applicationCode", isSignal: true, isRequired: false, transformFunction: null }, applyRouterLink: { classPropertyName: "applyRouterLink", publicName: "applyRouterLink", isSignal: true, isRequired: false, transformFunction: null }, applicationsRouterLink: { classPropertyName: "applicationsRouterLink", publicName: "applicationsRouterLink", isSignal: true, isRequired: false, transformFunction: null }, dashboardRouterLink: { classPropertyName: "dashboardRouterLink", publicName: "dashboardRouterLink", isSignal: true, isRequired: false, transformFunction: null }, showApplyAction: { classPropertyName: "showApplyAction", publicName: "showApplyAction", isSignal: true, isRequired: false, transformFunction: null }, dashboardLabel: { classPropertyName: "dashboardLabel", publicName: "dashboardLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
698
698
  @if (entry(); as item) {
699
699
  @if (item.href) {
700
- <a mat-menu-item [href]="item.href" class="px-6 flex items-center cursor-pointer">
700
+ <a mat-menu-item [href]="item.href" target="_blank" class="px-6 flex items-center cursor-pointer">
701
701
  @if (item.icon) {
702
702
  <mat-icon> {{ item.icon }} </mat-icon>
703
703
  }
@@ -726,7 +726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
726
726
  template: `
727
727
  @if (entry(); as item) {
728
728
  @if (item.href) {
729
- <a mat-menu-item [href]="item.href" class="px-6 flex items-center cursor-pointer">
729
+ <a mat-menu-item [href]="item.href" target="_blank" class="px-6 flex items-center cursor-pointer">
730
730
  @if (item.icon) {
731
731
  <mat-icon> {{ item.icon }} </mat-icon>
732
732
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-auth.mjs","sources":["../../../../packages/angular-auth/src/lib/auth-context.store.ts","../../../../packages/angular-auth/src/lib/auth.store.ts","../../../../packages/angular-auth/src/lib/routing/access-denied.utils.ts","../../../../packages/angular-auth/src/lib/services/auth.service.ts","../../../../packages/angular-auth/src/lib/components/forbidden/forbidden.component.ts","../../../../packages/angular-auth/src/lib/components/forbidden/forbidden.component.html","../../../../packages/angular-auth/src/lib/components/unauthorized/unauthorized.component.ts","../../../../packages/angular-auth/src/lib/components/unauthorized/unauthorized.component.html","../../../../packages/angular-auth/src/lib/access/role.constants.ts","../../../../packages/angular-auth/src/lib/components/agent-access-menu/agent-access-menu.component.ts","../../../../packages/angular-auth/src/lib/components/faceid-detect-dialog/faceid-detect-dialog.component.ts","../../../../packages/angular-auth/src/lib/components/faceid-detect-dialog/faceid-detect-dialog.component.html","../../../../packages/angular-auth/src/lib/interfaces/auth.interface.ts","../../../../packages/angular-auth/src/lib/components/address/address.component.ts","../../../../packages/angular-auth/src/lib/components/address/address.component.html","../../../../packages/angular-auth/src/lib/guards/auth.guard.ts","../../../../packages/angular-auth/src/lib/components/auth-dialog/auth-dialog.component.ts","../../../../packages/angular-auth/src/lib/components/auth-dialog/auth-dialog.component.html","../../../../packages/angular-auth/src/lib/guards/auth-dialog.guard.ts","../../../../packages/angular-auth/src/lib/access/access.utils.ts","../../../../packages/angular-auth/src/lib/guards/access.guard.ts","../../../../packages/angular-auth/src/lib/guards/landing-redirect.guard.ts","../../../../packages/angular-auth/src/lib/guards/role.guard.ts","../../../../packages/angular-auth/src/lib/guards/permission.guard.ts","../../../../packages/angular-auth/src/lib/services/auth-user.service.ts","../../../../packages/angular-auth/src/lib/services/auth-agent.service.ts","../../../../packages/angular-auth/src/lib/services/storage.service.ts","../../../../packages/angular-auth/src/lib/interceptors/error.interceptor.ts","../../../../packages/angular-auth/src/lib/interceptors/auth.interceptor.ts","../../../../packages/angular-auth/src/provider.ts","../../../../packages/angular-auth/src/lib/auth.routes.ts","../../../../packages/angular-auth/src/lib/navigation/navigation.tokens.ts","../../../../packages/angular-auth/src/lib/navigation/app-navigation.service.ts","../../../../packages/angular-auth/src/lib/routing/shell-routing.ts","../../../../packages/angular-auth/src/rolatech-angular-auth.ts"],"sourcesContent":["import { Injectable, computed, signal } from '@angular/core';\n\ntype AuthContextState = {\n appId: string | null;\n orgId: string | null;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AuthContextStore {\n private readonly state = signal<AuthContextState>({\n appId: null,\n orgId: null,\n });\n\n readonly appId = computed(() => this.state().appId);\n readonly orgId = computed(() => this.state().orgId);\n\n setContext(appId: string | null, orgId: string | null): void {\n this.state.set({ appId, orgId });\n }\n\n setAppId(appId: string | null): void {\n this.state.update((state) => ({ ...state, appId }));\n }\n\n setOrgId(orgId: string | null): void {\n this.state.update((state) => ({ ...state, orgId }));\n }\n\n clear(): void {\n this.state.set({ appId: null, orgId: null });\n }\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport { User } from './interfaces/auth.interface';\nimport { AppMembershipResponse, MeContextResponse, OrgMembershipResponse } from './interfaces/me.interface';\n\ntype AuthState = {\n userId: string;\n user: User | null;\n roles: string[];\n username: string | null;\n platformRoles: string[];\n applications: AppMembershipResponse[];\n organizations: OrgMembershipResponse[];\n permissions: string[];\n authenticated: boolean | null;\n loaded: boolean;\n};\n@Injectable({ providedIn: 'root' })\nexport class AuthStore {\n private _state = signal<AuthState>({\n userId: '',\n user: null,\n roles: [],\n username: null,\n platformRoles: [],\n applications: [],\n organizations: [],\n permissions: [],\n authenticated: false,\n loaded: false,\n });\n userId = computed(() => this._state().userId);\n user = computed(() => this._state().user);\n roles = computed(() => this._state().roles);\n username = computed(() => this._state().username);\n platformRoles = computed(() => this._state().platformRoles);\n applications = computed(() => this._state().applications);\n organizations = computed(() => this._state().organizations);\n permissions = computed(() => this._state().permissions);\n authenticated = computed(() => this._state().authenticated);\n loaded = computed(() => this._state().loaded);\n me = computed<MeContextResponse | null>(() => {\n if (!this.loaded() || !this.authenticated()) {\n return null;\n }\n\n return {\n userId: this.userId(),\n username: this.username() ?? this.user()?.username ?? '',\n platformRoles: this.platformRoles(),\n applications: this.applications(),\n organizations: this.organizations(),\n permissions: this.permissions(),\n };\n });\n primaryApplication = computed(() => this.applications()[0] ?? null);\n primaryOrganization = computed(() => this.organizations()[0] ?? null);\n\n update(data: any) {\n this._state.update((state) => {\n state.authenticated = data.authenticated;\n state.userId = data.userId ?? state.userId;\n state.roles = data.roles ?? state.roles;\n state.loaded = data.loaded ?? state.loaded;\n state.user = data.user ?? state.user;\n state.username = data.username ?? state.username;\n state.platformRoles = data.platformRoles ?? state.platformRoles;\n state.applications = data.applications ?? state.applications;\n state.organizations = data.organizations ?? state.organizations;\n state.permissions = data.permissions ?? state.permissions;\n return { ...state };\n });\n }\n clear() {\n this._state.set({\n userId: '',\n user: null,\n roles: [],\n username: null,\n platformRoles: [],\n applications: [],\n organizations: [],\n permissions: [],\n authenticated: false,\n loaded: true,\n });\n }\n resetLoading() {\n this._state.update((state) => ({ ...state, loaded: false }));\n }\n updateAuthenticated(authenticated: boolean) {\n this._state.update((state) => {\n state.authenticated = authenticated;\n return { ...state };\n });\n }\n updateUser(user: User) {\n this._state.update((state) => {\n state.user = user;\n state.username = user.username;\n return { ...state };\n });\n }\n updateContext(context: MeContextResponse) {\n this._state.update((state) => ({\n ...state,\n userId: context.userId,\n username: context.username,\n platformRoles: context.platformRoles ?? [],\n applications: context.applications ?? [],\n organizations: context.organizations ?? [],\n permissions: context.permissions ?? [],\n }));\n }\n updateEmail(email: string) {\n this._state.update((state) => {\n if (state.user) {\n state.user = { ...state.user, email };\n }\n return { ...state };\n });\n }\n hasAnyRole(...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n const roleSet = new Set(this.roles());\n return roles.some((role) => roleSet.has(role));\n }\n hasPlatformRole(...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n const roleSet = new Set(this.platformRoles().length ? this.platformRoles() : this.roles());\n return roles.some((role) => roleSet.has(role));\n }\n hasApplicationRole(appId: string | null, ...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n return this.applications().some((membership) => {\n if (appId && membership.appId !== appId) {\n return false;\n }\n\n const roleSet = new Set(membership.roles);\n return roles.some((role) => roleSet.has(role));\n });\n }\n hasOrganizationRole(appId: string | null, orgId: string | null, ...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n return this.organizations().some((membership) => {\n if (appId && membership.appId !== appId) {\n return false;\n }\n\n if (orgId && membership.orgId !== orgId) {\n return false;\n }\n\n const roleSet = new Set(membership.roles);\n return roles.some((role) => roleSet.has(role));\n });\n }\n hasPermission(permission: string): boolean {\n return this.permissions().includes(permission);\n }\n}\n","import { Router, UrlTree } from '@angular/router';\n\nconst LAST_ALLOWED_URL_KEY = 'rolatech.auth.last-allowed-url';\n\nfunction normalizeUrl(url?: string | null): string | null {\n if (!url) {\n return null;\n }\n\n if (url.startsWith('http://') || url.startsWith('https://')) {\n try {\n const parsed = new URL(url);\n return `${parsed.pathname}${parsed.search}${parsed.hash}` || '/';\n } catch {\n return null;\n }\n }\n\n return url.startsWith('/') ? url : `/${url}`;\n}\n\nfunction isAccessBoundaryUrl(url: string): boolean {\n return url.startsWith('/forbidden') || url.startsWith('/unauthorized');\n}\n\nexport function rememberAllowedUrl(url?: string | null): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n const normalizedUrl = normalizeUrl(url);\n if (!normalizedUrl || isAccessBoundaryUrl(normalizedUrl)) {\n return;\n }\n\n window.sessionStorage.setItem(LAST_ALLOWED_URL_KEY, normalizedUrl);\n}\n\nexport function readLastAllowedUrl(): string | null {\n if (typeof window === 'undefined') {\n return null;\n }\n\n const value = normalizeUrl(window.sessionStorage.getItem(LAST_ALLOWED_URL_KEY));\n if (!value || isAccessBoundaryUrl(value)) {\n return null;\n }\n\n return value;\n}\n\nexport function createForbiddenUrlTree(router: Router, deniedUrl?: string | null, reason = 'forbidden'): UrlTree {\n const queryParams: Record<string, string> = {\n reason,\n };\n\n const normalizedDeniedUrl = normalizeUrl(deniedUrl);\n if (normalizedDeniedUrl) {\n queryParams['denied'] = normalizedDeniedUrl;\n }\n\n const fallbackUrl = readLastAllowedUrl();\n if (fallbackUrl) {\n queryParams['fallback'] = fallbackUrl;\n }\n\n return router.createUrlTree(['/forbidden'], { queryParams });\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, forkJoin, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { PasswordChange, APP_CONFIG, PasswordResetConfirmRequest, ApiResponse } from '@rolatech/angular-common';\nimport { IntrospectResponse, User } from '../interfaces/auth.interface';\nimport { AuthStore } from '../auth.store';\nimport { AuthContextStore } from '../auth-context.store';\nimport { MeContextResponse } from '../interfaces/me.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n authStore = inject(AuthStore);\n authContextStore = inject(AuthContextStore);\n authenticated = this.authStore.authenticated;\n userId = this.authStore.userId;\n user = this.authStore.user;\n roles = this.authStore.roles;\n meContext = this.authStore.me;\n platformRoles = this.authStore.platformRoles;\n applications = this.authStore.applications;\n organizations = this.authStore.organizations;\n permissions = this.authStore.permissions;\n loaded = this.authStore.loaded;\n private pendingIntrospect$?: Observable<IntrospectResponse>;\n\n public introspect(force = false): Observable<IntrospectResponse> {\n if (!force && this.authStore.loaded()) {\n return of(this.currentSession());\n }\n\n if (!force && this.pendingIntrospect$) {\n return this.pendingIntrospect$;\n }\n\n const request$ = this.http\n .get<IntrospectResponse>(`${this.environment.baseUrl}/auth/introspect`, {\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n if (!res.authenticated) {\n this.authStore.clear();\n this.authContextStore.clear();\n return of(res);\n }\n\n return forkJoin({\n user: this.me().pipe(catchError(() => of(null))),\n context: this.getMeContext().pipe(catchError(() => of(this.emptyContext(res)))),\n }).pipe(\n map(({ user, context }) => {\n this.authStore.update({\n authenticated: true,\n userId: res.userId,\n roles: res.roles ?? [],\n loaded: true,\n user,\n username: context.username ?? res.username ?? user?.username ?? null,\n platformRoles: context.platformRoles?.length ? context.platformRoles : (res.roles ?? []),\n applications: context.applications ?? [],\n organizations: context.organizations ?? [],\n permissions: context.permissions ?? [],\n });\n this.syncContext(context);\n return res;\n }),\n );\n }),\n catchError((error) => {\n this.authStore.clear();\n this.authContextStore.clear();\n return throwError(() => error);\n }),\n finalize(() => {\n this.pendingIntrospect$ = undefined;\n }),\n shareReplay(1),\n );\n\n this.pendingIntrospect$ = request$;\n return request$;\n }\n\n ensureLoaded(force = false): Observable<IntrospectResponse> {\n return this.introspect(force);\n }\n getMeContext(): Observable<MeContextResponse> {\n return this.http\n .get<ApiResponse<MeContextResponse>>(`${this.environment.baseUrl}/auth/me/context`)\n .pipe(map((res) => res.data));\n }\n me(): Observable<User | null> {\n return this.http\n .get<ApiResponse<User>>(`${this.environment.baseUrl}/auth/me`, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.updateUser(res.data);\n return res.data;\n }),\n );\n }\n wechatLogin(code: string, state: string) {\n return this.http.post<any>(\n `${this.environment.baseUrl}/auth/wechat/login?code=${code}&state=${state}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n wechatDisconnect() {\n return this.http.post<any>(\n `${this.environment.baseUrl}/auth/wechat/disconnect`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n requestFaceIdDetect() {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/face-id`, {\n withCredentials: true,\n });\n }\n faceIdStatus() {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/face-id/status/me`, {\n withCredentials: true,\n });\n }\n faceIdStatusByToken(token: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/face-id/status/me/by`, {\n params: { token: token },\n withCredentials: true,\n });\n }\n wechatStatus(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/wechat/status/by`, {\n params: options,\n withCredentials: true,\n });\n }\n login(data: any) {\n return this.http\n .post<any>(`${this.environment.baseUrl}/auth/login`, data, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.resetLoading();\n return res.data;\n }),\n );\n }\n signup(data: any): Observable<any> {\n return this.http\n .post<any>(`${this.environment.baseUrl}/auth/signup`, data, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.resetLoading();\n return res;\n }),\n );\n }\n logout() {\n return this.http\n .get<any>(`${this.environment.baseUrl}/auth/logout`, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.clear();\n this.authContextStore.clear();\n return res;\n }),\n );\n }\n requestPasswordReset(email: string) {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/password/reset-request`, { email });\n }\n validatePasswordRestToken(token: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/password/reset-tokens/${token}`);\n }\n resetPassword(data: PasswordResetConfirmRequest) {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/password/reset`, data);\n }\n changePassword(data: PasswordChange) {\n return this.http\n .put<any>(`${this.environment.baseUrl}/auth/users/password`, data, {\n withCredentials: true,\n })\n .pipe(\n map((user) => {\n return user;\n }),\n tap((_) => {\n this.authStore.resetLoading();\n }),\n );\n }\n lookup(account: string, next: string) {\n return this.http\n .post<any>(\n `${this.environment.baseUrl}/auth/lookup`,\n {\n account,\n next,\n },\n { withCredentials: false },\n )\n .pipe(\n map((user) => {\n return user;\n }),\n );\n }\n challenge(username: string, password: string, next: string) {\n return this.http\n .post<any>(\n `${this.environment.baseUrl}/auth/challenge`,\n {\n username,\n password,\n next,\n },\n { withCredentials: true },\n )\n .pipe(\n map((user) => {\n return user;\n }),\n tap((_) => {\n this.authStore.resetLoading();\n }),\n );\n }\n hasAnyRole(...roles: string[]): boolean {\n return this.authStore.hasAnyRole(...roles);\n }\n hasPlatformRole(...roles: string[]): boolean {\n return this.authStore.hasPlatformRole(...roles);\n }\n hasApplicationRole(appId: string | null, ...roles: string[]): boolean {\n return this.authStore.hasApplicationRole(appId, ...roles);\n }\n hasOrganizationRole(appId: string | null, orgId: string | null, ...roles: string[]): boolean {\n return this.authStore.hasOrganizationRole(appId, orgId, ...roles);\n }\n hasPermission(permission: string): boolean {\n return this.authStore.hasPermission(permission);\n }\n\n private emptyContext(res: IntrospectResponse): MeContextResponse {\n return {\n userId: res.userId,\n username: res.username ?? '',\n platformRoles: [],\n applications: [],\n organizations: [],\n permissions: [],\n };\n }\n\n private syncContext(context: MeContextResponse): void {\n if (this.authContextStore.appId() || this.authContextStore.orgId()) {\n return;\n }\n\n const primaryOrganization = context.organizations[0] ?? null;\n if (primaryOrganization) {\n this.authContextStore.setContext(primaryOrganization.appId, primaryOrganization.orgId);\n return;\n }\n\n const primaryApplication = context.applications[0] ?? null;\n if (primaryApplication) {\n this.authContextStore.setAppId(primaryApplication.appId);\n }\n }\n\n private currentSession(): IntrospectResponse {\n return {\n authenticated: !!this.authStore.authenticated(),\n userId: this.authStore.userId(),\n roles: this.authStore.roles(),\n username: this.authStore.username() ?? this.authStore.user()?.username,\n };\n }\n}\n","import { Location } from '@angular/common';\nimport { Component, computed, inject, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { catchError, of } from 'rxjs';\nimport { AuthContextStore } from '../../auth-context.store';\nimport { AuthStore } from '../../auth.store';\nimport { readLastAllowedUrl } from '../../routing/access-denied.utils';\nimport { AuthService } from '../../services/auth.service';\n\n@Component({\n selector: 'rolatech-forbidden',\n imports: [MatButtonModule, MatProgressSpinnerModule],\n templateUrl: './forbidden.component.html',\n styleUrl: './forbidden.component.scss',\n})\nexport class ForbiddenComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly location = inject(Location);\n private readonly authService = inject(AuthService);\n private readonly authStore = inject(AuthStore);\n private readonly authContextStore = inject(AuthContextStore);\n private readonly environment = inject(APP_CONFIG);\n\n readonly switchingAccount = signal(false);\n readonly deniedUrl = this.normalizeRoute(this.route.snapshot.queryParamMap.get('denied'));\n readonly fallbackUrl = this.resolveFallbackUrl();\n readonly authenticated = this.authStore.authenticated;\n readonly accountLabel = computed(() => this.authStore.username() ?? this.authStore.user()?.email ?? 'this account');\n\n goBackOrFallback(): void {\n if (this.fallbackUrl) {\n this.router.navigateByUrl(this.fallbackUrl);\n return;\n }\n\n this.location.back();\n }\n\n signOutAndSwitchAccount(): void {\n const signInUrl = this.buildSignInUrl();\n this.switchingAccount.set(true);\n\n this.authService\n .logout()\n .pipe(\n catchError(() => {\n this.authStore.clear();\n this.authContextStore.clear();\n return of(null);\n }),\n )\n .subscribe({\n next: () => {\n window.location.href = signInUrl;\n },\n error: () => {\n window.location.href = signInUrl;\n },\n });\n }\n\n goToSignIn(): void {\n window.location.href = this.buildSignInUrl();\n }\n\n private buildSignInUrl(): string {\n const continueUrl = this.buildContinueUrl();\n return `${this.environment.accountsUrl}/signin?continue=${encodeURIComponent(continueUrl)}`;\n }\n\n private buildContinueUrl(): string {\n if (typeof window === 'undefined') {\n return this.environment.myaccountUrl;\n }\n\n const target = this.deniedUrl || this.fallbackUrl || '/';\n return new URL(target, window.location.origin).toString();\n }\n\n private resolveFallbackUrl(): string | null {\n const queryFallback = this.normalizeRoute(this.route.snapshot.queryParamMap.get('fallback'));\n const storedFallback = this.normalizeRoute(readLastAllowedUrl());\n const fallback = queryFallback || storedFallback;\n\n if (!fallback || fallback === this.deniedUrl || fallback.startsWith('/forbidden')) {\n return null;\n }\n\n return fallback;\n }\n\n private normalizeRoute(url?: string | null): string | null {\n if (!url) {\n return null;\n }\n\n return url.startsWith('/') ? url : `/${url}`;\n }\n}\n","<section class=\"forbidden-page\">\n <article class=\"forbidden-page__card\">\n <span class=\"forbidden-page__eyebrow\">403</span>\n <h1 class=\"forbidden-page__title\">This account cannot open that page</h1>\n\n @if (authenticated()) {\n <p class=\"forbidden-page__description\">\n You are signed in as <strong>{{ accountLabel() }}</strong>, but that account does not have permission to view this route.\n </p>\n } @else {\n <p class=\"forbidden-page__description\">You do not have permission to open this route with the current session.</p>\n }\n\n @if (deniedUrl) {\n <div class=\"forbidden-page__route\">\n <span class=\"forbidden-page__route-label\">Attempted page</span>\n <code class=\"forbidden-page__route-value\">{{ deniedUrl }}</code>\n </div>\n }\n\n <p class=\"forbidden-page__hint\">\n Return to a page that still works for this account, or sign out and continue with the correct account to retry access.\n </p>\n\n <div class=\"forbidden-page__actions\">\n <button mat-stroked-button type=\"button\" (click)=\"goBackOrFallback()\">\n {{ fallbackUrl ? 'Back to allowed page' : 'Go back' }}\n </button>\n\n @if (authenticated()) {\n <button mat-flat-button type=\"button\" (click)=\"signOutAndSwitchAccount()\" [disabled]=\"switchingAccount()\">\n @if (switchingAccount()) {\n <mat-progress-spinner diameter=\"18\" mode=\"indeterminate\"></mat-progress-spinner>\n }\n <span>{{ switchingAccount() ? 'Switching account...' : 'Sign out and switch account' }}</span>\n </button>\n } @else {\n <button mat-flat-button type=\"button\" (click)=\"goToSignIn()\">Sign in</button>\n }\n </div>\n\n <p class=\"forbidden-page__support\">\n If this should be available for the current account, ask an administrator to review the role or permission assignment.\n </p>\n </article>\n</section>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-unauthorized',\n templateUrl: './unauthorized.component.html',\n styleUrls: ['./unauthorized.component.scss'],\n})\nexport class UnauthorizedComponent {}\n","<div class=\"p-6 max-w-lg h-auto max-h-32\">\n <div class=\"flex flex-col\">\n <b>401.</b>\n <p>Unauthorized page.</p>\n </div>\n</div>\n","export const PLATFORM_ADMIN_ROLES = ['PLATFORM_ADMIN', 'ROLE_PLATFORM_ADMIN'] as const;\n\nexport const APPLICATION_OWNER_ROLES = ['APPLICATION_OWNER', 'APP_OWNER', 'ROLE_APPLICATION_OWNER', 'ROLE_APP_OWNER'] as const;\n\nexport const APPLICATION_ADMIN_ROLES = ['APPLICATION_ADMIN', 'APP_ADMIN', 'ROLE_APPLICATION_ADMIN', 'ROLE_APP_ADMIN'] as const;\n\nexport const ORGANIZATION_OWNER_ROLES = ['ORGANIZATION_OWNER', 'ORG_OWNER', 'ROLE_ORGANIZATION_OWNER', 'ROLE_ORG_OWNER'] as const;\n\nexport const ORGANIZATION_ADMIN_ROLES = ['ORGANIZATION_ADMIN', 'ORG_ADMIN', 'ROLE_ORGANIZATION_ADMIN', 'ROLE_ORG_ADMIN'] as const;\n\nexport const ORGANIZATION_MEMBER_ROLES = ['ORGANIZATION_MEMBER', 'ORG_MEMBER', 'ROLE_ORGANIZATION_MEMBER', 'ROLE_ORG_MEMBER'] as const;\n\nexport const ORGANIZATION_STAFF_ROLES = ['ORGANIZATION_STAFF', 'ORG_STAFF', 'ROLE_ORGANIZATION_STAFF', 'ROLE_ORG_STAFF'] as const;\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { RouterLink } from '@angular/router';\nimport { OnboardingApplicantService, OnboardingApplicationResponse, OnboardingStatus } from '@rolatech/angular-services';\nimport { catchError, of, switchMap } from 'rxjs';\nimport { AuthContextStore } from '../../auth-context.store';\nimport { AuthStore } from '../../auth.store';\nimport { ORGANIZATION_ADMIN_ROLES, ORGANIZATION_MEMBER_ROLES, ORGANIZATION_OWNER_ROLES } from '../../access/role.constants';\n\ninterface AgentMenuEntry {\n icon?: string;\n label: string;\n routerLink?: string | any[];\n href?: string;\n}\n\n@Component({\n selector: 'rolatech-agent-access-menu',\n imports: [MatMenuModule, MatIconModule, RouterLink],\n template: `\n @if (entry(); as item) {\n @if (item.href) {\n <a mat-menu-item [href]=\"item.href\" class=\"px-6 flex items-center cursor-pointer\">\n @if (item.icon) {\n <mat-icon> {{ item.icon }} </mat-icon>\n }\n <span class=\"flex items-center pl-2\">\n <span> {{ item.label }} </span>\n </span>\n </a>\n } @else {\n <a mat-menu-item [routerLink]=\"item.routerLink\" class=\"px-6 flex items-center cursor-pointer\">\n @if (item.icon) {\n <mat-icon> {{ item.icon }} </mat-icon>\n }\n <span class=\"flex items-center pl-2\">\n <span> {{ item.label }} </span>\n </span>\n </a>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AgentAccessMenu {\n readonly applicationCode = input('primecasa');\n readonly applyRouterLink = input<string | any[]>('/agents');\n readonly applicationsRouterLink = input<string | any[]>('/applications');\n readonly dashboardRouterLink = input<string | any[] | null>(null);\n readonly showApplyAction = input(true);\n readonly dashboardLabel = input('Agent dashboard');\n\n private readonly authStore = inject(AuthStore);\n private readonly authContextStore = inject(AuthContextStore);\n private readonly onboardingApplicantService = inject(OnboardingApplicantService);\n\n private readonly mine = toSignal(\n toObservable(\n computed(() => ({\n authenticated: this.authStore.authenticated(),\n loaded: this.authStore.loaded(),\n applicationCode: this.applicationCode(),\n })),\n ).pipe(\n switchMap(({ authenticated, loaded, applicationCode }) => {\n if (!loaded || !authenticated || !applicationCode) {\n return of<OnboardingApplicationResponse[] | null>(null);\n }\n\n return this.onboardingApplicantService.listMine().pipe(catchError(() => of<OnboardingApplicationResponse[]>([])));\n }),\n ),\n { initialValue: null },\n );\n\n readonly latestApplication = computed<OnboardingApplicationResponse | null>(() => {\n const applications = this.mine();\n\n if (!applications?.length) {\n return null;\n }\n\n return [...applications].sort((left, right) => this.toTimestamp(right) - this.toTimestamp(left))[0] ?? null;\n });\n\n readonly hasDashboardAccess = computed(() => {\n this.authStore.loaded();\n\n const appId =\n this.authContextStore.appId() ??\n this.authStore.primaryApplication()?.appId ??\n this.authStore.primaryOrganization()?.appId ??\n null;\n\n return this.authStore.hasOrganizationRole(\n appId,\n null,\n ...ORGANIZATION_OWNER_ROLES,\n ...ORGANIZATION_ADMIN_ROLES,\n ...ORGANIZATION_MEMBER_ROLES,\n );\n });\n\n readonly entry = computed<AgentMenuEntry | null>(() => {\n const application = this.latestApplication();\n\n if (application?.status === 'APPROVED') {\n return this.toEntry(this.dashboardLabel(), this.dashboardEntryRouterLink(application));\n }\n\n if (application) {\n return this.toEntry(this.applicationLabel(application.status), this.applicationRouterLink(application));\n }\n\n if (this.hasDashboardAccess()) {\n return this.toEntry(this.dashboardLabel(), this.dashboardEntryRouterLink(null));\n }\n\n if (!this.showApplyAction()) {\n return null;\n }\n\n return this.toEntry('Apply as agent', this.applyRouterLink());\n });\n\n private applicationLabel(status: OnboardingStatus): string {\n switch (status) {\n case 'APPROVED':\n return this.dashboardLabel();\n case 'FAILED':\n return 'Agent application result';\n case 'NEED_MORE_INFO':\n return 'Agent application updates';\n case 'SUBMITTED':\n case 'IN_REVIEW':\n return 'Agent application review';\n default:\n return 'Continue agent application';\n }\n }\n\n private applicationRouterLink(application: OnboardingApplicationResponse): any[] {\n return this.composeRouterLink(this.applicationsRouterLink(), application.id);\n }\n\n private dashboardEntryRouterLink(application: OnboardingApplicationResponse | null): string | any[] {\n const dashboardRouterLink = this.dashboardRouterLink();\n\n if (dashboardRouterLink) {\n return dashboardRouterLink;\n }\n\n if (application) {\n return this.applicationRouterLink(application);\n }\n\n return this.applicationsRouterLink();\n }\n\n private toEntry(label: string, link: string | any[]): AgentMenuEntry {\n if (this.isExternalLink(link)) {\n return {\n label,\n href: link,\n };\n }\n\n return {\n label,\n routerLink: link,\n };\n }\n\n private isExternalLink(link: string | any[] | null): link is string {\n return typeof link === 'string' && /^(https?:)?\\/\\//.test(link);\n }\n\n private toTimestamp(application: OnboardingApplicationResponse): number {\n return Date.parse(application.updatedAt ?? application.createdAt ?? '') || 0;\n }\n\n private composeRouterLink(base: string | any[], ...segments: string[]): any[] {\n const prefix = Array.isArray(base) ? [...base] : [base];\n return [...prefix, ...segments];\n }\n}\n","import { Component, DoCheck, ElementRef, HostListener, OnDestroy, Renderer2, inject, output } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { SnackBarService } from '@rolatech/angular-services';\nimport QRCode from 'qrcode';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AuthService } from '../../services/auth.service';\nimport { SpinnerComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-faceid-detect-dialog',\n templateUrl: './faceid-detect-dialog.component.html',\n styleUrls: ['./faceid-detect-dialog.component.scss'],\n imports: [SpinnerComponent, MatButtonModule],\n})\nexport class FaceidDetectDialogComponent implements OnDestroy {\n dialogRef = inject(MatDialogRef);\n environment = inject(APP_CONFIG);\n data = inject(MAT_DIALOG_DATA);\n authService = inject(AuthService);\n snackBarService = inject(SnackBarService);\n output = output<any>();\n loading = false;\n qrcodeUrl = '';\n verified = false;\n interval;\n constructor() {\n this.request();\n }\n ngOnDestroy(): void {\n clearInterval(this.interval);\n }\n request() {\n this.loading = true;\n this.authService.requestFaceIdDetect().subscribe({\n next: ({ data }) => {\n this.genQRCode(data.url);\n this.loop();\n },\n error: () => {\n this.loading = false;\n },\n });\n }\n cancel() {\n clearInterval(this.interval);\n this.dialogRef.close(this.verified);\n }\n loop() {\n this.loading = false;\n this.interval = setInterval(() => {\n this.authService.faceIdStatus().subscribe({\n next: (res) => {\n if (res.data.verified) {\n clearInterval(this.interval);\n this.dialogRef.close(true);\n }\n },\n });\n }, 2000);\n }\n async genQRCode(url: string) {\n try {\n this.qrcodeUrl = await QRCode.toDataURL(url);\n } catch (err) {\n console.error(err);\n }\n }\n}\n","<div class=\"flex flex-col p-3 max-w-[500px] mx-auto\">\n <div class=\"w-[256px] h-[256px] mx-auto flex justify-center items-center\">\n @if (loading) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n }\n <img [src]=\"qrcodeUrl\" alt />\n </div>\n</div>\n","export interface User {\n id: string;\n name: string;\n firstName: string;\n lastName: string;\n username: string;\n avatar: string;\n phone: string;\n email: string;\n bio: string;\n roles: Role[];\n gender: string;\n}\nexport interface Role {\n name: string;\n}\n\nexport interface PasswordChange {\n oldPassword: string;\n newPassword: string;\n ne2Password: string;\n}\nexport enum UserStatus {\n ACTIVE = '正常',\n AWAITING = '审核中',\n DELETED = '已删除',\n}\nexport interface IntrospectResponse {\n authenticated: boolean;\n userId: string;\n roles: string[];\n username?: string;\n}\n\nexport type VerificationType = 'EMAIL' | 'PHONE' | 'FACE_ID' | 'DOCUMENT' | 'PASSPORT' | 'KYC';\n\nexport type VerificationStatus = 'VERIFIED' | 'ALREADY_VERIFIED' | 'INVALID_TOKEN' | 'EXPIRED' | 'USER_NOT_FOUND';\n\nexport interface VerificationResult {\n type: VerificationType;\n status: VerificationStatus;\n message: string;\n}\n\nexport interface Address {\n id: string;\n name: string;\n phone: string;\n email: string;\n type: AddressType;\n country: string;\n province: string;\n city: string;\n district: string;\n street: string;\n detail: string;\n latitude: string;\n longitude: string;\n userId: string;\n}\nexport enum AddressType {\n HOME = '住宅地址',\n WORK = '工作地址',\n BILLING = '账单地址',\n SHIPPING = '购物地址',\n OTHER = '其他',\n}\n","import { Component, DoCheck, model, OnInit, output } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { AddressType } from '../../interfaces/auth.interface';\n\n@Component({\n selector: 'rolatech-address',\n imports: [AngularCommonModule, AngularComponentsModule],\n templateUrl: './address.component.html',\n styleUrl: './address.component.scss',\n})\nexport class AddressComponent implements OnInit, DoCheck {\n addressType = AddressType;\n enumKeys = Object.keys(this.addressType).filter((key) => isNaN(Number(key)));\n address = model<any>();\n output = output<any>();\n\n ngOnInit(): void {}\n\n ngDoCheck(): void {\n this.output.emit(this.address());\n }\n}\n","<div>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput [(ngModel)]=\"address().name\" />\n </mat-form-field>\n @if (address().type === addressType.BILLING) {\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Email </mat-label>\n <input matInput [(ngModel)]=\"address().email\" />\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput [(ngModel)]=\"address().phone\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> province </mat-label>\n <input matInput [(ngModel)]=\"address().province\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> City </mat-label>\n <input matInput [(ngModel)]=\"address().city\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> District </mat-label>\n <input matInput [(ngModel)]=\"address().district\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Street </mat-label>\n <input matInput [(ngModel)]=\"address().street\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Detail </mat-label>\n <input matInput [(ngModel)]=\"address().detail\" />\n </mat-form-field>\n</div>\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, PLATFORM_ID } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { map, Observable, of } from 'rxjs';\nimport { createForbiddenUrlTree, rememberAllowedUrl } from '../routing/access-denied.utils';\nimport { AuthService } from '../services/auth.service';\n\nexport const AuthGuard: CanActivateFn = (route, state): Observable<boolean | ReturnType<Router['parseUrl']>> => {\n const authService = inject(AuthService);\n const router = inject(Router);\n const environment = inject(APP_CONFIG);\n const platformId = inject(PLATFORM_ID);\n\n if (!isPlatformBrowser(platformId)) {\n return of(false);\n }\n\n const isContinue = state.url.includes('continue');\n const continueUrl = route.queryParams['continue'];\n const isSignInPage = state.url.includes('/signin');\n\n return authService.ensureLoaded().pipe(\n map(({ roles, authenticated }) => {\n const routeRoles = route.data['roles'];\n const passRoled = routeRoles ? roles?.some((r) => routeRoles.indexOf(r) >= 0) : true;\n if (authenticated && !passRoled) {\n return createForbiddenUrlTree(router, state.url, 'role');\n }\n\n if (authenticated) {\n if (isSignInPage) {\n window.location.href = continueUrl || environment.myaccountUrl;\n return false; // Prevent rendering the Sign-in page\n }\n // 1. If 'continue' parameter exists, redirect to it immediately\n if (isContinue && continueUrl) {\n window.location.href = continueUrl;\n return false;\n }\n // 2. If already at the accounts domain and NO continue URL, redirect to default account page\n if (window.location.href.includes(environment.accountsUrl)) {\n window.location.href = environment.myaccountUrl;\n return false;\n }\n // 3. Otherwise, if the user is already where they need to be, allow navigation\n rememberAllowedUrl(state.url);\n return true;\n } else {\n // CASE: Not logged in\n if (isSignInPage) {\n return true; // Allow guest to see the Sign-in page\n }\n\n // Redirection for UNAUTHENTICATED users\n const currentUrl = encodeURIComponent(window.location.href);\n window.location.href = `${environment.accountsUrl}/signin?continue=${currentUrl}`;\n return false;\n }\n }),\n );\n};\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'rolatech-auth-dialog',\n imports: [CommonModule, MatDialogModule],\n templateUrl: './auth-dialog.component.html',\n styleUrl: './auth-dialog.component.scss',\n})\nexport class AuthDialogComponent {\n dialogRef = inject(MatDialogRef);\n}\n","<p>auth-dialog works!</p>\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { CanActivateFn, UrlTree } from '@angular/router';\nimport { APP_CONFIG, WINDOW } from '@rolatech/angular-common';\nimport { last, map, Observable, of, switchMap, take } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { DialogService } from '@rolatech/angular-services';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AuthDialogComponent } from '../components/auth-dialog/auth-dialog.component';\n\nexport const AuthDialogGuard: CanActivateFn = (route, state): Observable<boolean> => {\n const authService = inject(AuthService);\n const dialog = inject(MatDialog);\n const environment = inject(APP_CONFIG);\n const platformId = inject(PLATFORM_ID);\n const isContinue = state.url.includes('continue');\n const continueUrl = route.queryParams['continue'];\n if (!isPlatformBrowser(platformId)) {\n return of(false);\n }\n return authService.introspect().pipe(\n map(({ roles, authenticated }) => {\n if (!authenticated) {\n if (window.location.href.includes(environment.accountsUrl) && !isContinue) {\n window.location.href = environment.myaccountUrl;\n }\n if (isContinue) {\n window.location.href = continueUrl;\n }\n } else {\n const dialogRef = dialog.open(AuthDialogComponent, {\n data: {},\n });\n dialogRef.afterClosed().subscribe((result) => {});\n return true;\n }\n return authenticated;\n }),\n );\n};\n","import { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { RouteAccessPolicy } from './route-access-policy';\n\nexport function matchesRouteAccessPolicy(\n authStore: AuthStore,\n authContextStore: AuthContextStore,\n policy?: RouteAccessPolicy,\n): boolean {\n if (!policy) {\n return true;\n }\n\n if (policy.authenticated !== undefined && authStore.authenticated() !== policy.authenticated) {\n return false;\n }\n\n const appId = authContextStore.appId() ?? authStore.primaryApplication()?.appId ?? authStore.primaryOrganization()?.appId ?? null;\n const orgId = authContextStore.orgId() ?? authStore.primaryOrganization()?.orgId ?? null;\n const groupMatches: boolean[] = [];\n\n if (policy.anyRole?.length) {\n groupMatches.push(authStore.hasAnyRole(...policy.anyRole));\n }\n\n if (policy.anyPlatformRole?.length) {\n groupMatches.push(authStore.hasPlatformRole(...policy.anyPlatformRole));\n }\n\n if (policy.anyApplicationRole?.length) {\n groupMatches.push(authStore.hasApplicationRole(appId, ...policy.anyApplicationRole));\n }\n\n if (policy.anyOrganizationRole?.length) {\n groupMatches.push(authStore.hasOrganizationRole(appId, orgId, ...policy.anyOrganizationRole));\n }\n\n if (policy.anyPermission?.length) {\n groupMatches.push(policy.anyPermission.some((permission) => authStore.hasPermission(permission)));\n }\n\n if (!groupMatches.length) {\n return true;\n }\n\n return groupMatches.some(Boolean);\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, CanMatchFn, Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport { matchesRouteAccessPolicy } from '../access/access.utils';\nimport { RouteAccessPolicy } from '../access/route-access-policy';\nimport { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { AuthService } from '../services/auth.service';\nimport { createForbiddenUrlTree, rememberAllowedUrl } from '../routing/access-denied.utils';\n\nexport function accessGuard(policy: RouteAccessPolicy, fallbackUrl = '/forbidden'): CanActivateFn {\n return (_route, state) => {\n const router = inject(Router);\n const authService = inject(AuthService);\n const authStore = inject(AuthStore);\n const authContextStore = inject(AuthContextStore);\n\n return authService.ensureLoaded().pipe(\n map(() => {\n if (matchesRouteAccessPolicy(authStore, authContextStore, policy)) {\n rememberAllowedUrl(state.url);\n return true;\n }\n\n return fallbackUrl === '/forbidden' ? createForbiddenUrlTree(router, state.url, 'policy') : router.parseUrl(fallbackUrl);\n }),\n );\n };\n}\n\nexport function accessMatchGuard(policy: RouteAccessPolicy, fallbackUrl = '/forbidden'): CanMatchFn {\n return (_route, segments) => {\n const router = inject(Router);\n const authService = inject(AuthService);\n const authStore = inject(AuthStore);\n const authContextStore = inject(AuthContextStore);\n const attemptedUrl = segments.length ? `/${segments.map((segment) => segment.path).join('/')}` : router.url;\n\n return authService.ensureLoaded().pipe(\n map(() => {\n if (matchesRouteAccessPolicy(authStore, authContextStore, policy)) {\n rememberAllowedUrl(router.url);\n return true;\n }\n\n return fallbackUrl === '/forbidden' ? createForbiddenUrlTree(router, attemptedUrl, 'policy') : router.parseUrl(fallbackUrl);\n }),\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport {\n APPLICATION_ADMIN_ROLES,\n APPLICATION_OWNER_ROLES,\n ORGANIZATION_ADMIN_ROLES,\n ORGANIZATION_MEMBER_ROLES,\n ORGANIZATION_OWNER_ROLES,\n ORGANIZATION_STAFF_ROLES,\n PLATFORM_ADMIN_ROLES,\n} from '../access/role.constants';\nimport { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { AuthService } from '../services/auth.service';\n\nexport interface LandingRedirectTarget {\n platform?: string;\n application?: string;\n organization?: string;\n forbidden?: string;\n}\n\nexport function landingRedirectGuard(targets: LandingRedirectTarget = {}): CanActivateFn {\n const resolvedTargets = {\n platform: targets.platform ?? '/platform',\n application: targets.application ?? '/app',\n organization: targets.organization ?? '/organization',\n forbidden: targets.forbidden ?? '/forbidden',\n };\n\n return () => {\n const router = inject(Router);\n const authService = inject(AuthService);\n const authStore = inject(AuthStore);\n const authContextStore = inject(AuthContextStore);\n\n return authService.ensureLoaded().pipe(\n map(() => {\n const appId = authContextStore.appId() ?? authStore.primaryApplication()?.appId ?? authStore.primaryOrganization()?.appId ?? null;\n const orgId = authContextStore.orgId() ?? authStore.primaryOrganization()?.orgId ?? null;\n\n if (authStore.hasPlatformRole(...PLATFORM_ADMIN_ROLES)) {\n return router.parseUrl(resolvedTargets.platform);\n }\n\n if (authStore.hasApplicationRole(appId, ...APPLICATION_OWNER_ROLES, ...APPLICATION_ADMIN_ROLES)) {\n return router.parseUrl(resolvedTargets.application);\n }\n\n if (\n authStore.hasOrganizationRole(\n appId,\n orgId,\n ...ORGANIZATION_OWNER_ROLES,\n ...ORGANIZATION_ADMIN_ROLES,\n ...ORGANIZATION_MEMBER_ROLES,\n ...ORGANIZATION_STAFF_ROLES,\n )\n ) {\n return router.parseUrl(resolvedTargets.organization);\n }\n\n return router.parseUrl(resolvedTargets.forbidden);\n }),\n );\n };\n}\n","import { PLATFORM_ID, inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { map, Observable, of } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { isPlatformBrowser } from '@angular/common';\nimport { createForbiddenUrlTree, rememberAllowedUrl } from '../routing/access-denied.utils';\n\nexport const RoleGuard: CanActivateFn = (route, state): Observable<boolean | ReturnType<Router['parseUrl']>> => {\n const authService = inject(AuthService);\n const platformId = inject(PLATFORM_ID);\n const router = inject(Router);\n if (!isPlatformBrowser(platformId)) {\n return of(false);\n }\n const routeRoles = route.data['roles'];\n return authService.ensureLoaded().pipe(\n map(({ roles }) => {\n const authed = routeRoles ? (roles ?? []).some((role) => routeRoles.indexOf(role) >= 0) : true;\n if (authed) {\n rememberAllowedUrl(state.url);\n return true;\n }\n\n return createForbiddenUrlTree(router, state.url, 'role');\n }),\n );\n};\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport const PermissionGuard: CanActivateFn = (route, state): Observable<boolean> => {\n const authService = inject(AuthService);\n const environment = inject(APP_CONFIG);\n const platformId = inject(PLATFORM_ID);\n const isContinue = state.url.includes('continue');\n const continueUrl = route.queryParams['continue'];\n\n // if (!isPlatformBrowser(platformId)) {\n // return of(false);\n // }\n\n return of(false);\n};\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { ApiResponse, APP_CONFIG } from '@rolatech/angular-common';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { User, VerificationResult } from '../interfaces/auth.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthUserService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n private userSubject: BehaviorSubject<User | null> = new BehaviorSubject<User | null>(JSON.parse('null'));\n public userInfo$: Observable<User | null> = this.userSubject.asObservable();\n updateUserInfo(userInfo: User | null) {\n this.userSubject.next(userInfo);\n }\n findAll(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${id}`, {\n withCredentials: true,\n });\n }\n findOne(userId: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${userId}`, {\n withCredentials: true,\n });\n }\n me() {\n return this.http\n .get<any>(`${this.environment.baseUrl}/auth/me`, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n return res.data;\n }),\n );\n }\n getPublicUserInfo(id: string): Observable<any> {\n return this.http\n .get<any>(`${this.environment.baseUrl}/auth/users/${id}/info/public`, {\n withCredentials: false,\n })\n .pipe(\n map((res) => {\n return res.data;\n }),\n );\n }\n findPublicInfoByIds(ids: Array<string>) {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/by`, {\n params: params,\n });\n }\n sendSMSCode(countryCode: string, phone: string) {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/verification/phone/start`, { countryCode, phone });\n }\n verifyEmailByToken(token: string): Observable<VerificationResult> {\n return this.http\n .get<ApiResponse<VerificationResult> | VerificationResult>(\n `${this.environment.baseUrl}/auth/users/verification/email`,\n {\n params: { token },\n withCredentials: true,\n },\n )\n .pipe(\n map((response) => {\n if (response && typeof response === 'object' && 'data' in response) {\n return response.data;\n }\n\n return response;\n }),\n );\n }\n findByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/info`, {\n params: { username },\n withCredentials: true,\n });\n }\n findUserInfoByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/info/by`, {\n params: { username },\n withCredentials: true,\n });\n }\n findPublicInfoByRole(role: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/public/by`, {\n params: { role: role },\n withCredentials: false,\n });\n }\n changeUsername(username: string): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/users/username`,\n { username },\n {\n withCredentials: true,\n },\n );\n }\n changeName(name: any): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/me`,\n { name },\n {\n withCredentials: true,\n },\n );\n }\n createUserByAdmin(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/by/admin`, data, {\n withCredentials: true,\n });\n }\n update(data: any): Observable<any> {\n return this.http.put<any>(`${this.environment.baseUrl}/auth/me`, data, {\n withCredentials: true,\n });\n }\n uploadAvatar(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/avatar`, data, {\n withCredentials: true,\n });\n }\n changePhone(phone: any, code: any): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/users/phone`,\n { phone, code },\n {\n withCredentials: true,\n },\n );\n }\n follow(username: string): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/users/following/${username}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n unfollow(username: string): Observable<any> {\n return this.http.delete<any>(`${this.environment.baseUrl}/auth/users/following/${username}`, {\n withCredentials: true,\n });\n }\n listFollowingByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${username}/following`);\n }\n listFollowersByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${username}/followers`);\n }\n checkIfFollowingSomeone(username: string, target: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${username}/following/${target}`);\n }\n isFollowing(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/following/${username}`, { withCredentials: true });\n }\n friendships(ids: string[]): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/friendships`, { ids: ids }, { withCredentials: true });\n }\n followersStats(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/followers/stats/by`, { params: { username: username } });\n }\n // Address;\n addAddress(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/addresses`, data, { withCredentials: true });\n }\n updateAddress(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.environment.baseUrl}/auth/users/addresses/${id}`, data, { withCredentials: true });\n }\n findAllAddress(options: any): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/addresses`, { params: options, withCredentials: true });\n }\n getAddress(id: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/addresses/${id}`, { withCredentials: true });\n }\n deleteAddressById(id: string): Observable<any> {\n return this.http.delete<any>(`${this.environment.baseUrl}/auth/users/addresses/${id}`, { withCredentials: true });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthAgentService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n baseUrl = `${this.environment.baseUrl}/auth/agents`;\n\n public findAllApplications(options: any): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications`, {\n params: options,\n withCredentials: true,\n });\n }\n public getApplication(id: string): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications/${id}`, {\n withCredentials: true,\n });\n }\n public myApplication(): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications/me`, {\n withCredentials: true,\n });\n }\n public apply(data: any): Observable<any> {\n return this.http.post<any>(`${this.baseUrl}/applications`, data, {\n withCredentials: true,\n });\n }\n public approve(id: string): Observable<any> {\n return this.http.put<any>(\n `${this.baseUrl}/applications/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n public reject(id: any, data: any): Observable<any> {\n return this.http.put<any>(`${this.baseUrl}/applications/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n public findRejections(id: string): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications/${id}/rejections`, {\n withCredentials: true,\n });\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, Inject, Injectable, PLATFORM_ID } from '@angular/core';\n\nclass LocalStorage implements Storage {\n [name: string]: any;\n readonly length = 0;\n clear(): void {}\n getItem(key: string): string | null {\n return null;\n }\n key(index: number): string | null {\n return null;\n }\n removeItem(key: string): void {}\n setItem(key: string, value: string): void {}\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalStorageService implements Storage {\n private storage: Storage;\n platformId = inject(PLATFORM_ID);\n\n constructor() {\n this.storage = new LocalStorage();\n\n if (isPlatformBrowser(this.platformId)) {\n this.storage = localStorage;\n }\n }\n\n [name: string]: any;\n\n length = 0;\n\n clear(): void {\n this.storage.clear();\n }\n\n getItem(key: string): string | null {\n return this.storage.getItem(key);\n }\n\n key(index: number): string | null {\n return this.storage.key(index);\n }\n\n removeItem(key: string): void {\n return this.storage.removeItem(key);\n }\n\n setItem(key: string, value: string): void {\n return this.storage.setItem(key, value);\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { AuthService } from '../services/auth.service';\nimport { BehaviorSubject, catchError, Observable, of, throwError } from 'rxjs';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n tokenSubject: BehaviorSubject<string> = new BehaviorSubject<string>('');\n isRefreshingToken = false;\n authService = inject(AuthService);\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n catchError((error) => {\n if (error instanceof HttpErrorResponse) {\n switch (error.status) {\n case 400:\n return this.hand400Error(error);\n case 401:\n return this.hand401Error(error);\n case 403:\n return this.hand403Error(error);\n case 404:\n return this.hand404Error(error);\n case 429:\n return this.hand429Error(error);\n default:\n return this.handleDefaultError(error);\n }\n } else {\n return throwError(() => error);\n }\n }),\n );\n }\n private hand400Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private hand401Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private hand403Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private hand404Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n /**\n *\n * @param error SMS code sent too many\n * @returns\n */\n private hand429Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private handleDefaultError(error: HttpErrorResponse) {\n return throwError(() => new Error('System error'));\n }\n}\n","import { catchError, filter, map, switchMap, take } from 'rxjs/operators';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { inject, Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\nimport { NEVER, Observable, throwError } from 'rxjs';\n\nimport { AuthService } from '../services/auth.service';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n authService = inject(AuthService);\n constructor() {}\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const authRequest = request.clone({\n headers: request.headers.append('Client-Id', this.environment.clientId),\n });\n return next.handle(authRequest).pipe(\n map((res) => {\n // if (res instanceof HttpResponse && isPlatformBrowser(this.platformId)) {\n // // window.location.href = res.headers.get('Location') as string;\n // }\n return res;\n }),\n catchError((error: any) => {\n if (isPlatformBrowser(this.platformId)) {\n if (error.url?.includes('auth/introspect')) {\n // if (window.location.origin !== `${this.environment.accountsUrl}`) {\n // window.location.href = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;\n // return NEVER;\n // }\n }\n if (error instanceof HttpErrorResponse && error.error.code === 'G401') {\n window.location.href = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;\n return NEVER;\n }\n }\n return throwError(() => error.error || error.message);\n }),\n );\n }\n addClientIdHeader(request: HttpRequest<any>) {\n return request.clone({\n setHeaders: {\n 'Client-id': this.environment.clientId,\n },\n });\n }\n addCookieHeader(request: HttpRequest<any>, cookie: string) {\n return request.clone({\n setHeaders: {\n Cookie: cookie,\n 'Client-id': this.environment.clientId,\n },\n });\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { EnvironmentProviders, InjectionToken, PLATFORM_ID, Provider, APP_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';\nimport { firstValueFrom, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ErrorInterceptor, AuthInterceptor } from './lib/interceptors';\nimport { AuthService } from './lib/services/auth.service';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport enum AuthMethod {\n Password = 'PASSWORD',\n OTP = 'OTP',\n Google = 'GOOGLE',\n WeChat = 'WECHAT',\n}\n\nexport const AUTH_METHODS = new InjectionToken<AuthMethod[]>('AUTH_METHODS');\n\nexport interface AuthConfig {\n methods: AuthMethod[];\n autoLoadSession?: boolean;\n}\n\nexport function provideAngularAuth(config?: AuthConfig): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n {\n provide: AUTH_METHODS,\n useValue: config?.methods,\n },\n\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: () => {\n const authService = inject(AuthService);\n const platformId = inject(PLATFORM_ID);\n\n return () => {\n if (config?.autoLoadSession === false || !isPlatformBrowser(platformId)) {\n return Promise.resolve();\n }\n\n return firstValueFrom(authService.ensureLoaded().pipe(catchError(() => of(null))));\n };\n },\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Routes } from '@angular/router';\nimport { UnauthorizedComponent } from './components/unauthorized/unauthorized.component';\nimport { ForbiddenComponent } from './components/forbidden/forbidden.component';\n\nexport const authRoutes: Routes = [\n {\n path: 'unauthorized',\n component: UnauthorizedComponent,\n },\n {\n path: 'forbidden',\n component: ForbiddenComponent,\n },\n];\n","import { EnvironmentProviders, InjectionToken, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { NavLink } from '@rolatech/angular-common';\nimport { RouteAccessPolicy } from '../access/route-access-policy';\n\nexport interface RoleNavigationLink extends NavLink {\n order?: number;\n access?: RouteAccessPolicy;\n children?: RoleNavigationLink[];\n}\n\nexport const ROLE_NAVIGATION_LINKS = new InjectionToken<RoleNavigationLink[]>('ROLE_NAVIGATION_LINKS');\n\nexport function provideRoleNavigation(links: RoleNavigationLink[]): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: ROLE_NAVIGATION_LINKS,\n useValue: links,\n multi: true,\n },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { computed, inject, Injectable } from '@angular/core';\nimport { NavLink } from '@rolatech/angular-common';\nimport { matchesRouteAccessPolicy } from '../access/access.utils';\nimport { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { ROLE_NAVIGATION_LINKS, RoleNavigationLink } from './navigation.tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class AppNavigationService {\n private readonly authStore = inject(AuthStore);\n private readonly authContextStore = inject(AuthContextStore);\n private readonly linkGroups = inject(ROLE_NAVIGATION_LINKS, { optional: true }) ?? [];\n\n readonly links = computed<NavLink[]>(() => {\n this.authStore.authenticated();\n this.authStore.loaded();\n this.authContextStore.appId();\n this.authContextStore.orgId();\n\n return this.linkGroups\n .flat()\n .sort((left, right) => (left.order ?? 0) - (right.order ?? 0))\n .map((link) => this.toNavLink(link))\n .filter((link): link is NavLink => link !== null);\n });\n\n private toNavLink(link: RoleNavigationLink): NavLink | null {\n if (link.visible === false || !matchesRouteAccessPolicy(this.authStore, this.authContextStore, link.access)) {\n return null;\n }\n\n const children = link.children\n ?.map((child) => this.toNavLink(child))\n .filter((child): child is NavLink => child !== null);\n\n if (link.children?.length && !children?.length) {\n return null;\n }\n\n return {\n ...link,\n children,\n };\n }\n}\n","import { EnvironmentProviders, InjectionToken, Provider, Type, inject, makeEnvironmentProviders } from '@angular/core';\nimport { Route, ROUTES, RouterFeatures, Routes, provideRouter } from '@angular/router';\nimport { AuthGuard } from '../guards/auth.guard';\nimport { provideRoleNavigation, RoleNavigationLink } from '../navigation/navigation.tokens';\n\nexport const ROLE_SHELL_CHILD_ROUTES = new InjectionToken<Routes>('ROLE_SHELL_CHILD_ROUTES');\n\nexport interface RoleAwareShellRouterConfig {\n shellComponent: Type<unknown>;\n shellChildren?: Routes;\n topLevelRoutes?: Routes;\n fallbackRoute?: Route;\n shellCanActivate?: Route['canActivate'];\n shellCanActivateChild?: Route['canActivateChild'];\n shellData?: Route['data'];\n}\n\nexport interface RoleAwareFeatureConfig {\n routes?: Routes;\n navigation?: RoleNavigationLink[];\n}\n\nexport interface RoleAwareShellConfig extends RoleAwareShellRouterConfig {\n navigation?: RoleNavigationLink[];\n}\n\nexport interface RoleAwareConsoleShellConfig extends RoleAwareShellConfig {}\n\nexport function provideRoleShellRoutes(routes: Routes): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: ROLE_SHELL_CHILD_ROUTES,\n useValue: routes,\n multi: true,\n },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\nexport function provideRoleAwareFeature(config: RoleAwareFeatureConfig): EnvironmentProviders {\n const providers: Array<Provider | EnvironmentProviders> = [];\n\n if (config.routes?.length) {\n providers.push(provideRoleShellRoutes(config.routes));\n }\n\n if (config.navigation?.length) {\n providers.push(provideRoleNavigation(config.navigation));\n }\n\n return makeEnvironmentProviders(providers);\n}\n\nexport function provideRoleAwareShellRouter(\n config: RoleAwareShellRouterConfig,\n ...features: RouterFeatures[]\n): EnvironmentProviders {\n const providers: Array<Provider | EnvironmentProviders> = [\n provideRouter([], ...features),\n {\n provide: ROUTES,\n multi: true,\n useFactory: (): Routes => {\n const contributedRoutes = inject(ROLE_SHELL_CHILD_ROUTES, { optional: true }) ?? [];\n\n return [\n ...(config.topLevelRoutes ?? []),\n {\n path: '',\n component: config.shellComponent,\n canActivate: config.shellCanActivate,\n canActivateChild: config.shellCanActivateChild,\n data: config.shellData,\n children: [...(config.shellChildren ?? []), ...contributedRoutes.flat()],\n },\n ...(config.fallbackRoute ? [config.fallbackRoute] : []),\n ];\n },\n },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\nexport function provideRoleAwareShell(config: RoleAwareShellConfig, ...features: RouterFeatures[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideRoleAwareShellRouter(config, ...features),\n ...(config.navigation?.length ? [provideRoleNavigation(config.navigation)] : []),\n ]);\n}\n\nexport function provideRoleAwareConsoleShell(\n config: RoleAwareConsoleShellConfig,\n ...features: RouterFeatures[]\n): EnvironmentProviders {\n return provideRoleAwareShell(\n {\n ...config,\n shellCanActivate: config.shellCanActivate ?? [AuthGuard],\n shellCanActivateChild: config.shellCanActivateChild ?? [AuthGuard],\n },\n ...features,\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["catchError","switchMap","i1","i2","map"],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-auth.mjs","sources":["../../../../packages/angular-auth/src/lib/auth-context.store.ts","../../../../packages/angular-auth/src/lib/auth.store.ts","../../../../packages/angular-auth/src/lib/routing/access-denied.utils.ts","../../../../packages/angular-auth/src/lib/services/auth.service.ts","../../../../packages/angular-auth/src/lib/components/forbidden/forbidden.component.ts","../../../../packages/angular-auth/src/lib/components/forbidden/forbidden.component.html","../../../../packages/angular-auth/src/lib/components/unauthorized/unauthorized.component.ts","../../../../packages/angular-auth/src/lib/components/unauthorized/unauthorized.component.html","../../../../packages/angular-auth/src/lib/access/role.constants.ts","../../../../packages/angular-auth/src/lib/components/agent-access-menu/agent-access-menu.component.ts","../../../../packages/angular-auth/src/lib/components/faceid-detect-dialog/faceid-detect-dialog.component.ts","../../../../packages/angular-auth/src/lib/components/faceid-detect-dialog/faceid-detect-dialog.component.html","../../../../packages/angular-auth/src/lib/interfaces/auth.interface.ts","../../../../packages/angular-auth/src/lib/components/address/address.component.ts","../../../../packages/angular-auth/src/lib/components/address/address.component.html","../../../../packages/angular-auth/src/lib/guards/auth.guard.ts","../../../../packages/angular-auth/src/lib/components/auth-dialog/auth-dialog.component.ts","../../../../packages/angular-auth/src/lib/components/auth-dialog/auth-dialog.component.html","../../../../packages/angular-auth/src/lib/guards/auth-dialog.guard.ts","../../../../packages/angular-auth/src/lib/access/access.utils.ts","../../../../packages/angular-auth/src/lib/guards/access.guard.ts","../../../../packages/angular-auth/src/lib/guards/landing-redirect.guard.ts","../../../../packages/angular-auth/src/lib/guards/role.guard.ts","../../../../packages/angular-auth/src/lib/guards/permission.guard.ts","../../../../packages/angular-auth/src/lib/services/auth-user.service.ts","../../../../packages/angular-auth/src/lib/services/auth-agent.service.ts","../../../../packages/angular-auth/src/lib/services/storage.service.ts","../../../../packages/angular-auth/src/lib/interceptors/error.interceptor.ts","../../../../packages/angular-auth/src/lib/interceptors/auth.interceptor.ts","../../../../packages/angular-auth/src/provider.ts","../../../../packages/angular-auth/src/lib/auth.routes.ts","../../../../packages/angular-auth/src/lib/navigation/navigation.tokens.ts","../../../../packages/angular-auth/src/lib/navigation/app-navigation.service.ts","../../../../packages/angular-auth/src/lib/routing/shell-routing.ts","../../../../packages/angular-auth/src/rolatech-angular-auth.ts"],"sourcesContent":["import { Injectable, computed, signal } from '@angular/core';\n\ntype AuthContextState = {\n appId: string | null;\n orgId: string | null;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AuthContextStore {\n private readonly state = signal<AuthContextState>({\n appId: null,\n orgId: null,\n });\n\n readonly appId = computed(() => this.state().appId);\n readonly orgId = computed(() => this.state().orgId);\n\n setContext(appId: string | null, orgId: string | null): void {\n this.state.set({ appId, orgId });\n }\n\n setAppId(appId: string | null): void {\n this.state.update((state) => ({ ...state, appId }));\n }\n\n setOrgId(orgId: string | null): void {\n this.state.update((state) => ({ ...state, orgId }));\n }\n\n clear(): void {\n this.state.set({ appId: null, orgId: null });\n }\n}\n","import { Injectable, computed, signal } from '@angular/core';\nimport { User } from './interfaces/auth.interface';\nimport { AppMembershipResponse, MeContextResponse, OrgMembershipResponse } from './interfaces/me.interface';\n\ntype AuthState = {\n userId: string;\n user: User | null;\n roles: string[];\n username: string | null;\n platformRoles: string[];\n applications: AppMembershipResponse[];\n organizations: OrgMembershipResponse[];\n permissions: string[];\n authenticated: boolean | null;\n loaded: boolean;\n};\n@Injectable({ providedIn: 'root' })\nexport class AuthStore {\n private _state = signal<AuthState>({\n userId: '',\n user: null,\n roles: [],\n username: null,\n platformRoles: [],\n applications: [],\n organizations: [],\n permissions: [],\n authenticated: false,\n loaded: false,\n });\n userId = computed(() => this._state().userId);\n user = computed(() => this._state().user);\n roles = computed(() => this._state().roles);\n username = computed(() => this._state().username);\n platformRoles = computed(() => this._state().platformRoles);\n applications = computed(() => this._state().applications);\n organizations = computed(() => this._state().organizations);\n permissions = computed(() => this._state().permissions);\n authenticated = computed(() => this._state().authenticated);\n loaded = computed(() => this._state().loaded);\n me = computed<MeContextResponse | null>(() => {\n if (!this.loaded() || !this.authenticated()) {\n return null;\n }\n\n return {\n userId: this.userId(),\n username: this.username() ?? this.user()?.username ?? '',\n platformRoles: this.platformRoles(),\n applications: this.applications(),\n organizations: this.organizations(),\n permissions: this.permissions(),\n };\n });\n primaryApplication = computed(() => this.applications()[0] ?? null);\n primaryOrganization = computed(() => this.organizations()[0] ?? null);\n\n update(data: any) {\n this._state.update((state) => {\n state.authenticated = data.authenticated;\n state.userId = data.userId ?? state.userId;\n state.roles = data.roles ?? state.roles;\n state.loaded = data.loaded ?? state.loaded;\n state.user = data.user ?? state.user;\n state.username = data.username ?? state.username;\n state.platformRoles = data.platformRoles ?? state.platformRoles;\n state.applications = data.applications ?? state.applications;\n state.organizations = data.organizations ?? state.organizations;\n state.permissions = data.permissions ?? state.permissions;\n return { ...state };\n });\n }\n clear() {\n this._state.set({\n userId: '',\n user: null,\n roles: [],\n username: null,\n platformRoles: [],\n applications: [],\n organizations: [],\n permissions: [],\n authenticated: false,\n loaded: true,\n });\n }\n resetLoading() {\n this._state.update((state) => ({ ...state, loaded: false }));\n }\n updateAuthenticated(authenticated: boolean) {\n this._state.update((state) => {\n state.authenticated = authenticated;\n return { ...state };\n });\n }\n updateUser(user: User) {\n this._state.update((state) => {\n state.user = user;\n state.username = user.username;\n return { ...state };\n });\n }\n updateContext(context: MeContextResponse) {\n this._state.update((state) => ({\n ...state,\n userId: context.userId,\n username: context.username,\n platformRoles: context.platformRoles ?? [],\n applications: context.applications ?? [],\n organizations: context.organizations ?? [],\n permissions: context.permissions ?? [],\n }));\n }\n updateEmail(email: string) {\n this._state.update((state) => {\n if (state.user) {\n state.user = { ...state.user, email };\n }\n return { ...state };\n });\n }\n hasAnyRole(...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n const roleSet = new Set(this.roles());\n return roles.some((role) => roleSet.has(role));\n }\n hasPlatformRole(...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n const roleSet = new Set(this.platformRoles().length ? this.platformRoles() : this.roles());\n return roles.some((role) => roleSet.has(role));\n }\n hasApplicationRole(appId: string | null, ...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n return this.applications().some((membership) => {\n if (appId && membership.appId !== appId) {\n return false;\n }\n\n const roleSet = new Set(membership.roles);\n return roles.some((role) => roleSet.has(role));\n });\n }\n hasOrganizationRole(appId: string | null, orgId: string | null, ...roles: string[]): boolean {\n if (!roles.length) {\n return false;\n }\n\n return this.organizations().some((membership) => {\n if (appId && membership.appId !== appId) {\n return false;\n }\n\n if (orgId && membership.orgId !== orgId) {\n return false;\n }\n\n const roleSet = new Set(membership.roles);\n return roles.some((role) => roleSet.has(role));\n });\n }\n hasPermission(permission: string): boolean {\n return this.permissions().includes(permission);\n }\n}\n","import { Router, UrlTree } from '@angular/router';\n\nconst LAST_ALLOWED_URL_KEY = 'rolatech.auth.last-allowed-url';\n\nfunction normalizeUrl(url?: string | null): string | null {\n if (!url) {\n return null;\n }\n\n if (url.startsWith('http://') || url.startsWith('https://')) {\n try {\n const parsed = new URL(url);\n return `${parsed.pathname}${parsed.search}${parsed.hash}` || '/';\n } catch {\n return null;\n }\n }\n\n return url.startsWith('/') ? url : `/${url}`;\n}\n\nfunction isAccessBoundaryUrl(url: string): boolean {\n return url.startsWith('/forbidden') || url.startsWith('/unauthorized');\n}\n\nexport function rememberAllowedUrl(url?: string | null): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n const normalizedUrl = normalizeUrl(url);\n if (!normalizedUrl || isAccessBoundaryUrl(normalizedUrl)) {\n return;\n }\n\n window.sessionStorage.setItem(LAST_ALLOWED_URL_KEY, normalizedUrl);\n}\n\nexport function readLastAllowedUrl(): string | null {\n if (typeof window === 'undefined') {\n return null;\n }\n\n const value = normalizeUrl(window.sessionStorage.getItem(LAST_ALLOWED_URL_KEY));\n if (!value || isAccessBoundaryUrl(value)) {\n return null;\n }\n\n return value;\n}\n\nexport function createForbiddenUrlTree(router: Router, deniedUrl?: string | null, reason = 'forbidden'): UrlTree {\n const queryParams: Record<string, string> = {\n reason,\n };\n\n const normalizedDeniedUrl = normalizeUrl(deniedUrl);\n if (normalizedDeniedUrl) {\n queryParams['denied'] = normalizedDeniedUrl;\n }\n\n const fallbackUrl = readLastAllowedUrl();\n if (fallbackUrl) {\n queryParams['fallback'] = fallbackUrl;\n }\n\n return router.createUrlTree(['/forbidden'], { queryParams });\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, forkJoin, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { PasswordChange, APP_CONFIG, PasswordResetConfirmRequest, ApiResponse } from '@rolatech/angular-common';\nimport { IntrospectResponse, User } from '../interfaces/auth.interface';\nimport { AuthStore } from '../auth.store';\nimport { AuthContextStore } from '../auth-context.store';\nimport { MeContextResponse } from '../interfaces/me.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AuthService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n authStore = inject(AuthStore);\n authContextStore = inject(AuthContextStore);\n authenticated = this.authStore.authenticated;\n userId = this.authStore.userId;\n user = this.authStore.user;\n roles = this.authStore.roles;\n meContext = this.authStore.me;\n platformRoles = this.authStore.platformRoles;\n applications = this.authStore.applications;\n organizations = this.authStore.organizations;\n permissions = this.authStore.permissions;\n loaded = this.authStore.loaded;\n private pendingIntrospect$?: Observable<IntrospectResponse>;\n\n public introspect(force = false): Observable<IntrospectResponse> {\n if (!force && this.authStore.loaded()) {\n return of(this.currentSession());\n }\n\n if (!force && this.pendingIntrospect$) {\n return this.pendingIntrospect$;\n }\n\n const request$ = this.http\n .get<IntrospectResponse>(`${this.environment.baseUrl}/auth/introspect`, {\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n if (!res.authenticated) {\n this.authStore.clear();\n this.authContextStore.clear();\n return of(res);\n }\n\n return forkJoin({\n user: this.me().pipe(catchError(() => of(null))),\n context: this.getMeContext().pipe(catchError(() => of(this.emptyContext(res)))),\n }).pipe(\n map(({ user, context }) => {\n this.authStore.update({\n authenticated: true,\n userId: res.userId,\n roles: res.roles ?? [],\n loaded: true,\n user,\n username: context.username ?? res.username ?? user?.username ?? null,\n platformRoles: context.platformRoles?.length ? context.platformRoles : (res.roles ?? []),\n applications: context.applications ?? [],\n organizations: context.organizations ?? [],\n permissions: context.permissions ?? [],\n });\n this.syncContext(context);\n return res;\n }),\n );\n }),\n catchError((error) => {\n this.authStore.clear();\n this.authContextStore.clear();\n return throwError(() => error);\n }),\n finalize(() => {\n this.pendingIntrospect$ = undefined;\n }),\n shareReplay(1),\n );\n\n this.pendingIntrospect$ = request$;\n return request$;\n }\n\n ensureLoaded(force = false): Observable<IntrospectResponse> {\n return this.introspect(force);\n }\n getMeContext(): Observable<MeContextResponse> {\n return this.http\n .get<ApiResponse<MeContextResponse>>(`${this.environment.baseUrl}/auth/me/context`)\n .pipe(map((res) => res.data));\n }\n me(): Observable<User | null> {\n return this.http\n .get<ApiResponse<User>>(`${this.environment.baseUrl}/auth/me`, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.updateUser(res.data);\n return res.data;\n }),\n );\n }\n wechatLogin(code: string, state: string) {\n return this.http.post<any>(\n `${this.environment.baseUrl}/auth/wechat/login?code=${code}&state=${state}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n wechatDisconnect() {\n return this.http.post<any>(\n `${this.environment.baseUrl}/auth/wechat/disconnect`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n requestFaceIdDetect() {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/face-id`, {\n withCredentials: true,\n });\n }\n faceIdStatus() {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/face-id/status/me`, {\n withCredentials: true,\n });\n }\n faceIdStatusByToken(token: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/face-id/status/me/by`, {\n params: { token: token },\n withCredentials: true,\n });\n }\n wechatStatus(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/wechat/status/by`, {\n params: options,\n withCredentials: true,\n });\n }\n login(data: any) {\n return this.http\n .post<any>(`${this.environment.baseUrl}/auth/login`, data, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.resetLoading();\n return res.data;\n }),\n );\n }\n signup(data: any): Observable<any> {\n return this.http\n .post<any>(`${this.environment.baseUrl}/auth/signup`, data, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.resetLoading();\n return res;\n }),\n );\n }\n logout() {\n return this.http\n .get<any>(`${this.environment.baseUrl}/auth/logout`, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n this.authStore.clear();\n this.authContextStore.clear();\n return res;\n }),\n );\n }\n requestPasswordReset(email: string) {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/password/reset-request`, { email });\n }\n validatePasswordRestToken(token: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/password/reset-tokens/${token}`);\n }\n resetPassword(data: PasswordResetConfirmRequest) {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/password/reset`, data);\n }\n changePassword(data: PasswordChange) {\n return this.http\n .put<any>(`${this.environment.baseUrl}/auth/users/password`, data, {\n withCredentials: true,\n })\n .pipe(\n map((user) => {\n return user;\n }),\n tap((_) => {\n this.authStore.resetLoading();\n }),\n );\n }\n lookup(account: string, next: string) {\n return this.http\n .post<any>(\n `${this.environment.baseUrl}/auth/lookup`,\n {\n account,\n next,\n },\n { withCredentials: false },\n )\n .pipe(\n map((user) => {\n return user;\n }),\n );\n }\n challenge(username: string, password: string, next: string) {\n return this.http\n .post<any>(\n `${this.environment.baseUrl}/auth/challenge`,\n {\n username,\n password,\n next,\n },\n { withCredentials: true },\n )\n .pipe(\n map((user) => {\n return user;\n }),\n tap((_) => {\n this.authStore.resetLoading();\n }),\n );\n }\n hasAnyRole(...roles: string[]): boolean {\n return this.authStore.hasAnyRole(...roles);\n }\n hasPlatformRole(...roles: string[]): boolean {\n return this.authStore.hasPlatformRole(...roles);\n }\n hasApplicationRole(appId: string | null, ...roles: string[]): boolean {\n return this.authStore.hasApplicationRole(appId, ...roles);\n }\n hasOrganizationRole(appId: string | null, orgId: string | null, ...roles: string[]): boolean {\n return this.authStore.hasOrganizationRole(appId, orgId, ...roles);\n }\n hasPermission(permission: string): boolean {\n return this.authStore.hasPermission(permission);\n }\n\n private emptyContext(res: IntrospectResponse): MeContextResponse {\n return {\n userId: res.userId,\n username: res.username ?? '',\n platformRoles: [],\n applications: [],\n organizations: [],\n permissions: [],\n };\n }\n\n private syncContext(context: MeContextResponse): void {\n if (this.authContextStore.appId() || this.authContextStore.orgId()) {\n return;\n }\n\n const primaryOrganization = context.organizations[0] ?? null;\n if (primaryOrganization) {\n this.authContextStore.setContext(primaryOrganization.appId, primaryOrganization.orgId);\n return;\n }\n\n const primaryApplication = context.applications[0] ?? null;\n if (primaryApplication) {\n this.authContextStore.setAppId(primaryApplication.appId);\n }\n }\n\n private currentSession(): IntrospectResponse {\n return {\n authenticated: !!this.authStore.authenticated(),\n userId: this.authStore.userId(),\n roles: this.authStore.roles(),\n username: this.authStore.username() ?? this.authStore.user()?.username,\n };\n }\n}\n","import { Location } from '@angular/common';\nimport { Component, computed, inject, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { catchError, of } from 'rxjs';\nimport { AuthContextStore } from '../../auth-context.store';\nimport { AuthStore } from '../../auth.store';\nimport { readLastAllowedUrl } from '../../routing/access-denied.utils';\nimport { AuthService } from '../../services/auth.service';\n\n@Component({\n selector: 'rolatech-forbidden',\n imports: [MatButtonModule, MatProgressSpinnerModule],\n templateUrl: './forbidden.component.html',\n styleUrl: './forbidden.component.scss',\n})\nexport class ForbiddenComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly location = inject(Location);\n private readonly authService = inject(AuthService);\n private readonly authStore = inject(AuthStore);\n private readonly authContextStore = inject(AuthContextStore);\n private readonly environment = inject(APP_CONFIG);\n\n readonly switchingAccount = signal(false);\n readonly deniedUrl = this.normalizeRoute(this.route.snapshot.queryParamMap.get('denied'));\n readonly fallbackUrl = this.resolveFallbackUrl();\n readonly authenticated = this.authStore.authenticated;\n readonly accountLabel = computed(() => this.authStore.username() ?? this.authStore.user()?.email ?? 'this account');\n\n goBackOrFallback(): void {\n if (this.fallbackUrl) {\n this.router.navigateByUrl(this.fallbackUrl);\n return;\n }\n\n this.location.back();\n }\n\n signOutAndSwitchAccount(): void {\n const signInUrl = this.buildSignInUrl();\n this.switchingAccount.set(true);\n\n this.authService\n .logout()\n .pipe(\n catchError(() => {\n this.authStore.clear();\n this.authContextStore.clear();\n return of(null);\n }),\n )\n .subscribe({\n next: () => {\n window.location.href = signInUrl;\n },\n error: () => {\n window.location.href = signInUrl;\n },\n });\n }\n\n goToSignIn(): void {\n window.location.href = this.buildSignInUrl();\n }\n\n private buildSignInUrl(): string {\n const continueUrl = this.buildContinueUrl();\n return `${this.environment.accountsUrl}/signin?continue=${encodeURIComponent(continueUrl)}`;\n }\n\n private buildContinueUrl(): string {\n if (typeof window === 'undefined') {\n return this.environment.myaccountUrl;\n }\n\n const target = this.deniedUrl || this.fallbackUrl || '/';\n return new URL(target, window.location.origin).toString();\n }\n\n private resolveFallbackUrl(): string | null {\n const queryFallback = this.normalizeRoute(this.route.snapshot.queryParamMap.get('fallback'));\n const storedFallback = this.normalizeRoute(readLastAllowedUrl());\n const fallback = queryFallback || storedFallback;\n\n if (!fallback || fallback === this.deniedUrl || fallback.startsWith('/forbidden')) {\n return null;\n }\n\n return fallback;\n }\n\n private normalizeRoute(url?: string | null): string | null {\n if (!url) {\n return null;\n }\n\n return url.startsWith('/') ? url : `/${url}`;\n }\n}\n","<section class=\"forbidden-page\">\n <article class=\"forbidden-page__card\">\n <span class=\"forbidden-page__eyebrow\">403</span>\n <h1 class=\"forbidden-page__title\">This account cannot open that page</h1>\n\n @if (authenticated()) {\n <p class=\"forbidden-page__description\">\n You are signed in as <strong>{{ accountLabel() }}</strong>, but that account does not have permission to view this route.\n </p>\n } @else {\n <p class=\"forbidden-page__description\">You do not have permission to open this route with the current session.</p>\n }\n\n @if (deniedUrl) {\n <div class=\"forbidden-page__route\">\n <span class=\"forbidden-page__route-label\">Attempted page</span>\n <code class=\"forbidden-page__route-value\">{{ deniedUrl }}</code>\n </div>\n }\n\n <p class=\"forbidden-page__hint\">\n Return to a page that still works for this account, or sign out and continue with the correct account to retry access.\n </p>\n\n <div class=\"forbidden-page__actions\">\n <button mat-stroked-button type=\"button\" (click)=\"goBackOrFallback()\">\n {{ fallbackUrl ? 'Back to allowed page' : 'Go back' }}\n </button>\n\n @if (authenticated()) {\n <button mat-flat-button type=\"button\" (click)=\"signOutAndSwitchAccount()\" [disabled]=\"switchingAccount()\">\n @if (switchingAccount()) {\n <mat-progress-spinner diameter=\"18\" mode=\"indeterminate\"></mat-progress-spinner>\n }\n <span>{{ switchingAccount() ? 'Switching account...' : 'Sign out and switch account' }}</span>\n </button>\n } @else {\n <button mat-flat-button type=\"button\" (click)=\"goToSignIn()\">Sign in</button>\n }\n </div>\n\n <p class=\"forbidden-page__support\">\n If this should be available for the current account, ask an administrator to review the role or permission assignment.\n </p>\n </article>\n</section>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-unauthorized',\n templateUrl: './unauthorized.component.html',\n styleUrls: ['./unauthorized.component.scss'],\n})\nexport class UnauthorizedComponent {}\n","<div class=\"p-6 max-w-lg h-auto max-h-32\">\n <div class=\"flex flex-col\">\n <b>401.</b>\n <p>Unauthorized page.</p>\n </div>\n</div>\n","export const PLATFORM_ADMIN_ROLES = ['PLATFORM_ADMIN', 'ROLE_PLATFORM_ADMIN'] as const;\n\nexport const APPLICATION_OWNER_ROLES = ['APPLICATION_OWNER', 'APP_OWNER', 'ROLE_APPLICATION_OWNER', 'ROLE_APP_OWNER'] as const;\n\nexport const APPLICATION_ADMIN_ROLES = ['APPLICATION_ADMIN', 'APP_ADMIN', 'ROLE_APPLICATION_ADMIN', 'ROLE_APP_ADMIN'] as const;\n\nexport const ORGANIZATION_OWNER_ROLES = ['ORGANIZATION_OWNER', 'ORG_OWNER', 'ROLE_ORGANIZATION_OWNER', 'ROLE_ORG_OWNER'] as const;\n\nexport const ORGANIZATION_ADMIN_ROLES = ['ORGANIZATION_ADMIN', 'ORG_ADMIN', 'ROLE_ORGANIZATION_ADMIN', 'ROLE_ORG_ADMIN'] as const;\n\nexport const ORGANIZATION_MEMBER_ROLES = ['ORGANIZATION_MEMBER', 'ORG_MEMBER', 'ROLE_ORGANIZATION_MEMBER', 'ROLE_ORG_MEMBER'] as const;\n\nexport const ORGANIZATION_STAFF_ROLES = ['ORGANIZATION_STAFF', 'ORG_STAFF', 'ROLE_ORGANIZATION_STAFF', 'ROLE_ORG_STAFF'] as const;\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { RouterLink } from '@angular/router';\nimport { OnboardingApplicantService, OnboardingApplicationResponse, OnboardingStatus } from '@rolatech/angular-services';\nimport { catchError, of, switchMap } from 'rxjs';\nimport { AuthContextStore } from '../../auth-context.store';\nimport { AuthStore } from '../../auth.store';\nimport { ORGANIZATION_ADMIN_ROLES, ORGANIZATION_MEMBER_ROLES, ORGANIZATION_OWNER_ROLES } from '../../access/role.constants';\n\ninterface AgentMenuEntry {\n icon?: string;\n label: string;\n routerLink?: string | any[];\n href?: string;\n}\n\n@Component({\n selector: 'rolatech-agent-access-menu',\n imports: [MatMenuModule, MatIconModule, RouterLink],\n template: `\n @if (entry(); as item) {\n @if (item.href) {\n <a mat-menu-item [href]=\"item.href\" target=\"_blank\" class=\"px-6 flex items-center cursor-pointer\">\n @if (item.icon) {\n <mat-icon> {{ item.icon }} </mat-icon>\n }\n <span class=\"flex items-center pl-2\">\n <span> {{ item.label }} </span>\n </span>\n </a>\n } @else {\n <a mat-menu-item [routerLink]=\"item.routerLink\" class=\"px-6 flex items-center cursor-pointer\">\n @if (item.icon) {\n <mat-icon> {{ item.icon }} </mat-icon>\n }\n <span class=\"flex items-center pl-2\">\n <span> {{ item.label }} </span>\n </span>\n </a>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AgentAccessMenu {\n readonly applicationCode = input('primecasa');\n readonly applyRouterLink = input<string | any[]>('/agents');\n readonly applicationsRouterLink = input<string | any[]>('/applications');\n readonly dashboardRouterLink = input<string | any[] | null>(null);\n readonly showApplyAction = input(true);\n readonly dashboardLabel = input('Agent dashboard');\n\n private readonly authStore = inject(AuthStore);\n private readonly authContextStore = inject(AuthContextStore);\n private readonly onboardingApplicantService = inject(OnboardingApplicantService);\n\n private readonly mine = toSignal(\n toObservable(\n computed(() => ({\n authenticated: this.authStore.authenticated(),\n loaded: this.authStore.loaded(),\n applicationCode: this.applicationCode(),\n })),\n ).pipe(\n switchMap(({ authenticated, loaded, applicationCode }) => {\n if (!loaded || !authenticated || !applicationCode) {\n return of<OnboardingApplicationResponse[] | null>(null);\n }\n\n return this.onboardingApplicantService.listMine().pipe(catchError(() => of<OnboardingApplicationResponse[]>([])));\n }),\n ),\n { initialValue: null },\n );\n\n readonly latestApplication = computed<OnboardingApplicationResponse | null>(() => {\n const applications = this.mine();\n\n if (!applications?.length) {\n return null;\n }\n\n return [...applications].sort((left, right) => this.toTimestamp(right) - this.toTimestamp(left))[0] ?? null;\n });\n\n readonly hasDashboardAccess = computed(() => {\n this.authStore.loaded();\n\n const appId =\n this.authContextStore.appId() ??\n this.authStore.primaryApplication()?.appId ??\n this.authStore.primaryOrganization()?.appId ??\n null;\n\n return this.authStore.hasOrganizationRole(\n appId,\n null,\n ...ORGANIZATION_OWNER_ROLES,\n ...ORGANIZATION_ADMIN_ROLES,\n ...ORGANIZATION_MEMBER_ROLES,\n );\n });\n\n readonly entry = computed<AgentMenuEntry | null>(() => {\n const application = this.latestApplication();\n\n if (application?.status === 'APPROVED') {\n return this.toEntry(this.dashboardLabel(), this.dashboardEntryRouterLink(application));\n }\n\n if (application) {\n return this.toEntry(this.applicationLabel(application.status), this.applicationRouterLink(application));\n }\n\n if (this.hasDashboardAccess()) {\n return this.toEntry(this.dashboardLabel(), this.dashboardEntryRouterLink(null));\n }\n\n if (!this.showApplyAction()) {\n return null;\n }\n\n return this.toEntry('Apply as agent', this.applyRouterLink());\n });\n\n private applicationLabel(status: OnboardingStatus): string {\n switch (status) {\n case 'APPROVED':\n return this.dashboardLabel();\n case 'FAILED':\n return 'Agent application result';\n case 'NEED_MORE_INFO':\n return 'Agent application updates';\n case 'SUBMITTED':\n case 'IN_REVIEW':\n return 'Agent application review';\n default:\n return 'Continue agent application';\n }\n }\n\n private applicationRouterLink(application: OnboardingApplicationResponse): any[] {\n return this.composeRouterLink(this.applicationsRouterLink(), application.id);\n }\n\n private dashboardEntryRouterLink(application: OnboardingApplicationResponse | null): string | any[] {\n const dashboardRouterLink = this.dashboardRouterLink();\n\n if (dashboardRouterLink) {\n return dashboardRouterLink;\n }\n\n if (application) {\n return this.applicationRouterLink(application);\n }\n\n return this.applicationsRouterLink();\n }\n\n private toEntry(label: string, link: string | any[]): AgentMenuEntry {\n if (this.isExternalLink(link)) {\n return {\n label,\n href: link,\n };\n }\n\n return {\n label,\n routerLink: link,\n };\n }\n\n private isExternalLink(link: string | any[] | null): link is string {\n return typeof link === 'string' && /^(https?:)?\\/\\//.test(link);\n }\n\n private toTimestamp(application: OnboardingApplicationResponse): number {\n return Date.parse(application.updatedAt ?? application.createdAt ?? '') || 0;\n }\n\n private composeRouterLink(base: string | any[], ...segments: string[]): any[] {\n const prefix = Array.isArray(base) ? [...base] : [base];\n return [...prefix, ...segments];\n }\n}\n","import { Component, DoCheck, ElementRef, HostListener, OnDestroy, Renderer2, inject, output } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { SnackBarService } from '@rolatech/angular-services';\nimport QRCode from 'qrcode';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AuthService } from '../../services/auth.service';\nimport { SpinnerComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-faceid-detect-dialog',\n templateUrl: './faceid-detect-dialog.component.html',\n styleUrls: ['./faceid-detect-dialog.component.scss'],\n imports: [SpinnerComponent, MatButtonModule],\n})\nexport class FaceidDetectDialogComponent implements OnDestroy {\n dialogRef = inject(MatDialogRef);\n environment = inject(APP_CONFIG);\n data = inject(MAT_DIALOG_DATA);\n authService = inject(AuthService);\n snackBarService = inject(SnackBarService);\n output = output<any>();\n loading = false;\n qrcodeUrl = '';\n verified = false;\n interval;\n constructor() {\n this.request();\n }\n ngOnDestroy(): void {\n clearInterval(this.interval);\n }\n request() {\n this.loading = true;\n this.authService.requestFaceIdDetect().subscribe({\n next: ({ data }) => {\n this.genQRCode(data.url);\n this.loop();\n },\n error: () => {\n this.loading = false;\n },\n });\n }\n cancel() {\n clearInterval(this.interval);\n this.dialogRef.close(this.verified);\n }\n loop() {\n this.loading = false;\n this.interval = setInterval(() => {\n this.authService.faceIdStatus().subscribe({\n next: (res) => {\n if (res.data.verified) {\n clearInterval(this.interval);\n this.dialogRef.close(true);\n }\n },\n });\n }, 2000);\n }\n async genQRCode(url: string) {\n try {\n this.qrcodeUrl = await QRCode.toDataURL(url);\n } catch (err) {\n console.error(err);\n }\n }\n}\n","<div class=\"flex flex-col p-3 max-w-[500px] mx-auto\">\n <div class=\"w-[256px] h-[256px] mx-auto flex justify-center items-center\">\n @if (loading) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n }\n <img [src]=\"qrcodeUrl\" alt />\n </div>\n</div>\n","export interface User {\n id: string;\n name: string;\n firstName: string;\n lastName: string;\n username: string;\n avatar: string;\n phone: string;\n email: string;\n bio: string;\n roles: Role[];\n gender: string;\n}\nexport interface Role {\n name: string;\n}\n\nexport interface PasswordChange {\n oldPassword: string;\n newPassword: string;\n ne2Password: string;\n}\nexport enum UserStatus {\n ACTIVE = '正常',\n AWAITING = '审核中',\n DELETED = '已删除',\n}\nexport interface IntrospectResponse {\n authenticated: boolean;\n userId: string;\n roles: string[];\n username?: string;\n}\n\nexport type VerificationType = 'EMAIL' | 'PHONE' | 'FACE_ID' | 'DOCUMENT' | 'PASSPORT' | 'KYC';\n\nexport type VerificationStatus = 'VERIFIED' | 'ALREADY_VERIFIED' | 'INVALID_TOKEN' | 'EXPIRED' | 'USER_NOT_FOUND';\n\nexport interface VerificationResult {\n type: VerificationType;\n status: VerificationStatus;\n message: string;\n}\n\nexport interface Address {\n id: string;\n name: string;\n phone: string;\n email: string;\n type: AddressType;\n country: string;\n province: string;\n city: string;\n district: string;\n street: string;\n detail: string;\n latitude: string;\n longitude: string;\n userId: string;\n}\nexport enum AddressType {\n HOME = '住宅地址',\n WORK = '工作地址',\n BILLING = '账单地址',\n SHIPPING = '购物地址',\n OTHER = '其他',\n}\n","import { Component, DoCheck, model, OnInit, output } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { AddressType } from '../../interfaces/auth.interface';\n\n@Component({\n selector: 'rolatech-address',\n imports: [AngularCommonModule, AngularComponentsModule],\n templateUrl: './address.component.html',\n styleUrl: './address.component.scss',\n})\nexport class AddressComponent implements OnInit, DoCheck {\n addressType = AddressType;\n enumKeys = Object.keys(this.addressType).filter((key) => isNaN(Number(key)));\n address = model<any>();\n output = output<any>();\n\n ngOnInit(): void {}\n\n ngDoCheck(): void {\n this.output.emit(this.address());\n }\n}\n","<div>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput [(ngModel)]=\"address().name\" />\n </mat-form-field>\n @if (address().type === addressType.BILLING) {\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Email </mat-label>\n <input matInput [(ngModel)]=\"address().email\" />\n </mat-form-field>\n }\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput [(ngModel)]=\"address().phone\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> province </mat-label>\n <input matInput [(ngModel)]=\"address().province\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> City </mat-label>\n <input matInput [(ngModel)]=\"address().city\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> District </mat-label>\n <input matInput [(ngModel)]=\"address().district\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Street </mat-label>\n <input matInput [(ngModel)]=\"address().street\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Detail </mat-label>\n <input matInput [(ngModel)]=\"address().detail\" />\n </mat-form-field>\n</div>\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, PLATFORM_ID } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { map, Observable, of } from 'rxjs';\nimport { createForbiddenUrlTree, rememberAllowedUrl } from '../routing/access-denied.utils';\nimport { AuthService } from '../services/auth.service';\n\nexport const AuthGuard: CanActivateFn = (route, state): Observable<boolean | ReturnType<Router['parseUrl']>> => {\n const authService = inject(AuthService);\n const router = inject(Router);\n const environment = inject(APP_CONFIG);\n const platformId = inject(PLATFORM_ID);\n\n if (!isPlatformBrowser(platformId)) {\n return of(false);\n }\n\n const isContinue = state.url.includes('continue');\n const continueUrl = route.queryParams['continue'];\n const isSignInPage = state.url.includes('/signin');\n\n return authService.ensureLoaded().pipe(\n map(({ roles, authenticated }) => {\n const routeRoles = route.data['roles'];\n const passRoled = routeRoles ? roles?.some((r) => routeRoles.indexOf(r) >= 0) : true;\n if (authenticated && !passRoled) {\n return createForbiddenUrlTree(router, state.url, 'role');\n }\n\n if (authenticated) {\n if (isSignInPage) {\n window.location.href = continueUrl || environment.myaccountUrl;\n return false; // Prevent rendering the Sign-in page\n }\n // 1. If 'continue' parameter exists, redirect to it immediately\n if (isContinue && continueUrl) {\n window.location.href = continueUrl;\n return false;\n }\n // 2. If already at the accounts domain and NO continue URL, redirect to default account page\n if (window.location.href.includes(environment.accountsUrl)) {\n window.location.href = environment.myaccountUrl;\n return false;\n }\n // 3. Otherwise, if the user is already where they need to be, allow navigation\n rememberAllowedUrl(state.url);\n return true;\n } else {\n // CASE: Not logged in\n if (isSignInPage) {\n return true; // Allow guest to see the Sign-in page\n }\n\n // Redirection for UNAUTHENTICATED users\n const currentUrl = encodeURIComponent(window.location.href);\n window.location.href = `${environment.accountsUrl}/signin?continue=${currentUrl}`;\n return false;\n }\n }),\n );\n};\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'rolatech-auth-dialog',\n imports: [CommonModule, MatDialogModule],\n templateUrl: './auth-dialog.component.html',\n styleUrl: './auth-dialog.component.scss',\n})\nexport class AuthDialogComponent {\n dialogRef = inject(MatDialogRef);\n}\n","<p>auth-dialog works!</p>\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { CanActivateFn, UrlTree } from '@angular/router';\nimport { APP_CONFIG, WINDOW } from '@rolatech/angular-common';\nimport { last, map, Observable, of, switchMap, take } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { DialogService } from '@rolatech/angular-services';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AuthDialogComponent } from '../components/auth-dialog/auth-dialog.component';\n\nexport const AuthDialogGuard: CanActivateFn = (route, state): Observable<boolean> => {\n const authService = inject(AuthService);\n const dialog = inject(MatDialog);\n const environment = inject(APP_CONFIG);\n const platformId = inject(PLATFORM_ID);\n const isContinue = state.url.includes('continue');\n const continueUrl = route.queryParams['continue'];\n if (!isPlatformBrowser(platformId)) {\n return of(false);\n }\n return authService.introspect().pipe(\n map(({ roles, authenticated }) => {\n if (!authenticated) {\n if (window.location.href.includes(environment.accountsUrl) && !isContinue) {\n window.location.href = environment.myaccountUrl;\n }\n if (isContinue) {\n window.location.href = continueUrl;\n }\n } else {\n const dialogRef = dialog.open(AuthDialogComponent, {\n data: {},\n });\n dialogRef.afterClosed().subscribe((result) => {});\n return true;\n }\n return authenticated;\n }),\n );\n};\n","import { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { RouteAccessPolicy } from './route-access-policy';\n\nexport function matchesRouteAccessPolicy(\n authStore: AuthStore,\n authContextStore: AuthContextStore,\n policy?: RouteAccessPolicy,\n): boolean {\n if (!policy) {\n return true;\n }\n\n if (policy.authenticated !== undefined && authStore.authenticated() !== policy.authenticated) {\n return false;\n }\n\n const appId = authContextStore.appId() ?? authStore.primaryApplication()?.appId ?? authStore.primaryOrganization()?.appId ?? null;\n const orgId = authContextStore.orgId() ?? authStore.primaryOrganization()?.orgId ?? null;\n const groupMatches: boolean[] = [];\n\n if (policy.anyRole?.length) {\n groupMatches.push(authStore.hasAnyRole(...policy.anyRole));\n }\n\n if (policy.anyPlatformRole?.length) {\n groupMatches.push(authStore.hasPlatformRole(...policy.anyPlatformRole));\n }\n\n if (policy.anyApplicationRole?.length) {\n groupMatches.push(authStore.hasApplicationRole(appId, ...policy.anyApplicationRole));\n }\n\n if (policy.anyOrganizationRole?.length) {\n groupMatches.push(authStore.hasOrganizationRole(appId, orgId, ...policy.anyOrganizationRole));\n }\n\n if (policy.anyPermission?.length) {\n groupMatches.push(policy.anyPermission.some((permission) => authStore.hasPermission(permission)));\n }\n\n if (!groupMatches.length) {\n return true;\n }\n\n return groupMatches.some(Boolean);\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, CanMatchFn, Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport { matchesRouteAccessPolicy } from '../access/access.utils';\nimport { RouteAccessPolicy } from '../access/route-access-policy';\nimport { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { AuthService } from '../services/auth.service';\nimport { createForbiddenUrlTree, rememberAllowedUrl } from '../routing/access-denied.utils';\n\nexport function accessGuard(policy: RouteAccessPolicy, fallbackUrl = '/forbidden'): CanActivateFn {\n return (_route, state) => {\n const router = inject(Router);\n const authService = inject(AuthService);\n const authStore = inject(AuthStore);\n const authContextStore = inject(AuthContextStore);\n\n return authService.ensureLoaded().pipe(\n map(() => {\n if (matchesRouteAccessPolicy(authStore, authContextStore, policy)) {\n rememberAllowedUrl(state.url);\n return true;\n }\n\n return fallbackUrl === '/forbidden' ? createForbiddenUrlTree(router, state.url, 'policy') : router.parseUrl(fallbackUrl);\n }),\n );\n };\n}\n\nexport function accessMatchGuard(policy: RouteAccessPolicy, fallbackUrl = '/forbidden'): CanMatchFn {\n return (_route, segments) => {\n const router = inject(Router);\n const authService = inject(AuthService);\n const authStore = inject(AuthStore);\n const authContextStore = inject(AuthContextStore);\n const attemptedUrl = segments.length ? `/${segments.map((segment) => segment.path).join('/')}` : router.url;\n\n return authService.ensureLoaded().pipe(\n map(() => {\n if (matchesRouteAccessPolicy(authStore, authContextStore, policy)) {\n rememberAllowedUrl(router.url);\n return true;\n }\n\n return fallbackUrl === '/forbidden' ? createForbiddenUrlTree(router, attemptedUrl, 'policy') : router.parseUrl(fallbackUrl);\n }),\n );\n };\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport {\n APPLICATION_ADMIN_ROLES,\n APPLICATION_OWNER_ROLES,\n ORGANIZATION_ADMIN_ROLES,\n ORGANIZATION_MEMBER_ROLES,\n ORGANIZATION_OWNER_ROLES,\n ORGANIZATION_STAFF_ROLES,\n PLATFORM_ADMIN_ROLES,\n} from '../access/role.constants';\nimport { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { AuthService } from '../services/auth.service';\n\nexport interface LandingRedirectTarget {\n platform?: string;\n application?: string;\n organization?: string;\n forbidden?: string;\n}\n\nexport function landingRedirectGuard(targets: LandingRedirectTarget = {}): CanActivateFn {\n const resolvedTargets = {\n platform: targets.platform ?? '/platform',\n application: targets.application ?? '/app',\n organization: targets.organization ?? '/organization',\n forbidden: targets.forbidden ?? '/forbidden',\n };\n\n return () => {\n const router = inject(Router);\n const authService = inject(AuthService);\n const authStore = inject(AuthStore);\n const authContextStore = inject(AuthContextStore);\n\n return authService.ensureLoaded().pipe(\n map(() => {\n const appId = authContextStore.appId() ?? authStore.primaryApplication()?.appId ?? authStore.primaryOrganization()?.appId ?? null;\n const orgId = authContextStore.orgId() ?? authStore.primaryOrganization()?.orgId ?? null;\n\n if (authStore.hasPlatformRole(...PLATFORM_ADMIN_ROLES)) {\n return router.parseUrl(resolvedTargets.platform);\n }\n\n if (authStore.hasApplicationRole(appId, ...APPLICATION_OWNER_ROLES, ...APPLICATION_ADMIN_ROLES)) {\n return router.parseUrl(resolvedTargets.application);\n }\n\n if (\n authStore.hasOrganizationRole(\n appId,\n orgId,\n ...ORGANIZATION_OWNER_ROLES,\n ...ORGANIZATION_ADMIN_ROLES,\n ...ORGANIZATION_MEMBER_ROLES,\n ...ORGANIZATION_STAFF_ROLES,\n )\n ) {\n return router.parseUrl(resolvedTargets.organization);\n }\n\n return router.parseUrl(resolvedTargets.forbidden);\n }),\n );\n };\n}\n","import { PLATFORM_ID, inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { map, Observable, of } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { isPlatformBrowser } from '@angular/common';\nimport { createForbiddenUrlTree, rememberAllowedUrl } from '../routing/access-denied.utils';\n\nexport const RoleGuard: CanActivateFn = (route, state): Observable<boolean | ReturnType<Router['parseUrl']>> => {\n const authService = inject(AuthService);\n const platformId = inject(PLATFORM_ID);\n const router = inject(Router);\n if (!isPlatformBrowser(platformId)) {\n return of(false);\n }\n const routeRoles = route.data['roles'];\n return authService.ensureLoaded().pipe(\n map(({ roles }) => {\n const authed = routeRoles ? (roles ?? []).some((role) => routeRoles.indexOf(role) >= 0) : true;\n if (authed) {\n rememberAllowedUrl(state.url);\n return true;\n }\n\n return createForbiddenUrlTree(router, state.url, 'role');\n }),\n );\n};\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport const PermissionGuard: CanActivateFn = (route, state): Observable<boolean> => {\n const authService = inject(AuthService);\n const environment = inject(APP_CONFIG);\n const platformId = inject(PLATFORM_ID);\n const isContinue = state.url.includes('continue');\n const continueUrl = route.queryParams['continue'];\n\n // if (!isPlatformBrowser(platformId)) {\n // return of(false);\n // }\n\n return of(false);\n};\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { ApiResponse, APP_CONFIG } from '@rolatech/angular-common';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { User, VerificationResult } from '../interfaces/auth.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthUserService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n private userSubject: BehaviorSubject<User | null> = new BehaviorSubject<User | null>(JSON.parse('null'));\n public userInfo$: Observable<User | null> = this.userSubject.asObservable();\n updateUserInfo(userInfo: User | null) {\n this.userSubject.next(userInfo);\n }\n findAll(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${id}`, {\n withCredentials: true,\n });\n }\n findOne(userId: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${userId}`, {\n withCredentials: true,\n });\n }\n me() {\n return this.http\n .get<any>(`${this.environment.baseUrl}/auth/me`, {\n withCredentials: true,\n })\n .pipe(\n map((res) => {\n return res.data;\n }),\n );\n }\n getPublicUserInfo(id: string): Observable<any> {\n return this.http\n .get<any>(`${this.environment.baseUrl}/auth/users/${id}/info/public`, {\n withCredentials: false,\n })\n .pipe(\n map((res) => {\n return res.data;\n }),\n );\n }\n findPublicInfoByIds(ids: Array<string>) {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/by`, {\n params: params,\n });\n }\n sendSMSCode(countryCode: string, phone: string) {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/verification/phone/start`, { countryCode, phone });\n }\n verifyEmailByToken(token: string): Observable<VerificationResult> {\n return this.http\n .get<ApiResponse<VerificationResult> | VerificationResult>(\n `${this.environment.baseUrl}/auth/users/verification/email`,\n {\n params: { token },\n withCredentials: true,\n },\n )\n .pipe(\n map((response) => {\n if (response && typeof response === 'object' && 'data' in response) {\n return response.data;\n }\n\n return response;\n }),\n );\n }\n findByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/info`, {\n params: { username },\n withCredentials: true,\n });\n }\n findUserInfoByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/info/by`, {\n params: { username },\n withCredentials: true,\n });\n }\n findPublicInfoByRole(role: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/public/by`, {\n params: { role: role },\n withCredentials: false,\n });\n }\n changeUsername(username: string): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/users/username`,\n { username },\n {\n withCredentials: true,\n },\n );\n }\n changeName(name: any): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/me`,\n { name },\n {\n withCredentials: true,\n },\n );\n }\n createUserByAdmin(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/by/admin`, data, {\n withCredentials: true,\n });\n }\n update(data: any): Observable<any> {\n return this.http.put<any>(`${this.environment.baseUrl}/auth/me`, data, {\n withCredentials: true,\n });\n }\n uploadAvatar(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/avatar`, data, {\n withCredentials: true,\n });\n }\n changePhone(phone: any, code: any): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/users/phone`,\n { phone, code },\n {\n withCredentials: true,\n },\n );\n }\n follow(username: string): Observable<any> {\n return this.http.put<any>(\n `${this.environment.baseUrl}/auth/users/following/${username}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n unfollow(username: string): Observable<any> {\n return this.http.delete<any>(`${this.environment.baseUrl}/auth/users/following/${username}`, {\n withCredentials: true,\n });\n }\n listFollowingByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${username}/following`);\n }\n listFollowersByUsername(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${username}/followers`);\n }\n checkIfFollowingSomeone(username: string, target: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/${username}/following/${target}`);\n }\n isFollowing(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/following/${username}`, { withCredentials: true });\n }\n friendships(ids: string[]): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/friendships`, { ids: ids }, { withCredentials: true });\n }\n followersStats(username: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/followers/stats/by`, { params: { username: username } });\n }\n // Address;\n addAddress(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/auth/users/addresses`, data, { withCredentials: true });\n }\n updateAddress(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.environment.baseUrl}/auth/users/addresses/${id}`, data, { withCredentials: true });\n }\n findAllAddress(options: any): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/addresses`, { params: options, withCredentials: true });\n }\n getAddress(id: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/auth/users/addresses/${id}`, { withCredentials: true });\n }\n deleteAddressById(id: string): Observable<any> {\n return this.http.delete<any>(`${this.environment.baseUrl}/auth/users/addresses/${id}`, { withCredentials: true });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthAgentService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n baseUrl = `${this.environment.baseUrl}/auth/agents`;\n\n public findAllApplications(options: any): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications`, {\n params: options,\n withCredentials: true,\n });\n }\n public getApplication(id: string): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications/${id}`, {\n withCredentials: true,\n });\n }\n public myApplication(): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications/me`, {\n withCredentials: true,\n });\n }\n public apply(data: any): Observable<any> {\n return this.http.post<any>(`${this.baseUrl}/applications`, data, {\n withCredentials: true,\n });\n }\n public approve(id: string): Observable<any> {\n return this.http.put<any>(\n `${this.baseUrl}/applications/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n public reject(id: any, data: any): Observable<any> {\n return this.http.put<any>(`${this.baseUrl}/applications/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n public findRejections(id: string): Observable<any> {\n return this.http.get<any>(`${this.baseUrl}/applications/${id}/rejections`, {\n withCredentials: true,\n });\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { inject, Inject, Injectable, PLATFORM_ID } from '@angular/core';\n\nclass LocalStorage implements Storage {\n [name: string]: any;\n readonly length = 0;\n clear(): void {}\n getItem(key: string): string | null {\n return null;\n }\n key(index: number): string | null {\n return null;\n }\n removeItem(key: string): void {}\n setItem(key: string, value: string): void {}\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalStorageService implements Storage {\n private storage: Storage;\n platformId = inject(PLATFORM_ID);\n\n constructor() {\n this.storage = new LocalStorage();\n\n if (isPlatformBrowser(this.platformId)) {\n this.storage = localStorage;\n }\n }\n\n [name: string]: any;\n\n length = 0;\n\n clear(): void {\n this.storage.clear();\n }\n\n getItem(key: string): string | null {\n return this.storage.getItem(key);\n }\n\n key(index: number): string | null {\n return this.storage.key(index);\n }\n\n removeItem(key: string): void {\n return this.storage.removeItem(key);\n }\n\n setItem(key: string, value: string): void {\n return this.storage.setItem(key, value);\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { AuthService } from '../services/auth.service';\nimport { BehaviorSubject, catchError, Observable, of, throwError } from 'rxjs';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n tokenSubject: BehaviorSubject<string> = new BehaviorSubject<string>('');\n isRefreshingToken = false;\n authService = inject(AuthService);\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n catchError((error) => {\n if (error instanceof HttpErrorResponse) {\n switch (error.status) {\n case 400:\n return this.hand400Error(error);\n case 401:\n return this.hand401Error(error);\n case 403:\n return this.hand403Error(error);\n case 404:\n return this.hand404Error(error);\n case 429:\n return this.hand429Error(error);\n default:\n return this.handleDefaultError(error);\n }\n } else {\n return throwError(() => error);\n }\n }),\n );\n }\n private hand400Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private hand401Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private hand403Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private hand404Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n /**\n *\n * @param error SMS code sent too many\n * @returns\n */\n private hand429Error(error: HttpErrorResponse) {\n return throwError(() => error.error);\n }\n private handleDefaultError(error: HttpErrorResponse) {\n return throwError(() => new Error('System error'));\n }\n}\n","import { catchError, filter, map, switchMap, take } from 'rxjs/operators';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { inject, Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\nimport { NEVER, Observable, throwError } from 'rxjs';\n\nimport { AuthService } from '../services/auth.service';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n authService = inject(AuthService);\n constructor() {}\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const authRequest = request.clone({\n headers: request.headers.append('Client-Id', this.environment.clientId),\n });\n return next.handle(authRequest).pipe(\n map((res) => {\n // if (res instanceof HttpResponse && isPlatformBrowser(this.platformId)) {\n // // window.location.href = res.headers.get('Location') as string;\n // }\n return res;\n }),\n catchError((error: any) => {\n if (isPlatformBrowser(this.platformId)) {\n if (error.url?.includes('auth/introspect')) {\n // if (window.location.origin !== `${this.environment.accountsUrl}`) {\n // window.location.href = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;\n // return NEVER;\n // }\n }\n if (error instanceof HttpErrorResponse && error.error.code === 'G401') {\n window.location.href = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;\n return NEVER;\n }\n }\n return throwError(() => error.error || error.message);\n }),\n );\n }\n addClientIdHeader(request: HttpRequest<any>) {\n return request.clone({\n setHeaders: {\n 'Client-id': this.environment.clientId,\n },\n });\n }\n addCookieHeader(request: HttpRequest<any>, cookie: string) {\n return request.clone({\n setHeaders: {\n Cookie: cookie,\n 'Client-id': this.environment.clientId,\n },\n });\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { EnvironmentProviders, InjectionToken, PLATFORM_ID, Provider, APP_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';\nimport { firstValueFrom, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ErrorInterceptor, AuthInterceptor } from './lib/interceptors';\nimport { AuthService } from './lib/services/auth.service';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport enum AuthMethod {\n Password = 'PASSWORD',\n OTP = 'OTP',\n Google = 'GOOGLE',\n WeChat = 'WECHAT',\n}\n\nexport const AUTH_METHODS = new InjectionToken<AuthMethod[]>('AUTH_METHODS');\n\nexport interface AuthConfig {\n methods: AuthMethod[];\n autoLoadSession?: boolean;\n}\n\nexport function provideAngularAuth(config?: AuthConfig): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n {\n provide: AUTH_METHODS,\n useValue: config?.methods,\n },\n\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: () => {\n const authService = inject(AuthService);\n const platformId = inject(PLATFORM_ID);\n\n return () => {\n if (config?.autoLoadSession === false || !isPlatformBrowser(platformId)) {\n return Promise.resolve();\n }\n\n return firstValueFrom(authService.ensureLoaded().pipe(catchError(() => of(null))));\n };\n },\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Routes } from '@angular/router';\nimport { UnauthorizedComponent } from './components/unauthorized/unauthorized.component';\nimport { ForbiddenComponent } from './components/forbidden/forbidden.component';\n\nexport const authRoutes: Routes = [\n {\n path: 'unauthorized',\n component: UnauthorizedComponent,\n },\n {\n path: 'forbidden',\n component: ForbiddenComponent,\n },\n];\n","import { EnvironmentProviders, InjectionToken, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { NavLink } from '@rolatech/angular-common';\nimport { RouteAccessPolicy } from '../access/route-access-policy';\n\nexport interface RoleNavigationLink extends NavLink {\n order?: number;\n access?: RouteAccessPolicy;\n children?: RoleNavigationLink[];\n}\n\nexport const ROLE_NAVIGATION_LINKS = new InjectionToken<RoleNavigationLink[]>('ROLE_NAVIGATION_LINKS');\n\nexport function provideRoleNavigation(links: RoleNavigationLink[]): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: ROLE_NAVIGATION_LINKS,\n useValue: links,\n multi: true,\n },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { computed, inject, Injectable } from '@angular/core';\nimport { NavLink } from '@rolatech/angular-common';\nimport { matchesRouteAccessPolicy } from '../access/access.utils';\nimport { AuthContextStore } from '../auth-context.store';\nimport { AuthStore } from '../auth.store';\nimport { ROLE_NAVIGATION_LINKS, RoleNavigationLink } from './navigation.tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class AppNavigationService {\n private readonly authStore = inject(AuthStore);\n private readonly authContextStore = inject(AuthContextStore);\n private readonly linkGroups = inject(ROLE_NAVIGATION_LINKS, { optional: true }) ?? [];\n\n readonly links = computed<NavLink[]>(() => {\n this.authStore.authenticated();\n this.authStore.loaded();\n this.authContextStore.appId();\n this.authContextStore.orgId();\n\n return this.linkGroups\n .flat()\n .sort((left, right) => (left.order ?? 0) - (right.order ?? 0))\n .map((link) => this.toNavLink(link))\n .filter((link): link is NavLink => link !== null);\n });\n\n private toNavLink(link: RoleNavigationLink): NavLink | null {\n if (link.visible === false || !matchesRouteAccessPolicy(this.authStore, this.authContextStore, link.access)) {\n return null;\n }\n\n const children = link.children\n ?.map((child) => this.toNavLink(child))\n .filter((child): child is NavLink => child !== null);\n\n if (link.children?.length && !children?.length) {\n return null;\n }\n\n return {\n ...link,\n children,\n };\n }\n}\n","import { EnvironmentProviders, InjectionToken, Provider, Type, inject, makeEnvironmentProviders } from '@angular/core';\nimport { Route, ROUTES, RouterFeatures, Routes, provideRouter } from '@angular/router';\nimport { AuthGuard } from '../guards/auth.guard';\nimport { provideRoleNavigation, RoleNavigationLink } from '../navigation/navigation.tokens';\n\nexport const ROLE_SHELL_CHILD_ROUTES = new InjectionToken<Routes>('ROLE_SHELL_CHILD_ROUTES');\n\nexport interface RoleAwareShellRouterConfig {\n shellComponent: Type<unknown>;\n shellChildren?: Routes;\n topLevelRoutes?: Routes;\n fallbackRoute?: Route;\n shellCanActivate?: Route['canActivate'];\n shellCanActivateChild?: Route['canActivateChild'];\n shellData?: Route['data'];\n}\n\nexport interface RoleAwareFeatureConfig {\n routes?: Routes;\n navigation?: RoleNavigationLink[];\n}\n\nexport interface RoleAwareShellConfig extends RoleAwareShellRouterConfig {\n navigation?: RoleNavigationLink[];\n}\n\nexport interface RoleAwareConsoleShellConfig extends RoleAwareShellConfig {}\n\nexport function provideRoleShellRoutes(routes: Routes): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: ROLE_SHELL_CHILD_ROUTES,\n useValue: routes,\n multi: true,\n },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\nexport function provideRoleAwareFeature(config: RoleAwareFeatureConfig): EnvironmentProviders {\n const providers: Array<Provider | EnvironmentProviders> = [];\n\n if (config.routes?.length) {\n providers.push(provideRoleShellRoutes(config.routes));\n }\n\n if (config.navigation?.length) {\n providers.push(provideRoleNavigation(config.navigation));\n }\n\n return makeEnvironmentProviders(providers);\n}\n\nexport function provideRoleAwareShellRouter(\n config: RoleAwareShellRouterConfig,\n ...features: RouterFeatures[]\n): EnvironmentProviders {\n const providers: Array<Provider | EnvironmentProviders> = [\n provideRouter([], ...features),\n {\n provide: ROUTES,\n multi: true,\n useFactory: (): Routes => {\n const contributedRoutes = inject(ROLE_SHELL_CHILD_ROUTES, { optional: true }) ?? [];\n\n return [\n ...(config.topLevelRoutes ?? []),\n {\n path: '',\n component: config.shellComponent,\n canActivate: config.shellCanActivate,\n canActivateChild: config.shellCanActivateChild,\n data: config.shellData,\n children: [...(config.shellChildren ?? []), ...contributedRoutes.flat()],\n },\n ...(config.fallbackRoute ? [config.fallbackRoute] : []),\n ];\n },\n },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\nexport function provideRoleAwareShell(config: RoleAwareShellConfig, ...features: RouterFeatures[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideRoleAwareShellRouter(config, ...features),\n ...(config.navigation?.length ? [provideRoleNavigation(config.navigation)] : []),\n ]);\n}\n\nexport function provideRoleAwareConsoleShell(\n config: RoleAwareConsoleShellConfig,\n ...features: RouterFeatures[]\n): EnvironmentProviders {\n return provideRoleAwareShell(\n {\n ...config,\n shellCanActivate: config.shellCanActivate ?? [AuthGuard],\n shellCanActivateChild: config.shellCanActivateChild ?? [AuthGuard],\n },\n ...features,\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["catchError","switchMap","i1","i2","map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@rolatech/angular-auth",
3
- "version": "20.3.2-beta.1",
3
+ "version": "20.3.2-beta.3",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^20.0.0",
7
7
  "@angular/core": "^20.0.0"
8
8
  },
9
9
  "dependencies": {
10
- "@rolatech/angular-common": "20.3.2-beta.1",
11
- "@rolatech/angular-components": "20.3.2-beta.1",
12
- "@rolatech/angular-services": "20.3.2-beta.1",
10
+ "@rolatech/angular-common": "20.3.2-beta.3",
11
+ "@rolatech/angular-components": "20.3.2-beta.3",
12
+ "@rolatech/angular-services": "20.3.2-beta.3",
13
13
  "tslib": "^2.3.0"
14
14
  },
15
15
  "repository": {
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-thin:100;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-6{top:calc(var(--spacing) * 6)}.top-\[30px\]{top:30px}.-right-0,.right-0{right:calc(var(--spacing) * 0)}.-bottom-0,.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-1\.5{left:calc(var(--spacing) * -1.5)}.left-0{left:calc(var(--spacing) * 0)}.left-\[30px\]{left:30px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-9200{z-index:9200}.z-\[1000\]{z-index:1000}.z-\[1001\]{z-index:1001}.z-\[9999\]{z-index:9999}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-8{grid-column:span 8/span 8}.col-span-12{grid-column:span 12/span 12}.col-start-3{grid-column-start:3}.col-start-6{grid-column-start:6}.container{width:100%}@media (min-width:600px){.container{max-width:600px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.-m-1{margin:calc(var(--spacing) * -1)}.m-1{margin:calc(var(--spacing) * 1)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-6{margin-block:calc(var(--spacing) * 6)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[6px\]{margin-top:6px}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mr-6{margin-right:calc(var(--spacing) * 6)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-20{margin-bottom:calc(var(--spacing) * 20)}.mb-32{margin-bottom:calc(var(--spacing) * 32)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-14{margin-left:calc(var(--spacing) * 14)}.ml-\[40px\]{margin-left:40px}.ml-\[56px\]{margin-left:56px}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-\[10\/16\]{aspect-ratio:10/16}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-0{height:calc(var(--spacing) * 0)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-44{height:calc(var(--spacing) * 44)}.h-56{height:calc(var(--spacing) * 56)}.h-80{height:calc(var(--spacing) * 80)}.h-\[1px\]{height:1px}.h-\[72px\]{height:72px}.h-\[80px\]{height:80px}.h-\[190px\]{height:190px}.h-\[256px\]{height:256px}.h-\[calc\(100dvh-56px\)\]{height:calc(100dvh - 56px)}.h-\[calc\(100vh-6rem\)\]{height:calc(100vh - 6rem)}.h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.h-\[calc\(100vh-128px\)\]{height:calc(100vh - 128px)}.h-\[calc\(100vh-190px\)\]{height:calc(100vh - 190px)}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-min{height:min-content}.h-screen{height:100vh}.max-h-8{max-height:calc(var(--spacing) * 8)}.max-h-9{max-height:calc(var(--spacing) * 9)}.max-h-12{max-height:calc(var(--spacing) * 12)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-\[55vh\]{max-height:55vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[92vh\]{max-height:92vh}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-\[28px\]{min-height:28px}.min-h-\[80px\]{min-height:80px}.min-h-\[160px\]{min-height:160px}.min-h-\[214px\]{min-height:214px}.min-h-\[280px\]{min-height:280px}.min-h-\[320px\]{min-height:320px}.min-h-\[420px\]{min-height:420px}.min-h-full{min-height:100%}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\/3{width:66.6667%}.w-2\/5{width:40%}.w-2\/6{width:33.3333%}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/6{width:66.6667%}.w-4\/12{width:33.3333%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-8\/12{width:66.6667%}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[50\%\]{width:50%}.w-\[60px\]{width:60px}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[128px\]{width:128px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-\[190px\]{width:190px}.w-\[256px\]{width:256px}.w-\[min\(92vw\,520px\)\]{width:min(92vw,520px)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-8{max-width:calc(var(--spacing) * 8)}.max-w-24{max-width:calc(var(--spacing) * 24)}.max-w-\[65\%\]{max-width:65%}.max-w-\[80\%\]{max-width:80%}.max-w-\[128px\]{max-width:128px}.max-w-\[180px\]{max-width:180px}.max-w-\[420px\]{max-width:420px}.max-w-\[500px\]{max-width:500px}.max-w-\[820px\]{max-width:820px}.max-w-\[1120px\]{max-width:1120px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[1300px\]{max-width:1300px}.max-w-\[1396px\]{max-width:1396px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.\!min-w-0{min-width:calc(var(--spacing) * 0)!important}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-\[28px\]{min-width:28px}.min-w-\[40\%\]{min-width:40%}.min-w-\[80\%\]{min-width:80%}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[150px\]{min-width:150px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[256px\]{min-width:256px}.min-w-\[280px\]{min-width:280px}.min-w-\[320px\]{min-width:320px}.min-w-\[900px\]{min-width:900px}.min-w-\[980px\]{min-width:980px}.min-w-\[1000px\]{min-width:1000px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.3333%}.border-collapse{border-collapse:collapse}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-none{translate:none}.scale-90{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-dashed>:not(:last-child)){--tw-border-style:dashed;border-style:dashed}:where(.divide-\(--rt-10-percent-layer\)>:not(:last-child)){border-color:var(--rt-10-percent-layer)}:where(.divide-\(--rt-border-color\)>:not(:last-child)){border-color:var(--rt-border-color)}:where(.divide-\(--rt-raised-background\)>:not(:last-child)){border-color:var(--rt-raised-background)}:where(.divide-\[color\:var\(--rt-outline\,rgba\(0\,0\,0\,0\.08\)\)\]>:not(:last-child)){border-color:var(--rt-outline,#00000014)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[28px\]{border-radius:28px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--rt-border-color\){border-color:var(--rt-border-color)}.border-\(--rt-brand-color\){border-color:var(--rt-brand-color)}.border-\(--rt-raised-background\){border-color:var(--rt-raised-background)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-300\/40{border-color:#ffd23666}@supports (color:color-mix(in lab, red, red)){.border-amber-300\/40{border-color:color-mix(in oklab, var(--color-amber-300) 40%, transparent)}}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-black{border-color:var(--color-black)}.border-current{border-color:currentColor}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-gray-200{border-color:var(--color-gray-200)}.border-green-200{border-color:var(--color-green-200)}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\/20{border-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-300\/40{border-color:#ffa2ae66}@supports (color:color-mix(in lab, red, red)){.border-rose-300\/40{border-color:color-mix(in oklab, var(--color-rose-300) 40%, transparent)}}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/50{border-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.border-white\/50{border-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.\!bg-\(--rt-brand-color\){background-color:var(--rt-brand-color)!important}.bg-\(--rolatech-raised-background\){background-color:var(--rolatech-raised-background)}.bg-\(--rt-10-percent-layer\){background-color:var(--rt-10-percent-layer)}.bg-\(--rt-20-percent-layer\){background-color:var(--rt-20-percent-layer)}.bg-\(--rt-accent\){background-color:var(--rt-accent)}.bg-\(--rt-background\){background-color:var(--rt-background)}.bg-\(--rt-badge-chip-background\){background-color:var(--rt-badge-chip-background)}.bg-\(--rt-base-background\){background-color:var(--rt-base-background)}.bg-\(--rt-brand-color\){background-color:var(--rt-brand-color)}.bg-\(--rt-raised-background\){background-color:var(--rt-raised-background)}.bg-\(--rt-rasised-background\){background-color:var(--rt-rasised-background)}.bg-\(--rt-signin-inner-background\){background-color:var(--rt-signin-inner-background)}.bg-\(--rt-surface-2\){background-color:var(--rt-surface-2)}.bg-\(--rt-text-primary\){background-color:var(--rt-text-primary)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\/5{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab, red, red)){.bg-black\/20{background-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-sky-50{background-color:var(--color-sky-50)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-950\/70{background-color:#020618b3}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/70{background-color:color-mix(in oklab, var(--color-slate-950) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.\!p-1{padding:calc(var(--spacing) * 1)!important}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-11{padding:calc(var(--spacing) * 11)}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-11{padding-block:calc(var(--spacing) * 11)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-base{font-size:var(--text-base)!important;line-height:var(--tw-leading,var(--text-base--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!text-\[14px\]{font-size:14px!important}.text-\[0\.9rem\]{font-size:.9rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.24em\]{--tw-tracking:.24em;letter-spacing:.24em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-\(--rt-text-primary-inverse\){color:var(--rt-text-primary-inverse)!important}.text-\(--rt-accent-foreground\){color:var(--rt-accent-foreground)}.text-\(--rt-brand-color\){color:var(--rt-brand-color)}.text-\(--rt-text-primary\){color:var(--rt-text-primary)}.text-\(--rt-text-primary-inverse\){color:var(--rt-text-primary-inverse)}.text-\(--rt-text-secondary\){color:var(--rt-text-secondary)}.text-\[\#4A4A4A\]{color:#4a4a4a}.text-\[\#8C8C8C\]{color:#8c8c8c}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-amber-950{color:var(--color-amber-950)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-700{color:var(--color-green-700)}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-rose-200{color:var(--color-rose-200)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-sky-700{color:var(--color-sky-700)}.text-sky-900{color:var(--color-sky-900)}.text-sky-950{color:var(--color-sky-950)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.text-yellow-800{color:var(--color-yellow-800)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-4{outline-style:var(--tw-outline-style);outline-width:4px}.outline-transparent{outline-color:#0000}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-dashed{--tw-outline-style:dashed;outline-style:dashed}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[overflow-anchor\:none\]{overflow-anchor:none}@media (hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:bg-white:is(:where(.group):hover *){background-color:var(--color-white)}.group-hover\:shadow-sm:is(:where(.group):hover *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.after\:invisible:after{content:var(--tw-content);visibility:hidden}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-\(--rt-border-color\):after{content:var(--tw-content);border-color:var(--rt-border-color)}.after\:px-3\.5:after{content:var(--tw-content);padding-inline:calc(var(--spacing) * 3.5)}.after\:py-2\.5:after{content:var(--tw-content);padding-block:calc(var(--spacing) * 2.5)}.after\:whitespace-pre-wrap:after{content:var(--tw-content);white-space:pre-wrap}.after\:text-inherit:after{content:var(--tw-content);color:inherit}.after\:content-\[attr\(data-cloned-val\)_\'_\'\]:after{--tw-content:attr(data-cloned-val) " ";content:var(--tw-content)}.after\:\[grid-area\:1\/1\/2\/2\]:after{content:var(--tw-content);grid-area:1/1/2/2}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:cursor-pointer:hover{cursor:pointer}.hover\:rounded-none:hover{border-radius:0}.hover\:border-\(--rt-border-color\):hover{border-color:var(--rt-border-color)}.hover\:bg-\(--rt-10-percent-layer\):hover{background-color:var(--rt-10-percent-layer)}.hover\:bg-\(--rt-20-percent-layer\):hover{background-color:var(--rt-20-percent-layer)}.hover\:bg-\(--rt-base-background\):hover{background-color:var(--rt-base-background)}.hover\:bg-\(--rt-brand-color\):hover{background-color:var(--rt-brand-color)}.hover\:bg-\(--rt-outline\):hover{background-color:var(--rt-outline)}.hover\:bg-\(--rt-raised-background\):hover{background-color:var(--rt-raised-background)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-\(--rt-brand-color\):hover{color:var(--rt-brand-color)}.hover\:text-\(--rt-text-primary-inverse\):hover{color:var(--rt-text-primary-inverse)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:outline-\(--rt-raised-background\):hover{outline-color:var(--rt-raised-background)}.hover\:outline-gray-200:hover{outline-color:var(--color-gray-200)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\(--rt-raised-background\):disabled{background-color:var(--rt-raised-background)}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:600px){.sm\:visible{visibility:visible}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:mt-1{margin-top:calc(var(--spacing) * 1)}.sm\:aspect-video{aspect-ratio:var(--aspect-video)}.sm\:h-28{height:calc(var(--spacing) * 28)}.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-3\/4{width:75%}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:w-\[300px\]{width:300px}.sm\:min-w-\[33\%\]{min-width:33%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:768px){.md\:visible{visibility:visible}.md\:static{position:static}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-6{grid-column:span 6/span 6}.md\:mt-6{margin-top:calc(var(--spacing) * 6)}.md\:mr-0{margin-right:calc(var(--spacing) * 0)}.md\:mr-16{margin-right:calc(var(--spacing) * 16)}.md\:mb-1{margin-bottom:calc(var(--spacing) * 1)}.md\:ml-0{margin-left:calc(var(--spacing) * 0)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:ml-8{margin-left:calc(var(--spacing) * 8)}.md\:ml-16{margin-left:calc(var(--spacing) * 16)}.md\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:h-14{height:calc(var(--spacing) * 14)}.md\:h-36{height:calc(var(--spacing) * 36)}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:max-h-10{max-height:calc(var(--spacing) * 10)}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.3333%}.md\:w-1\/4{width:25%}.md\:w-2\/3{width:66.6667%}.md\:w-3\/4{width:75%}.md\:w-36{width:calc(var(--spacing) * 36)}.md\:w-80{width:calc(var(--spacing) * 80)}.md\:w-\[600px\]{width:600px}.md\:w-full{width:100%}.md\:max-w-\[70\%\]{max-width:70%}.md\:max-w-\[768px\]{max-width:768px}.md\:min-w-\[25\%\]{min-width:25%}.md\:min-w-\[28\%\]{min-width:28%}.md\:min-w-\[30\%\]{min-width:30%}.md\:min-w-\[320px\]{min-width:320px}.md\:basis-1\/2{flex-basis:50%}.md\:translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:justify-end{justify-content:flex-end}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:gap-10{gap:calc(var(--spacing) * 10)}.md\:rounded-xl{border-radius:var(--radius-xl)}.md\:bg-\(--rt-base-background\){background-color:var(--rt-base-background)}.md\:p-3{padding:calc(var(--spacing) * 3)}.md\:px-0{padding-inline:calc(var(--spacing) * 0)}.md\:px-1{padding-inline:calc(var(--spacing) * 1)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-16{padding-inline:calc(var(--spacing) * 16)}.md\:px-\[60px\]{padding-inline:60px}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:pr-16{padding-right:calc(var(--spacing) * 16)}.md\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.md\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (min-width:1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:mt-4{margin-top:calc(var(--spacing) * 4)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:table-cell{display:table-cell}.lg\:w-1\/2{width:50%}.lg\:w-1\/6{width:16.6667%}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:w-\[30\%\]{width:30%}.lg\:w-\[70\%\]{width:70%}.lg\:w-\[900px\]{width:900px}.lg\:basis-1\/2{flex-basis:50%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[360px_minmax\(0\,1fr\)\]{grid-template-columns:360px minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:p-4{padding:calc(var(--spacing) * 4)}.lg\:p-11{padding:calc(var(--spacing) * 11)}.lg\:px-0{padding-inline:calc(var(--spacing) * 0)}.lg\:px-3{padding-inline:calc(var(--spacing) * 3)}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:pt-0{padding-top:calc(var(--spacing) * 0)}.lg\:pt-1{padding-top:calc(var(--spacing) * 1)}.lg\:pt-3{padding-top:calc(var(--spacing) * 3)}.lg\:pr-4{padding-right:calc(var(--spacing) * 4)}.lg\:pr-6{padding-right:calc(var(--spacing) * 6)}.lg\:pl-4{padding-left:calc(var(--spacing) * 4)}}@media (min-width:1280px){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:w-1\/8{width:12.5%}.xl\:w-\[1000px\]{width:1000px}.xl\:max-w-\[1024px\]{max-width:1024px}.xl\:min-w-\[320px\]{min-width:320px}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.xl\:grid-cols-\[320px_minmax\(0\,1fr\)\]{grid-template-columns:320px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.xl\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(320px\,0\.8fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.xl\:grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(320px\,0\.7fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr)}.xl\:grid-cols-\[minmax\(0\,1fr\)_360px\]{grid-template-columns:minmax(0,1fr) 360px}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}.xl\:items-start{align-items:flex-start}.xl\:justify-between{justify-content:space-between}}@media (min-width:1536px){.\32 xl\:max-w-\[1024px\]{max-width:1024px}.\32 xl\:max-w-\[1280px\]{max-width:1280px}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-color-scheme:dark){.dark\:bg-\(--rt-raised-background\){background-color:var(--rt-raised-background)}}.\[\&\>textarea\]\:resize-none>textarea{resize:none}.\[\&\>textarea\]\:overflow-hidden>textarea{overflow:hidden}.\[\&\>textarea\]\:text-inherit>textarea{color:inherit}.\[\&\>textarea\]\:\[grid-area\:1\/1\/2\/2\]>textarea{grid-area:1/1/2/2}.\[\&\>tr\:nth-child\(even\)\]\:bg-\(--rt-raised-background\)>tr:nth-child(2n){background-color:var(--rt-raised-background)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-100:oklch(96.2% .044 156.743);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-thin:100;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-6{top:calc(var(--spacing) * 6)}.top-\[30px\]{top:30px}.-right-0,.right-0{right:calc(var(--spacing) * 0)}.-bottom-0,.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-1\.5{left:calc(var(--spacing) * -1.5)}.left-0{left:calc(var(--spacing) * 0)}.left-\[30px\]{left:30px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-9200{z-index:9200}.z-\[1000\]{z-index:1000}.z-\[1001\]{z-index:1001}.z-\[9999\]{z-index:9999}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-8{grid-column:span 8/span 8}.col-span-12{grid-column:span 12/span 12}.col-start-3{grid-column-start:3}.col-start-6{grid-column-start:6}.container{width:100%}@media (min-width:600px){.container{max-width:600px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.-m-1{margin:calc(var(--spacing) * -1)}.m-1{margin:calc(var(--spacing) * 1)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-6{margin-block:calc(var(--spacing) * 6)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-\[6px\]{margin-top:6px}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mr-6{margin-right:calc(var(--spacing) * 6)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-20{margin-bottom:calc(var(--spacing) * 20)}.mb-32{margin-bottom:calc(var(--spacing) * 32)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-14{margin-left:calc(var(--spacing) * 14)}.ml-\[40px\]{margin-left:40px}.ml-\[56px\]{margin-left:56px}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-\[10\/16\]{aspect-ratio:10/16}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-0{height:calc(var(--spacing) * 0)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-56{height:calc(var(--spacing) * 56)}.h-80{height:calc(var(--spacing) * 80)}.h-\[1px\]{height:1px}.h-\[72px\]{height:72px}.h-\[80px\]{height:80px}.h-\[190px\]{height:190px}.h-\[256px\]{height:256px}.h-\[calc\(100dvh-56px\)\]{height:calc(100dvh - 56px)}.h-\[calc\(100vh-6rem\)\]{height:calc(100vh - 6rem)}.h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.h-\[calc\(100vh-128px\)\]{height:calc(100vh - 128px)}.h-\[calc\(100vh-190px\)\]{height:calc(100vh - 190px)}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-min{height:min-content}.h-screen{height:100vh}.max-h-8{max-height:calc(var(--spacing) * 8)}.max-h-9{max-height:calc(var(--spacing) * 9)}.max-h-12{max-height:calc(var(--spacing) * 12)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-\[55vh\]{max-height:55vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[92vh\]{max-height:92vh}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-\[28px\]{min-height:28px}.min-h-\[80px\]{min-height:80px}.min-h-\[160px\]{min-height:160px}.min-h-\[214px\]{min-height:214px}.min-h-\[280px\]{min-height:280px}.min-h-\[320px\]{min-height:320px}.min-h-\[420px\]{min-height:420px}.min-h-full{min-height:100%}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\/3{width:66.6667%}.w-2\/5{width:40%}.w-2\/6{width:33.3333%}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/6{width:66.6667%}.w-4\/12{width:33.3333%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-8\/12{width:66.6667%}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[50\%\]{width:50%}.w-\[60px\]{width:60px}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[128px\]{width:128px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-\[190px\]{width:190px}.w-\[256px\]{width:256px}.w-\[min\(92vw\,520px\)\]{width:min(92vw,520px)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-8{max-width:calc(var(--spacing) * 8)}.max-w-24{max-width:calc(var(--spacing) * 24)}.max-w-\[65\%\]{max-width:65%}.max-w-\[80\%\]{max-width:80%}.max-w-\[128px\]{max-width:128px}.max-w-\[180px\]{max-width:180px}.max-w-\[500px\]{max-width:500px}.max-w-\[820px\]{max-width:820px}.max-w-\[1120px\]{max-width:1120px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[1300px\]{max-width:1300px}.max-w-\[1396px\]{max-width:1396px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.\!min-w-0{min-width:calc(var(--spacing) * 0)!important}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-\[28px\]{min-width:28px}.min-w-\[40\%\]{min-width:40%}.min-w-\[80\%\]{min-width:80%}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[150px\]{min-width:150px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[256px\]{min-width:256px}.min-w-\[280px\]{min-width:280px}.min-w-\[320px\]{min-width:320px}.min-w-\[900px\]{min-width:900px}.min-w-\[980px\]{min-width:980px}.min-w-\[1000px\]{min-width:1000px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.3333%}.border-collapse{border-collapse:collapse}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-none{translate:none}.scale-90{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-dashed>:not(:last-child)){--tw-border-style:dashed;border-style:dashed}:where(.divide-\(--rt-10-percent-layer\)>:not(:last-child)){border-color:var(--rt-10-percent-layer)}:where(.divide-\(--rt-border-color\)>:not(:last-child)){border-color:var(--rt-border-color)}:where(.divide-\(--rt-raised-background\)>:not(:last-child)){border-color:var(--rt-raised-background)}:where(.divide-\[color\:var\(--rt-outline\,rgba\(0\,0\,0\,0\.08\)\)\]>:not(:last-child)){border-color:var(--rt-outline,#00000014)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[28px\]{border-radius:28px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--rt-border-color\){border-color:var(--rt-border-color)}.border-\(--rt-brand-color\){border-color:var(--rt-brand-color)}.border-\(--rt-raised-background\){border-color:var(--rt-raised-background)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-300\/40{border-color:#ffd23666}@supports (color:color-mix(in lab, red, red)){.border-amber-300\/40{border-color:color-mix(in oklab, var(--color-amber-300) 40%, transparent)}}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-black{border-color:var(--color-black)}.border-current{border-color:currentColor}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\/20{border-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-300\/40{border-color:#ffa2ae66}@supports (color:color-mix(in lab, red, red)){.border-rose-300\/40{border-color:color-mix(in oklab, var(--color-rose-300) 40%, transparent)}}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/50{border-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.border-white\/50{border-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.border-t-transparent{border-top-color:#0000}.\!bg-\(--rt-brand-color\){background-color:var(--rt-brand-color)!important}.bg-\(--rt-10-percent-layer\){background-color:var(--rt-10-percent-layer)}.bg-\(--rt-20-percent-layer\){background-color:var(--rt-20-percent-layer)}.bg-\(--rt-accent\){background-color:var(--rt-accent)}.bg-\(--rt-background\){background-color:var(--rt-background)}.bg-\(--rt-badge-chip-background\){background-color:var(--rt-badge-chip-background)}.bg-\(--rt-base-background\){background-color:var(--rt-base-background)}.bg-\(--rt-brand-color\){background-color:var(--rt-brand-color)}.bg-\(--rt-raised-background\){background-color:var(--rt-raised-background)}.bg-\(--rt-rasised-background\){background-color:var(--rt-rasised-background)}.bg-\(--rt-signin-inner-background\){background-color:var(--rt-signin-inner-background)}.bg-\(--rt-surface-2\){background-color:var(--rt-surface-2)}.bg-\(--rt-text-primary\){background-color:var(--rt-text-primary)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\/5{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab, red, red)){.bg-black\/20{background-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-300{background-color:var(--color-red-300)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-sky-50{background-color:var(--color-sky-50)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-950\/70{background-color:#020618b3}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/70{background-color:color-mix(in oklab, var(--color-slate-950) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.\!p-1{padding:calc(var(--spacing) * 1)!important}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-11{padding:calc(var(--spacing) * 11)}.\!px-2{padding-inline:calc(var(--spacing) * 2)!important}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-11{padding-block:calc(var(--spacing) * 11)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.\!text-base{font-size:var(--text-base)!important;line-height:var(--tw-leading,var(--text-base--line-height))!important}.\!text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!text-\[14px\]{font-size:14px!important}.text-\[0\.9rem\]{font-size:.9rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.24em\]{--tw-tracking:.24em;letter-spacing:.24em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-\(--rt-text-primary-inverse\){color:var(--rt-text-primary-inverse)!important}.text-\(--rt-accent-foreground\){color:var(--rt-accent-foreground)}.text-\(--rt-brand-color\){color:var(--rt-brand-color)}.text-\(--rt-text-primary\){color:var(--rt-text-primary)}.text-\(--rt-text-primary-inverse\){color:var(--rt-text-primary-inverse)}.text-\(--rt-text-secondary\){color:var(--rt-text-secondary)}.text-\[\#4A4A4A\]{color:#4a4a4a}.text-\[\#8C8C8C\]{color:#8c8c8c}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-amber-950{color:var(--color-amber-950)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-700{color:var(--color-green-700)}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-rose-200{color:var(--color-rose-200)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-sky-700{color:var(--color-sky-700)}.text-sky-900{color:var(--color-sky-900)}.text-sky-950{color:var(--color-sky-950)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.text-yellow-800{color:var(--color-yellow-800)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-4{outline-style:var(--tw-outline-style);outline-width:4px}.outline-transparent{outline-color:#0000}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-dashed{--tw-outline-style:dashed;outline-style:dashed}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[overflow-anchor\:none\]{overflow-anchor:none}@media (hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:bg-white:is(:where(.group):hover *){background-color:var(--color-white)}.group-hover\:shadow-sm:is(:where(.group):hover *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.after\:invisible:after{content:var(--tw-content);visibility:hidden}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-\(--rt-border-color\):after{content:var(--tw-content);border-color:var(--rt-border-color)}.after\:px-3\.5:after{content:var(--tw-content);padding-inline:calc(var(--spacing) * 3.5)}.after\:py-2\.5:after{content:var(--tw-content);padding-block:calc(var(--spacing) * 2.5)}.after\:whitespace-pre-wrap:after{content:var(--tw-content);white-space:pre-wrap}.after\:text-inherit:after{content:var(--tw-content);color:inherit}.after\:content-\[attr\(data-cloned-val\)_\'_\'\]:after{--tw-content:attr(data-cloned-val) " ";content:var(--tw-content)}.after\:\[grid-area\:1\/1\/2\/2\]:after{content:var(--tw-content);grid-area:1/1/2/2}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:cursor-pointer:hover{cursor:pointer}.hover\:rounded-none:hover{border-radius:0}.hover\:border-\(--rt-border-color\):hover{border-color:var(--rt-border-color)}.hover\:bg-\(--rt-10-percent-layer\):hover{background-color:var(--rt-10-percent-layer)}.hover\:bg-\(--rt-20-percent-layer\):hover{background-color:var(--rt-20-percent-layer)}.hover\:bg-\(--rt-base-background\):hover{background-color:var(--rt-base-background)}.hover\:bg-\(--rt-brand-color\):hover{background-color:var(--rt-brand-color)}.hover\:bg-\(--rt-outline\):hover{background-color:var(--rt-outline)}.hover\:bg-\(--rt-raised-background\):hover{background-color:var(--rt-raised-background)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-\(--rt-brand-color\):hover{color:var(--rt-brand-color)}.hover\:text-\(--rt-text-primary-inverse\):hover{color:var(--rt-text-primary-inverse)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:outline-\(--rt-raised-background\):hover{outline-color:var(--rt-raised-background)}.hover\:outline-gray-200:hover{outline-color:var(--color-gray-200)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\(--rt-raised-background\):disabled{background-color:var(--rt-raised-background)}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:600px){.sm\:visible{visibility:visible}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:mt-1{margin-top:calc(var(--spacing) * 1)}.sm\:aspect-video{aspect-ratio:var(--aspect-video)}.sm\:h-28{height:calc(var(--spacing) * 28)}.sm\:w-1\/3{width:33.3333%}.sm\:w-1\/4{width:25%}.sm\:w-3\/4{width:75%}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:w-\[300px\]{width:300px}.sm\:min-w-\[33\%\]{min-width:33%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:768px){.md\:visible{visibility:visible}.md\:static{position:static}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-6{grid-column:span 6/span 6}.md\:mt-6{margin-top:calc(var(--spacing) * 6)}.md\:mr-0{margin-right:calc(var(--spacing) * 0)}.md\:mr-16{margin-right:calc(var(--spacing) * 16)}.md\:mb-1{margin-bottom:calc(var(--spacing) * 1)}.md\:ml-0{margin-left:calc(var(--spacing) * 0)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:ml-8{margin-left:calc(var(--spacing) * 8)}.md\:ml-16{margin-left:calc(var(--spacing) * 16)}.md\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:h-14{height:calc(var(--spacing) * 14)}.md\:h-36{height:calc(var(--spacing) * 36)}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:max-h-10{max-height:calc(var(--spacing) * 10)}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.3333%}.md\:w-1\/4{width:25%}.md\:w-2\/3{width:66.6667%}.md\:w-3\/4{width:75%}.md\:w-36{width:calc(var(--spacing) * 36)}.md\:w-80{width:calc(var(--spacing) * 80)}.md\:w-\[600px\]{width:600px}.md\:w-full{width:100%}.md\:max-w-\[70\%\]{max-width:70%}.md\:max-w-\[768px\]{max-width:768px}.md\:min-w-\[25\%\]{min-width:25%}.md\:min-w-\[28\%\]{min-width:28%}.md\:min-w-\[30\%\]{min-width:30%}.md\:min-w-\[320px\]{min-width:320px}.md\:basis-1\/2{flex-basis:50%}.md\:translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:justify-end{justify-content:flex-end}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:gap-10{gap:calc(var(--spacing) * 10)}.md\:rounded-xl{border-radius:var(--radius-xl)}.md\:bg-\(--rt-base-background\){background-color:var(--rt-base-background)}.md\:p-3{padding:calc(var(--spacing) * 3)}.md\:px-0{padding-inline:calc(var(--spacing) * 0)}.md\:px-1{padding-inline:calc(var(--spacing) * 1)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-16{padding-inline:calc(var(--spacing) * 16)}.md\:px-\[60px\]{padding-inline:60px}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:pr-16{padding-right:calc(var(--spacing) * 16)}.md\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.md\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (min-width:1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:mt-4{margin-top:calc(var(--spacing) * 4)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:table-cell{display:table-cell}.lg\:w-1\/2{width:50%}.lg\:w-1\/6{width:16.6667%}.lg\:w-\[30\%\]{width:30%}.lg\:w-\[70\%\]{width:70%}.lg\:w-\[900px\]{width:900px}.lg\:basis-1\/2{flex-basis:50%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[360px_minmax\(0\,1fr\)\]{grid-template-columns:360px minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:p-4{padding:calc(var(--spacing) * 4)}.lg\:p-11{padding:calc(var(--spacing) * 11)}.lg\:px-0{padding-inline:calc(var(--spacing) * 0)}.lg\:px-3{padding-inline:calc(var(--spacing) * 3)}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:pt-0{padding-top:calc(var(--spacing) * 0)}.lg\:pt-1{padding-top:calc(var(--spacing) * 1)}.lg\:pt-3{padding-top:calc(var(--spacing) * 3)}.lg\:pr-4{padding-right:calc(var(--spacing) * 4)}.lg\:pr-6{padding-right:calc(var(--spacing) * 6)}.lg\:pl-4{padding-left:calc(var(--spacing) * 4)}}@media (min-width:1280px){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:w-1\/8{width:12.5%}.xl\:w-\[1000px\]{width:1000px}.xl\:max-w-\[1024px\]{max-width:1024px}.xl\:min-w-\[320px\]{min-width:320px}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.xl\:grid-cols-\[320px_minmax\(0\,1fr\)\]{grid-template-columns:320px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(0\,0\.8fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.xl\:grid-cols-\[minmax\(0\,1\.2fr\)_minmax\(320px\,0\.8fr\)\]{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.xl\:grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(320px\,0\.7fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr)}.xl\:grid-cols-\[minmax\(0\,1fr\)_360px\]{grid-template-columns:minmax(0,1fr) 360px}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}.xl\:items-start{align-items:flex-start}.xl\:justify-between{justify-content:space-between}}@media (min-width:1536px){.\32 xl\:max-w-\[1024px\]{max-width:1024px}.\32 xl\:max-w-\[1280px\]{max-width:1280px}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-color-scheme:dark){.dark\:bg-\(--rt-raised-background\){background-color:var(--rt-raised-background)}}.\[\&\>textarea\]\:resize-none>textarea{resize:none}.\[\&\>textarea\]\:overflow-hidden>textarea{overflow:hidden}.\[\&\>textarea\]\:text-inherit>textarea{color:inherit}.\[\&\>textarea\]\:\[grid-area\:1\/1\/2\/2\]>textarea{grid-area:1/1/2/2}.\[\&\>tr\:nth-child\(even\)\]\:bg-\(--rt-raised-background\)>tr:nth-child(2n){background-color:var(--rt-raised-background)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}