@rolatech/angular-components 17.2.16 → 17.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/esm2022/index.mjs +3 -1
  2. package/esm2022/lib/app-drawer/app-drawer.component.mjs +21 -10
  3. package/esm2022/lib/app-drawer/expansion-animations.mjs +33 -0
  4. package/esm2022/lib/app-footer/app-footer.component.mjs +6 -10
  5. package/esm2022/lib/app-layout/app-layout.component.mjs +1 -1
  6. package/esm2022/lib/loading-spinner/loading-spinner.component.mjs +6 -8
  7. package/esm2022/lib/media-list/media-list.component.mjs +10 -20
  8. package/esm2022/lib/media-list-item/media-list-item.component.mjs +9 -18
  9. package/esm2022/lib/media-upload/media-upload.component.mjs +11 -23
  10. package/esm2022/lib/menu-user/menu-user.component.mjs +7 -11
  11. package/esm2022/lib/paginator/paginator.component.mjs +22 -0
  12. package/esm2022/lib/storage-bucket-create/storage-bucket-create.component.mjs +7 -11
  13. package/esm2022/lib/storage-file-upload/storage-file-upload.component.mjs +6 -10
  14. package/esm2022/lib/storage-folder-create/storage-folder-create.component.mjs +8 -14
  15. package/esm2022/lib/table/table.component.mjs +37 -0
  16. package/esm2022/lib/topbar/topbar.component.mjs +3 -6
  17. package/esm2022/lib/topbar-avatar-menu/topbar-avatar-menu.component.mjs +7 -11
  18. package/fesm2022/rolatech-angular-components.mjs +161 -132
  19. package/fesm2022/rolatech-angular-components.mjs.map +1 -1
  20. package/index.d.ts +2 -0
  21. package/lib/app-drawer/app-drawer.component.d.ts +5 -2
  22. package/lib/app-drawer/expansion-animations.d.ts +8 -0
  23. package/lib/app-footer/app-footer.component.d.ts +3 -3
  24. package/lib/loading-spinner/loading-spinner.component.d.ts +2 -2
  25. package/lib/media-list/media-list.component.d.ts +6 -7
  26. package/lib/media-list-item/media-list-item.component.d.ts +5 -6
  27. package/lib/media-upload/media-upload.component.d.ts +7 -8
  28. package/lib/menu-user/menu-user.component.d.ts +3 -3
  29. package/lib/paginator/paginator.component.d.ts +12 -0
  30. package/lib/storage-bucket-create/storage-bucket-create.component.d.ts +4 -4
  31. package/lib/storage-file-upload/storage-file-upload.component.d.ts +4 -4
  32. package/lib/storage-folder-create/storage-folder-create.component.d.ts +5 -5
  33. package/lib/table/table.component.d.ts +18 -0
  34. package/lib/topbar/topbar.component.d.ts +2 -3
  35. package/lib/topbar-avatar-menu/topbar-avatar-menu.component.d.ts +3 -3
  36. package/package.json +3 -3
  37. package/themes/_default.scss +1 -1
@@ -2,16 +2,18 @@ import { ElementRef, OnInit, Renderer2 } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { BreakpointObserver } from '@angular/cdk/layout';
4
4
  import * as i0 from "@angular/core";
5
+ export declare const EXPANSION_PANEL_ANIMATION_TIMING = "225ms cubic-bezier(0.4,0.0,0.2,1)";
5
6
  export interface LINK {
6
7
  title: string;
7
8
  subtitle?: string;
8
9
  openinView?: boolean;
9
10
  icon?: string;
10
11
  link: string;
12
+ children?: LINK[];
11
13
  }
12
14
  export declare class AppDrawerComponent implements OnInit {
13
15
  opened: boolean;
14
- links: LINK[];
16
+ links: import("@angular/core").InputSignal<LINK[] | undefined>;
15
17
  hostId: string;
16
18
  hasClass: boolean;
17
19
  duration: string;
@@ -29,10 +31,11 @@ export declare class AppDrawerComponent implements OnInit {
29
31
  isMobile: boolean;
30
32
  isPersistent: boolean;
31
33
  completed: boolean;
34
+ panelOpenState: boolean;
32
35
  open(): void;
33
36
  close(): void;
34
37
  toggle(): void;
35
38
  ngOnInit(): void;
36
39
  static ɵfac: i0.ɵɵFactoryDeclaration<AppDrawerComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<AppDrawerComponent, "rolatech-app-drawer", never, { "opened": { "alias": "opened"; "required": false; }; "links": { "alias": "links"; "required": false; }; }, {}, never, never, true, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppDrawerComponent, "rolatech-app-drawer", never, { "links": { "alias": "links"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
38
41
  }
@@ -0,0 +1,8 @@
1
+ import { AnimationTriggerMetadata } from '@angular/animations';
2
+ /** Time and timing curve for expansion panel animations. */
3
+ export declare const EXPANSION_PANEL_ANIMATION_TIMING = "225ms cubic-bezier(0.4,0.0,0.2,1)";
4
+ export declare const matExpansionAnimations: {
5
+ readonly indicatorRotate: AnimationTriggerMetadata;
6
+ readonly bodyExpansion: AnimationTriggerMetadata;
7
+ };
8
+ export declare const heightAnimation: AnimationTriggerMetadata;
@@ -3,8 +3,8 @@ export declare class AppFooterComponent {
3
3
  hostId: string;
4
4
  hasClass: boolean;
5
5
  config: any;
6
- title: string;
7
- copyright: string;
6
+ title: import("@angular/core").InputSignal<string | undefined>;
7
+ copyright: import("@angular/core").InputSignal<string>;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<AppFooterComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<AppFooterComponent, "rolatech-app-footer", never, { "title": { "alias": "title"; "required": false; }; "copyright": { "alias": "copyright"; "required": false; }; }, {}, never, ["*"], true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppFooterComponent, "rolatech-app-footer", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "copyright": { "alias": "copyright"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
10
10
  }
@@ -3,7 +3,7 @@ import { LoadingService } from '@rolatech/angular-services';
3
3
  import { Subscription } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class LoadingSpinnerComponent implements AfterViewInit, OnDestroy {
6
- title: string;
6
+ title: import("@angular/core").InputSignal<string | undefined>;
7
7
  isLoading: boolean;
8
8
  loadingSubscription: Subscription;
9
9
  loadingService: LoadingService;
@@ -12,5 +12,5 @@ export declare class LoadingSpinnerComponent implements AfterViewInit, OnDestroy
12
12
  ngAfterViewInit(): void;
13
13
  ngOnDestroy(): void;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<LoadingSpinnerComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingSpinnerComponent, "rolatech-loading-spinner", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoadingSpinnerComponent, "rolatech-loading-spinner", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
16
16
  }
@@ -1,14 +1,13 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { Media } from '@rolatech/angular-common';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class MediaListComponent {
5
- isUploading: boolean;
6
- media: Media[];
7
- showAdd: boolean;
8
- mediaItemClick: EventEmitter<Media>;
9
- upload: EventEmitter<FormData | null>;
4
+ isUploading: import("@angular/core").InputSignal<boolean | undefined>;
5
+ media: import("@angular/core").InputSignal<Media[] | undefined>;
6
+ showAdd: import("@angular/core").InputSignal<boolean>;
7
+ mediaItemClick: import("@angular/core").OutputEmitterRef<Media>;
8
+ upload: import("@angular/core").OutputEmitterRef<FormData | null>;
10
9
  onMediaItemClick(item: Media): void;
11
10
  onUpload(event: any): void;
12
11
  static ɵfac: i0.ɵɵFactoryDeclaration<MediaListComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<MediaListComponent, "rolatech-media-list", never, { "isUploading": { "alias": "isUploading"; "required": false; }; "media": { "alias": "media"; "required": false; }; "showAdd": { "alias": "showAdd"; "required": false; }; }, { "mediaItemClick": "mediaItemClick"; "upload": "upload"; }, never, ["*"], true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<MediaListComponent, "rolatech-media-list", never, { "isUploading": { "alias": "isUploading"; "required": false; "isSignal": true; }; "media": { "alias": "media"; "required": false; "isSignal": true; }; "showAdd": { "alias": "showAdd"; "required": false; "isSignal": true; }; }, { "mediaItemClick": "mediaItemClick"; "upload": "upload"; }, never, ["*"], true, never>;
14
13
  }
@@ -1,16 +1,15 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { Media } from '@rolatech/angular-common';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class MediaListItemComponent {
5
- media: Media;
6
- uploadProgress: number;
7
- mediaItemClick: EventEmitter<{
4
+ media: import("@angular/core").InputSignal<Media>;
5
+ uploadProgress: import("@angular/core").InputSignal<number>;
6
+ mediaItemClick: import("@angular/core").OutputEmitterRef<{
8
7
  selected: number;
9
8
  media: Media;
10
9
  }>;
11
- deleteMedia: EventEmitter<Media>;
10
+ deleteMedia: import("@angular/core").OutputEmitterRef<Media>;
12
11
  onMediaItemClick(event: any): void;
13
12
  onDeleteMedia(media: Media): void;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<MediaListItemComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<MediaListItemComponent, "rolatech-media-list-item", never, { "media": { "alias": "media"; "required": false; }; "uploadProgress": { "alias": "uploadProgress"; "required": false; }; }, { "mediaItemClick": "mediaItemClick"; "deleteMedia": "deleteMedia"; }, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<MediaListItemComponent, "rolatech-media-list-item", never, { "media": { "alias": "media"; "required": true; "isSignal": true; }; "uploadProgress": { "alias": "uploadProgress"; "required": false; "isSignal": true; }; }, { "mediaItemClick": "mediaItemClick"; "deleteMedia": "deleteMedia"; }, never, never, true, never>;
16
15
  }
@@ -1,19 +1,18 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { MatDialog } from '@angular/material/dialog';
3
2
  import { Media } from '@rolatech/angular-common';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class MediaUploadComponent {
6
- title: string;
7
- subtitle: string;
8
- description: string;
9
- isUploading: boolean;
10
- mediaItemClick: EventEmitter<Media>;
11
- upload: EventEmitter<FormData | null>;
5
+ title: import("@angular/core").InputSignal<string>;
6
+ subtitle: import("@angular/core").InputSignal<string>;
7
+ description: import("@angular/core").InputSignal<string>;
8
+ isUploading: import("@angular/core").InputSignal<boolean>;
9
+ mediaItemClick: import("@angular/core").OutputEmitterRef<Media>;
10
+ upload: import("@angular/core").OutputEmitterRef<FormData | null>;
12
11
  media: Media[];
13
12
  dialog: MatDialog;
14
13
  onMediaItemClick(item: Media): void;
15
14
  onMediaClick(i: any): void;
16
15
  onUpload(event: any): void;
17
16
  static ɵfac: i0.ɵɵFactoryDeclaration<MediaUploadComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<MediaUploadComponent, "rolatech-media-upload", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "description": { "alias": "description"; "required": false; }; "isUploading": { "alias": "isUploading"; "required": false; }; }, { "mediaItemClick": "mediaItemClick"; "upload": "upload"; }, never, never, true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<MediaUploadComponent, "rolatech-media-upload", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "isUploading": { "alias": "isUploading"; "required": false; "isSignal": true; }; }, { "mediaItemClick": "mediaItemClick"; "upload": "upload"; }, never, never, true, never>;
19
18
  }
@@ -6,8 +6,8 @@ export interface MenuUser {
6
6
  username: string;
7
7
  }
8
8
  export declare class MenuUserComponent {
9
- user: MenuUser | any;
10
- myaccountUrl: string;
9
+ user: import("@angular/core").InputSignal<any>;
10
+ myaccountUrl: import("@angular/core").InputSignal<string | undefined>;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuUserComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuUserComponent, "rolatech-menu-user", never, { "user": { "alias": "user"; "required": false; }; "myaccountUrl": { "alias": "myaccountUrl"; "required": false; }; }, {}, never, never, true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuUserComponent, "rolatech-menu-user", never, { "user": { "alias": "user"; "required": false; "isSignal": true; }; "myaccountUrl": { "alias": "myaccountUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
13
  }
@@ -0,0 +1,12 @@
1
+ import { PageEvent } from '@angular/material/paginator';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PaginatorComponent {
4
+ length: number;
5
+ pageSize: number;
6
+ pageSizeOptions: number[];
7
+ pageEvent: PageEvent;
8
+ page: import("@angular/core").OutputEmitterRef<any>;
9
+ onPage(event: any): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginatorComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginatorComponent, "rolatech-paginator", never, {}, { "page": "page"; }, never, never, true, never>;
12
+ }
@@ -1,10 +1,10 @@
1
- import { DoCheck, EventEmitter, OnInit } from '@angular/core';
1
+ import { DoCheck, OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class StorageBucketCreateComponent implements OnInit, DoCheck {
4
- name: string;
5
- output: EventEmitter<any>;
4
+ name: import("@angular/core").InputSignal<string | undefined>;
5
+ output: import("@angular/core").OutputEmitterRef<any>;
6
6
  ngOnInit(): void;
7
7
  ngDoCheck(): void;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<StorageBucketCreateComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<StorageBucketCreateComponent, "rolatech-storage-bucket-create", never, { "name": { "alias": "name"; "required": false; }; }, { "output": "output"; }, never, never, true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<StorageBucketCreateComponent, "rolatech-storage-bucket-create", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "output": "output"; }, never, never, true, never>;
10
10
  }
@@ -1,8 +1,8 @@
1
- import { DoCheck, EventEmitter, OnInit } from '@angular/core';
1
+ import { DoCheck, OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class StorageFileUploadComponent implements OnInit, DoCheck {
4
- title: string;
5
- output: EventEmitter<any>;
4
+ title: import("@angular/core").InputSignal<string | undefined>;
5
+ output: import("@angular/core").OutputEmitterRef<any>;
6
6
  fileData: any;
7
7
  progressInfos: any;
8
8
  isFinished: boolean;
@@ -13,5 +13,5 @@ export declare class StorageFileUploadComponent implements OnInit, DoCheck {
13
13
  selectFiles(event: any): void;
14
14
  removeFile(): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<StorageFileUploadComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<StorageFileUploadComponent, "rolatech-storage-file-upload", never, { "title": { "alias": "title"; "required": false; }; }, { "output": "output"; }, never, never, true, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<StorageFileUploadComponent, "rolatech-storage-file-upload", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "output": "output"; }, never, never, true, never>;
17
17
  }
@@ -1,11 +1,11 @@
1
- import { DoCheck, EventEmitter, OnInit } from '@angular/core';
1
+ import { DoCheck, OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class StorageFolderCreateComponent implements OnInit, DoCheck {
4
- name: string;
5
- isPublic: boolean;
6
- output: EventEmitter<any>;
4
+ name: import("@angular/core").InputSignal<string | undefined>;
5
+ isPublic: import("@angular/core").InputSignal<boolean>;
6
+ output: import("@angular/core").OutputEmitterRef<any>;
7
7
  ngOnInit(): void;
8
8
  ngDoCheck(): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<StorageFolderCreateComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<StorageFolderCreateComponent, "rolatech-storage-folder-create", never, { "name": { "alias": "name"; "required": false; }; "isPublic": { "alias": "isPublic"; "required": false; }; }, { "output": "output"; }, never, never, true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<StorageFolderCreateComponent, "rolatech-storage-folder-create", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "isPublic": { "alias": "isPublic"; "required": false; "isSignal": true; }; }, { "output": "output"; }, never, never, true, never>;
11
11
  }
@@ -0,0 +1,18 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { CdkTableDataSourceInput } from '@angular/cdk/table';
3
+ import * as i0 from "@angular/core";
4
+ export interface Column {
5
+ ref: string;
6
+ name: string;
7
+ }
8
+ export interface TableData<T> {
9
+ columns: Column[];
10
+ data: CdkTableDataSourceInput<T>;
11
+ }
12
+ export declare class TableComponent implements OnInit {
13
+ dataSource: import("@angular/core").InputSignal<TableData<any>>;
14
+ displayedColumns: string[];
15
+ ngOnInit(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "rolatech-table", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
@@ -1,4 +1,4 @@
1
- import { ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
1
+ import { ElementRef, OnInit, Renderer2 } from '@angular/core';
2
2
  import { BreakpointObserver } from '@angular/cdk/layout';
3
3
  import { Observable } from 'rxjs';
4
4
  import { AppDrawerComponent } from '../app-drawer/app-drawer.component';
@@ -7,7 +7,6 @@ export declare class TopbarComponent implements OnInit {
7
7
  hostId: string;
8
8
  hasClass: boolean;
9
9
  persistent: boolean | undefined;
10
- toggle: EventEmitter<any>;
11
10
  el: ElementRef<any>;
12
11
  renderer: Renderer2;
13
12
  platformId: Object;
@@ -20,5 +19,5 @@ export declare class TopbarComponent implements OnInit {
20
19
  setMenuIconVisible(): void;
21
20
  onToggle(): void;
22
21
  static ɵfac: i0.ɵɵFactoryDeclaration<TopbarComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<TopbarComponent, "rolatech-topbar", never, {}, { "toggle": "toggle"; }, never, ["*"], true, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<TopbarComponent, "rolatech-topbar", never, {}, {}, never, ["*"], true, never>;
24
23
  }
@@ -3,8 +3,8 @@ import * as i0 from "@angular/core";
3
3
  export declare class TopbarAvatarMenuComponent {
4
4
  environment: any;
5
5
  platformId: Object;
6
- menu: MatMenuPanel<any>;
7
- user: any;
6
+ menu: import("@angular/core").InputSignal<MatMenuPanel<any>>;
7
+ user: import("@angular/core").InputSignal<any>;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TopbarAvatarMenuComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<TopbarAvatarMenuComponent, "rolatech-topbar-avatar-menu", never, { "menu": { "alias": "menu"; "required": false; }; "user": { "alias": "user"; "required": false; }; }, {}, never, never, true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<TopbarAvatarMenuComponent, "rolatech-topbar-avatar-menu", never, { "menu": { "alias": "menu"; "required": true; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
10
  }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@rolatech/angular-components",
3
- "version": "17.2.16",
3
+ "version": "17.2.18",
4
4
  "peerDependencies": {
5
- "@angular/common": "^17.0.0",
6
- "@angular/core": "^17.0.0"
5
+ "@angular/common": "^17.2.0",
6
+ "@angular/core": "^17.2.0"
7
7
  },
8
8
  "dependencies": {
9
9
  "tslib": "^2.5.0"
@@ -1 +1 @@
1
- .pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.z-30{z-index:30}.-m-1{margin:-.25rem}.m-auto{margin:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.ml-2{margin-left:.5rem}.ml-24{margin-left:6rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-24{height:6rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-\[190px\]{height:190px}.h-full{height:100%}.min-h-11{min-height:2.75rem}.min-h-\[320px\]{min-height:320px}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-20{width:5rem}.w-32{width:8rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-\[190px\]{width:190px}.w-full{width:100%}.min-w-\[256px\]{min-width:256px}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1 1 0%}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.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}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/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-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity))}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-thin{font-weight:100}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.opacity-75{opacity:.75}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 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}.outline-4{outline-width:4px}.outline-transparent{outline-color:transparent}.blur{--tw-blur:blur(8px)}.blur,.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)}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-gray-200:hover{outline-color:#e5e7eb}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.sm\:w-1\/3{width:33.333333%}.sm\:flex-row{flex-direction:row}.sm\:gap-10{gap:2.5rem}.sm\:px-16{padding-left:4rem;padding-right:4rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:w-1\/4{width:25%}}@media (min-width:1024px){.lg\:w-1\/6{width:16.666667%}}@media (min-width:1280px){.xl\:max-w-\[1024px\]{max-width:1024px}}@media (min-width:1536px){.\32xl\:max-w-\[1280px\]{max-width:1280px}}
1
+ .pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.z-30{z-index:30}.-m-1{margin:-.25rem}.m-auto{margin:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.ml-2{margin-left:.5rem}.ml-24{margin-left:6rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-24{height:6rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-\[190px\]{height:190px}.h-full{height:100%}.min-h-11{min-height:2.75rem}.min-h-\[320px\]{min-height:320px}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-20{width:5rem}.w-32{width:8rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-\[190px\]{width:190px}.w-full{width:100%}.min-w-\[256px\]{min-width:256px}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1 1 0%}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.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}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/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-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity))}.bg-fixed{background-attachment:fixed}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-thin{font-weight:100}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.opacity-75{opacity:.75}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 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}.outline-4{outline-width:4px}.outline-transparent{outline-color:transparent}.blur{--tw-blur:blur(8px)}.blur,.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-duration:.15s;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)}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-gray-200:hover{outline-color:#e5e7eb}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.sm\:w-1\/3{width:33.333333%}.sm\:flex-row{flex-direction:row}.sm\:gap-10{gap:2.5rem}.sm\:px-16{padding-left:4rem;padding-right:4rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:w-1\/4{width:25%}}@media (min-width:1024px){.lg\:w-1\/6{width:16.666667%}}@media (min-width:1280px){.xl\:max-w-\[1024px\]{max-width:1024px}}@media (min-width:1536px){.\32xl\:max-w-\[1280px\]{max-width:1280px}}