@rxap/layout 16.0.0-dev.3 → 16.0.0-dev.30
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.
- package/CHANGELOG.md +167 -0
- package/LICENSE +621 -0
- package/LICENSE.md +621 -0
- package/README.md +1 -1
- package/esm2022/index.mjs +2 -6
- package/esm2022/lib/app-url.service.mjs +66 -0
- package/esm2022/lib/header/apps-button/apps-button.component.mjs +29 -46
- package/esm2022/lib/header/header.component.mjs +48 -52
- package/esm2022/lib/header/language-selector/language-selector.component.mjs +13 -72
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +6 -2
- package/esm2022/lib/header/reset-button/reset-button.component.mjs +3 -3
- package/esm2022/lib/header/settings-button/settings-button.component.mjs +52 -0
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +20 -18
- package/esm2022/lib/header/sign-out/sign-out.component.mjs +14 -18
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +31 -28
- package/esm2022/lib/layout/layout.component.mjs +50 -23
- package/esm2022/lib/layout/layout.component.service.mjs +50 -15
- package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +50 -102
- package/esm2022/lib/navigation/navigation.component.mjs +26 -31
- package/esm2022/lib/sidenav/sidenav.component.mjs +3 -3
- package/esm2022/lib/sidenav/version/version.component.mjs +2 -8
- package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +3 -3
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +6 -7
- package/fesm2022/rxap-layout.mjs +648 -699
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/index.d.ts +1 -3
- package/lib/app-url.service.d.ts +26 -0
- package/lib/header/apps-button/apps-button.component.d.ts +12 -20
- package/lib/header/header.component.d.ts +10 -13
- package/lib/header/language-selector/language-selector.component.d.ts +1 -16
- package/lib/header/settings-button/settings-button.component.d.ts +22 -0
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +6 -3
- package/lib/header/sign-out/sign-out.component.d.ts +4 -4
- package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +13 -9
- package/lib/layout/layout.component.d.ts +16 -4
- package/lib/layout/layout.component.service.d.ts +10 -5
- package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -17
- package/lib/navigation/navigation.component.d.ts +5 -5
- package/lib/types.d.ts +3 -2
- package/package.json +95 -47
- package/theme.css +1 -0
- package/esm2022/lib/layout/layout.component.module.mjs +0 -30
- package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +0 -27
- package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +0 -36
- package/lib/layout/layout.component.module.d.ts +0 -10
- package/lib/sidenav-content/sidenav-content.component.d.ts +0 -10
- package/lib/sidenav-content/sidenav-content.component.service.d.ts +0 -15
- package/src/lib/header/apps-button/_apps-button.component.theme.scss +0 -45
- package/src/lib/navigation/_navigation.component.theme.scss +0 -33
- package/src/lib/navigation/navigation-item/_navigation-item.component.theme.scss +0 -45
- package/src/lib/sidenav/_sidenav.component.theme.scss +0 -65
- package/src/lib/toggle-window-sidenav-button/_toggle-window-sidenav-button.component.theme.scss +0 -15
package/index.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export * from './lib/header/reset-button/reset-button.component';
|
|
|
7
7
|
export * from './lib/header/sidenav-toggle-button/sidenav-toggle-button.component';
|
|
8
8
|
export * from './lib/header/navigation-progress-bar/navigation-progress-bar.component';
|
|
9
9
|
export * from './lib/header/apps-button/apps-button.component';
|
|
10
|
-
export * from './lib/layout/layout.component.module';
|
|
11
10
|
export * from './lib/layout/layout.component';
|
|
12
11
|
export * from './lib/layout/layout.component.service';
|
|
13
12
|
export * from './lib/navigation/navigation-item';
|
|
@@ -20,9 +19,8 @@ export * from './lib/sidenav/sidenav-header.directive';
|
|
|
20
19
|
export * from './lib/sidenav/sidenav-footer.directive';
|
|
21
20
|
export * from './lib/sidenav/sidenav.component.service';
|
|
22
21
|
export * from './lib/sidenav/version/version.component';
|
|
23
|
-
export * from './lib/sidenav-content/sidenav-content.component.service';
|
|
24
|
-
export * from './lib/sidenav-content/sidenav-content.component';
|
|
25
22
|
export * from './lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component';
|
|
26
23
|
export * from './lib/window-container-sidenav/window-container-sidenav.component';
|
|
27
24
|
export * from './lib/footer.directive';
|
|
28
25
|
export * from './lib/types';
|
|
26
|
+
export * from './lib/app-url.service';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AuthorizationService } from '@rxap/authorization';
|
|
2
|
+
import { ConfigService } from '@rxap/config';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export interface ExternalApps {
|
|
5
|
+
image?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
href: string;
|
|
8
|
+
empty?: false;
|
|
9
|
+
hidden?: boolean;
|
|
10
|
+
id?: string;
|
|
11
|
+
permissions: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class AppUrlService {
|
|
14
|
+
private readonly config;
|
|
15
|
+
private readonly localeId;
|
|
16
|
+
private readonly authorizationService;
|
|
17
|
+
private _apps;
|
|
18
|
+
constructor(config: ConfigService, localeId: string, authorizationService: AuthorizationService);
|
|
19
|
+
getApp(appId: string): ExternalApps | null;
|
|
20
|
+
getAppUrl(appId: string, path: string): string | null;
|
|
21
|
+
navigate(appId: string, path: string): void;
|
|
22
|
+
getAppList(): Promise<Array<ExternalApps>>;
|
|
23
|
+
private getPathPrefix;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppUrlService, never>;
|
|
25
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AppUrlService>;
|
|
26
|
+
}
|
|
@@ -1,24 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { AppUrlService, ExternalApps } from '../../app-url.service';
|
|
3
|
+
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
href: string;
|
|
7
|
-
empty?: false;
|
|
8
|
-
}
|
|
9
|
-
export interface EmptyAppsButtonGridItem {
|
|
10
|
-
empty: true;
|
|
11
|
-
href?: undefined;
|
|
12
|
-
label?: undefined;
|
|
13
|
-
image?: undefined;
|
|
14
|
-
}
|
|
15
|
-
export declare class AppsButtonComponent {
|
|
16
|
-
private readonly config;
|
|
17
|
-
get gridWithPadding(): Array<AppsButtonGridItem | EmptyAppsButtonGridItem>;
|
|
18
|
-
get columns(): 1 | 2 | 3;
|
|
5
|
+
export declare class AppsButtonComponent implements OnInit, OnDestroy {
|
|
6
|
+
private readonly appUrlService;
|
|
7
|
+
private readonly authenticationService;
|
|
19
8
|
isOpen: boolean;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
readonly appList: import("@angular/core").WritableSignal<ExternalApps[]>;
|
|
10
|
+
private _subscription?;
|
|
11
|
+
constructor(grid: any, appUrlService: AppUrlService, authenticationService: RxapAuthenticationService);
|
|
12
|
+
ngOnInit(): void;
|
|
13
|
+
ngOnDestroy(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppsButtonComponent, [{ optional: true; }, null, null]>;
|
|
23
15
|
static ɵcmp: i0.ɵɵComponentDeclaration<AppsButtonComponent, "rxap-apps-button", never, {}, {}, never, never, true, never>;
|
|
24
16
|
}
|
|
@@ -1,26 +1,23 @@
|
|
|
1
|
-
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { Constructor } from '@rxap/utilities';
|
|
3
|
-
import { Observable, Subscription } from 'rxjs';
|
|
4
|
-
import { MatSidenav } from '@angular/material/sidenav';
|
|
5
|
-
import { UserService } from '@rxap/authentication';
|
|
6
|
-
import { HeaderService } from '@rxap/services';
|
|
7
|
-
import { MatMenuPanel } from '@angular/material/menu';
|
|
1
|
+
import { OnDestroy, OnInit, Signal } from '@angular/core';
|
|
8
2
|
import { ThemePalette } from '@angular/material/core';
|
|
3
|
+
import { HeaderService } from '@rxap/services';
|
|
4
|
+
import { Constructor } from '@rxap/utilities';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import { LayoutComponentService } from '../layout/layout.component.service';
|
|
9
7
|
import * as i0 from "@angular/core";
|
|
10
8
|
export declare class HeaderComponent implements OnInit, OnDestroy {
|
|
11
9
|
readonly headerComponentService: HeaderService;
|
|
12
|
-
|
|
10
|
+
readonly layoutComponentService: LayoutComponentService;
|
|
13
11
|
headerComponent: any;
|
|
14
|
-
sidenav?: MatSidenav;
|
|
15
12
|
components: Array<Constructor<any>>;
|
|
16
13
|
subscriptions: Subscription;
|
|
17
|
-
hasUser$: Observable<boolean>;
|
|
18
14
|
color: ThemePalette;
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
readonly collapsable: Signal<boolean>;
|
|
16
|
+
readonly opened: Signal<boolean>;
|
|
17
|
+
constructor(headerComponentService: HeaderService, layoutComponentService: LayoutComponentService, headerComponent: any);
|
|
21
18
|
ngOnInit(): void;
|
|
22
19
|
updateComponents(): void;
|
|
23
20
|
ngOnDestroy(): void;
|
|
24
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, [null, null, { optional: true; }]>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "rxap-header", never, { "
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "rxap-header", never, { "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
26
23
|
}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LanguageSelectorService } from '@rxap/ngx-localize';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = "rxap__selected_language";
|
|
4
|
-
export declare const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = "rxap__selected_language_last_change";
|
|
5
|
-
export declare class LanguageSelectorService {
|
|
6
|
-
private readonly config;
|
|
7
|
-
readonly languages: any;
|
|
8
|
-
readonly defaultLanguage: string;
|
|
9
|
-
selectedLanguage: string;
|
|
10
|
-
constructor(config: ConfigService);
|
|
11
|
-
setLanguage(language: string): void;
|
|
12
|
-
autoRedirect(): void;
|
|
13
|
-
private redirect;
|
|
14
|
-
private checkLastChange;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LanguageSelectorService, never>;
|
|
16
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LanguageSelectorService>;
|
|
17
|
-
}
|
|
18
3
|
export declare class LanguageSelectorComponent {
|
|
19
4
|
readonly language: LanguageSelectorService;
|
|
20
5
|
constructor(language: LanguageSelectorService);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
2
|
+
import { Injector, OnDestroy, OnInit } from '@angular/core';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { ChangelogService } from '@rxap/ngx-changelog';
|
|
5
|
+
import { ThemeService } from '@rxap/services';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class SettingsButtonComponent implements OnInit, OnDestroy {
|
|
8
|
+
readonly theme: ThemeService;
|
|
9
|
+
private readonly route;
|
|
10
|
+
private readonly injector;
|
|
11
|
+
private readonly changelogService;
|
|
12
|
+
isDevMode: boolean;
|
|
13
|
+
items: import("@angular/core").WritableSignal<ComponentPortal<unknown>[]>;
|
|
14
|
+
private _subscription?;
|
|
15
|
+
constructor(theme: ThemeService, route: ActivatedRoute, injector: Injector, changelogService: ChangelogService);
|
|
16
|
+
ngOnDestroy(): void;
|
|
17
|
+
ngOnInit(): void;
|
|
18
|
+
private getCustomMenuItems;
|
|
19
|
+
openChangelogDialog(): void;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsButtonComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsButtonComponent, "rxap-settings-button", never, {}, {}, never, never, true, never>;
|
|
22
|
+
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { LayoutComponentService } from '../../layout/layout.component.service';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class SidenavToggleButtonComponent {
|
|
4
|
-
|
|
5
|
+
readonly layoutComponentService: LayoutComponentService;
|
|
6
|
+
readonly opened: Signal<boolean>;
|
|
7
|
+
constructor(layoutComponentService: LayoutComponentService);
|
|
5
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<SidenavToggleButtonComponent, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SidenavToggleButtonComponent, "rxap-sidenav-toggle-button", never, {
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SidenavToggleButtonComponent, "rxap-sidenav-toggle-button", never, {}, {}, never, never, true, never>;
|
|
7
10
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class SignOutComponent {
|
|
4
|
-
private readonly
|
|
5
|
-
constructor(
|
|
6
|
-
|
|
4
|
+
private readonly authenticationService;
|
|
5
|
+
constructor(authenticationService: RxapAuthenticationService);
|
|
6
|
+
logout(): Promise<void>;
|
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<SignOutComponent, never>;
|
|
8
8
|
static ɵcmp: i0.ɵɵComponentDeclaration<SignOutComponent, "rxap-sign-out", never, {}, {}, never, never, true, never>;
|
|
9
9
|
}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { InjectionToken, Signal } from '@angular/core';
|
|
2
|
+
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
3
|
+
import { UserProfileDataSource } from '@rxap/ngx-user';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
export type ExtractUsernameFromProfileFn<T = unknown> = (profile: T) => string | null;
|
|
6
|
+
export declare const EXTRACT_USERNAME_FROM_PROFILE: InjectionToken<ExtractUsernameFromProfileFn<unknown>>;
|
|
7
|
+
export declare class UserProfileIconComponent<T = unknown> {
|
|
8
|
+
private readonly userProfileService;
|
|
9
|
+
private readonly authenticationService;
|
|
10
|
+
username: Signal<string | null>;
|
|
11
|
+
constructor(userProfileService: UserProfileDataSource<T>, authenticationService: RxapAuthenticationService, extractUsernameFromProfile: ExtractUsernameFromProfileFn<T>);
|
|
12
|
+
logout(): Promise<void>;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileIconComponent<any>, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileIconComponent<any>, "rxap-user-profile-icon", never, {}, {}, never, never, true, never>;
|
|
11
15
|
}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';
|
|
3
|
+
import { Environment } from '@rxap/environment';
|
|
4
|
+
import { IconLoaderService } from '@rxap/icon';
|
|
1
5
|
import { LayoutComponentService } from './layout.component.service';
|
|
2
|
-
import { MatSidenav } from '@angular/material/sidenav';
|
|
3
6
|
import * as i0 from "@angular/core";
|
|
4
7
|
export declare class LayoutComponent {
|
|
5
8
|
readonly layoutComponentService: LayoutComponentService;
|
|
6
|
-
|
|
9
|
+
private readonly environment;
|
|
10
|
+
readonly sidenavMode: Signal<MatDrawerMode>;
|
|
11
|
+
readonly fixedBottomGap: Signal<number>;
|
|
12
|
+
readonly fixedTopGap: Signal<number>;
|
|
13
|
+
readonly pinned: Signal<boolean>;
|
|
14
|
+
readonly collapsable: Signal<boolean>;
|
|
15
|
+
readonly logoSrc: string;
|
|
16
|
+
readonly logoWidth: number;
|
|
17
|
+
readonly release: string;
|
|
18
|
+
readonly opened: Signal<boolean>;
|
|
7
19
|
sidenav: MatSidenav;
|
|
8
|
-
constructor(layoutComponentService: LayoutComponentService);
|
|
20
|
+
constructor(layoutComponentService: LayoutComponentService, environment: Environment, iconLoaderService: IconLoaderService);
|
|
9
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponent, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LayoutComponent, "rxap-layout", never, {}, {}, never,
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LayoutComponent, "rxap-layout", never, {}, {}, never, never, true, never>;
|
|
11
23
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MediaMatcher } from '@angular/cdk/layout';
|
|
2
|
+
import { MatDrawerMode } from '@angular/material/sidenav';
|
|
3
|
+
import { ConfigService } from '@rxap/config';
|
|
2
4
|
import { FooterService, HeaderService } from '@rxap/services';
|
|
5
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
6
|
import { LogoConfig } from '../types';
|
|
4
|
-
import { ConfigService } from '@rxap/config';
|
|
5
|
-
import { MatDrawerMode } from '@angular/material/sidenav';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class LayoutComponentService {
|
|
8
9
|
readonly footerComponentService: FooterService;
|
|
@@ -10,10 +11,14 @@ export declare class LayoutComponentService {
|
|
|
10
11
|
private readonly config;
|
|
11
12
|
opened$: BehaviorSubject<boolean>;
|
|
12
13
|
mode$: BehaviorSubject<MatDrawerMode>;
|
|
14
|
+
pinned$: BehaviorSubject<boolean>;
|
|
13
15
|
fixedBottomGap$: Observable<number>;
|
|
14
16
|
fixedTopGap$: BehaviorSubject<number>;
|
|
15
17
|
logo: LogoConfig;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
collapsable$: BehaviorSubject<boolean>;
|
|
19
|
+
constructor(footerComponentService: FooterService, headerComponentService: HeaderService, logoConfig: LogoConfig | null | undefined, config: ConfigService, mediaMatcher: MediaMatcher);
|
|
20
|
+
toggleOpend(): void;
|
|
21
|
+
togglePinned(): void;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponentService, [null, null, { optional: true; }, null, null]>;
|
|
18
23
|
static ɵprov: i0.ɵɵInjectableDeclaration<LayoutComponentService>;
|
|
19
24
|
}
|
|
@@ -1,39 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Navigation, NavigationDividerItem, NavigationItem } from '../navigation-item';
|
|
1
|
+
import { ElementRef, OnChanges, OnDestroy, Renderer2, SimpleChanges, ViewContainerRef } from '@angular/core';
|
|
3
2
|
import { Router, RouterLinkActive } from '@angular/router';
|
|
4
|
-
import { SidenavComponentService } from '../../sidenav/sidenav.component.service';
|
|
5
3
|
import { Overlay } from '@angular/cdk/overlay';
|
|
4
|
+
import { SidenavComponentService } from '../../sidenav/sidenav.component.service';
|
|
5
|
+
import { Navigation, NavigationDividerItem, NavigationItem } from '../navigation-item';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class NavigationItemComponent implements OnChanges,
|
|
7
|
+
export declare class NavigationItemComponent implements OnChanges, OnDestroy {
|
|
8
8
|
private readonly router;
|
|
9
9
|
readonly sidenav: SidenavComponentService;
|
|
10
10
|
private readonly elementRef;
|
|
11
11
|
private readonly renderer;
|
|
12
12
|
private readonly overlay;
|
|
13
13
|
private readonly viewContainerRef;
|
|
14
|
+
level: number;
|
|
15
|
+
private _isActive;
|
|
14
16
|
children: Navigation | null;
|
|
15
17
|
routerLinkActive: RouterLinkActive;
|
|
16
18
|
item: NavigationItem;
|
|
17
|
-
|
|
18
|
-
isActive: boolean;
|
|
19
|
-
|
|
19
|
+
active: import("@angular/core").WritableSignal<boolean>;
|
|
20
|
+
get isActive(): boolean;
|
|
21
|
+
set isActive(value: boolean);
|
|
20
22
|
private readonly _subscription;
|
|
21
|
-
private _overlayRef?;
|
|
22
|
-
private _embeddedViewRef?;
|
|
23
|
-
/**
|
|
24
|
-
* indicates the mouse is over the
|
|
25
|
-
*/
|
|
26
|
-
lockeOverlay: boolean;
|
|
27
23
|
constructor(router: Router, sidenav: SidenavComponentService, elementRef: ElementRef, renderer: Renderer2, overlay: Overlay, viewContainerRef: ViewContainerRef);
|
|
28
24
|
ngOnChanges(changes: SimpleChanges): void;
|
|
29
25
|
ngAfterViewInit(): void;
|
|
30
|
-
ngOnInit(): void;
|
|
31
26
|
ngOnDestroy(): void;
|
|
32
|
-
onMouseenter(): void;
|
|
33
|
-
onMouseleave(): void;
|
|
34
27
|
isNavigationDividerItem(item: NavigationItem | NavigationDividerItem): item is NavigationDividerItem;
|
|
35
28
|
isNavigationItem(item: NavigationItem | NavigationDividerItem): item is NavigationItem;
|
|
36
29
|
asNavigationItem(item: NavigationItem | NavigationDividerItem): NavigationItem;
|
|
37
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationItemComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationItemComponent, "li[rxap-navigation-item]", never, { "
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationItemComponent, "li[rxap-navigation-item]", never, { "level": { "alias": "level"; "required": false; }; "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
|
|
39
32
|
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { Navigation, NavigationDividerItem, NavigationItem } from './navigation-item';
|
|
3
|
-
import { NavigationService } from './navigation.service';
|
|
4
2
|
import { Subscription } from 'rxjs';
|
|
5
3
|
import { SidenavComponentService } from '../sidenav/sidenav.component.service';
|
|
4
|
+
import { Navigation, NavigationDividerItem, NavigationItem } from './navigation-item';
|
|
5
|
+
import { NavigationService } from './navigation.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class NavigationComponent implements OnInit, OnDestroy {
|
|
8
8
|
private readonly navigationService;
|
|
9
9
|
private readonly cdr;
|
|
10
10
|
readonly sidenav: SidenavComponentService;
|
|
11
|
-
_root: boolean;
|
|
12
|
-
set root(value: boolean | '');
|
|
13
11
|
items: Navigation;
|
|
14
12
|
subscription?: Subscription;
|
|
15
13
|
level: number;
|
|
16
14
|
constructor(navigationService: NavigationService, cdr: ChangeDetectorRef, sidenav: SidenavComponentService);
|
|
15
|
+
_root: boolean;
|
|
16
|
+
set root(value: boolean | '');
|
|
17
17
|
ngOnInit(): void;
|
|
18
18
|
ngOnDestroy(): void;
|
|
19
19
|
isNavigationDividerItem(item: NavigationItem | NavigationDividerItem): item is NavigationDividerItem;
|
|
20
20
|
isNavigationItem(item: NavigationItem | NavigationDividerItem): item is NavigationItem;
|
|
21
21
|
asNavigationItem(item: NavigationItem | NavigationDividerItem): NavigationItem;
|
|
22
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationComponent, "ul[rxap-navigation]", never, { "
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavigationComponent, "ul[rxap-navigation]", never, { "items": { "alias": "items"; "required": false; }; "level": { "alias": "level"; "required": false; }; "root": { "alias": "root"; "required": false; }; }, {}, never, never, true, never>;
|
|
24
24
|
}
|
package/lib/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,71 +1,107 @@
|
|
|
1
1
|
{
|
|
2
|
+
"version": "16.0.0-dev.30",
|
|
2
3
|
"name": "@rxap/layout",
|
|
3
|
-
"
|
|
4
|
+
"license": "GPL-3.0-or-later",
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"tslib": "2.6.2"
|
|
7
|
+
},
|
|
4
8
|
"peerDependencies": {
|
|
5
|
-
"@angular/animations": "^16.
|
|
6
|
-
"@angular/cdk": "^16.
|
|
7
|
-
"@angular/common": "^16.
|
|
8
|
-
"@angular/core": "^16.
|
|
9
|
+
"@angular/animations": "^16.1.4",
|
|
10
|
+
"@angular/cdk": "^16.1.4",
|
|
11
|
+
"@angular/common": "^16.1.4",
|
|
12
|
+
"@angular/core": "^16.1.4",
|
|
9
13
|
"@angular/flex-layout": "^15.0.0-beta.42",
|
|
10
|
-
"@angular/forms": "^16.
|
|
11
|
-
"@angular/material": "^16.
|
|
12
|
-
"@angular/router": "^16.
|
|
13
|
-
"@rxap/authentication": "^16.0.0-dev.
|
|
14
|
-
"@rxap/
|
|
15
|
-
"@rxap/
|
|
16
|
-
"@rxap/
|
|
17
|
-
"@rxap/
|
|
18
|
-
"@rxap/
|
|
19
|
-
"@rxap/
|
|
14
|
+
"@angular/forms": "^16.1.4",
|
|
15
|
+
"@angular/material": "^16.1.4",
|
|
16
|
+
"@angular/router": "^16.1.4",
|
|
17
|
+
"@rxap/authentication": "^16.0.0-dev.15",
|
|
18
|
+
"@rxap/authorization": "^16.0.0-dev.20",
|
|
19
|
+
"@rxap/browser-utilities": "^0.0.2-dev.8",
|
|
20
|
+
"@rxap/config": "^16.0.0-dev.16",
|
|
21
|
+
"@rxap/data-source": "^16.0.0-dev.18",
|
|
22
|
+
"@rxap/directives": "^16.0.0-dev.15",
|
|
23
|
+
"@rxap/environment": "^16.0.0-dev.15",
|
|
24
|
+
"@rxap/icon": "^16.0.0-dev.15",
|
|
25
|
+
"@rxap/material-directives": "^16.0.0-dev.17",
|
|
26
|
+
"@rxap/ngx-changelog": "^16.1.0-dev.1",
|
|
27
|
+
"@rxap/ngx-localize": "^16.1.0-dev.0",
|
|
28
|
+
"@rxap/ngx-status-check": "^16.1.0-dev.12",
|
|
29
|
+
"@rxap/ngx-user": "^16.1.0-dev.1",
|
|
30
|
+
"@rxap/services": "^16.0.0-dev.15",
|
|
31
|
+
"@rxap/utilities": "^16.0.0-dev.18",
|
|
20
32
|
"rxjs": "^7.8.0",
|
|
21
|
-
"
|
|
22
|
-
"@angular/localize": "16.1.4"
|
|
23
|
-
},
|
|
24
|
-
"sideEffects": false,
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"tslib": "2.5.3"
|
|
33
|
+
"@faker-js/faker": "8.0.2"
|
|
27
34
|
},
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
35
|
+
"author": {
|
|
36
|
+
"name": "Merzough Münker",
|
|
37
|
+
"email": "mmuenker@digitaix.com"
|
|
31
38
|
},
|
|
32
|
-
"keywords": [
|
|
33
|
-
"rxap",
|
|
34
|
-
"angular",
|
|
35
|
-
"ngx"
|
|
36
|
-
],
|
|
37
|
-
"homepage": "https:/gitlab.com/rxap/packages/packages/angular/layout",
|
|
38
39
|
"bugs": {
|
|
39
40
|
"url": "https://gitlab.com/rxap/packages/-/issues",
|
|
40
41
|
"email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
|
|
41
42
|
},
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
},
|
|
43
|
+
"homepage": "https:/gitlab.com/rxap/packages/packages/angular/layout",
|
|
44
|
+
"keywords": [
|
|
45
|
+
"angular",
|
|
46
|
+
"angular-layout",
|
|
47
|
+
"layout",
|
|
48
|
+
"ngx",
|
|
49
|
+
"packages",
|
|
50
|
+
"rxap"
|
|
51
|
+
],
|
|
52
52
|
"nx-migrations": {
|
|
53
53
|
"packageGroup": [
|
|
54
54
|
{
|
|
55
55
|
"package": "@rxap/authentication",
|
|
56
|
-
"version": "16.0.0-dev.
|
|
56
|
+
"version": "16.0.0-dev.15"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"package": "@rxap/authorization",
|
|
60
|
+
"version": "16.0.0-dev.20"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"package": "@rxap/browser-utilities",
|
|
64
|
+
"version": "0.0.2-dev.8"
|
|
57
65
|
},
|
|
58
66
|
{
|
|
59
67
|
"package": "@rxap/config",
|
|
60
|
-
"version": "16.0.0-dev.
|
|
68
|
+
"version": "16.0.0-dev.16"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"package": "@rxap/data-source",
|
|
72
|
+
"version": "16.0.0-dev.18"
|
|
61
73
|
},
|
|
62
74
|
{
|
|
63
75
|
"package": "@rxap/directives",
|
|
64
|
-
"version": "16.0.0-dev.
|
|
76
|
+
"version": "16.0.0-dev.15"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"package": "@rxap/environment",
|
|
80
|
+
"version": "16.0.0-dev.15"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"package": "@rxap/icon",
|
|
84
|
+
"version": "16.0.0-dev.15"
|
|
65
85
|
},
|
|
66
86
|
{
|
|
67
87
|
"package": "@rxap/material-directives",
|
|
68
|
-
"version": "16.0.0-dev.
|
|
88
|
+
"version": "16.0.0-dev.17"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"package": "@rxap/ngx-changelog",
|
|
92
|
+
"version": "16.1.0-dev.1"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"package": "@rxap/ngx-localize",
|
|
96
|
+
"version": "16.1.0-dev.0"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"package": "@rxap/ngx-status-check",
|
|
100
|
+
"version": "16.1.0-dev.12"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"package": "@rxap/ngx-user",
|
|
104
|
+
"version": "16.1.0-dev.1"
|
|
69
105
|
},
|
|
70
106
|
{
|
|
71
107
|
"package": "@rxap/rxjs",
|
|
@@ -73,14 +109,25 @@
|
|
|
73
109
|
},
|
|
74
110
|
{
|
|
75
111
|
"package": "@rxap/services",
|
|
76
|
-
"version": "16.0.0-dev.
|
|
112
|
+
"version": "16.0.0-dev.15"
|
|
77
113
|
},
|
|
78
114
|
{
|
|
79
115
|
"package": "@rxap/utilities",
|
|
80
|
-
"version": "16.0.0-dev.
|
|
116
|
+
"version": "16.0.0-dev.18"
|
|
81
117
|
}
|
|
82
118
|
]
|
|
83
119
|
},
|
|
120
|
+
"publishConfig": {
|
|
121
|
+
"access": "public",
|
|
122
|
+
"directory": "../../../dist/packages/angular/layout"
|
|
123
|
+
},
|
|
124
|
+
"repository": {
|
|
125
|
+
"type": "git",
|
|
126
|
+
"url": "https://gitlab.com/rxap/packages.git",
|
|
127
|
+
"directory": "packages/angular/layout"
|
|
128
|
+
},
|
|
129
|
+
"sideEffects": false,
|
|
130
|
+
"gitHead": "43ff53dd3025eed5389c5e02ccd7ab7ce004080d",
|
|
84
131
|
"module": "fesm2022/rxap-layout.mjs",
|
|
85
132
|
"typings": "index.d.ts",
|
|
86
133
|
"exports": {
|
|
@@ -92,6 +139,7 @@
|
|
|
92
139
|
"esm2022": "./esm2022/rxap-layout.mjs",
|
|
93
140
|
"esm": "./esm2022/rxap-layout.mjs",
|
|
94
141
|
"default": "./fesm2022/rxap-layout.mjs"
|
|
95
|
-
}
|
|
142
|
+
},
|
|
143
|
+
"./theme": "./theme.css"
|
|
96
144
|
}
|
|
97
145
|
}
|
package/theme.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@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}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);font-size:.875em;border-radius:.3125rem;padding:.1875em .375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:initial}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-50{z-index:50}.m-8{margin:2rem}.mx-16{margin-left:4rem;margin-right:4rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-32{margin-bottom:8rem}.mb-4{margin-bottom:1rem}.ml-16{margin-left:4rem}.ml-2{margin-left:.5rem}.mt-16{margin-top:4rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-3{height:.75rem}.h-6{height:1.5rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-3{width:.75rem}.w-96{width:24rem}.w-full{width:100%}.min-w-full{min-width:100%}.\!max-w-none{max-width:none!important}.max-w-6xl{max-width:72rem}.grow{flex-grow:1}.grow-0{flex-grow:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-stretch{justify-items:stretch}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-accent-600{border-color:var(--accent-600)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity))}.bg-primary-500{background-color:var(--primary-500)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-red-900{background-color:rgb(127 29 29/var(--tw-bg-opacity))}.bg-red-900,.bg-white{--tw-bg-opacity:1}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}.bg-yellow-900{--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity))}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-16{padding-left:4rem;padding-right:4rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pl-0{padding-left:0}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-5{padding-right:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.text-accent-400{color:var(--accent-400)}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px #00000026)}.drop-shadow-2xl,.invert{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)}.invert{--tw-invert:invert(100%)}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-colors{transition-duration:.15s}:is(.dark .dark\:prose-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}:is(.dark .dark\:bg-black){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-900){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-900){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity))}:is(.dark .dark\:bg-yellow-900){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity))}:is(.dark .dark\:text-green-300){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-400){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity))}:is(.dark .dark\:text-red-300){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-300){--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}:is(.dark .dark\:hover\:bg-gray-900:hover){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:text-white:hover){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media (min-width:768px){.md\:w-1\/2{width:50%}}
|