From fc84f92e236193e6bbe67a19f0061b0c00f2d5de Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Sun, 4 Feb 2024 12:21:07 +0100 Subject: [PATCH 001/301] Start development of v2 --- .gitignore | 25 +- .run/Angular Application.run.xml | 5 - .run/Angular CLI Server.run.xml | 12 - README.md | 51 +- assets/fix_game_mapping.png | Bin 32680 -> 0 bytes assets/game_detail_view.png | Bin 2409394 -> 0 bytes assets/game_mappings.png | Bin 112555 -> 0 bytes assets/library_overview.png | Bin 2663296 -> 0 bytes assets/scan_library.png | Bin 11654 -> 0 bytes backend/pom.xml | 288 - .../grimsi/gameyfin/GameyfinApplication.java | 18 - .../config/FileSystemProviderConfig.java | 23 - .../gameyfin/config/FilesystemConfig.java | 64 - .../gameyfin/config/FrontendConfig.java | 29 - .../gameyfin/config/GameyfinFolderConfig.java | 101 - .../gameyfin/config/SecureProperties.java | 25 - .../config/SecurityConfiguration.java | 59 - .../gameyfin/config/WebClientConfig.java | 75 - .../config/properties/GameyfinProperties.java | 24 - .../dto/AutocompleteSuggestionDto.java | 20 - .../grimsi/gameyfin/dto/GameOverviewDto.java | 12 - .../gameyfin/dto/ImageDownloadResultDto.java | 10 - .../gameyfin/dto/LibraryScanRequestDto.java | 13 - .../gameyfin/dto/LibraryScanResult.java | 13 - .../gameyfin/dto/LibraryScanResultDto.java | 21 - .../de/grimsi/gameyfin/dto/PathToSlugDto.java | 9 - .../de/grimsi/gameyfin/entities/Company.java | 39 - .../gameyfin/entities/DetectedGame.java | 114 - .../de/grimsi/gameyfin/entities/Genre.java | 35 - .../de/grimsi/gameyfin/entities/Keyword.java | 35 - .../de/grimsi/gameyfin/entities/Library.java | 38 - .../de/grimsi/gameyfin/entities/Platform.java | 39 - .../gameyfin/entities/PlayerPerspective.java | 35 - .../de/grimsi/gameyfin/entities/Theme.java | 35 - .../gameyfin/entities/UnmappableFile.java | 40 - .../exceptions/DownloadAbortedException.java | 7 - .../gameyfin/igdb/IgdbApiProperties.java | 29 - .../gameyfin/igdb/IgdbApiQueryBuilder.java | 448 - .../de/grimsi/gameyfin/igdb/IgdbWrapper.java | 259 - .../igdb/dto/TwitchOAuthTokenDto.java | 17 - .../grimsi/gameyfin/mapper/CompanyMapper.java | 21 - .../de/grimsi/gameyfin/mapper/GameMapper.java | 127 - .../grimsi/gameyfin/mapper/GenreMapper.java | 20 - .../grimsi/gameyfin/mapper/KeywordMapper.java | 19 - .../gameyfin/mapper/PlatformMapper.java | 21 - .../mapper/PlayerPerspectiveMapper.java | 20 - .../grimsi/gameyfin/mapper/ThemeMapper.java | 19 - .../repositories/CompanyRepository.java | 7 - .../repositories/DetectedGameRepository.java | 32 - .../repositories/GenreRepository.java | 7 - .../repositories/KeywordRepository.java | 7 - .../repositories/LibraryRepository.java | 13 - .../repositories/PlatformRepository.java | 13 - .../PlayerPerspectiveRepository.java | 7 - .../repositories/ThemeRepository.java | 7 - .../UnmappableFileRepository.java | 30 - .../grimsi/gameyfin/rest/GamesController.java | 80 - .../grimsi/gameyfin/rest/ImageController.java | 32 - .../gameyfin/rest/LibraryController.java | 81 - .../rest/LibraryManagementController.java | 81 - .../gameyfin/service/DownloadService.java | 125 - .../gameyfin/service/FilesystemService.java | 107 - .../grimsi/gameyfin/service/GameService.java | 134 - .../grimsi/gameyfin/service/ImageService.java | 139 - .../gameyfin/service/LibraryService.java | 257 - .../de/grimsi/gameyfin/util/FilenameUtil.java | 75 - .../de/grimsi/gameyfin/util/ProtobufUtil.java | 11 - ...itional-spring-configuration-metadata.json | 9 - .../src/main/resources/application-dev.yml | 11 - backend/src/main/resources/application.yml | 5 - backend/src/main/resources/banner.txt | 10 - .../src/main/resources/config/database.yml | 20 - .../src/main/resources/config/gameyfin.yml | 301 - backend/src/main/resources/config/secure.yml | 30 - .../V1_0_0__Initial_Database_Setup.sql | 148 - ...d_Field_addedToLibrary_to_DetectedGame.sql | 4 - ...V1_3_0__Add_Platforms_to_Detected_Game.sql | 45 - .../src/main/resources/proto/igdbapi.proto | 1173 -- .../grimsi/gameyfin/igdb/IgdbWrapperTest.java | 373 - .../gameyfin/mapper/CompanyMapperTest.java | 38 - .../gameyfin/mapper/GenreMapperTest.java | 35 - .../gameyfin/mapper/RandomMapperTest.java | 49 - .../DetectedGameRepositoryTest.java | 114 - .../repositories/LibraryRepositoryTest.java | 48 - .../UnmappableFileRepositoryTest.java | 86 - .../gameyfin/rest/GamesControllerTest.java | 159 - .../gameyfin/rest/ImageControllerTest.java | 42 - .../gameyfin/rest/LibraryControllerTest.java | 180 - .../rest/LibraryManagementControllerTest.java | 141 - .../gameyfin/service/DownloadServiceTest.java | 86 - .../service/FilesystemServiceTest.java | 253 - .../gameyfin/service/GameServiceTest.java | 317 - .../gameyfin/service/ImageServiceTest.java | 86 - .../gameyfin/util/FilenameUtilTest.java | 179 - .../gameyfin/util/ProtobufUtilTest.java | 20 - .../src/test/resources/application-test.yml | 9 - .../org.mockito.plugins.MockMaker | 1 - build.gradle.kts | 63 + config/gameyfin.properties | 30 - ...e.example-with-multiple-source-folders.yml | 17 - docker/docker-compose.example.yml | 7 +- frontend/.editorconfig | 16 - frontend/.gitignore | 44 - frontend/README.md | 27 - frontend/angular.json | 111 - frontend/karma.conf.js | 44 - frontend/package-lock.json | 12879 ---------------- frontend/package.json | 43 - frontend/pom.xml | 94 - frontend/src/app/api/GamesApi.ts | 11 - frontend/src/app/api/LibraryApi.ts | 12 - frontend/src/app/api/LibraryManagementApi.ts | 16 - frontend/src/app/app-routing.module.ts | 50 - frontend/src/app/app.component.css | 0 frontend/src/app/app.component.html | 5 - frontend/src/app/app.component.spec.ts | 31 - frontend/src/app/app.component.ts | 24 - frontend/src/app/app.module.ts | 140 - .../error-dialog.component.spec.ts | 25 - .../error-dialog/error-dialog.component.ts | 31 - .../components/footer/footer.component.html | 1 - .../components/footer/footer.component.scss | 9 - .../footer/footer.component.spec.ts | 23 - .../app/components/footer/footer.component.ts | 20 - .../game-cover/game-cover.component.html | 5 - .../game-cover/game-cover.component.scss | 59 - .../game-cover/game-cover.component.spec.ts | 23 - .../game-cover/game-cover.component.ts | 19 - .../game-detail-view.component.html | 112 - .../game-detail-view.component.scss | 4 - .../game-detail-view.component.spec.ts | 23 - .../game-detail-view.component.ts | 119 - .../game-screenshot.component.html | 1 - .../game-screenshot.component.scss | 0 .../game-screenshot.component.spec.ts | 23 - .../game-screenshot.component.ts | 17 - .../game-video/game-video.component.html | 1 - .../game-video/game-video.component.scss | 0 .../game-video/game-video.component.spec.ts | 23 - .../game-video/game-video.component.ts | 22 - .../components/header/header.component.html | 26 - .../components/header/header.component.scss | 11 - .../header/header.component.spec.ts | 25 - .../app/components/header/header.component.ts | 82 - .../library-management.component.html | 36 - .../library-management.component.scss | 1 - .../library-management.component.spec.ts | 23 - .../library-management.component.ts | 36 - .../library-overview.component.html | 147 - .../library-overview.component.scss | 59 - .../library-overview.component.spec.ts | 25 - .../library-overview.component.ts | 293 - .../map-game-dialog.component.html | 30 - .../map-game-dialog.component.scss | 0 .../map-game-dialog.component.spec.ts | 23 - .../map-game-dialog.component.ts | 84 - .../map-library-dialog.component.html | 31 - .../map-library-dialog.component.scss | 0 .../map-library-dialog.component.spec.ts | 23 - .../map-library-dialog.component.ts | 90 - .../mapped-games-table.component.html | 50 - .../mapped-games-table.component.scss | 8 - .../mapped-games-table.component.spec.ts | 34 - .../mapped-games-table.component.ts | 89 - .../mapped-libraries-table.component.html | 43 - .../mapped-libraries-table.component.scss | 8 - .../mapped-libraries-table.component.spec.ts | 34 - .../mapped-libraries-table.component.ts | 102 - .../page-not-found.component.html | 4 - .../page-not-found.component.scss | 0 .../page-not-found.component.spec.ts | 25 - .../page-not-found.component.ts | 15 - .../unmapped-files-table.component.html | 36 - .../unmapped-files-table.component.scss | 9 - .../unmapped-files-table.component.spec.ts | 34 - .../unmapped-files-table.component.ts | 62 - frontend/src/app/config/Config.ts | 4 - ...g-model-change-debounced.directive.spec.ts | 8 - .../ng-model-change-debounced.directive.ts | 26 - .../progress-bar-color.directive.spec.ts | 8 - .../progress-bar-color.directive.ts | 38 - .../app/interceptor/api-url.interceptor.ts | 18 - .../src/app/interceptor/error.interceptor.ts | 37 - .../navbar-layout.component.spec.ts | 0 .../navbar-layout/navbar-layout.component.ts | 32 - .../src/app/models/dtos/ApiErrorResponse.ts | 12 - .../models/dtos/AutocompleteSuggestionDto.ts | 6 - frontend/src/app/models/dtos/CompanyDto.ts | 5 - .../src/app/models/dtos/DetectedGameDto.ts | 38 - .../src/app/models/dtos/GameOverviewDto.ts | 5 - frontend/src/app/models/dtos/GenreDto.ts | 4 - .../app/models/dtos/ImageDownloadResultDto.ts | 5 - frontend/src/app/models/dtos/KeywordDto.ts | 4 - frontend/src/app/models/dtos/LibraryDto.ts | 7 - .../app/models/dtos/LibraryScanRequestDto.ts | 7 - .../app/models/dtos/LibraryScanResultDto.ts | 10 - frontend/src/app/models/dtos/PathToSlugDto.ts | 11 - frontend/src/app/models/dtos/PlatformDto.ts | 5 - .../app/models/dtos/PlayerPerspectiveDto.ts | 4 - frontend/src/app/models/dtos/ThemeDto.ts | 4 - .../src/app/models/dtos/UnmappedFileDto.ts | 4 - frontend/src/app/models/enums/Icon.ts | 20 - .../app/models/objects/DropDownMenuItem.ts | 15 - .../src/app/models/objects/NavMenuItem.ts | 15 - .../src/app/services/cookie.service.spec.ts | 16 - frontend/src/app/services/cookie.service.ts | 34 - .../src/app/services/dialog.service.spec.ts | 12 - frontend/src/app/services/dialog.service.ts | 81 - .../src/app/services/games.service.spec.ts | 16 - frontend/src/app/services/games.service.ts | 130 - .../library-management.service.spec.ts | 16 - .../services/library-management.service.ts | 71 - .../src/app/services/library.service.spec.ts | 16 - frontend/src/app/services/library.service.ts | 31 - .../src/app/services/theming.service.spec.ts | 16 - frontend/src/app/services/theming.service.ts | 53 - frontend/src/app/themes/dark-theme.scss | 14 - frontend/src/app/themes/light-theme.scss | 14 - frontend/src/assets/.gitkeep | 0 frontend/src/assets/Gameyfin_Logo_256px.png | Bin 4331 -> 0 bytes .../src/assets/Gameyfin_Logo_256px_dark.png | Bin 3006 -> 0 bytes .../src/assets/android-chrome-192x192.png | Bin 385 -> 0 bytes .../src/assets/android-chrome-512x512.png | Bin 487 -> 0 bytes frontend/src/assets/apple-touch-icon.png | Bin 387 -> 0 bytes frontend/src/assets/browserconfig.xml | 9 - frontend/src/assets/favicon-16x16.png | Bin 644 -> 0 bytes frontend/src/assets/favicon-32x32.png | Bin 988 -> 0 bytes frontend/src/assets/favicon.ico | Bin 15086 -> 0 bytes frontend/src/assets/mstile-150x150.png | Bin 2429 -> 0 bytes frontend/src/assets/safari-pinned-tab.svg | 180 - frontend/src/assets/site.webmanifest | 19 - frontend/src/environments/environment.prod.ts | 6 - frontend/src/environments/environment.ts | 18 - frontend/src/favicon.ico | Bin 948 -> 0 bytes frontend/src/index.html | 25 - frontend/src/main.ts | 12 - frontend/src/polyfills.ts | 53 - frontend/src/proxy.conf.json | 10 - frontend/src/styles.scss | 43 - frontend/src/test.ts | 14 - frontend/tsconfig.app.json | 15 - frontend/tsconfig.json | 41 - frontend/tsconfig.spec.json | 18 - gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 249 + gradlew.bat | 92 + pom.xml | 54 - postman/IGDB.postman_collection.json | 248 - settings.gradle.kts | 1 + .../de/grimsi/gameyfin/GameyfinApplication.kt | 11 + src/main/resources/application.properties | 1 + .../gameyfin/GameyfinApplicationTests.kt | 13 + 253 files changed, 479 insertions(+), 24885 deletions(-) delete mode 100644 .run/Angular Application.run.xml delete mode 100644 .run/Angular CLI Server.run.xml delete mode 100644 assets/fix_game_mapping.png delete mode 100644 assets/game_detail_view.png delete mode 100644 assets/game_mappings.png delete mode 100644 assets/library_overview.png delete mode 100644 assets/scan_library.png delete mode 100644 backend/pom.xml delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/GameyfinApplication.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/FileSystemProviderConfig.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/FilesystemConfig.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/FrontendConfig.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/GameyfinFolderConfig.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/SecureProperties.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/SecurityConfiguration.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/WebClientConfig.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/config/properties/GameyfinProperties.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/AutocompleteSuggestionDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/GameOverviewDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/ImageDownloadResultDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/LibraryScanRequestDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/LibraryScanResult.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/LibraryScanResultDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/dto/PathToSlugDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/Company.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/DetectedGame.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/Genre.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/Keyword.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/Library.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/Platform.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/PlayerPerspective.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/Theme.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/entities/UnmappableFile.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/exceptions/DownloadAbortedException.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/igdb/IgdbApiProperties.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/igdb/IgdbApiQueryBuilder.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/igdb/IgdbWrapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/igdb/dto/TwitchOAuthTokenDto.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/CompanyMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/GameMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/GenreMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/KeywordMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/PlatformMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/PlayerPerspectiveMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/mapper/ThemeMapper.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/CompanyRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/DetectedGameRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/GenreRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/KeywordRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/LibraryRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/PlatformRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/PlayerPerspectiveRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/ThemeRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/repositories/UnmappableFileRepository.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/rest/GamesController.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/rest/ImageController.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/rest/LibraryController.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/rest/LibraryManagementController.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/service/DownloadService.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/service/FilesystemService.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/service/GameService.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/service/ImageService.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/service/LibraryService.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/util/FilenameUtil.java delete mode 100644 backend/src/main/java/de/grimsi/gameyfin/util/ProtobufUtil.java delete mode 100644 backend/src/main/resources/META-INF/additional-spring-configuration-metadata.json delete mode 100644 backend/src/main/resources/application-dev.yml delete mode 100644 backend/src/main/resources/application.yml delete mode 100644 backend/src/main/resources/banner.txt delete mode 100644 backend/src/main/resources/config/database.yml delete mode 100644 backend/src/main/resources/config/gameyfin.yml delete mode 100644 backend/src/main/resources/config/secure.yml delete mode 100644 backend/src/main/resources/db/migration/V1_0_0__Initial_Database_Setup.sql delete mode 100644 backend/src/main/resources/db/migration/V1_1_0__Add_Field_addedToLibrary_to_DetectedGame.sql delete mode 100644 backend/src/main/resources/db/migration/V1_3_0__Add_Platforms_to_Detected_Game.sql delete mode 100644 backend/src/main/resources/proto/igdbapi.proto delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/igdb/IgdbWrapperTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/mapper/CompanyMapperTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/mapper/GenreMapperTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/mapper/RandomMapperTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/repositories/DetectedGameRepositoryTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/repositories/LibraryRepositoryTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/repositories/UnmappableFileRepositoryTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/rest/GamesControllerTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/rest/ImageControllerTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/rest/LibraryControllerTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/rest/LibraryManagementControllerTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/service/DownloadServiceTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/service/FilesystemServiceTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/service/GameServiceTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/service/ImageServiceTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/util/FilenameUtilTest.java delete mode 100644 backend/src/test/java/de/grimsi/gameyfin/util/ProtobufUtilTest.java delete mode 100644 backend/src/test/resources/application-test.yml delete mode 100644 backend/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker create mode 100644 build.gradle.kts delete mode 100644 config/gameyfin.properties delete mode 100644 docker/docker-compose.example-with-multiple-source-folders.yml delete mode 100644 frontend/.editorconfig delete mode 100644 frontend/.gitignore delete mode 100644 frontend/README.md delete mode 100644 frontend/angular.json delete mode 100644 frontend/karma.conf.js delete mode 100644 frontend/package-lock.json delete mode 100644 frontend/package.json delete mode 100644 frontend/pom.xml delete mode 100644 frontend/src/app/api/GamesApi.ts delete mode 100644 frontend/src/app/api/LibraryApi.ts delete mode 100644 frontend/src/app/api/LibraryManagementApi.ts delete mode 100644 frontend/src/app/app-routing.module.ts delete mode 100644 frontend/src/app/app.component.css delete mode 100644 frontend/src/app/app.component.html delete mode 100644 frontend/src/app/app.component.spec.ts delete mode 100644 frontend/src/app/app.component.ts delete mode 100644 frontend/src/app/app.module.ts delete mode 100644 frontend/src/app/components/error-dialog/error-dialog.component.spec.ts delete mode 100644 frontend/src/app/components/error-dialog/error-dialog.component.ts delete mode 100644 frontend/src/app/components/footer/footer.component.html delete mode 100644 frontend/src/app/components/footer/footer.component.scss delete mode 100644 frontend/src/app/components/footer/footer.component.spec.ts delete mode 100644 frontend/src/app/components/footer/footer.component.ts delete mode 100644 frontend/src/app/components/game-cover/game-cover.component.html delete mode 100644 frontend/src/app/components/game-cover/game-cover.component.scss delete mode 100644 frontend/src/app/components/game-cover/game-cover.component.spec.ts delete mode 100644 frontend/src/app/components/game-cover/game-cover.component.ts delete mode 100644 frontend/src/app/components/game-detail-view/game-detail-view.component.html delete mode 100644 frontend/src/app/components/game-detail-view/game-detail-view.component.scss delete mode 100644 frontend/src/app/components/game-detail-view/game-detail-view.component.spec.ts delete mode 100644 frontend/src/app/components/game-detail-view/game-detail-view.component.ts delete mode 100644 frontend/src/app/components/game-screenshot/game-screenshot.component.html delete mode 100644 frontend/src/app/components/game-screenshot/game-screenshot.component.scss delete mode 100644 frontend/src/app/components/game-screenshot/game-screenshot.component.spec.ts delete mode 100644 frontend/src/app/components/game-screenshot/game-screenshot.component.ts delete mode 100644 frontend/src/app/components/game-video/game-video.component.html delete mode 100644 frontend/src/app/components/game-video/game-video.component.scss delete mode 100644 frontend/src/app/components/game-video/game-video.component.spec.ts delete mode 100644 frontend/src/app/components/game-video/game-video.component.ts delete mode 100644 frontend/src/app/components/header/header.component.html delete mode 100644 frontend/src/app/components/header/header.component.scss delete mode 100644 frontend/src/app/components/header/header.component.spec.ts delete mode 100644 frontend/src/app/components/header/header.component.ts delete mode 100644 frontend/src/app/components/library-management/library-management.component.html delete mode 100644 frontend/src/app/components/library-management/library-management.component.scss delete mode 100644 frontend/src/app/components/library-management/library-management.component.spec.ts delete mode 100644 frontend/src/app/components/library-management/library-management.component.ts delete mode 100644 frontend/src/app/components/library-overview/library-overview.component.html delete mode 100644 frontend/src/app/components/library-overview/library-overview.component.scss delete mode 100644 frontend/src/app/components/library-overview/library-overview.component.spec.ts delete mode 100644 frontend/src/app/components/library-overview/library-overview.component.ts delete mode 100644 frontend/src/app/components/map-game-dialog/map-game-dialog.component.html delete mode 100644 frontend/src/app/components/map-game-dialog/map-game-dialog.component.scss delete mode 100644 frontend/src/app/components/map-game-dialog/map-game-dialog.component.spec.ts delete mode 100644 frontend/src/app/components/map-game-dialog/map-game-dialog.component.ts delete mode 100644 frontend/src/app/components/map-library-dialog/map-library-dialog.component.html delete mode 100644 frontend/src/app/components/map-library-dialog/map-library-dialog.component.scss delete mode 100644 frontend/src/app/components/map-library-dialog/map-library-dialog.component.spec.ts delete mode 100644 frontend/src/app/components/map-library-dialog/map-library-dialog.component.ts delete mode 100644 frontend/src/app/components/mapped-games-table/mapped-games-table.component.html delete mode 100644 frontend/src/app/components/mapped-games-table/mapped-games-table.component.scss delete mode 100644 frontend/src/app/components/mapped-games-table/mapped-games-table.component.spec.ts delete mode 100644 frontend/src/app/components/mapped-games-table/mapped-games-table.component.ts delete mode 100644 frontend/src/app/components/mapped-libraries-table/mapped-libraries-table.component.html delete mode 100644 frontend/src/app/components/mapped-libraries-table/mapped-libraries-table.component.scss delete mode 100644 frontend/src/app/components/mapped-libraries-table/mapped-libraries-table.component.spec.ts delete mode 100644 frontend/src/app/components/mapped-libraries-table/mapped-libraries-table.component.ts delete mode 100644 frontend/src/app/components/page-not-found/page-not-found.component.html delete mode 100644 frontend/src/app/components/page-not-found/page-not-found.component.scss delete mode 100644 frontend/src/app/components/page-not-found/page-not-found.component.spec.ts delete mode 100644 frontend/src/app/components/page-not-found/page-not-found.component.ts delete mode 100644 frontend/src/app/components/unmapped-files-table/unmapped-files-table.component.html delete mode 100644 frontend/src/app/components/unmapped-files-table/unmapped-files-table.component.scss delete mode 100644 frontend/src/app/components/unmapped-files-table/unmapped-files-table.component.spec.ts delete mode 100644 frontend/src/app/components/unmapped-files-table/unmapped-files-table.component.ts delete mode 100644 frontend/src/app/config/Config.ts delete mode 100644 frontend/src/app/directives/ng-model-change-debounced.directive.spec.ts delete mode 100644 frontend/src/app/directives/ng-model-change-debounced.directive.ts delete mode 100644 frontend/src/app/directives/progress-bar-color.directive.spec.ts delete mode 100644 frontend/src/app/directives/progress-bar-color.directive.ts delete mode 100644 frontend/src/app/interceptor/api-url.interceptor.ts delete mode 100644 frontend/src/app/interceptor/error.interceptor.ts delete mode 100644 frontend/src/app/layouts/navbar-layout/navbar-layout.component.spec.ts delete mode 100644 frontend/src/app/layouts/navbar-layout/navbar-layout.component.ts delete mode 100644 frontend/src/app/models/dtos/ApiErrorResponse.ts delete mode 100644 frontend/src/app/models/dtos/AutocompleteSuggestionDto.ts delete mode 100644 frontend/src/app/models/dtos/CompanyDto.ts delete mode 100644 frontend/src/app/models/dtos/DetectedGameDto.ts delete mode 100644 frontend/src/app/models/dtos/GameOverviewDto.ts delete mode 100644 frontend/src/app/models/dtos/GenreDto.ts delete mode 100644 frontend/src/app/models/dtos/ImageDownloadResultDto.ts delete mode 100644 frontend/src/app/models/dtos/KeywordDto.ts delete mode 100644 frontend/src/app/models/dtos/LibraryDto.ts delete mode 100644 frontend/src/app/models/dtos/LibraryScanRequestDto.ts delete mode 100644 frontend/src/app/models/dtos/LibraryScanResultDto.ts delete mode 100644 frontend/src/app/models/dtos/PathToSlugDto.ts delete mode 100644 frontend/src/app/models/dtos/PlatformDto.ts delete mode 100644 frontend/src/app/models/dtos/PlayerPerspectiveDto.ts delete mode 100644 frontend/src/app/models/dtos/ThemeDto.ts delete mode 100644 frontend/src/app/models/dtos/UnmappedFileDto.ts delete mode 100644 frontend/src/app/models/enums/Icon.ts delete mode 100644 frontend/src/app/models/objects/DropDownMenuItem.ts delete mode 100644 frontend/src/app/models/objects/NavMenuItem.ts delete mode 100644 frontend/src/app/services/cookie.service.spec.ts delete mode 100644 frontend/src/app/services/cookie.service.ts delete mode 100644 frontend/src/app/services/dialog.service.spec.ts delete mode 100644 frontend/src/app/services/dialog.service.ts delete mode 100644 frontend/src/app/services/games.service.spec.ts delete mode 100644 frontend/src/app/services/games.service.ts delete mode 100644 frontend/src/app/services/library-management.service.spec.ts delete mode 100644 frontend/src/app/services/library-management.service.ts delete mode 100644 frontend/src/app/services/library.service.spec.ts delete mode 100644 frontend/src/app/services/library.service.ts delete mode 100644 frontend/src/app/services/theming.service.spec.ts delete mode 100644 frontend/src/app/services/theming.service.ts delete mode 100644 frontend/src/app/themes/dark-theme.scss delete mode 100644 frontend/src/app/themes/light-theme.scss delete mode 100644 frontend/src/assets/.gitkeep delete mode 100644 frontend/src/assets/Gameyfin_Logo_256px.png delete mode 100644 frontend/src/assets/Gameyfin_Logo_256px_dark.png delete mode 100644 frontend/src/assets/android-chrome-192x192.png delete mode 100644 frontend/src/assets/android-chrome-512x512.png delete mode 100644 frontend/src/assets/apple-touch-icon.png delete mode 100644 frontend/src/assets/browserconfig.xml delete mode 100644 frontend/src/assets/favicon-16x16.png delete mode 100644 frontend/src/assets/favicon-32x32.png delete mode 100644 frontend/src/assets/favicon.ico delete mode 100644 frontend/src/assets/mstile-150x150.png delete mode 100644 frontend/src/assets/safari-pinned-tab.svg delete mode 100644 frontend/src/assets/site.webmanifest delete mode 100644 frontend/src/environments/environment.prod.ts delete mode 100644 frontend/src/environments/environment.ts delete mode 100644 frontend/src/favicon.ico delete mode 100644 frontend/src/index.html delete mode 100644 frontend/src/main.ts delete mode 100644 frontend/src/polyfills.ts delete mode 100644 frontend/src/proxy.conf.json delete mode 100644 frontend/src/styles.scss delete mode 100644 frontend/src/test.ts delete mode 100644 frontend/tsconfig.app.json delete mode 100644 frontend/tsconfig.json delete mode 100644 frontend/tsconfig.spec.json create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat delete mode 100644 pom.xml delete mode 100644 postman/IGDB.postman_collection.json create mode 100644 settings.gradle.kts create mode 100644 src/main/kotlin/de/grimsi/gameyfin/GameyfinApplication.kt create mode 100644 src/main/resources/application.properties create mode 100644 src/test/kotlin/de/grimsi/gameyfin/GameyfinApplicationTests.kt diff --git a/.gitignore b/.gitignore index bbaa093..13bbb79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ +node_modules HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ ### STS ### .apt_generated @@ -12,12 +14,18 @@ target/ .settings .springBeans .sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ ### NetBeans ### /nbproject/private/ @@ -25,16 +33,15 @@ target/ /dist/ /nbdist/ /.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ ### VS Code ### .vscode/ -/.mvn/ + +### Kotlin ### +.kotlin ### Custom ### /data/ /backend/src/main/resources/static/ /docker/docker-compose.yml -/.gameyfin/ +/.gameyfin/ \ No newline at end of file diff --git a/.run/Angular Application.run.xml b/.run/Angular Application.run.xml deleted file mode 100644 index 4346cac..0000000 --- a/.run/Angular Application.run.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.run/Angular CLI Server.run.xml b/.run/Angular CLI Server.run.xml deleted file mode 100644 index 60749b4..0000000 --- a/.run/Angular CLI Server.run.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - grimsi and contributors + +plugins: + - search markdown_extensions: - pymdownx.highlight: From f35d4362849484ff5a47e0e42077c6fc06c5cb81 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Sat, 31 May 2025 19:36:57 +0200 Subject: [PATCH 241/301] Add "publish to Maven local" to Plugin-API --- plugin-api/build.gradle.kts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugin-api/build.gradle.kts b/plugin-api/build.gradle.kts index 48a1835..8269de3 100644 --- a/plugin-api/build.gradle.kts +++ b/plugin-api/build.gradle.kts @@ -1,5 +1,6 @@ plugins { kotlin("jvm") + `maven-publish` } group = "de.grimsi.gameyfin" @@ -8,6 +9,14 @@ repositories { mavenCentral() } +publishing { + publications { + create("maven") { + from(components["java"]) + } + } +} + dependencies { // PF4J (shared) api("org.pf4j:pf4j:${rootProject.extra["pf4jVersion"]}") From 9ecb60645a126b28385cb43e46d65269ae779dd8 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Sat, 31 May 2025 19:37:40 +0200 Subject: [PATCH 242/301] Move docs to gameyfin/docs repository --- .github/workflows/docs.yml | 30 --------------------- docs/assets/logo.svg | 1 - docs/index.md | 17 ------------ mkdocs.yml | 55 -------------------------------------- 4 files changed, 103 deletions(-) delete mode 100644 .github/workflows/docs.yml delete mode 100644 docs/assets/logo.svg delete mode 100644 docs/index.md delete mode 100644 mkdocs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 9d6c57f..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: publish docs -on: - push: - branches: - - master - - main - - v2 -permissions: - contents: write -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force \ No newline at end of file diff --git a/docs/assets/logo.svg b/docs/assets/logo.svg deleted file mode 100644 index 1fa5052..0000000 --- a/docs/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ -Element 12 \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 000ea34..0000000 --- a/docs/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Welcome to MkDocs - -For full documentation visit [mkdocs.org](https://www.mkdocs.org). - -## Commands - -* `mkdocs new [dir-name]` - Create a new project. -* `mkdocs serve` - Start the live-reloading docs server. -* `mkdocs build` - Build the documentation site. -* `mkdocs -h` - Print help message and exit. - -## Project layout - - mkdocs.yml # The configuration file. - docs/ - index.md # The documentation homepage. - ... # Other markdown pages, images and other files. diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 8857edb..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,55 +0,0 @@ -site_name: Gameyfin Docs (beta) -site_url: https://gameyfin.github.io -theme: - name: material - logo: assets/logo.svg - favicon: assets/logo.svg - palette: - - media: "(prefers-color-scheme)" - toggle: - icon: material/brightness-auto - name: Switch to light mode - - media: "(prefers-color-scheme: light)" - scheme: default - primary: white - accent: purple - toggle: - icon: material/brightness-7 - name: Switch to dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: black - accent: blue - toggle: - icon: material/brightness-4 - name: Switch to system preference - font: - code: JetBrains Mono - features: - - navigation.footer - - search.suggest - - search.highlight - -repo_url: https://github.com/gameyfin/gameyfin/tree/v2 -repo_name: gameyfin -copyright: Copyright © grimsi and contributors - -plugins: - - search - -markdown_extensions: - - pymdownx.highlight: - anchor_linenums: true - line_spans: __span - pygments_lang_class: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format - - pymdownx.tabbed: - alternate_style: true - - admonition - - pymdownx.details \ No newline at end of file From f6e5240d6c8b1a8a3aa3300922845b36095cbbbd Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:49:36 +0200 Subject: [PATCH 243/301] Update dependencies --- gradle.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index f5c3414..12e1fed 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,10 +1,10 @@ # Plugin versions -kotlinVersion=2.1.20 -kspVersion=2.1.20-2.0.1 -vaadinVersion=24.8.0.alpha6 -springBootVersion=3.4.5 +kotlinVersion=2.1.21 +kspVersion=2.1.21-2.0.1 +vaadinVersion=24.8.0.beta2 +springBootVersion=3.4.6 springCloudVersion=2024.0.1 springDependencyManagementVersion=1.1.7 # Dependency versions pf4jVersion=3.13.0 -pf4jKspVersion=2.1.20-1.0.2 \ No newline at end of file +pf4jKspVersion=2.1.21-1.0.2 \ No newline at end of file From e3a02e71fa8d6b60c02d58d1db399fa112d0bed9 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:49:45 +0200 Subject: [PATCH 244/301] Update FE dependencies --- gameyfin/package-lock.json | 6882 +++++++++++++----------------------- gameyfin/package.json | 136 +- 2 files changed, 2612 insertions(+), 4406 deletions(-) diff --git a/gameyfin/package-lock.json b/gameyfin/package-lock.json index 84465f9..c473dbc 100644 --- a/gameyfin/package-lock.json +++ b/gameyfin/package-lock.json @@ -8,28 +8,28 @@ "name": "gameyfin", "version": "2.0.0-ALPHA", "dependencies": { - "@heroui/react": "2.7.5", + "@heroui/react": "2.7.9", "@material-tailwind/react": "^2.1.10", "@phosphor-icons/react": "^2.1.7", "@polymer/polymer": "3.5.2", "@react-stately/data": "^3.12.2", "@react-types/shared": "^3.28.0", - "@vaadin/bundles": "24.8.0-alpha15", + "@vaadin/bundles": "24.8.0-beta1", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-file-router": "24.8.0-alpha6", - "@vaadin/hilla-frontend": "24.8.0-alpha6", - "@vaadin/hilla-lit-form": "24.8.0-alpha6", - "@vaadin/hilla-react-auth": "24.8.0-alpha6", - "@vaadin/hilla-react-crud": "24.8.0-alpha6", - "@vaadin/hilla-react-form": "24.8.0-alpha6", - "@vaadin/hilla-react-i18n": "24.8.0-alpha6", - "@vaadin/hilla-react-signals": "24.8.0-alpha6", - "@vaadin/polymer-legacy-adapter": "24.8.0-alpha15", - "@vaadin/react-components": "24.8.0-alpha15", + "@vaadin/hilla-file-router": "24.8.0-beta2", + "@vaadin/hilla-frontend": "24.8.0-beta2", + "@vaadin/hilla-lit-form": "24.8.0-beta2", + "@vaadin/hilla-react-auth": "24.8.0-beta2", + "@vaadin/hilla-react-crud": "24.8.0-beta2", + "@vaadin/hilla-react-form": "24.8.0-beta2", + "@vaadin/hilla-react-i18n": "24.8.0-beta2", + "@vaadin/hilla-react-signals": "24.8.0-beta2", + "@vaadin/polymer-legacy-adapter": "24.8.0-beta1", + "@vaadin/react-components": "24.8.0-beta1", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "@vaadin/vaadin-usage-statistics": "2.1.3", "classnames": "^2.5.1", "construct-style-sheets-polyfill": "3.1.0", @@ -51,7 +51,7 @@ "react-dom": "18.3.1", "react-markdown": "^10.1.0", "react-player": "^2.16.0", - "react-router": "7.5.2", + "react-router": "7.6.1", "remark-breaks": "^4.0.0", "swiper": "^11.2.6", "valtio": "^2.1.5", @@ -59,30 +59,31 @@ "yup": "^1.6.1" }, "devDependencies": { - "@babel/preset-react": "7.26.3", + "@babel/preset-react": "7.27.1", "@lit-labs/react": "^2.1.3", "@preact/signals-react-transform": "0.5.1", "@rollup/plugin-replace": "6.0.2", "@rollup/pluginutils": "5.1.4", "@types/node": "^22.4.0", - "@types/react": "18.3.20", - "@types/react-dom": "18.3.6", - "@vaadin/hilla-generator-cli": "24.8.0-alpha6", - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-backbone": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-barrel": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-model": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-push": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-signals": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-subtypes": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-transfertypes": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", - "@vitejs/plugin-react": "4.4.1", + "@types/react": "18.3.22", + "@types/react-dom": "18.3.7", + "@vaadin/hilla-generator-cli": "24.8.0-beta2", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-backbone": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-barrel": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-model": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-push": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-signals": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-subtypes": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-transfertypes": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", + "@vitejs/plugin-react": "4.5.0", "@vitejs/plugin-react-swc": "^3.7.0", "async": "3.2.6", "autoprefixer": "^10.4.20", "glob": "11.0.2", + "magic-string": "0.30.17", "postcss": "^8.4.41", "postcss-import": "^16.1.0", "rollup-plugin-brotli": "3.1.0", @@ -91,8 +92,8 @@ "tailwindcss": "^3.4.13", "transform-ast": "2.4.4", "typescript": "5.8.3", - "vite": "6.3.3", - "vite-plugin-checker": "0.9.1", + "vite": "6.3.5", + "vite-plugin-checker": "0.9.3", "workbox-build": "7.3.0", "workbox-core": "7.3.0", "workbox-precaching": "7.3.0" @@ -270,13 +271,13 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -416,9 +417,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -680,13 +681,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1352,13 +1353,13 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", + "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1368,17 +1369,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1388,13 +1389,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" + "@babel/plugin-transform-react-jsx": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1436,14 +1437,14 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1750,18 +1751,18 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1817,9 +1818,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz", + "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==", "dev": true, "license": "MIT", "dependencies": { @@ -2309,77 +2310,77 @@ "license": "MIT" }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.1.tgz", - "integrity": "sha512-Ip9uV+/MpLXWRk03U/GzeJMuPeOXpJBSB5V1tjA6kJhvqssye5J5LoYLc7Z5IAHb7nR62sRoguzrFiVCP/hnzw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.4.tgz", + "integrity": "sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==", "license": "MIT", "dependencies": { - "@formatjs/fast-memoize": "2.2.5", - "@formatjs/intl-localematcher": "0.5.9", - "decimal.js": "10", - "tslib": "2" + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.1", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.5.tgz", - "integrity": "sha512-6PoewUMrrcqxSoBXAOJDiW1m+AmkrAj0RiXnOMD59GRaswjXhm3MDhgepXPBgonc09oSirAJTsAggzAGQf6A6g==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", "license": "MIT", "dependencies": { - "tslib": "2" + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.9.7", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.7.tgz", - "integrity": "sha512-cuEHyRM5VqLQobANOjtjlgU7+qmk9Q3fDQuBiRRJ3+Wp3ZoZhpUPtUfuimZXsir6SaI2TaAJ+SLo9vLnV5QcbA==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.2.tgz", + "integrity": "sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==", "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.1", - "@formatjs/icu-skeleton-parser": "1.8.11", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/icu-skeleton-parser": "1.8.14", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.11.tgz", - "integrity": "sha512-8LlHHE/yL/zVJZHAX3pbKaCjZKmBIO6aJY1mkVh4RMSEu/2WRZ4Ysvv3kKXJ9M8RJLBHdnk1/dUQFdod1Dt7Dw==", + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.14.tgz", + "integrity": "sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==", "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.1", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.9.tgz", - "integrity": "sha512-8zkGu/sv5euxbjfZ/xmklqLyDGQSxsLqg8XOq88JW3cmJtzhCP8EtSJXlaKZnVO4beEaoiT9wj4eIoCQ9smwxA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz", + "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==", "license": "MIT", "dependencies": { - "tslib": "2" + "tslib": "^2.8.0" } }, "node_modules/@heroui/accordion": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/accordion/-/accordion-2.2.13.tgz", - "integrity": "sha512-0y+eOwc4CV6dGP9LBoXPpPza6ZUxoyUajbzaTA3NTADvqnIV6+TB/G6nbKtYJf4F4omMZwRGoLQ5vr/dKLCGCA==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/accordion/-/accordion-2.2.17.tgz", + "integrity": "sha512-HrFl5cVtmNt+5pVboMmw0Eo21Ikx+pPZjvxm1GaFayCaaQD1gvLcISPSQF4rOft+197FA8vuk9Ke5UsBy0Ylig==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/divider": "2.2.11", - "@heroui/dom-animation": "2.1.6", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-aria-accordion": "2.2.8", - "@react-aria/button": "3.12.0", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-stately/tree": "3.8.8", + "@heroui/aria-utils": "2.2.17", + "@heroui/divider": "2.2.14", + "@heroui/dom-animation": "2.1.9", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-aria-accordion": "2.2.12", + "@react-aria/button": "3.13.1", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-stately/tree": "3.8.10", "@react-types/accordion": "3.0.0-alpha.26", - "@react-types/shared": "3.28.0" + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2390,51 +2391,17 @@ } }, "node_modules/@heroui/accordion/node_modules/@react-aria/button": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.12.0.tgz", - "integrity": "sha512-obnK2vjQQdoOXMIPFy8PZSI8vET+LIeQeh3gjQfRcbtcVE6xT1drDARm6e36cunI2Up99e0yVBBWqqegNqKGQw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.13.1.tgz", + "integrity": "sha512-E49qcbBRgofXYfWbli50bepWVNtQBq7qewL9XsX7nHkwPPUe1IRwJOnWZqYMgwwhUBOXfnsR6/TssiXqZsrJdw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/toolbar": "3.0.0-beta.13", - "@react-aria/utils": "^3.28.0", - "@react-stately/toggle": "^3.8.2", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/accordion/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/accordion/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/toolbar": "3.0.0-beta.16", + "@react-aria/utils": "^3.29.0", + "@react-stately/toggle": "^3.8.4", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2443,15 +2410,15 @@ } }, "node_modules/@heroui/accordion/node_modules/@react-aria/toolbar": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.13.tgz", - "integrity": "sha512-aj5lWdk/yp2Tmuuofu1rdkvhiYPCXihuPFbs+9HHz88kyezM7bkhmQRIf0w47tiPIKUA0UuwJucBjDZfl9EQFw==", + "version": "3.0.0-beta.16", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.16.tgz", + "integrity": "sha512-TnNvtxADalMzs9Et51hWPpGyiHr1dt++UYR7pIo1H7vO+HwXl6uH4HxbFDS5CyV69j2cQlcGrkj13LoWFkBECw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2459,30 +2426,18 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@heroui/accordion/node_modules/@react-types/accordion": { - "version": "3.0.0-alpha.26", - "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.26.tgz", - "integrity": "sha512-OXf/kXcD2vFlEnkcZy/GG+a/1xO9BN7Uh3/5/Ceuj9z2E/WwD55YwU3GFM5zzkZ4+DMkdowHnZX37XnmbyD3Mg==", - "license": "Apache-2.0", - "dependencies": { - "@react-types/shared": "^3.27.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/alert": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/@heroui/alert/-/alert-2.2.16.tgz", - "integrity": "sha512-cqB6m1U8urTH8ZzGqOUTOEYRWpFawk2OLDoKXCPQD+YeBRhwl0rOxVmfTnZG+xAQAIj4T7ao0KgwdS5DuVbnrA==", + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/@heroui/alert/-/alert-2.2.20.tgz", + "integrity": "sha512-qGrZ3NkbKs30CzbAabLwJT4wzafJPZb7YCLpK8V1NwEEkwCGVZUsnAV6XmYHqJ7yiDyx9saq/W3laOeDyDT7Fw==", "license": "MIT", "dependencies": { - "@heroui/button": "2.2.16", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@react-aria/utils": "3.28.0", - "@react-stately/utils": "3.10.5" + "@heroui/button": "2.2.20", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@react-aria/utils": "3.29.0", + "@react-stately/utils": "3.10.6" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2492,19 +2447,19 @@ } }, "node_modules/@heroui/aria-utils": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/aria-utils/-/aria-utils-2.2.13.tgz", - "integrity": "sha512-JcMaUTrWQqTg2fknO8Cuj5QVifhk9x9SAwoM4pwxPQvwHDj7ghyFmF43yPwxwvhdiakau3uxzC7zg4ZrmdUvYQ==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/aria-utils/-/aria-utils-2.2.17.tgz", + "integrity": "sha512-DIUYSpMPb8NeKHIFqS/xfHR5uBtBFG2hdcVXgZ3DBIqiXKAiNQ6L+vSf9h3P3wXFzupqaRPvmpqQ31Oh7830Dg==", "license": "MIT", "dependencies": { - "@heroui/react-rsc-utils": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/system": "2.4.12", - "@react-aria/utils": "3.28.0", - "@react-stately/collections": "3.12.2", - "@react-stately/overlays": "3.6.14", - "@react-types/overlays": "3.8.13", - "@react-types/shared": "3.28.0" + "@heroui/react-rsc-utils": "2.1.7", + "@heroui/shared-utils": "2.1.9", + "@heroui/system": "2.4.16", + "@react-aria/utils": "3.29.0", + "@react-stately/collections": "3.12.4", + "@react-stately/overlays": "3.6.16", + "@react-types/overlays": "3.8.15", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0", @@ -2512,33 +2467,33 @@ } }, "node_modules/@heroui/autocomplete": { - "version": "2.3.17", - "resolved": "https://registry.npmjs.org/@heroui/autocomplete/-/autocomplete-2.3.17.tgz", - "integrity": "sha512-3/+gC2+0sVm0JWPr2/p59Sbiw5wIBVr+kaUYOXULQhKSQwFCRHPUYkO0hPv7UIhD1ZHMexYS3SoKint5Rpp3WA==", + "version": "2.3.21", + "resolved": "https://registry.npmjs.org/@heroui/autocomplete/-/autocomplete-2.3.21.tgz", + "integrity": "sha512-tpLO22HVV09TTtRTvFf3yLozxPiFEHBGsWTQ7WM5XzM264YtwUjuXS669rw/tGsOqhjxXF9+WgQ8cnfssTk8yw==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/button": "2.2.16", - "@heroui/form": "2.1.15", - "@heroui/input": "2.4.16", - "@heroui/listbox": "2.3.15", - "@heroui/popover": "2.3.16", - "@heroui/react-utils": "2.1.8", - "@heroui/scroll-shadow": "2.3.10", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/spinner": "2.2.13", - "@heroui/use-aria-button": "2.2.10", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/combobox": "3.12.0", - "@react-aria/focus": "3.20.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/combobox": "3.10.3", - "@react-types/combobox": "3.13.3", - "@react-types/shared": "3.28.0" + "@heroui/aria-utils": "2.2.17", + "@heroui/button": "2.2.20", + "@heroui/form": "2.1.19", + "@heroui/input": "2.4.20", + "@heroui/listbox": "2.3.19", + "@heroui/popover": "2.3.20", + "@heroui/react-utils": "2.1.10", + "@heroui/scroll-shadow": "2.3.13", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/spinner": "2.2.17", + "@heroui/use-aria-button": "2.2.14", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/combobox": "3.12.3", + "@react-aria/focus": "3.20.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/combobox": "3.10.5", + "@react-types/combobox": "3.13.5", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2549,96 +2504,26 @@ } }, "node_modules/@heroui/autocomplete/node_modules/@react-aria/combobox": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.12.0.tgz", - "integrity": "sha512-p4WBfmtigEL+MwAKa4wdTnLl4kTnGvek/WjhUDdSF2vcRJi7NmvN4HwzgE4L4TcGISfbOc+OUh6jGemu1uV4lA==", + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.12.3.tgz", + "integrity": "sha512-nCLFSQjOR3r3tB1AURtZKSZhi2euBMw0QxsIjnMVF73BQOfwfHMrIFctNULbL070gEnXofzeBd3ykJQpnsGH+Q==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/listbox": "^3.14.1", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/menu": "^3.18.0", - "@react-aria/overlays": "^3.26.0", - "@react-aria/selection": "^3.23.0", - "@react-aria/textfield": "^3.17.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/collections": "^3.12.2", - "@react-stately/combobox": "^3.10.3", - "@react-stately/form": "^3.1.2", - "@react-types/button": "^3.11.0", - "@react-types/combobox": "^3.13.3", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/autocomplete/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/autocomplete/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/autocomplete/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/autocomplete/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/listbox": "^3.14.4", + "@react-aria/live-announcer": "^3.4.2", + "@react-aria/menu": "^3.18.3", + "@react-aria/overlays": "^3.27.1", + "@react-aria/selection": "^3.24.1", + "@react-aria/textfield": "^3.17.3", + "@react-aria/utils": "^3.29.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/combobox": "^3.10.5", + "@react-stately/form": "^3.1.4", + "@react-types/button": "^3.12.1", + "@react-types/combobox": "^3.13.5", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2647,17 +2532,17 @@ } }, "node_modules/@heroui/avatar": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/avatar/-/avatar-2.2.12.tgz", - "integrity": "sha512-kSgFtEtW0bFLZkvox8/rm6VAZXOnTEPyOXL8OmBdOrIFRHWTe9pEW5rhx6KbgTj5Time+bCgMnU6lUVpB2nFjA==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@heroui/avatar/-/avatar-2.2.16.tgz", + "integrity": "sha512-txhzfQf4krNvEWLRk8DCU2kzIJO+CaaWpr/CGyB1XuyHYM9jRpS2G7PwxsQs7BRyAv//Pk3mFBYqsb0lSti/2g==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-image": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-image": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2666,48 +2551,14 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/avatar/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/avatar/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/badge": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@heroui/badge/-/badge-2.2.10.tgz", - "integrity": "sha512-ZY+7zvgHUW7Ye4Epdd4GnbmJgf59pGjxGML6Jm+R+GvjdqUSpneRW+QUNzwL8paSwXbGTP48nnQh9fMs+PKyRQ==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@heroui/badge/-/badge-2.2.12.tgz", + "integrity": "sha512-JVvsmgHzvNDHMSW0/51LaikjTIxm59dU7Bvgp6bN5MuWgMvdhVcrrBskyy98uk7B4i8yYEfzfKBOPU3apZGAug==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2717,19 +2568,19 @@ } }, "node_modules/@heroui/breadcrumbs": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/breadcrumbs/-/breadcrumbs-2.2.12.tgz", - "integrity": "sha512-XRtU52p2j80BvZOvWgDaXfszwiACgxjS3gg5PEOM0X9H2UISW1+MoZjwtbLGYmGSl4ds4LdZGrf6dv6GWAX0nA==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@heroui/breadcrumbs/-/breadcrumbs-2.2.16.tgz", + "integrity": "sha512-F+jc/0oKv0yagWaWg+/VGwBxS5yacDFlMQOXDdCDL4ra2ky8/lb/o6VV/RfLLafazLsIj9WN1i9voSfw4aMMLA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@react-aria/breadcrumbs": "3.5.21", - "@react-aria/focus": "3.20.0", - "@react-aria/utils": "3.28.0", - "@react-types/breadcrumbs": "3.7.11", - "@react-types/shared": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@react-aria/breadcrumbs": "3.5.24", + "@react-aria/focus": "3.20.3", + "@react-aria/utils": "3.29.0", + "@react-types/breadcrumbs": "3.7.13", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2739,16 +2590,16 @@ } }, "node_modules/@heroui/breadcrumbs/node_modules/@react-aria/breadcrumbs": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.21.tgz", - "integrity": "sha512-Sg9nQIcKqHInXqTPml4uuf/2goEi9emPa9z/IGk6nw4kkZJuQYiqYvd5nCpcSqDfB2cWiJ5QZ50JIsKuTdBQpw==", + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.24.tgz", + "integrity": "sha512-CRheGyyM8afPJvDHLXn/mmGG/WAr/z2LReK3DlPdxVKcsOn7g3NIRxAcAIAJQlDLdOiu1SXHiZe6uu2jPhHrxA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/i18n": "^3.12.6", - "@react-aria/link": "^3.7.9", - "@react-aria/utils": "^3.28.0", - "@react-types/breadcrumbs": "^3.7.11", - "@react-types/shared": "^3.28.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/link": "^3.8.1", + "@react-aria/utils": "^3.29.0", + "@react-types/breadcrumbs": "^3.7.13", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2756,40 +2607,23 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@heroui/breadcrumbs/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/button": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/@heroui/button/-/button-2.2.16.tgz", - "integrity": "sha512-fT+vh8DkjHACeRQQrJK5ZOe2PQXeYBzBFhXpRTkkeRYC+lmjTuQqEhcUp/2JtgUlXN4/PL6ItLmFrARDjRxbvQ==", + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/@heroui/button/-/button-2.2.20.tgz", + "integrity": "sha512-EAh+W518U1Im2/jSTfJqiKxlnQP/I2eSZSdUOVs83HEaFRnUBq7fHw+JxVNroqxxb+A6vzpiCeyX1m4tm53xNA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/ripple": "2.2.12", - "@heroui/shared-utils": "2.1.7", - "@heroui/spinner": "2.2.13", - "@heroui/use-aria-button": "2.2.10", - "@react-aria/button": "3.12.0", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-types/button": "3.11.0", - "@react-types/shared": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/ripple": "2.2.15", + "@heroui/shared-utils": "2.1.9", + "@heroui/spinner": "2.2.17", + "@heroui/use-aria-button": "2.2.14", + "@react-aria/button": "3.13.1", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-types/button": "3.12.1", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -2800,51 +2634,17 @@ } }, "node_modules/@heroui/button/node_modules/@react-aria/button": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.12.0.tgz", - "integrity": "sha512-obnK2vjQQdoOXMIPFy8PZSI8vET+LIeQeh3gjQfRcbtcVE6xT1drDARm6e36cunI2Up99e0yVBBWqqegNqKGQw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.13.1.tgz", + "integrity": "sha512-E49qcbBRgofXYfWbli50bepWVNtQBq7qewL9XsX7nHkwPPUe1IRwJOnWZqYMgwwhUBOXfnsR6/TssiXqZsrJdw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/toolbar": "3.0.0-beta.13", - "@react-aria/utils": "^3.28.0", - "@react-stately/toggle": "^3.8.2", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/button/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/button/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/toolbar": "3.0.0-beta.16", + "@react-aria/utils": "^3.29.0", + "@react-stately/toggle": "^3.8.4", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2853,15 +2653,15 @@ } }, "node_modules/@heroui/button/node_modules/@react-aria/toolbar": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.13.tgz", - "integrity": "sha512-aj5lWdk/yp2Tmuuofu1rdkvhiYPCXihuPFbs+9HHz88kyezM7bkhmQRIf0w47tiPIKUA0UuwJucBjDZfl9EQFw==", + "version": "3.0.0-beta.16", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.16.tgz", + "integrity": "sha512-TnNvtxADalMzs9Et51hWPpGyiHr1dt++UYR7pIo1H7vO+HwXl6uH4HxbFDS5CyV69j2cQlcGrkj13LoWFkBECw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2870,30 +2670,30 @@ } }, "node_modules/@heroui/calendar": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/@heroui/calendar/-/calendar-2.2.16.tgz", - "integrity": "sha512-tDNx2IsivdWiQAP6js1J+lsZp20/mWCkK5vSaVbxB9PYqWtH8REMJa2NF+YSqACCDGqIO0DUvFb+HgoxCDOyhQ==", + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/@heroui/calendar/-/calendar-2.2.20.tgz", + "integrity": "sha512-WJKGeFuZtUgsgVIP9psBw9+S2Fk0dhMzfs3K2OZIODIfTifq7vXzMnEWOYOVqiD/v0oKNvb6uPyIuW18bXWVVg==", "license": "MIT", "dependencies": { - "@heroui/button": "2.2.16", - "@heroui/dom-animation": "2.1.6", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-aria-button": "2.2.10", - "@internationalized/date": "3.7.0", - "@react-aria/calendar": "3.7.1", - "@react-aria/focus": "3.20.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/calendar": "3.7.1", - "@react-stately/utils": "3.10.5", - "@react-types/button": "3.11.0", - "@react-types/calendar": "3.6.1", - "@react-types/shared": "3.28.0", + "@heroui/button": "2.2.20", + "@heroui/dom-animation": "2.1.9", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-aria-button": "2.2.14", + "@internationalized/date": "3.8.1", + "@react-aria/calendar": "3.8.1", + "@react-aria/focus": "3.20.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/calendar": "3.8.1", + "@react-stately/utils": "3.10.6", + "@react-types/button": "3.12.1", + "@react-types/calendar": "3.7.1", + "@react-types/shared": "3.29.1", "@types/lodash.debounce": "^4.0.7", "scroll-into-view-if-needed": "3.0.10" }, @@ -2906,90 +2706,20 @@ } }, "node_modules/@heroui/calendar/node_modules/@react-aria/calendar": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.7.1.tgz", - "integrity": "sha512-0GN2MJNExA5rJbciVdEysmFfmcSEeGfIcFMid1xp82nhJTyWoSpdJG76Q/bLO8ADoBEhRPHsnItyVwKdHMSVsA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.8.1.tgz", + "integrity": "sha512-S931yi8jJ6CgUQJk+h/PEl+V0n1dUYr9n6nKXmZeU3940to4DauqwvmD9sg67hFHJ0QGroHT/s29yIfa5MfQcg==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/utils": "^3.28.0", - "@react-stately/calendar": "^3.7.1", - "@react-types/button": "^3.11.0", - "@react-types/calendar": "^3.6.1", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/calendar/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/calendar/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/calendar/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/calendar/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@internationalized/date": "^3.8.1", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/live-announcer": "^3.4.2", + "@react-aria/utils": "^3.29.0", + "@react-stately/calendar": "^3.8.1", + "@react-types/button": "^3.12.1", + "@react-types/calendar": "^3.7.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -2998,20 +2728,20 @@ } }, "node_modules/@heroui/card": { - "version": "2.2.15", - "resolved": "https://registry.npmjs.org/@heroui/card/-/card-2.2.15.tgz", - "integrity": "sha512-WBW0FaPcjoRpsrLmS7A9i+/LTkC0jY6iEsG1QL7+RtEf/hHkVF9xO8HbsBlPZAEVIotWeZbmP0lbIJUFkYaGsA==", + "version": "2.2.19", + "resolved": "https://registry.npmjs.org/@heroui/card/-/card-2.2.19.tgz", + "integrity": "sha512-WF+9skswUw9N9Qtvi6AfdfPY6dR6+pK+jjbOQr37839pymW767Sz53S1CjVXBO5t2lqJdq+CXcgB1MxmE+8+6w==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/ripple": "2.2.12", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-aria-button": "2.2.10", - "@react-aria/button": "3.12.0", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-types/shared": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/ripple": "2.2.15", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-aria-button": "2.2.14", + "@react-aria/button": "3.13.1", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3022,51 +2752,17 @@ } }, "node_modules/@heroui/card/node_modules/@react-aria/button": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.12.0.tgz", - "integrity": "sha512-obnK2vjQQdoOXMIPFy8PZSI8vET+LIeQeh3gjQfRcbtcVE6xT1drDARm6e36cunI2Up99e0yVBBWqqegNqKGQw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.13.1.tgz", + "integrity": "sha512-E49qcbBRgofXYfWbli50bepWVNtQBq7qewL9XsX7nHkwPPUe1IRwJOnWZqYMgwwhUBOXfnsR6/TssiXqZsrJdw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/toolbar": "3.0.0-beta.13", - "@react-aria/utils": "^3.28.0", - "@react-stately/toggle": "^3.8.2", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/card/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/card/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/toolbar": "3.0.0-beta.16", + "@react-aria/utils": "^3.29.0", + "@react-stately/toggle": "^3.8.4", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -3075,15 +2771,15 @@ } }, "node_modules/@heroui/card/node_modules/@react-aria/toolbar": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.13.tgz", - "integrity": "sha512-aj5lWdk/yp2Tmuuofu1rdkvhiYPCXihuPFbs+9HHz88kyezM7bkhmQRIf0w47tiPIKUA0UuwJucBjDZfl9EQFw==", + "version": "3.0.0-beta.16", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.16.tgz", + "integrity": "sha512-TnNvtxADalMzs9Et51hWPpGyiHr1dt++UYR7pIo1H7vO+HwXl6uH4HxbFDS5CyV69j2cQlcGrkj13LoWFkBECw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -3092,25 +2788,25 @@ } }, "node_modules/@heroui/checkbox": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@heroui/checkbox/-/checkbox-2.3.15.tgz", - "integrity": "sha512-oxTfnGKspPBj+bqoMcuN4WjkmMewCG0Gx7URm0Mn2Of7ZzPWckVIJPMV7Tu0Ek8dubYhHMtGRLkBEeegGDdSTw==", + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/@heroui/checkbox/-/checkbox-2.3.19.tgz", + "integrity": "sha512-TUc4YRsCS1G4YrnheTLdaGNbQZ5F5+arv5afk4NNyQ2TQgcXohWRmlPrjDaluU8vAJKquGr/Bwvsxwu8WhEFrg==", "license": "MIT", "dependencies": { - "@heroui/form": "2.1.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-callback-ref": "2.1.6", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/checkbox": "3.15.2", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/checkbox": "3.6.12", - "@react-stately/toggle": "3.8.2", - "@react-types/checkbox": "3.9.2", - "@react-types/shared": "3.28.0" + "@heroui/form": "2.1.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-callback-ref": "2.1.7", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/checkbox": "3.15.5", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/checkbox": "3.6.14", + "@react-stately/toggle": "3.8.4", + "@react-types/checkbox": "3.9.4", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3120,71 +2816,21 @@ } }, "node_modules/@heroui/checkbox/node_modules/@react-aria/checkbox": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.15.2.tgz", - "integrity": "sha512-vJf91ToLN+BHfJUbulKBxN2POB7XzIb/3whF+fSk6wSld2vtFjQ80SQfz5HktYG/Af5VccxyCg70dp4moLvsTw==", + "version": "3.15.5", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.15.5.tgz", + "integrity": "sha512-b9c76DBSYTdacSogbsvjkdZomTo5yhBNMmR5ufO544HQ718Ry8q8JmVbtmF/+dkZN7KGnBQCltzGLzXH0Vc0Zg==", "license": "Apache-2.0", "dependencies": { - "@react-aria/form": "^3.0.13", - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/toggle": "^3.11.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/checkbox": "^3.6.12", - "@react-stately/form": "^3.1.2", - "@react-stately/toggle": "^3.8.2", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/checkbox/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/checkbox/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/checkbox/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/form": "^3.0.16", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/toggle": "^3.11.3", + "@react-aria/utils": "^3.29.0", + "@react-stately/checkbox": "^3.6.14", + "@react-stately/form": "^3.1.4", + "@react-stately/toggle": "^3.8.4", + "@react-types/checkbox": "^3.9.4", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -3193,18 +2839,18 @@ } }, "node_modules/@heroui/chip": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/chip/-/chip-2.2.12.tgz", - "integrity": "sha512-4wyIrkr4CtsvCgjdLe5v3kov2uQEPBRlJJdlTyRaBsHQ7hLtQaKXKPPmiK6x+2yrzth5PUAyueJF1YsRBxZL1g==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@heroui/chip/-/chip-2.2.16.tgz", + "integrity": "sha512-DpwClZ+CHclOG9b9gOG/zK6c6hfdtBaHw5V09TqF4PP4nujw3WZWufPEL3EGKyItyALD20tKHUqG2lYygi8Zbg==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-types/checkbox": "3.9.2" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-types/checkbox": "3.9.4" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3213,49 +2859,15 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/chip/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/chip/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/code": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/code/-/code-2.2.12.tgz", - "integrity": "sha512-BYA8zmG2arn7FSCxiPC+ehy+TL7967W6i6iXBUIHpkSNAMPr29AZAC4H0i09b0ibxr0dLJWHC3Y/IPdFK8uI6g==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@heroui/code/-/code-2.2.15.tgz", + "integrity": "sha512-PRO82ExPFAHmAshGtK3P26REojIMoR0u8z0LRPcC+PIpO3cYgxhr4PxA4lBusk4NGvoZyYMGd/SE/GmN3+dRNg==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/system-rsc": "2.3.11" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/system-rsc": "2.3.14" }, "peerDependencies": { "@heroui/theme": ">=2.4.6", @@ -3264,21 +2876,21 @@ } }, "node_modules/@heroui/date-input": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@heroui/date-input/-/date-input-2.3.15.tgz", - "integrity": "sha512-x738JoLM6zjldqCbnNzWwQFlO7GeZ/GBCGe5J7bgcx9nGutYXu0DEFydu6trjL7rpH+p9n9VGKjQ241AgS24pg==", + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/@heroui/date-input/-/date-input-2.3.19.tgz", + "integrity": "sha512-UBh57ZsRMCtwtfeICALnP1rCynZ6L8bGMsn6eiGUjR0orQe+yxek+XoOXnWHUtLGw40a1vsyaFumhuHNLrDwaw==", "license": "MIT", "dependencies": { - "@heroui/form": "2.1.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@internationalized/date": "3.7.0", - "@react-aria/datepicker": "3.14.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/utils": "3.28.0", - "@react-stately/datepicker": "3.13.0", - "@react-types/datepicker": "3.11.0", - "@react-types/shared": "3.28.0" + "@heroui/form": "2.1.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@internationalized/date": "3.8.1", + "@react-aria/datepicker": "3.14.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/utils": "3.29.0", + "@react-stately/datepicker": "3.14.1", + "@react-types/datepicker": "3.12.1", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.10", @@ -3288,48 +2900,28 @@ } }, "node_modules/@heroui/date-input/node_modules/@react-aria/datepicker": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.14.0.tgz", - "integrity": "sha512-jRyymreuDy6/BbGrLHiaATGjZZhdnkEUujZuolU+8FXmCKkEQwxZKa9KfjK4UA3h2sytypK1vU7cQjQH4b36cA==", + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.14.3.tgz", + "integrity": "sha512-gDc+bM0EaY3BuIW8IJu/ARJV78bRpOaHp+B08EW4N2qJvc7Bs+EmGLnxMrB6Ny+YxNxsYdQRA/FqiytVYOEk8w==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/focus": "^3.20.0", - "@react-aria/form": "^3.0.13", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/spinbutton": "^3.6.12", - "@react-aria/utils": "^3.28.0", - "@react-stately/datepicker": "^3.13.0", - "@react-stately/form": "^3.1.2", - "@react-types/button": "^3.11.0", - "@react-types/calendar": "^3.6.1", - "@react-types/datepicker": "^3.11.0", - "@react-types/dialog": "^3.5.16", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/date-input/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@internationalized/date": "^3.8.1", + "@internationalized/number": "^3.6.2", + "@internationalized/string": "^3.2.6", + "@react-aria/focus": "^3.20.3", + "@react-aria/form": "^3.0.16", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/spinbutton": "^3.6.15", + "@react-aria/utils": "^3.29.0", + "@react-stately/datepicker": "^3.14.1", + "@react-stately/form": "^3.1.4", + "@react-types/button": "^3.12.1", + "@react-types/calendar": "^3.7.1", + "@react-types/datepicker": "^3.12.1", + "@react-types/dialog": "^3.5.18", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -3338,29 +2930,29 @@ } }, "node_modules/@heroui/date-picker": { - "version": "2.3.16", - "resolved": "https://registry.npmjs.org/@heroui/date-picker/-/date-picker-2.3.16.tgz", - "integrity": "sha512-MXoXcIRjI0MoEOhRQAgqnzv3mg8SAA8Nev/MN56Kacsr/f4kl3DcOFYQqEbwRF6DLqE7KIiX70+WH/DZOZHyeA==", + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/@heroui/date-picker/-/date-picker-2.3.20.tgz", + "integrity": "sha512-YHmE2TrzKyFj4r3s40CIpLkQYgJ3duLhTkYQV6DY26v2+NtavmOKSE3EUqIGgEYKPG1PdbUBYwlqCJlstfTeVg==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/button": "2.2.16", - "@heroui/calendar": "2.2.16", - "@heroui/date-input": "2.3.15", - "@heroui/form": "2.1.15", - "@heroui/popover": "2.3.16", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@internationalized/date": "3.7.0", - "@react-aria/datepicker": "3.14.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/utils": "3.28.0", - "@react-stately/datepicker": "3.13.0", - "@react-stately/overlays": "3.6.14", - "@react-stately/utils": "3.10.5", - "@react-types/datepicker": "3.11.0", - "@react-types/shared": "3.28.0" + "@heroui/aria-utils": "2.2.17", + "@heroui/button": "2.2.20", + "@heroui/calendar": "2.2.20", + "@heroui/date-input": "2.3.19", + "@heroui/form": "2.1.19", + "@heroui/popover": "2.3.20", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@internationalized/date": "3.8.1", + "@react-aria/datepicker": "3.14.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/utils": "3.29.0", + "@react-stately/datepicker": "3.14.1", + "@react-stately/overlays": "3.6.16", + "@react-stately/utils": "3.10.6", + "@react-types/datepicker": "3.12.1", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.10", @@ -3371,48 +2963,28 @@ } }, "node_modules/@heroui/date-picker/node_modules/@react-aria/datepicker": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.14.0.tgz", - "integrity": "sha512-jRyymreuDy6/BbGrLHiaATGjZZhdnkEUujZuolU+8FXmCKkEQwxZKa9KfjK4UA3h2sytypK1vU7cQjQH4b36cA==", + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.14.3.tgz", + "integrity": "sha512-gDc+bM0EaY3BuIW8IJu/ARJV78bRpOaHp+B08EW4N2qJvc7Bs+EmGLnxMrB6Ny+YxNxsYdQRA/FqiytVYOEk8w==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/focus": "^3.20.0", - "@react-aria/form": "^3.0.13", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/spinbutton": "^3.6.12", - "@react-aria/utils": "^3.28.0", - "@react-stately/datepicker": "^3.13.0", - "@react-stately/form": "^3.1.2", - "@react-types/button": "^3.11.0", - "@react-types/calendar": "^3.6.1", - "@react-types/datepicker": "^3.11.0", - "@react-types/dialog": "^3.5.16", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/date-picker/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@internationalized/date": "^3.8.1", + "@internationalized/number": "^3.6.2", + "@internationalized/string": "^3.2.6", + "@react-aria/focus": "^3.20.3", + "@react-aria/form": "^3.0.16", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/spinbutton": "^3.6.15", + "@react-aria/utils": "^3.29.0", + "@react-stately/datepicker": "^3.14.1", + "@react-stately/form": "^3.1.4", + "@react-types/button": "^3.12.1", + "@react-types/calendar": "^3.7.1", + "@react-types/datepicker": "^3.12.1", + "@react-types/dialog": "^3.5.18", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -3421,15 +2993,15 @@ } }, "node_modules/@heroui/divider": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@heroui/divider/-/divider-2.2.11.tgz", - "integrity": "sha512-WMGLY+Eus/vp/hpOzTf3vr4DMTmITKoGxzWscqI9Z5eE7CY48DAv0w++e+fOBdXtVmq3AQBMdV+zCoBm+DA40w==", + "version": "2.2.14", + "resolved": "https://registry.npmjs.org/@heroui/divider/-/divider-2.2.14.tgz", + "integrity": "sha512-PWKbRZSjrxx0TLPj5T7FLVqG5Wlj7pDu1VxHNK3vRWKGpu31IqczraKnRMnG0ljzhpZkhW3aEKkYtDWaZF3LIw==", "license": "MIT", "dependencies": { - "@heroui/react-rsc-utils": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/system-rsc": "2.3.11", - "@react-types/shared": "3.28.0" + "@heroui/react-rsc-utils": "2.1.7", + "@heroui/shared-utils": "2.1.9", + "@heroui/system-rsc": "2.3.14", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/theme": ">=2.4.6", @@ -3438,24 +3010,24 @@ } }, "node_modules/@heroui/dom-animation": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/dom-animation/-/dom-animation-2.1.6.tgz", - "integrity": "sha512-l4xh+y02lmoJVdLR0cjpsa7LjLIvVQCX+w+S2KW6tOoPKmHlyW/8r7h6SqPB4Ua1NZGmRHtlYmw+mw47yqyTjw==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@heroui/dom-animation/-/dom-animation-2.1.9.tgz", + "integrity": "sha512-uqYosEn7nDFWQnpZgLkI4AaaGyOpsHv1lQs8ONsaPdPd6FVJ8vfWw3V5/ofQ+nK4Kb66fU7ujlkx1uGoPxLC1Q==", "license": "MIT", "peerDependencies": { "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1" } }, "node_modules/@heroui/drawer": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/drawer/-/drawer-2.2.13.tgz", - "integrity": "sha512-yKIJvTMczfNxC6QnsS9QioerGpujkuMScxC1iZY/kfnOrgetW+naIHFZgBXerT2YVYSB5gd0e6yArfduW8zhWA==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/drawer/-/drawer-2.2.17.tgz", + "integrity": "sha512-6zTKyDNHw0XcuFoBQBQQao1m3G2IAWTJkLHA891c03a9jARgjATtbYOoqK/MUx0U4Ovb8DR7kH/t71ESnPgrSA==", "license": "MIT", "dependencies": { - "@heroui/framer-utils": "2.1.12", - "@heroui/modal": "2.2.13", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7" + "@heroui/framer-utils": "2.1.16", + "@heroui/modal": "2.2.17", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3465,21 +3037,21 @@ } }, "node_modules/@heroui/dropdown": { - "version": "2.3.16", - "resolved": "https://registry.npmjs.org/@heroui/dropdown/-/dropdown-2.3.16.tgz", - "integrity": "sha512-+iVBn9vaw0hh2WpFMDjlglcb3sFxYqgdg7qa8x1l1/DVzNxIilASLJMw8NcsGHF63OOWveOKX82BMDeAVmFmmA==", + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/@heroui/dropdown/-/dropdown-2.3.20.tgz", + "integrity": "sha512-dbLtE8Ulc0rf18o76AsnNm4w1wmACbT3KKK4cReYlJn/nVWf4vh2z3WdH9BY4X1ogrqkk0KPJXGtFzscf03yXg==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/menu": "2.2.15", - "@heroui/popover": "2.3.16", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/menu": "3.18.0", - "@react-aria/utils": "3.28.0", - "@react-stately/menu": "3.9.2", - "@react-types/menu": "3.9.15" + "@heroui/aria-utils": "2.2.17", + "@heroui/menu": "2.2.19", + "@heroui/popover": "2.3.20", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/menu": "3.18.3", + "@react-aria/utils": "3.29.0", + "@react-stately/menu": "3.9.4", + "@react-types/menu": "3.10.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3489,63 +3061,20 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/dropdown/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/dropdown/node_modules/@react-aria/menu": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.18.0.tgz", - "integrity": "sha512-UvcGwx5mGWpZF/d1cQsvCzt0gG5NKbrgAe9B5pumzMfWyXpbkRB0v90GnUlPShbemLhYmWCnTXlN9ogEdAV1dw==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/overlays": "^3.26.0", - "@react-aria/selection": "^3.23.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/collections": "^3.12.2", - "@react-stately/menu": "^3.9.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/tree": "^3.8.8", - "@react-types/button": "^3.11.0", - "@react-types/menu": "^3.9.15", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/form": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@heroui/form/-/form-2.1.15.tgz", - "integrity": "sha512-dzI9goENLrO5nLovI1T5yJiCxewl3vmTxzqLrrVCMh6SvLKSPyOPAYLER6V36VJ2nJ4Hfm/EiwQyYNa4cmNTCA==", + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/@heroui/form/-/form-2.1.19.tgz", + "integrity": "sha512-Q3w9hQcrqfU8Y2eSJdei4Jg54sgiGtglWD7/LuH5k33gjY9Vjiscxdn3Ll6k+I0VI9JKu7rzRmabE8W3SaRLPg==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/system": "2.4.12", - "@heroui/theme": "2.4.12", - "@react-aria/utils": "3.28.0", - "@react-stately/form": "3.1.2", - "@react-types/form": "3.7.10", - "@react-types/shared": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/system": "2.4.16", + "@heroui/theme": "2.4.16", + "@react-aria/utils": "3.29.0", + "@react-stately/form": "3.1.4", + "@react-types/form": "3.7.12", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3555,14 +3084,14 @@ } }, "node_modules/@heroui/framer-utils": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/@heroui/framer-utils/-/framer-utils-2.1.12.tgz", - "integrity": "sha512-UfHx5NVtXxxEObg1fi4uK+kl+oXoaMkG+zm74pqxLgDan7EuhgICPhCfUTpnZIhmdBlButNRKs1bva4wiG/BCg==", + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@heroui/framer-utils/-/framer-utils-2.1.16.tgz", + "integrity": "sha512-xE6YA2LZ2NEGzqGqOmzunLFwWOjpSo8lIr4Sdg332CRC1bbr7OZ9wkmgo7kqPWtJz4CdxOePIzr2TAghTGlHlA==", "license": "MIT", "dependencies": { - "@heroui/shared-utils": "2.1.7", - "@heroui/system": "2.4.12", - "@heroui/use-measure": "2.1.6" + "@heroui/shared-utils": "2.1.9", + "@heroui/system": "2.4.16", + "@heroui/use-measure": "2.1.7" }, "peerDependencies": { "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", @@ -3571,14 +3100,14 @@ } }, "node_modules/@heroui/image": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@heroui/image/-/image-2.2.10.tgz", - "integrity": "sha512-02v0bJShCwaoXAjfMLGV900HsJ4J5YtW3OHJD/TIGWQzHNYxv7Mls4u2PyfUpk6IDimlZ+fIiEjfV0zR/HY3MA==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@heroui/image/-/image-2.2.12.tgz", + "integrity": "sha512-WJmdp86ibq0XJzi64a/n/c5xEDHNvBD5VU7hinyasRLQBa159Hw4Mab7sueFVBX6ELWj/MIyRb9GK8wz9n3Pwg==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-image": "2.1.7" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-image": "2.1.9" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3588,155 +3117,66 @@ } }, "node_modules/@heroui/input": { - "version": "2.4.16", - "resolved": "https://registry.npmjs.org/@heroui/input/-/input-2.4.16.tgz", - "integrity": "sha512-gSEalFg2usD7SjkevRyulvbJksecW/L9vqZWGHgcm6NpOlt5lGb/b6E2AEuhNFWbrN4pgUmfFUqqmZfFbc4M9Q==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@heroui/input/-/input-2.4.20.tgz", + "integrity": "sha512-uJRI+rrP0T80RAbXELCHPsQUi2nPczLMSGEpkZVzbcLr59KMNvkwHFTTXJHnB1q36YjaK8RtvJJXsjUXTe6SZQ==", "license": "MIT", "dependencies": { - "@heroui/form": "2.1.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/textfield": "3.17.0", - "@react-aria/utils": "3.28.0", - "@react-stately/utils": "3.10.5", - "@react-types/shared": "3.28.0", - "@react-types/textfield": "3.12.0", + "@heroui/form": "2.1.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/textfield": "3.17.3", + "@react-aria/utils": "3.29.0", + "@react-stately/utils": "3.10.6", + "@react-types/shared": "3.29.1", + "@react-types/textfield": "3.12.2", "react-textarea-autosize": "^8.5.3" }, "peerDependencies": { "@heroui/system": ">=2.4.10", - "@heroui/theme": ">=2.4.9", + "@heroui/theme": ">=2.4.12", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/input-otp": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/@heroui/input-otp/-/input-otp-2.1.15.tgz", - "integrity": "sha512-9v4vdLjODy7l5B7/75UOOvuCFnwEC0XcnAJ2/KhW6kMnxSltWaWK3B+vZ3zjYTuT7fHMyYo8DDqnrdYvb0j3BA==", + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/@heroui/input-otp/-/input-otp-2.1.19.tgz", + "integrity": "sha512-XyvwzoAaHnY36vMVrLkVbrHPQLjNRe8o8eT5od3F+DXlosHBseYyzzQTz9Z4qyZySKUqqCW4KRbRnt84SwRE7A==", "license": "MIT", "dependencies": { - "@heroui/form": "2.1.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/form": "3.0.13", - "@react-aria/utils": "3.28.0", - "@react-stately/form": "3.1.2", - "@react-stately/utils": "3.10.5", - "@react-types/textfield": "3.12.0", + "@heroui/form": "2.1.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/form": "3.0.16", + "@react-aria/utils": "3.29.0", + "@react-stately/form": "3.1.4", + "@react-stately/utils": "3.10.6", + "@react-types/textfield": "3.12.2", "input-otp": "1.4.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", - "@heroui/theme": ">=2.4.6", + "@heroui/theme": ">=2.4.13", "react": ">=18", "react-dom": ">=18" } }, - "node_modules/@heroui/input-otp/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/input-otp/node_modules/@react-aria/form": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.13.tgz", - "integrity": "sha512-f7zoFMQYBRWhKFX14rlFjSUDbNAvNMLpWRKVP3O0rUYTxh95iF5tcfUk5+lxWkVfmVj8S4O8du0ccv/ZQjPsYg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/form": "^3.1.2", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/input/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/input/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/input/node_modules/@react-aria/textfield": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.17.0.tgz", - "integrity": "sha512-asvbf0xC17qSQ51OojRELUtbTfVe42YE26KUZ/dtxkj+Ln20nj1F3UWXU3hDCn36hbj3vnJ2Zp8X6aGOfJP0qQ==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/form": "^3.0.13", - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/utils": "^3.28.0", - "@react-stately/form": "^3.1.2", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", - "@react-types/textfield": "^3.12.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/kbd": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/kbd/-/kbd-2.2.12.tgz", - "integrity": "sha512-SlP1qy3ECidAl0ykXMkp4aevI3xCqf8kUegbOpYZ+qGUq76LJ3y3/mFotzhKJ67fki0crz3MjTAh5a0TSkMUjA==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@heroui/kbd/-/kbd-2.2.16.tgz", + "integrity": "sha512-I/q+ZB/8P+rqGV2AM/f6wicUEq+aMdMZVB1BOPmuwNTBBv2qF/UddoxSdCPYWtZi512BU6TZQfxjexVDpREeiA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/system-rsc": "2.3.11", - "@react-aria/utils": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/system-rsc": "2.3.14", + "@react-aria/utils": "3.29.0" }, "peerDependencies": { "@heroui/theme": ">=2.4.6", @@ -3745,19 +3185,19 @@ } }, "node_modules/@heroui/link": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/link/-/link-2.2.13.tgz", - "integrity": "sha512-muv39Lc0ToPAbhkxPb5YHrOWBu7EzHVsLsBdmmR47ejyczulxmBJFBia3AZx/Lp+n36ceTcuZ5zqdc8hmMO+Vg==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/link/-/link-2.2.17.tgz", + "integrity": "sha512-v7if0/+76qLQs5Oj05U2a7BJVFHfQVG+SrxzGtQsqlLMVSN8lUhCl2YoJgESpXXExUfnUGz1t7mjua5op8SMAA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-aria-link": "2.2.11", - "@react-aria/focus": "3.20.0", - "@react-aria/link": "3.7.9", - "@react-aria/utils": "3.28.0", - "@react-types/link": "3.5.11" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-aria-link": "2.2.15", + "@react-aria/focus": "3.20.3", + "@react-aria/link": "3.8.1", + "@react-aria/utils": "3.29.0", + "@react-types/link": "3.6.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3766,58 +3206,24 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/link/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/link/node_modules/@react-aria/link": { - "version": "3.7.9", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.9.tgz", - "integrity": "sha512-2LE3p5Gqp1Tl/3JF4CmeJT3RsdDBawBaIMlqiOT7t505z1TZI8ygHHq5FFok8FMwpy2yxpqRNW9jDa3gZj575w==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/link": "^3.5.11", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/listbox": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@heroui/listbox/-/listbox-2.3.15.tgz", - "integrity": "sha512-BLxvRtu68RWx6wJpJxbM5K7HjuZrRTezkUUQWbLoF1aygOsy1vX1b9gWvZq8+1AHjf7AyyRQ8z6dNqvhun7i8Q==", + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/@heroui/listbox/-/listbox-2.3.19.tgz", + "integrity": "sha512-euKI1562mVYwbrHwVE+02uhpPEJzdmw9cncT646ZM9oK0k7i1yoinqIKeAUWHTMN7EXVQkrmUZPPthgbFKBiHQ==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/divider": "2.2.11", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-is-mobile": "2.2.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/listbox": "3.14.1", - "@react-aria/utils": "3.28.0", - "@react-stately/list": "3.12.0", - "@react-types/menu": "3.9.15", - "@react-types/shared": "3.28.0", + "@heroui/aria-utils": "2.2.17", + "@heroui/divider": "2.2.14", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-is-mobile": "2.2.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/listbox": "3.14.4", + "@react-aria/utils": "3.29.0", + "@react-stately/list": "3.12.2", + "@react-types/menu": "3.10.1", + "@react-types/shared": "3.29.1", "@tanstack/react-virtual": "3.11.3" }, "peerDependencies": { @@ -3827,107 +3233,25 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/listbox/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/listbox/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/listbox/node_modules/@react-aria/listbox": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.14.1.tgz", - "integrity": "sha512-4uiY7HG4ekF37wNX5hHEMhshkXrU1U4593LVNYjUZHizcB1ZahXzo/F0T3qpeNo+/j89ls8qhDHx/bGIWNj1aQ==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/selection": "^3.23.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/collections": "^3.12.2", - "@react-stately/list": "^3.12.0", - "@react-types/listbox": "^3.5.5", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/listbox/node_modules/@tanstack/react-virtual": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.3.tgz", - "integrity": "sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==", - "license": "MIT", - "dependencies": { - "@tanstack/virtual-core": "3.11.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@heroui/listbox/node_modules/@tanstack/virtual-core": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.3.tgz", - "integrity": "sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, "node_modules/@heroui/menu": { - "version": "2.2.15", - "resolved": "https://registry.npmjs.org/@heroui/menu/-/menu-2.2.15.tgz", - "integrity": "sha512-jOnr6CzTSyC4cfoVohstIQoOEIY6to0eR39e2Zzxy7Ry4mmo5O06CcqET4LPHTbbPG9wZpc5IAsLCnEqI8oygQ==", + "version": "2.2.19", + "resolved": "https://registry.npmjs.org/@heroui/menu/-/menu-2.2.19.tgz", + "integrity": "sha512-n/OUf7/SLovqsc+kPpkJ7uenYXAXgIy+fe9KRgZ3ALIx9261HQ2pFfGLNzNQT/DFRlkdiXsua29hblsq1RVoHg==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/divider": "2.2.11", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-is-mobile": "2.2.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/menu": "3.18.0", - "@react-aria/utils": "3.28.0", - "@react-stately/menu": "3.9.2", - "@react-stately/tree": "3.8.8", - "@react-types/menu": "3.9.15", - "@react-types/shared": "3.28.0" + "@heroui/aria-utils": "2.2.17", + "@heroui/divider": "2.2.14", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-is-mobile": "2.2.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/menu": "3.18.3", + "@react-aria/utils": "3.29.0", + "@react-stately/menu": "3.9.4", + "@react-stately/tree": "3.8.10", + "@react-types/menu": "3.10.1", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -3936,88 +3260,28 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/menu/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/menu/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/menu/node_modules/@react-aria/menu": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.18.0.tgz", - "integrity": "sha512-UvcGwx5mGWpZF/d1cQsvCzt0gG5NKbrgAe9B5pumzMfWyXpbkRB0v90GnUlPShbemLhYmWCnTXlN9ogEdAV1dw==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/overlays": "^3.26.0", - "@react-aria/selection": "^3.23.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/collections": "^3.12.2", - "@react-stately/menu": "^3.9.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/tree": "^3.8.8", - "@react-types/button": "^3.11.0", - "@react-types/menu": "^3.9.15", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/modal": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/modal/-/modal-2.2.13.tgz", - "integrity": "sha512-HdzKe4LyXqtv/xyKbKO4dvDTVZzW3PvN+JE2//diLA3HRjhKhi0nQ34AZqfXBt1MofjrUlztec6fFVTb4k9BKg==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/modal/-/modal-2.2.17.tgz", + "integrity": "sha512-IWlYvtxvCGbGKrd6pjV/RDOIACibd7o/mJVDBImmvVe1+nA88exLDI+NdZAlQqjcBooDd7KyU1S9MTXio6aRRw==", "license": "MIT", "dependencies": { - "@heroui/dom-animation": "2.1.6", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-aria-button": "2.2.10", - "@heroui/use-aria-modal-overlay": "2.2.9", - "@heroui/use-disclosure": "2.2.8", - "@heroui/use-draggable": "2.1.8", - "@react-aria/dialog": "3.5.22", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/overlays": "3.26.0", - "@react-aria/utils": "3.28.0", - "@react-stately/overlays": "3.6.14", - "@react-types/overlays": "3.8.13" + "@heroui/dom-animation": "2.1.9", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-aria-button": "2.2.14", + "@heroui/use-aria-modal-overlay": "2.2.13", + "@heroui/use-disclosure": "2.2.12", + "@heroui/use-draggable": "2.1.12", + "@react-aria/dialog": "3.5.25", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/overlays": "3.27.1", + "@react-aria/utils": "3.29.0", + "@react-stately/overlays": "3.6.16", + "@react-types/overlays": "3.8.15" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4028,73 +3292,16 @@ } }, "node_modules/@heroui/modal/node_modules/@react-aria/dialog": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.22.tgz", - "integrity": "sha512-mW1cnfy+mQUKXmyXD27z4S8Yvs1HCmum15yy76UNQv6KVFO26zVZ12jkT7pDeDl3YpR6hCeT+kD47j1lDDX/qg==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.25.tgz", + "integrity": "sha512-hVP/TvjUnPgckg4qibc/TDH54O+BzW95hxApxBw1INyViRm95PxdCQDqBdQ/ZW7Gv6J2aUBCGihX7kINPf70ow==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/overlays": "^3.26.0", - "@react-aria/utils": "^3.28.0", - "@react-types/dialog": "^3.5.16", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/modal/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/modal/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/modal/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/overlays": "^3.27.1", + "@react-aria/utils": "^3.29.0", + "@react-types/dialog": "^3.5.18", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4103,23 +3310,23 @@ } }, "node_modules/@heroui/navbar": { - "version": "2.2.14", - "resolved": "https://registry.npmjs.org/@heroui/navbar/-/navbar-2.2.14.tgz", - "integrity": "sha512-e18GHX1cgOLWZ1LhCxcM8EFRfwrWDCVS1GS/Y28qQskTDL0EsqMmdGHeEDwSrg0diCoPQrh6vnUh+9UlWd1l1g==", + "version": "2.2.18", + "resolved": "https://registry.npmjs.org/@heroui/navbar/-/navbar-2.2.18.tgz", + "integrity": "sha512-g3m0u0WHrb2AnIBI6kjmUIpgENjp5Jt8vCQ62kWbDv2Hm5fSTdTCcY56h3vc/P4yBBng++pFlUtIp2AECU76wA==", "license": "MIT", "dependencies": { - "@heroui/dom-animation": "2.1.6", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-scroll-position": "2.1.6", - "@react-aria/button": "3.12.0", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/overlays": "3.26.0", - "@react-aria/utils": "3.28.0", - "@react-stately/toggle": "3.8.2", - "@react-stately/utils": "3.10.5" + "@heroui/dom-animation": "2.1.9", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-scroll-position": "2.1.7", + "@react-aria/button": "3.13.1", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/overlays": "3.27.1", + "@react-aria/utils": "3.29.0", + "@react-stately/toggle": "3.8.4", + "@react-stately/utils": "3.10.6" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4130,74 +3337,17 @@ } }, "node_modules/@heroui/navbar/node_modules/@react-aria/button": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.12.0.tgz", - "integrity": "sha512-obnK2vjQQdoOXMIPFy8PZSI8vET+LIeQeh3gjQfRcbtcVE6xT1drDARm6e36cunI2Up99e0yVBBWqqegNqKGQw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.13.1.tgz", + "integrity": "sha512-E49qcbBRgofXYfWbli50bepWVNtQBq7qewL9XsX7nHkwPPUe1IRwJOnWZqYMgwwhUBOXfnsR6/TssiXqZsrJdw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/toolbar": "3.0.0-beta.13", - "@react-aria/utils": "^3.28.0", - "@react-stately/toggle": "^3.8.2", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/navbar/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/navbar/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/navbar/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/toolbar": "3.0.0-beta.16", + "@react-aria/utils": "^3.29.0", + "@react-stately/toggle": "^3.8.4", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4206,15 +3356,15 @@ } }, "node_modules/@heroui/navbar/node_modules/@react-aria/toolbar": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.13.tgz", - "integrity": "sha512-aj5lWdk/yp2Tmuuofu1rdkvhiYPCXihuPFbs+9HHz88kyezM7bkhmQRIf0w47tiPIKUA0UuwJucBjDZfl9EQFw==", + "version": "3.0.0-beta.16", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.16.tgz", + "integrity": "sha512-TnNvtxADalMzs9Et51hWPpGyiHr1dt++UYR7pIo1H7vO+HwXl6uH4HxbFDS5CyV69j2cQlcGrkj13LoWFkBECw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4223,27 +3373,27 @@ } }, "node_modules/@heroui/number-input": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@heroui/number-input/-/number-input-2.0.6.tgz", - "integrity": "sha512-dU9peokDjJ1dVJFv4VgD6nOrt4lSba7snCYkersil6JEvb08RVP3w8ddoay6LCLUz8CfnpE8SemvHpZ/ATGyiQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@heroui/number-input/-/number-input-2.0.10.tgz", + "integrity": "sha512-gDIyK5lSy/VGIr2ZBni28nIKeVHZJcI9xR+li6dySzvlL1htrzvEzTRY6rcgya/ojycdYggqa89jsYJ5fsPCRA==", "license": "MIT", "dependencies": { - "@heroui/button": "2.2.16", - "@heroui/form": "2.1.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/focus": "3.20.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/numberfield": "3.11.11", - "@react-aria/utils": "3.28.0", - "@react-stately/numberfield": "3.9.10", - "@react-stately/utils": "3.10.5", - "@react-types/button": "3.11.0", - "@react-types/numberfield": "3.8.9", - "@react-types/shared": "3.28.0" + "@heroui/button": "2.2.20", + "@heroui/form": "2.1.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/focus": "3.20.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/numberfield": "3.11.14", + "@react-aria/utils": "3.29.0", + "@react-stately/numberfield": "3.9.12", + "@react-stately/utils": "3.10.6", + "@react-types/button": "3.12.1", + "@react-types/numberfield": "3.8.11", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.10", @@ -4252,75 +3402,21 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/number-input/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/number-input/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/number-input/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/pagination": { - "version": "2.2.14", - "resolved": "https://registry.npmjs.org/@heroui/pagination/-/pagination-2.2.14.tgz", - "integrity": "sha512-QjZwCtMK9l8KjCnjEppbTHVRoUXz6zCBfSMgFLJ8cEuiDTzNQqmKe1H0q6dzzb5wbbWSQlAe8SX+nuNFQ1SJXw==", + "version": "2.2.18", + "resolved": "https://registry.npmjs.org/@heroui/pagination/-/pagination-2.2.18.tgz", + "integrity": "sha512-Bw5UcMqaQS1YDHWhnCHT/JzeA2kH8mzCr0rMnV82dYJgw9ZOBCXiINueJ9IJOpANbDXdNrMsR33oPTLWaDTLPA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-intersection-observer": "2.2.8", - "@heroui/use-pagination": "2.2.9", - "@react-aria/focus": "3.20.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-intersection-observer": "2.2.12", + "@heroui/use-pagination": "2.2.13", + "@react-aria/focus": "3.20.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", "scroll-into-view-if-needed": "3.0.10" }, "peerDependencies": { @@ -4330,82 +3426,28 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/pagination/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/pagination/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/pagination/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/popover": { - "version": "2.3.16", - "resolved": "https://registry.npmjs.org/@heroui/popover/-/popover-2.3.16.tgz", - "integrity": "sha512-cR6x4i9mxfJ9mYQFc73GrUTeDXakQV0KnFT4Wa5494aHjs9tdf4C4A55BgXkYXvY+niCs6C0iJQatJN1yOfrVQ==", + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/@heroui/popover/-/popover-2.3.20.tgz", + "integrity": "sha512-XfiKucInmsXfW277bZ9ypoYUPKMBn+SQU7oUre54KwEUH0J93B58dSjxYKnS/NLKac9CPk244XwAyBlFJROKZA==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/button": "2.2.16", - "@heroui/dom-animation": "2.1.6", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-aria-button": "2.2.10", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/dialog": "3.5.22", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/overlays": "3.26.0", - "@react-aria/utils": "3.28.0", - "@react-stately/overlays": "3.6.14", - "@react-types/button": "3.11.0", - "@react-types/overlays": "3.8.13" + "@heroui/aria-utils": "2.2.17", + "@heroui/button": "2.2.20", + "@heroui/dom-animation": "2.1.9", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-aria-button": "2.2.14", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/dialog": "3.5.25", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/overlays": "3.27.1", + "@react-aria/utils": "3.29.0", + "@react-stately/overlays": "3.6.16", + "@react-types/button": "3.12.1", + "@react-types/overlays": "3.8.15" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4416,73 +3458,16 @@ } }, "node_modules/@heroui/popover/node_modules/@react-aria/dialog": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.22.tgz", - "integrity": "sha512-mW1cnfy+mQUKXmyXD27z4S8Yvs1HCmum15yy76UNQv6KVFO26zVZ12jkT7pDeDl3YpR6hCeT+kD47j1lDDX/qg==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.25.tgz", + "integrity": "sha512-hVP/TvjUnPgckg4qibc/TDH54O+BzW95hxApxBw1INyViRm95PxdCQDqBdQ/ZW7Gv6J2aUBCGihX7kINPf70ow==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/overlays": "^3.26.0", - "@react-aria/utils": "^3.28.0", - "@react-types/dialog": "^3.5.16", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/popover/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/popover/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/popover/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/overlays": "^3.27.1", + "@react-aria/utils": "^3.29.0", + "@react-types/dialog": "^3.5.18", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4491,18 +3476,18 @@ } }, "node_modules/@heroui/progress": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/progress/-/progress-2.2.12.tgz", - "integrity": "sha512-9Fm1wU8Aad+H3HLx+aW8JBx0tp5c9/w6EkCO6IxG2KMKjUc4eUzmOziGs1FbvGhErgiXFXgYFdKug2VnY60PTA==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@heroui/progress/-/progress-2.2.16.tgz", + "integrity": "sha512-LFcu2OvFedG82rR5gY69wUJQ5/zByFNQT/puxLukJTvnELbjdghpif8XomKWmgBBPYHBjZSWrpq+Rj+s9OkpIQ==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-is-mounted": "2.1.6", - "@react-aria/i18n": "3.12.6", - "@react-aria/progress": "3.4.20", - "@react-aria/utils": "3.28.0", - "@react-types/progress": "3.5.10" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-is-mounted": "2.1.7", + "@react-aria/i18n": "3.12.9", + "@react-aria/progress": "3.4.23", + "@react-aria/utils": "3.29.0", + "@react-types/progress": "3.5.12" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4511,37 +3496,17 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/progress/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/progress/node_modules/@react-aria/progress": { - "version": "3.4.20", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.20.tgz", - "integrity": "sha512-N3X8R5G+/CPMnRqNZ1f68t2d5nGUqJH9GDw67tBUzr2Bti/0hcC6euGTOZWAQw1EDX8rZdkLY7qM7n9sX9GTJQ==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.23.tgz", + "integrity": "sha512-uSQBVY64k+CCey82U67KyWnjAfuuHF0fG6y76kIB8GHI8tGfd1NkXo4ioaxiY0SS+BYGqwqJYYMUzQMpOBTN1A==", "license": "Apache-2.0", "dependencies": { - "@react-aria/i18n": "^3.12.6", - "@react-aria/label": "^3.7.15", - "@react-aria/utils": "^3.28.0", - "@react-types/progress": "^3.5.10", - "@react-types/shared": "^3.28.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/label": "^3.7.18", + "@react-aria/utils": "^3.29.0", + "@react-types/progress": "^3.5.12", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4550,22 +3515,22 @@ } }, "node_modules/@heroui/radio": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@heroui/radio/-/radio-2.3.15.tgz", - "integrity": "sha512-rFUTWwapuB3prIl8z5v9TXlQ5hQYJO3FZMIELYh2H81G5UNghoPDyfUhoDBqWUuX6lHuR/cfzTaB1YwKWGGddw==", + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/@heroui/radio/-/radio-2.3.19.tgz", + "integrity": "sha512-MBEZkR+aHPiwNuPFdynRiGe4MzGwtVexueE+XgCkQ6hGAj0R8Y27WcqcLOuFaeR94l8nswjkkTx0CwHwSEZXJw==", "license": "MIT", "dependencies": { - "@heroui/form": "2.1.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/radio": "3.11.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/radio": "3.10.11", - "@react-types/radio": "3.8.7", - "@react-types/shared": "3.28.0" + "@heroui/form": "2.1.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/radio": "3.11.3", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/radio": "3.10.13", + "@react-types/radio": "3.8.9", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4574,71 +3539,21 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/radio/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/radio/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/radio/node_modules/@react-aria/radio": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.11.0.tgz", - "integrity": "sha512-twaJlT4prn1jSK9Wq5JDX+ywQ6hVnt8eea5cwe33bU87aQxCoz1PZAp5/cqEA8CT7jJUCM3wPQ8eBRtpHnjYNQ==", + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.11.3.tgz", + "integrity": "sha512-o10G8RUuHnAGZYzkc5PQw7mj4LMZqmGkoihDeHF2NDa9h44Ce5oeCPwRvCKYbumZDOyDY15ZIZhTUzjHt2w6fA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/form": "^3.0.13", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/utils": "^3.28.0", - "@react-stately/radio": "^3.10.11", - "@react-types/radio": "^3.8.7", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/radio/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/form": "^3.0.16", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/utils": "^3.29.0", + "@react-stately/radio": "^3.10.13", + "@react-types/radio": "^3.8.9", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -4647,61 +3562,61 @@ } }, "node_modules/@heroui/react": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/@heroui/react/-/react-2.7.5.tgz", - "integrity": "sha512-NbiX+31sijVZDQ/c6+QS/R9j2rUyF1UTYSQhx5pIuKzs/FscwXSZ8ax5jTe6rc9llJggKjpxuyT4Yy9p01Ld/A==", + "version": "2.7.9", + "resolved": "https://registry.npmjs.org/@heroui/react/-/react-2.7.9.tgz", + "integrity": "sha512-9CU4EKxj5DiGbqaoxDqpxcnMQs1eDxgFYNma1jch048xEFAod5B7MnlFGBSSkH1ngzgX3N4ONSyC85b6CdVsww==", "license": "MIT", "dependencies": { - "@heroui/accordion": "2.2.13", - "@heroui/alert": "2.2.16", - "@heroui/autocomplete": "2.3.17", - "@heroui/avatar": "2.2.12", - "@heroui/badge": "2.2.10", - "@heroui/breadcrumbs": "2.2.12", - "@heroui/button": "2.2.16", - "@heroui/calendar": "2.2.16", - "@heroui/card": "2.2.15", - "@heroui/checkbox": "2.3.15", - "@heroui/chip": "2.2.12", - "@heroui/code": "2.2.12", - "@heroui/date-input": "2.3.15", - "@heroui/date-picker": "2.3.16", - "@heroui/divider": "2.2.11", - "@heroui/drawer": "2.2.13", - "@heroui/dropdown": "2.3.16", - "@heroui/form": "2.1.15", - "@heroui/framer-utils": "2.1.12", - "@heroui/image": "2.2.10", - "@heroui/input": "2.4.16", - "@heroui/input-otp": "2.1.15", - "@heroui/kbd": "2.2.12", - "@heroui/link": "2.2.13", - "@heroui/listbox": "2.3.15", - "@heroui/menu": "2.2.15", - "@heroui/modal": "2.2.13", - "@heroui/navbar": "2.2.14", - "@heroui/number-input": "2.0.6", - "@heroui/pagination": "2.2.14", - "@heroui/popover": "2.3.16", - "@heroui/progress": "2.2.12", - "@heroui/radio": "2.3.15", - "@heroui/ripple": "2.2.12", - "@heroui/scroll-shadow": "2.3.10", - "@heroui/select": "2.4.16", - "@heroui/skeleton": "2.2.10", - "@heroui/slider": "2.4.13", - "@heroui/snippet": "2.2.17", - "@heroui/spacer": "2.2.12", - "@heroui/spinner": "2.2.13", - "@heroui/switch": "2.2.14", - "@heroui/system": "2.4.12", - "@heroui/table": "2.2.15", - "@heroui/tabs": "2.2.13", - "@heroui/theme": "2.4.12", - "@heroui/toast": "2.0.6", - "@heroui/tooltip": "2.2.13", - "@heroui/user": "2.2.12", - "@react-aria/visually-hidden": "3.8.20" + "@heroui/accordion": "2.2.17", + "@heroui/alert": "2.2.20", + "@heroui/autocomplete": "2.3.21", + "@heroui/avatar": "2.2.16", + "@heroui/badge": "2.2.12", + "@heroui/breadcrumbs": "2.2.16", + "@heroui/button": "2.2.20", + "@heroui/calendar": "2.2.20", + "@heroui/card": "2.2.19", + "@heroui/checkbox": "2.3.19", + "@heroui/chip": "2.2.16", + "@heroui/code": "2.2.15", + "@heroui/date-input": "2.3.19", + "@heroui/date-picker": "2.3.20", + "@heroui/divider": "2.2.14", + "@heroui/drawer": "2.2.17", + "@heroui/dropdown": "2.3.20", + "@heroui/form": "2.1.19", + "@heroui/framer-utils": "2.1.16", + "@heroui/image": "2.2.12", + "@heroui/input": "2.4.20", + "@heroui/input-otp": "2.1.19", + "@heroui/kbd": "2.2.16", + "@heroui/link": "2.2.17", + "@heroui/listbox": "2.3.19", + "@heroui/menu": "2.2.19", + "@heroui/modal": "2.2.17", + "@heroui/navbar": "2.2.18", + "@heroui/number-input": "2.0.10", + "@heroui/pagination": "2.2.18", + "@heroui/popover": "2.3.20", + "@heroui/progress": "2.2.16", + "@heroui/radio": "2.3.19", + "@heroui/ripple": "2.2.15", + "@heroui/scroll-shadow": "2.3.13", + "@heroui/select": "2.4.20", + "@heroui/skeleton": "2.2.12", + "@heroui/slider": "2.4.17", + "@heroui/snippet": "2.2.21", + "@heroui/spacer": "2.2.15", + "@heroui/spinner": "2.2.17", + "@heroui/switch": "2.2.18", + "@heroui/system": "2.4.16", + "@heroui/table": "2.2.19", + "@heroui/tabs": "2.2.17", + "@heroui/theme": "2.4.16", + "@heroui/toast": "2.0.10", + "@heroui/tooltip": "2.2.17", + "@heroui/user": "2.2.16", + "@react-aria/visually-hidden": "3.8.23" }, "peerDependencies": { "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", @@ -4710,52 +3625,36 @@ } }, "node_modules/@heroui/react-rsc-utils": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/react-rsc-utils/-/react-rsc-utils-2.1.6.tgz", - "integrity": "sha512-slBWi9g3HdnSNRhoedDhXFybaab5MveAeECzQoj4oJrIlmiezyeZWRKbWR8li2tiZtvBoEr0Xpu/A8hdni15dQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/react-rsc-utils/-/react-rsc-utils-2.1.7.tgz", + "integrity": "sha512-NYKKOLs+KHA8v0+PxkkhVXxTD0WNvC4QMlMjUVshzpWhjnOHIrtXjAtqO6XezWmiKNKY76FAjnMZP+Be5+j5uw==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/react-utils": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@heroui/react-utils/-/react-utils-2.1.8.tgz", - "integrity": "sha512-ET8sQaqfAWEviuZfatSYXBzyD0PpzuIK2YQkijla0TmF0sHJ3Yl4YQ6DYleWAaIJEWW1u0HgUPrdIjVGjWyKVg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@heroui/react-utils/-/react-utils-2.1.10.tgz", + "integrity": "sha512-Wj3BSQnNFrDzDnN44vYEwTScMpdbylbZwO8UxIY02AoQCBD5QW7Wf0r2FVlrsrjPjMOVeogwlVvCBYvZz5hHnQ==", "license": "MIT", "dependencies": { - "@heroui/react-rsc-utils": "2.1.6", - "@heroui/shared-utils": "2.1.7" + "@heroui/react-rsc-utils": "2.1.7", + "@heroui/shared-utils": "2.1.9" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/react/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/ripple": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/ripple/-/ripple-2.2.12.tgz", - "integrity": "sha512-5hKlJfl05rtp/ABhmsJ/qqQjh9TgzyvBdeuvWf0K3PJVIMSp+LJly86mwlEzHEbbBwAJvdq9jxd3+R54ZMaQRw==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@heroui/ripple/-/ripple-2.2.15.tgz", + "integrity": "sha512-akIT/wvatGeyZKyLiYVMjUjzM04v2hQ6zTUjijU3G3MfUq8I56LHNvqdbTgbibMnd7d8+tsPE+x7B6iQWxAQTQ==", "license": "MIT", "dependencies": { - "@heroui/dom-animation": "2.1.6", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7" + "@heroui/dom-animation": "2.1.9", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4766,14 +3665,14 @@ } }, "node_modules/@heroui/scroll-shadow": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@heroui/scroll-shadow/-/scroll-shadow-2.3.10.tgz", - "integrity": "sha512-l10qKwQLWxW0l94SNxh+z8UnzgWlhTmvNRezrjXZZFhv4EKgv8u1f/E0HsLTy/g8KgPU0ebGWQmbhdqfMyiqOg==", + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@heroui/scroll-shadow/-/scroll-shadow-2.3.13.tgz", + "integrity": "sha512-RfYfVewf6UR4vr4sIPI2NaNoyK5lLgJwdWNGufE1Km7INelXf3BVdVKLW/Qlq/cES+B4TV3gq5Nto8aen3R1Sg==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-data-scroll-overflow": "2.2.7" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-data-scroll-overflow": "2.2.10" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4783,181 +3682,64 @@ } }, "node_modules/@heroui/select": { - "version": "2.4.16", - "resolved": "https://registry.npmjs.org/@heroui/select/-/select-2.4.16.tgz", - "integrity": "sha512-CoCCNX6p4h3BrMp8RDD6pwYLpdXwm1wWdM7QCmocWpzSZqMVJwNdM4AGXqcsT4sAdeA27XyoZsiipiMUUkE+Hw==", + "version": "2.4.20", + "resolved": "https://registry.npmjs.org/@heroui/select/-/select-2.4.20.tgz", + "integrity": "sha512-sbCwHNBW+zaM0416zL9xBPrNFaGscrNT4ItKZB1A/xELDr5eSvVlQA/uJsivvEzH864ic+rAFEQSVwHU9kz+hg==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/form": "2.1.15", - "@heroui/listbox": "2.3.15", - "@heroui/popover": "2.3.16", - "@heroui/react-utils": "2.1.8", - "@heroui/scroll-shadow": "2.3.10", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/spinner": "2.2.13", - "@heroui/use-aria-button": "2.2.10", - "@heroui/use-aria-multiselect": "2.4.9", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/focus": "3.20.0", - "@react-aria/form": "3.0.13", - "@react-aria/interactions": "3.24.0", - "@react-aria/overlays": "3.26.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-types/shared": "3.28.0", + "@heroui/aria-utils": "2.2.17", + "@heroui/form": "2.1.19", + "@heroui/listbox": "2.3.19", + "@heroui/popover": "2.3.20", + "@heroui/react-utils": "2.1.10", + "@heroui/scroll-shadow": "2.3.13", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/spinner": "2.2.17", + "@heroui/use-aria-button": "2.2.14", + "@heroui/use-aria-multiselect": "2.4.13", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/focus": "3.20.3", + "@react-aria/form": "3.0.16", + "@react-aria/interactions": "3.25.1", + "@react-aria/overlays": "3.27.1", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-types/shared": "3.29.1", "@tanstack/react-virtual": "3.11.3" }, "peerDependencies": { "@heroui/system": ">=2.4.10", - "@heroui/theme": ">=2.4.9", + "@heroui/theme": ">=2.4.12", "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/select/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/select/node_modules/@react-aria/form": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.13.tgz", - "integrity": "sha512-f7zoFMQYBRWhKFX14rlFjSUDbNAvNMLpWRKVP3O0rUYTxh95iF5tcfUk5+lxWkVfmVj8S4O8du0ccv/ZQjPsYg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/form": "^3.1.2", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/select/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/select/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/select/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/select/node_modules/@tanstack/react-virtual": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.3.tgz", - "integrity": "sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==", - "license": "MIT", - "dependencies": { - "@tanstack/virtual-core": "3.11.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@heroui/select/node_modules/@tanstack/virtual-core": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.3.tgz", - "integrity": "sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, "node_modules/@heroui/shared-icons": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/shared-icons/-/shared-icons-2.1.6.tgz", - "integrity": "sha512-4Gey+FJF4XBlMw5p9D2geOEAED8xCxuksurWKUz7eAoAivRRsZJf9wwUsKvNfrmboBUoytdxpUDbVgnckx/G8A==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@heroui/shared-icons/-/shared-icons-2.1.8.tgz", + "integrity": "sha512-97/i6yTl2fSh5jKp8mIig8de8AsP+I/7/AkatLQ1FyxxkabERSWisTXrgdQrfUBimXSNujXMj1tN1vt8kt1zsQ==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/shared-utils": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@heroui/shared-utils/-/shared-utils-2.1.7.tgz", - "integrity": "sha512-1nx7y41P+Bsca7nDC+QFajAoFhSRGvjKhdFeopMQNTvU95L42PD7B0ThjcOretvQD0Ye2TsAEQInwsSgZ6kK/g==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@heroui/shared-utils/-/shared-utils-2.1.9.tgz", + "integrity": "sha512-mM/Ep914cYMbw3T/b6+6loYhuNfzDaph76mzw/oIS05gw1Dhp9luCziSiIhqDGgzYck2d74oWTZlahyCsxf47w==", "hasInstallScript": true, "license": "MIT" }, "node_modules/@heroui/skeleton": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@heroui/skeleton/-/skeleton-2.2.10.tgz", - "integrity": "sha512-6nv+Efzi3DBrVCVTY1CC8InaiYdmztPjmw/ytjGEm1rJNpJCK9HOgKSUVuz6dncLsIsB77toMfE+2s53Yrq9Yg==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@heroui/skeleton/-/skeleton-2.2.12.tgz", + "integrity": "sha512-HlRKMVLgMAfe9wX7BPhTN84Xu+SdJWCtmxLzBWUZVNpLZdjnu2lLOcbkzwo+84tSjsxbLP4tqBW8hdJnxTQVVA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4967,21 +3749,21 @@ } }, "node_modules/@heroui/slider": { - "version": "2.4.13", - "resolved": "https://registry.npmjs.org/@heroui/slider/-/slider-2.4.13.tgz", - "integrity": "sha512-RriCm/mgbRPLFNBykxJB8BNBRfJJrajSB434rA/jgc5VY388MgvpK3XbIim7NZG9Q2wIj4NH/iQwJmypa+6anw==", + "version": "2.4.17", + "resolved": "https://registry.npmjs.org/@heroui/slider/-/slider-2.4.17.tgz", + "integrity": "sha512-PUv1Yz4xX5WTZkDJKCxjU8bfHmrIj1qgGqy+4e0xiu7sGYZiywtNx1ahlmjlDsq/I59egaGm97iIYJ9CKBKX2Q==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/tooltip": "2.2.13", - "@react-aria/focus": "3.20.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/slider": "3.7.16", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/slider": "3.6.2" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/tooltip": "2.2.17", + "@react-aria/focus": "3.20.3", + "@react-aria/i18n": "3.12.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/slider": "3.7.19", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/slider": "3.6.4" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -4990,89 +3772,19 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/slider/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/slider/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/slider/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/slider/node_modules/@react-aria/slider": { - "version": "3.7.16", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.16.tgz", - "integrity": "sha512-SBcEbQWv1gDxx6TsNPVMOA4hNAsvPgMC9MuQQrXR1azIDlraU7A8tIMfs7BfEomiSaaZjxBso/xiZMuEJc7trQ==", + "version": "3.7.19", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.19.tgz", + "integrity": "sha512-GONrMMz9zsx0ySbUTebWdqRjAuu6EEW+lLf3qUzcqkIYR8QZVTS8RLPt7FmGHKCTDIaBs8D2yv9puIfKAo1QAA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/utils": "^3.28.0", - "@react-stately/slider": "^3.6.2", - "@react-types/shared": "^3.28.0", - "@react-types/slider": "^3.7.9", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/slider/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/utils": "^3.29.0", + "@react-stately/slider": "^3.6.4", + "@react-types/shared": "^3.29.1", + "@react-types/slider": "^3.7.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5081,19 +3793,19 @@ } }, "node_modules/@heroui/snippet": { - "version": "2.2.17", - "resolved": "https://registry.npmjs.org/@heroui/snippet/-/snippet-2.2.17.tgz", - "integrity": "sha512-6wB9VuGOv1BG7NE1qTnhWgfNK85NiIC5Kr+x3HlZTCleCrRn8AK8OGLztYvzNWcW2K3Y0tAtwo1RoDCWjjFiuw==", + "version": "2.2.21", + "resolved": "https://registry.npmjs.org/@heroui/snippet/-/snippet-2.2.21.tgz", + "integrity": "sha512-9jvBWBL7hyoHw9iF1Zfbk90btTqg7+i0NOtdyl96iezCc9qVHyL1z1Jnh8MMIchOiHzArb5MS+1lDR+OsXU1qQ==", "license": "MIT", "dependencies": { - "@heroui/button": "2.2.16", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/tooltip": "2.2.13", - "@heroui/use-clipboard": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/utils": "3.28.0" + "@heroui/button": "2.2.20", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/tooltip": "2.2.17", + "@heroui/use-clipboard": "2.1.8", + "@react-aria/focus": "3.20.3", + "@react-aria/utils": "3.29.0" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -5103,32 +3815,15 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/snippet/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/spacer": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/spacer/-/spacer-2.2.12.tgz", - "integrity": "sha512-L0l/6hRqmoNARjf20hhUw6pWxJ4ujzqLnesAgYh9CS3UXbWVXj4EIVz4uQZE/didKEfZh1CgCFwdbDjpVSLLWQ==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@heroui/spacer/-/spacer-2.2.15.tgz", + "integrity": "sha512-UaW+9V4wiR3YXb+UfvBWu1PRPq07YblTyHeoiOP7cB1rNwrMHy0CF8U0uQOj+78e78KdrbK4QLSMdxC3v/Lorw==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/system-rsc": "2.3.11" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/system-rsc": "2.3.14" }, "peerDependencies": { "@heroui/theme": ">=2.4.6", @@ -5137,15 +3832,15 @@ } }, "node_modules/@heroui/spinner": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/spinner/-/spinner-2.2.13.tgz", - "integrity": "sha512-tTnbyxtee7wRs61l7uCM2qjNcLHkUoyToRa+a8LLEak3w6mnbMk59pQOETgXZ4aoozpzJF+uzdhqrK82EKcqCQ==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/spinner/-/spinner-2.2.17.tgz", + "integrity": "sha512-N7VnYAZU3vPm42Ab78QFS153qBf93Kwhnm9+F02bjCLA5709uvGbAEvwFRwh/u5pNOrDpv1SauschrRzpGsmgg==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/system": "2.4.12", - "@heroui/system-rsc": "2.3.11" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/system": "2.4.16", + "@heroui/system-rsc": "2.3.14" }, "peerDependencies": { "@heroui/theme": ">=2.4.6", @@ -5154,21 +3849,21 @@ } }, "node_modules/@heroui/switch": { - "version": "2.2.14", - "resolved": "https://registry.npmjs.org/@heroui/switch/-/switch-2.2.14.tgz", - "integrity": "sha512-vts3zWA+sWUETeXZ+8kKt9XGXYXjYA0WK5KamaSsBol5yK3UFe0taj+wgZEgH7qlc3O95uOZdLj5vHDFREWqfQ==", + "version": "2.2.18", + "resolved": "https://registry.npmjs.org/@heroui/switch/-/switch-2.2.18.tgz", + "integrity": "sha512-JQYajZ/vHFTdsln8UqwPY+Rtr/T6XbN1TKPXCsrdwa5OswQK0mv2BuNjW/8FGl0XQvS44K3ObcKW2JO3fzpS0A==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/switch": "3.7.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/toggle": "3.8.2", - "@react-types/shared": "3.28.0" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/switch": "3.7.3", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/toggle": "3.8.4", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -5177,66 +3872,16 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/switch/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/switch/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/switch/node_modules/@react-aria/switch": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.7.0.tgz", - "integrity": "sha512-TwTKz9qO6FUg/szH/uqODvlXM8BKSXuFQMct3Tp/FsILFqfX9FQcD5jwbclmN5tywCVdeJU/OkICldxMx4gFeA==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.7.3.tgz", + "integrity": "sha512-tFdJmcHaLgW23cS2R713vcJdVbsjDTRk8OLdG/sMziPBY3C00/exuSIb57xTS7KrE0hBYfnLJQTcmDNqdM8+9Q==", "license": "Apache-2.0", "dependencies": { - "@react-aria/toggle": "^3.11.0", - "@react-stately/toggle": "^3.8.2", - "@react-types/shared": "^3.28.0", - "@react-types/switch": "^3.5.9", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/switch/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/toggle": "^3.11.3", + "@react-stately/toggle": "^3.8.4", + "@react-types/shared": "^3.29.1", + "@react-types/switch": "^3.5.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5245,19 +3890,19 @@ } }, "node_modules/@heroui/system": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/@heroui/system/-/system-2.4.12.tgz", - "integrity": "sha512-MjLGJoPIa3co02PA8XEkqWgoxg3jjcyQV2OCINpMREysO0DOweX7voTE/UmSWOuXsPQULwE1pXdP9RLjtersyQ==", + "version": "2.4.16", + "resolved": "https://registry.npmjs.org/@heroui/system/-/system-2.4.16.tgz", + "integrity": "sha512-kk8XQsejHv4/vZBm7936D9+YkKV/meUp2tY49auS0wLsrGOQ2vvBKiwzQ0r+ibTvSNyCe5SX9tLfEGVgaGIY7g==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/system-rsc": "2.3.11", - "@internationalized/date": "3.7.0", - "@react-aria/i18n": "3.12.6", - "@react-aria/overlays": "3.26.0", - "@react-aria/utils": "3.28.0", - "@react-stately/utils": "3.10.5", - "@react-types/datepicker": "3.11.0" + "@heroui/react-utils": "2.1.10", + "@heroui/system-rsc": "2.3.14", + "@internationalized/date": "3.8.1", + "@react-aria/i18n": "3.12.9", + "@react-aria/overlays": "3.27.1", + "@react-aria/utils": "3.29.0", + "@react-stately/utils": "3.10.6", + "@react-types/datepicker": "3.12.1" }, "peerDependencies": { "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", @@ -5266,12 +3911,12 @@ } }, "node_modules/@heroui/system-rsc": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@heroui/system-rsc/-/system-rsc-2.3.11.tgz", - "integrity": "sha512-727eu4FtQWtg6tJ1ZM0JKQayZNoU/4wkLhtncnKQEWr5XDgbBkNfzeXMc7wkREAMoSbCV5+7zEs/qqW5sIH/fw==", + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/@heroui/system-rsc/-/system-rsc-2.3.14.tgz", + "integrity": "sha512-2H1PZXbArdbhbfdcoCWSqqZLVPsbV9lAnIYysTSjt0YT4YzG6cIN/8seDCbi04Bg1n65kPLEVqnTlgMVnGn1Uw==", "license": "MIT", "dependencies": { - "@react-types/shared": "3.28.0", + "@react-types/shared": "3.29.1", "clsx": "^1.2.1" }, "peerDependencies": { @@ -5288,69 +3933,26 @@ "node": ">=6" } }, - "node_modules/@heroui/system/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/system/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/table": { - "version": "2.2.15", - "resolved": "https://registry.npmjs.org/@heroui/table/-/table-2.2.15.tgz", - "integrity": "sha512-PJyGUxwXGJAMKhP3eD0/CrqSPti1rM9oQeAKReNIVUE33xKowAODBietsFrpo2PWsnagIreRWDjKWaSYOduE1g==", + "version": "2.2.19", + "resolved": "https://registry.npmjs.org/@heroui/table/-/table-2.2.19.tgz", + "integrity": "sha512-h1kpw8uQdAzM9NUDWp6mOZIJSv5SS00G9vE26usO+vXrhEiPFQaeqvspnsvirBOftyadMwfdX77o4hLr5KjDkg==", "license": "MIT", "dependencies": { - "@heroui/checkbox": "2.3.15", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/spacer": "2.2.12", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/table": "3.17.0", - "@react-aria/utils": "3.28.0", - "@react-aria/visually-hidden": "3.8.20", - "@react-stately/table": "3.14.0", - "@react-stately/virtualizer": "4.3.0", - "@react-types/grid": "3.3.0", - "@react-types/table": "3.11.0", + "@heroui/checkbox": "2.3.19", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/spacer": "2.2.15", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/table": "3.17.3", + "@react-aria/utils": "3.29.0", + "@react-aria/visually-hidden": "3.8.23", + "@react-stately/table": "3.14.2", + "@react-stately/virtualizer": "4.4.0", + "@react-types/grid": "3.3.2", + "@react-types/table": "3.13.0", "@tanstack/react-virtual": "3.11.3" }, "peerDependencies": { @@ -5360,76 +3962,26 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/table/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/table/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/table/node_modules/@react-aria/table": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.17.0.tgz", - "integrity": "sha512-x6jW3r0AIIbcGxra0yrecndA0kSnyEQWC16kVXmceLo0F4UCSmRRomWxEtvM3TZoesKlNpDYzipJJLT4HpbPVw==", + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.17.3.tgz", + "integrity": "sha512-hs3akyNMeeAPIfa+YKMxJyupSjywW5OGzJtOw/Z0j6pV8KXSeMEXNYkSuJY+m5Q1mdunoiiogs0kE3B0r2izQA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/grid": "^3.12.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/collections": "^3.12.2", - "@react-stately/flags": "^3.1.0", - "@react-stately/table": "^3.14.0", - "@react-types/checkbox": "^3.9.2", - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0", - "@react-types/table": "^3.11.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/table/node_modules/@react-aria/visually-hidden": { - "version": "3.8.20", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.20.tgz", - "integrity": "sha512-Y7JbrpheUhNgnJWogDWxuxxiWAnuaW9MKOUY5vD3KOa+vEWuc2IBOGSzOOUkAGnVP4L2rvaHeZIuR5flqyeskA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/grid": "^3.14.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/live-announcer": "^3.4.2", + "@react-aria/utils": "^3.29.0", + "@react-aria/visually-hidden": "^3.8.23", + "@react-stately/collections": "^3.12.4", + "@react-stately/flags": "^3.1.1", + "@react-stately/table": "^3.14.2", + "@react-types/checkbox": "^3.9.4", + "@react-types/grid": "^3.3.2", + "@react-types/shared": "^3.29.1", + "@react-types/table": "^3.13.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5438,13 +3990,13 @@ } }, "node_modules/@heroui/table/node_modules/@react-stately/virtualizer": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.3.0.tgz", - "integrity": "sha512-iU/nns19Ou2Mxr8OhjCQ+NvkOck4uhUZta/WyZmJZ3ynMY8503IwuEF2n+AHg81LiS83/XK8SXq3NTn61Trpgg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.4.0.tgz", + "integrity": "sha512-y2jefrW0ffJpv0685IEKId6/wy0kgD/bxYuny9r9Z3utvcjjFl9fX9cBKsXII7ZxPiu0CP+wA6HQ53GU3BqCsw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5452,52 +4004,25 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@heroui/table/node_modules/@tanstack/react-virtual": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.3.tgz", - "integrity": "sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==", - "license": "MIT", - "dependencies": { - "@tanstack/virtual-core": "3.11.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@heroui/table/node_modules/@tanstack/virtual-core": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.3.tgz", - "integrity": "sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, "node_modules/@heroui/tabs": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/tabs/-/tabs-2.2.13.tgz", - "integrity": "sha512-HIAAgkInrC23aD4XWY1TvIhy6FhO4LRLp3Q4zOVp4Nxs4G0p20Nv3gndl7NYRr7TB2fLAbQPgDblsXiG/v6Png==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/tabs/-/tabs-2.2.17.tgz", + "integrity": "sha512-7kA5Dre8kmAbCq5ObcVNlUc1NTbnfaH4FhrwUd9lNg6pnE+EdEROt+Jegk0+0oWrx6ERjr+1vOUc1zgRPs657A==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-is-mounted": "2.1.6", - "@heroui/use-update-effect": "2.1.6", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/tabs": "3.10.0", - "@react-aria/utils": "3.28.0", - "@react-stately/tabs": "3.8.0", - "@react-types/shared": "3.28.0", - "@react-types/tabs": "3.3.13", + "@heroui/aria-utils": "2.2.17", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-is-mounted": "2.1.7", + "@heroui/use-update-effect": "2.1.7", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/tabs": "3.10.3", + "@react-aria/utils": "3.29.0", + "@react-stately/tabs": "3.8.2", + "@react-types/shared": "3.29.1", + "@react-types/tabs": "3.3.15", "scroll-into-view-if-needed": "3.0.10" }, "peerDependencies": { @@ -5508,53 +4033,19 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/tabs/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/tabs/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/tabs/node_modules/@react-aria/tabs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.10.0.tgz", - "integrity": "sha512-1wGB4CtkP/F0/4YTDoB7XoPr4Ea6dbLTpLHQiS0cxf0kA3NZCxRguIffRbigE/D6fHArzWyKedSo6FzJR/WPZw==", + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.10.3.tgz", + "integrity": "sha512-TYfwaRrI0mQMefmoHeTKXdczpb53qpPr+3nnveGl+BocG94wmjIqK6kncboVbPdykgQCIAMd2d9GFpK01+zXrA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/selection": "^3.23.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/tabs": "^3.8.0", - "@react-types/shared": "^3.28.0", - "@react-types/tabs": "^3.3.13", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/selection": "^3.24.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/tabs": "^3.8.2", + "@react-types/shared": "^3.29.1", + "@react-types/tabs": "^3.3.15", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5563,12 +4054,12 @@ } }, "node_modules/@heroui/theme": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/@heroui/theme/-/theme-2.4.12.tgz", - "integrity": "sha512-sm4DOBhJW88U9h0dfXwX3eA6w125jUi/OfFZtV1zUIyXBPF3c1Va23XO6XmGxDTCgBT4iBwpGBoyHbSYpAnaVg==", + "version": "2.4.16", + "resolved": "https://registry.npmjs.org/@heroui/theme/-/theme-2.4.16.tgz", + "integrity": "sha512-XWRr1MJNBGIESxOCgPgQMq3gt8VfWoYzDnBpIdIHjSlin+4oK8LRqLsP6CeVTpGSwv6lurQk11jVKY6MTI7JTw==", "license": "MIT", "dependencies": { - "@heroui/shared-utils": "2.1.7", + "@heroui/shared-utils": "2.1.9", "clsx": "^1.2.1", "color": "^4.2.3", "color2k": "^2.0.3", @@ -5599,93 +4090,50 @@ "node": ">=0.10.0" } }, - "node_modules/@heroui/theme/node_modules/tailwind-merge": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", - "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/@heroui/theme/node_modules/tailwind-variants": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.3.0.tgz", - "integrity": "sha512-ho2k5kn+LB1fT5XdNS3Clb96zieWxbStE9wNLK7D0AV64kdZMaYzAKo0fWl6fXLPY99ffF9oBJnIj5escEl/8A==", - "license": "MIT", - "dependencies": { - "tailwind-merge": "^2.5.4" - }, - "engines": { - "node": ">=16.x", - "pnpm": ">=7.x" - }, - "peerDependencies": { - "tailwindcss": "*" - } - }, "node_modules/@heroui/toast": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@heroui/toast/-/toast-2.0.6.tgz", - "integrity": "sha512-dJrHWkxc9s5sggvP8gspTzleIcm90nCWebl19EJRKyHOKC56iv4mQvpUMQ4GbNYm7dfS7N/pOk7sHEcR45c18w==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@heroui/toast/-/toast-2.0.10.tgz", + "integrity": "sha512-NefTDL6Thtw169uBEXseVgVBOCx66BQKLU3BahhQ/a41LpXshfQksRxXxldB0kqEJ21g295Df11z2bLi2wIwyQ==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/shared-icons": "2.1.6", - "@heroui/shared-utils": "2.1.7", - "@heroui/spinner": "2.2.13", - "@heroui/use-is-mobile": "2.2.7", - "@react-aria/interactions": "3.24.0", - "@react-aria/toast": "3.0.0-beta.19", - "@react-aria/utils": "3.28.0", - "@react-stately/toast": "3.0.0-beta.7", - "@react-stately/utils": "3.10.5" + "@heroui/react-utils": "2.1.10", + "@heroui/shared-icons": "2.1.8", + "@heroui/shared-utils": "2.1.9", + "@heroui/spinner": "2.2.17", + "@heroui/use-is-mobile": "2.2.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/toast": "3.0.3", + "@react-aria/utils": "3.29.0", + "@react-stately/toast": "3.1.0", + "@react-stately/utils": "3.10.6" }, "peerDependencies": { "@heroui/system": ">=2.4.10", - "@heroui/theme": ">=2.4.9", + "@heroui/theme": ">=2.4.12", "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/toast/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/tooltip": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/@heroui/tooltip/-/tooltip-2.2.13.tgz", - "integrity": "sha512-pYfWuhFbOLevr/YnwtT8rLlNbsiOb3WwYo9378ZByHQFCNS0Fd+qPVU+9i7Z/+am3XLoQxgQ5r7OTlMnmCjVmg==", + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/@heroui/tooltip/-/tooltip-2.2.17.tgz", + "integrity": "sha512-HcCwjKxQL6O64dbfZ/bmUpOFn0OCT7duET5Y5YWpq/zdnLVDp35EiFK/FQemBiZHSh74qomxCX58mdMIhTYN9A==", "license": "MIT", "dependencies": { - "@heroui/aria-utils": "2.2.13", - "@heroui/dom-animation": "2.1.6", - "@heroui/framer-utils": "2.1.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@heroui/use-safe-layout-effect": "2.1.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/overlays": "3.26.0", - "@react-aria/tooltip": "3.8.0", - "@react-aria/utils": "3.28.0", - "@react-stately/tooltip": "3.5.2", - "@react-types/overlays": "3.8.13", - "@react-types/tooltip": "3.4.15" + "@heroui/aria-utils": "2.2.17", + "@heroui/dom-animation": "2.1.9", + "@heroui/framer-utils": "2.1.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@heroui/use-safe-layout-effect": "2.1.7", + "@react-aria/interactions": "3.25.1", + "@react-aria/overlays": "3.27.1", + "@react-aria/tooltip": "3.8.3", + "@react-aria/utils": "3.29.0", + "@react-stately/tooltip": "3.5.4", + "@react-types/overlays": "3.8.15", + "@react-types/tooltip": "3.4.17" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -5695,57 +4143,17 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/tooltip/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/tooltip/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/tooltip/node_modules/@react-aria/tooltip": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.8.0.tgz", - "integrity": "sha512-Tal09bWgursZ3v1qUuB/0z4Cz+jcDIfe8G5TECMtr0vbfYh2u7RIjBNZnsRcxZ2syXDxhHrPNeh8mrp4vKCAKg==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.8.3.tgz", + "integrity": "sha512-8JHRqffH5vUw7og6mlCRzb4h95/R5RpOxGFfEGw7aami14XMo6tZg7wMgwDUAEiVqNerRWYaw+tk7nCUQXo1Sg==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/tooltip": "^3.5.2", - "@react-types/shared": "^3.28.0", - "@react-types/tooltip": "^3.4.15", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/tooltip": "^3.5.4", + "@react-types/shared": "^3.29.1", + "@react-types/tooltip": "^3.4.17", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5754,71 +4162,35 @@ } }, "node_modules/@heroui/use-aria-accordion": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@heroui/use-aria-accordion/-/use-aria-accordion-2.2.8.tgz", - "integrity": "sha512-MM1waESUcCjaTWUvBxUdw3KHM75q9n5QfCGoDZpekIisMqytZnMsrRQd+OCJLZ3zKrmQQRFlPswpE77WAJvrsQ==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@heroui/use-aria-accordion/-/use-aria-accordion-2.2.12.tgz", + "integrity": "sha512-7xnsf48Zdke4UfZGd4jTYPGbtmlc94jTkMdmWxaulfQN0O1bwLicwqxWxB3R7WzrDcL93TBvOYPRrjFIUHRXfg==", "license": "MIT", "dependencies": { - "@react-aria/button": "3.12.0", - "@react-aria/focus": "3.20.0", - "@react-aria/selection": "3.23.0", - "@react-aria/utils": "3.28.0", - "@react-stately/tree": "3.8.8", + "@react-aria/button": "3.13.1", + "@react-aria/focus": "3.20.3", + "@react-aria/selection": "3.24.1", + "@react-aria/utils": "3.29.0", + "@react-stately/tree": "3.8.10", "@react-types/accordion": "3.0.0-alpha.26", - "@react-types/shared": "3.28.0" + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-aria-accordion/node_modules/@react-aria/button": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.12.0.tgz", - "integrity": "sha512-obnK2vjQQdoOXMIPFy8PZSI8vET+LIeQeh3gjQfRcbtcVE6xT1drDARm6e36cunI2Up99e0yVBBWqqegNqKGQw==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.13.1.tgz", + "integrity": "sha512-E49qcbBRgofXYfWbli50bepWVNtQBq7qewL9XsX7nHkwPPUe1IRwJOnWZqYMgwwhUBOXfnsR6/TssiXqZsrJdw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/toolbar": "3.0.0-beta.13", - "@react-aria/utils": "^3.28.0", - "@react-stately/toggle": "^3.8.2", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-accordion/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-accordion/node_modules/@react-aria/selection": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.23.0.tgz", - "integrity": "sha512-m/sq3UuaTFRiEU9S6K+nkn9ONcpCtFskeJH/IZ9l/583X08KEoW/A3Vehrf3dlL8CNbkKKPfkUdKh1X6gTmHzA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/selection": "^3.20.0", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/toolbar": "3.0.0-beta.16", + "@react-aria/utils": "^3.29.0", + "@react-stately/toggle": "^3.8.4", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5827,15 +4199,15 @@ } }, "node_modules/@heroui/use-aria-accordion/node_modules/@react-aria/toolbar": { - "version": "3.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.13.tgz", - "integrity": "sha512-aj5lWdk/yp2Tmuuofu1rdkvhiYPCXihuPFbs+9HHz88kyezM7bkhmQRIf0w47tiPIKUA0UuwJucBjDZfl9EQFw==", + "version": "3.0.0-beta.16", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.16.tgz", + "integrity": "sha512-TnNvtxADalMzs9Et51hWPpGyiHr1dt++UYR7pIo1H7vO+HwXl6uH4HxbFDS5CyV69j2cQlcGrkj13LoWFkBECw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5843,525 +4215,250 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, - "node_modules/@heroui/use-aria-accordion/node_modules/@react-types/accordion": { - "version": "3.0.0-alpha.26", - "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.26.tgz", - "integrity": "sha512-OXf/kXcD2vFlEnkcZy/GG+a/1xO9BN7Uh3/5/Ceuj9z2E/WwD55YwU3GFM5zzkZ4+DMkdowHnZX37XnmbyD3Mg==", - "license": "Apache-2.0", - "dependencies": { - "@react-types/shared": "^3.27.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-aria-button": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/@heroui/use-aria-button/-/use-aria-button-2.2.10.tgz", - "integrity": "sha512-HnE2ldvKruhzHgI4rR3blUGV8a4kEyGh2OUI7dPg7/QqIfze1tg/o7FMsPnBL6td2qMbEsb53AVv4jcRVa7Z/g==", + "version": "2.2.14", + "resolved": "https://registry.npmjs.org/@heroui/use-aria-button/-/use-aria-button-2.2.14.tgz", + "integrity": "sha512-MAwv37AicSe22ygN+3VQKm6aDUt4o5koVIgo5sNiPzlVaa4KuWlbHJ2qE4WoTQ87shWzwfZOJpzCmOKK61Ls2Q==", "license": "MIT", "dependencies": { - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-types/button": "3.11.0", - "@react-types/shared": "3.28.0" + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-types/button": "3.12.1", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-aria-button/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-button/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-aria-link": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@heroui/use-aria-link/-/use-aria-link-2.2.11.tgz", - "integrity": "sha512-fxALFX1rI1BrcVUsTpZpc7kwy678K+rM5u+TXUyNSxdA1NvGjNG9scBIVJkVDttxxFZhdvaWRSsHJE8u/R3p5Q==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@heroui/use-aria-link/-/use-aria-link-2.2.15.tgz", + "integrity": "sha512-pvtv1ovlOoaxtBDgoMoD4GbVZ+YpPDacgmbKZFZW4gzTCl9BS5jsZYTaEZ5odKBirp+Uca9OIc/0g+odrNe+WA==", "license": "MIT", "dependencies": { - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/interactions": "3.24.0", - "@react-aria/utils": "3.28.0", - "@react-types/link": "3.5.11", - "@react-types/shared": "3.28.0" + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/interactions": "3.25.1", + "@react-aria/utils": "3.29.0", + "@react-types/link": "3.6.1", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-aria-link/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-link/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-aria-modal-overlay": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@heroui/use-aria-modal-overlay/-/use-aria-modal-overlay-2.2.9.tgz", - "integrity": "sha512-NwyvmPaIGqKM83u5W/5U6+27sHHaZczzIydG0zSN74FeiHENUG2DMBx/uzZN47uedVaGGXhPsB4r3L+QF4fI5A==", + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/@heroui/use-aria-modal-overlay/-/use-aria-modal-overlay-2.2.13.tgz", + "integrity": "sha512-8csUzC5kH03pxEbbJgzfgTJpsh/d0dKdhYfzkzzP6d6u+h92PqcEjfQKZZhRPd42lWiS1rF8j68nPPPUiuJIbw==", "license": "MIT", "dependencies": { - "@react-aria/overlays": "3.26.0", - "@react-aria/utils": "3.28.0", - "@react-stately/overlays": "3.6.14", - "@react-types/shared": "3.28.0" + "@react-aria/overlays": "3.27.1", + "@react-aria/utils": "3.29.0", + "@react-stately/overlays": "3.6.16", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-aria-modal-overlay/node_modules/@react-aria/overlays": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.0.tgz", - "integrity": "sha512-Rr3yoyGwXzp446QK6CwnjJl9ZfH/Cq2o01XQmMjya2gmk5N4aefRORg7eRoVy5EVfecIH/HJVg0BKEjXQOp4nA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-aria/visually-hidden": "^3.8.20", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-aria-multiselect": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@heroui/use-aria-multiselect/-/use-aria-multiselect-2.4.9.tgz", - "integrity": "sha512-bYNeB+63kWEI49hpEbfzUxpO0Zsg5tBRz13zFwkMR1SstRyHVCU8vCtdmPeRCpeUbQiyXTVkxaL/nAdRuq7HOw==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@heroui/use-aria-multiselect/-/use-aria-multiselect-2.4.13.tgz", + "integrity": "sha512-HeF8XMBPCUuQd/98/vKw5V5LJJZODmuVLUQpAC3il3k7BC6MJWiZD0DDJtbPYewyiRBwNIKX7akBFBmmtj26Aw==", "license": "MIT", "dependencies": { - "@react-aria/i18n": "3.12.6", - "@react-aria/interactions": "3.24.0", - "@react-aria/label": "3.7.15", - "@react-aria/listbox": "3.14.1", - "@react-aria/menu": "3.18.0", - "@react-aria/selection": "3.23.0", - "@react-aria/utils": "3.28.0", - "@react-stately/form": "3.1.2", - "@react-stately/list": "3.12.0", - "@react-stately/menu": "3.9.2", - "@react-types/button": "3.11.0", - "@react-types/overlays": "3.8.13", - "@react-types/select": "3.9.10", - "@react-types/shared": "3.28.0" + "@react-aria/i18n": "3.12.9", + "@react-aria/interactions": "3.25.1", + "@react-aria/label": "3.7.18", + "@react-aria/listbox": "3.14.4", + "@react-aria/menu": "3.18.3", + "@react-aria/selection": "3.24.1", + "@react-aria/utils": "3.29.0", + "@react-stately/form": "3.1.4", + "@react-stately/list": "3.12.2", + "@react-stately/menu": "3.9.4", + "@react-types/button": "3.12.1", + "@react-types/overlays": "3.8.15", + "@react-types/select": "3.9.12", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-aria-multiselect/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-multiselect/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-multiselect/node_modules/@react-aria/label": { - "version": "3.7.15", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.15.tgz", - "integrity": "sha512-jbSxijCLHdQ/HX0yyhrsY0ypZled5omAK7Eh+Z6vW0qpoqvM1rR/ChaoUje9tW5FmMDjafbt905RUxy0xnMQ1A==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-multiselect/node_modules/@react-aria/listbox": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.14.1.tgz", - "integrity": "sha512-4uiY7HG4ekF37wNX5hHEMhshkXrU1U4593LVNYjUZHizcB1ZahXzo/F0T3qpeNo+/j89ls8qhDHx/bGIWNj1aQ==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/label": "^3.7.15", - "@react-aria/selection": "^3.23.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/collections": "^3.12.2", - "@react-stately/list": "^3.12.0", - "@react-types/listbox": "^3.5.5", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-multiselect/node_modules/@react-aria/menu": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.18.0.tgz", - "integrity": "sha512-UvcGwx5mGWpZF/d1cQsvCzt0gG5NKbrgAe9B5pumzMfWyXpbkRB0v90GnUlPShbemLhYmWCnTXlN9ogEdAV1dw==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/overlays": "^3.26.0", - "@react-aria/selection": "^3.23.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/collections": "^3.12.2", - "@react-stately/menu": "^3.9.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/tree": "^3.8.8", - "@react-types/button": "^3.11.0", - "@react-types/menu": "^3.9.15", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@heroui/use-aria-multiselect/node_modules/@react-aria/selection": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.23.0.tgz", - "integrity": "sha512-m/sq3UuaTFRiEU9S6K+nkn9ONcpCtFskeJH/IZ9l/583X08KEoW/A3Vehrf3dlL8CNbkKKPfkUdKh1X6gTmHzA==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/focus": "^3.20.0", - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/selection": "^3.20.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-callback-ref": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/use-callback-ref/-/use-callback-ref-2.1.6.tgz", - "integrity": "sha512-icFp4WBWTZhypBcyu+5kir7nZLtvtQq7DDvGwkTtxsGnFHgGDc6sXXcOU6AcCdoGefmsiVp5c3D3lZ2pMlGHmA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/use-callback-ref/-/use-callback-ref-2.1.7.tgz", + "integrity": "sha512-AKMb+zV8um9y7gnsPgmVPm5WRx0oJc/3XU+banr8qla27+3HhnQZVqk3nlSHIplkseQzMRt3xHj5RPnwKbs71w==", "license": "MIT", "dependencies": { - "@heroui/use-safe-layout-effect": "2.1.6" + "@heroui/use-safe-layout-effect": "2.1.7" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-clipboard": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@heroui/use-clipboard/-/use-clipboard-2.1.7.tgz", - "integrity": "sha512-Nt/ILhHovvYpoRjhqbbyz9sPI5xquvsSU/UuZ4qE8xFrsI8ukJo9znI1mW5eeNUlY9EOjz6HWdYU1B6QyLR3hg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@heroui/use-clipboard/-/use-clipboard-2.1.8.tgz", + "integrity": "sha512-itT5PCoMRoa6rjV51Z9wxeDQpSYMZj2sDFYrM7anGFO/4CAsQ/NfQoPwl5+kX0guqCcCGMqgFnNzNyQuNNsPtg==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-data-scroll-overflow": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@heroui/use-data-scroll-overflow/-/use-data-scroll-overflow-2.2.7.tgz", - "integrity": "sha512-+XPWShncxvPt+wSz5wXIP1GRws6mZs5QoHHG9n0agPL3eYiE0dHeEVYmfLQCopYhnnTA3HRcTkRKQ6pNR4oVQQ==", + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/@heroui/use-data-scroll-overflow/-/use-data-scroll-overflow-2.2.10.tgz", + "integrity": "sha512-Lza9S7ZWhY3PliahSgDRubrpeT7gnySH67GSTrGQMzYggTDMo2I1Pky7ZaHUnHHYB9Y7WHryB26ayWBOgRtZUQ==", "license": "MIT", "dependencies": { - "@heroui/shared-utils": "2.1.7" + "@heroui/shared-utils": "2.1.9" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-disclosure": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@heroui/use-disclosure/-/use-disclosure-2.2.8.tgz", - "integrity": "sha512-GU/cH3si0na6QkWavvR/2LAqsmHQMKZ9Ed/5QsvMBxv5YPXb2fkxaU6KfIR2Jrr4UmQqi9Bi4aFy20eVyYfQUA==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@heroui/use-disclosure/-/use-disclosure-2.2.12.tgz", + "integrity": "sha512-SMwJmpIruY8TnYHuqprKyLqYfvT670gAOjsMqi6qhL8UdWiL0c/DI34LEwiVUmtcUoKbDtWJ0dGv5+mhK4FAkA==", "license": "MIT", "dependencies": { - "@heroui/use-callback-ref": "2.1.6", - "@react-aria/utils": "3.28.0", - "@react-stately/utils": "3.10.5" + "@heroui/use-callback-ref": "2.1.7", + "@react-aria/utils": "3.29.0", + "@react-stately/utils": "3.10.6" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-draggable": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@heroui/use-draggable/-/use-draggable-2.1.8.tgz", - "integrity": "sha512-lYh0kEPkWSZm0EIIS44eV2THTsGTfPHuZ+Pv+HsHVBnHK+loVUoMAd1lTh4ysRxzZ7mU/jgx88LlxxbKrDD7SQ==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@heroui/use-draggable/-/use-draggable-2.1.12.tgz", + "integrity": "sha512-6VxsuivP3FBXxwaFlVSp/84tmNn5Xg8fpgRVji2EzEEsc0nOmUu41dHiFRw8+42ikyjXQBTbO+e5TrFBSQYoEg==", "license": "MIT", "dependencies": { - "@react-aria/interactions": "3.24.0" + "@react-aria/interactions": "3.25.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-draggable/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-image": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@heroui/use-image/-/use-image-2.1.7.tgz", - "integrity": "sha512-Cno8oXNo/3YDCRnCwSuJYgdsZ7mujjVWSwlYaoYbi+rM5o9TjZYRPYHZacHMABlbY+Hew31ddYpOmyw4SrkIwA==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@heroui/use-image/-/use-image-2.1.9.tgz", + "integrity": "sha512-rHfPv4PkRN6mUG3eoBZBi8P8FnM37Kb/lOUM5M5kWtPMRpdfpgDxGQjf24K2lwSQM5xVG1H8WlF1Wipcd0kpmA==", "license": "MIT", "dependencies": { - "@heroui/react-utils": "2.1.8", - "@heroui/use-safe-layout-effect": "2.1.6" + "@heroui/react-utils": "2.1.10", + "@heroui/use-safe-layout-effect": "2.1.7" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-intersection-observer": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@heroui/use-intersection-observer/-/use-intersection-observer-2.2.8.tgz", - "integrity": "sha512-A9YQCS5UecgkdfGhxevHJRfdH9zZg4YpRlaOB3qrJIfjBupW+89IUSUsuS1UQEsoi14fK7f7QRGJDov+XBmgBA==", + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@heroui/use-intersection-observer/-/use-intersection-observer-2.2.12.tgz", + "integrity": "sha512-9A0ZJMyrYRWrIAaqaKDHrP7UiHRRWd1FOdrbM4YBGs4sMNnoFNfzldad68UZzUTR3oRYaBPNWWTcCwfIZNl8+w==", "license": "MIT", "dependencies": { - "@react-aria/interactions": "3.24.0", - "@react-aria/ssr": "3.9.7", - "@react-aria/utils": "3.28.0", - "@react-types/shared": "3.28.0" + "@react-aria/interactions": "3.25.1", + "@react-aria/ssr": "3.9.8", + "@react-aria/utils": "3.29.0", + "@react-types/shared": "3.29.1" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-intersection-observer/node_modules/@react-aria/interactions": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.0.tgz", - "integrity": "sha512-6Zdhp1pswyPgbwEWzvXARdKAWPjP7mACczoIUvlEQiMsX04fuizBiBLAA+W/5mPe17pbJYHA/rxZF5Y5m+M0Ng==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-is-mobile": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@heroui/use-is-mobile/-/use-is-mobile-2.2.7.tgz", - "integrity": "sha512-aaQjvATBb09c4UzkcCaeZLqv5Sz0gtA1n07LxW+LJd2ENEYEuxNOWyO7dIAHaaYb3znX1ZxGC1h4cYLcN59nPA==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@heroui/use-is-mobile/-/use-is-mobile-2.2.9.tgz", + "integrity": "sha512-UVc9wKK3kg2bIAQPaKuCA53qd1Snrd8yxIf/dtbh3PqYjqoyN7c1hUFZxe9ZW8Vb3AovquWDnPYbx4vjdzcQiQ==", "license": "MIT", "dependencies": { - "@react-aria/ssr": "3.9.7" + "@react-aria/ssr": "3.9.8" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-is-mounted": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/use-is-mounted/-/use-is-mounted-2.1.6.tgz", - "integrity": "sha512-dnTX1PUWGhIQJxszTScHgM9XxvYIx9j8vnSJuVGaptJonZWlt50yI/WAi+oWXJ289rw7XBDJ8o38qmU5Pmq+WA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/use-is-mounted/-/use-is-mounted-2.1.7.tgz", + "integrity": "sha512-Msf4eWWUEDofPmvaFfS4azftO9rIuKyiagxsYE73PSMcdB+7+PJSMTY5ZTM3cf/lwUJzy1FQvyTiCKx0RQ5neA==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-measure": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/use-measure/-/use-measure-2.1.6.tgz", - "integrity": "sha512-FiN3Za6hExqU1B0d2drCm9JUFneQ1W5gyNoX0owf3aIWG98QR+LR1MOL3WBAGWtDsp4K6q8rqUKXatNxGJd/sA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/use-measure/-/use-measure-2.1.7.tgz", + "integrity": "sha512-H586tr/bOH08MAufeiT35E1QmF8SPQy5Ghmat1Bb+vh/6KZ5S0K0o95BE2to7sXE9UCJWa7nDFuizXAGbveSiA==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-pagination": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@heroui/use-pagination/-/use-pagination-2.2.9.tgz", - "integrity": "sha512-5walu5+b9i/8Nsv5xNFIRh9Cdqk+8ZJIBTNqAtXeJnRjvdPJ+kZteiIJkDOHbsMdWJXBlekNOjuoDlcvLKNeHg==", + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/@heroui/use-pagination/-/use-pagination-2.2.13.tgz", + "integrity": "sha512-QuoSW1ZLQ7kgi8P3/7UjNZaLATLaLOsVyiMx3WOJKBlKJofjFVTbVk8xnUGFHK5EfrZKd9svazwXQ6f5i3mXRQ==", "license": "MIT", "dependencies": { - "@heroui/shared-utils": "2.1.7", - "@react-aria/i18n": "3.12.6" + "@heroui/shared-utils": "2.1.9", + "@react-aria/i18n": "3.12.9" }, "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/use-pagination/node_modules/@react-aria/i18n": { - "version": "3.12.6", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.6.tgz", - "integrity": "sha512-I2Qz1vAlgdeW2GUMLhHucYhk514/BRuEzvH1iih8qeqvv0gEbKdSIjPJUomW+WzYVmJ2/bwKQAr7otr2fNcbrw==", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@heroui/use-safe-layout-effect": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/use-safe-layout-effect/-/use-safe-layout-effect-2.1.6.tgz", - "integrity": "sha512-yLT6zrlcZGJX4KKenzvR6lPS42Lf/Q0Q8ErpufLSkTdX4uk/ThGB/CRwdXfP+TPFLIfjXdsgCHgZr2ZAQJaG5Q==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/use-safe-layout-effect/-/use-safe-layout-effect-2.1.7.tgz", + "integrity": "sha512-ZiMc+nVjcE5aArC4PEmnLHSJj0WgAXq3udr7FZaosP/jrRdn5VPcfF9z9cIGNJD6MkZp+YP0XGslrIFKZww0Hw==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-scroll-position": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/use-scroll-position/-/use-scroll-position-2.1.6.tgz", - "integrity": "sha512-9ap2AIuPjJCGLt7ZZAQqSE7s9Md1lUqnmxXf6UhKH0CJowhVHIl76gtV2rMeQZ+vsjbG3d4tsX2Vw13h+HLpuA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/use-scroll-position/-/use-scroll-position-2.1.7.tgz", + "integrity": "sha512-c91Elycrq51nhpWqFIEBy04P+KBJjnEz4u1+1c7txnjs/k0FOD5EBD8+Jf8GJbh4WYp5N936XFvCcE7gB1C9JQ==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/use-update-effect": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@heroui/use-update-effect/-/use-update-effect-2.1.6.tgz", - "integrity": "sha512-nGSaIngKPuutmQcfZgnMHGYXJDqo6sPjdIIFjb5vutEnc827Xyh5f4q8hXfo7huYYYzA1CqLaThNVFCf3qIwHg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@heroui/use-update-effect/-/use-update-effect-2.1.7.tgz", + "integrity": "sha512-G7Crf4vdJh2bwyQQ5+dN+IfvtHpRNkNlEXVDE87Kb15fJ7Rnokt3webnogBreZ9l7SbHpEGvx5sZPsgUHgrTMg==", "license": "MIT", "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0" } }, "node_modules/@heroui/user": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@heroui/user/-/user-2.2.12.tgz", - "integrity": "sha512-64E9tAI5Nm4L+Em953fYD5u5OXfLh8U2/ZlT48iKgWe8PMQ2X1qAu/1WmWXSPDDC8RyW0O1nWr44JbtX75v/5g==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@heroui/user/-/user-2.2.16.tgz", + "integrity": "sha512-tHlyt2On5p62/UN57G+MVbWIa15YfaZYcFWVvf7NyjKzzN9BtL/urcqoyz06lMiQ1aZ2ilaKQdaHu0NUaZ/Z6w==", "license": "MIT", "dependencies": { - "@heroui/avatar": "2.2.12", - "@heroui/react-utils": "2.1.8", - "@heroui/shared-utils": "2.1.7", - "@react-aria/focus": "3.20.0", - "@react-aria/utils": "3.28.0" + "@heroui/avatar": "2.2.16", + "@heroui/react-utils": "2.1.10", + "@heroui/shared-utils": "2.1.9", + "@react-aria/focus": "3.20.3", + "@react-aria/utils": "3.29.0" }, "peerDependencies": { "@heroui/system": ">=2.4.7", @@ -6370,36 +4467,19 @@ "react-dom": ">=18 || >=19.0.0-rc.0" } }, - "node_modules/@heroui/user/node_modules/@react-aria/focus": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.0.tgz", - "integrity": "sha512-KXZCwWzwnmtUo6xhnyV26ptxlxmqd0Reez7axduqqqeDDgDZOVscoo/5gFg71fdPZmnDC8MyUK1vxSbMhOTrGg==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.24.0", - "@react-aria/utils": "^3.28.0", - "@react-types/shared": "^3.28.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, "node_modules/@internationalized/date": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.7.0.tgz", - "integrity": "sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.8.1.tgz", + "integrity": "sha512-PgVE6B6eIZtzf9Gu5HvJxRK3ufUFz9DhspELuhW/N0GuMGMTLvPQNRkHP2hTuP9lblOk+f+1xi96sPiPXANXAA==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/message": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.6.tgz", - "integrity": "sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.7.tgz", + "integrity": "sha512-gLQlhEW4iO7DEFPf/U7IrIdA3UyLGS0opeqouaFwlMObLUzwexRjbygONHDVbC9G9oFLXsLyGKYkJwqXw/QADg==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0", @@ -6407,18 +4487,18 @@ } }, "node_modules/@internationalized/number": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz", - "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.2.tgz", + "integrity": "sha512-E5QTOlMg9wo5OrKdHD6edo1JJlIoOsylh0+mbf0evi1tHJwMZfJSaBpGtnJV9N7w3jeiioox9EG/EWRWPh82vg==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/string": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.5.tgz", - "integrity": "sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.6.tgz", + "integrity": "sha512-LR2lnM4urJta5/wYJVV7m8qk5DrMZmLRTuFhbQO5b9/sKLHgty6unQy1Li4+Su2DWydmB4aZdS5uxBRXIq2aAw==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" @@ -6980,14 +5060,14 @@ } }, "node_modules/@react-aria/focus": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.1.tgz", - "integrity": "sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==", + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.3.tgz", + "integrity": "sha512-rR5uZUMSY4xLHmpK/I8bP1V6vUNHFo33gTvrvNUsAKKqvMfa7R2nu5A6v97dr5g6tVH6xzpdkPsOJCWh90H2cw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, @@ -6997,15 +5077,15 @@ } }, "node_modules/@react-aria/form": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.14.tgz", - "integrity": "sha512-UYoqdGetKV+4lwGnJ22sWKywobOWYBcOetiBYTlrrnCI6e5j1Jk5iLkLvesCOoI7yfWIW9Ban5Qpze5MUrXUhQ==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.16.tgz", + "integrity": "sha512-N1bDsJfmnyDesayK0Ii6UPH6JWiF6Wz8WSveQ2y5004XHoIWn5LpWmOqnRedvyw4Yedw33schlvrY7ENEwMdpg==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/form": "^3.1.2", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/form": "^3.1.4", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7014,23 +5094,23 @@ } }, "node_modules/@react-aria/grid": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.12.1.tgz", - "integrity": "sha512-f0Sx/O6VVjNcg5xq0cLhA7QSCkZodV+/Y0UXJTg/NObqgPX/tqh/KNEy7zeVd22FS6SUpXV+fJU99yLPo37rjQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.14.0.tgz", + "integrity": "sha512-/tJB7xnSruORJ8tlFHja4SfL8/EW5v4cBLiyD5z48m7IdG33jXR8Cv4Pi5uQqs8zKdnpqZ1wDG3GQxNDwZavpg==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.1", - "@react-aria/i18n": "^3.12.7", - "@react-aria/interactions": "^3.24.1", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/selection": "^3.23.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/collections": "^3.12.2", - "@react-stately/grid": "^3.11.0", - "@react-stately/selection": "^3.20.0", - "@react-types/checkbox": "^3.9.2", - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/live-announcer": "^3.4.2", + "@react-aria/selection": "^3.24.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/grid": "^3.11.2", + "@react-stately/selection": "^3.20.2", + "@react-types/checkbox": "^3.9.4", + "@react-types/grid": "^3.3.2", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7062,18 +5142,18 @@ } }, "node_modules/@react-aria/i18n": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.7.tgz", - "integrity": "sha512-eLbYO2xrpeOKIEmLv2KD5LFcB0wltFqS+pUjsOzkKZg6H3b6AFDmJPxr/a0x2KGHtpGJvuHwCSbpPi9PzSSQLg==", + "version": "3.12.9", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.9.tgz", + "integrity": "sha512-Fim0FLfY05kcpIILdOtqcw58c3sksvmVY8kICSwKCuSek4wYfwJdU28p/sRptw4adJhqN8Cbssvkf/J8zL2GgA==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/message": "^3.1.6", - "@internationalized/number": "^3.6.0", - "@internationalized/string": "^3.2.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "@internationalized/date": "^3.8.1", + "@internationalized/message": "^3.1.7", + "@internationalized/number": "^3.6.2", + "@internationalized/string": "^3.2.6", + "@react-aria/ssr": "^3.9.8", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7082,15 +5162,15 @@ } }, "node_modules/@react-aria/interactions": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.24.1.tgz", - "integrity": "sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.1.tgz", + "integrity": "sha512-ntLrlgqkmZupbbjekz3fE/n3eQH2vhncx8gUp0+N+GttKWevx7jos11JUBjnJwb1RSOPgRUFcrluOqBp0VgcfQ==", "license": "Apache-2.0", "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-stately/flags": "^3.1.0", - "@react-types/shared": "^3.28.0", + "@react-aria/ssr": "^3.9.8", + "@react-aria/utils": "^3.29.0", + "@react-stately/flags": "^3.1.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7099,13 +5179,13 @@ } }, "node_modules/@react-aria/label": { - "version": "3.7.16", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.16.tgz", - "integrity": "sha512-tPog3rc5pQ9s2/5bIBtmHtbj+Ebqs2yyJgJdFjZ1/HxrjF8HMrgtBPHCn/70YD5XvmuC3OSkua84kLjNX5rBbA==", + "version": "3.7.18", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.18.tgz", + "integrity": "sha512-Ht9D+xkI2Aysn+JNiHE+UZT4FUOGPF7Lfrmp7xdJCA/tEqqF3xW/pAh+UCNOnnWmH8jTYnUg3bCp4G6GQUxKCQ==", "license": "Apache-2.0", "dependencies": { - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7114,15 +5194,15 @@ } }, "node_modules/@react-aria/landmark": { - "version": "3.0.0-beta.18", - "resolved": "https://registry.npmjs.org/@react-aria/landmark/-/landmark-3.0.0-beta.18.tgz", - "integrity": "sha512-jFtWL7TYZrKucWNDx6ppUkGSqS2itkjhyLo9MIFqEg2mi4Lc2EoUjI/Gw9xMT+IJgebTcdQeXJpPskspl3Pojg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-aria/landmark/-/landmark-3.0.3.tgz", + "integrity": "sha512-mcmHijInDZZY3W9r0SeRuXsHW8Km9rBWKB3eoBz+PVuyJYMuabhQ2mUB5xTbqbnV++Srr7j/59g+Lbw5gAN4lw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/utils": "^3.27.0", - "@react-types/shared": "^3.27.0", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0", - "use-sync-external-store": "^1.2.0" + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", @@ -7130,15 +5210,15 @@ } }, "node_modules/@react-aria/link": { - "version": "3.7.10", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.10.tgz", - "integrity": "sha512-prf7s7O1PHAtA+H2przeGr8Ig4cBjk1f0kO0bQQAC3QvVOOUO7WLNU/N+xgOMNkCKEazDl21QM1o0bDRQCcXZg==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.8.1.tgz", + "integrity": "sha512-ujq7+XIP7OXHu7m2NObvHsl41B/oIBAYI0D+hsxEQo3+x6Q/OUxp9EX2sX4d7TBWvchFmhr6jJdER0QMmeSO/A==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-types/link": "^3.5.11", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-types/link": "^3.6.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7147,19 +5227,19 @@ } }, "node_modules/@react-aria/listbox": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.14.2.tgz", - "integrity": "sha512-pIwMNZs2WaH+XIax2yemI2CNs5LVV5ooVgEh7gTYoAVWj2eFa3Votmi54VlvkN937bhD5+blH32JRIu9U8XqVw==", + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.14.4.tgz", + "integrity": "sha512-bW3D7KcnQIF77F3zDRMIGQ6e5e1wHTNUtbKJLE423u1Dhc7K2x0pksir0gLGwElhiBW544lY1jv3kFLOeKa6ng==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/label": "^3.7.16", - "@react-aria/selection": "^3.23.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/collections": "^3.12.2", - "@react-stately/list": "^3.12.0", - "@react-types/listbox": "^3.5.5", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/selection": "^3.24.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/list": "^3.12.2", + "@react-types/listbox": "^3.7.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7168,33 +5248,33 @@ } }, "node_modules/@react-aria/live-announcer": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.1.tgz", - "integrity": "sha512-4X2mcxgqLvvkqxv2l1n00jTzUxxe0kkLiapBGH1LHX/CxA1oQcHDqv8etJ2ZOwmS/MSBBiWnv3DwYHDOF6ubig==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.2.tgz", + "integrity": "sha512-6+yNF9ZrZ4YJ60Oxy2gKI4/xy6WUv1iePDCFJkgpNVuOEYi8W8czff8ctXu/RPB25OJx5v2sCw9VirRogTo2zA==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@react-aria/menu": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.18.1.tgz", - "integrity": "sha512-czdJFNBW/B7QodyLDyQ+TvT8tZjCru7PrhUDkJS36ie/pTeQDFpIczgYjmKfJs5pP6olqLKXbwJy1iNTh01WTQ==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.18.3.tgz", + "integrity": "sha512-D0C4CM/QaxhCo2pLWNP+nfgnAeaSZWOdPMo9pnH/toRsoeTbnD6xO1hLhYsOx5ge+hrzjQvthjUrsjPB1AM/BQ==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.1", - "@react-aria/i18n": "^3.12.7", - "@react-aria/interactions": "^3.24.1", - "@react-aria/overlays": "^3.26.1", - "@react-aria/selection": "^3.23.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/collections": "^3.12.2", - "@react-stately/menu": "^3.9.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/tree": "^3.8.8", - "@react-types/button": "^3.11.0", - "@react-types/menu": "^3.9.15", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/overlays": "^3.27.1", + "@react-aria/selection": "^3.24.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/menu": "^3.9.4", + "@react-stately/selection": "^3.20.2", + "@react-stately/tree": "^3.8.10", + "@react-types/button": "^3.12.1", + "@react-types/menu": "^3.10.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7219,21 +5299,21 @@ } }, "node_modules/@react-aria/numberfield": { - "version": "3.11.11", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.11.tgz", - "integrity": "sha512-LKPU+l4YzZMcfuBs06G3+FIagvW3ZxYy7g5s7VRfktGAQkbCMQt3e8felk2aSdEK0kD6fXh/EiATxSgKNKnNAA==", + "version": "3.11.14", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.14.tgz", + "integrity": "sha512-UvhPlRwVmbNEBBqfgL41P10H1jL4C7P2hWqsVw72tZQJl5k5ujeOzRWk8mkmg+D4FCZvv4iSPJhmyEP8HkgsWg==", "license": "Apache-2.0", "dependencies": { - "@react-aria/i18n": "^3.12.6", - "@react-aria/interactions": "^3.24.0", - "@react-aria/spinbutton": "^3.6.12", - "@react-aria/textfield": "^3.17.0", - "@react-aria/utils": "^3.28.0", - "@react-stately/form": "^3.1.2", - "@react-stately/numberfield": "^3.9.10", - "@react-types/button": "^3.11.0", - "@react-types/numberfield": "^3.8.9", - "@react-types/shared": "^3.28.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/spinbutton": "^3.6.15", + "@react-aria/textfield": "^3.17.3", + "@react-aria/utils": "^3.29.0", + "@react-stately/form": "^3.1.4", + "@react-stately/numberfield": "^3.9.12", + "@react-types/button": "^3.12.1", + "@react-types/numberfield": "^3.8.11", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7242,21 +5322,21 @@ } }, "node_modules/@react-aria/overlays": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.26.1.tgz", - "integrity": "sha512-AtQ0mp+H0alFFkojKBADEUIc1AKFsSobH4QNoxQa3V4bZKQoXxga7cRhD5RRYanu3XCQOkIxZJ3vdVK/LVVBXA==", + "version": "3.27.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.27.1.tgz", + "integrity": "sha512-wepzwNLkgem6kVlLm6yk7zNIMAt0KPy8vAWlxdfpXWD/hBI30ULl71gL/BxRa5EYG1GMvlOwNti3whzy9lm3eQ==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.1", - "@react-aria/i18n": "^3.12.7", - "@react-aria/interactions": "^3.24.1", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.28.1", - "@react-aria/visually-hidden": "^3.8.21", - "@react-stately/overlays": "^3.6.14", - "@react-types/button": "^3.11.0", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/ssr": "^3.9.8", + "@react-aria/utils": "^3.29.0", + "@react-aria/visually-hidden": "^3.8.23", + "@react-stately/overlays": "^3.6.16", + "@react-types/button": "^3.12.1", + "@react-types/overlays": "^3.8.15", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7351,17 +5431,17 @@ } }, "node_modules/@react-aria/selection": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.23.1.tgz", - "integrity": "sha512-z4vVw7Fw0+nK46PPlCV8TyieCS+EOUp3eguX8833fFJ/QDlFp3Ewgw2T5qCIix5U3siXPYU0ZmAMOdrjibdGpQ==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.24.1.tgz", + "integrity": "sha512-nHUksgjg92iHgseH9L+krk9rX19xGJLTDeobKBX7eoAXQMqQjefu+oDwT0VYdI/qqNURNELE/KPZIVLC4PB81w==", "license": "Apache-2.0", "dependencies": { - "@react-aria/focus": "^3.20.1", - "@react-aria/i18n": "^3.12.7", - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/selection": "^3.20.0", - "@react-types/shared": "^3.28.0", + "@react-aria/focus": "^3.20.3", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/selection": "^3.20.2", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7405,16 +5485,16 @@ } }, "node_modules/@react-aria/spinbutton": { - "version": "3.6.13", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.13.tgz", - "integrity": "sha512-phF7WU4mTryPY+IORqQC6eGvCdLItJ41KJ8ZWmpubnLkhqyyxBn8BirXlxWC5UIIvir9c3oohX2Vip/bE5WJiA==", + "version": "3.6.15", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.15.tgz", + "integrity": "sha512-dVKaRgrSU2utxCd4kqAA8BPrC1PVI1eiJ8gvlVbg25LbwK4dg1WPXQUK+80TbrJc9mOEooPiJvzw59IoQLMNRg==", "license": "Apache-2.0", "dependencies": { - "@react-aria/i18n": "^3.12.7", - "@react-aria/live-announcer": "^3.4.1", - "@react-aria/utils": "^3.28.1", - "@react-types/button": "^3.11.0", - "@react-types/shared": "^3.28.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/live-announcer": "^3.4.2", + "@react-aria/utils": "^3.29.0", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7423,9 +5503,9 @@ } }, "node_modules/@react-aria/ssr": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz", - "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==", + "version": "3.9.8", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.8.tgz", + "integrity": "sha512-lQDE/c9uTfBSDOjaZUJS8xP2jCKVk4zjQeIlCH90xaLhHDgbpCdns3xvFpJJujfj3nI4Ll9K7A+ONUBDCASOuw==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" @@ -7524,19 +5604,19 @@ } }, "node_modules/@react-aria/textfield": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.17.1.tgz", - "integrity": "sha512-W/4nBdyXTOFPQXJ8eRK+74QFIpGR+x24SRjdl+y3WO6gFJNiiopWj8+slSK/T8LoD3g3QlzrtX/ooVQHCG3uQw==", + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.17.3.tgz", + "integrity": "sha512-p/Z0fyE0CnzIrnCf42gxeSCNYon7//XkcbPwUS4U9dz2VLk2GnEn9NZXPYgTp+08ebQEn0pB1QIchX79yFEguw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/form": "^3.0.14", - "@react-aria/interactions": "^3.24.1", - "@react-aria/label": "^3.7.16", - "@react-aria/utils": "^3.28.1", - "@react-stately/form": "^3.1.2", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", - "@react-types/textfield": "^3.12.0", + "@react-aria/form": "^3.0.16", + "@react-aria/interactions": "^3.25.1", + "@react-aria/label": "^3.7.18", + "@react-aria/utils": "^3.29.0", + "@react-stately/form": "^3.1.4", + "@react-stately/utils": "^3.10.6", + "@react-types/shared": "^3.29.1", + "@react-types/textfield": "^3.12.2", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7545,18 +5625,18 @@ } }, "node_modules/@react-aria/toast": { - "version": "3.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@react-aria/toast/-/toast-3.0.0-beta.19.tgz", - "integrity": "sha512-LCMTcmSmum5CzBk+DIec66q6pJGEl+InQPJdsby7QG/row0ka6wHPvul78HVseN7dzg6G3xVjvHtVPOixkuegA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-aria/toast/-/toast-3.0.3.tgz", + "integrity": "sha512-7HWTKIVwS1JFC8//BQbRtGFaAdq4SljvI3yI5amLr90CyVM0sugTtcSX9a8BPnp1j9ao+6bmOi/wrV48mze1PA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/i18n": "^3.12.5", - "@react-aria/interactions": "^3.23.0", - "@react-aria/landmark": "3.0.0-beta.18", - "@react-aria/utils": "^3.27.0", - "@react-stately/toast": "3.0.0-beta.7", - "@react-types/button": "^3.10.2", - "@react-types/shared": "^3.27.0", + "@react-aria/i18n": "^3.12.9", + "@react-aria/interactions": "^3.25.1", + "@react-aria/landmark": "^3.0.3", + "@react-aria/utils": "^3.29.0", + "@react-stately/toast": "^3.1.0", + "@react-types/button": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7565,16 +5645,16 @@ } }, "node_modules/@react-aria/toggle": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.11.1.tgz", - "integrity": "sha512-9SBvSFpGcLODN1u64tQ8aL6uLFnuuJRA2N0Kjmxp5PE1gk8IKG+BXsjZmq7auDAN5WPISBXw1RzEOmbghruBTQ==", + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.11.3.tgz", + "integrity": "sha512-S6ShToNR6TukRJh8qDdyl9b2Bcsx43eurUB5USANn4ycPov8+bIxQnxiknjssZx7jD8vX4jruuNh7BjFbNsGFw==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-stately/toggle": "^3.8.2", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-stately/toggle": "^3.8.4", + "@react-types/checkbox": "^3.9.4", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7674,14 +5754,14 @@ } }, "node_modules/@react-aria/visually-hidden": { - "version": "3.8.21", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.21.tgz", - "integrity": "sha512-iii5qO+cVHrHiOeiBYCnTRUQG2eOgEPFmiMG4dAuby8+pJJ8U4BvffX2sDTYWL6ztLLBYyrsUHPSw1Ld03JhmA==", + "version": "3.8.23", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.23.tgz", + "integrity": "sha512-D37GHtAcxCck8BtCiGTNDniGqtldJuN0cRlW1PJ684zM4CdmkSPqKbt5IUKUfqheS9Vt7HxYsj1VREDW+0kaGA==", "license": "Apache-2.0", "dependencies": { - "@react-aria/interactions": "^3.24.1", - "@react-aria/utils": "^3.28.1", - "@react-types/shared": "^3.28.0", + "@react-aria/interactions": "^3.25.1", + "@react-aria/utils": "^3.29.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7703,15 +5783,15 @@ } }, "node_modules/@react-stately/calendar": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.7.1.tgz", - "integrity": "sha512-DXsJv2Xm1BOqJAx5846TmTG1IZ0oKrBqYAzWZG7hiDq3rPjYGgKtC/iJg9MUev6pHhoZlP9fdRCNFiCfzm5bLQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.8.1.tgz", + "integrity": "sha512-pTPRmPRD/0JeKhCRvXhVIH/yBimtIHnZGUxH12dcTl3MLxjXQDTn6/LWK0s4rzJcjsC+EzGUCVBBXgESb7PUlw==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@react-stately/utils": "^3.10.5", - "@react-types/calendar": "^3.6.1", - "@react-types/shared": "^3.28.0", + "@internationalized/date": "^3.8.1", + "@react-stately/utils": "^3.10.6", + "@react-types/calendar": "^3.7.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7719,15 +5799,15 @@ } }, "node_modules/@react-stately/checkbox": { - "version": "3.6.12", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.12.tgz", - "integrity": "sha512-gMxrWBl+styUD+2ntNIcviVpGt2Y+cHUGecAiNI3LM8/K6weI7938DWdLdK7i0gDmgSJwhoNRSavMPI1W6aMZQ==", + "version": "3.6.14", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.14.tgz", + "integrity": "sha512-eGl0GP/F/nUrA33gDCYikyXK+Yer7sFOx8T4EU2AF4E8n1VQIRiVNaxDg7Ar6L3CMKor01urppFHFJsBUnSgyw==", "license": "Apache-2.0", "dependencies": { - "@react-stately/form": "^3.1.2", - "@react-stately/utils": "^3.10.5", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", + "@react-stately/form": "^3.1.4", + "@react-stately/utils": "^3.10.6", + "@react-types/checkbox": "^3.9.4", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7735,12 +5815,12 @@ } }, "node_modules/@react-stately/collections": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.2.tgz", - "integrity": "sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==", + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.4.tgz", + "integrity": "sha512-H+47fRkwYX2/BdSA+NLTzbR+8QclZXyBgC7tHH3dzljyxNimhrMDnbmk520nvGCebNf3nuxtFHq9iVTLpazSVA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7768,19 +5848,19 @@ } }, "node_modules/@react-stately/combobox": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.3.tgz", - "integrity": "sha512-l4yr8lSHfwFdA+ZpY15w98HkgF1iHytjerdQkMa4C0dCl4NWUyyWMOcgmHA8G56QEdbFo5dXyW6hzF2PJnUOIg==", + "version": "3.10.5", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.10.5.tgz", + "integrity": "sha512-27SkClMqbMAKuVnmXhYzYisbLfzV7MO/DEiqWO4/3l+PZ+whL7Wi/Ek7Wqlfluid/y4pN4EkHCKNt4HJ2mhORQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/form": "^3.1.2", - "@react-stately/list": "^3.12.0", - "@react-stately/overlays": "^3.6.14", - "@react-stately/select": "^3.6.11", - "@react-stately/utils": "^3.10.5", - "@react-types/combobox": "^3.13.3", - "@react-types/shared": "^3.28.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/form": "^3.1.4", + "@react-stately/list": "^3.12.2", + "@react-stately/overlays": "^3.6.16", + "@react-stately/select": "^3.6.13", + "@react-stately/utils": "^3.10.6", + "@react-types/combobox": "^3.13.5", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7801,18 +5881,18 @@ } }, "node_modules/@react-stately/datepicker": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.13.0.tgz", - "integrity": "sha512-I0Y/aQraQyRLMWnh5tBZMiZ0xlmvPjFErXnQaeD7SdOYUHNtQS4BAQsMByQrMfg8uhOqUTKlIh7xEZusuqYWOA==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.14.1.tgz", + "integrity": "sha512-ad3IOrRppy/F8FZpznGacsaWWHdzUGZ4vpymD+y6TYeQ+RQvS9PLA5Z1TanH9iqLZgkf6bvVggJFg/hhDh2hmg==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@internationalized/string": "^3.2.5", - "@react-stately/form": "^3.1.2", - "@react-stately/overlays": "^3.6.14", - "@react-stately/utils": "^3.10.5", - "@react-types/datepicker": "^3.11.0", - "@react-types/shared": "^3.28.0", + "@internationalized/date": "^3.8.1", + "@internationalized/string": "^3.2.6", + "@react-stately/form": "^3.1.4", + "@react-stately/overlays": "^3.6.16", + "@react-stately/utils": "^3.10.6", + "@react-types/datepicker": "^3.12.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7848,21 +5928,21 @@ } }, "node_modules/@react-stately/flags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.0.tgz", - "integrity": "sha512-KSHOCxTFpBtxhIRcKwsD1YDTaNxFtCYuAUb0KEihc16QwqZViq4hasgPBs2gYm7fHRbw7WYzWKf6ZSo/+YsFlg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.1.tgz", + "integrity": "sha512-XPR5gi5LfrPdhxZzdIlJDz/B5cBf63l4q6/AzNqVWFKgd0QqY5LvWJftXkklaIUpKSJkIKQb8dphuZXDtkWNqg==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@react-stately/form": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.2.tgz", - "integrity": "sha512-sKgkV+rxeqM1lf0dCq2wWzdYa5Z0wz/MB3yxjodffy8D43PjFvUOMWpgw/752QHPGCd1XIxA3hE58Dw9FFValg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.1.4.tgz", + "integrity": "sha512-A6GOaZ9oEIo5/XOE+JT9Z8OBt0osIOfes4EcIxGS1C9ght/Smg0gNcIJ2/Wle8qmro4RoJcza2yJ+EglVOuE0w==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7870,15 +5950,15 @@ } }, "node_modules/@react-stately/grid": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.11.0.tgz", - "integrity": "sha512-Wp6kza+2MzNybls9pRWvIwAHwMnSV1eUZXZxLwJy+JVS5lghkr731VvT+YD79z70osJKmgxgmiQGm4/yfetXdA==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.11.2.tgz", + "integrity": "sha512-P0vfK5B1NW8glYD6QMrR2X/7UMXx2J8v48QIQV6KgLZjFbyXhzRb+MY0BoIy4tUfJL0yQU2GKbKKVSUIQxbv0g==", "license": "Apache-2.0", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/selection": "^3.20.0", - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/selection": "^3.20.2", + "@react-types/grid": "^3.3.2", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7905,15 +5985,15 @@ } }, "node_modules/@react-stately/list": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.12.0.tgz", - "integrity": "sha512-6niQWJ6TZwOKLAOn2wIsxtOvWenh3rKiKdOh4L4O4f7U+h1Hu000Mu4lyIQm2P9uZAkF2Y5QNh6dHN+hSd6h3A==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.12.2.tgz", + "integrity": "sha512-XPGvdPidOV4hnpmaUNc4C/1jX7ZhBwmAI9p6bEXDA3du3XrWess6MWcaQvPxXbrZ6ZX8/OyOC2wp7ixJoJRGyA==", "license": "Apache-2.0", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/selection": "^3.20.2", + "@react-stately/utils": "^3.10.6", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7921,14 +6001,14 @@ } }, "node_modules/@react-stately/menu": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.9.2.tgz", - "integrity": "sha512-mVCFMUQnEMs6djOqgHC2d46k/5Mv5f6UYa4TMnNDSiY8QlHG4eIdmhBmuYpOwWuOOHJ0xKmLQ4PWLzma/mBorg==", + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.9.4.tgz", + "integrity": "sha512-sqYcSBuTEtCebZuByUou2aZzwlnrrOlrvmGwFNJy49N3LXXXPENCcCERuWa8TE9eBevIVTQorBZlID6rFG+wdQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/overlays": "^3.6.14", - "@react-types/menu": "^3.9.15", - "@react-types/shared": "^3.28.0", + "@react-stately/overlays": "^3.6.16", + "@react-types/menu": "^3.10.1", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7936,15 +6016,15 @@ } }, "node_modules/@react-stately/numberfield": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.10.tgz", - "integrity": "sha512-47ta1GyfLsSaDJIdH6A0ARttPV32nu8a5zUSE2hTfRqwgAd3ksWW5ZEf6qIhDuhnE9GtaIuacsctD8C7M3EOPw==", + "version": "3.9.12", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.12.tgz", + "integrity": "sha512-E56RuRRdu/lzd8e5aEifP4n8CL/as0sZqIQFSyMv/ZUIIGeksqy+zykzo01skaHKY8u2NixrVHPVDtvPcRuooA==", "license": "Apache-2.0", "dependencies": { - "@internationalized/number": "^3.6.0", - "@react-stately/form": "^3.1.2", - "@react-stately/utils": "^3.10.5", - "@react-types/numberfield": "^3.8.9", + "@internationalized/number": "^3.6.2", + "@react-stately/form": "^3.1.4", + "@react-stately/utils": "^3.10.6", + "@react-types/numberfield": "^3.8.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7952,13 +6032,13 @@ } }, "node_modules/@react-stately/overlays": { - "version": "3.6.14", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.14.tgz", - "integrity": "sha512-RRalTuHdwrKO1BmXKaqBtE1GGUXU4VUAWwgh4lsP2EFSixDHmOVLxHFDWYvOPChBhpi8KXfLEgm6DEgPBvLBZQ==", + "version": "3.6.16", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.16.tgz", + "integrity": "sha512-+Ve/TBlUNg3otVC4ZfCq1a8q8FwC7xNebWkVOCGviTqiYodPCGqBwR9Z1xonuFLF/HuQYqALHHTOZtxceU+nVQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/utils": "^3.10.5", - "@react-types/overlays": "^3.8.13", + "@react-stately/utils": "^3.10.6", + "@react-types/overlays": "^3.8.15", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7966,15 +6046,15 @@ } }, "node_modules/@react-stately/radio": { - "version": "3.10.11", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.11.tgz", - "integrity": "sha512-dclixp3fwNBbgpbi66x36YGaNwN7hI1nbuhkcnLAE0hWkTO8/wtKBgGqRKSfNV7MSiWlhBhhcdPcQ+V7q7AQIQ==", + "version": "3.10.13", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.13.tgz", + "integrity": "sha512-q7UKcVYY7rqpxKfYRzvKVEqFhxElDFX2c+xliZQtjXuSexhxRb2xjEh+bDkhzbXzrJkrBT6VmE/rSYPurC3xTw==", "license": "Apache-2.0", "dependencies": { - "@react-stately/form": "^3.1.2", - "@react-stately/utils": "^3.10.5", - "@react-types/radio": "^3.8.7", - "@react-types/shared": "^3.28.0", + "@react-stately/form": "^3.1.4", + "@react-stately/utils": "^3.10.6", + "@react-types/radio": "^3.8.9", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -7996,16 +6076,16 @@ } }, "node_modules/@react-stately/select": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.11.tgz", - "integrity": "sha512-8pD4PNbZQNWg33D4+Fa0mrajUCYV3aA5YIwW3GY8NSRwBspaW4PKSZJtDT5ieN0WAO44YkAmX4idRaMAvqRusA==", + "version": "3.6.13", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.13.tgz", + "integrity": "sha512-saZo67CreQZPdmqvz9+P6N4kjohpwdVncH98qBi0Q2FvxGAMnpJQgx97rtfDvnSziST5Yx1JnMI4kSSndbtFwg==", "license": "Apache-2.0", "dependencies": { - "@react-stately/form": "^3.1.2", - "@react-stately/list": "^3.12.0", - "@react-stately/overlays": "^3.6.14", - "@react-types/select": "^3.9.10", - "@react-types/shared": "^3.28.0", + "@react-stately/form": "^3.1.4", + "@react-stately/list": "^3.12.2", + "@react-stately/overlays": "^3.6.16", + "@react-types/select": "^3.9.12", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8013,14 +6093,14 @@ } }, "node_modules/@react-stately/selection": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.20.0.tgz", - "integrity": "sha512-woUSHMTyQiNmCf63Dyot1WXFfWnm6PFYkI9kymcq1qrrly4g/j27U+5PaRWOHawMiJwn1e1GTogk8B+K5ahshQ==", + "version": "3.20.2", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.20.2.tgz", + "integrity": "sha512-Fw6nnG+VKMsncsY4SNxGYOhnHojVFzFv+Uhy6P39QBp6AXtSaRKMg2VR4MPxQ7XgOjHh5ZuSvCY1RwocweqjwQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/utils": "^3.10.6", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8028,14 +6108,14 @@ } }, "node_modules/@react-stately/slider": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.6.2.tgz", - "integrity": "sha512-5S9omr29Viv2PRyZ056ZlazGBM8wYNNHakxsTHcSdG/G8WQLrWspWIMiCd4B37cCTkt9ik6AQ6Y3muHGXJI0IQ==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.6.4.tgz", + "integrity": "sha512-6SdG0VJZLMRIBnPjqkbIsdyQcW9zJ5Br716cl/7kLT9owiIwMJiAdjdYHab5+8ShWzU2D8Ae+LdQk8ZxIiIjkg==", "license": "Apache-2.0", "dependencies": { - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", - "@react-types/slider": "^3.7.9", + "@react-stately/utils": "^3.10.6", + "@react-types/shared": "^3.29.1", + "@react-types/slider": "^3.7.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8043,19 +6123,19 @@ } }, "node_modules/@react-stately/table": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.14.0.tgz", - "integrity": "sha512-ALHIgAgSyHeyUiBDWIxmIEl9P4Gy5jlGybcT/rDBM8x7Ik/C/0Hd9f9Y5ubiZSpUGeAXlIaeEdSm0HBfYtQVRw==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.14.2.tgz", + "integrity": "sha512-SqE5A/Ve5H2ApnAblMGBMGRzY7cgdQmNPzXB8tGVc38NsC/STmMkq9m54gAl8dBVNbLzzd6HJBe9lqz5keYIhQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/flags": "^3.1.0", - "@react-stately/grid": "^3.11.0", - "@react-stately/selection": "^3.20.0", - "@react-stately/utils": "^3.10.5", - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0", - "@react-types/table": "^3.11.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/flags": "^3.1.1", + "@react-stately/grid": "^3.11.2", + "@react-stately/selection": "^3.20.2", + "@react-stately/utils": "^3.10.6", + "@react-types/grid": "^3.3.2", + "@react-types/shared": "^3.29.1", + "@react-types/table": "^3.13.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8063,14 +6143,14 @@ } }, "node_modules/@react-stately/tabs": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.8.0.tgz", - "integrity": "sha512-I8ctOsUKPviJ82xWAcZMvWqz5/VZurkE+W9n9wrFbCgHAGK/37bx+PM1uU/Lk4yKp8WrPYSFOEPil5liD+M+ew==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.8.2.tgz", + "integrity": "sha512-lNpby7zUVdAeqo3mjGdPBxppEskOLyqR82LWBtP8Xg4olnjA5RmDFOuoJkIFttDX689zamjN3OE+Ra6WWgJczg==", "license": "Apache-2.0", "dependencies": { - "@react-stately/list": "^3.12.0", - "@react-types/shared": "^3.28.0", - "@react-types/tabs": "^3.3.13", + "@react-stately/list": "^3.12.2", + "@react-types/shared": "^3.29.1", + "@react-types/tabs": "^3.3.15", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8078,27 +6158,27 @@ } }, "node_modules/@react-stately/toast": { - "version": "3.0.0-beta.7", - "resolved": "https://registry.npmjs.org/@react-stately/toast/-/toast-3.0.0-beta.7.tgz", - "integrity": "sha512-+KDkaOS5Y4ApOfiP0HHij4ySwAd1VM9/pI4rVTyHrzkp0R2Q0eBxZ74MpWMpVfJa2lSjb/qEm60tqJ3A+4R/cQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@react-stately/toast/-/toast-3.1.0.tgz", + "integrity": "sha512-9W2+evz+EARrjkR1QPLlOL5lcNpVo6PjMAIygRSaCPJ6ftQAZ6B+7xTFGPFabWh83gwXQDUgoSwC3/vosvxZaQ==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0", - "use-sync-external-store": "^1.2.0" + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/toggle": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.2.tgz", - "integrity": "sha512-5KPpT6zvt8H+WC9UbubhCTZltREeYb/3hKdl4YkS7BbSOQlHTFC0pOk8SsQU70Pwk26jeVHbl5le/N8cw00x8w==", + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.8.4.tgz", + "integrity": "sha512-JbKoXhkJ5P5nCrNXChMos3yNqkIeGXPDEMS/dfkHlsjQYxJfylRm4j/nWoDXxxkUmfkvXcNEMofMn9iO1+H0DQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/utils": "^3.10.5", - "@react-types/checkbox": "^3.9.2", - "@react-types/shared": "^3.28.0", + "@react-stately/utils": "^3.10.6", + "@react-types/checkbox": "^3.9.4", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8106,13 +6186,13 @@ } }, "node_modules/@react-stately/tooltip": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.5.2.tgz", - "integrity": "sha512-z81kwZWnnf2SE5/rHMrejH5uQu3dXUjrhIa2AGT038DNOmRyS9TkFBywPCiiE7tHpUg/rxZrPxx01JFGvOkmgg==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.5.4.tgz", + "integrity": "sha512-HxNTqn9nMBuGbEVeeuZyhrzNbyW7sgwk+8o0mN/BrMrk7E/UBhyL2SUxXnAUQftpTjX+29hmx1sPhIprIDzR3Q==", "license": "Apache-2.0", "dependencies": { - "@react-stately/overlays": "^3.6.14", - "@react-types/tooltip": "^3.4.15", + "@react-stately/overlays": "^3.6.16", + "@react-types/tooltip": "^3.4.17", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8120,15 +6200,15 @@ } }, "node_modules/@react-stately/tree": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.8.tgz", - "integrity": "sha512-21WB9kKT9+/tr6B8Q4G53tZXl/3dftg5sZqCR6x055FGd2wGVbkxsLhQLmC+XVkTiLU9pB3BjvZ9eaSj1D8Wmg==", + "version": "3.8.10", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.10.tgz", + "integrity": "sha512-sMqBRKAAZMiXJwlzAFpkXqUaGlNBfKnL8usAiKdoeGcLLJt2Ni9gPoPOLBJSPqLOAFCgLWtr5IYjdhel9aXRzQ==", "license": "Apache-2.0", "dependencies": { - "@react-stately/collections": "^3.12.2", - "@react-stately/selection": "^3.20.0", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.28.0", + "@react-stately/collections": "^3.12.4", + "@react-stately/selection": "^3.20.2", + "@react-stately/utils": "^3.10.6", + "@react-types/shared": "^3.29.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -8136,9 +6216,9 @@ } }, "node_modules/@react-stately/utils": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz", - "integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==", + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.6.tgz", + "integrity": "sha512-O76ip4InfTTzAJrg8OaZxKU4vvjMDOpfA/PGNOytiXwBbkct2ZeZwaimJ8Bt9W1bj5VsZ81/o/tW4BacbdDOMA==", "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" @@ -8162,6 +6242,18 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, + "node_modules/@react-types/accordion": { + "version": "3.0.0-alpha.26", + "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.26.tgz", + "integrity": "sha512-OXf/kXcD2vFlEnkcZy/GG+a/1xO9BN7Uh3/5/Ceuj9z2E/WwD55YwU3GFM5zzkZ4+DMkdowHnZX37XnmbyD3Mg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.27.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/@react-types/autocomplete": { "version": "3.0.0-alpha.29", "resolved": "https://registry.npmjs.org/@react-types/autocomplete/-/autocomplete-3.0.0-alpha.29.tgz", @@ -8177,50 +6269,50 @@ } }, "node_modules/@react-types/breadcrumbs": { - "version": "3.7.11", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.11.tgz", - "integrity": "sha512-pMvMLPFr7qs4SSnQ0GyX7i3DkWVs9wfm1lGPFbBO7pJLrHTSK/6Ii4cTEvP6d5o2VgjOVkvce9xCLWW5uosuEQ==", + "version": "3.7.13", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.13.tgz", + "integrity": "sha512-x94KEZaLIeHt9lqAkuaOopX5+rqCTMSHsciThUsBHK7QT64zrw6x2G1WKQ4zB4h52RGF5b+3sFXeR4bgX2sVLQ==", "license": "Apache-2.0", "dependencies": { - "@react-types/link": "^3.5.11", - "@react-types/shared": "^3.28.0" + "@react-types/link": "^3.6.1", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/button": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.11.0.tgz", - "integrity": "sha512-gJh5i0JiBiZGZGDo+tXMp6xbixPM7IKZ0sDuxTYBG49qNzzWJq0uNYltO3emwSVXFSsBgRV/Wu8kQGhfuN7wIw==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.12.1.tgz", + "integrity": "sha512-z87stl4llWTi4C5qhUK1PKcEsG59uF/ZQpkRhMzX0KfgXobJY6yiIrry2xrpnlTPIVST6K1+kARhhSDOZ8zhLw==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/calendar": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.6.1.tgz", - "integrity": "sha512-EMbFJX/3gD5j+R0qZEGqK+wlhBxMSHhGP8GqP9XGbpuJPE3w9/M/PVWdh8FUdzf9srYxPOq5NgiGI1JUJvdZqw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.7.1.tgz", + "integrity": "sha512-a/wGT9vZewPNL72Xni8T/gv4IS2w6iRtryqMF425OL+kaCQrxJYlkDxb74bQs9+k9ZYabrxJgz9vFcFnY7S9gw==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@react-types/shared": "^3.28.0" + "@internationalized/date": "^3.8.1", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/checkbox": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.2.tgz", - "integrity": "sha512-BruOLjr9s0BS2+G1Q2ZZ0ubnSTG54hZWr59lCHXaLxMdA/+KVsR6JVMQuYKsW0P8RDDlQXE/QGz3n9yB/Ara4A==", + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.9.4.tgz", + "integrity": "sha512-fU3Q1Nw+zbXKm68ba8V7cQzpiX0rIiAUKrBTl2BK97QiTlGBDvMCf4TfEuaNoGbJq+gx+X3n/3yr6c3IAb0ZIg==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" @@ -8240,101 +6332,101 @@ } }, "node_modules/@react-types/combobox": { - "version": "3.13.3", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.3.tgz", - "integrity": "sha512-ASPLWuHke4XbnoOWUkNTguUa2cnpIsHPV0bcnfushC0yMSC4IEOlthstEbcdzjVUpWXSyaoI1R4POXmdIP53Nw==", + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.5.tgz", + "integrity": "sha512-wqHBF0YDkrp4Ylyxpd3xhnDECe5eao27bsu+4AvjlVKtaxaoppNq2MwSzkuSSS/GEUXT6K9DDjrGFcp07ad5gA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/datepicker": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.11.0.tgz", - "integrity": "sha512-GAYgPzqKvd1lR2sLYYMlUkNg2+QoM2uVUmpeQLP1SbYpDr1y8lG5cR54em1G4X/qY4+nCWGiwhRC2veP0D0kfA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.12.1.tgz", + "integrity": "sha512-+wv57fVd6Y/+KnHNEmVzfrQtWs85Ga1Xb63AIkBk+E294aMqFYqRg0dQds6V/qrP758TWnXUrhKza1zMbjHalw==", "license": "Apache-2.0", "dependencies": { - "@internationalized/date": "^3.7.0", - "@react-types/calendar": "^3.6.1", - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0" + "@internationalized/date": "^3.8.1", + "@react-types/calendar": "^3.7.1", + "@react-types/overlays": "^3.8.15", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/dialog": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.16.tgz", - "integrity": "sha512-2D16XjuW9fG3LkVIXu3RzUp3zcK2IZOWlAl+r5i0aLw2Q0QHyYMfGbmgvhxVeAhxhEj/57/ziSl/8rJ9pzmFnw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.18.tgz", + "integrity": "sha512-g18CzT5xmiX/numpS6MrOGEGln8Xp9rr+zO70Dg+jM4GBOjXZp3BeclYQr9uisxGaj2uFLnORv9gNMMKxLNF6A==", "license": "Apache-2.0", "dependencies": { - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0" + "@react-types/overlays": "^3.8.15", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/form": { - "version": "3.7.10", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.10.tgz", - "integrity": "sha512-PPn1OH/QlQLPaoFqp9EMVSlNk41aiNLwPaMyRhzYvFBGLmtbuX+7JCcH2DgV1peq3KAuUKRDdI2M1iVdHYwMPw==", + "version": "3.7.12", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.12.tgz", + "integrity": "sha512-EZ6jZDa9FbLmqvukrLoUp3LUEVE0ZnBB5H6MHhE+QmjYRAvtWljx70xOqnn7sHweuS4+O1kDt1Ec1X5DU+U+BA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/grid": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.0.tgz", - "integrity": "sha512-9IXgD5qXXxz+S9RK+zT8umuTCEcE4Yfdl0zUGyTCB8LVcPEeZuarLGXZY/12Rkbd8+r6MUIKTxMVD3Nq9X5Ksg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.2.tgz", + "integrity": "sha512-NwfydUbPc1zVi/Rp7+oRN2+vE1xMokc2J+nr0VcHwFGt1bR1psakHu45Pk/t763BDvPr/A3xIHc1rk3eWEhxJw==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/link": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.11.tgz", - "integrity": "sha512-aX9sJod9msdQaOT0NUTYNaBKSkXGPazSPvUJ/Oe4/54T3sYkWeRqmgJ84RH55jdBzpbObBTg8qxKiPA26a1q9Q==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.6.1.tgz", + "integrity": "sha512-IZDSc10AuVKe7V8Te+3q8d220oANE4N43iljQe3yHg7GZOfH/51bv8FPUukreLs1t2fgtGeNAzG71Ep+j/jXIw==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/listbox": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.5.tgz", - "integrity": "sha512-6cUjbYZVa0X2UMsenQ50ZaAssTUfzX3D0Q0Wd5nNf4W7ntBroDg6aBfNQoPDZikPUy8u+Y3uc/xZQfv30si7NA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.7.0.tgz", + "integrity": "sha512-26Lp0Gou502VJLDSrIpMg7LQuVHznxzyuSY/zzyNX9eopukXvHn682u90fwDqgmZz7dzxUOWtuwDea+bp/UjtA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/menu": { - "version": "3.9.15", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.15.tgz", - "integrity": "sha512-vNEeGxKLYBJc3rwImnEhSVzeIrhUSSRYRk617oGZowX3NkWxnixFGBZNy0w8j0z8KeNz3wRM4xqInRord1mDbw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.10.1.tgz", + "integrity": "sha512-wkyWzIqaCbUYiD7YXr8YvdimB1bxQHqgj6uE4MKzryCbVqb4L8fRUM0V6AHkQS1TxBYNkNn1h4g7XNd5Vmyf3Q==", "license": "Apache-2.0", "dependencies": { - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0" + "@react-types/overlays": "^3.8.15", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" @@ -8353,48 +6445,48 @@ } }, "node_modules/@react-types/numberfield": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.9.tgz", - "integrity": "sha512-YqhawYUULiZnUba0/9Vaps8WAT2lto4V6CD/X7s048jiOrHiiIX03RDEAQuKOt1UYdzBJDHfSew9uGMyf/nC0g==", + "version": "3.8.11", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.11.tgz", + "integrity": "sha512-D66Bop7M3JKzBV2vsECsVYfPrx8eRIx4/K2KLo/XjwMA7C34+Ou07f/bnD1TQQ/wr6XwiFxZTi6JsKDwnST+9Q==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/overlays": { - "version": "3.8.13", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.13.tgz", - "integrity": "sha512-xgT843KIh1otvYPQ6kCGTVUICiMF5UQ7SZUQZd4Zk3VtiFIunFVUvTvL03cpt0026UmY7tbv7vFrPKcT6xjsjw==", + "version": "3.8.15", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.15.tgz", + "integrity": "sha512-ppDfezvVYOJDHLZmTSmIXajxAo30l2a1jjy4G65uBYy8J8kTZU7mcfQql5Pii1TwybcNMsayf2WtPItiWmJnOA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/progress": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.10.tgz", - "integrity": "sha512-YDQExymdgORnSvXTtOW7SMhVOinlrD3bAlyCxO+hSAVaI1Ax38pW5dUFf6H85Jn7hLpjPQmQJvNsfsJ09rDFjQ==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.12.tgz", + "integrity": "sha512-wvhFz6vdlfKBtnzKvD/89N+0PF3yPQ+IVFRQvZ2TBrP7nF+ZA2pNLcZVcEYbKjHzmvEZRGu//ePC9hRJD9K30w==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/radio": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.7.tgz", - "integrity": "sha512-K620hnDmSR7u9cZfwJIfoLvmZS1j9liD7nDXBm+N6aiq9E+8sw312sIEX5iR2TrQ4xovvJQZN7DWxPVr+1LfWw==", + "version": "3.8.9", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.9.tgz", + "integrity": "sha512-l4uzlxmGGuR8IkWrMYdKj1sc3Pgo/LdfEGuIgK+d8kjPu0AZcnSgp5Oz035bCosZUabY6dEWxQHIoAH2zN7YZA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" @@ -8414,12 +6506,12 @@ } }, "node_modules/@react-types/select": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.10.tgz", - "integrity": "sha512-vvC5+cBSOu6J6lm74jhhP3Zvo1JO8m0FNX+Q95wapxrhs2aYYeMIgVuvNKeOuhVqzpBZxWmblBjCVNzCArZOaQ==", + "version": "3.9.12", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.12.tgz", + "integrity": "sha512-qo+9JS1kfMxuibmSmMp0faGKbeVftYnSk1f7Rh5PKi4tzMe3C0A9IAr27hUOfWeJMBOdetaoTpYmoXW6+CgW3g==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" @@ -8435,79 +6527,86 @@ } }, "node_modules/@react-types/slider": { - "version": "3.7.9", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.9.tgz", - "integrity": "sha512-MxCIVkrBSbN3AxIYW4hOpTcwPmIuY4841HF36sDLFWR3wx06z70IY3GFwV7Cbp814vhc84d4ABnPMwtE+AZRGQ==", + "version": "3.7.11", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.11.tgz", + "integrity": "sha512-uNhNLhVrt/2teXBOJSoZXyXg308A72qe1HOmlGdJcnh8iXA35y5ZHzeK1P6ZOJ37Aeh7bYGm3/UdURmFgSlW7w==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/switch": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.9.tgz", - "integrity": "sha512-7XIS5qycIKhdfcWfzl8n458/7tkZKCNfMfZmIREgozKOtTBirjmtRRsefom2hlFT8VIlG7COmY4btK3oEuEhnQ==", + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.11.tgz", + "integrity": "sha512-PJbZHwlE98OSuLzI6b1ei6Qa+FaiwlCRH3tOTdx/wPSdqmD3mRWEn7E9ftM6FC8hnxl/LrGLszQMT62yEQp5vQ==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/table": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.11.0.tgz", - "integrity": "sha512-83cGyszL+sQ0uFNZvrnvDMg2KIxpe3l5U48IH9lvq2NC41Y4lGG0d7sBU6wgcc3vnQ/qhOE5LcbceGKEi2YSyw==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.13.0.tgz", + "integrity": "sha512-kn+OsEWJfUSSb4N4J0yl+tqx5grDpcaWcu2J8hA62hQCr/Leuj946ScYaKA9a/p0MAaOAaeCWx/Zcss6F8gJIQ==", "license": "Apache-2.0", "dependencies": { - "@react-types/grid": "^3.3.0", - "@react-types/shared": "^3.28.0" + "@react-types/grid": "^3.3.2", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/tabs": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.13.tgz", - "integrity": "sha512-jqaK2U+WKChAmYBMO8QxQlFaIM8zDRY9+ignA1HwIyRw7vli4Mycc4RcMxTPm8krvgo+zuVrped9QB+hsDjCsQ==", + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.15.tgz", + "integrity": "sha512-VLgh9YLQdS4FQSk0sGTNHEVN2jeC0fZvOqEFHaEDgDyDgVOukxYuHjqVIx2IavYu1yNBrGO2b6P4M6dF+hcgwQ==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/textfield": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.12.0.tgz", - "integrity": "sha512-B0vzCIBUbYWrlFk+odVXrSmPYwds9G+G+HiOO/sJr4eZ4RYiIqnFbZ7qiWhWXaou7vi71iXVqKQ8mxA6bJwPEQ==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.12.2.tgz", + "integrity": "sha512-dMm0cGLG5bkJYvt6lqXIty5HXTZjuIpa9I8jAIYua//J8tESAOE9BA285Zl43kx7cZGtgrHKHVFjITDLNUrNhA==", "license": "Apache-2.0", "dependencies": { - "@react-types/shared": "^3.28.0" + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/tooltip": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.15.tgz", - "integrity": "sha512-qiYwQLiEwYqrt/m8iQA8abl9k/9LrbtMNoEevL4jN4H0I5NrG55E78GYTkSzBBYmhBO4KnPVT0SfGM1tYaQx/A==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.17.tgz", + "integrity": "sha512-yjySKA1uzJAbio+xGv03DUoWIajteqtsXMd4Y3AJEdBFqSYhXbyrgAxw0oJDgRAgRxY4Rx5Hrhvbt/z7Di94QQ==", "license": "Apache-2.0", "dependencies": { - "@react-types/overlays": "^3.8.13", - "@react-types/shared": "^3.28.0" + "@react-types/overlays": "^3.8.15", + "@react-types/shared": "^3.29.1" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.9", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz", + "integrity": "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", @@ -9140,9 +7239,9 @@ "license": "Apache-2.0" }, "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" @@ -9158,6 +7257,33 @@ "@swc/counter": "^0.1.3" } }, + "node_modules/@tanstack/react-virtual": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.3.tgz", + "integrity": "sha512-vCU+OTylXN3hdC8RKg68tPlBPjjxtzon7Ys46MgrSLE+JhSjSTPvoQifV6DQJeJmA8Q3KT6CphJbejupx85vFw==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.11.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.3.tgz", + "integrity": "sha512-v2mrNSnMwnPJtcVqNvV0c5roGCBqeogN8jDtgtuHCphdwBasOZ17x8UV8qpHUh+u0MLfX43c0uUHKje0s+Zb0w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -9254,9 +7380,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.17.tgz", + "integrity": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==", "license": "MIT" }, "node_modules/@types/lodash.debounce": { @@ -9300,9 +7426,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", - "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", + "version": "18.3.22", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.22.tgz", + "integrity": "sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -9310,9 +7436,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.6.tgz", - "integrity": "sha512-nf22//wEbKXusP6E9pfOCDwFdHAX4u172eaJI4YkDRQEZiorm6KfYnSC2SWLDMVWUOWPERmJnN0ujeAfTBLvrw==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "devOptional": true, "license": "MIT", "peerDependencies": { @@ -9344,171 +7470,180 @@ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "license": "ISC" }, + "node_modules/@ungap/with-resolvers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@ungap/with-resolvers/-/with-resolvers-0.1.0.tgz", + "integrity": "sha512-g7f0IkJdPW2xhY7H4iE72DAsIyfuwEFc6JWc2tYFwKDMWWAF699vGjrM348cwQuOXgHpe1gWFe+Eiyjx/ewvvw==", + "license": "ISC" + }, "node_modules/@vaadin/a11y-base": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.8.0-alpha15.tgz", - "integrity": "sha512-R/ns38UJKcLfcRY/bJ6G9iiJrUI/aS2Bnscugf3df5D9ZdSovTRCKAFAVYyPSvchapCTaSYqKBN4JjpbgqCieA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.8.0-beta1.tgz", + "integrity": "sha512-vCpH5X64BxIvZ05qzYZxX9BjbpOtNDAsW3JGgzlvHtXnv9r+x6iN1VcqLD5dMkXIBVTFP+QyDJ+cGX9sKpjdjQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/accordion": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.8.0-alpha15.tgz", - "integrity": "sha512-wxbFAQdp5PbpdB3nyHvwEIetbcaIrzDob/bSc0kvdXkgehhwAffIMKsx/zJ9BtbBhukQoF8yEvgZa0Hy4tfWTA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-24.8.0-beta1.tgz", + "integrity": "sha512-lsxQ0JlWH1kHCm6of6S8ruROvb43o2hKB83V1tSwPA6T3fA97P75cMQLLT7MSHDZOwEY2H+rPvpFrSn2h4dXyw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/details": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/details": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/app-layout": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.8.0-alpha15.tgz", - "integrity": "sha512-Qf5sNEcb7DVDPvM30wrVVpMUY5gSUYcxXU4717fNyXw6Y7DFD4sG9/tjTAyStvGRLyqMmHtmUFFrYUQ6hQdrwg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-24.8.0-beta1.tgz", + "integrity": "sha512-QILtwDHM6edHWFWuhPHgAB1rGdy10biBFgf110gnhZQDf+hbl1ZJoOEyYZbd8bsuO/neV3t0NSZxCfPuVv2UpA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.8.0-alpha15.tgz", - "integrity": "sha512-eJfISqZCi5S9rr7gYdVZIM3OSXZt22MTKEN0ZDZJVveJnGHUppL51mYrE6hRatqJPD9Lx/mjIHB7yaeZlw+sUQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.8.0-beta1.tgz", + "integrity": "sha512-HQuWUerZnEHjOTMbMrjhG0l759s+x/e4uDFPlpXgNIu5LQytGnx0GpEFRBmzpW8J2QPshgFj8lzhBDq9Ib47jw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/tooltip": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/tooltip": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/avatar-group": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.8.0-alpha15.tgz", - "integrity": "sha512-gvlTEDQAQpKmFwOhZ9lxZNteu8pWoMvSmp+32TSBuhLPQ6yz7CGyq9Kl8sSXBuJASE7PXdge342INKnEi6BqAQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-24.8.0-beta1.tgz", + "integrity": "sha512-wmNkpbWpSWoj2YC4pC0hH8xSlIdxUIJ8X/NELWkQF/XvFqRjm3uVurrUlYx2wUz/qIntLVEkpgh29peSHK6Jyg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/avatar": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/list-box": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/tooltip": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/avatar": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/list-box": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/tooltip": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/bundles": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.8.0-alpha15.tgz", - "integrity": "sha512-/XkNmSJttrUl2A9sNOtIdXLQnvBEigHMLydRdkv3iEBpxLuxJWxBg6OekyC8ejTm0Uwz/lx7/BBD7hqTbJODow==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-24.8.0-beta1.tgz", + "integrity": "sha512-irhJ1lYLl1rTH82gW1dIyS3oPX4n6Q6LiD1A70U1SwDsqkGK99MtL5Vur0dnUAYBD9AxBY8bkwynKcelq6+g7w==", "license": "(Apache-2.0 OR SEE LICENSE IN https://vaadin.com/license/cvdl-4.0)", "peerDependencies": { "@open-wc/dedupe-mixin": "1.4.0", "@polymer/polymer": "3.5.2", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/accordion": "24.8.0-alpha15", - "@vaadin/app-layout": "24.8.0-alpha15", - "@vaadin/avatar": "24.8.0-alpha15", - "@vaadin/avatar-group": "24.8.0-alpha15", - "@vaadin/board": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/card": "24.8.0-alpha15", - "@vaadin/charts": "24.8.0-alpha15", - "@vaadin/checkbox": "24.8.0-alpha15", - "@vaadin/checkbox-group": "24.8.0-alpha15", - "@vaadin/combo-box": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/confirm-dialog": "24.8.0-alpha15", - "@vaadin/context-menu": "24.8.0-alpha15", - "@vaadin/cookie-consent": "24.8.0-alpha15", - "@vaadin/crud": "24.8.0-alpha15", - "@vaadin/custom-field": "24.8.0-alpha15", - "@vaadin/dashboard": "24.8.0-alpha15", - "@vaadin/date-picker": "24.8.0-alpha15", - "@vaadin/date-time-picker": "24.8.0-alpha15", - "@vaadin/details": "24.8.0-alpha15", - "@vaadin/dialog": "24.8.0-alpha15", - "@vaadin/email-field": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/field-highlighter": "24.8.0-alpha15", - "@vaadin/form-layout": "24.8.0-alpha15", - "@vaadin/grid": "24.8.0-alpha15", - "@vaadin/grid-pro": "24.8.0-alpha15", - "@vaadin/horizontal-layout": "24.8.0-alpha15", - "@vaadin/icon": "24.8.0-alpha15", - "@vaadin/icons": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/integer-field": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/list-box": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/login": "24.8.0-alpha15", - "@vaadin/map": "24.8.0-alpha15", - "@vaadin/master-detail-layout": "24.8.0-alpha15", - "@vaadin/menu-bar": "24.8.0-alpha15", - "@vaadin/message-input": "24.8.0-alpha15", - "@vaadin/message-list": "24.8.0-alpha15", - "@vaadin/multi-select-combo-box": "24.8.0-alpha15", - "@vaadin/notification": "24.8.0-alpha15", - "@vaadin/number-field": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/password-field": "24.8.0-alpha15", - "@vaadin/polymer-legacy-adapter": "24.8.0-alpha15", - "@vaadin/popover": "24.8.0-alpha15", - "@vaadin/progress-bar": "24.8.0-alpha15", - "@vaadin/radio-group": "24.8.0-alpha15", - "@vaadin/rich-text-editor": "24.8.0-alpha15", - "@vaadin/scroller": "24.8.0-alpha15", - "@vaadin/select": "24.8.0-alpha15", - "@vaadin/side-nav": "24.8.0-alpha15", - "@vaadin/split-layout": "24.8.0-alpha15", - "@vaadin/tabs": "24.8.0-alpha15", - "@vaadin/tabsheet": "24.8.0-alpha15", - "@vaadin/text-area": "24.8.0-alpha15", - "@vaadin/text-field": "24.8.0-alpha15", - "@vaadin/time-picker": "24.8.0-alpha15", - "@vaadin/tooltip": "24.8.0-alpha15", - "@vaadin/upload": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/accordion": "24.8.0-beta1", + "@vaadin/app-layout": "24.8.0-beta1", + "@vaadin/avatar": "24.8.0-beta1", + "@vaadin/avatar-group": "24.8.0-beta1", + "@vaadin/board": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/card": "24.8.0-beta1", + "@vaadin/charts": "24.8.0-beta1", + "@vaadin/checkbox": "24.8.0-beta1", + "@vaadin/checkbox-group": "24.8.0-beta1", + "@vaadin/combo-box": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/confirm-dialog": "24.8.0-beta1", + "@vaadin/context-menu": "24.8.0-beta1", + "@vaadin/cookie-consent": "24.8.0-beta1", + "@vaadin/crud": "24.8.0-beta1", + "@vaadin/custom-field": "24.8.0-beta1", + "@vaadin/dashboard": "24.8.0-beta1", + "@vaadin/date-picker": "24.8.0-beta1", + "@vaadin/date-time-picker": "24.8.0-beta1", + "@vaadin/details": "24.8.0-beta1", + "@vaadin/dialog": "24.8.0-beta1", + "@vaadin/email-field": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/field-highlighter": "24.8.0-beta1", + "@vaadin/form-layout": "24.8.0-beta1", + "@vaadin/grid": "24.8.0-beta1", + "@vaadin/grid-pro": "24.8.0-beta1", + "@vaadin/horizontal-layout": "24.8.0-beta1", + "@vaadin/icon": "24.8.0-beta1", + "@vaadin/icons": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/integer-field": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/list-box": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/login": "24.8.0-beta1", + "@vaadin/map": "24.8.0-beta1", + "@vaadin/markdown": "24.8.0-beta1", + "@vaadin/master-detail-layout": "24.8.0-beta1", + "@vaadin/menu-bar": "24.8.0-beta1", + "@vaadin/message-input": "24.8.0-beta1", + "@vaadin/message-list": "24.8.0-beta1", + "@vaadin/multi-select-combo-box": "24.8.0-beta1", + "@vaadin/notification": "24.8.0-beta1", + "@vaadin/number-field": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/password-field": "24.8.0-beta1", + "@vaadin/polymer-legacy-adapter": "24.8.0-beta1", + "@vaadin/popover": "24.8.0-beta1", + "@vaadin/progress-bar": "24.8.0-beta1", + "@vaadin/radio-group": "24.8.0-beta1", + "@vaadin/rich-text-editor": "24.8.0-beta1", + "@vaadin/scroller": "24.8.0-beta1", + "@vaadin/select": "24.8.0-beta1", + "@vaadin/side-nav": "24.8.0-beta1", + "@vaadin/split-layout": "24.8.0-beta1", + "@vaadin/tabs": "24.8.0-beta1", + "@vaadin/tabsheet": "24.8.0-beta1", + "@vaadin/text-area": "24.8.0-beta1", + "@vaadin/text-field": "24.8.0-beta1", + "@vaadin/time-picker": "24.8.0-beta1", + "@vaadin/tooltip": "24.8.0-beta1", + "@vaadin/upload": "24.8.0-beta1", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "@vaadin/vaadin-usage-statistics": "2.1.3", - "@vaadin/vertical-layout": "24.8.0-alpha15", - "@vaadin/virtual-list": "24.8.0-alpha15", + "@vaadin/vertical-layout": "24.8.0-beta1", + "@vaadin/virtual-list": "24.8.0-beta1", "cookieconsent": "3.1.1", + "dompurify": "3.2.6", "highcharts": "9.2.2", "lit": "3.3.0", + "marked": "15.0.12", "ol": "6.13.0", "quickselect": "2.0.0", "rbush": "3.0.1" @@ -9637,6 +7772,9 @@ "@vaadin/map": { "optional": true }, + "@vaadin/markdown": { + "optional": true + }, "@vaadin/master-detail-layout": { "optional": true }, @@ -9733,12 +7871,18 @@ "cookieconsent": { "optional": true }, + "dompurify": { + "optional": true + }, "highcharts": { "optional": true }, "lit": { "optional": true }, + "marked": { + "optional": true + }, "ol": { "optional": true }, @@ -9751,87 +7895,87 @@ } }, "node_modules/@vaadin/button": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.8.0-alpha15.tgz", - "integrity": "sha512-rI1fkpUoEzTJNbMJ4EhaK1rvSnjMhYbgTWHqPTBwkonQShtjcqng61djCxpWCndE5tBAOE/YEMHtKuNybyVl5Q==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.8.0-beta1.tgz", + "integrity": "sha512-s7787a+fiABDPqB9kfUM1ophVnFBgT0571zc4HD/5+VieK2wnUiyLAZMLbjfJFEL60TO8tJPhg3wFvG+KHCxBQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/card": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.8.0-alpha15.tgz", - "integrity": "sha512-UC3WMCnBi9fK6aEv4OhK4mQB5So0E9GHIqBc3frHT38L1Dm1dmSWyuRC9s4v/GHhBcRFofAXy7BQnfhx40j5eQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/card/-/card-24.8.0-beta1.tgz", + "integrity": "sha512-NyRwg1pr1+GVER25D17QCxwite8dX4wiK3Uebq5862euUqXKNvMU2JrwPjYJUNgzURSsa7JA3JzHGrrcbNtBQQ==", "license": "Apache-2.0", "dependencies": { - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.8.0-alpha15.tgz", - "integrity": "sha512-thdYbQOzeYck9QckEB/XZ4zf5ZHaT30mU7ETg8VDiBmKrUsY6whA69EKbHTPkYiYAOcEH98JK4R9/uXLKW5e1A==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.8.0-beta1.tgz", + "integrity": "sha512-BKffcQSrO6/WstKiv6Dh6qqBpmx5Nifzq9FB+QaIOxyd+RNjbEDwxr0+ll3csWFXzgO0gjs0xtKvGDKJfRZcUw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/checkbox-group": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.8.0-alpha15.tgz", - "integrity": "sha512-yknvO0Ziwqs4vpBelPDkeD+YRZJcZOen1OiOidqAjBCPtNXLUlorSH6SHR6pk+/6QRTh+neW7oQVUTzdySKA7A==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-24.8.0-beta1.tgz", + "integrity": "sha512-ACzPE5uKiQRDJiH/o0QZ1SnNWICh7wcXnxxftGHNhqrDaMGoXxEUlw6HIq7bP0nu7B2T8EavRnPuzP6WC+ccSg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/checkbox": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/checkbox": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/combo-box": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.8.0-alpha15.tgz", - "integrity": "sha512-5PUeelG9ZPhDPPPS5AUvoLGCtANM4wlPqbjhEcA3YJG5wMNRgvgmJsbBkOaQlslV1iQPmE5z1GwzUty1A/b7+A==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-24.8.0-beta1.tgz", + "integrity": "sha512-riR1xifIl8litnX4NbrM8u78+Sb932Z2uFU4vVoc8FYLl9KiI71/A1vEWqeZs4MXMexIJJchbRmOFCmLCdX0lA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, @@ -9848,9 +7992,9 @@ } }, "node_modules/@vaadin/component-base": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.8.0-alpha15.tgz", - "integrity": "sha512-g3pnorGbnmeJFT5dlwmhPfX3KxxigDNxNnZi4tVB7eHq8WOVTooWm4ZdqXIoBRe/9euqe1Si3yn8P0gn7Gt/RA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.8.0-beta1.tgz", + "integrity": "sha512-xCHa1EqNvpXS8YPSpqq3nqEwwsfqBNaLILkC7zdK0bGw7Wq10CA+Yc5g8HSULoj3YuZi4V139C5n/mdKq1Gvlw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -9861,222 +8005,224 @@ } }, "node_modules/@vaadin/confirm-dialog": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.8.0-alpha15.tgz", - "integrity": "sha512-BrWrqOYhxXKDEn/N5TdUcwL3eIEozBR6uzse6lVlx2Ahr3krA+7DrHDgxpjjjwHdy9McfvNN25wjDfwstuepNg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-24.8.0-beta1.tgz", + "integrity": "sha512-QT3OpWeWvExpDKHH/QiA2ELR9iFjQdQ+ddmj8UUNQVVxOUvrPOkr3Xom4hJXpQSoZpdinYPyOQ+LvinNcPCmhg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/dialog": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/dialog": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/context-menu": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.8.0-alpha15.tgz", - "integrity": "sha512-0D47x9kOAZnbXRJ9JqUsQhlbKq4yaWnD44+IvXb3+wcppdHqpZuXd+6nGPIyZdEfvJ9pj3v+A4oNa4AghJvgCQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-24.8.0-beta1.tgz", + "integrity": "sha512-CD+acIN4YO1/2enADyfn1N7ATjolvVEDVpKTTG4p9ntgpE74QYip8GsqxMqFjxRa/xuZEZQ0YVA4jbv0B51WQQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/list-box": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/list-box": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/custom-field": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.8.0-alpha15.tgz", - "integrity": "sha512-GPPh90WZfWPxzs0KpbS7C/ETs9KFKLOKPuFj6bOr/I/JyEBMQXKzBQMfzCb6229z0gG8rnL4kl/RiVsHqdJeZQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-24.8.0-beta1.tgz", + "integrity": "sha512-HxCSS7KgGnM8h7lRu0BIhXYk2eG9rPNDRMXlaJwyEsGebRUn0qfVYQ49fcl85bEDP7Agk05bfUedRBlHo692vg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-picker": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.8.0-alpha15.tgz", - "integrity": "sha512-r0+i2s9jG/1nSf18N2SUVLWMfGLf/PQC4aq56e/SNY/UOzx10jGazHJBWPPAYLCDO61hvdBTSfJi9G9vfoHr2g==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-24.8.0-beta1.tgz", + "integrity": "sha512-OivOCxeLezKgwCZArSvIGph8h9M3D5gzJXsWULQYMaB/Fi0//MF4Mr8EOTtOfaRztCfj+HykNr6swwHahHqPQw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/date-time-picker": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.8.0-alpha15.tgz", - "integrity": "sha512-bKpLYF3OgBeCbRufWtagZEoCwdZhlVU3WGsi5Hg2BStzFG+CGj3Jr2Z7NV3MgZ77v7shbqShIwvcwhAF+X6tGg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-24.8.0-beta1.tgz", + "integrity": "sha512-Co3xc9wMelRrYhoLL9Fc8XIEtQlXw4bC4EBMDM2uIzCUzh4G2Ivo1O3CnPgo3mKvmT0sSvn5mwDHFLj2uYhgPA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/custom-field": "24.8.0-alpha15", - "@vaadin/date-picker": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/time-picker": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/custom-field": "24.8.0-beta1", + "@vaadin/date-picker": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/time-picker": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/details": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.8.0-alpha15.tgz", - "integrity": "sha512-w92CfCseDU9dHQwD5ymlRUyvEsWldP4CShcOZmf9yy6CQPy1Yv7qf5UDOd4GtOeT71F/AIxy7vn8fKVCsnQ3FA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-24.8.0-beta1.tgz", + "integrity": "sha512-s7kL6qsDQbZgjlyM3nHpf7OBQ72yip5SH9hXrK+/kW2iCE1g79h7KR1KvqKYUlY5pNm5g8nT6IYcDDEtY8IDCQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/dialog": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.8.0-alpha15.tgz", - "integrity": "sha512-zy52odRi31AxiDScc9bS7pbVUOX/E6UUX36XlE8IcJgMuAjbYRXWNWmIftNuncPrDFuX9mhScc8b4WaD8XuC9w==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-24.8.0-beta1.tgz", + "integrity": "sha512-0t1WzuGQJGZeO34VFi72w4erv0VgVgvQoqpGp/4Y/V2DW+IvGHNsMFNmZg12QCOlCbkaS2zlj/IVMleOV1s/Og==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/email-field": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.8.0-alpha15.tgz", - "integrity": "sha512-dhzWvWfvdxvyk4x8vsHNY4mM2g0O0cKzde+8un91FNtoKJZI9ZZ1aQBxYWj0IjywYZgUg5otPEIM6BZKXMvXGA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-24.8.0-beta1.tgz", + "integrity": "sha512-j/d0W15aqarFZd2P24903HWhLURtmUc765hz8ukYrX0LzCRiHIYxe5dFNuyspg9svcwIBPnJWx295Kt6d6eqjg==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/text-field": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/text-field": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-base": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.8.0-alpha15.tgz", - "integrity": "sha512-HYONQzom0nOYcBpJnm8IMM/3DmNLBF7E4LFXReLqQQYBp8bysKMlgIWd0pKeSApcRIQlKo2YaMsWTdjsGzzKqQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.8.0-beta1.tgz", + "integrity": "sha512-D6SSCQ1N+89S+d5fmiunaR6oIl8l/Q3nFTjvEaj6bpa3FxCUzDehhdJkTBdpSr5iXytfE+KFOuJPG6XYSKeRZQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/field-highlighter": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.8.0-alpha15.tgz", - "integrity": "sha512-G6oMjZOKzklSQkt4vzOELo9n9iDNNBTz88pHTO7C9rvgimaPGkmFI5Dj7J/PZHW0eUFuQs1ihRudqWq8rkEb8g==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-24.8.0-beta1.tgz", + "integrity": "sha512-gjqVIPopsui3L3AZzp/qPbqYkOte18nd2yYmTWJG+AjGxLQqgv6tGELv1FCr4SWhIE7DLs+Z8OUCTUGqa5uxgA==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/form-layout": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.8.0-alpha15.tgz", - "integrity": "sha512-sNplJdM6O37EVH3DryoPsKgqgpA5QvjuzSIkFUZWSA8WwjucvTSBQj2xv5npqM+W7VSKZhlx2z71MtrGx9QpGw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-24.8.0-beta1.tgz", + "integrity": "sha512-2CM2Gv/1Fco9kEA4w2drtXENjAxcVWl5BWJNufP4T0MgkMAv1M3t+TTV3uNUd4IDfZJFJ7qWSOJVw5E9tmKLZw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/grid": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.8.0-alpha15.tgz", - "integrity": "sha512-lqVbHU01qTUIJOXppFXc57jwDZCS6/gU4E8T2umIe/jX8k8IIJUhxNVdKxhgzyv0BPPc7DkgT8KtFQN+iKwDSg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.8.0-beta1.tgz", + "integrity": "sha512-fh//QjFCtVuGgqmpeYN6mroawEWSYonKAJyYeRQJyBOQLPL2mqXdL0Lbh6cOMXlc3mhEEMWvVYtgy2JXvQhQUg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/checkbox": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/text-field": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/checkbox": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/text-field": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/hilla-file-router": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-file-router/-/hilla-file-router-24.8.0-alpha6.tgz", - "integrity": "sha512-5T705EE6fuxptGw12Fc3wBhSv5ODFf7VA4GwxchI5mvcmG6nSnzVMCzZ5di5dqt/o7aEhYcWAaV/0q4bjA5Q/Q==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-file-router/-/hilla-file-router-24.8.0-beta2.tgz", + "integrity": "sha512-GDMQH60xKlesR+nvfTqNmiHOy5kSpmVB5k9gwRRqpLv2k57fA5G/GADs6okgNqTS4MH6/8i3ElCrRKytisbsDw==", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", - "@vaadin/hilla-react-auth": "24.8.0-alpha6", - "@vaadin/hilla-react-signals": "24.8.0-alpha6", + "@ungap/with-resolvers": "0.1.0", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", + "@vaadin/hilla-react-auth": "24.8.0-beta2", + "@vaadin/hilla-react-signals": "24.8.0-beta2", + "tsc-template": "0.2.3", "typescript": "5.8.3" }, "peerDependencies": { @@ -10086,9 +8232,9 @@ } }, "node_modules/@vaadin/hilla-frontend": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-frontend/-/hilla-frontend-24.8.0-alpha6.tgz", - "integrity": "sha512-Ed0kPYwTQJIikEn754HDJa5FbwGBV+xRDHxvyX+ekx2JbUVKR0bNYDRl31FeBTv21bXM4xOS4pS9UCvRlCKYpg==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-frontend/-/hilla-frontend-24.8.0-beta2.tgz", + "integrity": "sha512-4a1oRXD61RQDt/+TwvjlbSZCMCNrnHRGaBzG/eYTYi1XUaEY7uGvV2f6HPqTny8UMKuajb4agsrfylSicXXxXg==", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "0.0.19", @@ -10100,14 +8246,14 @@ } }, "node_modules/@vaadin/hilla-generator-cli": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-cli/-/hilla-generator-cli-24.8.0-alpha6.tgz", - "integrity": "sha512-QKxV5KzP2lFGK/yigrrDS1oljUw9BXmKiuTN5oA4eYTDNzJasVBpWm3a3ImUEZTQGd6t2F0mW7wdMa91PqhEmA==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-cli/-/hilla-generator-cli-24.8.0-beta2.tgz", + "integrity": "sha512-4lPBiRBC2nq9r4zJwhc27e5dawIqAIHGMw46FIKO/+CCqHJzDXB7PVJw5+GoNL7SdNPdosCk9TktAZ3U1VvF0Q==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6" + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2" }, "bin": { "tsgen": "bin/index.js" @@ -10117,14 +8263,14 @@ } }, "node_modules/@vaadin/hilla-generator-core": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-core/-/hilla-generator-core-24.8.0-alpha6.tgz", - "integrity": "sha512-0N2+ec8gHUq+5JYWl5Sjq8eYFiAgnHz2pnb3zu3vEDsY3EhPxsgltTA7Fh3S9LCwAb2Wx4sk2WVtiAzziYfASw==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-core/-/hilla-generator-core-24.8.0-beta2.tgz", + "integrity": "sha512-r3fGq0M+i3cflFqvD7siHFzFILGv5dik73W1XDC17sy4KNn/06dEhR01YAOz+nE9tP9CAzKcpNiFMSc+fpy/fQ==", "dev": true, "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "10.1.1", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "meow": "13.2.0", "openapi-types": "12.1.3", "typescript": "5.8.3" @@ -10147,15 +8293,15 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-backbone": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-backbone/-/hilla-generator-plugin-backbone-24.8.0-alpha6.tgz", - "integrity": "sha512-36LxrSYhr17DlQYPyqQ7tBfkK3aP6LJhsyzWzP9pBZ2HleU0OaDiUz3BPF2+fSqcTjzbZWfijx3HkC0gPMXJgA==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-backbone/-/hilla-generator-plugin-backbone-24.8.0-beta2.tgz", + "integrity": "sha512-z0mp4n+9hfj4YkPcdob+kteMtpx+sh6bui/wCbqmVvE+DA+sfra3RwwSMjiWRAGhprnzWlDIUsOmUzetpMQr8A==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "fast-deep-equal": "3.1.3", "openapi-types": "12.1.3", "typescript": "5.8.3" @@ -10165,15 +8311,15 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-barrel": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-barrel/-/hilla-generator-plugin-barrel-24.8.0-alpha6.tgz", - "integrity": "sha512-UGCmDfA8Kw6KPTZN9P+BhgMB9hZhda4ZxZE3WaNX8BDyIVD8JJzM27tXp20PHTjOamw7kpNU3rjq+O0df+ES4A==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-barrel/-/hilla-generator-plugin-barrel-24.8.0-beta2.tgz", + "integrity": "sha512-j/vR12TzdQwOnXyxt7haJzSrP4wSzNMBE+UCowS+xvZk9O11IE7R+dql2CCvFaE3nUVoPzWLT81Jx6OwnRTFbA==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-backbone": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-backbone": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "typescript": "5.8.3" }, "engines": { @@ -10181,14 +8327,14 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-client": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-client/-/hilla-generator-plugin-client-24.8.0-alpha6.tgz", - "integrity": "sha512-ZuZtMCwTEBFDOYn/9w4FQhElTJPUXfNHIuETLZsAgDXbzvLta7CP67pfNn4igU4Xcb3Ns1w+QhvIOglNemjLHA==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-client/-/hilla-generator-plugin-client-24.8.0-beta2.tgz", + "integrity": "sha512-2O/LHpO9BJHVOsClqEhZ5s9YE//lKjg7pFdu0W5FCZSsG3pHdN4Yu8qHjTzlu5J1MMpdDpVOvzdebFt+ZFHpjA==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "typescript": "5.8.3" }, "engines": { @@ -10196,16 +8342,16 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-model": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-model/-/hilla-generator-plugin-model-24.8.0-alpha6.tgz", - "integrity": "sha512-cf6QS/IvsTKW84TfTbSEhP9GteT+NRIUma+fwQqeS/Bk1Qz1ym0j1AwZym+Rz7g6b0LOG1W7f/PcLl1PMuds7g==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-model/-/hilla-generator-plugin-model-24.8.0-beta2.tgz", + "integrity": "sha512-pwW0/Gd+r9+h/REZ+veaIPX04Qv+kOl0Ljsrkra8FlwQyiRAJuZECU0K+BocuvVyiTfAOKEUt7XEr7cMRAIDKQ==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-backbone": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", - "@vaadin/hilla-lit-form": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-backbone": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", + "@vaadin/hilla-lit-form": "24.8.0-beta2", "fast-deep-equal": "3.1.3", "openapi-types": "12.1.3", "typescript": "5.8.3" @@ -10215,15 +8361,15 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-push": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-push/-/hilla-generator-plugin-push-24.8.0-alpha6.tgz", - "integrity": "sha512-KAVEsP38CPNjE3l3HoRqfBqPilslPSl9NuBg/ra+p0uJ1kdkB0vuuliIJu4oPVKh3aNL4utw7dEILBLg1jqCZQ==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-push/-/hilla-generator-plugin-push-24.8.0-beta2.tgz", + "integrity": "sha512-9TrVtzYlcbdQiz3wcIHjrhlBTEPFycUJQxelyLWPiWabGogjEin1yQ/Ng4LO9+1D5GMVXsumxwwBsdHnELTc9A==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "fast-deep-equal": "3.1.3", "openapi-types": "12.1.3", "typescript": "5.8.3" @@ -10233,18 +8379,18 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-signals": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-signals/-/hilla-generator-plugin-signals-24.8.0-alpha6.tgz", - "integrity": "sha512-YnCeCeOss43EiEITakv6HLQKdqfpN7uhhRRqoyskwLD21bSRTkcbvituWqCxdBSYGYndAAR8mLxJzJUl/78PvQ==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-signals/-/hilla-generator-plugin-signals-24.8.0-beta2.tgz", + "integrity": "sha512-yIs+npNXC0a+65FCit1YBml7HgH+PD4KydD5kMnb3qyGPWqcWclSvbKPMmt3EFvMwaGI3wtjARH6z035KvWAHw==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "fast-deep-equal": "3.1.3", "iterator-helpers-polyfill": "3.0.1", "openapi-types": "12.1.3", - "tsc-template": "0.2.2", + "tsc-template": "0.2.3", "typescript": "5.8.3" }, "engines": { @@ -10252,16 +8398,16 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-subtypes": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-subtypes/-/hilla-generator-plugin-subtypes-24.8.0-alpha6.tgz", - "integrity": "sha512-mVhN+skU7lcKWfM3NL9XvxfXkPx4Yr4qptK+vIXtaw92NIUoag7v8/qBjBfcT4M3x386dqFiEVEk4a6aBSes4A==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-subtypes/-/hilla-generator-plugin-subtypes-24.8.0-beta2.tgz", + "integrity": "sha512-6X3oDTwr00+l5E6oDegG2Ay7edrGlXGYiPkfL4Pob0IX/KXI6alCp/JONVtaWUaIpu7ycC2lV0HGMZ2xgqVHPA==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-model": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-model": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "fast-deep-equal": "^3.1.3", "openapi-types": "^12.1.3", "typescript": "5.8.3" @@ -10271,16 +8417,16 @@ } }, "node_modules/@vaadin/hilla-generator-plugin-transfertypes": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-transfertypes/-/hilla-generator-plugin-transfertypes-24.8.0-alpha6.tgz", - "integrity": "sha512-IHfaOLlzo4Z1NZScUYKGCHuZC/F7xLxQyOCfF/gyet/liFJFjzoJ9DkQuTP8outW4EqPGVqMJ8Rx83Cnh/CU+Q==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-plugin-transfertypes/-/hilla-generator-plugin-transfertypes-24.8.0-beta2.tgz", + "integrity": "sha512-s++tmeu7Zh1mfXKORe1LJiGl9uPAuVoAcuOx/5n5TgLbbESQ5TJXyIIv7jIM1hCXXer6dNoaMqqD8QJ7I0/uZg==", "dev": true, "license": "Apache 2.0", "dependencies": { - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-model": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-model": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", "fast-deep-equal": "3.1.3", "openapi-types": "12.1.3", "typescript": "5.8.3" @@ -10290,9 +8436,9 @@ } }, "node_modules/@vaadin/hilla-generator-utils": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-utils/-/hilla-generator-utils-24.8.0-alpha6.tgz", - "integrity": "sha512-gHFKYnrm93dW3/kvOq0m1yFl0fi2zU8038xqfSjQFpEeOLvv9Atxr8kjGlueHOr6/pkQ2YkDrEaBSjtwD0ipCA==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-generator-utils/-/hilla-generator-utils-24.8.0-beta2.tgz", + "integrity": "sha512-DRvk/dNJvnT82oFQSNYEMsWiV1QjhpbhbNa9LCOiAF/s9sBZ/RE23y3JzVzFWqrhK4nTf0QVuwFWOCwyDUeThg==", "license": "Apache 2.0", "dependencies": { "pino": "9.6.0", @@ -10304,12 +8450,12 @@ } }, "node_modules/@vaadin/hilla-lit-form": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-lit-form/-/hilla-lit-form-24.8.0-alpha6.tgz", - "integrity": "sha512-CUvQizYpyIly7YWy0Tka1JwJQEKnm1iQALXM4030Dja/OsiQvgcN/aXN8oQDYRS8lfT/hP8iAJ7MwKPIgxK43A==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-lit-form/-/hilla-lit-form-24.8.0-beta2.tgz", + "integrity": "sha512-GmZcHGTL0RiZTcWuWz3xk8KiPLZYKB7LOCjVuORQc3GeHEJpzecFoW8E8JMPWNz+mvAI7LjajasBah35JE0kjw==", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.8.0-alpha6", + "@vaadin/hilla-frontend": "24.8.0-beta2", "validator": "13.12.0" }, "peerDependencies": { @@ -10317,12 +8463,12 @@ } }, "node_modules/@vaadin/hilla-react-auth": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-auth/-/hilla-react-auth-24.8.0-alpha6.tgz", - "integrity": "sha512-c/4S0NXMN0qHfYmokWZO2NN9pckh5wCi8/VXpRO0xdcTCIF8gRQT0suYoRUT6muUI5ALxPp80xn6PdxMTOvjjA==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-auth/-/hilla-react-auth-24.8.0-beta2.tgz", + "integrity": "sha512-UlwJ9gawEImntGXec2HhSTt31qMoJEmQhXM/ZMp25QaE+00Xdt5EfRN7tmDudNJZaxIROYAZe3PH8Sjjrm5N9g==", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.8.0-alpha6" + "@vaadin/hilla-frontend": "24.8.0-beta2" }, "peerDependencies": { "react": "18 || 19", @@ -10331,16 +8477,16 @@ } }, "node_modules/@vaadin/hilla-react-crud": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-crud/-/hilla-react-crud-24.8.0-alpha6.tgz", - "integrity": "sha512-XZJ2c3+/CHA81fSUT8+S20QwyDOz5Fpk6jaOGPE+bUoF369wNHq0gPRoZZVsSdb6ycc66HQM2g8s4WZQA4DNUw==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-crud/-/hilla-react-crud-24.8.0-beta2.tgz", + "integrity": "sha512-0jAYUW60tCoeLPxPZj/RGhJJysd/BXjsf0IZZOq+6XP1xWt+PIw8MwGMF6vs8sgIZwQ1vCRred221lWi0KOVBA==", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.8.0-alpha6", - "@vaadin/hilla-lit-form": "24.8.0-alpha6", - "@vaadin/hilla-react-form": "24.8.0-alpha6", - "@vaadin/react-components": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", + "@vaadin/hilla-frontend": "24.8.0-beta2", + "@vaadin/hilla-lit-form": "24.8.0-beta2", + "@vaadin/hilla-react-form": "24.8.0-beta2", + "@vaadin/react-components": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", "type-fest": "4.35.0" }, "peerDependencies": { @@ -10349,12 +8495,12 @@ } }, "node_modules/@vaadin/hilla-react-form": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-form/-/hilla-react-form-24.8.0-alpha6.tgz", - "integrity": "sha512-F23bA7s+eRIpGKzRCJTrva9iTQXI+2vEyiJ2XxZ2oYHDd/GeC0SykBU/+POmoOyfjXSREJ9SKqbGBuoYm0TeIA==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-form/-/hilla-react-form-24.8.0-beta2.tgz", + "integrity": "sha512-I09Rw4HYYpICrkIP039g7pKl0QtOpyAqA3d8Q+Gzgfp9h0iHzQzL21E/4cAGKg8SY2cESWx69Z8wSPwvO1/aTg==", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-lit-form": "24.8.0-alpha6" + "@vaadin/hilla-lit-form": "24.8.0-beta2" }, "peerDependencies": { "react": "18 || 19", @@ -10362,13 +8508,13 @@ } }, "node_modules/@vaadin/hilla-react-i18n": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-i18n/-/hilla-react-i18n-24.8.0-alpha6.tgz", - "integrity": "sha512-DsATN2FL8RwAb7shmEIrKzZlLXf+8jk64EI+//02qzlxqTx2604pxMYw1kNm4eU3KaJRGLrHintzw3nAcMkaag==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-i18n/-/hilla-react-i18n-24.8.0-beta2.tgz", + "integrity": "sha512-t/PSY23ckO00jvEoT/+K2Cmu6bqAkRbXUZ/slNd/fAMdcpf60oDVXsKclPb0f8ApLc3z2ATQt9r6UhTJ29xitw==", "license": "Apache-2.0", "dependencies": { - "@vaadin/hilla-frontend": "24.8.0-alpha6", - "@vaadin/hilla-react-signals": "24.8.0-alpha6", + "@vaadin/hilla-frontend": "24.8.0-beta2", + "@vaadin/hilla-react-signals": "24.8.0-beta2", "intl-messageformat": "10.7.11" }, "peerDependencies": { @@ -10440,13 +8586,13 @@ } }, "node_modules/@vaadin/hilla-react-signals": { - "version": "24.8.0-alpha6", - "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-signals/-/hilla-react-signals-24.8.0-alpha6.tgz", - "integrity": "sha512-dUOz4l0Qhsh8VEjAeEut8m0+4gaP/GU0MwF7nh4P7DE1miU/mUiRY71QhC9siVFyqKL5r1OVrwv/7bWmkt98wQ==", + "version": "24.8.0-beta2", + "resolved": "https://registry.npmjs.org/@vaadin/hilla-react-signals/-/hilla-react-signals-24.8.0-beta2.tgz", + "integrity": "sha512-SFJkmexXuG6UmQUBwESc0w77qBXX6DRjTTUapx3BChMm/ai76Hzh0onQuBnCyssi9g+RLYqyHCeu6b+f4FxGxw==", "license": "Apache-2.0", "dependencies": { "@preact/signals-react": "3.0.1", - "@vaadin/hilla-frontend": "24.8.0-alpha6", + "@vaadin/hilla-frontend": "24.8.0-beta2", "nanoid": "5.0.9" }, "peerDependencies": { @@ -10455,419 +8601,437 @@ } }, "node_modules/@vaadin/horizontal-layout": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.8.0-alpha15.tgz", - "integrity": "sha512-ubr1soBmG7qpzA0m5avGbDBARV7sesCFzkeLKigeDlnDDJMzBVhVo1S9AwylBs8lOwn0WC761JWh6/5jFELU2A==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-24.8.0-beta1.tgz", + "integrity": "sha512-vjXf5cR9iA3DyVKZGQhZmPWW181ARqpLmA6QYQC6O88nSyh9nXDRZuhaA9/b8ndTzt56YPEfYve/odQdKMEjjQ==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/icon": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.8.0-alpha15.tgz", - "integrity": "sha512-YBxSy4SGAo9BHT3jSwwnbCS7NT7BbU1xdZ2iEH85uGejXqyf3uX7w0YIb6QnVy/UlnpAR+5VS7qooQxTAm81mw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.8.0-beta1.tgz", + "integrity": "sha512-t/kOXPWs0AX9Qu1FXsjmDorIY6cj/lVV/sQskJd57vFm4akV6KdmtnYqNQm+poDOMDcBv78xsM3Ux9RMwiwaVw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.8.0-alpha15.tgz", - "integrity": "sha512-H8hplTCQzN0b98s1iKmCeHdPlLHNraB4tMaUBAiD4V7ZgPinRVMrmw8zsqok06v35DTXCynj7TSJt7+5uYNXTQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.8.0-beta1.tgz", + "integrity": "sha512-zNrHSOcKxTbwPF+WdhFO1hZdGtrzIziuczvNvZL5cHWrJvjRlXeRYNJ7cuT43PYt7QakXpfZdUBgegaWBBbA5A==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "24.8.0-alpha15" + "@vaadin/icon": "24.8.0-beta1" } }, "node_modules/@vaadin/input-container": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.8.0-alpha15.tgz", - "integrity": "sha512-vx2M8YHvXwjSCLr6Sp3UMJWzlDMHVaC4X79Gv3efB9KwWU9syokTt0BxuX51NkL97mv9Q4mL64pKdb+AFAq6/w==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.8.0-beta1.tgz", + "integrity": "sha512-k7KiFH41bRqOELhqPFgUQW+bG67sHWRqKeGZVJGdwxSXM5TlE2pEZTPMznKU+XSEZNvga67Cel27gPF1YMatfg==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/integer-field": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.8.0-alpha15.tgz", - "integrity": "sha512-Kt5oeaU62w/eT71bMEdVEwiXENTrH1Wlgbcn6M78X7jb3Fta/rRP0fylSyYuR79eLwiWJfcwVRvDkyOeUAv7Gw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-24.8.0-beta1.tgz", + "integrity": "sha512-giZV69Yq2P6HfcCAJADenl8sTSaRRyFzwts4s6ffQL/wFSArOmH9u1VnSQU0l9HR5227eM16McGGywLkhQ3Kyw==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/number-field": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15" + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/number-field": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1" } }, "node_modules/@vaadin/item": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.8.0-alpha15.tgz", - "integrity": "sha512-3vCuUhr0mYlevPVZtk4BXjRIT/tL8fUUxpoowrKhlmVIG6WaTHgwLElViqTqMDKx8vpXbJ57rfA9ynnzrT4IZw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.8.0-beta1.tgz", + "integrity": "sha512-LSx14eMiLOBOz6Fj2Xt8baqcmH/q+1N40yPVy2jvrwzAgQzZTRpSKg+OMLINMDMYKlR3DZnP6CUBcqmpWs7nBA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/list-box": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.8.0-alpha15.tgz", - "integrity": "sha512-3uJP72exqjfeTEawXtfzmDtMQX/lO/fIrxUUmM7kJhMfJZAf8A1rzOI6y37jqC71ZAeTl76Trp58n0u8X2pHQw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.8.0-beta1.tgz", + "integrity": "sha512-SX0FEglhbYMQL2hYFMQQRiVm/dyzq9eiBIZoeBMPfNItkZmfoHLAc0A1MIRqgH1bdXSbPI9pqh8G+bvQElsTew==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.8.0-alpha15.tgz", - "integrity": "sha512-I+1gdnYjwglQ0UHufzg1k8bH0iiVK/OYhsKYmF40GsLaz4nHiIXgsfPmBLxDqC+dvutdBCjjP79T3VqSZ1mBgA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.8.0-beta1.tgz", + "integrity": "sha512-EdKnRy4Kddb6bnsRa6c4vzWisKDLQDd2yQG8vyruU562DRjEUboPTrZfnyX2zeaqgOKB5hMdAAvcX0ZKboM71A==", "license": "Apache-2.0", "dependencies": { "lit": "^3.0.0" } }, "node_modules/@vaadin/login": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.8.0-alpha15.tgz", - "integrity": "sha512-hoyRGh9Wz4F6GoEmgWYAU7W4dzKWPFQaqDuwvQXK7f1b+4RmOYO/xx42423gVWg/5EnLxPtDaZ47na4gPfjRlg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-24.8.0-beta1.tgz", + "integrity": "sha512-4Hz/XJ4+/nsOvjEOuOgTVKlRanlTH8xbYUSNQ5Fd7XZb4A+nxlfdRyB23QPHW3tt16CA6UzxZosMV9POl+rEjw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/password-field": "24.8.0-alpha15", - "@vaadin/text-field": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/password-field": "24.8.0-beta1", + "@vaadin/text-field": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, - "node_modules/@vaadin/master-detail-layout": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/master-detail-layout/-/master-detail-layout-24.8.0-alpha15.tgz", - "integrity": "sha512-e15FcoUud7j9rRg6uYDN9ExE72WUrIeQ+V1ZRVRUXu/dlreVpuLyj4FLo00MjAzmKbnKzQKrq6F3vhN3twr0dA==", + "node_modules/@vaadin/markdown": { + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/markdown/-/markdown-24.8.0-beta1.tgz", + "integrity": "sha512-IiwM+42VbAOWtZD9Uer+RjOt+5FT/TavPUvlH/A6iVRYD3oVoGneIN2/1dEVr29cp/OW9RGDI+MhLmifTu73Eg==", "license": "Apache-2.0", "dependencies": { - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@open-wc/dedupe-mixin": "^1.3.0", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", + "dompurify": "^3.2.5", + "lit": "^3.0.0", + "marked": "^15.0.11" + } + }, + "node_modules/@vaadin/master-detail-layout": { + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/master-detail-layout/-/master-detail-layout-24.8.0-beta1.tgz", + "integrity": "sha512-Ett6yOIRW1edHG83j7wDO70SbkRxWGiVwH3WNUNjL2gsZwvp5Gp6YTnfEKpTGtb59kdR0uxaswkJjAEllrjgQg==", + "license": "Apache-2.0", + "dependencies": { + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/menu-bar": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.8.0-alpha15.tgz", - "integrity": "sha512-Xe0kWXqH8foj8oEzG3v3roMKMVL/Wcrg6rSJ1nDzz9PJoPvsb+tJ2XY7y3MElFLrtob7EhMR9EwUkBd4tlusIQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-24.8.0-beta1.tgz", + "integrity": "sha512-F9zHlTKUhRMRS7d+iSykrTrpLDXtQYYWKvBht6+m4mmUlV1Bh0JEpjB53flum1kvhdXGzzYnsA/7TKAs+jwwdg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/context-menu": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/list-box": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/context-menu": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/list-box": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-input": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.8.0-alpha15.tgz", - "integrity": "sha512-r3hGvhhzAq8FQxgJ5exuuT4Wa7PuWIizC6hif+5MiHlHhSIoclD1O6GPyPzjUvCOgSMcdjITIIPzmT/OWS2GbA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-24.8.0-beta1.tgz", + "integrity": "sha512-Q3W0yEanoXI5dxetyvWImKpWQwIKZMgAUV2K5nbRz4mRnPXvE53kI7tVW+OLziiUXNp+CaYOgQunw5QUfZnGfw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/text-area": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/text-area": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/message-list": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.8.0-alpha15.tgz", - "integrity": "sha512-Iwu+oVPnD0hnvuqqatNXEuAy8f488IZWjapkjEiCtA1Mi82BWhorWadQmE/4/1fraKAkvmbpB3NLLrIQXYAdIA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-24.8.0-beta1.tgz", + "integrity": "sha512-sKmUE+gdIbuUw8KCanrjmCrd6fW+9B3TCrsJbw/TtxrgKIAizp0R4uk+L4LyP+txaNbw8Kvks141j18vImYqrg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/avatar": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/avatar": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/markdown": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/multi-select-combo-box": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.8.0-alpha15.tgz", - "integrity": "sha512-eVBIfGcURWQPkZimmiqtYNLTAJSkQYyRLzlLdVLNtbjHtN0YdN9xLwm0Pmjt9OU1w0QCzOsSZPIjFc8Go1l+aQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-24.8.0-beta1.tgz", + "integrity": "sha512-pA4HL4O1KuLUR4JvqAiSk9f6KPAX8qkqWhHelu2K66Bts8xjYr6VWCIZiGISR2womtmqJHdUYSjouX6F9y+CRA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/combo-box": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/combo-box": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/notification": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.8.0-alpha15.tgz", - "integrity": "sha512-S0LlqtmzYhv/KXfpIG+IOV+m3/QiQVqRLZT04y144JCpOqLSqmcsTqSlZzwnS3QtslJZo7ko1t32hsZeQjZRcA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-24.8.0-beta1.tgz", + "integrity": "sha512-1d9SQvYqbvvn5v6rT6/LUkFB2FH4jFtNd60gTCy4xln1EvBBP05BMKD/V+Hydl98cNhY3bxv5UfbEIyMVn6PMg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/number-field": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.8.0-alpha15.tgz", - "integrity": "sha512-Mv65o1NvV6i/AmlCKBiCQvcBn+wzhh6jpJ5atGRJUuwjTTUOOOc1tgH87lcexkCJhWzg89WVwtPRWz4F/RJBwQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-24.8.0-beta1.tgz", + "integrity": "sha512-io6z5Ty9Y77YkVgVNUo6IPK9xZ1oeDNQMolDDM5EIS5kMhs4vaH9Dx/u2WjYUBkYHQXzR4f6O7yreZ1NIao0sA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.8.0-alpha15.tgz", - "integrity": "sha512-FZyHklN+ecfhZvO8irndb9wEgRZpImodWTdHhFM9mEDE+4kmSZmLCH28YZkCH8P1Cd1/yarITVHP5AIbvuId1g==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.8.0-beta1.tgz", + "integrity": "sha512-kpdvuKyKIrAeCIOIvFxkZIGGS5+pQLi7z9KdN96w1f2NOUy7GN7a1VXGtYrGyQFXUKiKe5XLw0niMFbtltFHFw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/password-field": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.8.0-alpha15.tgz", - "integrity": "sha512-p6geFEfSDeEnIeJfwFqlJmm6CIRyjgi79TMMOfEHlh9CJ/95xQpZskYxcj3hviuV5RquiVqcyLf9YyhoEdJfQA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.8.0-beta1.tgz", + "integrity": "sha512-TcAcUOQ3TxweCw8TbNBCtcTdShq0dH/vyezMgKOgiIjkipcK/sYiBK8rURxHjuqcf5knDQC5xQEZXFolXxfXYw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/text-field": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/text-field": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/polymer-legacy-adapter": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.8.0-alpha15.tgz", - "integrity": "sha512-xsbrDVuL53bk4cjlA+CWfexO+X5kPfUVmdVnJJaYyPqvQ2Oxy74WyLqqo6Hx/3t+dffrSLYA1N7J+sxkOVm5Kw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-24.8.0-beta1.tgz", + "integrity": "sha512-MMyiUGHmAfxPcav/PdcRb9/apsEB4tiYL9D4I19a0xieJZ2BqFmJJddzTeXM5Jnb977j1ERQnHhYqX5Vg2wEfQ==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/popover": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.8.0-alpha15.tgz", - "integrity": "sha512-P2ybXtoSGw61SmfY13pOXS73JSOEUtzQHFbjJXr4JxZ9yElcobzcICxeZS7pGSuy+ciBhU/yRrg5MaSXjnCowQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/popover/-/popover-24.8.0-beta1.tgz", + "integrity": "sha512-xCztRXo391gDXXYGCMrK04Fvgym6sLYYyzyelV6PYnnFLmZVb3vu0wtitIArWwnJnDuNFWa2NPS/ICOBE9oE0Q==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/progress-bar": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.8.0-alpha15.tgz", - "integrity": "sha512-wEfkF7IyntzwFptMwwZb0LC2dA8qoatG/+ZWpdOnlYj9yAeSw17xX5+k69afqM8fQbI2zwHb9BXFQg6tEZRyvw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-24.8.0-beta1.tgz", + "integrity": "sha512-Ua7b2JeUyHCmqj6zWTVDLpHUiDNawdtQdpQnhY4+VFl3PSC/Qo9X3xS9tfsFtQWSZY3bjRWWoGpKrVJ9p6N+gQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/radio-group": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.8.0-alpha15.tgz", - "integrity": "sha512-tzagueHFQ6Od52hyNZK5HiagUEAhpqA6Ch55DiqdJxm1RD5oc/vMmvz4Fw2xGcXSaSnNds4GWjhTQEeX6Xp5Nw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-24.8.0-beta1.tgz", + "integrity": "sha512-0gkN0JjKmyb6X8sW/38fBE5GXVV8JcVjaouHmSIp/QeXa84Uimngg9At8UVmbwEx/vmDq7JCOwSO3FxKNJIwmw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/react-components": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.8.0-alpha15.tgz", - "integrity": "sha512-BptmOg260EI7etiU/VGIWMzQ28/7MSyusM+6gffjdZ9dHelIVmlfubtXK2MmWikO9lLAJUT7zpnozKGooGdaJg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/react-components/-/react-components-24.8.0-beta1.tgz", + "integrity": "sha512-l9+gvVr/P+gs0JDaiR6XltMJHVDgsbnDUfi0EDwnvjzPdsaUFKkEQfjb1ENxYxRmXLmaZuJoE+Qecux9dCi9nA==", "license": "Apache-2.0", "dependencies": { "@lit/react": "^1.0.7", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/accordion": "24.8.0-alpha15", - "@vaadin/app-layout": "24.8.0-alpha15", - "@vaadin/avatar": "24.8.0-alpha15", - "@vaadin/avatar-group": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/card": "24.8.0-alpha15", - "@vaadin/checkbox": "24.8.0-alpha15", - "@vaadin/checkbox-group": "24.8.0-alpha15", - "@vaadin/combo-box": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/confirm-dialog": "24.8.0-alpha15", - "@vaadin/context-menu": "24.8.0-alpha15", - "@vaadin/custom-field": "24.8.0-alpha15", - "@vaadin/date-picker": "24.8.0-alpha15", - "@vaadin/date-time-picker": "24.8.0-alpha15", - "@vaadin/details": "24.8.0-alpha15", - "@vaadin/dialog": "24.8.0-alpha15", - "@vaadin/email-field": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/field-highlighter": "24.8.0-alpha15", - "@vaadin/form-layout": "24.8.0-alpha15", - "@vaadin/grid": "24.8.0-alpha15", - "@vaadin/horizontal-layout": "24.8.0-alpha15", - "@vaadin/icon": "24.8.0-alpha15", - "@vaadin/icons": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/integer-field": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/list-box": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/login": "24.8.0-alpha15", - "@vaadin/master-detail-layout": "24.8.0-alpha15", - "@vaadin/menu-bar": "24.8.0-alpha15", - "@vaadin/message-input": "24.8.0-alpha15", - "@vaadin/message-list": "24.8.0-alpha15", - "@vaadin/multi-select-combo-box": "24.8.0-alpha15", - "@vaadin/notification": "24.8.0-alpha15", - "@vaadin/number-field": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/password-field": "24.8.0-alpha15", - "@vaadin/popover": "24.8.0-alpha15", - "@vaadin/progress-bar": "24.8.0-alpha15", - "@vaadin/radio-group": "24.8.0-alpha15", - "@vaadin/scroller": "24.8.0-alpha15", - "@vaadin/select": "24.8.0-alpha15", - "@vaadin/side-nav": "24.8.0-alpha15", - "@vaadin/split-layout": "24.8.0-alpha15", - "@vaadin/tabs": "24.8.0-alpha15", - "@vaadin/tabsheet": "24.8.0-alpha15", - "@vaadin/text-area": "24.8.0-alpha15", - "@vaadin/text-field": "24.8.0-alpha15", - "@vaadin/time-picker": "24.8.0-alpha15", - "@vaadin/tooltip": "24.8.0-alpha15", - "@vaadin/upload": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", - "@vaadin/vertical-layout": "24.8.0-alpha15", - "@vaadin/virtual-list": "24.8.0-alpha15" + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/accordion": "24.8.0-beta1", + "@vaadin/app-layout": "24.8.0-beta1", + "@vaadin/avatar": "24.8.0-beta1", + "@vaadin/avatar-group": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/card": "24.8.0-beta1", + "@vaadin/checkbox": "24.8.0-beta1", + "@vaadin/checkbox-group": "24.8.0-beta1", + "@vaadin/combo-box": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/confirm-dialog": "24.8.0-beta1", + "@vaadin/context-menu": "24.8.0-beta1", + "@vaadin/custom-field": "24.8.0-beta1", + "@vaadin/date-picker": "24.8.0-beta1", + "@vaadin/date-time-picker": "24.8.0-beta1", + "@vaadin/details": "24.8.0-beta1", + "@vaadin/dialog": "24.8.0-beta1", + "@vaadin/email-field": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/field-highlighter": "24.8.0-beta1", + "@vaadin/form-layout": "24.8.0-beta1", + "@vaadin/grid": "24.8.0-beta1", + "@vaadin/horizontal-layout": "24.8.0-beta1", + "@vaadin/icon": "24.8.0-beta1", + "@vaadin/icons": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/integer-field": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/list-box": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/login": "24.8.0-beta1", + "@vaadin/markdown": "24.8.0-beta1", + "@vaadin/master-detail-layout": "24.8.0-beta1", + "@vaadin/menu-bar": "24.8.0-beta1", + "@vaadin/message-input": "24.8.0-beta1", + "@vaadin/message-list": "24.8.0-beta1", + "@vaadin/multi-select-combo-box": "24.8.0-beta1", + "@vaadin/notification": "24.8.0-beta1", + "@vaadin/number-field": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/password-field": "24.8.0-beta1", + "@vaadin/popover": "24.8.0-beta1", + "@vaadin/progress-bar": "24.8.0-beta1", + "@vaadin/radio-group": "24.8.0-beta1", + "@vaadin/scroller": "24.8.0-beta1", + "@vaadin/select": "24.8.0-beta1", + "@vaadin/side-nav": "24.8.0-beta1", + "@vaadin/split-layout": "24.8.0-beta1", + "@vaadin/tabs": "24.8.0-beta1", + "@vaadin/tabsheet": "24.8.0-beta1", + "@vaadin/text-area": "24.8.0-beta1", + "@vaadin/text-field": "24.8.0-beta1", + "@vaadin/time-picker": "24.8.0-beta1", + "@vaadin/tooltip": "24.8.0-beta1", + "@vaadin/upload": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", + "@vaadin/vertical-layout": "24.8.0-beta1", + "@vaadin/virtual-list": "24.8.0-beta1" }, "peerDependencies": { "@types/react": "^18.2.37 || ^19", @@ -10885,197 +9049,197 @@ } }, "node_modules/@vaadin/scroller": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.8.0-alpha15.tgz", - "integrity": "sha512-808RQSGkM+kCh9JwkWYEKoCOAiWw5luWx2GlhfXG/gnJE2t5qHvpz287jSDKFqkdq8FQoX4Ko5KXNsirn5RiRQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.8.0-beta1.tgz", + "integrity": "sha512-9CKgl3r5UwlYIG6CDlTyT7nakdL6s6Lmtg41Gps41AKeH4mAP4rUQ+nan3V1P4I3l8z1XP7rf3IbgCT3OJP59g==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/select": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.8.0-alpha15.tgz", - "integrity": "sha512-IP1P+jL+yZaiTc/hBbTcCJ76OcOpcoUtkArTslRE1Wi2yQO9ZUgoDiwAkO4j9dQO4EPMcdZ0RpqCy4k3Y/UrpQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-24.8.0-beta1.tgz", + "integrity": "sha512-Tyt8+7KfAV5FvuoJM532WE/txIJ1WVtB/sL1mIciDt5myEuYC0nma4kux4qKa4/JapfN9kendK/4ajLcZ1Bb7Q==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.2.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/list-box": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/list-box": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/side-nav": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.8.0-alpha15.tgz", - "integrity": "sha512-N70ogHzJ5jAOQXmz5OuRnC8h5z6Ux2jsoNOaY+OY9Y1OuCMVCxaSlCfLWuEw6ejOtIfTQ7uJ6Xaaf1wxj4OHxA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/side-nav/-/side-nav-24.8.0-beta1.tgz", + "integrity": "sha512-24ojOsuEOK25CZP840+e/thLIdJTF16MEpsq3oAeFHFn7Wx89iscL5fD16Q92B+DvZUvuFkfFlFX/oYtg3mBLg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/split-layout": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.8.0-alpha15.tgz", - "integrity": "sha512-ZUpFtv0h0JPpjODZGytfLNfWqQaedr9jMqcho/LNsUSjRiZ89b9F0cs+M/DLtVnm9qcb6HFMPZ+M5MlSJL9Zqg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-24.8.0-beta1.tgz", + "integrity": "sha512-MAfIYr0UPpTy6q/lNy70fJravDCVErcMgiT5OCO9voMBBuoX6aT8+RF0FcllQKnweEcIJ71erLUPqeRGKz5wAQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabs": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.8.0-alpha15.tgz", - "integrity": "sha512-rXATtoOZ6RCyxQlA8FfReyt3JOsr7fzs8W3yWLGghcadB3NlaOASw2do1wU1WOe4B1pBF3cxomVsfM8Rb60DLg==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.8.0-beta1.tgz", + "integrity": "sha512-bAXa8ETfSa9BG81fpEYbZVhmtmj4MtwDkY1DcCIvhyA/l0azIejbtrNt5yNyrour8kvarq1CY8uIaKu8oMZFQg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/tabsheet": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.8.0-alpha15.tgz", - "integrity": "sha512-7msp0xAJIOqFQaInMKlDTxcurH+/aAGP7PmR4u8dK4VCO2zOHWhtBJbWfL6590EvWyvLXX+tEe3un0hPqaIatA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.8.0-beta1.tgz", + "integrity": "sha512-Otx93K7xuEYEdCcbIhv/H4t3pGRba1en2Iy2N1tDGKiky3D/mQkz9j4gtWC0f3JZ4Vawsx1doi1pretEkFdrsw==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/scroller": "24.8.0-alpha15", - "@vaadin/tabs": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/scroller": "24.8.0-beta1", + "@vaadin/tabs": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-area": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.8.0-alpha15.tgz", - "integrity": "sha512-WdIJ8zLphYP+0uI/5as8oLCE6wuB5sDdTMObcl1yIulNxFPHuqZQPAoLccu14wtmwch/BCv1XXHDvdEAI9gTcw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-24.8.0-beta1.tgz", + "integrity": "sha512-wXmt51KMqnOqqGeBx8pq8sr9oR52603ZaB+cDNDxygvrtRWGo73sToO1qorG4aaP6AsaCXRTr+lQv+ywWZaC/Q==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/text-field": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.8.0-alpha15.tgz", - "integrity": "sha512-/OJH4Ky5rRhEHsjnnQIsi+D6+x1YIvRu49Km5/bjzpZcnxdTbZ8bs5f0X/liae43iUDs/zq3N9u3XwpT1S/X0w==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.8.0-beta1.tgz", + "integrity": "sha512-wQ0aFo0JqalDLsywLQ9RKTsjhZbVtT1Agqx0bKKlxTkQ2zqDSCkAaR2E3nSSIsyQU16FxSjPDVRk7GUEaVZwKg==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/time-picker": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.8.0-alpha15.tgz", - "integrity": "sha512-HsdOzrHJpU+gKDOu7yxNDpan2hI/3rqsO3sQt3iWV997nxiAI/dnh3uUCvWUbSwvAMPIW0/FkEpCVAkWoc+1iw==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-24.8.0-beta1.tgz", + "integrity": "sha512-YIlFX0ZxYGMRmXgqEX8zSuc25mihcYbxVbEL/LWDU261HmGbgXGyC2Ejp549Yj8OnhwunMs78RlXjh/+NeJKIA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/combo-box": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/field-base": "24.8.0-alpha15", - "@vaadin/input-container": "24.8.0-alpha15", - "@vaadin/item": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/combo-box": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/field-base": "24.8.0-beta1", + "@vaadin/input-container": "24.8.0-beta1", + "@vaadin/item": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/tooltip": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.8.0-alpha15.tgz", - "integrity": "sha512-5LhookrH4EzGU/p9jL2zxmT+WE7/fSOdg7r7bzaKMaEdfbQzSIU01Poa7aRnP2ZW3lrOXBIX2VTD05D65YfT/Q==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.8.0-beta1.tgz", + "integrity": "sha512-x4QAOA2cQqs/JOMHRNYUCcaaQTXc8t9mA1tS6B9ceiZdgKafQ11iGgKY8R9fSBvypEhN4zBwIlh//zG+alqo7A==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/overlay": "24.8.0-alpha15", - "@vaadin/popover": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/overlay": "24.8.0-beta1", + "@vaadin/popover": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/upload": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.8.0-alpha15.tgz", - "integrity": "sha512-emf6p79TaKF9ItZqtmoE8Osnvnvuubt5S2EaYmELnBFXUE4ewnZu6WNhCQWostGyGsOtnAB2L3RqSMA1Du2FbA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-24.8.0-beta1.tgz", + "integrity": "sha512-z/PXq7bu+OQbPa0TFQ5aVyqNwETOXJwTtGJMMyG/fua/6+WojRDq3W+qH6NGoGMIkqBwH7GNRMgjyUIGlzQpFQ==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "24.8.0-alpha15", - "@vaadin/button": "24.8.0-alpha15", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/progress-bar": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/a11y-base": "24.8.0-beta1", + "@vaadin/button": "24.8.0-beta1", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/progress-bar": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, @@ -11086,32 +9250,32 @@ "license": "Apache-2.0" }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.8.0-alpha15.tgz", - "integrity": "sha512-Zp5rQ/tP4irp3NU5tJmkVZQKlcjFB/9HJ49tyWxEPHJdRaHltiiOyOVNT2PSaNVcW7BLE6bwwCxmomD6Ub79BQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.8.0-beta1.tgz", + "integrity": "sha512-a8rDwAA06MHPGbzH5dFsgpRBaHJyej6EQ0vzZ6mLZxbdn0Vpnl2k3Aae72Thsi/czUARmu2TOausORR1ikQOWw==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/icon": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15" + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/icon": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.8.0-alpha15.tgz", - "integrity": "sha512-ilqdk6ZkfAa5YuFFJkXDDD7k5eIvSKyvSpJTuoYCKDY25YxRNZUtraQqGteC0lFL+ZbjjkCotD4pRixpfzaq2A==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.8.0-beta1.tgz", + "integrity": "sha512-KtUTYkvj/pJVIhzZyAlrtw59CdpLkygIzYslt+f7fhWnlfhpRUdjWN8ms3iqJMYbwRqm2yeiFQNJc17FIezPjg==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15" + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.8.0-alpha15.tgz", - "integrity": "sha512-+lUxCSTQAq5+x3vUpOPVyB3ZyAQ8BRwYQiLK1AMgIJLnsLkn0mOTk6gPbAz7UHqaKMAlHiEqyumXMbX6uNE/FA==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.8.0-beta1.tgz", + "integrity": "sha512-DlqtHE8OdCJ+c4kb1xrg3BTjyxTGjq+yMjdMgMDMAGOy0geiZiObPxHyN9SJhqYCzp9EArn+viSRAQoOWLRq8A==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -11133,45 +9297,46 @@ } }, "node_modules/@vaadin/vertical-layout": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.8.0-alpha15.tgz", - "integrity": "sha512-W1sGBjfTSxY1YYAodSprsHFF0aSwlHzBuqor1Jve162L5iVADUe2zdlwNqyFP/doBb/zuBI/lUSUIpESyPyImQ==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-24.8.0-beta1.tgz", + "integrity": "sha512-hRWeJJ9JhRzyeS9i/zjGpGchMfatxh6GfECjV3vXvcbJjh/m/vBP1yWzSjvM10gcGxIcMC52EFKdTfJpKFfN/Q==", "license": "Apache-2.0", "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vaadin/virtual-list": { - "version": "24.8.0-alpha15", - "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.8.0-alpha15.tgz", - "integrity": "sha512-decemaCyF/WZf2NpG9KKCs9ssZdrKarc6hfWUth3XTqnD7zUvZIiCg+jVa0zrLAeaKSOF4Hyyka0Kf4nonbvug==", + "version": "24.8.0-beta1", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-24.8.0-beta1.tgz", + "integrity": "sha512-7LBB3hiin+SXO1y6FE/FkjBQL9W7Qffnw7ZN2LOaa23SsseCgF1nIH1y4KVHWCWXtCT/YOjXqFRQ2de7GXEKmA==", "license": "Apache-2.0", "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "24.8.0-alpha15", - "@vaadin/lit-renderer": "24.8.0-alpha15", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/component-base": "24.8.0-beta1", + "@vaadin/lit-renderer": "24.8.0-beta1", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "lit": "^3.0.0" } }, "node_modules/@vitejs/plugin-react": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", - "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.0.tgz", + "integrity": "sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.26.10", "@babel/plugin-transform-react-jsx-self": "^7.25.9", "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@rolldown/pluginutils": "1.0.0-beta.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -11743,9 +9908,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001689", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz", - "integrity": "sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==", + "version": "1.0.30001720", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001720.tgz", + "integrity": "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==", "dev": true, "funding": [ { @@ -12087,9 +10252,9 @@ } }, "node_modules/compute-scroll-into-view": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", - "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", "license": "MIT" }, "node_modules/concat-map": { @@ -12391,6 +10556,15 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "license": "MIT" }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -13420,15 +11594,15 @@ } }, "node_modules/intl-messageformat": { - "version": "10.7.10", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.10.tgz", - "integrity": "sha512-hp7iejCBiJdW3zmOe18FdlJu8U/JsADSDiBPQhfdSeI8B9POtvPRvPh3nMlvhYayGMKLv6maldhR7y3Pf1vkpw==", + "version": "10.7.16", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.16.tgz", + "integrity": "sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==", "license": "BSD-3-Clause", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.1", - "@formatjs/fast-memoize": "2.2.5", - "@formatjs/icu-messageformat-parser": "2.9.7", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.2", + "tslib": "^2.8.0" } }, "node_modules/is-alphabetical": { @@ -14363,6 +12537,18 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/marked": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/material-ripple-effects": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/material-ripple-effects/-/material-ripple-effects-2.0.1.tgz", @@ -16186,14 +14372,13 @@ } }, "node_modules/react-router": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", - "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.1.tgz", + "integrity": "sha512-hPJXXxHJZEsPFNVbtATH7+MMX43UDeOauz+EAU4cgqTn7ojdI9qQORqS8Z0qmDlL1TclO/6jLRYUEtbWidtdHQ==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" + "set-cookie-parser": "^2.6.0" }, "engines": { "node": ">=20.0.0" @@ -16259,9 +14444,9 @@ } }, "node_modules/react-textarea-autosize": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.6.tgz", - "integrity": "sha512-aT3ioKXMa8f6zHYGebhbdMD2L00tKeRX1zuVuDx9YQK/JLLRSaSxq3ugECEmUB9z2kvk6bFSIoRHLkkUv0RJiw==", + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz", + "integrity": "sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.13", @@ -17457,6 +15642,32 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "license": "MIT" }, + "node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.3.0.tgz", + "integrity": "sha512-ho2k5kn+LB1fT5XdNS3Clb96zieWxbStE9wNLK7D0AV64kdZMaYzAKo0fWl6fXLPY99ffF9oBJnIj5escEl/8A==", + "license": "MIT", + "dependencies": { + "tailwind-merge": "^2.5.4" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, "node_modules/tailwindcss": { "version": "3.4.17", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", @@ -17746,10 +15957,9 @@ "license": "Apache-2.0" }, "node_modules/tsc-template": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/tsc-template/-/tsc-template-0.2.2.tgz", - "integrity": "sha512-+81A7AFfvf3UFEsCBZFvFVMEPj/AqrWMPnLOT9/bQkQgJ6Zt+XKQnOwgKSzFYw4Ysi0Sv8w8e7eSOgFoLbtimw==", - "dev": true, + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tsc-template/-/tsc-template-0.2.3.tgz", + "integrity": "sha512-wuT2Rxl16IfqVAQv2EuJr56nZXACR8Nda2VFNSL+VL2K3XhBKr5cF6ccoW8CvOEyTv11BHuAmT2WWxfCEjJUBA==", "license": "Apache-2.0", "peerDependencies": { "typescript": "5" @@ -17761,12 +15971,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, "node_modules/type-fest": { "version": "4.35.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", @@ -18120,9 +16324,9 @@ } }, "node_modules/use-isomorphic-layout-effect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", - "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -18236,9 +16440,9 @@ } }, "node_modules/vite": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", - "integrity": "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==", + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -18311,20 +16515,20 @@ } }, "node_modules/vite-plugin-checker": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.9.1.tgz", - "integrity": "sha512-neH3CSNWdkZ+zi+WPt/0y5+IO2I0UAI0NX6MaXqU/KxN1Lz6np/7IooRB6VVAMBa4nigqm1GRF6qNa4+EL5jDQ==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.9.3.tgz", + "integrity": "sha512-Tf7QBjeBtG7q11zG0lvoF38/2AVUzzhMNu+Wk+mcsJ00Rk/FpJ4rmUviVJpzWkagbU13cGXvKpt7CMiqtxVTbQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", + "@babel/code-frame": "^7.27.1", "chokidar": "^4.0.3", "npm-run-path": "^6.0.0", "picocolors": "^1.1.1", "picomatch": "^4.0.2", "strip-ansi": "^7.1.0", "tiny-invariant": "^1.3.3", - "tinyglobby": "^0.2.12", + "tinyglobby": "^0.2.13", "vscode-uri": "^3.1.0" }, "engines": { @@ -18340,7 +16544,7 @@ "vite": ">=2.0.0", "vls": "*", "vti": "*", - "vue-tsc": "~2.2.2" + "vue-tsc": "~2.2.10" }, "peerDependenciesMeta": { "@biomejs/biome": { diff --git a/gameyfin/package.json b/gameyfin/package.json index aef632f..3bca70c 100644 --- a/gameyfin/package.json +++ b/gameyfin/package.json @@ -3,28 +3,28 @@ "version": "2.0.0-ALPHA", "type": "module", "dependencies": { - "@heroui/react": "2.7.5", + "@heroui/react": "2.7.9", "@material-tailwind/react": "^2.1.10", "@phosphor-icons/react": "^2.1.7", "@polymer/polymer": "3.5.2", "@react-stately/data": "^3.12.2", "@react-types/shared": "^3.28.0", - "@vaadin/bundles": "24.8.0-alpha15", + "@vaadin/bundles": "24.8.0-beta1", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-file-router": "24.8.0-alpha6", - "@vaadin/hilla-frontend": "24.8.0-alpha6", - "@vaadin/hilla-lit-form": "24.8.0-alpha6", - "@vaadin/hilla-react-auth": "24.8.0-alpha6", - "@vaadin/hilla-react-crud": "24.8.0-alpha6", - "@vaadin/hilla-react-form": "24.8.0-alpha6", - "@vaadin/hilla-react-i18n": "24.8.0-alpha6", - "@vaadin/hilla-react-signals": "24.8.0-alpha6", - "@vaadin/polymer-legacy-adapter": "24.8.0-alpha15", - "@vaadin/react-components": "24.8.0-alpha15", + "@vaadin/hilla-file-router": "24.8.0-beta2", + "@vaadin/hilla-frontend": "24.8.0-beta2", + "@vaadin/hilla-lit-form": "24.8.0-beta2", + "@vaadin/hilla-react-auth": "24.8.0-beta2", + "@vaadin/hilla-react-crud": "24.8.0-beta2", + "@vaadin/hilla-react-form": "24.8.0-beta2", + "@vaadin/hilla-react-i18n": "24.8.0-beta2", + "@vaadin/hilla-react-signals": "24.8.0-beta2", + "@vaadin/polymer-legacy-adapter": "24.8.0-beta1", + "@vaadin/react-components": "24.8.0-beta1", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "@vaadin/vaadin-usage-statistics": "2.1.3", "classnames": "^2.5.1", "construct-style-sheets-polyfill": "3.1.0", @@ -46,7 +46,7 @@ "react-dom": "18.3.1", "react-markdown": "^10.1.0", "react-player": "^2.16.0", - "react-router": "7.5.2", + "react-router": "7.6.1", "remark-breaks": "^4.0.0", "swiper": "^11.2.6", "valtio": "^2.1.5", @@ -54,30 +54,31 @@ "yup": "^1.6.1" }, "devDependencies": { - "@babel/preset-react": "7.26.3", + "@babel/preset-react": "7.27.1", "@lit-labs/react": "^2.1.3", "@preact/signals-react-transform": "0.5.1", "@rollup/plugin-replace": "6.0.2", "@rollup/pluginutils": "5.1.4", "@types/node": "^22.4.0", - "@types/react": "18.3.20", - "@types/react-dom": "18.3.6", - "@vaadin/hilla-generator-cli": "24.8.0-alpha6", - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-backbone": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-barrel": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-model": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-push": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-signals": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-subtypes": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-transfertypes": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", - "@vitejs/plugin-react": "4.4.1", + "@types/react": "18.3.22", + "@types/react-dom": "18.3.7", + "@vaadin/hilla-generator-cli": "24.8.0-beta2", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-backbone": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-barrel": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-model": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-push": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-signals": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-subtypes": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-transfertypes": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", + "@vitejs/plugin-react": "4.5.0", "@vitejs/plugin-react-swc": "^3.7.0", "async": "3.2.6", "autoprefixer": "^10.4.20", "glob": "11.0.2", + "magic-string": "0.30.17", "postcss": "^8.4.41", "postcss-import": "^16.1.0", "rollup-plugin-brotli": "3.1.0", @@ -86,8 +87,8 @@ "tailwindcss": "^3.4.13", "transform-ast": "2.4.4", "typescript": "5.8.3", - "vite": "6.3.3", - "vite-plugin-checker": "0.9.1", + "vite": "6.3.5", + "vite-plugin-checker": "0.9.3", "workbox-build": "7.3.0", "workbox-core": "7.3.0", "workbox-precaching": "7.3.0" @@ -147,62 +148,63 @@ "vaadin": { "dependencies": { "@polymer/polymer": "3.5.2", - "@vaadin/bundles": "24.8.0-alpha15", + "@vaadin/bundles": "24.8.0-beta1", "@vaadin/common-frontend": "0.0.19", - "@vaadin/hilla-file-router": "24.8.0-alpha6", - "@vaadin/hilla-frontend": "24.8.0-alpha6", - "@vaadin/hilla-lit-form": "24.8.0-alpha6", - "@vaadin/hilla-react-auth": "24.8.0-alpha6", - "@vaadin/hilla-react-crud": "24.8.0-alpha6", - "@vaadin/hilla-react-form": "24.8.0-alpha6", - "@vaadin/hilla-react-i18n": "24.8.0-alpha6", - "@vaadin/hilla-react-signals": "24.8.0-alpha6", - "@vaadin/polymer-legacy-adapter": "24.8.0-alpha15", - "@vaadin/react-components": "24.8.0-alpha15", + "@vaadin/hilla-file-router": "24.8.0-beta2", + "@vaadin/hilla-frontend": "24.8.0-beta2", + "@vaadin/hilla-lit-form": "24.8.0-beta2", + "@vaadin/hilla-react-auth": "24.8.0-beta2", + "@vaadin/hilla-react-crud": "24.8.0-beta2", + "@vaadin/hilla-react-form": "24.8.0-beta2", + "@vaadin/hilla-react-i18n": "24.8.0-beta2", + "@vaadin/hilla-react-signals": "24.8.0-beta2", + "@vaadin/polymer-legacy-adapter": "24.8.0-beta1", + "@vaadin/react-components": "24.8.0-beta1", "@vaadin/vaadin-development-mode-detector": "2.0.7", - "@vaadin/vaadin-lumo-styles": "24.8.0-alpha15", - "@vaadin/vaadin-material-styles": "24.8.0-alpha15", - "@vaadin/vaadin-themable-mixin": "24.8.0-alpha15", + "@vaadin/vaadin-lumo-styles": "24.8.0-beta1", + "@vaadin/vaadin-material-styles": "24.8.0-beta1", + "@vaadin/vaadin-themable-mixin": "24.8.0-beta1", "@vaadin/vaadin-usage-statistics": "2.1.3", "construct-style-sheets-polyfill": "3.1.0", "date-fns": "2.29.3", "lit": "3.3.0", "react": "18.3.1", "react-dom": "18.3.1", - "react-router": "7.5.2" + "react-router": "7.6.1" }, "devDependencies": { - "@babel/preset-react": "7.26.3", + "@babel/preset-react": "7.27.1", "@preact/signals-react-transform": "0.5.1", "@rollup/plugin-replace": "6.0.2", "@rollup/pluginutils": "5.1.4", - "@types/react": "18.3.20", - "@types/react-dom": "18.3.6", - "@vaadin/hilla-generator-cli": "24.8.0-alpha6", - "@vaadin/hilla-generator-core": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-backbone": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-barrel": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-client": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-model": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-push": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-signals": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-subtypes": "24.8.0-alpha6", - "@vaadin/hilla-generator-plugin-transfertypes": "24.8.0-alpha6", - "@vaadin/hilla-generator-utils": "24.8.0-alpha6", - "@vitejs/plugin-react": "4.4.1", + "@types/react": "18.3.22", + "@types/react-dom": "18.3.7", + "@vaadin/hilla-generator-cli": "24.8.0-beta2", + "@vaadin/hilla-generator-core": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-backbone": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-barrel": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-client": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-model": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-push": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-signals": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-subtypes": "24.8.0-beta2", + "@vaadin/hilla-generator-plugin-transfertypes": "24.8.0-beta2", + "@vaadin/hilla-generator-utils": "24.8.0-beta2", + "@vitejs/plugin-react": "4.5.0", "async": "3.2.6", "glob": "11.0.2", + "magic-string": "0.30.17", "rollup-plugin-brotli": "3.1.0", "rollup-plugin-visualizer": "5.14.0", "strip-css-comments": "5.0.0", "transform-ast": "2.4.4", "typescript": "5.8.3", - "vite": "6.3.3", - "vite-plugin-checker": "0.9.1", + "vite": "6.3.5", + "vite-plugin-checker": "0.9.3", "workbox-build": "7.3.0", "workbox-core": "7.3.0", "workbox-precaching": "7.3.0" }, - "hash": "5946db89f1666178a141f4993199185e21c2d2fba31f8cbe64550829f8450c78" + "hash": "86f3ea527539716295163ae736b2b548fb6d35efd20c87ae1b109c727817cc71" } -} \ No newline at end of file +} From 7fa2c029af4815aec0f5a7d327c8889d4b2b5f33 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:50:16 +0200 Subject: [PATCH 245/301] Show updatedAt in FE --- gameyfin/src/main/frontend/views/GameView.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gameyfin/src/main/frontend/views/GameView.tsx b/gameyfin/src/main/frontend/views/GameView.tsx index a45b40f..28826ef 100644 --- a/gameyfin/src/main/frontend/views/GameView.tsx +++ b/gameyfin/src/main/frontend/views/GameView.tsx @@ -10,7 +10,7 @@ import {DownloadEndpoint} from "Frontend/endpoints/endpoints"; import {gameState, initializeGameState} from "Frontend/state/GameState"; import {useSnapshot} from "valtio/react"; import GameDto from "Frontend/generated/de/grimsi/gameyfin/games/dto/GameDto"; -import {TriangleDashed} from "@phosphor-icons/react"; +import {Info, TriangleDashed} from "@phosphor-icons/react"; export default function GameView() { const {gameId} = useParams(); @@ -64,8 +64,16 @@ export default function GameView() {

{game.title}

-

{game.release !== undefined ? new Date(game.release).getFullYear() : -

no data

}

+
+

+ {game.release !== undefined ? new Date(game.release).getFullYear() : +

no data

} +

+ + + +
{downloadOptions && Date: Tue, 3 Jun 2025 17:50:34 +0200 Subject: [PATCH 246/301] Use Hilla router config --- gameyfin/src/main/frontend/App.tsx | 6 +- gameyfin/src/main/frontend/routes.tsx | 160 +++++++++++++------------- 2 files changed, 82 insertions(+), 84 deletions(-) diff --git a/gameyfin/src/main/frontend/App.tsx b/gameyfin/src/main/frontend/App.tsx index 26a580d..3eae1d2 100644 --- a/gameyfin/src/main/frontend/App.tsx +++ b/gameyfin/src/main/frontend/App.tsx @@ -2,7 +2,6 @@ import {Outlet, useHref, useNavigate} from 'react-router'; import "./main.css"; import "Frontend/util/custom-validators"; import {HeroUIProvider} from "@heroui/react"; -import {ToastProvider} from "@heroui/toast"; import {ThemeProvider as NextThemesProvider} from "next-themes"; import {themeNames} from "Frontend/theming/themes"; import {AuthProvider} from "Frontend/util/auth"; @@ -12,10 +11,9 @@ import {ErrorHandlingMiddleware} from "Frontend/util/middleware"; import {initializeLibraryState} from "Frontend/state/LibraryState"; import {initializeGameState} from "Frontend/state/GameState"; import {initializeScanState} from "Frontend/state/ScanState"; +import {ToastProvider} from "@heroui/toast"; export default function App() { - const navigate = useNavigate(); - client.middlewares = [ErrorHandlingMiddleware]; initializeLibraryState(); @@ -23,7 +21,7 @@ export default function App() { initializeScanState(); return ( - + diff --git a/gameyfin/src/main/frontend/routes.tsx b/gameyfin/src/main/frontend/routes.tsx index 3bd07ff..bc0cc12 100644 --- a/gameyfin/src/main/frontend/routes.tsx +++ b/gameyfin/src/main/frontend/routes.tsx @@ -1,5 +1,3 @@ -import {protectRoutes} from '@vaadin/hilla-react-auth'; -import {createBrowserRouter, RouteObject} from 'react-router'; import LoginView from "Frontend/views/LoginView"; import MainLayout from "Frontend/views/MainLayout"; import HomeView from "Frontend/views/HomeView"; @@ -24,82 +22,84 @@ import LibraryManagementView from "Frontend/views/LibraryManagementView"; import SearchView from "Frontend/views/SearchView"; import RecentlyAddedView from "Frontend/views/RecentlyAddedView"; import LibraryView from "Frontend/views/LibraryView"; +import {RouterConfigurationBuilder} from "@vaadin/hilla-file-router/runtime.js"; -export const routes = protectRoutes([ - { - element: , - handle: {requiresLogin: false}, - children: [ - { - element: , - handle: {requiresLogin: true}, - children: [ - { - index: true, element: - }, - { - path: '/search', - element: - }, - { - path: 'recently-added', - element: - }, - { - path: 'library/:libraryId', - element: - }, - { - path: 'game/:gameId', - element: - }, - { - path: 'settings', - element: , - children: [ - {path: 'profile', element: }, - {path: 'appearance', element: } - ] - }, - { - path: 'administration', - element: , - children: [ - { - path: 'libraries', - element: - }, - { - path: 'libraries/library/:libraryId', - element: - }, - {path: 'users', element: }, - {path: 'sso', element: }, - {path: 'messages', element: }, - {path: 'plugins', element: }, - {path: 'logs', element: }, - {path: 'system', element: } - ] - } - ] - }, - { - path: '/login', element: , handle: {requiresLogin: false} - }, - { - path: '/setup', element: , handle: {requiresLogin: false} - }, - { - path: '/accept-invitation', element: , handle: {requiresLogin: false} - }, - { - path: '/reset-password', element: , handle: {requiresLogin: false} - }, - { - path: '/confirm-email', element: , handle: {requiresLogin: true} - }, - ], - } -]) as RouteObject[]; - -export default createBrowserRouter(routes); +export const {router, routes} = new RouterConfigurationBuilder() + .withReactRoutes([ + { + element: , + handle: {requiresLogin: false}, + children: [ + { + element: , + handle: {requiresLogin: true}, + children: [ + { + index: true, element: + }, + { + path: 'search', + element: + }, + { + path: 'recently-added', + element: + }, + { + path: 'library/:libraryId', + element: + }, + { + path: 'game/:gameId', + element: + }, + { + path: 'settings', + element: , + children: [ + {path: 'profile', element: }, + {path: 'appearance', element: } + ] + }, + { + path: 'administration', + element: , + children: [ + { + path: 'libraries', + element: + }, + { + path: 'libraries/library/:libraryId', + element: + }, + {path: 'users', element: }, + {path: 'sso', element: }, + {path: 'messages', element: }, + {path: 'plugins', element: }, + {path: 'logs', element: }, + {path: 'system', element: } + ] + } + ] + }, + { + path: 'login', element: , handle: {requiresLogin: false} + }, + { + path: 'setup', element: , handle: {requiresLogin: false} + }, + { + path: 'accept-invitation', element: , handle: {requiresLogin: false} + }, + { + path: 'reset-password', element: , handle: {requiresLogin: false} + }, + { + path: 'confirm-email', element: , handle: {requiresLogin: true} + }, + ] + } + ]) + .protect("/login") + .build(); From 6e390df900c476cc81c088a47cb32bfa1d59384b Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:50:47 +0200 Subject: [PATCH 247/301] Fix TS errors from Material Tailwind --- gameyfin/src/main/frontend/components/wizard/Wizard.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gameyfin/src/main/frontend/components/wizard/Wizard.tsx b/gameyfin/src/main/frontend/components/wizard/Wizard.tsx index 7a71044..db9cdb9 100644 --- a/gameyfin/src/main/frontend/components/wizard/Wizard.tsx +++ b/gameyfin/src/main/frontend/components/wizard/Wizard.tsx @@ -56,7 +56,9 @@ const Wizard = ({children, initialValues, onSubmit}: { lineClassName="bg-foreground" placeholder={undefined} onPointerEnterCapture={undefined} - onPointerLeaveCapture={undefined}> + onPointerLeaveCapture={undefined} + onResize={undefined} + onResizeCapture={undefined}> {steps.map((child, index) => ( + onPointerLeaveCapture={undefined} + onResize={undefined} + onResizeCapture={undefined}> {/*@ts-ignore*/} {child.props.icon} From 0050ab1f745d315c5bea8ba081754b46b3215ad4 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Tue, 3 Jun 2025 17:51:17 +0200 Subject: [PATCH 248/301] Implement type-safe config for plugins in BE and FE --- gameyfin/build.gradle.kts | 2 +- .../administration/LibraryManagement.tsx | 8 +- .../administration/SsoManagement.tsx | 8 +- .../general/cards/PluginManagementCard.tsx | 4 +- .../general/input/PluginConfigFormField.tsx | 58 +++++++++ .../components/general/input/SelectInput.tsx | 28 ++--- .../general/modals/PluginDetailsModal.tsx | 32 +++-- gameyfin/src/main/frontend/index.tsx | 2 +- .../gameyfin/core/plugins/PluginEndpoint.kt | 2 +- .../gameyfin/core/plugins/PluginService.kt | 27 +++-- .../plugins/dto/PluginConfigMetadataDto.kt | 16 +++ .../gameyfin/core/plugins/dto/PluginDto.kt | 5 +- .../core/plugins/dto/PluginUpdateDto.kt | 2 +- .../management/GameyfinPluginManager.kt | 10 +- gameyfin/vite.generated.ts | 110 +++--------------- plugin-api/build.gradle.kts | 9 -- .../gameyfin/pluginapi/core/Configurable.kt | 9 -- .../core/ConfigurableGameyfinPlugin.kt | 17 --- .../pluginapi/core/PluginConfigElement.kt | 8 -- .../pluginapi/core/config/ConfigMetadata.kt | 21 ++++ .../pluginapi/core/config/Configurable.kt | 15 +++ .../core/{ => config}/PluginConfigError.kt | 2 +- .../PluginConfigValidationResult.kt | 2 +- .../wrapper/ConfigurableGameyfinPlugin.kt | 92 +++++++++++++++ .../core/{ => wrapper}/GameyfinPlugin.kt | 3 +- .../plugins/directdownload/CompressionMode.kt | 18 +++ .../directdownload/DirectDownloadPlugin.kt | 63 +++------- .../gameyfin/plugins/igdb/IgdbPlugin.kt | 30 +++-- .../gameyfin/plugins/steam/SteamPlugin.kt | 2 +- .../plugins/steamgriddb/SteamGridDbPlugin.kt | 26 +++-- 30 files changed, 372 insertions(+), 259 deletions(-) create mode 100644 gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx create mode 100644 gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt delete mode 100644 plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/Configurable.kt delete mode 100644 plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/ConfigurableGameyfinPlugin.kt delete mode 100644 plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigElement.kt create mode 100644 plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt create mode 100644 plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt rename plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/{ => config}/PluginConfigError.kt (58%) rename plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/{ => config}/PluginConfigValidationResult.kt (92%) create mode 100644 plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt rename plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/{ => wrapper}/GameyfinPlugin.kt (93%) create mode 100644 plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/CompressionMode.kt diff --git a/gameyfin/build.gradle.kts b/gameyfin/build.gradle.kts index f271060..92b302c 100644 --- a/gameyfin/build.gradle.kts +++ b/gameyfin/build.gradle.kts @@ -35,7 +35,7 @@ dependencies { implementation("jakarta.validation:jakarta.validation-api:3.1.0") // Kotlin extensions - implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("reflect")) // Reactive implementation("org.springframework.boot:spring-boot-starter-webflux") diff --git a/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx b/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx index c58855c..62ed3d5 100644 --- a/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx +++ b/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx @@ -1,4 +1,4 @@ -import React, {useEffect} from "react"; +import React from "react"; import ConfigFormField from "Frontend/components/administration/ConfigFormField"; import withConfigPage from "Frontend/components/administration/withConfigPage"; import Section from "Frontend/components/general/Section"; @@ -11,16 +11,12 @@ import LibraryCreationModal from "Frontend/components/general/modals/LibraryCrea import LibraryUpdateDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto"; import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto"; import {useSnapshot} from "valtio/react"; -import {initializeLibraryState, libraryState} from "Frontend/state/LibraryState"; +import {libraryState} from "Frontend/state/LibraryState"; function LibraryManagementLayout({getConfig, formik}: any) { const libraryCreationModal = useDisclosure(); const state = useSnapshot(libraryState); - useEffect(() => { - initializeLibraryState(); - }, []); - async function updateLibrary(library: LibraryUpdateDto) { await LibraryEndpoint.updateLibrary(library); addToast({ diff --git a/gameyfin/src/main/frontend/components/administration/SsoManagement.tsx b/gameyfin/src/main/frontend/components/administration/SsoManagement.tsx index 0a29bad..3d4cab7 100644 --- a/gameyfin/src/main/frontend/components/administration/SsoManagement.tsx +++ b/gameyfin/src/main/frontend/components/administration/SsoManagement.tsx @@ -52,9 +52,11 @@ function SsoManagementLayout({getConfig, formik, setSaveMessage}: any) {
- +
+ +
diff --git a/gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx b/gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx index dbdafa2..301a086 100644 --- a/gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx +++ b/gameyfin/src/main/frontend/components/general/cards/PluginManagementCard.tsx @@ -23,9 +23,9 @@ import PluginTrustLevel from "Frontend/generated/de/grimsi/gameyfin/core/plugins import {PluginEndpoint} from "Frontend/generated/endpoints"; import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto"; import PluginConfigValidationResult - from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/PluginConfigValidationResult"; + from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult"; import PluginConfigValidationResultType - from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/PluginConfigValidationResultType"; + from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResultType"; export function PluginManagementCard({plugin}: { plugin: PluginDto }) { const pluginDetailsModal = useDisclosure(); diff --git a/gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx b/gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx new file mode 100644 index 0000000..9deec2a --- /dev/null +++ b/gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx @@ -0,0 +1,58 @@ +import SelectInput from "Frontend/components/general/input/SelectInput"; +import CheckboxInput from "Frontend/components/general/input/CheckboxInput"; +import Input from "Frontend/components/general/input/Input"; +import React from "react"; +import PluginConfigMetadataDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto"; + +export default function PluginConfigFormField({pluginConfigMetadata, ...props}: any) { + function inputElement(metadata: PluginConfigMetadataDto) { + + if (metadata.allowedValues != null && metadata.allowedValues.length > 0) { + return ( + + ); + } + + switch (metadata.type) { + case "Boolean": + return ( + + ); + case "String": + return ( + + ); + case "Float": + return ( + + ); + case "Int": + return ( + + ); + default: + return
Unsupported type: {metadata.type} for key {metadata.key}
; + } + } + + return inputElement(pluginConfigMetadata!); +} \ No newline at end of file diff --git a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx b/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx index 85165d4..01d0824 100644 --- a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx +++ b/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx @@ -6,23 +6,19 @@ const SelectInput = ({label, values, ...props}) => { // @ts-ignore const [field] = useField(props); + const items = values.map((v: string) => ({key: v, label: v})); + return ( -
- -
+ ); } diff --git a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx b/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx index 981c6e3..f99993b 100644 --- a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx +++ b/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx @@ -1,14 +1,14 @@ import React, {useState} from "react"; import {addToast, Button, Link, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Tooltip} from "@heroui/react"; import {Form, Formik} from "formik"; -import PluginConfigElement from "Frontend/generated/de/grimsi/gameyfin/pluginapi/core/PluginConfigElement"; -import Input from "Frontend/components/general/input/Input"; import PluginLogo from "Frontend/components/general/plugin/PluginLogo"; import Markdown from "react-markdown"; import remarkBreaks from "remark-breaks"; import {PluginEndpoint} from "Frontend/generated/endpoints"; import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto"; import {ArrowClockwise} from "@phosphor-icons/react"; +import PluginConfigMetadataDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto"; +import PluginConfigFormField from "Frontend/components/general/input/PluginConfigFormField"; interface PluginDetailsModalProps { plugin: PluginDto; @@ -35,11 +35,28 @@ export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: Plugi }); } + function getEffectiveConfig(): Record { + const effectiveConfig: Record = {}; + if (!plugin.configMetadata) return effectiveConfig; + + for (const meta of plugin.configMetadata) { + const key = meta.key; + let value = plugin.config?.[key]?.toString(); + if (value == null && meta.default != null) { + value = meta.default.toString(); + } + if (value) { + effectiveConfig[key] = value; + } + } + return effectiveConfig; + } + return ( {(onClose) => ( - { @@ -138,10 +155,11 @@ export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: Plugi } {(plugin.configMetadata && plugin.configMetadata.length > 0) ? - plugin.configMetadata.map((entry: PluginConfigElement) => ( - + plugin.configMetadata.map((entry: PluginConfigMetadataDto) => ( + )) : "This plugin has no configuration options." } diff --git a/gameyfin/src/main/frontend/index.tsx b/gameyfin/src/main/frontend/index.tsx index 9f6ea4a..0c4daa5 100644 --- a/gameyfin/src/main/frontend/index.tsx +++ b/gameyfin/src/main/frontend/index.tsx @@ -1,7 +1,7 @@ import {createRoot} from 'react-dom/client'; import {StrictMode} from "react"; import {RouterProvider} from "react-router"; -import router from "./routes"; +import {router} from './routes'; const container = document.getElementById('outlet')!; const root = createRoot(container); diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt index 75a7988..171f4c8 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginEndpoint.kt @@ -3,7 +3,7 @@ package de.grimsi.gameyfin.core.plugins import com.vaadin.hilla.Endpoint import de.grimsi.gameyfin.core.Role import de.grimsi.gameyfin.core.plugins.dto.PluginUpdateDto -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult import de.grimsi.gameyfin.users.util.isAdmin import jakarta.annotation.security.PermitAll import jakarta.annotation.security.RolesAllowed diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt index d9749ee..db87df1 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/PluginService.kt @@ -3,16 +3,16 @@ package de.grimsi.gameyfin.core.plugins import de.grimsi.gameyfin.core.plugins.config.PluginConfigEntry import de.grimsi.gameyfin.core.plugins.config.PluginConfigEntryKey import de.grimsi.gameyfin.core.plugins.config.PluginConfigRepository +import de.grimsi.gameyfin.core.plugins.dto.PluginConfigMetadataDto import de.grimsi.gameyfin.core.plugins.dto.PluginDto import de.grimsi.gameyfin.core.plugins.dto.PluginUpdateDto import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginDescriptor import de.grimsi.gameyfin.core.plugins.management.GameyfinPluginManager import de.grimsi.gameyfin.core.plugins.management.PluginManagementEntry import de.grimsi.gameyfin.core.plugins.management.PluginManagementRepository -import de.grimsi.gameyfin.pluginapi.core.Configurable -import de.grimsi.gameyfin.pluginapi.core.GameyfinPlugin -import de.grimsi.gameyfin.pluginapi.core.PluginConfigElement -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.Configurable +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.wrapper.GameyfinPlugin import io.github.oshai.kotlinlogging.KotlinLogging import org.pf4j.ExtensionPoint import org.pf4j.PluginWrapper @@ -96,11 +96,24 @@ class PluginService( return plugin.getLogo() } - fun getConfigMetadata(pluginWrapper: PluginWrapper): List { + fun getConfigMetadata(pluginWrapper: PluginWrapper): List? { log.debug { "Getting config metadata for plugin ${pluginWrapper.pluginId}" } val plugin = pluginWrapper.plugin - if (plugin !is Configurable) return emptyList() - return plugin.configMetadata + + if (plugin !is Configurable) return null + + return plugin.configMetadata.map { meta -> + PluginConfigMetadataDto( + key = meta.key, + type = meta.type.simpleName ?: "Unknown", + label = meta.label, + description = meta.description, + default = meta.default, + isSecret = meta.isSecret, + isRequired = meta.isRequired, + allowedValues = meta.allowedValues?.map { it.toString() } + ) + } } fun getConfig(pluginWrapper: PluginWrapper): Map { diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt new file mode 100644 index 0000000..d98f9ad --- /dev/null +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto.kt @@ -0,0 +1,16 @@ +package de.grimsi.gameyfin.core.plugins.dto + +import com.fasterxml.jackson.annotation.JsonInclude +import java.io.Serializable + +@JsonInclude(JsonInclude.Include.ALWAYS) +class PluginConfigMetadataDto( + val key: String, + val type: String, + val label: String, + val description: String, + val default: Serializable?, + val isSecret: Boolean, + val isRequired: Boolean, + val allowedValues: List? +) \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt index 1b569ad..bbf092f 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginDto.kt @@ -1,8 +1,7 @@ package de.grimsi.gameyfin.core.plugins.dto import de.grimsi.gameyfin.core.plugins.management.PluginTrustLevel -import de.grimsi.gameyfin.pluginapi.core.PluginConfigElement -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult import org.pf4j.PluginState data class PluginDto( @@ -17,7 +16,7 @@ data class PluginDto( val url: String? = null, val hasLogo: Boolean, val state: PluginState, - val configMetadata: List? = null, + val configMetadata: List? = null, val config: Map? = null, val configValidation: PluginConfigValidationResult? = null, val priority: Int, diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt index e673bc7..6a84ba8 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/dto/PluginUpdateDto.kt @@ -1,7 +1,7 @@ package de.grimsi.gameyfin.core.plugins.dto import com.fasterxml.jackson.annotation.JsonInclude -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult import org.pf4j.PluginState @JsonInclude(JsonInclude.Include.NON_NULL) diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt index 19fc3e3..70800df 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/core/plugins/management/GameyfinPluginManager.kt @@ -1,9 +1,9 @@ package de.grimsi.gameyfin.core.plugins.management import de.grimsi.gameyfin.core.plugins.config.PluginConfigRepository -import de.grimsi.gameyfin.pluginapi.core.Configurable -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResultType +import de.grimsi.gameyfin.pluginapi.core.config.Configurable +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResultType import io.github.oshai.kotlinlogging.KotlinLogging import org.pf4j.* import org.springframework.data.repository.findByIdOrNull @@ -164,7 +164,7 @@ class GameyfinPluginManager( fun restart(pluginId: String) { val plugin = getPlugin(pluginId)?.plugin ?: return stopPlugin(pluginId) - if (plugin is Configurable) plugin.config = getConfig(pluginId) + if (plugin is Configurable) plugin.loadConfig(getConfig(pluginId)) startPlugin(pluginId) } @@ -213,7 +213,7 @@ class GameyfinPluginManager( val plugin = pluginWrapper.plugin if (plugin is Configurable) { val config = getConfig(pluginWrapper.pluginId) - plugin.config = config + plugin.loadConfig(config) } } diff --git a/gameyfin/vite.generated.ts b/gameyfin/vite.generated.ts index 862286c..7667173 100644 --- a/gameyfin/vite.generated.ts +++ b/gameyfin/vite.generated.ts @@ -16,20 +16,19 @@ import settings from './build/vaadin-dev-server-settings.json'; import { AssetInfo, ChunkInfo, - build, defineConfig, mergeConfig, OutputOptions, PluginOption, - InlineConfig, UserConfigFn } from 'vite'; -import { getManifest, type ManifestTransform } from 'workbox-build'; import * as rollup from 'rollup'; import brotli from 'rollup-plugin-brotli'; import checker from 'vite-plugin-checker'; import postcssLit from './build/plugins/rollup-plugin-postcss-lit-custom/rollup-plugin-postcss-lit.js'; +import vaadinI18n from './build/plugins/rollup-plugin-vaadin-i18n/rollup-plugin-vaadin-i18n.js'; +import serviceWorkerPlugin from './build/plugins/vite-plugin-service-worker'; import { createRequire } from 'module'; @@ -41,8 +40,6 @@ import vitePluginFileSystemRouter from '@vaadin/hilla-file-router/vite-plugin.js // Make `require` compatible with ES modules const require = createRequire(import.meta.url); -const appShellUrl = '.'; - const frontendFolder = path.resolve(__dirname, settings.frontendFolder); const themeFolder = path.resolve(frontendFolder, settings.themeFolder); const frontendBundleFolder = path.resolve(__dirname, settings.frontendBundleOutput); @@ -56,6 +53,7 @@ const buildOutputFolder = devBundle ? devBundleFolder : frontendBundleFolder; const statsFolder = path.resolve(__dirname, devBundle ? settings.devBundleStatsOutput : settings.statsOutput); const statsFile = path.resolve(statsFolder, 'stats.json'); const bundleSizeFile = path.resolve(statsFolder, 'bundle-size.html'); +const i18nFolder = path.resolve(__dirname, settings.i18nOutput); const nodeModulesFolder = path.resolve(__dirname, 'node_modules'); const webComponentTags = ''; @@ -91,94 +89,6 @@ const target = ['safari15', 'es2022']; console.trace = () => {}; console.debug = () => {}; -function injectManifestToSWPlugin(): rollup.Plugin { - const rewriteManifestIndexHtmlUrl: ManifestTransform = (manifest) => { - const indexEntry = manifest.find((entry) => entry.url === 'index.html'); - if (indexEntry) { - indexEntry.url = appShellUrl; - } - - return { manifest, warnings: [] }; - }; - - return { - name: 'vaadin:inject-manifest-to-sw', - async transform(code, id) { - if (/sw\.(ts|js)$/.test(id)) { - const { manifestEntries } = await getManifest({ - globDirectory: buildOutputFolder, - globPatterns: ['**/*'], - globIgnores: ['**/*.br', 'pwa-icons/**'], - manifestTransforms: [rewriteManifestIndexHtmlUrl], - maximumFileSizeToCacheInBytes: 100 * 1024 * 1024 // 100mb, - }); - - return code.replace('self.__WB_MANIFEST', JSON.stringify(manifestEntries)); - } - } - }; -} - -function buildSWPlugin(opts: { devMode: boolean }): PluginOption { - let buildConfig: InlineConfig; - let buildOutput: rollup.RollupOutput; - const devMode = opts.devMode; - - return { - name: 'vaadin:build-sw', - enforce: 'post', - async configResolved(viteConfig) { - buildConfig = { - base: viteConfig.base, - root: viteConfig.root, - mode: viteConfig.mode, - resolve: viteConfig.resolve, - define: { - ...viteConfig.define, - 'process.env.NODE_ENV': JSON.stringify(viteConfig.mode), - }, - build: { - write: !devMode, - minify: viteConfig.build.minify, - outDir: viteConfig.build.outDir, - target, - sourcemap: viteConfig.command === 'serve' || viteConfig.build.sourcemap, - emptyOutDir: false, - modulePreload: false, - rollupOptions: { - input: { - sw: settings.clientServiceWorkerSource - }, - output: { - exports: 'none', - entryFileNames: 'sw.js', - inlineDynamicImports: true, - }, - }, - }, - }; - }, - async buildStart() { - if (devMode) { - buildOutput = await build(buildConfig) as rollup.RollupOutput; - } - }, - async load(id) { - if (id.endsWith('sw.js')) { - return buildOutput.output[0].code; - } - }, - async closeBundle() { - if (!devMode) { - await build({ - ...buildConfig, - plugins: [injectManifestToSWPlugin(), brotli()] - }); - } - }, - }; -} - function statsExtracterPlugin(): PluginOption { function collectThemeJsonsInFrontend(themeJsonContents: Record, themeName: string) { const themeJson = path.resolve(frontendFolder, settings.themeFolder, themeName, 'theme.json'); @@ -276,7 +186,7 @@ function statsExtracterPlugin(): PluginOption { const frontendFiles: Record = {}; frontendFiles['index.html'] = createHash('sha256').update(customIndexData.replace(/\r\n/g, '\n'), 'utf8').digest('hex'); - const projectFileExtensions = ['.js', '.js.map', '.ts', '.ts.map', '.tsx', '.tsx.map', '.css', '.css.map', '.']; + const projectFileExtensions = ['.js', '.js.map', '.ts', '.ts.map', '.tsx', '.tsx.map', '.css', '.css.map']; const isThemeComponentsResource = (id: string) => id.startsWith(themeOptions.frontendGeneratedFolder.replace(/\\/g, '/')) @@ -753,7 +663,9 @@ export const vaadinConfig: UserConfigFn = (env) => { productionMode && brotli(), devMode && vaadinBundlesPlugin(), devMode && showRecompileReason(), - settings.offlineEnabled && buildSWPlugin({ devMode }), + settings.offlineEnabled && serviceWorkerPlugin({ + srcPath: settings.clientServiceWorkerSource, + }), !devMode && statsExtracterPlugin(), !productionMode && preserveUsageStats(), themePlugin({ devMode }), @@ -795,6 +707,14 @@ export const vaadinConfig: UserConfigFn = (env) => { ].filter(Boolean) } }), + productionMode && vaadinI18n({ + cwd: __dirname, + meta: { + output: { + dir: i18nFolder, + }, + }, + }), { name: 'vaadin:force-remove-html-middleware', configureServer(server) { diff --git a/plugin-api/build.gradle.kts b/plugin-api/build.gradle.kts index 8269de3..f7b212d 100644 --- a/plugin-api/build.gradle.kts +++ b/plugin-api/build.gradle.kts @@ -20,13 +20,4 @@ publishing { dependencies { // PF4J (shared) api("org.pf4j:pf4j:${rootProject.extra["pf4jVersion"]}") - - implementation(kotlin("stdlib")) - - // Test dependencies - testImplementation(kotlin("test")) -} - -tasks.test { - useJUnitPlatform() } \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/Configurable.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/Configurable.kt deleted file mode 100644 index af07549..0000000 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/Configurable.kt +++ /dev/null @@ -1,9 +0,0 @@ -package de.grimsi.gameyfin.pluginapi.core - -interface Configurable { - val configMetadata: List - var config: Map - - fun validateConfig(): PluginConfigValidationResult = validateConfig(config) - fun validateConfig(config: Map): PluginConfigValidationResult -} \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/ConfigurableGameyfinPlugin.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/ConfigurableGameyfinPlugin.kt deleted file mode 100644 index fc54003..0000000 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/ConfigurableGameyfinPlugin.kt +++ /dev/null @@ -1,17 +0,0 @@ -package de.grimsi.gameyfin.pluginapi.core - -import org.pf4j.PluginWrapper - -abstract class ConfigurableGameyfinPlugin(wrapper: PluginWrapper) : GameyfinPlugin(wrapper), Configurable { - - companion object { - lateinit var plugin: ConfigurableGameyfinPlugin - private set - } - - init { - plugin = this - } - - override var config: Map = emptyMap() -} \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigElement.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigElement.kt deleted file mode 100644 index 293c8a7..0000000 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigElement.kt +++ /dev/null @@ -1,8 +0,0 @@ -package de.grimsi.gameyfin.pluginapi.core - -data class PluginConfigElement( - val key: String, - val name: String, - val description: String, - val isSecret: Boolean = false -) \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt new file mode 100644 index 0000000..f92e869 --- /dev/null +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/ConfigMetadata.kt @@ -0,0 +1,21 @@ +package de.grimsi.gameyfin.pluginapi.core.config + +import java.io.Serializable + +typealias PluginConfigMetadata = List> + +data class ConfigMetadata( + val key: String, + val type: Class, + val label: String, + val description: String, + val default: T? = null, + val isSecret: Boolean = false, + val isRequired: Boolean = true, +) { + var allowedValues: List? = null + + init { + allowedValues = type.enumConstants?.toList() + } +} \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt new file mode 100644 index 0000000..ba173e8 --- /dev/null +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/Configurable.kt @@ -0,0 +1,15 @@ +package de.grimsi.gameyfin.pluginapi.core.config + +import java.io.Serializable + +interface Configurable { + val configMetadata: PluginConfigMetadata + + fun loadConfig(config: Map) + + fun validateConfig(): PluginConfigValidationResult + fun validateConfig(config: Map): PluginConfigValidationResult + + fun config(key: String): T + fun optionalConfig(key: String): T? +} \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigError.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigError.kt similarity index 58% rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigError.kt rename to plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigError.kt index c461e7c..4b8719c 100644 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigError.kt +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigError.kt @@ -1,3 +1,3 @@ -package de.grimsi.gameyfin.pluginapi.core +package de.grimsi.gameyfin.pluginapi.core.config class PluginConfigError(message: String) : RuntimeException(message) \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigValidationResult.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt similarity index 92% rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigValidationResult.kt rename to plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt index 338b5d3..2495116 100644 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/PluginConfigValidationResult.kt +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt @@ -1,4 +1,4 @@ -package de.grimsi.gameyfin.pluginapi.core +package de.grimsi.gameyfin.pluginapi.core.config data class PluginConfigValidationResult( val result: PluginConfigValidationResultType, diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt new file mode 100644 index 0000000..f7e5632 --- /dev/null +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/ConfigurableGameyfinPlugin.kt @@ -0,0 +1,92 @@ +package de.grimsi.gameyfin.pluginapi.core.wrapper + +import de.grimsi.gameyfin.pluginapi.core.config.ConfigMetadata +import de.grimsi.gameyfin.pluginapi.core.config.Configurable +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigError +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigValidationResult +import org.pf4j.PluginWrapper +import java.io.Serializable + +@Suppress("UNCHECKED_CAST") +abstract class ConfigurableGameyfinPlugin(wrapper: PluginWrapper) : GameyfinPlugin(wrapper), Configurable { + + private var config: Map = emptyMap() + + override fun loadConfig(config: Map) { + this.config = config + } + + override fun validateConfig(): PluginConfigValidationResult = validateConfig(config) + + override fun validateConfig(config: Map): PluginConfigValidationResult { + val errors = mutableMapOf() + + for (meta in configMetadata) { + val value = resolveValue(meta.key, config) + if (meta.isRequired && value == null) { + errors[meta.key] = "${meta.label} is required" + continue + } + if (value != null) { + try { + castConfigValue(meta, value) + } catch (e: PluginConfigError) { + errors[meta.key] = e.message ?: "Invalid value" + } + } + } + + return if (errors.isEmpty()) { + PluginConfigValidationResult.VALID + } else { + PluginConfigValidationResult.INVALID(errors) + } + } + + override fun optionalConfig(key: String): T? { + val meta = resolveMetadata(key) + val value = resolveValue(key) + if (value == null) return null + + return try { + castConfigValue(meta, value) as T + } catch (e: Exception) { + throw PluginConfigError("Failed to cast value for key '$key' to type ${meta.type.simpleName}: ${e.message}") + } + } + + private fun castConfigValue(meta: ConfigMetadata<*>, value: Any): Any? { + val expectedType = meta.type + return if (expectedType.isEnum) { + try { + java.lang.Enum.valueOf(expectedType as Class>, value.toString()) + } catch (_: IllegalArgumentException) { + throw PluginConfigError("Invalid value '${value}', must be one of ${meta.allowedValues!!.joinToString(", ")}") + } + } else { + if (!expectedType.isInstance(value)) { + throw PluginConfigError("Value for key '${meta.key}' is not of type ${expectedType.simpleName}") + } + value + } + } + + override fun config(key: String): T { + val value = optionalConfig(key) + if (value == null) { + throw PluginConfigError("Required configuration key '$key' is missing or has no value") + } + return value + } + + private fun resolveMetadata(key: String): ConfigMetadata<*> { + return configMetadata.find { it.key == key } + ?: throw PluginConfigError("Unknown configuration key: $key") + } + + private fun resolveValue(key: String, configOverride: Map? = null): Serializable? { + val meta = resolveMetadata(key) + val conf = configOverride ?: config + return conf[key] ?: meta.default + } +} \ No newline at end of file diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/GameyfinPlugin.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt similarity index 93% rename from plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/GameyfinPlugin.kt rename to plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt index ed15165..46e1f49 100644 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/GameyfinPlugin.kt +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/wrapper/GameyfinPlugin.kt @@ -1,8 +1,9 @@ -package de.grimsi.gameyfin.pluginapi.core +package de.grimsi.gameyfin.pluginapi.core.wrapper import org.pf4j.Plugin import org.pf4j.PluginWrapper +@Suppress("DEPRECATION") abstract class GameyfinPlugin(wrapper: PluginWrapper) : Plugin(wrapper) { companion object { diff --git a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/CompressionMode.kt b/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/CompressionMode.kt new file mode 100644 index 0000000..c571604 --- /dev/null +++ b/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/CompressionMode.kt @@ -0,0 +1,18 @@ +package de.grimsi.gameyfin.plugins.directdownload + +import de.grimsi.gameyfin.plugins.directdownload.CompressionMode.* +import java.util.zip.Deflater + +enum class CompressionMode { + NONE, + FAST, + BEST; +} + +fun CompressionMode.deflaterLevel(): Int { + return when (this) { + NONE -> Deflater.NO_COMPRESSION + FAST -> Deflater.BEST_SPEED + BEST -> Deflater.BEST_COMPRESSION + } +} \ No newline at end of file diff --git a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/DirectDownloadPlugin.kt b/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/DirectDownloadPlugin.kt index 470caef..81f0fac 100644 --- a/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/DirectDownloadPlugin.kt +++ b/plugins/directdownload/src/main/kotlin/de/grimsi/gameyfin/plugins/directdownload/DirectDownloadPlugin.kt @@ -1,8 +1,8 @@ package de.grimsi.gameyfin.plugins.directdownload -import de.grimsi.gameyfin.pluginapi.core.ConfigurableGameyfinPlugin -import de.grimsi.gameyfin.pluginapi.core.PluginConfigElement -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.ConfigMetadata +import de.grimsi.gameyfin.pluginapi.core.config.PluginConfigMetadata +import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin import de.grimsi.gameyfin.pluginapi.download.Download import de.grimsi.gameyfin.pluginapi.download.DownloadProvider import de.grimsi.gameyfin.pluginapi.download.FileDownload @@ -14,7 +14,6 @@ import java.io.PipedInputStream import java.io.PipedOutputStream import java.nio.file.* import java.nio.file.attribute.BasicFileAttributes -import java.util.zip.Deflater import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream import kotlin.io.path.exists @@ -24,31 +23,25 @@ import kotlin.io.path.isDirectory class DirectDownloadPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin(wrapper) { - override val configMetadata: List = listOf( - PluginConfigElement( + companion object { + lateinit var plugin: DirectDownloadPlugin + private set + } + + init { + plugin = this + } + + override val configMetadata: PluginConfigMetadata = listOf( + ConfigMetadata( key = "compressionMode", - name = "Compression mode (\"none\" = default, \"fast\", \"best\")", + type = CompressionMode::class.java, + label = "Compression mode", description = "Higher compression modes are more resource intensive, but save bandwidth", + default = CompressionMode.NONE ) ) - override fun validateConfig(config: Map): PluginConfigValidationResult { - val compressionMode = config["compressionMode"] - - if (compressionMode != null) { - return try { - CompressionMode.valueOf(compressionMode.uppercase()) - PluginConfigValidationResult.VALID - } catch (_: IllegalArgumentException) { - PluginConfigValidationResult.INVALID( - mapOf("compressionMode" to "Invalid compression mode: $compressionMode (must be \"none\", \"fast\", or \"best\")") - ) - } - } - - return PluginConfigValidationResult.VALID - } - @Extension class DirectDownloadProvider : DownloadProvider { override fun download(path: Path): Download { @@ -95,9 +88,8 @@ class DirectDownloadPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin( try { ZipOutputStream(pipeOut).use { zos -> - zos.setLevel(CompressionMode.toDeflaterLevel(plugin.config["compressionMode"]?.let { - CompressionMode.valueOf(it.uppercase()) - } ?: CompressionMode.NONE)) + val compressionMode = plugin.config("compressionMode") + zos.setLevel(compressionMode.deflaterLevel()) Files.walkFileTree(path, object : SimpleFileVisitor() { override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult { @@ -124,21 +116,4 @@ class DirectDownloadPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin( return pipeIn } } -} - - -enum class CompressionMode { - NONE, - FAST, - BEST; - - companion object { - fun toDeflaterLevel(mode: CompressionMode): Int { - return when (mode) { - NONE -> Deflater.NO_COMPRESSION - FAST -> Deflater.BEST_SPEED - BEST -> Deflater.BEST_COMPRESSION - } - } - } } \ No newline at end of file diff --git a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfin/plugins/igdb/IgdbPlugin.kt b/plugins/igdb/src/main/kotlin/de/grimsi/gameyfin/plugins/igdb/IgdbPlugin.kt index bd587ee..eab29fb 100644 --- a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfin/plugins/igdb/IgdbPlugin.kt +++ b/plugins/igdb/src/main/kotlin/de/grimsi/gameyfin/plugins/igdb/IgdbPlugin.kt @@ -5,7 +5,8 @@ import com.api.igdb.exceptions.RequestException import com.api.igdb.request.IGDBWrapper import com.api.igdb.request.TwitchAuthenticator import com.api.igdb.request.games -import de.grimsi.gameyfin.pluginapi.core.* +import de.grimsi.gameyfin.pluginapi.core.config.* +import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadataProvider import me.xdrop.fuzzywuzzy.FuzzySearch @@ -16,26 +17,35 @@ import proto.Game import java.time.Instant import java.util.concurrent.TimeUnit -class IgdbPlugin(wrapper: PluginWrapper) : GameyfinPlugin(wrapper), Configurable { +class IgdbPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin(wrapper) { - override val configMetadata = listOf( - PluginConfigElement( + override val configMetadata: PluginConfigMetadata = listOf( + ConfigMetadata( key = "clientId", - name = "Twitch client ID", + type = String::class.java, + label = "Twitch client ID", description = "Your Twitch Client ID" ), - PluginConfigElement( + ConfigMetadata( key = "clientSecret", - name = "Twitch client secret", + type = String::class.java, + label = "Twitch client secret", description = "Your Twitch Client Secret", isSecret = true ) ) - override var config: Map = emptyMap() override fun validateConfig(config: Map): PluginConfigValidationResult { + val pluginConfigValidationResult = super.validateConfig(config) + + if (pluginConfigValidationResult.result == PluginConfigValidationResultType.INVALID) { + return pluginConfigValidationResult + } + try { - authenticate(config["clientId"], config["clientSecret"]) + val clientIdToValidate = config["clientId"] + val clientSecretToValidate = config["clientSecret"] + authenticate(clientIdToValidate, clientSecretToValidate) return PluginConfigValidationResult.VALID } catch (e: PluginConfigError) { log.error(e.message) @@ -50,7 +60,7 @@ class IgdbPlugin(wrapper: PluginWrapper) : GameyfinPlugin(wrapper), Configurable override fun start() { try { - authenticate(config["clientId"], config["clientSecret"]) + authenticate(config("clientId"), config("clientSecret")) } catch (e: PluginConfigError) { log.error(e.message) } diff --git a/plugins/steam/src/main/kotlin/de/grimsi/gameyfin/plugins/steam/SteamPlugin.kt b/plugins/steam/src/main/kotlin/de/grimsi/gameyfin/plugins/steam/SteamPlugin.kt index 68c6e3c..ad3dd89 100644 --- a/plugins/steam/src/main/kotlin/de/grimsi/gameyfin/plugins/steam/SteamPlugin.kt +++ b/plugins/steam/src/main/kotlin/de/grimsi/gameyfin/plugins/steam/SteamPlugin.kt @@ -1,6 +1,6 @@ package de.grimsi.gameyfin.plugins.steam -import de.grimsi.gameyfin.pluginapi.core.GameyfinPlugin +import de.grimsi.gameyfin.pluginapi.core.wrapper.GameyfinPlugin import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadataProvider import de.grimsi.gameyfin.plugins.steam.dto.SteamDetailsResultWrapper diff --git a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfin/plugins/steamgriddb/SteamGridDbPlugin.kt b/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfin/plugins/steamgriddb/SteamGridDbPlugin.kt index 5c8ebf7..0b4b4be 100644 --- a/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfin/plugins/steamgriddb/SteamGridDbPlugin.kt +++ b/plugins/steamgriddb/src/main/kotlin/de/grimsi/gameyfin/plugins/steamgriddb/SteamGridDbPlugin.kt @@ -1,9 +1,7 @@ package de.grimsi.gameyfin.plugins.steamgriddb -import de.grimsi.gameyfin.pluginapi.core.ConfigurableGameyfinPlugin -import de.grimsi.gameyfin.pluginapi.core.PluginConfigElement -import de.grimsi.gameyfin.pluginapi.core.PluginConfigError -import de.grimsi.gameyfin.pluginapi.core.PluginConfigValidationResult +import de.grimsi.gameyfin.pluginapi.core.config.* +import de.grimsi.gameyfin.pluginapi.core.wrapper.ConfigurableGameyfinPlugin import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadata import de.grimsi.gameyfin.pluginapi.gamemetadata.GameMetadataProvider import de.grimsi.gameyfin.plugins.steamgriddb.api.SteamGridDbApiClient @@ -20,18 +18,26 @@ class SteamGridDbPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin(wra private var client: SteamGridDbApiClient? = null } - override val configMetadata: List = listOf( - PluginConfigElement( + override val configMetadata: PluginConfigMetadata = listOf( + ConfigMetadata( key = "apiKey", - name = "SteamGridDB API key", - description = "Your SteamGridDB API key", + type = String::class.java, + label = "SteamGridDB API key", + description = "The API key can be obtained from your SteamGridDB account preferences", isSecret = true ) ) override fun validateConfig(config: Map): PluginConfigValidationResult { + val pluginConfigValidationResult = super.validateConfig(config) + + if (pluginConfigValidationResult.result == PluginConfigValidationResultType.INVALID) { + return pluginConfigValidationResult + } + try { - runBlocking { authenticate(config["apiKey"]) } + val apiKeyToValidate = config["apiKey"] + runBlocking { authenticate(apiKeyToValidate) } return PluginConfigValidationResult.VALID } catch (e: PluginConfigError) { log.error(e.message) @@ -43,7 +49,7 @@ class SteamGridDbPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin(wra override fun start() { try { - runBlocking { authenticate(config["apiKey"]) } + runBlocking { authenticate(config("apiKey")) } } catch (e: PluginConfigError) { log.error(e.message) } From c983f9360339946ccd2cea732bb9e15be7413ac1 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Wed, 4 Jun 2025 23:21:47 +0200 Subject: [PATCH 249/301] Add .isValid() to PluginConfigValidationResult.kt --- .../pluginapi/core/config/PluginConfigValidationResult.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt index 2495116..bc842f5 100644 --- a/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt +++ b/plugin-api/src/main/kotlin/de/grimsi/gameyfin/pluginapi/core/config/PluginConfigValidationResult.kt @@ -11,6 +11,10 @@ data class PluginConfigValidationResult( return PluginConfigValidationResult(PluginConfigValidationResultType.INVALID, errors) } } + + fun isValid(): Boolean { + return result == PluginConfigValidationResultType.VALID + } } enum class PluginConfigValidationResultType { From f398226f443a843d8249f32dc89d1a7930bce1c0 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Thu, 5 Jun 2025 19:23:04 +0200 Subject: [PATCH 250/301] Read plugin version from MANIFEST --- plugins/build.gradle.kts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/build.gradle.kts b/plugins/build.gradle.kts index 0b7e3ca..d4f83a2 100644 --- a/plugins/build.gradle.kts +++ b/plugins/build.gradle.kts @@ -1,3 +1,5 @@ +import java.util.jar.Manifest + plugins { kotlin("jvm") } @@ -9,6 +11,13 @@ subprojects { compileOnly(project(":plugin-api")) } + // Read the version from the MANIFEST.MF file in resources + val manifestFile = file("src/main/resources/MANIFEST.MF") + val manifestVersion: String? = if (manifestFile.exists()) { + Manifest(manifestFile.inputStream()).mainAttributes.getValue("Plugin-Version") + } else null + version = manifestVersion ?: "1.0-SNAPSHOT" + tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE isZip64 = true From 7d3bb603219ab466cbc1e1c6dc1658f862f95792 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Thu, 5 Jun 2025 22:44:57 +0200 Subject: [PATCH 251/301] Adjust filename of plugin jar files --- plugins/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/build.gradle.kts b/plugins/build.gradle.kts index d4f83a2..6db1df3 100644 --- a/plugins/build.gradle.kts +++ b/plugins/build.gradle.kts @@ -21,7 +21,7 @@ subprojects { tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE isZip64 = true - archiveBaseName.set("plugin-${project.name}") + archiveBaseName.set(project.name) manifest { from("./src/main/resources/MANIFEST.MF") From 748a75b6751ca02503dd2ef8b307ea701265f0bd Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Thu, 5 Jun 2025 22:53:20 +0200 Subject: [PATCH 252/301] Refactor input components --- .../administration/ConfigFormField.tsx | 12 ++++----- .../components/general/input/ArrayInput.tsx | 7 +++-- .../general/input/CheckboxInput.tsx | 18 ++++++++----- .../components/general/input/Input.tsx | 25 +++++++---------- .../components/general/input/SelectInput.tsx | 27 +++++++++++-------- .../PluginConfigFormField.tsx | 11 ++++---- 6 files changed, 52 insertions(+), 48 deletions(-) rename gameyfin/src/main/frontend/components/general/{input => plugin}/PluginConfigFormField.tsx (91%) diff --git a/gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx b/gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx index 5c0f2e7..1e03040 100644 --- a/gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx +++ b/gameyfin/src/main/frontend/components/administration/ConfigFormField.tsx @@ -15,27 +15,27 @@ export default function ConfigFormField({configElement, ...props}: any) { ); } - switch (configElement.type) { - case "Boolean": + switch (configElement.type.toLowerCase()) { + case "boolean": return ( ); - case "String": + case "string": return ( ); - case "Float": + case "float": return ( ); - case "Int": + case "int": return ( ); - case "Array": + case "array": return ( ); diff --git a/gameyfin/src/main/frontend/components/general/input/ArrayInput.tsx b/gameyfin/src/main/frontend/components/general/input/ArrayInput.tsx index 3695b74..b3fd2e7 100644 --- a/gameyfin/src/main/frontend/components/general/input/ArrayInput.tsx +++ b/gameyfin/src/main/frontend/components/general/input/ArrayInput.tsx @@ -1,8 +1,7 @@ import {FieldArray, useField} from "formik"; import {Button, Chip, Input, Popover, PopoverContent, PopoverTrigger} from "@heroui/react"; import {KeyboardEvent, useState} from "react"; -import {Plus, XCircle} from "@phosphor-icons/react"; -import {SmallInfoField} from "Frontend/components/general/SmallInfoField"; +import {Plus} from "@phosphor-icons/react"; // @ts-ignore const ArrayInput = ({label, ...props}) => { @@ -16,7 +15,7 @@ const ArrayInput = ({label, ...props}) => { function handleKeyDown(event: KeyboardEvent) { if (event.key === "Enter" || event.key == "Tab" || event.key === ",") { event.preventDefault(); - + newElementValue .split(",") .map((value) => value.trim()) @@ -58,7 +57,7 @@ const ArrayInput = ({label, ...props}) => {
{meta.touched && meta.error && meta.error.trim().length > 0 && ( - + meta.error )}
diff --git a/gameyfin/src/main/frontend/components/general/input/CheckboxInput.tsx b/gameyfin/src/main/frontend/components/general/input/CheckboxInput.tsx index cd9e088..7e972f5 100644 --- a/gameyfin/src/main/frontend/components/general/input/CheckboxInput.tsx +++ b/gameyfin/src/main/frontend/components/general/input/CheckboxInput.tsx @@ -1,22 +1,28 @@ import {useField} from "formik"; -import {Checkbox} from "@heroui/react"; +import {Checkbox, CheckboxGroup} from "@heroui/react"; // @ts-ignore const CheckboxInput = ({label, ...props}) => { // @ts-ignore - const [field] = useField(props); + const [field, meta] = useField(props); return ( -
+ {label} -
+ ); } diff --git a/gameyfin/src/main/frontend/components/general/input/Input.tsx b/gameyfin/src/main/frontend/components/general/input/Input.tsx index 71a8201..90991a2 100644 --- a/gameyfin/src/main/frontend/components/general/input/Input.tsx +++ b/gameyfin/src/main/frontend/components/general/input/Input.tsx @@ -1,7 +1,5 @@ import {useField} from "formik"; import {Input as NextUiInput} from "@heroui/react"; -import {SmallInfoField} from "Frontend/components/general/SmallInfoField"; -import {XCircle} from "@phosphor-icons/react"; // @ts-ignore const Input = ({label, showErrorUntouched = false, ...props}) => { @@ -9,20 +7,15 @@ const Input = ({label, showErrorUntouched = false, ...props}) => { const [field, meta] = useField(props); return ( -
- -
- {(meta.touched || showErrorUntouched) && meta.error && meta.error.trim().length > 0 && ( - - )} -
-
+ ); } diff --git a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx b/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx index 01d0824..d293f36 100644 --- a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx +++ b/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx @@ -4,21 +4,26 @@ import {Select, SelectItem} from "@heroui/react"; // @ts-ignore const SelectInput = ({label, values, ...props}) => { // @ts-ignore - const [field] = useField(props); + const [field, meta] = useField(props); const items = values.map((v: string) => ({key: v, label: v})); return ( - +
+ +
); } diff --git a/gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx b/gameyfin/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx similarity index 91% rename from gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx rename to gameyfin/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx index 9deec2a..8ea1f44 100644 --- a/gameyfin/src/main/frontend/components/general/input/PluginConfigFormField.tsx +++ b/gameyfin/src/main/frontend/components/general/plugin/PluginConfigFormField.tsx @@ -12,18 +12,19 @@ export default function PluginConfigFormField({pluginConfigMetadata, ...props}: ); } - switch (metadata.type) { - case "Boolean": + switch (metadata.type.toLowerCase()) { + case "boolean": return ( ); - case "String": + case "string": return ( ); - case "Float": + case "float": return ( ); - case "Int": + case "int": return ( Date: Thu, 5 Jun 2025 22:53:41 +0200 Subject: [PATCH 253/301] Cast plugin config values in frontend --- .../general/modals/PluginDetailsModal.tsx | 282 +++++++++--------- 1 file changed, 148 insertions(+), 134 deletions(-) diff --git a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx b/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx index f99993b..f0c7c6d 100644 --- a/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx +++ b/gameyfin/src/main/frontend/components/general/modals/PluginDetailsModal.tsx @@ -8,7 +8,7 @@ import {PluginEndpoint} from "Frontend/generated/endpoints"; import PluginDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginDto"; import {ArrowClockwise} from "@phosphor-icons/react"; import PluginConfigMetadataDto from "Frontend/generated/de/grimsi/gameyfin/core/plugins/dto/PluginConfigMetadataDto"; -import PluginConfigFormField from "Frontend/components/general/input/PluginConfigFormField"; +import PluginConfigFormField from "Frontend/components/general/plugin/PluginConfigFormField"; interface PluginDetailsModalProps { plugin: PluginDto; @@ -35,18 +35,26 @@ export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: Plugi }); } - function getEffectiveConfig(): Record { - const effectiveConfig: Record = {}; + function getEffectiveConfig(): Record { + const effectiveConfig: Record = {}; if (!plugin.configMetadata) return effectiveConfig; for (const meta of plugin.configMetadata) { const key = meta.key; - let value = plugin.config?.[key]?.toString(); - if (value == null && meta.default != null) { - value = meta.default.toString(); - } - if (value) { - effectiveConfig[key] = value; + let value = plugin.config?.[key] ?? meta.default; + + if (value != null) { + switch (meta.type.toLowerCase()) { + case "float": + case "int": + effectiveConfig[key] = Number(value); + break; + case "boolean": + effectiveConfig[key] = value === true || value === "true"; + break; + default: + effectiveConfig[key] = value.toString(); + } } } return effectiveConfig; @@ -55,132 +63,138 @@ export default function PluginDetailsModal({plugin, isOpen, onOpenChange}: Plugi return ( - {(onClose) => ( - { - await saveConfig(values); - onClose(); - }} - > - {(formik: any) => ( -
- - Plugin configuration for {plugin.name} - - -
-
- - - - {Object.entries({ - "Author": plugin.author, - "Version": plugin.version, - "License": plugin.license, - "URL": - {plugin.url} - , - }).map(([key, value]) => { - if (!value) return; - return ( - - - - - ) - })} - -
{key}{value}
-
-

Description

- - {props.children} - - } - }} - >{plugin.description} -
+ {(onClose) => { -
-

Configuration

- {(plugin.configMetadata && plugin.configMetadata.length > 0) && <> -
- {(() => { - switch (configValidated) { - case ValidationState.VALID: - return

- Configuration valid -

; - case ValidationState.INVALID: - return

- Configuration invalid -

; - default: - return null; - } - })()} - - - - } -
- {(plugin.configMetadata && plugin.configMetadata.length > 0) ? - plugin.configMetadata.map((entry: PluginConfigMetadataDto) => ( - - )) : "This plugin has no configuration options." - } - - - - {(plugin.configMetadata && plugin.configMetadata?.length > 0) ? - : ""} - - - )} - - )} + async function handleSubmit(values: Record): Promise { + await saveConfig(values); + onClose(); + } + + return ( + + {(formik: any) => ( +
+ + Plugin configuration for {plugin.name} + + +
+
+ + + + {Object.entries({ + "Author": plugin.author, + "Version": plugin.version, + "License": plugin.license, + "URL": + {plugin.url} + , + }).map(([key, value]) => { + if (!value) return; + return ( + + + + + ) + })} + +
{key}{value}
+
+

Description

+ + {props.children} + + } + }} + >{plugin.description} +
+ +
+

Configuration

+ {(plugin.configMetadata && plugin.configMetadata.length > 0) && <> +
+ {(() => { + switch (configValidated) { + case ValidationState.VALID: + return

+ Configuration valid +

; + case ValidationState.INVALID: + return

+ Configuration invalid +

; + default: + return null; + } + })()} + + + + } +
+ {(plugin.configMetadata && plugin.configMetadata.length > 0) ? + plugin.configMetadata.map((entry: PluginConfigMetadataDto) => ( + + )) : "This plugin has no configuration options." + } + + + + {(plugin.configMetadata && plugin.configMetadata?.length > 0) ? + : ""} + + + ) + } + + ) + }} ); From 210a50f76cf780ce15d50b1d24d799eb0edd1180 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Mon, 9 Jun 2025 22:18:45 +0200 Subject: [PATCH 254/301] Fix removal of games when they are deleted from file system --- .../main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt index 2db9ebf..ff76146 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt @@ -206,7 +206,7 @@ class LibraryService( library.unmatchedPaths.addAll(newUnmatchedPaths) // 1.3 Remove deleted games from the library - val removedGames = gameService.getAllByPaths(removedGamePaths) + val removedGames = library.games.filter { removedGamePaths.contains(it.metadata.path) } library.games.removeAll(removedGames) // 2. Download all images From a7280390e63ede4f3df9487292b5702ae50c8959 Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Mon, 9 Jun 2025 22:18:54 +0200 Subject: [PATCH 255/301] Fix UI input elements --- .../administration/LibraryManagement.tsx | 16 +++++++++------- .../frontend/components/general/input/Input.tsx | 3 ++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx b/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx index 62ed3d5..856a99f 100644 --- a/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx +++ b/gameyfin/src/main/frontend/components/administration/LibraryManagement.tsx @@ -41,22 +41,24 @@ function LibraryManagementLayout({getConfig, formik}: any) {
- - -
- +
+ + +
+ +
+
-
-
+
-

Libraries

+

Libraries

+ className="h-14">Auto-populate
diff --git a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx b/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx index d293f36..db27286 100644 --- a/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx +++ b/gameyfin/src/main/frontend/components/general/input/SelectInput.tsx @@ -9,9 +9,9 @@ const SelectInput = ({label, values, ...props}) => { const items = values.map((v: string) => ({key: v, label: v})); return ( -
+
setFilter(Array.from(keys)[0] as any)} + className="w-64" + > + Show all + Show only confirmed + Show only non confirmed + +
+ + {items.length > 0 && + setPage(page)} + />} + + }> Game Added to library Path - Actions + {/* width={1} keeps the column as far to the right as possible*/} + Actions - + {(item) => ( @@ -35,9 +115,18 @@ export default function LibraryManagementGames({library}: LibraryManagementGames {item.metadata.path} - + - + )} diff --git a/gameyfin/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx b/gameyfin/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx new file mode 100644 index 0000000..b0f29d2 --- /dev/null +++ b/gameyfin/src/main/frontend/components/general/library/LibraryManagementUnmatchedPaths.tsx @@ -0,0 +1,81 @@ +import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto"; +import {Button, Pagination, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow} from "@heroui/react"; +import {Trash} from "@phosphor-icons/react"; +import {LibraryEndpoint} from "Frontend/generated/endpoints"; +import {useMemo, useState} from "react"; +import LibraryUpdateDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto"; +import {hashCode} from "Frontend/util/utils"; + +interface LibraryManagementUnmatchedPathsProps { + library: LibraryDto; +} + +export default function LibraryManagementUnmatchedPaths({library}: LibraryManagementUnmatchedPathsProps) { + const rowsPerPage = 25; + + const [page, setPage] = useState(1); + const pages = useMemo(() => { + return Math.ceil(library.unmatchedPaths!.length / rowsPerPage); + }, [library]); + + const items = useMemo(() => { + const start = (page - 1) * rowsPerPage; + const end = start + rowsPerPage; + + return unmatchedPathItems().slice(start, end); + }, [page, library]); + + async function deleteUnmatchedPath(unmatchedPath: string) { + const libraryUpdateDto: LibraryUpdateDto = { + id: library.id, + unmatchedPaths: library.unmatchedPaths!.filter((path) => path !== unmatchedPath) + } + await LibraryEndpoint.updateLibrary(libraryUpdateDto); + } + + function unmatchedPathItems(): UnmatchedPathItem[] { + return library.unmatchedPaths!.map((path) => ({ + key: hashCode(path), + path: path + })); + } + + return
+

Manage unmatched paths

+
+ {items.length > 0 && + setPage(page)} + />} + + }> + + Path + Actions + + + {(item) => ( + + + {item.path} + + + + + + )} + +
+
; +} +type UnmatchedPathItem = { key: number; path: string }; \ No newline at end of file diff --git a/gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx b/gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx index 16c74e0..af9a9b8 100644 --- a/gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx +++ b/gameyfin/src/main/frontend/components/general/modals/LibraryCreationModal.tsx @@ -1,5 +1,5 @@ -import React from "react"; -import {addToast, Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader} from "@heroui/react"; +import React, {useState} from "react"; +import {addToast, Button, Checkbox, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader} from "@heroui/react"; import {Form, Formik} from "formik"; import LibraryDto from "Frontend/generated/de/grimsi/gameyfin/libraries/dto/LibraryDto"; import {LibraryEndpoint} from "Frontend/generated/endpoints"; @@ -20,23 +20,25 @@ export default function LibraryCreationModal({ onOpenChange }: LibraryCreationModalProps) { + const [scanAfterCreation, setScanAfterCreation] = useState(true); + async function createLibrary(library: LibraryDto) { try { - await LibraryEndpoint.createLibrary(library as LibraryDto); + await LibraryEndpoint.createLibrary(library as LibraryDto, scanAfterCreation); + + addToast({ + title: "New library created", + description: `Library ${library.name} created!`, + color: "success" + }); } catch (e) { addToast({ title: "Error creating library", description: `Library ${library.name} could not be created!`, color: "warning" }); - return; + throw "Error creating library: " + e; } - - addToast({ - title: "New library created", - description: `Library ${library.name} created!`, - color: "success" - }); } return ( @@ -74,17 +76,21 @@ export default function LibraryCreationModal({
- - - + + Scan + after creation? +
+ + +
} diff --git a/gameyfin/src/main/frontend/util/utils.ts b/gameyfin/src/main/frontend/util/utils.ts index 3f471d6..1547dcc 100644 --- a/gameyfin/src/main/frontend/util/utils.ts +++ b/gameyfin/src/main/frontend/util/utils.ts @@ -18,6 +18,17 @@ export function camelCaseToTitle(text: string): string { .replace(/^./, str => str.toUpperCase()); } +export function hashCode(string: string) { + let hash = 0, i, chr; + if (string.length === 0) return hash; + for (i = 0; i < string.length; i++) { + chr = string.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; // Convert to 32bit integer + } + return hash; +} + export function roleToColor(role: string) { switch (role) { case "ROLE_SUPERADMIN": diff --git a/gameyfin/src/main/frontend/views/LibraryManagementView.tsx b/gameyfin/src/main/frontend/views/LibraryManagementView.tsx index 136d367..2d7207a 100644 --- a/gameyfin/src/main/frontend/views/LibraryManagementView.tsx +++ b/gameyfin/src/main/frontend/views/LibraryManagementView.tsx @@ -7,6 +7,7 @@ import LibraryManagementDetails from "Frontend/components/general/library/Librar import LibraryManagementGames from "Frontend/components/general/library/LibraryManagementGames"; import {useSnapshot} from "valtio/react"; import {initializeLibraryState, libraryState} from "Frontend/state/LibraryState"; +import LibraryManagementUnmatchedPaths from "Frontend/components/general/library/LibraryManagementUnmatchedPaths"; export default function LibraryManagementView() { @@ -41,7 +42,8 @@ export default function LibraryManagementView() { -

Unmatched paths

+ {/* @ts-ignore */} +
; diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt index 24a9000..ca27896 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameEndpoint.kt @@ -5,6 +5,7 @@ import de.grimsi.gameyfin.core.Role import de.grimsi.gameyfin.games.dto.GameDto import de.grimsi.gameyfin.games.dto.GameEvent import de.grimsi.gameyfin.games.dto.GameUpdateDto +import de.grimsi.gameyfin.libraries.LibraryService import jakarta.annotation.security.PermitAll import jakarta.annotation.security.RolesAllowed import reactor.core.publisher.Flux @@ -12,7 +13,8 @@ import reactor.core.publisher.Flux @Endpoint @PermitAll class GameEndpoint( - private val gameService: GameService + private val gameService: GameService, + private val libraryService: LibraryService ) { fun subscribe(): Flux> { return GameService.subscribe() @@ -24,5 +26,8 @@ class GameEndpoint( fun updateGame(game: GameUpdateDto) = gameService.update(game) @RolesAllowed(Role.Names.ADMIN) - fun deleteGame(gameId: Long) = gameService.delete(gameId) + fun deleteGame(gameId: Long) { + libraryService.deleteGameFromLibrary(gameId) + gameService.delete(gameId) + } } \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt index 8f95e66..21bcdcb 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/GameService.kt @@ -90,6 +90,9 @@ class GameService( gameUpdateDto.title?.let { existingGame.title = it } gameUpdateDto.comment?.let { existingGame.comment = it } gameUpdateDto.summary?.let { existingGame.summary = it } + gameUpdateDto.metadata?.let { metadata -> + metadata.matchConfirmed?.let { existingGame.metadata.matchConfirmed = it } + } gameRepository.save(existingGame) } @@ -129,6 +132,12 @@ class GameService( return gameRepository.findByIdOrNull(id) ?: throw IllegalArgumentException("Game with id $id not found") } + fun setMatchConfirmed(gameId: Long, confirmed: Boolean) { + val game = getById(gameId) + game.metadata.matchConfirmed = confirmed + gameRepository.save(game) + } + /** * Queries all metadata plugins for metadata on the provided game title * Runs the queries concurrently and asynchronously @@ -206,81 +215,91 @@ class GameService( metadata.title.takeIf { it.isNotBlank() }?.let { title -> if (!metadataMap.containsKey("title")) { mergedGame.title = title - metadataMap["title"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["title"] = GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.description?.takeIf { it.isNotBlank() }?.let { description -> if (!metadataMap.containsKey("summary")) { mergedGame.summary = description - metadataMap["summary"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["summary"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.coverUrl?.let { coverUrl -> if (!metadataMap.containsKey("coverImage")) { mergedGame.coverImage = Image(originalUrl = coverUrl.toURL(), type = ImageType.COVER) - metadataMap["coverImage"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["coverImage"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.release?.let { release -> if (!metadataMap.containsKey("release")) { mergedGame.release = release - metadataMap["release"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["release"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.userRating?.let { userRating -> if (!metadataMap.containsKey("userRating")) { mergedGame.userRating = userRating - metadataMap["userRating"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["userRating"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.criticRating?.let { criticRating -> if (!metadataMap.containsKey("criticRating")) { mergedGame.criticRating = criticRating - metadataMap["criticRating"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["criticRating"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.publishedBy?.takeIf { it.isNotEmpty() }?.let { publishedBy -> if (!metadataMap.containsKey("publishers")) { mergedGame.publishers = publishedBy.map { Company(name = it, type = CompanyType.PUBLISHER) } - metadataMap["publishers"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["publishers"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.developedBy?.takeIf { it.isNotEmpty() }?.let { developedBy -> if (!metadataMap.containsKey("developers")) { mergedGame.developers = developedBy.map { Company(name = it, type = CompanyType.DEVELOPER) } - metadataMap["developers"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["developers"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.genres?.takeIf { it.isNotEmpty() }?.let { genres -> if (!metadataMap.containsKey("genres")) { mergedGame.genres = genres.toList() - metadataMap["genres"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["genres"] = GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.themes?.takeIf { it.isNotEmpty() }?.let { themes -> if (!metadataMap.containsKey("themes")) { mergedGame.themes = themes.toList() - metadataMap["themes"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["themes"] = GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.keywords?.takeIf { it.isNotEmpty() }?.let { keywords -> if (!metadataMap.containsKey("keywords")) { mergedGame.keywords = keywords.toList() - metadataMap["keywords"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["keywords"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.features?.takeIf { it.isNotEmpty() }?.let { features -> if (!metadataMap.containsKey("features")) { mergedGame.features = features.toList() - metadataMap["features"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["features"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.perspectives?.takeIf { it.isNotEmpty() }?.let { perspectives -> if (!metadataMap.containsKey("perspectives")) { mergedGame.perspectives = perspectives.toList() - metadataMap["perspectives"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["perspectives"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.screenshotUrls?.takeIf { it.isNotEmpty() }?.let { screenshotUrls -> @@ -288,13 +307,14 @@ class GameService( mergedGame.images = runBlocking { screenshotUrls.map { Image(originalUrl = it.toURL(), type = ImageType.SCREENSHOT) } } - metadataMap["images"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["images"] = GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } metadata.videoUrls?.takeIf { it.isNotEmpty() }?.let { videoUrls -> if (!metadataMap.containsKey("videoUrls")) { mergedGame.videoUrls = videoUrls.toList() - metadataMap["videoUrls"] = GameFieldMetadata(source = sourcePlugin) + metadataMap["videoUrls"] = + GameFieldMetadata(source = GameFieldPluginSource(plugin = sourcePlugin)) } } } @@ -318,10 +338,33 @@ class GameService( fun Game.toDto(): GameDto { // Helper functions fun toDto(fieldMetadata: GameFieldMetadata): GameFieldMetadataDto { - return GameFieldMetadataDto( - source = fieldMetadata.source.pluginId, - updatedAt = fieldMetadata.updatedAt!! - ) + val source = fieldMetadata.source + + return when (source) { + is GameFieldPluginSource -> { + GameFieldMetadataDto( + type = GameFieldMetadataType.PLUGIN, + source = source.plugin.pluginId, + updatedAt = fieldMetadata.updatedAt!! + ) + } + + is GameFieldUserSource -> { + GameFieldMetadataDto( + type = GameFieldMetadataType.USER, + source = source.user.id!!, + updatedAt = fieldMetadata.updatedAt!! + ) + } + + else -> { + GameFieldMetadataDto( + type = GameFieldMetadataType.UNKNOWN, + source = "unknown source", + updatedAt = fieldMetadata.updatedAt!! + ) + } + } } fun toDto(metadata: GameMetadata): GameMetadataDto { @@ -330,7 +373,8 @@ fun Game.toDto(): GameDto { downloadCount = metadata.downloadCount, path = metadata.path, fields = metadata.fields.mapValues { toDto(it.value) }, - originalIds = metadata.originalIds.mapKeys { it.key.pluginId } + originalIds = metadata.originalIds.mapKeys { it.key.pluginId }, + matchConfirmed = metadata.matchConfirmed ) } diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt index 9262a5c..e3664cc 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameFieldMetadataDto.kt @@ -1,8 +1,16 @@ package de.grimsi.gameyfin.games.dto +import java.io.Serializable import java.time.Instant class GameFieldMetadataDto( - val source: String, + val type: GameFieldMetadataType, + val source: Serializable, val updatedAt: Instant -) \ No newline at end of file +) + +enum class GameFieldMetadataType { + PLUGIN, + USER, + UNKNOWN +} \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt index 53ee591..4ef8347 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameMetadataDto.kt @@ -8,5 +8,6 @@ class GameMetadataDto( val fileSize: Long, val fields: Map?, val originalIds: Map?, - val downloadCount: Int + val downloadCount: Int, + val matchConfirmed: Boolean ) \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt index ed94bc4..9670a56 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateDto.kt @@ -5,4 +5,5 @@ data class GameUpdateDto( val title: String?, val comment: String?, val summary: String?, + val metadata: GameUpdateMetadataDto? ) \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateMetadataDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateMetadataDto.kt new file mode 100644 index 0000000..9486346 --- /dev/null +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameUpdateMetadataDto.kt @@ -0,0 +1,5 @@ +package de.grimsi.gameyfin.games.dto + +data class GameUpdateMetadataDto( + val matchConfirmed: Boolean? +) diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt index e840bf6..59a80b8 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/Game.kt @@ -78,6 +78,8 @@ class Game( @Embedded var metadata: GameMetadata + + ) { constructor(path: Path, library: Library) : this(library = library, metadata = GameMetadata(path = path.toString())) } \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt index a133278..ab97685 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameFieldMetadata.kt @@ -1,6 +1,7 @@ package de.grimsi.gameyfin.games.entities import de.grimsi.gameyfin.core.plugins.management.PluginManagementEntry +import de.grimsi.gameyfin.users.entities.User import jakarta.persistence.* import org.hibernate.annotations.UpdateTimestamp import java.time.Instant @@ -11,9 +12,29 @@ class GameFieldMetadata( @GeneratedValue(strategy = GenerationType.AUTO) var id: Long? = null, - @ManyToOne - val source: PluginManagementEntry, + @OneToOne(cascade = [CascadeType.ALL], orphanRemoval = true, fetch = FetchType.EAGER) + val source: GameFieldSource, @UpdateTimestamp var updatedAt: Instant? = Instant.now() ) + +@Entity +@Inheritance +abstract class GameFieldSource( + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + open var id: Long? = null +) + +@Entity +class GameFieldPluginSource( + @ManyToOne + val plugin: PluginManagementEntry +) : GameFieldSource() + +@Entity +class GameFieldUserSource( + @ManyToOne + val user: User +) : GameFieldSource() \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt index 02ae322..c02e00b 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/entities/GameMetadata.kt @@ -16,5 +16,7 @@ class GameMetadata( @ElementCollection var originalIds: Map = emptyMap(), - var downloadCount: Int = 0 + var downloadCount: Int = 0, + + var matchConfirmed: Boolean = false ) \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt index 48411d6..b1e0ca1 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/Library.kt @@ -3,6 +3,9 @@ package de.grimsi.gameyfin.libraries import de.grimsi.gameyfin.games.entities.Game import de.grimsi.gameyfin.games.entities.LibraryEntityListener import jakarta.persistence.* +import org.hibernate.annotations.CreationTimestamp +import org.hibernate.annotations.UpdateTimestamp +import java.time.Instant @Entity @EntityListeners(LibraryEntityListener::class) @@ -11,6 +14,13 @@ class Library( @GeneratedValue(strategy = GenerationType.AUTO) var id: Long? = null, + @CreationTimestamp + @Column(updatable = false) + var createdAt: Instant? = null, + + @UpdateTimestamp + var updatedAt: Instant? = null, + var name: String, @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true, cascade = [CascadeType.ALL]) @@ -20,5 +30,5 @@ class Library( var games: MutableList = ArrayList(), @ElementCollection(fetch = FetchType.EAGER) - var unmatchedPaths: MutableList = ArrayList() + var unmatchedPaths: MutableList = ArrayList(), ) \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt index e9de6c5..39cc877 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryEndpoint.kt @@ -37,7 +37,8 @@ class LibraryEndpoint( libraryService.triggerScan(scanType, libraries) @RolesAllowed(Role.Names.ADMIN) - fun createLibrary(library: LibraryDto) = libraryService.create(library) + fun createLibrary(library: LibraryDto, scanAfterCreation: Boolean = true) = + libraryService.create(library, scanAfterCreation) @RolesAllowed(Role.Names.ADMIN) fun updateLibrary(library: LibraryUpdateDto) = libraryService.update(library) diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt index ff76146..8aac724 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/LibraryService.kt @@ -11,6 +11,7 @@ import org.springframework.data.repository.findByIdOrNull import org.springframework.stereotype.Service import reactor.core.publisher.Flux import reactor.core.publisher.Sinks +import java.time.Instant import java.util.concurrent.Callable import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors @@ -85,8 +86,12 @@ class LibraryService( * @param library: The library to create or update. * @return The created or updated LibraryDto object. */ - fun create(library: LibraryDto) { - libraryRepository.save(toEntity(library)) + fun create(library: LibraryDto, scanAfterCreation: Boolean) { + val newLibrary = libraryRepository.save(toEntity(library)) + + if (scanAfterCreation) { + triggerScanSingleLibrary(ScanType.QUICK, newLibrary) + } } /** @@ -97,19 +102,24 @@ class LibraryService( * @throws IllegalArgumentException if the library ID is null or the library is not found. */ fun update(libraryUpdateDto: LibraryUpdateDto) { - val existingLibrary = libraryRepository.findByIdOrNull(libraryUpdateDto.id) + var library = libraryRepository.findByIdOrNull(libraryUpdateDto.id) ?: throw IllegalArgumentException("Library with ID $libraryUpdateDto.id not found") // Update only non-null fields - libraryUpdateDto.name?.let { existingLibrary.name = it } + libraryUpdateDto.name?.let { library.name = it } libraryUpdateDto.directories?.let { - existingLibrary.directories.clear() - existingLibrary.directories.addAll( + library.directories.clear() + library.directories.addAll( it.map { d -> DirectoryMapping(internalPath = d.internalPath, externalPath = d.externalPath) } ) } + libraryUpdateDto.unmatchedPaths?.let { + library.unmatchedPaths.clear() + library.unmatchedPaths.addAll(it) + } - libraryRepository.save(existingLibrary) + library.updatedAt = Instant.now() // Force the EntityListener to trigger an update and update the timestamp + libraryRepository.save(library) } /** @@ -121,6 +131,17 @@ class LibraryService( libraryRepository.deleteById(libraryId) } + fun deleteGameFromLibrary(gameId: Long) { + val game = gameService.getById(gameId) + var library = game.library + + library.games.removeIf { it.id == gameId } + library.unmatchedPaths.add(game.metadata.path) + + library.updatedAt = Instant.now() // Force the EntityListener to trigger an update and update the timestamp + libraryRepository.save(library) + } + /** * Wrapper function to trigger a scan for a list of libraries. */ @@ -133,6 +154,10 @@ class LibraryService( } } + fun triggerScanSingleLibrary(scanType: ScanType, library: Library) { + triggerScan(scanType, listOf(library.toDto())) + } + /** * Triggers a quick scan for a list of libraries. * A quick scan will only scan for new games and deleted games, but will not touch existing games. @@ -287,6 +312,7 @@ class LibraryService( addGamesToLibrary(persistedGames, library) // 6. Persist library + library.updatedAt = Instant.now() // Force the EntityListener to trigger an update and update the timestamp libraryRepository.save(library) progress.currentStep = LibraryScanStep(description = "Finished") @@ -340,6 +366,7 @@ fun Library.toDto(): LibraryDto { name = this.name, directories = this.directories.map { DirectoryMappingDto(it.internalPath, it.externalPath) }, games = this.games.mapNotNull { it.id }, - stats = statsDto + stats = statsDto, + unmatchedPaths = this.unmatchedPaths ) } \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt index 9dd09c2..aa37c20 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryDto.kt @@ -5,5 +5,6 @@ data class LibraryDto( val name: String, val directories: List, val games: List?, - val stats: LibraryStatsDto? + val stats: LibraryStatsDto?, + val unmatchedPaths: List? = emptyList() ) \ No newline at end of file diff --git a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt index 25c5c9a..552b4e3 100644 --- a/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt +++ b/gameyfin/src/main/kotlin/de/grimsi/gameyfin/libraries/dto/LibraryUpdateDto.kt @@ -4,4 +4,5 @@ data class LibraryUpdateDto( val id: Long, val name: String? = null, val directories: List? = null, + val unmatchedPaths: List? = null ) From 9dc8d0f04683c529c1edfcd22b636b121283011a Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Thu, 12 Jun 2025 19:28:43 +0200 Subject: [PATCH 267/301] Fix bug in release date parsing from IGDB Game protobuf entity --- .../main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt b/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt index d0e2cf9..c65bab1 100644 --- a/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt +++ b/plugins/igdb/src/main/kotlin/de/grimsi/gameyfinplugins/igdb/IgdbPlugin.kt @@ -165,7 +165,7 @@ class IgdbPlugin(wrapper: PluginWrapper) : ConfigurableGameyfinPlugin(wrapper) { title = game.name, description = game.summary, coverUrl = Mapper.cover(game.cover), - release = Instant.ofEpochSecond(game.firstReleaseDate.seconds), + release = if (game.firstReleaseDate.seconds > 0) Instant.ofEpochSecond(game.firstReleaseDate.seconds) else null, userRating = game.rating.toInt(), criticRating = game.aggregatedRating.toInt(), developedBy = game.involvedCompaniesList.filter { it.developer }.map { it.company.name }.toSet(), From ddfaeed34acd3ab4af51dcbb2562a9ce74905a9d Mon Sep 17 00:00:00 2001 From: grimsi <9295182+grimsi@users.noreply.github.com> Date: Thu, 12 Jun 2025 19:29:26 +0200 Subject: [PATCH 268/301] (WIP) Implement manual matching of game files --- .../administration/ProfileManagement.tsx | 2 +- .../general/input/TextAreaInput.tsx | 21 ++++ .../library/LibraryManagementGames.tsx | 52 ++++++++- .../general/modals/EditGameMetadataModal.tsx | 68 +++++++++++ .../general/modals/LibraryDetailsModal.tsx | 77 ------------- .../general/modals/MatchGameModal.tsx | 61 ++++++++++ .../general/modals/PathPickerModal.tsx | 2 +- .../components/general/plugin/PluginIcon.tsx | 26 +++++ .../core/download/DownloadEndpoint.kt | 1 + .../de/grimsi/gameyfin/games/GameEndpoint.kt | 6 + .../de/grimsi/gameyfin/games/GameService.kt | 107 ++++++++++++++++-- .../games/dto/GameFieldMetadataDto.kt | 3 +- .../gameyfin/games/dto/GameSearchResultDto.kt | 12 ++ .../games/entities/GameFieldMetadata.kt | 2 +- 14 files changed, 345 insertions(+), 95 deletions(-) create mode 100644 gameyfin/src/main/frontend/components/general/input/TextAreaInput.tsx create mode 100644 gameyfin/src/main/frontend/components/general/modals/EditGameMetadataModal.tsx delete mode 100644 gameyfin/src/main/frontend/components/general/modals/LibraryDetailsModal.tsx create mode 100644 gameyfin/src/main/frontend/components/general/modals/MatchGameModal.tsx create mode 100644 gameyfin/src/main/frontend/components/general/plugin/PluginIcon.tsx create mode 100644 gameyfin/src/main/kotlin/de/grimsi/gameyfin/games/dto/GameSearchResultDto.kt diff --git a/gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx b/gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx index df32632..8518b47 100644 --- a/gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx +++ b/gameyfin/src/main/frontend/components/administration/ProfileManagement.tsx @@ -97,7 +97,7 @@ export default function ProfileManagement() {