diff --git a/back/CheckStyle.xml b/back/CheckStyle.xml
index d68aedd..ac24ac1 100755
--- a/back/CheckStyle.xml
+++ b/back/CheckStyle.xml
@@ -53,6 +53,9 @@ Checkstyle configuration that checks the sun coding conventions.
+
+
+
diff --git a/back/pom.xml b/back/pom.xml
index 4eb8197..cfcc0d6 100644
--- a/back/pom.xml
+++ b/back/pom.xml
@@ -8,7 +8,7 @@
org.atria-soft
archidata
- 0.28.0
+ 0.30.3-SNAPSHOT
diff --git a/back/src/org/atriasoft/karusic/WebLauncher.java b/back/src/org/atriasoft/karusic/WebLauncher.java
index 14e2cc2..c1c84dd 100755
--- a/back/src/org/atriasoft/karusic/WebLauncher.java
+++ b/back/src/org/atriasoft/karusic/WebLauncher.java
@@ -2,6 +2,7 @@ package org.atriasoft.karusic;
import java.net.URI;
import java.util.Iterator;
+import java.util.TimeZone;
import java.util.logging.LogManager;
import javax.imageio.ImageIO;
@@ -29,12 +30,7 @@ import org.atriasoft.karusic.api.TrackResource;
import org.atriasoft.karusic.api.UserResource;
import org.atriasoft.karusic.filter.KarusicAuthenticationFilter;
import org.atriasoft.karusic.migration.Initialization;
-import org.atriasoft.karusic.migration.Migration20231126;
-import org.atriasoft.karusic.migration.Migration20240225;
-import org.atriasoft.karusic.migration.Migration20240226;
-import org.atriasoft.karusic.migration.Migration20240907;
-import org.atriasoft.karusic.migration.Migration20250104;
-import org.atriasoft.karusic.migration.Migration20250414;
+import org.atriasoft.karusic.migration.Migration20250427;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.jackson.JacksonFeature;
@@ -53,6 +49,7 @@ public class WebLauncher {
protected HttpServer server = null;
public WebLauncher() {
+ TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
ConfigBaseVariable.bdDatabase = "karusic";
}
@@ -66,12 +63,7 @@ public class WebLauncher {
WebLauncher.LOGGER.info("Add initialization");
migrationEngine.setInit(new Initialization());
WebLauncher.LOGGER.info("Add migration since last version");
- migrationEngine.add(new Migration20231126());
- migrationEngine.add(new Migration20240225());
- migrationEngine.add(new Migration20240226());
- migrationEngine.add(new Migration20240907());
- migrationEngine.add(new Migration20250104());
- migrationEngine.add(new Migration20250414());
+ migrationEngine.add(new Migration20250427());
WebLauncher.LOGGER.info("Migrate the DB [START]");
migrationEngine.migrateWaitAdmin(new DbConfig());
WebLauncher.LOGGER.info("Migrate the DB [STOP]");
diff --git a/back/src/org/atriasoft/karusic/WebLauncherLocal.java b/back/src/org/atriasoft/karusic/WebLauncherLocal.java
index 3a268ff..a9f797b 100755
--- a/back/src/org/atriasoft/karusic/WebLauncherLocal.java
+++ b/back/src/org/atriasoft/karusic/WebLauncherLocal.java
@@ -32,8 +32,8 @@ public class WebLauncherLocal extends WebLauncher {
if (true) {
// for local test:
ConfigBaseVariable.apiAdress = "http://0.0.0.0:19080/karusic/api/";
- ConfigBaseVariable.dbPort = "3906";
ConfigBaseVariable.testMode = "true";
+ ConfigBaseVariable.dbType = "mongo";
}
// Test fail of SSO: ConfigBaseVariable.ssoAdress = null;
try {
diff --git a/back/src/org/atriasoft/karusic/api/AlbumResource.java b/back/src/org/atriasoft/karusic/api/AlbumResource.java
index 321e136..c0a4eeb 100644
--- a/back/src/org/atriasoft/karusic/api/AlbumResource.java
+++ b/back/src/org/atriasoft/karusic/api/AlbumResource.java
@@ -35,11 +35,11 @@ public class AlbumResource {
private static final Logger LOGGER = LoggerFactory.getLogger(AlbumResource.class);
@GET
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("USER")
@Operation(description = "Get a specific Album with his ID")
- public Album get(@PathParam("id") final Long id) throws Exception {
- return DataAccess.get(Album.class, id);
+ public Album get(@PathParam("oid") final ObjectId oid) throws Exception {
+ return DataAccess.get(Album.class, oid);
// return this.morphiaService.getDatastore().find(Album.class).filter(Filters.eq("id", id)).first();
}
@@ -67,19 +67,19 @@ public class AlbumResource {
}
@PUT
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
@Consumes(MediaType.APPLICATION_JSON)
@Operation(description = "Update a specific album")
- public Album put(@PathParam("id") final Long id, @Valid final Album album) throws Exception {
+ public Album put(@PathParam("oid") final ObjectId oid, @Valid final Album album) throws Exception {
// final Query query = this.morphiaService.getDatastore().find(Album.class).filter(Filters.eq("id", id));
// final UpdateOperations ops = this.morphiaService.getDatastore().createUpdateOperations(Album.class)
// .set("name", master.getName());
// this.morphiaService.getDatastore().update(query, ops);
// return Response.ok(master).build();
- album.id = id;
- DataAccess.update(album, id);
- return DataAccess.get(Album.class, id);
+ album.oid = oid;
+ DataAccess.update(album, oid);
+ return DataAccess.get(Album.class, oid);
}
// @PUT
@@ -87,7 +87,7 @@ public class AlbumResource {
// @RolesAllowed("ADMIN")
// @Consumes(MediaType.APPLICATION_JSON)
// @Operation(description = "Update a specific album")
- // public Album put(@PathParam("id") final Long id, final Album album)
+ // public Album put(@PathParam("id") final ObjectId oid, final Album album)
// throws Exception {
// final Query query = this.morphiaService.getDatastore().find(Album.class).filter(Filters.eq("id", id));
// final UpdateOperations ops = this.morphiaService.getDatastore().createUpdateOperations(Album.class)
@@ -97,11 +97,11 @@ public class AlbumResource {
// }
@DELETE
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
@Operation(description = "Remove a specific album")
- public void remove(@PathParam("id") final Long id) throws Exception {
- DataAccess.delete(Album.class, id);
+ public void remove(@PathParam("oid") final ObjectId oid) throws Exception {
+ DataAccess.delete(Album.class, oid);
// this.morphiaService.getDatastore().find(Album.class).filter(Filters.eq("id", id)).delete();
}
@@ -109,34 +109,34 @@ public class AlbumResource {
* @Path("{id}/track/{trackId}")
* @RolesAllowed("ADMIN")
* @Consumes({ MediaType.MULTIPART_FORM_DATA })
- * @Operation(description = "Add a Track on a specific album") public Album addTrack(@PathParam("id") final Long id, @PathParam("trackId") final Long trackId) throws Exception {
+ * @Operation(description = "Add a Track on a specific album") public Album addTrack(@PathParam("id") final ObjectId oid, @PathParam("trackId") final Long trackId) throws Exception {
* AddOnManyToMany.removeLink(this.dam, Album.class, id, "track", trackId); return this.dam.get(Album.class, id); } */
@POST
- @Path("{id}/cover")
+ @Path("{oid}/cover")
@RolesAllowed("ADMIN")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Operation(description = "Add a cover on a specific album")
@ApiTypeScriptProgress
- public Album uploadCover(@PathParam("id") final Long id, @ApiInputOptional @FormDataParam("uri") final String uri, @ApiInputOptional @FormDataParam("file") final InputStream fileInputStream,
+ public Album uploadCover(@PathParam("oid") final ObjectId oid, @ApiInputOptional @FormDataParam("uri") final String uri, @ApiInputOptional @FormDataParam("file") final InputStream fileInputStream,
@ApiInputOptional @FormDataParam("file") final FormDataContentDisposition fileMetaData) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
if (uri != null) {
- DataTools.uploadCoverFromUri(db, Album.class, id, uri);
+ DataTools.uploadCoverFromUri(db, Album.class, oid, uri);
} else {
- DataTools.uploadCover(db, Album.class, id, fileInputStream, fileMetaData);
+ DataTools.uploadCover(db, Album.class, oid, fileInputStream, fileMetaData);
}
- return db.get(Album.class, id);
+ return db.get(Album.class, oid);
}
}
@DELETE
- @Path("{id}/cover/{coverId}")
+ @Path("{oid}/cover/{coverId}")
@RolesAllowed("ADMIN")
@Operation(description = "Remove a cover on a specific album")
- public Album removeCover(@PathParam("id") final Long id, @PathParam("coverId") final ObjectId coverId) throws Exception {
+ public Album removeCover(@PathParam("oid") final ObjectId oid, @PathParam("coverId") final ObjectId coverId) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
- AddOnDataJson.removeLink(db, Album.class, "id", id, "covers", coverId);
- return db.get(Album.class, id);
+ AddOnDataJson.removeLink(db, Album.class, "id", oid, "covers", coverId);
+ return db.get(Album.class, oid);
}
}
}
diff --git a/back/src/org/atriasoft/karusic/api/ArtistResource.java b/back/src/org/atriasoft/karusic/api/ArtistResource.java
index c7ef614..1b61d41 100644
--- a/back/src/org/atriasoft/karusic/api/ArtistResource.java
+++ b/back/src/org/atriasoft/karusic/api/ArtistResource.java
@@ -34,10 +34,10 @@ public class ArtistResource {
private static final Logger LOGGER = LoggerFactory.getLogger(ArtistResource.class);
@GET
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("USER")
- public Artist get(@PathParam("id") final Long id) throws Exception {
- return DataAccess.get(Artist.class, id);
+ public Artist get(@PathParam("oid") final ObjectId oid) throws Exception {
+ return DataAccess.get(Artist.class, oid);
}
@GET
@@ -54,46 +54,46 @@ public class ArtistResource {
}
@PUT
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
@Consumes(MediaType.APPLICATION_JSON)
- public Artist put(@PathParam("id") final Long id, @Valid final Artist artist) throws Exception {
- artist.id = id;
- DataAccess.update(artist, id);
- return DataAccess.get(Artist.class, id);
+ public Artist put(@PathParam("oid") final ObjectId oid, @Valid final Artist artist) throws Exception {
+ artist.oid = oid;
+ DataAccess.update(artist, oid);
+ return DataAccess.get(Artist.class, oid);
}
@DELETE
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
- public void remove(@PathParam("id") final Long id) throws Exception {
- DataAccess.delete(Artist.class, id);
+ public void remove(@PathParam("oid") final ObjectId oid) throws Exception {
+ DataAccess.delete(Artist.class, oid);
}
@POST
- @Path("{id}/cover")
+ @Path("{oid}/cover")
@RolesAllowed("ADMIN")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@ApiTypeScriptProgress
- public Artist uploadCover(@PathParam("id") final Long id, @ApiInputOptional @FormDataParam("uri") final String uri, @ApiInputOptional @FormDataParam("file") final InputStream fileInputStream,
- @ApiInputOptional @FormDataParam("file") final FormDataContentDisposition fileMetaData) throws Exception {
+ public Artist uploadCover(@PathParam("oid") final ObjectId oid, @ApiInputOptional @FormDataParam("uri") final String uri,
+ @ApiInputOptional @FormDataParam("file") final InputStream fileInputStream, @ApiInputOptional @FormDataParam("file") final FormDataContentDisposition fileMetaData) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
if (uri != null) {
- DataTools.uploadCoverFromUri(db, Artist.class, id, uri);
+ DataTools.uploadCoverFromUri(db, Artist.class, oid, uri);
} else {
- DataTools.uploadCover(db, Artist.class, id, fileInputStream, fileMetaData);
+ DataTools.uploadCover(db, Artist.class, oid, fileInputStream, fileMetaData);
}
- return db.get(Artist.class, id);
+ return db.get(Artist.class, oid);
}
}
@DELETE
- @Path("{id}/cover/{coverId}")
+ @Path("{oid}/cover/{coverId}")
@RolesAllowed("ADMIN")
- public Artist removeCover(@PathParam("id") final Long id, @PathParam("coverId") final ObjectId coverId) throws Exception {
+ public Artist removeCover(@PathParam("oid") final ObjectId oid, @PathParam("coverId") final ObjectId coverId) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
- AddOnDataJson.removeLink(db, Artist.class, "id", id, "covers", coverId);
- return db.get(Artist.class, id);
+ AddOnDataJson.removeLink(db, Artist.class, "id", oid, "covers", coverId);
+ return db.get(Artist.class, oid);
}
}
}
diff --git a/back/src/org/atriasoft/karusic/api/GenderResource.java b/back/src/org/atriasoft/karusic/api/GenderResource.java
index db44f6b..a2cd90f 100644
--- a/back/src/org/atriasoft/karusic/api/GenderResource.java
+++ b/back/src/org/atriasoft/karusic/api/GenderResource.java
@@ -34,10 +34,10 @@ public class GenderResource {
private static final Logger LOGGER = LoggerFactory.getLogger(GenderResource.class);
@GET
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("USER")
- public Gender get(@PathParam("id") final Long id) throws Exception {
- return DataAccess.get(Gender.class, id);
+ public Gender get(@PathParam("oid") final ObjectId oid) throws Exception {
+ return DataAccess.get(Gender.class, oid);
}
@GET
@@ -54,46 +54,46 @@ public class GenderResource {
}
@PUT
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
@Consumes(MediaType.APPLICATION_JSON)
- public Gender patch(@PathParam("id") final Long id, @Valid final Gender gender) throws Exception {
- gender.id = id;
- DataAccess.update(gender, id);
- return DataAccess.get(Gender.class, id);
+ public Gender patch(@PathParam("oid") final ObjectId oid, @Valid final Gender gender) throws Exception {
+ gender.oid = oid;
+ DataAccess.update(gender, oid);
+ return DataAccess.get(Gender.class, oid);
}
@DELETE
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
- public void remove(@PathParam("id") final Long id) throws Exception {
- DataAccess.delete(Gender.class, id);
+ public void remove(@PathParam("oid") final ObjectId oid) throws Exception {
+ DataAccess.delete(Gender.class, oid);
}
@POST
- @Path("{id}/cover")
+ @Path("{oid}/cover")
@RolesAllowed("ADMIN")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@ApiTypeScriptProgress
- public Gender uploadCover(@PathParam("id") final Long id, @ApiInputOptional @FormDataParam("uri") final String uri, @ApiInputOptional @FormDataParam("file") final InputStream fileInputStream,
- @ApiInputOptional @FormDataParam("file") final FormDataContentDisposition fileMetaData) throws Exception {
+ public Gender uploadCover(@PathParam("oid") final ObjectId oid, @ApiInputOptional @FormDataParam("uri") final String uri,
+ @ApiInputOptional @FormDataParam("file") final InputStream fileInputStream, @ApiInputOptional @FormDataParam("file") final FormDataContentDisposition fileMetaData) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
if (uri != null) {
- DataTools.uploadCoverFromUri(db, Gender.class, id, uri);
+ DataTools.uploadCoverFromUri(db, Gender.class, oid, uri);
} else {
- DataTools.uploadCover(db, Gender.class, id, fileInputStream, fileMetaData);
+ DataTools.uploadCover(db, Gender.class, oid, fileInputStream, fileMetaData);
}
- return db.get(Gender.class, id);
+ return db.get(Gender.class, oid);
}
}
@DELETE
- @Path("{id}/cover/{coverId}")
+ @Path("{oid}/cover/{coverId}")
@RolesAllowed("ADMIN")
- public Gender removeCover(@PathParam("id") final Long id, @PathParam("coverId") final ObjectId coverId) throws Exception {
+ public Gender removeCover(@PathParam("oid") final ObjectId oid, @PathParam("coverId") final ObjectId coverId) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
- AddOnDataJson.removeLink(db, Gender.class, "id", id, "covers", coverId);
- return db.get(Gender.class, id);
+ AddOnDataJson.removeLink(db, Gender.class, "_id", oid, "covers", coverId);
+ return db.get(Gender.class, oid);
}
}
}
diff --git a/back/src/org/atriasoft/karusic/api/PlaylistResource.java b/back/src/org/atriasoft/karusic/api/PlaylistResource.java
index 86121b8..4b9b7a0 100644
--- a/back/src/org/atriasoft/karusic/api/PlaylistResource.java
+++ b/back/src/org/atriasoft/karusic/api/PlaylistResource.java
@@ -35,8 +35,8 @@ public class PlaylistResource {
@GET
@Path("{id}")
@RolesAllowed("USER")
- public Playlist get(@PathParam("id") final Long id) throws Exception {
- return DataAccess.get(Playlist.class, id);
+ public Playlist get(@PathParam("id") final ObjectId oid) throws Exception {
+ return DataAccess.get(Playlist.class, oid);
}
@GET
@@ -53,41 +53,41 @@ public class PlaylistResource {
}
@PUT
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
@Consumes(MediaType.APPLICATION_JSON)
- public Playlist put(@PathParam("id") final Long id, @Valid final Playlist playlist) throws Exception {
- playlist.id = id;
- DataAccess.update(playlist, id);
- return DataAccess.get(Playlist.class, id);
+ public Playlist put(@PathParam("oid") final ObjectId oid, @Valid final Playlist playlist) throws Exception {
+ playlist.oid = oid;
+ DataAccess.update(playlist, oid);
+ return DataAccess.get(Playlist.class, oid);
}
@DELETE
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
- public void remove(@PathParam("id") final Long id) throws Exception {
- DataAccess.delete(Playlist.class, id);
+ public void remove(@PathParam("oid") final ObjectId oid) throws Exception {
+ DataAccess.delete(Playlist.class, oid);
}
@POST
- @Path("{id}/cover")
+ @Path("{oid}/cover")
@RolesAllowed("ADMIN")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@ApiAsyncType(Playlist.class)
- public void uploadCover(@PathParam("id") final Long id, @FormDataParam("file") final InputStream fileInputStream, @FormDataParam("file") final FormDataContentDisposition fileMetaData)
+ public void uploadCover(@PathParam("oid") final ObjectId oid, @FormDataParam("file") final InputStream fileInputStream, @FormDataParam("file") final FormDataContentDisposition fileMetaData)
throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
- DataTools.uploadCover(db, Playlist.class, id, fileInputStream, fileMetaData);
+ DataTools.uploadCover(db, Playlist.class, oid, fileInputStream, fileMetaData);
}
}
@DELETE
- @Path("{id}/cover/{coverId}")
+ @Path("{oid}/cover/{coverId}")
@RolesAllowed("ADMIN")
- public Playlist removeCover(@PathParam("id") final Long id, @PathParam("coverId") final ObjectId coverId) throws Exception {
+ public Playlist removeCover(@PathParam("oid") final ObjectId oid, @PathParam("coverId") final ObjectId coverId) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
- AddOnDataJson.removeLink(db, Playlist.class, "id", id, "covers", coverId);
- return DataAccess.get(Playlist.class, id);
+ AddOnDataJson.removeLink(db, Playlist.class, "id", oid, "covers", coverId);
+ return DataAccess.get(Playlist.class, oid);
}
}
}
diff --git a/back/src/org/atriasoft/karusic/api/TrackResource.java b/back/src/org/atriasoft/karusic/api/TrackResource.java
index 8a65b71..9f48677 100644
--- a/back/src/org/atriasoft/karusic/api/TrackResource.java
+++ b/back/src/org/atriasoft/karusic/api/TrackResource.java
@@ -40,10 +40,10 @@ public class TrackResource {
private static final Logger LOGGER = LoggerFactory.getLogger(TrackResource.class);
@GET
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("USER")
- public Track get(@PathParam("id") final Long id) throws Exception {
- return DataAccess.get(Track.class, id);
+ public Track get(@PathParam("oid") final ObjectId oid) throws Exception {
+ return DataAccess.get(Track.class, oid);
}
@GET
@@ -60,46 +60,46 @@ public class TrackResource {
}
@PUT
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
@Consumes(MediaType.APPLICATION_JSON)
- public Track put(@PathParam("id") final Long id, @Valid final Track track) throws Exception {
- track.id = id;
- DataAccess.update(track, id);
- return DataAccess.get(Track.class, id);
+ public Track put(@PathParam("oid") final ObjectId oid, @Valid final Track track) throws Exception {
+ track.oid = oid;
+ DataAccess.update(track, oid);
+ return DataAccess.get(Track.class, oid);
}
@DELETE
- @Path("{id}")
+ @Path("{oid}")
@RolesAllowed("ADMIN")
- public void remove(@PathParam("id") final Long id) throws Exception {
- DataAccess.delete(Track.class, id);
+ public void remove(@PathParam("oid") final ObjectId oid) throws Exception {
+ DataAccess.delete(Track.class, oid);
}
@POST
- @Path("{id}/cover")
+ @Path("{oid}/cover")
@RolesAllowed("ADMIN")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@ApiTypeScriptProgress
- public Track uploadCover(@PathParam("id") final Long id, @FormDataParam("uri") final String uri, @FormDataParam("file") final InputStream fileInputStream,
+ public Track uploadCover(@PathParam("oid") final ObjectId oid, @FormDataParam("uri") final String uri, @FormDataParam("file") final InputStream fileInputStream,
@FormDataParam("file") final FormDataContentDisposition fileMetaData) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
if (uri != null) {
- DataTools.uploadCoverFromUri(db, Track.class, id, uri);
+ DataTools.uploadCoverFromUri(db, Track.class, oid, uri);
} else {
- DataTools.uploadCover(db, Track.class, id, fileInputStream, fileMetaData);
+ DataTools.uploadCover(db, Track.class, oid, fileInputStream, fileMetaData);
}
- return DataAccess.get(Track.class, id);
+ return DataAccess.get(Track.class, oid);
}
}
@DELETE
- @Path("{id}/cover/{coverId}")
+ @Path("{oid}/cover/{coverId}")
@RolesAllowed("ADMIN")
- public Track removeCover(@PathParam("id") final Long id, @PathParam("coverId") final ObjectId coverId) throws Exception {
+ public Track removeCover(@PathParam("oid") final ObjectId oid, @PathParam("coverId") final ObjectId coverId) throws Exception {
try (DBAccess db = DBAccess.createInterface()) {
- AddOnDataJson.removeLink(db, Track.class, "id", id, "covers", coverId);
- return db.get(Track.class, id);
+ AddOnDataJson.removeLink(db, Track.class, "_id", oid, "covers", coverId);
+ return db.get(Track.class, oid);
}
}
@@ -111,9 +111,9 @@ public class TrackResource {
@ApiTypeScriptProgress
public Response uploadTrack( //
@FormDataParam("title") String title, //
- @ApiInputOptional @ApiAsyncType(Long.class) @FormDataParam("genderId") String genderId, //
- @ApiInputOptional @ApiAsyncType(Long.class) @FormDataParam("artistId") String artistId, //
- @ApiInputOptional @ApiAsyncType(Long.class) @FormDataParam("albumId") String albumId, //
+ @ApiInputOptional @ApiAsyncType(ObjectId.class) @FormDataParam("genderId") String genderId, //
+ @ApiInputOptional @ApiAsyncType(ObjectId.class) @FormDataParam("artistId") String artistId, //
+ @ApiInputOptional @ApiAsyncType(ObjectId.class) @FormDataParam("albumId") String albumId, //
@ApiInputOptional @ApiAsyncType(Long.class) @FormDataParam("trackId") String trackId, //
@FormDataParam("file") final InputStream fileInputStream, //
@FormDataParam("file") final FormDataContentDisposition fileMetaData //
@@ -166,13 +166,13 @@ public class TrackResource {
Track trackElem = new Track();
trackElem.name = title;
trackElem.track = trackId != null ? Long.parseLong(trackId) : null;
- trackElem.albumId = albumId != null ? Long.parseLong(albumId) : null;
- trackElem.genderId = genderId != null ? Long.parseLong(genderId) : null;
+ trackElem.albumId = albumId != null ? new ObjectId(albumId) : null;
+ trackElem.genderId = genderId != null ? new ObjectId(genderId) : null;
trackElem.dataId = data.oid;
// Now list of artist has an internal management:
if (artistId != null) {
trackElem.artists = new ArrayList<>();
- trackElem.artists.add(artistId != null ? Long.parseLong(artistId) : null);
+ trackElem.artists.add(artistId != null ? new ObjectId(artistId) : null);
}
// TODO: maybe validate here ....
diff --git a/back/src/org/atriasoft/karusic/migration/Initialization.java b/back/src/org/atriasoft/karusic/migration/Initialization.java
index a379e5e..b2146db 100644
--- a/back/src/org/atriasoft/karusic/migration/Initialization.java
+++ b/back/src/org/atriasoft/karusic/migration/Initialization.java
@@ -56,56 +56,36 @@ public class Initialization extends MigrationSqlStep {
for (final Class> clazz : CLASSES_BASE) {
addClass(clazz);
}
-
addAction((final DBAccess da) -> {
final List data = List.of(//
- new Gender(1L, "Variété française"), //
- new Gender(2L, "Pop"), //
- new Gender(3L, "inconnue"), //
- new Gender(4L, "Disco"), //
- new Gender(5L, "Enfants"), //
- new Gender(6L, "Portugaise"), //
- new Gender(7L, "Apprentissage"), //
- new Gender(8L, "Blues"), //
- new Gender(9L, "Jazz"), //
- new Gender(10L, "Chanson Noël"), //
- new Gender(11L, "DubStep"), //
- new Gender(12L, "Rap français"), //
- new Gender(13L, "Classique"), //
- new Gender(14L, "Rock"), //
- new Gender(15L, "Electro"), //
- new Gender(16L, "Celtique"), //
- new Gender(17L, "Country"), //
- new Gender(18L, "Variété Québéquoise"), //
- new Gender(19L, "Médiéval"), //
- new Gender(20L, "Variété Italienne"), //
- new Gender(21L, "Comédie Musicale"), //
- new Gender(22L, "Vianney"), //
- new Gender(23L, "Bande Original"), //
- new Gender(24L, "Bande Originale"), //
- new Gender(25L, "Variété Belge"), //
- new Gender(26L, "Gospel"));
+ new Gender("Variété française"), //
+ new Gender("Pop"), //
+ new Gender("inconnue"), //
+ new Gender("Disco"), //
+ new Gender("Enfants"), //
+ new Gender("Portugaise"), //
+ new Gender("Apprentissage"), //
+ new Gender("Blues"), //
+ new Gender("Jazz"), //
+ new Gender("Chanson Noël"), //
+ new Gender("DubStep"), //
+ new Gender("Rap français"), //
+ new Gender("Classique"), //
+ new Gender("Rock"), //
+ new Gender("Electro"), //
+ new Gender("Celtique"), //
+ new Gender("Country"), //
+ new Gender("Variété Québéquoise"), //
+ new Gender("Médiéval"), //
+ new Gender("Variété Italienne"), //
+ new Gender("Comédie Musicale"), //
+ new Gender("Vianney"), //
+ new Gender("Bande Original"), //
+ new Gender("Bande Originale"), //
+ new Gender("Variété Belge"), //
+ new Gender("Gospel"));
da.insertMultiple(data);
});
- // set start increment element to permit to add after default elements
- addAction("""
- ALTER TABLE `album` AUTO_INCREMENT = 1000;
- """, "mysql");
- addAction("""
- ALTER TABLE `artist` AUTO_INCREMENT = 1000;
- """, "mysql");
- addAction("""
- ALTER TABLE `gender` AUTO_INCREMENT = 1000;
- """, "mysql");
- addAction("""
- ALTER TABLE `playlist` AUTO_INCREMENT = 1000;
- """, "mysql");
- addAction("""
- ALTER TABLE `track` AUTO_INCREMENT = 1000;
- """, "mysql");
- addAction("""
- ALTER TABLE `user` AUTO_INCREMENT = 1000;
- """, "mysql");
}
public static void dropAll(final DBAccess da) {
diff --git a/back/src/org/atriasoft/karusic/migration/Migration20250427.java b/back/src/org/atriasoft/karusic/migration/Migration20250427.java
new file mode 100644
index 0000000..d642531
--- /dev/null
+++ b/back/src/org/atriasoft/karusic/migration/Migration20250427.java
@@ -0,0 +1,148 @@
+package org.atriasoft.karusic.migration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.atriasoft.archidata.dataAccess.DBAccess;
+import org.atriasoft.archidata.dataAccess.options.AccessDeletedItems;
+import org.atriasoft.archidata.dataAccess.options.DirectData;
+import org.atriasoft.archidata.dataAccess.options.ReadAllColumn;
+import org.atriasoft.archidata.db.DbConfig;
+import org.atriasoft.archidata.migration.MigrationSqlStep;
+import org.atriasoft.archidata.model.Data;
+import org.atriasoft.archidata.tools.ConfigBaseVariable;
+import org.atriasoft.karusic.model.Album;
+import org.atriasoft.karusic.model.Artist;
+import org.atriasoft.karusic.model.Gender;
+import org.atriasoft.karusic.model.Track;
+import org.atriasoft.karusic.modelOld.AlbumOld;
+import org.atriasoft.karusic.modelOld.ArtistOld;
+import org.atriasoft.karusic.modelOld.GenderOld;
+import org.atriasoft.karusic.modelOld.TrackOld;
+import org.bson.types.ObjectId;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Migration20250427 extends MigrationSqlStep {
+ private static final Logger LOGGER = LoggerFactory.getLogger(Migration20240226.class);
+
+ public static final int KARSO_INITIALISATION_ID = 1;
+
+ @Override
+ public String getName() {
+ return "migration-2025-04-27: Migrate to MongoDB";
+ }
+
+ public static ObjectId getElementArtist(final List datas, final Long id) throws Exception {
+ if (id == null) {
+ return null;
+ }
+ for (final var elem : datas) {
+ if (elem.id.equals(id)) {
+ return elem.getOid();
+ }
+ }
+ throw new Exception("Does not exist");
+ }
+
+ public static ObjectId getElementAlbum(final List datas, final Long id) throws Exception {
+ if (id == null) {
+ return null;
+ }
+ for (final var elem : datas) {
+ if (elem.id.equals(id)) {
+ return elem.getOid();
+ }
+ }
+ throw new Exception("Does not exist");
+ }
+
+ public static ObjectId getElementGender(final List datas, final Long id) throws Exception {
+ if (id == null) {
+ return null;
+ }
+ for (final var elem : datas) {
+ if (elem.id.equals(id)) {
+ return elem.getOid();
+ }
+ }
+ throw new Exception("Does not exist");
+ }
+
+ @Override
+ public void generateStep() throws Exception {
+ addAction((final DBAccess daMongo) -> {
+ // Create the previous connection on SQL:
+ final DbConfig configSQL = new DbConfig("mysql", ConfigBaseVariable.getDBHost(), (short) 3906,
+ // final DbConfig config = new DbConfig("mysql", "db", (short) 3306,
+ ConfigBaseVariable.getDBLogin(), ConfigBaseVariable.getDBPassword(), ConfigBaseVariable.getDBName(), ConfigBaseVariable.getDBKeepConnected(),
+ List.of(ConfigBaseVariable.getBbInterfacesClasses()));
+ try (final DBAccess daSQL = DBAccess.createInterface(configSQL)) {
+ final List allData = daSQL.gets(Data.class, new ReadAllColumn(), new AccessDeletedItems());
+ final List allOldAlbums = daSQL.gets(AlbumOld.class, new ReadAllColumn(), new AccessDeletedItems());
+ final List allOldArtist = daSQL.gets(ArtistOld.class, new ReadAllColumn(), new AccessDeletedItems());
+ final List allOldGender = daSQL.gets(GenderOld.class, new ReadAllColumn(), new AccessDeletedItems());
+ final List allTOldrack = daSQL.gets(TrackOld.class, new ReadAllColumn(), new AccessDeletedItems());
+ for (final Data elem : allData) {
+ daMongo.insert(elem, new DirectData());
+ }
+ for (final AlbumOld elem : allOldAlbums) {
+ final Album tmp = new Album();
+ tmp.oid = elem.getOid();
+ tmp.deleted = elem.deleted;
+ tmp.updatedAt = elem.updatedAt;
+ tmp.createdAt = elem.createdAt;
+ tmp.name = elem.name;
+ tmp.description = elem.description;
+ tmp.covers = elem.covers;
+ daMongo.insert(tmp, new DirectData());
+ }
+ for (final ArtistOld elem : allOldArtist) {
+ final Artist tmp = new Artist();
+ tmp.oid = elem.getOid();
+ tmp.deleted = elem.deleted;
+ tmp.updatedAt = elem.updatedAt;
+ tmp.createdAt = elem.createdAt;
+ tmp.name = elem.name;
+ tmp.description = elem.description;
+ tmp.covers = elem.covers;
+ tmp.firstName = elem.firstName;
+ tmp.birth = elem.birth;
+ tmp.death = elem.death;
+ daMongo.insert(tmp, new DirectData());
+ }
+ for (final GenderOld elem : allOldGender) {
+ final Gender tmp = new Gender();
+ tmp.oid = elem.getOid();
+ tmp.deleted = elem.deleted;
+ tmp.updatedAt = elem.updatedAt;
+ tmp.createdAt = elem.createdAt;
+ tmp.name = elem.name;
+ tmp.description = elem.description;
+ tmp.covers = elem.covers;
+ daMongo.insert(tmp, new DirectData());
+ }
+ for (final TrackOld elem : allTOldrack) {
+ final Track tmp = new Track();
+ tmp.oid = elem.getOid();
+ tmp.deleted = elem.deleted;
+ tmp.updatedAt = elem.updatedAt;
+ tmp.createdAt = elem.createdAt;
+ tmp.name = elem.name;
+ tmp.description = elem.description;
+ tmp.covers = elem.covers;
+ tmp.genderId = getElementGender(allOldGender, elem.genderId);
+ tmp.albumId = getElementAlbum(allOldAlbums, elem.albumId);
+ tmp.track = elem.track;
+ tmp.dataId = elem.dataId;
+ tmp.artists = new ArrayList<>();
+ for (final Long artistId : elem.artists) {
+ tmp.artists.add(getElementArtist(allOldArtist, artistId));
+ }
+ daMongo.insert(tmp, new DirectData());
+ }
+ }
+ });
+ }
+
+}
diff --git a/back/src/org/atriasoft/karusic/model/Album.java b/back/src/org/atriasoft/karusic/model/Album.java
index 945a31c..fb6e68a 100644
--- a/back/src/org/atriasoft/karusic/model/Album.java
+++ b/back/src/org/atriasoft/karusic/model/Album.java
@@ -4,13 +4,12 @@ import java.util.Date;
import java.util.List;
import org.atriasoft.archidata.annotation.DataIfNotExists;
-import org.atriasoft.archidata.annotation.DataJson;
import org.atriasoft.archidata.annotation.apiGenerator.ApiAccessLimitation;
import org.atriasoft.archidata.annotation.apiGenerator.ApiGenerationMode;
import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
import org.atriasoft.archidata.annotation.checker.CollectionNotEmpty;
import org.atriasoft.archidata.model.Data;
-import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.atriasoft.archidata.model.OIDGenericDataSoftDelete;
import org.bson.types.ObjectId;
import org.hibernate.validator.constraints.UniqueElements;
@@ -20,16 +19,14 @@ import dev.morphia.annotations.Entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.annotation.Nullable;
import jakarta.persistence.Column;
-import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
-@Entity("Album")
-@Table(name = "album")
+@Entity()
@DataIfNotExists
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiGenerationMode(create = true, update = true)
-public class Album extends GenericDataSoftDelete {
+public class Album extends OIDGenericDataSoftDelete {
@Column(length = 256)
@Size(min = 1, max = 256)
public String name = null;
@@ -37,7 +34,6 @@ public class Album extends GenericDataSoftDelete {
@Size(min = 0, max = 8192)
public String description = null;
@Schema(description = "List of Id of the specific covers")
- @DataJson()
@Nullable
@CollectionNotEmpty
@UniqueElements
diff --git a/back/src/org/atriasoft/karusic/model/Artist.java b/back/src/org/atriasoft/karusic/model/Artist.java
index d783129..714e0be 100644
--- a/back/src/org/atriasoft/karusic/model/Artist.java
+++ b/back/src/org/atriasoft/karusic/model/Artist.java
@@ -4,13 +4,12 @@ import java.util.Date;
import java.util.List;
import org.atriasoft.archidata.annotation.DataIfNotExists;
-import org.atriasoft.archidata.annotation.DataJson;
import org.atriasoft.archidata.annotation.apiGenerator.ApiAccessLimitation;
import org.atriasoft.archidata.annotation.apiGenerator.ApiGenerationMode;
import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
import org.atriasoft.archidata.annotation.checker.CollectionNotEmpty;
import org.atriasoft.archidata.model.Data;
-import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.atriasoft.archidata.model.OIDGenericDataSoftDelete;
import org.bson.types.ObjectId;
import org.hibernate.validator.constraints.UniqueElements;
@@ -20,16 +19,14 @@ import dev.morphia.annotations.Entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.annotation.Nullable;
import jakarta.persistence.Column;
-import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
-@Entity("Artist")
-@Table(name = "artist")
+@Entity()
@DataIfNotExists
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiGenerationMode(create = true, update = true)
-public class Artist extends GenericDataSoftDelete {
+public class Artist extends OIDGenericDataSoftDelete {
@Column(length = 256)
@Size(min = 1, max = 256)
public String name = null;
@@ -37,7 +34,6 @@ public class Artist extends GenericDataSoftDelete {
@Size(min = 0, max = 8192)
public String description = null;
@Schema(description = "List of Id of the specific covers")
- @DataJson()
@Nullable
@CollectionNotEmpty
@UniqueElements
@@ -54,7 +50,7 @@ public class Artist extends GenericDataSoftDelete {
@Override
public String toString() {
- return "Artist [id=" + this.id + ", name=" + this.name + ", description=" + this.description + ", covers=" + this.covers + ", firstName=" + this.firstName + ", surname=" + this.surname
+ return "Artist [id=" + this.oid + ", name=" + this.name + ", description=" + this.description + ", covers=" + this.covers + ", firstName=" + this.firstName + ", surname=" + this.surname
+ ", birth=" + this.birth + ", death=" + this.death + "]";
}
}
diff --git a/back/src/org/atriasoft/karusic/model/Gender.java b/back/src/org/atriasoft/karusic/model/Gender.java
index e053fe5..39bf10d 100644
--- a/back/src/org/atriasoft/karusic/model/Gender.java
+++ b/back/src/org/atriasoft/karusic/model/Gender.java
@@ -15,13 +15,12 @@ CREATE TABLE `node` (
import java.util.List;
import org.atriasoft.archidata.annotation.DataIfNotExists;
-import org.atriasoft.archidata.annotation.DataJson;
import org.atriasoft.archidata.annotation.apiGenerator.ApiAccessLimitation;
import org.atriasoft.archidata.annotation.apiGenerator.ApiGenerationMode;
import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
import org.atriasoft.archidata.annotation.checker.CollectionNotEmpty;
import org.atriasoft.archidata.model.Data;
-import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.atriasoft.archidata.model.OIDGenericDataSoftDelete;
import org.bson.types.ObjectId;
import org.hibernate.validator.constraints.UniqueElements;
@@ -31,16 +30,14 @@ import dev.morphia.annotations.Entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.annotation.Nullable;
import jakarta.persistence.Column;
-import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
-@Entity("Gender")
-@Table(name = "gender")
+@Entity()
@DataIfNotExists
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiGenerationMode(create = true, update = true)
-public class Gender extends GenericDataSoftDelete {
+public class Gender extends OIDGenericDataSoftDelete {
@Column(length = 256)
@Size(min = 1, max = 256)
public String name = null;
@@ -48,7 +45,6 @@ public class Gender extends GenericDataSoftDelete {
@Size(min = 0, max = 8192)
public String description = null;
@Schema(description = "List of Id of the specific covers")
- @DataJson()
@Nullable
@CollectionNotEmpty
@UniqueElements
@@ -57,8 +53,12 @@ public class Gender extends GenericDataSoftDelete {
public Gender() {}
- public Gender(final Long id, final String name) {
- this.id = id;
+ public Gender(final String name) {
+ this.name = name;
+ }
+
+ public Gender(final ObjectId oid, final String name) {
+ this.oid = oid;
this.name = name;
}
diff --git a/back/src/org/atriasoft/karusic/model/Playlist.java b/back/src/org/atriasoft/karusic/model/Playlist.java
index 1a95eaf..aa10c10 100644
--- a/back/src/org/atriasoft/karusic/model/Playlist.java
+++ b/back/src/org/atriasoft/karusic/model/Playlist.java
@@ -15,13 +15,12 @@ CREATE TABLE `node` (
import java.util.List;
import org.atriasoft.archidata.annotation.DataIfNotExists;
-import org.atriasoft.archidata.annotation.DataJson;
import org.atriasoft.archidata.annotation.apiGenerator.ApiAccessLimitation;
import org.atriasoft.archidata.annotation.apiGenerator.ApiGenerationMode;
import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
import org.atriasoft.archidata.annotation.checker.CollectionNotEmpty;
import org.atriasoft.archidata.model.Data;
-import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.atriasoft.archidata.model.OIDGenericDataSoftDelete;
import org.bson.types.ObjectId;
import org.hibernate.validator.constraints.UniqueElements;
@@ -31,16 +30,14 @@ import dev.morphia.annotations.Entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.annotation.Nullable;
import jakarta.persistence.Column;
-import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
-@Entity("Playlist")
-@Table(name = "playlist")
+@Entity()
@DataIfNotExists
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiGenerationMode(create = true, update = true)
-public class Playlist extends GenericDataSoftDelete {
+public class Playlist extends OIDGenericDataSoftDelete {
@Column(length = 256)
@Size(min = 1, max = 256)
public String name = null;
@@ -48,12 +45,10 @@ public class Playlist extends GenericDataSoftDelete {
@Size(min = 0, max = 8192)
public String description = null;
@Schema(description = "List of Id of the specific covers")
- @DataJson()
@Nullable
@CollectionNotEmpty
@UniqueElements
@ApiAccessLimitation(readable = true, creatable = false, updatable = false)
public List<@CheckForeignKey(target = Data.class) @NotNull ObjectId> covers = null;
- @DataJson()
- public List<@CheckForeignKey(target = Track.class) @NotNull Long> tracks = null;
+ public List<@CheckForeignKey(target = Track.class) @NotNull ObjectId> tracks = null;
}
diff --git a/back/src/org/atriasoft/karusic/model/Track.java b/back/src/org/atriasoft/karusic/model/Track.java
index 9631a33..d912540 100644
--- a/back/src/org/atriasoft/karusic/model/Track.java
+++ b/back/src/org/atriasoft/karusic/model/Track.java
@@ -15,13 +15,12 @@ CREATE TABLE `node` (
import java.util.List;
import org.atriasoft.archidata.annotation.DataIfNotExists;
-import org.atriasoft.archidata.annotation.DataJson;
import org.atriasoft.archidata.annotation.apiGenerator.ApiAccessLimitation;
import org.atriasoft.archidata.annotation.apiGenerator.ApiGenerationMode;
import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
import org.atriasoft.archidata.annotation.checker.CollectionNotEmpty;
import org.atriasoft.archidata.model.Data;
-import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.atriasoft.archidata.model.OIDGenericDataSoftDelete;
import org.bson.types.ObjectId;
import org.hibernate.validator.constraints.UniqueElements;
@@ -31,17 +30,15 @@ import dev.morphia.annotations.Entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.annotation.Nullable;
import jakarta.persistence.Column;
-import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import jakarta.validation.constraints.Size;
-@Entity("Track")
-@Table(name = "track")
+@Entity()
@DataIfNotExists
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiGenerationMode(create = true, update = true)
-public class Track extends GenericDataSoftDelete {
+public class Track extends OIDGenericDataSoftDelete {
@Column(length = 256)
@Size(min = 1, max = 256)
@@ -50,28 +47,25 @@ public class Track extends GenericDataSoftDelete {
@Size(min = 0, max = 8192)
public String description = null;
@Schema(description = "List of Id of the specific covers")
- @DataJson()
@Nullable
@CollectionNotEmpty
@UniqueElements
@ApiAccessLimitation(readable = true, creatable = false, updatable = false)
public List<@CheckForeignKey(target = Data.class) @NotNull ObjectId> covers = null;
@CheckForeignKey(target = Gender.class)
- public Long genderId = null;
+ public ObjectId genderId = null;
@CheckForeignKey(target = Album.class)
- public Long albumId = null;
+ public ObjectId albumId = null;
@PositiveOrZero
public Long track = null;
@CheckForeignKey(target = Data.class)
public ObjectId dataId = null;
- // @ManyToMany(fetch = FetchType.LAZY, targetEntity = Artist.class)
- @DataJson
@Column(length = 0)
- public List<@CheckForeignKey(target = Artist.class) @NotNull Long> artists = null;
+ public List<@CheckForeignKey(target = Artist.class) @NotNull ObjectId> artists = null;
@Override
public String toString() {
- return "Track [id=" + this.id + ", deleted=" + this.deleted + ", createdAt=" + this.createdAt + ", updatedAt=" + this.updatedAt + ", name=" + this.name + ", description=" + this.description
+ return "Track [oid=" + this.oid + ", deleted=" + this.deleted + ", createdAt=" + this.createdAt + ", updatedAt=" + this.updatedAt + ", name=" + this.name + ", description=" + this.description
+ ", covers=" + this.covers + ", genderId=" + this.genderId + ", albumId=" + this.albumId + ", track=" + this.track + ", dataId=" + this.dataId + ", artists=" + this.artists + "]";
}
}
diff --git a/back/src/org/atriasoft/karusic/modelOld/AlbumOld.java b/back/src/org/atriasoft/karusic/modelOld/AlbumOld.java
new file mode 100644
index 0000000..f188dfe
--- /dev/null
+++ b/back/src/org/atriasoft/karusic/modelOld/AlbumOld.java
@@ -0,0 +1,32 @@
+package org.atriasoft.karusic.modelOld;
+
+import java.util.Date;
+import java.util.List;
+
+import org.atriasoft.archidata.annotation.DataJson;
+import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.bson.types.ObjectId;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.persistence.Column;
+import jakarta.persistence.Table;
+
+@Table(name = "album")
+public class AlbumOld extends GenericDataSoftDelete {
+ @Column(length = 256)
+ public String name = null;
+ @Column(length = 0)
+ public String description = null;
+ @Schema(description = "List of Id of the specific covers")
+ @DataJson()
+ public List covers = null;
+
+ public Date publication;
+
+ @Column(nullable = true)
+ private final ObjectId oid = new ObjectId();
+
+ public ObjectId getOid() {
+ return this.oid;
+ }
+}
diff --git a/back/src/org/atriasoft/karusic/modelOld/ArtistOld.java b/back/src/org/atriasoft/karusic/modelOld/ArtistOld.java
new file mode 100644
index 0000000..13237ee
--- /dev/null
+++ b/back/src/org/atriasoft/karusic/modelOld/ArtistOld.java
@@ -0,0 +1,34 @@
+package org.atriasoft.karusic.modelOld;
+
+import java.util.Date;
+import java.util.List;
+
+import org.atriasoft.archidata.annotation.DataJson;
+import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.bson.types.ObjectId;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Table;
+
+@Table(name = "artist")
+public class ArtistOld extends GenericDataSoftDelete {
+ @Column(length = 256)
+ public String name = null;
+ @Column(length = 0)
+ public String description = null;
+ @DataJson()
+ public List covers = null;
+ @Column(length = 256)
+ public String firstName = null;
+ @Column(length = 256)
+ public String surname = null;
+ public Date birth = null;
+ public Date death = null;
+
+ @Column(nullable = true)
+ private final ObjectId oid = new ObjectId();
+
+ public ObjectId getOid() {
+ return this.oid;
+ }
+}
diff --git a/back/src/org/atriasoft/karusic/modelOld/GenderOld.java b/back/src/org/atriasoft/karusic/modelOld/GenderOld.java
new file mode 100644
index 0000000..43f15ea
--- /dev/null
+++ b/back/src/org/atriasoft/karusic/modelOld/GenderOld.java
@@ -0,0 +1,53 @@
+package org.atriasoft.karusic.modelOld;
+/*
+CREATE TABLE `node` (
+ `id` bigint NOT NULL COMMENT 'table ID' AUTO_INCREMENT PRIMARY KEY,
+ `deleted` BOOLEAN NOT NULL DEFAULT false,
+ `create_date` datetime NOT NULL DEFAULT now() COMMENT 'Time the element has been created',
+ `modify_date` datetime NOT NULL DEFAULT now() COMMENT 'Time the element has been update',
+ `type` enum("TYPE", "UNIVERS", "SERIE", "SAISON", "MEDIA") NOT NULL DEFAULT 'TYPE',
+ `name` TEXT COLLATE 'utf8_general_ci' NOT NULL,
+ `description` TEXT COLLATE 'utf8_general_ci',
+ `parent_id` bigint
+) AUTO_INCREMENT=10;
+*/
+
+import java.util.List;
+
+import org.atriasoft.archidata.annotation.DataJson;
+import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
+import org.atriasoft.archidata.model.Data;
+import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.bson.types.ObjectId;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+
+@Table(name = "gender")
+public class GenderOld extends GenericDataSoftDelete {
+ @Column(length = 256)
+ public String name = null;
+ @Column(length = 0)
+ public String description = null;
+ @DataJson()
+ public List<@CheckForeignKey(target = Data.class) @NotNull ObjectId> covers = null;
+
+ public GenderOld() {}
+
+ public GenderOld(final String name) {
+ this.name = name;
+ }
+
+ public GenderOld(final Long id, final String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ @Column(nullable = true)
+ private final ObjectId oid = new ObjectId();
+
+ public ObjectId getOid() {
+ return this.oid;
+ }
+}
diff --git a/back/src/org/atriasoft/karusic/modelOld/TrackOld.java b/back/src/org/atriasoft/karusic/modelOld/TrackOld.java
new file mode 100644
index 0000000..55630ac
--- /dev/null
+++ b/back/src/org/atriasoft/karusic/modelOld/TrackOld.java
@@ -0,0 +1,48 @@
+package org.atriasoft.karusic.modelOld;
+/*
+CREATE TABLE `node` (
+ `id` bigint NOT NULL COMMENT 'table ID' AUTO_INCREMENT PRIMARY KEY,
+ `deleted` BOOLEAN NOT NULL DEFAULT false,
+ `create_date` datetime NOT NULL DEFAULT now() COMMENT 'Time the element has been created',
+ `modify_date` datetime NOT NULL DEFAULT now() COMMENT 'Time the element has been update',
+ `type` enum("TYPE", "UNIVERS", "SERIE", "SAISON", "MEDIA") NOT NULL DEFAULT 'TYPE',
+ `name` TEXT COLLATE 'utf8_general_ci' NOT NULL,
+ `description` TEXT COLLATE 'utf8_general_ci',
+ `parent_id` bigint
+) AUTO_INCREMENT=10;
+ */
+
+import java.util.List;
+
+import org.atriasoft.archidata.annotation.DataJson;
+import org.atriasoft.archidata.annotation.checker.CheckForeignKey;
+import org.atriasoft.archidata.model.Data;
+import org.atriasoft.archidata.model.GenericDataSoftDelete;
+import org.bson.types.ObjectId;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Table;
+import jakarta.validation.constraints.NotNull;
+
+@Table(name = "track")
+public class TrackOld extends GenericDataSoftDelete {
+ @Column(length = 256)
+ public String name = null;
+ @Column(length = 0)
+ public String description = null;
+ @DataJson()
+ public List<@CheckForeignKey(target = Data.class) @NotNull ObjectId> covers = null;
+ public Long genderId = null;
+ public Long albumId = null;
+ public Long track = null;
+ public ObjectId dataId = null;
+ @DataJson
+ public List artists = null;
+
+ @Column(nullable = true)
+ private final ObjectId oid = new ObjectId();
+
+ public ObjectId getOid() {
+ return this.oid;
+ }
+}
diff --git a/back/test/src/test/atriasoft/karusic/ConfigureDb.java b/back/test/src/test/atriasoft/karusic/ConfigureDb.java
index 879c4c6..b783948 100644
--- a/back/test/src/test/atriasoft/karusic/ConfigureDb.java
+++ b/back/test/src/test/atriasoft/karusic/ConfigureDb.java
@@ -1,19 +1,12 @@
package test.atriasoft.karusic;
import java.io.IOException;
-import java.util.List;
import org.atriasoft.archidata.dataAccess.DBAccess;
import org.atriasoft.archidata.db.DbConfig;
import org.atriasoft.archidata.db.DbIoFactory;
import org.atriasoft.archidata.exception.DataAccessException;
import org.atriasoft.archidata.tools.ConfigBaseVariable;
-import org.atriasoft.karusic.model.Album;
-import org.atriasoft.karusic.model.Artist;
-import org.atriasoft.karusic.model.Gender;
-import org.atriasoft.karusic.model.Playlist;
-import org.atriasoft.karusic.model.Track;
-import org.atriasoft.karusic.model.UserKarusic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,14 +32,6 @@ public class ConfigureDb {
ConfigBaseVariable.apiAdress = "http://127.0.0.1:12342/test/api/";
// Enable the test mode permit to access to the test token (never use it in production).
ConfigBaseVariable.testMode = "true";
- final List> listObject = List.of( //
- Album.class, //
- Artist.class, //
- Gender.class, //
- Playlist.class, //
- Track.class, //
- UserKarusic.class //
- );
if ("SQLITE-MEMORY".equalsIgnoreCase(modeTest)) {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.bdDatabase = null;
diff --git a/back/test/src/test/atriasoft/karusic/TestHealthCheck.java b/back/test/src/test/atriasoft/karusic/TestHealthCheck.java
index ab1cf76..4939472 100644
--- a/back/test/src/test/atriasoft/karusic/TestHealthCheck.java
+++ b/back/test/src/test/atriasoft/karusic/TestHealthCheck.java
@@ -1,5 +1,9 @@
package test.atriasoft.karusic;
+import org.atriasoft.archidata.exception.RESTErrorResponseException;
+import org.atriasoft.archidata.tools.ConfigBaseVariable;
+import org.atriasoft.archidata.tools.RESTApi;
+import org.atriasoft.karusic.api.HealthCheck.HealthResult;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -8,10 +12,6 @@ import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.atriasoft.archidata.exception.RESTErrorResponseException;
-import org.atriasoft.archidata.tools.ConfigBaseVariable;
-import org.atriasoft.archidata.tools.RESTApi;
-import org.atriasoft.karusic.api.HealthCheck.HealthResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,14 +46,14 @@ public class TestHealthCheck {
@Order(1)
@Test
public void checkHealthCheck() throws Exception {
- final HealthResult result = api.get(HealthResult.class, "health_check");
+ final HealthResult result = api.request("health_check").get().fetch(HealthResult.class);
Assertions.assertEquals(result.value(), "alive and kicking");
}
@Order(2)
@Test
public void checkHealthCheckWrongAPI() throws Exception {
- Assertions.assertThrows(RESTErrorResponseException.class, () -> api.get(HealthResult.class, "health_checks"));
+ Assertions.assertThrows(RESTErrorResponseException.class, () -> api.request("health_check_kaboom").get().fetch());
}
}
diff --git a/back/test/src/test/atriasoft/karusic/TestTrack.java b/back/test/src/test/atriasoft/karusic/TestTrack.java
index cebb9aa..c00e5c6 100644
--- a/back/test/src/test/atriasoft/karusic/TestTrack.java
+++ b/back/test/src/test/atriasoft/karusic/TestTrack.java
@@ -7,6 +7,9 @@ import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
+import org.atriasoft.archidata.tools.ConfigBaseVariable;
+import org.atriasoft.archidata.tools.RESTApi;
+import org.atriasoft.karusic.model.Track;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
@@ -15,9 +18,6 @@ import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.atriasoft.archidata.tools.ConfigBaseVariable;
-import org.atriasoft.archidata.tools.RESTApi;
-import org.atriasoft.karusic.model.Track;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -25,8 +25,8 @@ import org.slf4j.LoggerFactory;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestTrack {
private final static Logger LOGGER = LoggerFactory.getLogger(TestTrack.class);
- public final static String ENDPOINT_NAME = "track/";
- public final static String ENDPOINT_DATA_NAME = "data/";
+ public final static String ENDPOINT_NAME = "track";
+ public final static String ENDPOINT_DATA_NAME = "data";
static WebLauncherTest webInterface = null;
static RESTApi api = null;
@@ -89,11 +89,11 @@ public class TestTrack {
multipart.put("trackId", 9);
multipart.put("file", dataToUpload);
- final Track inserted = api.postMultipart(Track.class, TestTrack.ENDPOINT_NAME + "upload", multipart);
+ final Track inserted = api.request(TestTrack.ENDPOINT_NAME, "upload").post().bodyMultipart(multipart).fetch(Track.class);
Assertions.assertNotNull(inserted);
- Assertions.assertNotNull(inserted.id);
- Assertions.assertTrue(inserted.id >= 0);
+ Assertions.assertNotNull(inserted.oid);
+ // Assertions.assertTrue(inserted.oid >= 0);
Assertions.assertNull(inserted.updatedAt);
Assertions.assertNull(inserted.createdAt);
Assertions.assertNull(inserted.deleted);
@@ -102,8 +102,7 @@ public class TestTrack {
Assertions.assertNotNull(inserted.dataId);
// Retrieve Data:
- final HttpResponse retreiveData = api.getRaw(TestTrack.ENDPOINT_DATA_NAME + inserted.dataId);
-
+ final HttpResponse retreiveData = api.request(TestTrack.ENDPOINT_DATA_NAME, inserted.dataId.toString()).get().fetchByte();
Assertions.assertNotNull(retreiveData);
Assertions.assertEquals(200, retreiveData.statusCode());
Assertions.assertEquals("11999", retreiveData.headers().firstValue("content-length").orElse(null));
diff --git a/front/.env b/front/.env
new file mode 100644
index 0000000..083c815
--- /dev/null
+++ b/front/.env
@@ -0,0 +1 @@
+NODE_ENV=development
\ No newline at end of file
diff --git a/front/config sample.yaml b/front/config sample.yaml
new file mode 100644
index 0000000..bb0f3c8
--- /dev/null
+++ b/front/config sample.yaml
@@ -0,0 +1,10637 @@
+{
+ conditions: {
+ hover: [
+ '@media (hover: hover)',
+ '&:is(:hover, [data-hover]):not(:disabled, [data-disabled])',
+ ],
+ active:
+ '&:is(:active, [data-active]):not(:disabled, [data-disabled], [data-state=open])',
+ focus: '&:is(:focus, [data-focus])',
+ focusWithin: '&:is(:focus-within, [data-focus-within])',
+ focusVisible: '&:is(:focus-visible, [data-focus-visible])',
+ disabled:
+ '&:is(:disabled, [disabled], [data-disabled], [aria-disabled=true])',
+ visited: '&:visited',
+ target: '&:target',
+ readOnly: '&:is([data-readonly], [aria-readonly=true], [readonly])',
+ readWrite: '&:read-write',
+ empty: '&:is(:empty, [data-empty])',
+ checked:
+ '&:is(:checked, [data-checked], [aria-checked=true], [data-state=checked])',
+ enabled: '&:enabled',
+ expanded:
+ '&:is([aria-expanded=true], [data-expanded], [data-state=expanded])',
+ highlighted: '&[data-highlighted]',
+ complete: '&[data-complete]',
+ incomplete: '&[data-incomplete]',
+ dragging: '&[data-dragging]',
+ before: '&::before',
+ after: '&::after',
+ firstLetter: '&::first-letter',
+ firstLine: '&::first-line',
+ marker: '&::marker',
+ selection: '&::selection',
+ file: '&::file-selector-button',
+ backdrop: '&::backdrop',
+ first: '&:first-of-type',
+ last: '&:last-of-type',
+ notFirst: '&:not(:first-of-type)',
+ notLast: '&:not(:last-of-type)',
+ only: '&:only-child',
+ even: '&:nth-of-type(even)',
+ odd: '&:nth-of-type(odd)',
+ peerFocus: '.peer:is(:focus, [data-focus]) ~ &',
+ peerHover:
+ '.peer:is(:hover, [data-hover]):not(:disabled, [data-disabled]) ~ &',
+ peerActive:
+ '.peer:is(:active, [data-active]):not(:disabled, [data-disabled]) ~ &',
+ peerFocusWithin: '.peer:focus-within ~ &',
+ peerFocusVisible: '.peer:is(:focus-visible, [data-focus-visible]) ~ &',
+ peerDisabled: '.peer:is(:disabled, [disabled], [data-disabled]) ~ &',
+ peerChecked:
+ '.peer:is(:checked, [data-checked], [aria-checked=true], [data-state=checked]) ~ &',
+ peerInvalid: '.peer:is(:invalid, [data-invalid], [aria-invalid=true]) ~ &',
+ peerExpanded:
+ '.peer:is([aria-expanded=true], [data-expanded], [data-state=expanded]) ~ &',
+ peerPlaceholderShown: '.peer:placeholder-shown ~ &',
+ groupFocus: '.group:is(:focus, [data-focus]) &',
+ groupHover:
+ '.group:is(:hover, [data-hover]):not(:disabled, [data-disabled]) &',
+ groupActive:
+ '.group:is(:active, [data-active]):not(:disabled, [data-disabled]) &',
+ groupFocusWithin: '.group:focus-within &',
+ groupFocusVisible: '.group:is(:focus-visible, [data-focus-visible]) &',
+ groupDisabled: '.group:is(:disabled, [disabled], [data-disabled]) &',
+ groupChecked:
+ '.group:is(:checked, [data-checked], [aria-checked=true], [data-state=checked]) &',
+ groupExpanded:
+ '.group:is([aria-expanded=true], [data-expanded], [data-state=expanded]) &',
+ groupInvalid: '.group:invalid &',
+ indeterminate:
+ '&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed], [data-state=indeterminate])',
+ required: '&:is([data-required], [aria-required=true])',
+ valid: '&:is([data-valid], [data-state=valid])',
+ invalid: '&:is([data-invalid], [aria-invalid=true], [data-state=invalid])',
+ autofill: '&:autofill',
+ inRange: '&:is(:in-range, [data-in-range])',
+ outOfRange: '&:is(:out-of-range, [data-outside-range])',
+ placeholder: '&::placeholder, &[data-placeholder]',
+ placeholderShown: '&:is(:placeholder-shown, [data-placeholder-shown])',
+ pressed: '&:is([aria-pressed=true], [data-pressed])',
+ selected: '&:is([aria-selected=true], [data-selected])',
+ grabbed: '&:is([aria-grabbed=true], [data-grabbed])',
+ underValue: '&[data-state=under-value]',
+ overValue: '&[data-state=over-value]',
+ atValue: '&[data-state=at-value]',
+ default: '&:default',
+ optional: '&:optional',
+ open: '&:is([open], [data-open], [data-state=open])',
+ closed: '&:is([closed], [data-closed], [data-state=closed])',
+ fullscreen: '&is(:fullscreen, [data-fullscreen])',
+ loading: '&:is([data-loading], [aria-busy=true])',
+ hidden: '&:is([hidden], [data-hidden])',
+ current: '&[data-current]',
+ currentPage: '&[aria-current=page]',
+ currentStep: '&[aria-current=step]',
+ today: '&[data-today]',
+ unavailable: '&[data-unavailable]',
+ rangeStart: '&[data-range-start]',
+ rangeEnd: '&[data-range-end]',
+ now: '&[data-now]',
+ topmost: '&[data-topmost]',
+ motionReduce: '@media (prefers-reduced-motion: reduce)',
+ motionSafe: '@media (prefers-reduced-motion: no-preference)',
+ print: '@media print',
+ landscape: '@media (orientation: landscape)',
+ portrait: '@media (orientation: portrait)',
+ dark: '.dark &, .dark .chakra-theme:not(.light) &',
+ light: ':root &, .light &',
+ osDark: '@media (prefers-color-scheme: dark)',
+ osLight: '@media (prefers-color-scheme: light)',
+ highContrast: '@media (forced-colors: active)',
+ lessContrast: '@media (prefers-contrast: less)',
+ moreContrast: '@media (prefers-contrast: more)',
+ ltr: '[dir=ltr] &',
+ rtl: '[dir=rtl] &',
+ scrollbar: '&::-webkit-scrollbar',
+ scrollbarThumb: '&::-webkit-scrollbar-thumb',
+ scrollbarTrack: '&::-webkit-scrollbar-track',
+ horizontal: '&[data-orientation=horizontal]',
+ vertical: '&[data-orientation=vertical]',
+ icon: '& :where(svg)',
+ starting: '@starting-style',
+ },
+ utilities: {
+ background: {
+ shorthand: ['bg'],
+ },
+ backgroundColor: {
+ shorthand: ['bgColor'],
+ },
+ backgroundSize: {
+ shorthand: ['bgSize'],
+ },
+ backgroundPosition: {
+ shorthand: ['bgPos'],
+ },
+ backgroundRepeat: {
+ shorthand: ['bgRepeat'],
+ },
+ backgroundAttachment: {
+ shorthand: ['bgAttachment'],
+ },
+ backgroundClip: {
+ shorthand: ['bgClip'],
+ values: ['text'],
+ },
+ backgroundGradient: {
+ shorthand: ['bgGradient'],
+ },
+ gradientFrom: {},
+ gradientTo: {},
+ gradientVia: {},
+ backgroundImage: {
+ values: 'gradients',
+ shorthand: ['bgImg', 'bgImage'],
+ },
+ border: {
+ values: 'borders',
+ },
+ borderTop: {
+ values: 'borders',
+ },
+ borderLeft: {
+ values: 'borders',
+ },
+ borderBlockStart: {
+ values: 'borders',
+ },
+ borderRight: {
+ values: 'borders',
+ },
+ borderInlineEnd: {
+ values: 'borders',
+ },
+ borderBottom: {
+ values: 'borders',
+ },
+ borderBlockEnd: {
+ values: 'borders',
+ },
+ borderInlineStart: {
+ values: 'borders',
+ shorthand: ['borderStart'],
+ },
+ borderInline: {
+ values: 'borders',
+ shorthand: ['borderX'],
+ },
+ borderBlock: {
+ values: 'borders',
+ shorthand: ['borderY'],
+ },
+ borderColor: {},
+ borderTopColor: {},
+ borderBlockStartColor: {},
+ borderBottomColor: {},
+ borderBlockEndColor: {},
+ borderLeftColor: {},
+ borderInlineStartColor: {
+ shorthand: ['borderStartColor'],
+ },
+ borderRightColor: {},
+ borderInlineEndColor: {
+ shorthand: ['borderEndColor'],
+ },
+ borderStyle: {
+ values: 'borderStyles',
+ },
+ borderTopStyle: {
+ values: 'borderStyles',
+ },
+ borderBlockStartStyle: {
+ values: 'borderStyles',
+ },
+ borderBottomStyle: {
+ values: 'borderStyles',
+ },
+ borderBlockEndStyle: {
+ values: 'borderStyles',
+ },
+ borderInlineStartStyle: {
+ values: 'borderStyles',
+ shorthand: ['borderStartStyle'],
+ },
+ borderInlineEndStyle: {
+ values: 'borderStyles',
+ shorthand: ['borderEndStyle'],
+ },
+ borderLeftStyle: {
+ values: 'borderStyles',
+ },
+ borderRightStyle: {
+ values: 'borderStyles',
+ },
+ borderRadius: {
+ values: 'radii',
+ shorthand: ['rounded'],
+ },
+ borderTopLeftRadius: {
+ values: 'radii',
+ shorthand: ['roundedTopLeft'],
+ },
+ borderStartStartRadius: {
+ values: 'radii',
+ shorthand: ['roundedStartStart', 'borderTopStartRadius'],
+ },
+ borderEndStartRadius: {
+ values: 'radii',
+ shorthand: ['roundedEndStart', 'borderBottomStartRadius'],
+ },
+ borderTopRightRadius: {
+ values: 'radii',
+ shorthand: ['roundedTopRight'],
+ },
+ borderStartEndRadius: {
+ values: 'radii',
+ shorthand: ['roundedStartEnd', 'borderTopEndRadius'],
+ },
+ borderEndEndRadius: {
+ values: 'radii',
+ shorthand: ['roundedEndEnd', 'borderBottomEndRadius'],
+ },
+ borderBottomLeftRadius: {
+ values: 'radii',
+ shorthand: ['roundedBottomLeft'],
+ },
+ borderBottomRightRadius: {
+ values: 'radii',
+ shorthand: ['roundedBottomRight'],
+ },
+ borderInlineStartRadius: {
+ values: 'radii',
+ property: 'borderRadius',
+ shorthand: ['roundedStart', 'borderStartRadius'],
+ },
+ borderInlineEndRadius: {
+ values: 'radii',
+ property: 'borderRadius',
+ shorthand: ['roundedEnd', 'borderEndRadius'],
+ },
+ borderTopRadius: {
+ values: 'radii',
+ property: 'borderRadius',
+ shorthand: ['roundedTop'],
+ },
+ borderBottomRadius: {
+ values: 'radii',
+ property: 'borderRadius',
+ shorthand: ['roundedBottom'],
+ },
+ borderLeftRadius: {
+ values: 'radii',
+ property: 'borderRadius',
+ shorthand: ['roundedLeft'],
+ },
+ borderRightRadius: {
+ values: 'radii',
+ property: 'borderRadius',
+ shorthand: ['roundedRight'],
+ },
+ borderWidth: {
+ values: 'borderWidths',
+ },
+ borderBlockStartWidth: {
+ values: 'borderWidths',
+ },
+ borderTopWidth: {
+ values: 'borderWidths',
+ },
+ borderBottomWidth: {
+ values: 'borderWidths',
+ },
+ borderBlockEndWidth: {
+ values: 'borderWidths',
+ },
+ borderRightWidth: {
+ values: 'borderWidths',
+ },
+ borderInlineWidth: {
+ values: 'borderWidths',
+ shorthand: ['borderXWidth'],
+ },
+ borderInlineStartWidth: {
+ values: 'borderWidths',
+ shorthand: ['borderStartWidth'],
+ },
+ borderInlineEndWidth: {
+ values: 'borderWidths',
+ shorthand: ['borderEndWidth'],
+ },
+ borderLeftWidth: {
+ values: 'borderWidths',
+ },
+ borderBlockWidth: {
+ values: 'borderWidths',
+ shorthand: ['borderYWidth'],
+ },
+ color: {},
+ fill: {},
+ stroke: {},
+ accentColor: {},
+ divideX: {
+ values: {
+ type: 'string',
+ },
+ },
+ divideY: {
+ values: {
+ type: 'string',
+ },
+ },
+ divideColor: {},
+ divideStyle: {
+ property: 'borderStyle',
+ },
+ boxShadow: {
+ values: 'shadows',
+ shorthand: ['shadow'],
+ },
+ boxShadowColor: {
+ shorthand: ['shadowColor'],
+ },
+ mixBlendMode: {
+ shorthand: ['blendMode'],
+ },
+ backgroundBlendMode: {
+ shorthand: ['bgBlendMode'],
+ },
+ opacity: {
+ values: 'opacity',
+ },
+ filter: {},
+ blur: {
+ values: 'blurs',
+ },
+ brightness: {},
+ contrast: {},
+ grayscale: {},
+ hueRotate: {},
+ invert: {},
+ saturate: {},
+ sepia: {},
+ dropShadow: {},
+ backdropFilter: {},
+ backdropBlur: {
+ values: 'blurs',
+ },
+ backdropBrightness: {},
+ backdropContrast: {},
+ backdropGrayscale: {},
+ backdropHueRotate: {},
+ backdropInvert: {},
+ backdropOpacity: {},
+ backdropSaturate: {},
+ backdropSepia: {},
+ flexBasis: {
+ values: 'sizes',
+ },
+ gap: {
+ values: 'spacing',
+ },
+ rowGap: {
+ values: 'spacing',
+ shorthand: ['gapY'],
+ },
+ columnGap: {
+ values: 'spacing',
+ shorthand: ['gapX'],
+ },
+ flexDirection: {
+ shorthand: ['flexDir'],
+ },
+ gridGap: {
+ values: 'spacing',
+ },
+ gridColumnGap: {
+ values: 'spacing',
+ },
+ gridRowGap: {
+ values: 'spacing',
+ },
+ outlineColor: {},
+ focusRing: {
+ values: ['outside', 'inside', 'mixed', 'none'],
+ },
+ focusVisibleRing: {
+ values: ['outside', 'inside', 'mixed', 'none'],
+ },
+ focusRingColor: {},
+ focusRingOffset: {
+ values: 'spacing',
+ },
+ focusRingWidth: {
+ values: 'borderWidths',
+ property: 'outlineWidth',
+ },
+ focusRingStyle: {
+ values: 'borderStyles',
+ property: 'outlineStyle',
+ },
+ aspectRatio: {
+ values: 'aspectRatios',
+ },
+ width: {
+ values: 'sizes',
+ shorthand: ['w'],
+ },
+ inlineSize: {
+ values: 'sizes',
+ },
+ height: {
+ values: 'sizes',
+ shorthand: ['h'],
+ },
+ blockSize: {
+ values: 'sizes',
+ },
+ boxSize: {
+ values: 'sizes',
+ property: 'width',
+ },
+ minWidth: {
+ values: 'sizes',
+ shorthand: ['minW'],
+ },
+ minInlineSize: {
+ values: 'sizes',
+ },
+ minHeight: {
+ values: 'sizes',
+ shorthand: ['minH'],
+ },
+ minBlockSize: {
+ values: 'sizes',
+ },
+ maxWidth: {
+ values: 'sizes',
+ shorthand: ['maxW'],
+ },
+ maxInlineSize: {
+ values: 'sizes',
+ },
+ maxHeight: {
+ values: 'sizes',
+ shorthand: ['maxH'],
+ },
+ maxBlockSize: {
+ values: 'sizes',
+ },
+ hideFrom: {
+ values: 'breakpoints',
+ },
+ hideBelow: {
+ values: 'breakpoints',
+ },
+ overscrollBehavior: {
+ shorthand: ['overscroll'],
+ },
+ overscrollBehaviorX: {
+ shorthand: ['overscrollX'],
+ },
+ overscrollBehaviorY: {
+ shorthand: ['overscrollY'],
+ },
+ scrollbar: {
+ values: ['visible', 'hidden'],
+ },
+ scrollbarColor: {},
+ scrollbarGutter: {
+ values: 'spacing',
+ },
+ scrollbarWidth: {
+ values: 'sizes',
+ },
+ scrollMargin: {
+ values: 'spacing',
+ },
+ scrollMarginTop: {
+ values: 'spacing',
+ },
+ scrollMarginBottom: {
+ values: 'spacing',
+ },
+ scrollMarginLeft: {
+ values: 'spacing',
+ },
+ scrollMarginRight: {
+ values: 'spacing',
+ },
+ scrollMarginX: {
+ values: 'spacing',
+ },
+ scrollMarginY: {
+ values: 'spacing',
+ },
+ scrollPadding: {
+ values: 'spacing',
+ },
+ scrollPaddingTop: {
+ values: 'spacing',
+ },
+ scrollPaddingBottom: {
+ values: 'spacing',
+ },
+ scrollPaddingLeft: {
+ values: 'spacing',
+ },
+ scrollPaddingRight: {
+ values: 'spacing',
+ },
+ scrollPaddingInline: {
+ values: 'spacing',
+ shorthand: ['scrollPaddingX'],
+ },
+ scrollPaddingBlock: {
+ values: 'spacing',
+ shorthand: ['scrollPaddingY'],
+ },
+ scrollSnapType: {
+ values: {
+ none: 'none',
+ x: 'x var(--scroll-snap-strictness)',
+ y: 'y var(--scroll-snap-strictness)',
+ both: 'both var(--scroll-snap-strictness)',
+ },
+ },
+ scrollSnapStrictness: {
+ values: ['mandatory', 'proximity'],
+ },
+ scrollSnapMargin: {
+ values: 'spacing',
+ },
+ scrollSnapMarginTop: {
+ values: 'spacing',
+ },
+ scrollSnapMarginBottom: {
+ values: 'spacing',
+ },
+ scrollSnapMarginLeft: {
+ values: 'spacing',
+ },
+ scrollSnapMarginRight: {
+ values: 'spacing',
+ },
+ listStylePosition: {
+ shorthand: ['listStylePos'],
+ },
+ listStyleImage: {
+ shorthand: ['listStyleImg'],
+ },
+ position: {
+ shorthand: ['pos'],
+ },
+ zIndex: {
+ values: 'zIndex',
+ },
+ inset: {
+ values: 'spacing',
+ },
+ insetInline: {
+ values: 'spacing',
+ shorthand: ['insetX'],
+ },
+ insetBlock: {
+ values: 'spacing',
+ shorthand: ['insetY'],
+ },
+ top: {
+ values: 'spacing',
+ },
+ insetBlockStart: {
+ values: 'spacing',
+ },
+ bottom: {
+ values: 'spacing',
+ },
+ insetBlockEnd: {
+ values: 'spacing',
+ },
+ left: {
+ values: 'spacing',
+ },
+ right: {
+ values: 'spacing',
+ },
+ insetInlineStart: {
+ values: 'spacing',
+ shorthand: ['insetStart'],
+ },
+ insetInlineEnd: {
+ values: 'spacing',
+ shorthand: ['insetEnd'],
+ },
+ ring: {},
+ ringColor: {},
+ ringOffset: {},
+ ringOffsetColor: {},
+ ringInset: {},
+ margin: {
+ values: 'spacing',
+ shorthand: ['m'],
+ },
+ marginTop: {
+ values: 'spacing',
+ shorthand: ['mt'],
+ },
+ marginBlockStart: {
+ values: 'spacing',
+ shorthand: ['mt'],
+ },
+ marginRight: {
+ values: 'spacing',
+ shorthand: ['mr'],
+ },
+ marginBottom: {
+ values: 'spacing',
+ shorthand: ['mb'],
+ },
+ marginBlockEnd: {
+ values: 'spacing',
+ },
+ marginLeft: {
+ values: 'spacing',
+ shorthand: ['ml'],
+ },
+ marginInlineStart: {
+ values: 'spacing',
+ shorthand: ['ms', 'marginStart'],
+ },
+ marginInlineEnd: {
+ values: 'spacing',
+ shorthand: ['me', 'marginEnd'],
+ },
+ marginInline: {
+ values: 'spacing',
+ shorthand: ['mx', 'marginX'],
+ },
+ marginBlock: {
+ values: 'spacing',
+ shorthand: ['my', 'marginY'],
+ },
+ padding: {
+ values: 'spacing',
+ shorthand: ['p'],
+ },
+ paddingTop: {
+ values: 'spacing',
+ shorthand: ['pt'],
+ },
+ paddingRight: {
+ values: 'spacing',
+ shorthand: ['pr'],
+ },
+ paddingBottom: {
+ values: 'spacing',
+ shorthand: ['pb'],
+ },
+ paddingBlockStart: {
+ values: 'spacing',
+ },
+ paddingBlockEnd: {
+ values: 'spacing',
+ },
+ paddingLeft: {
+ values: 'spacing',
+ shorthand: ['pl'],
+ },
+ paddingInlineStart: {
+ values: 'spacing',
+ shorthand: ['ps', 'paddingStart'],
+ },
+ paddingInlineEnd: {
+ values: 'spacing',
+ shorthand: ['pe', 'paddingEnd'],
+ },
+ paddingInline: {
+ values: 'spacing',
+ shorthand: ['px', 'paddingX'],
+ },
+ paddingBlock: {
+ values: 'spacing',
+ shorthand: ['py', 'paddingY'],
+ },
+ textDecoration: {
+ shorthand: ['textDecor'],
+ },
+ textDecorationColor: {},
+ textShadow: {
+ values: 'shadows',
+ },
+ transform: {},
+ skewX: {},
+ skewY: {},
+ scaleX: {},
+ scaleY: {},
+ scale: {},
+ spaceXReverse: {
+ values: {
+ type: 'boolean',
+ },
+ },
+ spaceX: {
+ property: 'marginInlineStart',
+ values: 'spacing',
+ },
+ spaceYReverse: {
+ values: {
+ type: 'boolean',
+ },
+ },
+ spaceY: {
+ property: 'marginTop',
+ values: 'spacing',
+ },
+ rotate: {},
+ rotateX: {},
+ rotateY: {},
+ translate: {},
+ translateX: {
+ values: 'spacing',
+ },
+ translateY: {
+ values: 'spacing',
+ },
+ transition: {
+ values: [
+ 'all',
+ 'common',
+ 'colors',
+ 'opacity',
+ 'position',
+ 'backgrounds',
+ 'size',
+ 'shadow',
+ 'transform',
+ ],
+ },
+ transitionDuration: {
+ values: 'durations',
+ },
+ transitionProperty: {
+ values: {
+ common:
+ 'background-color, border-color, color, fill, stroke, opacity, box-shadow, translate, transform',
+ colors: 'background-color, border-color, color, fill, stroke',
+ size: 'width, height',
+ position: 'left, right, top, bottom, inset-inline, inset-block',
+ background:
+ 'background, background-color, background-image, background-position',
+ },
+ },
+ transitionTimingFunction: {
+ values: 'easings',
+ },
+ animation: {
+ values: 'animations',
+ },
+ animationDuration: {
+ values: 'durations',
+ },
+ animationDelay: {
+ values: 'durations',
+ },
+ animationTimingFunction: {
+ values: 'easings',
+ },
+ fontFamily: {
+ values: 'fonts',
+ },
+ fontSize: {
+ values: 'fontSizes',
+ },
+ fontWeight: {
+ values: 'fontWeights',
+ },
+ lineHeight: {
+ values: 'lineHeights',
+ },
+ letterSpacing: {
+ values: 'letterSpacings',
+ },
+ textIndent: {
+ values: 'spacing',
+ },
+ truncate: {
+ values: {
+ type: 'boolean',
+ },
+ },
+ lineClamp: {},
+ srOnly: {
+ values: {
+ type: 'boolean',
+ },
+ },
+ debug: {
+ values: {
+ type: 'boolean',
+ },
+ },
+ caretColor: {},
+ cursor: {
+ values: 'cursor',
+ },
+ },
+ preflight: true,
+ cssVarsPrefix: 'chakra',
+ cssVarsRoot: ':where(html, .chakra-theme)',
+ globalCss: {
+ '*': {
+ fontFeatureSettings: '"cv11"',
+ '--ring-inset': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--ring-offset-width': '0px',
+ '--ring-offset-color': '#fff',
+ '--ring-color': 'rgba(66, 153, 225, 0.6)',
+ '--ring-offset-shadow': '0 0 #0000',
+ '--ring-shadow': '0 0 #0000',
+ '--brightness': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--contrast': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--grayscale': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--hue-rotate': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--invert': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--saturate': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--sepia': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--drop-shadow': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-blur': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-brightness': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-contrast': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-grayscale': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-hue-rotate': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-invert': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-opacity': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-saturate': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--backdrop-sepia': 'var(--chakra-empty,/*!*/ /*!*/)',
+ '--global-font-mono': 'fonts.mono',
+ '--global-font-body': 'fonts.body',
+ '--global-color-border': 'colors.border',
+ },
+ html: {
+ color: 'fg',
+ bg: 'bg',
+ lineHeight: '1.5',
+ colorPalette: 'gray',
+ },
+ '*::placeholder': {
+ color: 'fg.muted/80',
+ },
+ '*::selection': {
+ bg: 'colorPalette.muted/80',
+ },
+ },
+ theme: {
+ breakpoints: {
+ sm: '480px',
+ md: '768px',
+ lg: '1024px',
+ xl: '1280px',
+ '2xl': '1536px',
+ },
+ keyframes: {
+ spin: {
+ '0%': {
+ transform: 'rotate(0deg)',
+ },
+ '100%': {
+ transform: 'rotate(360deg)',
+ },
+ },
+ pulse: {
+ '50%': {
+ opacity: '0.5',
+ },
+ },
+ ping: {
+ '75%, 100%': {
+ transform: 'scale(2)',
+ opacity: '0',
+ },
+ },
+ bounce: {
+ '0%, 100%': {
+ transform: 'translateY(-25%)',
+ animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',
+ },
+ '50%': {
+ transform: 'none',
+ animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',
+ },
+ },
+ 'bg-position': {
+ from: {
+ backgroundPosition: 'var(--animate-from, 1rem) 0',
+ },
+ to: {
+ backgroundPosition: 'var(--animate-to, 0) 0',
+ },
+ },
+ position: {
+ from: {
+ insetInlineStart: 'var(--animate-from-x)',
+ insetBlockStart: 'var(--animate-from-y)',
+ },
+ to: {
+ insetInlineStart: 'var(--animate-to-x)',
+ insetBlockStart: 'var(--animate-to-y)',
+ },
+ },
+ 'circular-progress': {
+ '0%': {
+ strokeDasharray: '1, 400',
+ strokeDashoffset: '0',
+ },
+ '50%': {
+ strokeDasharray: '400, 400',
+ strokeDashoffset: '-100%',
+ },
+ '100%': {
+ strokeDasharray: '400, 400',
+ strokeDashoffset: '-260%',
+ },
+ },
+ 'expand-height': {
+ from: {
+ height: '0',
+ },
+ to: {
+ height: 'var(--height)',
+ },
+ },
+ 'collapse-height': {
+ from: {
+ height: 'var(--height)',
+ },
+ to: {
+ height: '0',
+ },
+ },
+ 'expand-width': {
+ from: {
+ width: '0',
+ },
+ to: {
+ width: 'var(--width)',
+ },
+ },
+ 'collapse-width': {
+ from: {
+ height: 'var(--width)',
+ },
+ to: {
+ height: '0',
+ },
+ },
+ 'fade-in': {
+ from: {
+ opacity: 0,
+ },
+ to: {
+ opacity: 1,
+ },
+ },
+ 'fade-out': {
+ from: {
+ opacity: 1,
+ },
+ to: {
+ opacity: 0,
+ },
+ },
+ 'slide-from-left-full': {
+ from: {
+ translate: '-100% 0',
+ },
+ to: {
+ translate: '0 0',
+ },
+ },
+ 'slide-from-right-full': {
+ from: {
+ translate: '100% 0',
+ },
+ to: {
+ translate: '0 0',
+ },
+ },
+ 'slide-from-top-full': {
+ from: {
+ translate: '0 -100%',
+ },
+ to: {
+ translate: '0 0',
+ },
+ },
+ 'slide-from-bottom-full': {
+ from: {
+ translate: '0 100%',
+ },
+ to: {
+ translate: '0 0',
+ },
+ },
+ 'slide-to-left-full': {
+ from: {
+ translate: '0 0',
+ },
+ to: {
+ translate: '-100% 0',
+ },
+ },
+ 'slide-to-right-full': {
+ from: {
+ translate: '0 0',
+ },
+ to: {
+ translate: '100% 0',
+ },
+ },
+ 'slide-to-top-full': {
+ from: {
+ translate: '0 0',
+ },
+ to: {
+ translate: '0 -100%',
+ },
+ },
+ 'slide-to-bottom-full': {
+ from: {
+ translate: '0 0',
+ },
+ to: {
+ translate: '0 100%',
+ },
+ },
+ 'slide-from-top': {
+ '0%': {
+ translate: '0 -0.5rem',
+ },
+ to: {
+ translate: '0',
+ },
+ },
+ 'slide-from-bottom': {
+ '0%': {
+ translate: '0 0.5rem',
+ },
+ to: {
+ translate: '0',
+ },
+ },
+ 'slide-from-left': {
+ '0%': {
+ translate: '-0.5rem 0',
+ },
+ to: {
+ translate: '0',
+ },
+ },
+ 'slide-from-right': {
+ '0%': {
+ translate: '0.5rem 0',
+ },
+ to: {
+ translate: '0',
+ },
+ },
+ 'slide-to-top': {
+ '0%': {
+ translate: '0',
+ },
+ to: {
+ translate: '0 -0.5rem',
+ },
+ },
+ 'slide-to-bottom': {
+ '0%': {
+ translate: '0',
+ },
+ to: {
+ translate: '0 0.5rem',
+ },
+ },
+ 'slide-to-left': {
+ '0%': {
+ translate: '0',
+ },
+ to: {
+ translate: '-0.5rem 0',
+ },
+ },
+ 'slide-to-right': {
+ '0%': {
+ translate: '0',
+ },
+ to: {
+ translate: '0.5rem 0',
+ },
+ },
+ 'scale-in': {
+ from: {
+ scale: '0.95',
+ },
+ to: {
+ scale: '1',
+ },
+ },
+ 'scale-out': {
+ from: {
+ scale: '1',
+ },
+ to: {
+ scale: '0.95',
+ },
+ },
+ },
+ tokens: {
+ aspectRatios: {
+ square: {
+ value: '1 / 1',
+ },
+ landscape: {
+ value: '4 / 3',
+ },
+ portrait: {
+ value: '3 / 4',
+ },
+ wide: {
+ value: '16 / 9',
+ },
+ ultrawide: {
+ value: '18 / 5',
+ },
+ golden: {
+ value: '1.618 / 1',
+ },
+ },
+ animations: {
+ spin: {
+ value: 'spin 1s linear infinite',
+ },
+ ping: {
+ value: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',
+ },
+ pulse: {
+ value: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
+ },
+ bounce: {
+ value: 'bounce 1s infinite',
+ },
+ },
+ blurs: {
+ none: {
+ value: ' ',
+ },
+ sm: {
+ value: '4px',
+ },
+ md: {
+ value: '8px',
+ },
+ lg: {
+ value: '12px',
+ },
+ xl: {
+ value: '16px',
+ },
+ '2xl': {
+ value: '24px',
+ },
+ '3xl': {
+ value: '40px',
+ },
+ '4xl': {
+ value: '64px',
+ },
+ },
+ borders: {
+ xs: {
+ value: '0.5px solid',
+ },
+ sm: {
+ value: '1px solid',
+ },
+ md: {
+ value: '2px solid',
+ },
+ lg: {
+ value: '4px solid',
+ },
+ xl: {
+ value: '8px solid',
+ },
+ },
+ colors: {
+ transparent: {
+ value: 'transparent',
+ },
+ current: {
+ value: 'currentColor',
+ },
+ black: {
+ value: '#09090B',
+ },
+ white: {
+ value: '#FFFFFF',
+ },
+ whiteAlpha: {
+ '50': {
+ value: 'rgba(255, 255, 255, 0.04)',
+ },
+ '100': {
+ value: 'rgba(255, 255, 255, 0.06)',
+ },
+ '200': {
+ value: 'rgba(255, 255, 255, 0.08)',
+ },
+ '300': {
+ value: 'rgba(255, 255, 255, 0.16)',
+ },
+ '400': {
+ value: 'rgba(255, 255, 255, 0.24)',
+ },
+ '500': {
+ value: 'rgba(255, 255, 255, 0.36)',
+ },
+ '600': {
+ value: 'rgba(255, 255, 255, 0.48)',
+ },
+ '700': {
+ value: 'rgba(255, 255, 255, 0.64)',
+ },
+ '800': {
+ value: 'rgba(255, 255, 255, 0.80)',
+ },
+ '900': {
+ value: 'rgba(255, 255, 255, 0.92)',
+ },
+ '950': {
+ value: 'rgba(255, 255, 255, 0.95)',
+ },
+ },
+ blackAlpha: {
+ '50': {
+ value: 'rgba(0, 0, 0, 0.04)',
+ },
+ '100': {
+ value: 'rgba(0, 0, 0, 0.06)',
+ },
+ '200': {
+ value: 'rgba(0, 0, 0, 0.08)',
+ },
+ '300': {
+ value: 'rgba(0, 0, 0, 0.16)',
+ },
+ '400': {
+ value: 'rgba(0, 0, 0, 0.24)',
+ },
+ '500': {
+ value: 'rgba(0, 0, 0, 0.36)',
+ },
+ '600': {
+ value: 'rgba(0, 0, 0, 0.48)',
+ },
+ '700': {
+ value: 'rgba(0, 0, 0, 0.64)',
+ },
+ '800': {
+ value: 'rgba(0, 0, 0, 0.80)',
+ },
+ '900': {
+ value: 'rgba(0, 0, 0, 0.92)',
+ },
+ '950': {
+ value: 'rgba(0, 0, 0, 0.95)',
+ },
+ },
+ gray: {
+ '50': {
+ value: '#fafafa',
+ },
+ '100': {
+ value: '#f4f4f5',
+ },
+ '200': {
+ value: '#e4e4e7',
+ },
+ '300': {
+ value: '#d4d4d8',
+ },
+ '400': {
+ value: '#a1a1aa',
+ },
+ '500': {
+ value: '#71717a',
+ },
+ '600': {
+ value: '#52525b',
+ },
+ '700': {
+ value: '#3f3f46',
+ },
+ '800': {
+ value: '#27272a',
+ },
+ '900': {
+ value: '#18181b',
+ },
+ '950': {
+ value: '#111111',
+ },
+ },
+ red: {
+ '50': {
+ value: '#fef2f2',
+ },
+ '100': {
+ value: '#fee2e2',
+ },
+ '200': {
+ value: '#fecaca',
+ },
+ '300': {
+ value: '#fca5a5',
+ },
+ '400': {
+ value: '#f87171',
+ },
+ '500': {
+ value: '#ef4444',
+ },
+ '600': {
+ value: '#dc2626',
+ },
+ '700': {
+ value: '#991919',
+ },
+ '800': {
+ value: '#511111',
+ },
+ '900': {
+ value: '#300c0c',
+ },
+ '950': {
+ value: '#1f0808',
+ },
+ },
+ orange: {
+ '50': {
+ value: '#fff7ed',
+ },
+ '100': {
+ value: '#ffedd5',
+ },
+ '200': {
+ value: '#fed7aa',
+ },
+ '300': {
+ value: '#fdba74',
+ },
+ '400': {
+ value: '#fb923c',
+ },
+ '500': {
+ value: '#f97316',
+ },
+ '600': {
+ value: '#ea580c',
+ },
+ '700': {
+ value: '#92310a',
+ },
+ '800': {
+ value: '#6c2710',
+ },
+ '900': {
+ value: '#3b1106',
+ },
+ '950': {
+ value: '#220a04',
+ },
+ },
+ yellow: {
+ '50': {
+ value: '#fefce8',
+ },
+ '100': {
+ value: '#fef9c3',
+ },
+ '200': {
+ value: '#fef08a',
+ },
+ '300': {
+ value: '#fde047',
+ },
+ '400': {
+ value: '#facc15',
+ },
+ '500': {
+ value: '#eab308',
+ },
+ '600': {
+ value: '#ca8a04',
+ },
+ '700': {
+ value: '#845209',
+ },
+ '800': {
+ value: '#713f12',
+ },
+ '900': {
+ value: '#422006',
+ },
+ '950': {
+ value: '#281304',
+ },
+ },
+ green: {
+ '50': {
+ value: '#f0fdf4',
+ },
+ '100': {
+ value: '#dcfce7',
+ },
+ '200': {
+ value: '#bbf7d0',
+ },
+ '300': {
+ value: '#86efac',
+ },
+ '400': {
+ value: '#4ade80',
+ },
+ '500': {
+ value: '#22c55e',
+ },
+ '600': {
+ value: '#16a34a',
+ },
+ '700': {
+ value: '#116932',
+ },
+ '800': {
+ value: '#124a28',
+ },
+ '900': {
+ value: '#042713',
+ },
+ '950': {
+ value: '#03190c',
+ },
+ },
+ teal: {
+ '50': {
+ value: '#f0fdfa',
+ },
+ '100': {
+ value: '#ccfbf1',
+ },
+ '200': {
+ value: '#99f6e4',
+ },
+ '300': {
+ value: '#5eead4',
+ },
+ '400': {
+ value: '#2dd4bf',
+ },
+ '500': {
+ value: '#14b8a6',
+ },
+ '600': {
+ value: '#0d9488',
+ },
+ '700': {
+ value: '#0c5d56',
+ },
+ '800': {
+ value: '#114240',
+ },
+ '900': {
+ value: '#032726',
+ },
+ '950': {
+ value: '#021716',
+ },
+ },
+ blue: {
+ '50': {
+ value: '#eff6ff',
+ },
+ '100': {
+ value: '#dbeafe',
+ },
+ '200': {
+ value: '#bfdbfe',
+ },
+ '300': {
+ value: '#a3cfff',
+ },
+ '400': {
+ value: '#60a5fa',
+ },
+ '500': {
+ value: '#3b82f6',
+ },
+ '600': {
+ value: '#2563eb',
+ },
+ '700': {
+ value: '#173da6',
+ },
+ '800': {
+ value: '#1a3478',
+ },
+ '900': {
+ value: '#14204a',
+ },
+ '950': {
+ value: '#0c142e',
+ },
+ },
+ cyan: {
+ '50': {
+ value: '#ecfeff',
+ },
+ '100': {
+ value: '#cffafe',
+ },
+ '200': {
+ value: '#a5f3fc',
+ },
+ '300': {
+ value: '#67e8f9',
+ },
+ '400': {
+ value: '#22d3ee',
+ },
+ '500': {
+ value: '#06b6d4',
+ },
+ '600': {
+ value: '#0891b2',
+ },
+ '700': {
+ value: '#0c5c72',
+ },
+ '800': {
+ value: '#134152',
+ },
+ '900': {
+ value: '#072a38',
+ },
+ '950': {
+ value: '#051b24',
+ },
+ },
+ purple: {
+ '50': {
+ value: '#faf5ff',
+ },
+ '100': {
+ value: '#f3e8ff',
+ },
+ '200': {
+ value: '#e9d5ff',
+ },
+ '300': {
+ value: '#d8b4fe',
+ },
+ '400': {
+ value: '#c084fc',
+ },
+ '500': {
+ value: '#a855f7',
+ },
+ '600': {
+ value: '#9333ea',
+ },
+ '700': {
+ value: '#641ba3',
+ },
+ '800': {
+ value: '#4a1772',
+ },
+ '900': {
+ value: '#2f0553',
+ },
+ '950': {
+ value: '#1a032e',
+ },
+ },
+ pink: {
+ '50': {
+ value: '#fdf2f8',
+ },
+ '100': {
+ value: '#fce7f3',
+ },
+ '200': {
+ value: '#fbcfe8',
+ },
+ '300': {
+ value: '#f9a8d4',
+ },
+ '400': {
+ value: '#f472b6',
+ },
+ '500': {
+ value: '#ec4899',
+ },
+ '600': {
+ value: '#db2777',
+ },
+ '700': {
+ value: '#a41752',
+ },
+ '800': {
+ value: '#6d0e34',
+ },
+ '900': {
+ value: '#45061f',
+ },
+ '950': {
+ value: '#2c0514',
+ },
+ },
+ },
+ durations: {
+ fastest: {
+ value: '50ms',
+ },
+ faster: {
+ value: '100ms',
+ },
+ fast: {
+ value: '150ms',
+ },
+ moderate: {
+ value: '200ms',
+ },
+ slow: {
+ value: '300ms',
+ },
+ slower: {
+ value: '400ms',
+ },
+ slowest: {
+ value: '500ms',
+ },
+ },
+ easings: {
+ 'ease-in': {
+ value: 'cubic-bezier(0.42, 0, 1, 1)',
+ },
+ 'ease-out': {
+ value: 'cubic-bezier(0, 0, 0.58, 1)',
+ },
+ 'ease-in-out': {
+ value: 'cubic-bezier(0.42, 0, 0.58, 1)',
+ },
+ 'ease-in-smooth': {
+ value: 'cubic-bezier(0.32, 0.72, 0, 1)',
+ },
+ },
+ fonts: {
+ heading: {
+ value:
+ 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
+ },
+ body: {
+ value:
+ 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
+ },
+ mono: {
+ value:
+ 'SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace',
+ },
+ },
+ fontSizes: {
+ '2xs': {
+ value: '0.625rem',
+ },
+ xs: {
+ value: '0.75rem',
+ },
+ sm: {
+ value: '0.875rem',
+ },
+ md: {
+ value: '1rem',
+ },
+ lg: {
+ value: '1.125rem',
+ },
+ xl: {
+ value: '1.25rem',
+ },
+ '2xl': {
+ value: '1.5rem',
+ },
+ '3xl': {
+ value: '1.875rem',
+ },
+ '4xl': {
+ value: '2.25rem',
+ },
+ '5xl': {
+ value: '3rem',
+ },
+ '6xl': {
+ value: '3.75rem',
+ },
+ '7xl': {
+ value: '4.5rem',
+ },
+ '8xl': {
+ value: '6rem',
+ },
+ '9xl': {
+ value: '8rem',
+ },
+ },
+ fontWeights: {
+ thin: {
+ value: '100',
+ },
+ extralight: {
+ value: '200',
+ },
+ light: {
+ value: '300',
+ },
+ normal: {
+ value: '400',
+ },
+ medium: {
+ value: '500',
+ },
+ semibold: {
+ value: '600',
+ },
+ bold: {
+ value: '700',
+ },
+ extrabold: {
+ value: '800',
+ },
+ black: {
+ value: '900',
+ },
+ },
+ letterSpacings: {
+ tighter: {
+ value: '-0.05em',
+ },
+ tight: {
+ value: '-0.025em',
+ },
+ wide: {
+ value: '0.025em',
+ },
+ wider: {
+ value: '0.05em',
+ },
+ widest: {
+ value: '0.1em',
+ },
+ },
+ lineHeights: {
+ shorter: {
+ value: 1.25,
+ },
+ short: {
+ value: 1.375,
+ },
+ moderate: {
+ value: 1.5,
+ },
+ tall: {
+ value: 1.625,
+ },
+ taller: {
+ value: 2,
+ },
+ },
+ radii: {
+ none: {
+ value: '0',
+ },
+ '2xs': {
+ value: '0.0625rem',
+ },
+ xs: {
+ value: '0.125rem',
+ },
+ sm: {
+ value: '0.25rem',
+ },
+ md: {
+ value: '0.375rem',
+ },
+ lg: {
+ value: '0.5rem',
+ },
+ xl: {
+ value: '0.75rem',
+ },
+ '2xl': {
+ value: '1rem',
+ },
+ '3xl': {
+ value: '1.5rem',
+ },
+ '4xl': {
+ value: '2rem',
+ },
+ full: {
+ value: '9999px',
+ },
+ },
+ spacing: {
+ '1': {
+ value: '0.25rem',
+ },
+ '2': {
+ value: '0.5rem',
+ },
+ '3': {
+ value: '0.75rem',
+ },
+ '4': {
+ value: '1rem',
+ },
+ '5': {
+ value: '1.25rem',
+ },
+ '6': {
+ value: '1.5rem',
+ },
+ '7': {
+ value: '1.75rem',
+ },
+ '8': {
+ value: '2rem',
+ },
+ '9': {
+ value: '2.25rem',
+ },
+ '10': {
+ value: '2.5rem',
+ },
+ '11': {
+ value: '2.75rem',
+ },
+ '12': {
+ value: '3rem',
+ },
+ '14': {
+ value: '3.5rem',
+ },
+ '16': {
+ value: '4rem',
+ },
+ '20': {
+ value: '5rem',
+ },
+ '24': {
+ value: '6rem',
+ },
+ '28': {
+ value: '7rem',
+ },
+ '32': {
+ value: '8rem',
+ },
+ '36': {
+ value: '9rem',
+ },
+ '40': {
+ value: '10rem',
+ },
+ '44': {
+ value: '11rem',
+ },
+ '48': {
+ value: '12rem',
+ },
+ '52': {
+ value: '13rem',
+ },
+ '56': {
+ value: '14rem',
+ },
+ '60': {
+ value: '15rem',
+ },
+ '64': {
+ value: '16rem',
+ },
+ '72': {
+ value: '18rem',
+ },
+ '80': {
+ value: '20rem',
+ },
+ '96': {
+ value: '24rem',
+ },
+ '0.5': {
+ value: '0.125rem',
+ },
+ '1.5': {
+ value: '0.375rem',
+ },
+ '2.5': {
+ value: '0.625rem',
+ },
+ '3.5': {
+ value: '0.875rem',
+ },
+ '4.5': {
+ value: '1.125rem',
+ },
+ },
+ sizes: {
+ '1': {
+ value: '0.25rem',
+ },
+ '2': {
+ value: '0.5rem',
+ },
+ '3': {
+ value: '0.75rem',
+ },
+ '4': {
+ value: '1rem',
+ },
+ '5': {
+ value: '1.25rem',
+ },
+ '6': {
+ value: '1.5rem',
+ },
+ '7': {
+ value: '1.75rem',
+ },
+ '8': {
+ value: '2rem',
+ },
+ '9': {
+ value: '2.25rem',
+ },
+ '10': {
+ value: '2.5rem',
+ },
+ '11': {
+ value: '2.75rem',
+ },
+ '12': {
+ value: '3rem',
+ },
+ '14': {
+ value: '3.5rem',
+ },
+ '16': {
+ value: '4rem',
+ },
+ '20': {
+ value: '5rem',
+ },
+ '24': {
+ value: '6rem',
+ },
+ '28': {
+ value: '7rem',
+ },
+ '32': {
+ value: '8rem',
+ },
+ '36': {
+ value: '9rem',
+ },
+ '40': {
+ value: '10rem',
+ },
+ '44': {
+ value: '11rem',
+ },
+ '48': {
+ value: '12rem',
+ },
+ '52': {
+ value: '13rem',
+ },
+ '56': {
+ value: '14rem',
+ },
+ '60': {
+ value: '15rem',
+ },
+ '64': {
+ value: '16rem',
+ },
+ '72': {
+ value: '18rem',
+ },
+ '80': {
+ value: '20rem',
+ },
+ '96': {
+ value: '24rem',
+ },
+ '3xs': {
+ value: '14rem',
+ },
+ '2xs': {
+ value: '16rem',
+ },
+ xs: {
+ value: '20rem',
+ },
+ sm: {
+ value: '24rem',
+ },
+ md: {
+ value: '28rem',
+ },
+ lg: {
+ value: '32rem',
+ },
+ xl: {
+ value: '36rem',
+ },
+ '2xl': {
+ value: '42rem',
+ },
+ '3xl': {
+ value: '48rem',
+ },
+ '4xl': {
+ value: '56rem',
+ },
+ '5xl': {
+ value: '64rem',
+ },
+ '6xl': {
+ value: '72rem',
+ },
+ '7xl': {
+ value: '80rem',
+ },
+ '8xl': {
+ value: '90rem',
+ },
+ '0.5': {
+ value: '0.125rem',
+ },
+ '1.5': {
+ value: '0.375rem',
+ },
+ '2.5': {
+ value: '0.625rem',
+ },
+ '3.5': {
+ value: '0.875rem',
+ },
+ '4.5': {
+ value: '1.125rem',
+ },
+ '1/2': {
+ value: '50%',
+ },
+ '1/3': {
+ value: '33.333333%',
+ },
+ '2/3': {
+ value: '66.666667%',
+ },
+ '1/4': {
+ value: '25%',
+ },
+ '3/4': {
+ value: '75%',
+ },
+ '1/5': {
+ value: '20%',
+ },
+ '2/5': {
+ value: '40%',
+ },
+ '3/5': {
+ value: '60%',
+ },
+ '4/5': {
+ value: '80%',
+ },
+ '1/6': {
+ value: '16.666667%',
+ },
+ '2/6': {
+ value: '33.333333%',
+ },
+ '3/6': {
+ value: '50%',
+ },
+ '4/6': {
+ value: '66.666667%',
+ },
+ '5/6': {
+ value: '83.333333%',
+ },
+ '1/12': {
+ value: '8.333333%',
+ },
+ '2/12': {
+ value: '16.666667%',
+ },
+ '3/12': {
+ value: '25%',
+ },
+ '4/12': {
+ value: '33.333333%',
+ },
+ '5/12': {
+ value: '41.666667%',
+ },
+ '6/12': {
+ value: '50%',
+ },
+ '7/12': {
+ value: '58.333333%',
+ },
+ '8/12': {
+ value: '66.666667%',
+ },
+ '9/12': {
+ value: '75%',
+ },
+ '10/12': {
+ value: '83.333333%',
+ },
+ '11/12': {
+ value: '91.666667%',
+ },
+ max: {
+ value: 'max-content',
+ },
+ min: {
+ value: 'min-content',
+ },
+ fit: {
+ value: 'fit-content',
+ },
+ prose: {
+ value: '60ch',
+ },
+ full: {
+ value: '100%',
+ },
+ dvh: {
+ value: '100dvh',
+ },
+ svh: {
+ value: '100svh',
+ },
+ lvh: {
+ value: '100lvh',
+ },
+ dvw: {
+ value: '100dvw',
+ },
+ svw: {
+ value: '100svw',
+ },
+ lvw: {
+ value: '100lvw',
+ },
+ vw: {
+ value: '100vw',
+ },
+ vh: {
+ value: '100vh',
+ },
+ },
+ zIndex: {
+ hide: {
+ value: -1,
+ },
+ base: {
+ value: 0,
+ },
+ docked: {
+ value: 10,
+ },
+ dropdown: {
+ value: 1000,
+ },
+ sticky: {
+ value: 1100,
+ },
+ banner: {
+ value: 1200,
+ },
+ overlay: {
+ value: 1300,
+ },
+ modal: {
+ value: 1400,
+ },
+ popover: {
+ value: 1500,
+ },
+ skipNav: {
+ value: 1600,
+ },
+ toast: {
+ value: 1700,
+ },
+ tooltip: {
+ value: 1800,
+ },
+ max: {
+ value: 2147483647,
+ },
+ },
+ cursor: {
+ button: {
+ value: 'pointer',
+ },
+ checkbox: {
+ value: 'default',
+ },
+ disabled: {
+ value: 'not-allowed',
+ },
+ menuitem: {
+ value: 'default',
+ },
+ option: {
+ value: 'default',
+ },
+ radio: {
+ value: 'default',
+ },
+ slider: {
+ value: 'default',
+ },
+ switch: {
+ value: 'pointer',
+ },
+ },
+ },
+ semanticTokens: {
+ colors: {
+ bg: {
+ DEFAULT: {
+ value: {
+ _light: '{colors.white}',
+ _dark: '{colors.black}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.gray.50}',
+ _dark: '{colors.gray.950}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.gray.100}',
+ _dark: '{colors.gray.900}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.gray.200}',
+ _dark: '{colors.gray.800}',
+ },
+ },
+ inverted: {
+ value: {
+ _light: '{colors.black}',
+ _dark: '{colors.white}',
+ },
+ },
+ panel: {
+ value: {
+ _light: '{colors.white}',
+ _dark: '{colors.gray.950}',
+ },
+ },
+ error: {
+ value: {
+ _light: '{colors.red.50}',
+ _dark: '{colors.red.950}',
+ },
+ },
+ warning: {
+ value: {
+ _light: '{colors.orange.50}',
+ _dark: '{colors.orange.950}',
+ },
+ },
+ success: {
+ value: {
+ _light: '{colors.green.50}',
+ _dark: '{colors.green.950}',
+ },
+ },
+ info: {
+ value: {
+ _light: '{colors.blue.50}',
+ _dark: '{colors.blue.950}',
+ },
+ },
+ },
+ fg: {
+ DEFAULT: {
+ value: {
+ _light: '{colors.black}',
+ _dark: '{colors.gray.50}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.gray.600}',
+ _dark: '{colors.gray.400}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.gray.400}',
+ _dark: '{colors.gray.500}',
+ },
+ },
+ inverted: {
+ value: {
+ _light: '{colors.gray.50}',
+ _dark: '{colors.black}',
+ },
+ },
+ error: {
+ value: {
+ _light: '{colors.red.500}',
+ _dark: '{colors.red.400}',
+ },
+ },
+ warning: {
+ value: {
+ _light: '{colors.orange.600}',
+ _dark: '{colors.orange.300}',
+ },
+ },
+ success: {
+ value: {
+ _light: '{colors.green.600}',
+ _dark: '{colors.green.300}',
+ },
+ },
+ info: {
+ value: {
+ _light: '{colors.blue.600}',
+ _dark: '{colors.blue.300}',
+ },
+ },
+ },
+ border: {
+ DEFAULT: {
+ value: {
+ _light: '{colors.gray.200}',
+ _dark: '{colors.gray.800}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.gray.100}',
+ _dark: '{colors.gray.900}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.gray.50}',
+ _dark: '{colors.gray.950}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.gray.300}',
+ _dark: '{colors.gray.700}',
+ },
+ },
+ inverted: {
+ value: {
+ _light: '{colors.gray.800}',
+ _dark: '{colors.gray.200}',
+ },
+ },
+ error: {
+ value: {
+ _light: '{colors.red.500}',
+ _dark: '{colors.red.400}',
+ },
+ },
+ warning: {
+ value: {
+ _light: '{colors.orange.500}',
+ _dark: '{colors.orange.400}',
+ },
+ },
+ success: {
+ value: {
+ _light: '{colors.green.500}',
+ _dark: '{colors.green.400}',
+ },
+ },
+ info: {
+ value: {
+ _light: '{colors.blue.500}',
+ _dark: '{colors.blue.400}',
+ },
+ },
+ },
+ gray: {
+ contrast: {
+ value: {
+ _light: '{colors.white}',
+ _dark: '{colors.black}',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.gray.800}',
+ _dark: '{colors.gray.200}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.gray.100}',
+ _dark: '{colors.gray.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.gray.200}',
+ _dark: '{colors.gray.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.gray.300}',
+ _dark: '{colors.gray.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.gray.900}',
+ _dark: '{colors.white}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.gray.800}',
+ _dark: '{colors.gray.200}',
+ },
+ },
+ },
+ red: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.red.700}',
+ _dark: '{colors.red.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.red.100}',
+ _dark: '{colors.red.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.red.200}',
+ _dark: '{colors.red.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.red.300}',
+ _dark: '{colors.red.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.red.600}',
+ _dark: '{colors.red.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.red.600}',
+ _dark: '{colors.red.600}',
+ },
+ },
+ },
+ orange: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'black',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.orange.700}',
+ _dark: '{colors.orange.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.orange.100}',
+ _dark: '{colors.orange.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.orange.200}',
+ _dark: '{colors.orange.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.orange.300}',
+ _dark: '{colors.orange.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.orange.600}',
+ _dark: '{colors.orange.500}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.orange.600}',
+ _dark: '{colors.orange.500}',
+ },
+ },
+ },
+ green: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.green.700}',
+ _dark: '{colors.green.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.green.100}',
+ _dark: '{colors.green.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.green.200}',
+ _dark: '{colors.green.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.green.300}',
+ _dark: '{colors.green.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.green.600}',
+ _dark: '{colors.green.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.green.600}',
+ _dark: '{colors.green.600}',
+ },
+ },
+ },
+ blue: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.blue.700}',
+ _dark: '{colors.blue.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.blue.100}',
+ _dark: '{colors.blue.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.blue.200}',
+ _dark: '{colors.blue.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.blue.300}',
+ _dark: '{colors.blue.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.blue.600}',
+ _dark: '{colors.blue.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.blue.600}',
+ _dark: '{colors.blue.600}',
+ },
+ },
+ },
+ yellow: {
+ contrast: {
+ value: {
+ _light: 'black',
+ _dark: 'black',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.yellow.800}',
+ _dark: '{colors.yellow.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.yellow.100}',
+ _dark: '{colors.yellow.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.yellow.200}',
+ _dark: '{colors.yellow.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.yellow.300}',
+ _dark: '{colors.yellow.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.yellow.300}',
+ _dark: '{colors.yellow.300}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.yellow.300}',
+ _dark: '{colors.yellow.300}',
+ },
+ },
+ },
+ teal: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.teal.700}',
+ _dark: '{colors.teal.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.teal.100}',
+ _dark: '{colors.teal.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.teal.200}',
+ _dark: '{colors.teal.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.teal.300}',
+ _dark: '{colors.teal.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.teal.600}',
+ _dark: '{colors.teal.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.teal.600}',
+ _dark: '{colors.teal.600}',
+ },
+ },
+ },
+ purple: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.purple.700}',
+ _dark: '{colors.purple.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.purple.100}',
+ _dark: '{colors.purple.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.purple.200}',
+ _dark: '{colors.purple.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.purple.300}',
+ _dark: '{colors.purple.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.purple.600}',
+ _dark: '{colors.purple.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.purple.600}',
+ _dark: '{colors.purple.600}',
+ },
+ },
+ },
+ pink: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.pink.700}',
+ _dark: '{colors.pink.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.pink.100}',
+ _dark: '{colors.pink.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.pink.200}',
+ _dark: '{colors.pink.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.pink.300}',
+ _dark: '{colors.pink.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.pink.600}',
+ _dark: '{colors.pink.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.pink.600}',
+ _dark: '{colors.pink.600}',
+ },
+ },
+ },
+ cyan: {
+ contrast: {
+ value: {
+ _light: 'white',
+ _dark: 'white',
+ },
+ },
+ fg: {
+ value: {
+ _light: '{colors.cyan.700}',
+ _dark: '{colors.cyan.300}',
+ },
+ },
+ subtle: {
+ value: {
+ _light: '{colors.cyan.100}',
+ _dark: '{colors.cyan.900}',
+ },
+ },
+ muted: {
+ value: {
+ _light: '{colors.cyan.200}',
+ _dark: '{colors.cyan.800}',
+ },
+ },
+ emphasized: {
+ value: {
+ _light: '{colors.cyan.300}',
+ _dark: '{colors.cyan.700}',
+ },
+ },
+ solid: {
+ value: {
+ _light: '{colors.cyan.600}',
+ _dark: '{colors.cyan.600}',
+ },
+ },
+ focusRing: {
+ value: {
+ _light: '{colors.cyan.600}',
+ _dark: '{colors.cyan.600}',
+ },
+ },
+ },
+ },
+ shadows: {
+ xs: {
+ value: {
+ _light:
+ '0px 1px 2px {colors.gray.900/10}, 0px 0px 1px {colors.gray.900/20}',
+ _dark:
+ '0px 1px 1px {black/64}, 0px 0px 1px inset {colors.gray.300/20}',
+ },
+ },
+ sm: {
+ value: {
+ _light:
+ '0px 2px 4px {colors.gray.900/10}, 0px 0px 1px {colors.gray.900/30}',
+ _dark:
+ '0px 2px 4px {black/64}, 0px 0px 1px inset {colors.gray.300/30}',
+ },
+ },
+ md: {
+ value: {
+ _light:
+ '0px 4px 8px {colors.gray.900/10}, 0px 0px 1px {colors.gray.900/30}',
+ _dark:
+ '0px 4px 8px {black/64}, 0px 0px 1px inset {colors.gray.300/30}',
+ },
+ },
+ lg: {
+ value: {
+ _light:
+ '0px 8px 16px {colors.gray.900/10}, 0px 0px 1px {colors.gray.900/30}',
+ _dark:
+ '0px 8px 16px {black/64}, 0px 0px 1px inset {colors.gray.300/30}',
+ },
+ },
+ xl: {
+ value: {
+ _light:
+ '0px 16px 24px {colors.gray.900/10}, 0px 0px 1px {colors.gray.900/30}',
+ _dark:
+ '0px 16px 24px {black/64}, 0px 0px 1px inset {colors.gray.300/30}',
+ },
+ },
+ '2xl': {
+ value: {
+ _light:
+ '0px 24px 40px {colors.gray.900/16}, 0px 0px 1px {colors.gray.900/30}',
+ _dark:
+ '0px 24px 40px {black/64}, 0px 0px 1px inset {colors.gray.300/30}',
+ },
+ },
+ inner: {
+ value: {
+ _light: 'inset 0 2px 4px 0 {black/5}',
+ _dark: 'inset 0 2px 4px 0 black',
+ },
+ },
+ inset: {
+ value: {
+ _light: 'inset 0 0 0 1px {black/5}',
+ _dark: 'inset 0 0 0 1px {colors.gray.300/5}',
+ },
+ },
+ },
+ radii: {
+ l1: {
+ value: '{radii.xs}',
+ },
+ l2: {
+ value: '{radii.sm}',
+ },
+ l3: {
+ value: '{radii.md}',
+ },
+ },
+ },
+ recipes: {
+ badge: {
+ className: 'chakra-badge',
+ base: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ borderRadius: 'l2',
+ gap: '1',
+ fontWeight: 'medium',
+ fontVariantNumeric: 'tabular-nums',
+ whiteSpace: 'nowrap',
+ userSelect: 'none',
+ },
+ variants: {
+ variant: {
+ solid: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ subtle: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ },
+ outline: {
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ surface: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ plain: {
+ color: 'colorPalette.fg',
+ },
+ },
+ size: {
+ xs: {
+ textStyle: '2xs',
+ px: '1',
+ minH: '4',
+ },
+ sm: {
+ textStyle: 'xs',
+ px: '1.5',
+ minH: '5',
+ },
+ md: {
+ textStyle: 'sm',
+ px: '2',
+ minH: '6',
+ },
+ lg: {
+ textStyle: 'sm',
+ px: '2.5',
+ minH: '7',
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'subtle',
+ size: 'sm',
+ },
+ },
+ button: {
+ className: 'chakra-button',
+ base: {
+ display: 'inline-flex',
+ appearance: 'none',
+ alignItems: 'center',
+ justifyContent: 'center',
+ userSelect: 'none',
+ position: 'relative',
+ borderRadius: 'l2',
+ whiteSpace: 'nowrap',
+ verticalAlign: 'middle',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ cursor: 'button',
+ flexShrink: '0',
+ outline: '0',
+ lineHeight: '1.2',
+ isolation: 'isolate',
+ fontWeight: 'medium',
+ transitionProperty: 'common',
+ transitionDuration: 'moderate',
+ focusVisibleRing: 'outside',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ _icon: {
+ flexShrink: '0',
+ },
+ },
+ variants: {
+ size: {
+ '2xs': {
+ h: '6',
+ minW: '6',
+ textStyle: 'xs',
+ px: '2',
+ gap: '1',
+ _icon: {
+ width: '3.5',
+ height: '3.5',
+ },
+ },
+ xs: {
+ h: '8',
+ minW: '8',
+ textStyle: 'xs',
+ px: '2.5',
+ gap: '1',
+ _icon: {
+ width: '4',
+ height: '4',
+ },
+ },
+ sm: {
+ h: '9',
+ minW: '9',
+ px: '3.5',
+ textStyle: 'sm',
+ gap: '2',
+ _icon: {
+ width: '4',
+ height: '4',
+ },
+ },
+ md: {
+ h: '10',
+ minW: '10',
+ textStyle: 'sm',
+ px: '4',
+ gap: '2',
+ _icon: {
+ width: '5',
+ height: '5',
+ },
+ },
+ lg: {
+ h: '11',
+ minW: '11',
+ textStyle: 'md',
+ px: '5',
+ gap: '3',
+ _icon: {
+ width: '5',
+ height: '5',
+ },
+ },
+ xl: {
+ h: '12',
+ minW: '12',
+ textStyle: 'md',
+ px: '5',
+ gap: '2.5',
+ _icon: {
+ width: '5',
+ height: '5',
+ },
+ },
+ '2xl': {
+ h: '16',
+ minW: '16',
+ textStyle: 'lg',
+ px: '7',
+ gap: '3',
+ _icon: {
+ width: '6',
+ height: '6',
+ },
+ },
+ },
+ variant: {
+ solid: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ _hover: {
+ bg: 'colorPalette.solid/90',
+ },
+ _expanded: {
+ bg: 'colorPalette.solid/90',
+ },
+ },
+ subtle: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ _hover: {
+ bg: 'colorPalette.muted',
+ },
+ _expanded: {
+ bg: 'colorPalette.muted',
+ },
+ },
+ surface: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ shadow: '0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ _hover: {
+ bg: 'colorPalette.muted',
+ },
+ _expanded: {
+ bg: 'colorPalette.muted',
+ },
+ },
+ outline: {
+ borderWidth: '1px',
+ borderColor: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ _hover: {
+ bg: 'colorPalette.subtle',
+ },
+ _expanded: {
+ bg: 'colorPalette.subtle',
+ },
+ },
+ ghost: {
+ color: 'colorPalette.fg',
+ _hover: {
+ bg: 'colorPalette.subtle',
+ },
+ _expanded: {
+ bg: 'colorPalette.subtle',
+ },
+ },
+ plain: {
+ color: 'colorPalette.fg',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'solid',
+ },
+ },
+ code: {
+ className: 'chakra-code',
+ base: {
+ fontFamily: 'mono',
+ alignItems: 'center',
+ display: 'inline-flex',
+ borderRadius: 'l2',
+ },
+ variants: {
+ variant: {
+ solid: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ subtle: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ },
+ outline: {
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ surface: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ plain: {
+ color: 'colorPalette.fg',
+ },
+ },
+ size: {
+ xs: {
+ textStyle: '2xs',
+ px: '1',
+ minH: '4',
+ },
+ sm: {
+ textStyle: 'xs',
+ px: '1.5',
+ minH: '5',
+ },
+ md: {
+ textStyle: 'sm',
+ px: '2',
+ minH: '6',
+ },
+ lg: {
+ textStyle: 'sm',
+ px: '2.5',
+ minH: '7',
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'subtle',
+ size: 'sm',
+ },
+ },
+ container: {
+ className: 'chakra-container',
+ base: {
+ position: 'relative',
+ maxWidth: '8xl',
+ w: '100%',
+ mx: 'auto',
+ px: {
+ base: '4',
+ md: '6',
+ lg: '8',
+ },
+ },
+ variants: {
+ centerContent: {
+ true: {
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ },
+ },
+ fluid: {
+ true: {
+ maxWidth: 'full',
+ },
+ },
+ },
+ },
+ heading: {
+ className: 'chakra-heading',
+ base: {
+ fontFamily: 'heading',
+ fontWeight: 'semibold',
+ },
+ variants: {
+ size: {
+ xs: {
+ textStyle: 'xs',
+ },
+ sm: {
+ textStyle: 'sm',
+ },
+ md: {
+ textStyle: 'md',
+ },
+ lg: {
+ textStyle: 'lg',
+ },
+ xl: {
+ textStyle: 'xl',
+ },
+ '2xl': {
+ textStyle: '2xl',
+ },
+ '3xl': {
+ textStyle: '3xl',
+ },
+ '4xl': {
+ textStyle: '4xl',
+ },
+ '5xl': {
+ textStyle: '5xl',
+ },
+ '6xl': {
+ textStyle: '6xl',
+ },
+ '7xl': {
+ textStyle: '7xl',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'xl',
+ },
+ },
+ input: {
+ className: 'chakra-input',
+ base: {
+ width: '100%',
+ minWidth: '0',
+ outline: '0',
+ position: 'relative',
+ appearance: 'none',
+ textAlign: 'start',
+ borderRadius: 'l2',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ height: 'var(--input-height)',
+ minW: 'var(--input-height)',
+ '--focus-color': 'colors.colorPalette.focusRing',
+ '--error-color': 'colors.border.error',
+ _invalid: {
+ focusRingColor: 'var(--error-color)',
+ borderColor: 'var(--error-color)',
+ },
+ },
+ variants: {
+ size: {
+ '2xs': {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.7',
+ },
+ xs: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.8',
+ },
+ sm: {
+ textStyle: 'sm',
+ px: '2.5',
+ '--input-height': 'sizes.9',
+ },
+ md: {
+ textStyle: 'sm',
+ px: '3',
+ '--input-height': 'sizes.10',
+ },
+ lg: {
+ textStyle: 'md',
+ px: '4',
+ '--input-height': 'sizes.11',
+ },
+ xl: {
+ textStyle: 'md',
+ px: '4.5',
+ '--input-height': 'sizes.12',
+ },
+ '2xl': {
+ textStyle: 'lg',
+ px: '5',
+ '--input-height': 'sizes.16',
+ },
+ },
+ variant: {
+ outline: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ focusVisibleRing: 'inside',
+ },
+ subtle: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ focusVisibleRing: 'inside',
+ },
+ flushed: {
+ bg: 'transparent',
+ borderBottomWidth: '1px',
+ borderBottomColor: 'border',
+ borderRadius: '0',
+ px: '0',
+ _focusVisible: {
+ borderColor: 'var(--focus-color)',
+ boxShadow: '0px 1px 0px 0px var(--focus-color)',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ inputAddon: {
+ className: 'chakra-input-addon',
+ base: {
+ flex: '0 0 auto',
+ width: 'auto',
+ display: 'flex',
+ alignItems: 'center',
+ whiteSpace: 'nowrap',
+ alignSelf: 'stretch',
+ borderRadius: 'l2',
+ },
+ variants: {
+ size: {
+ '2xs': {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.7',
+ },
+ xs: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.8',
+ },
+ sm: {
+ textStyle: 'sm',
+ px: '2.5',
+ '--input-height': 'sizes.9',
+ },
+ md: {
+ textStyle: 'sm',
+ px: '3',
+ '--input-height': 'sizes.10',
+ },
+ lg: {
+ textStyle: 'md',
+ px: '4',
+ '--input-height': 'sizes.11',
+ },
+ xl: {
+ textStyle: 'md',
+ px: '4.5',
+ '--input-height': 'sizes.12',
+ },
+ '2xl': {
+ textStyle: 'lg',
+ px: '5',
+ '--input-height': 'sizes.16',
+ },
+ },
+ variant: {
+ outline: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ bg: 'bg.muted',
+ },
+ subtle: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.emphasized',
+ },
+ flushed: {
+ borderBottom: '1px solid',
+ borderColor: 'inherit',
+ borderRadius: '0',
+ px: '0',
+ bg: 'transparent',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ kbd: {
+ className: 'chakra-kbd',
+ base: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ fontWeight: 'medium',
+ fontFamily: 'mono',
+ flexShrink: '0',
+ whiteSpace: 'nowrap',
+ wordSpacing: '-0.5em',
+ userSelect: 'none',
+ px: '1',
+ borderRadius: 'l2',
+ },
+ variants: {
+ variant: {
+ raised: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ borderWidth: '1px',
+ borderBottomWidth: '2px',
+ borderColor: 'colorPalette.muted',
+ },
+ outline: {
+ borderWidth: '1px',
+ color: 'colorPalette.fg',
+ },
+ subtle: {
+ bg: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ },
+ plain: {
+ color: 'colorPalette.fg',
+ },
+ },
+ size: {
+ sm: {
+ textStyle: 'xs',
+ height: '4.5',
+ },
+ md: {
+ textStyle: 'sm',
+ height: '5',
+ },
+ lg: {
+ textStyle: 'md',
+ height: '6',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'raised',
+ },
+ },
+ link: {
+ className: 'chakra-link',
+ base: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ outline: 'none',
+ gap: '1.5',
+ cursor: 'pointer',
+ borderRadius: 'l1',
+ focusRing: 'outside',
+ },
+ variants: {
+ variant: {
+ underline: {
+ color: 'colorPalette.fg',
+ textDecoration: 'underline',
+ textUnderlineOffset: '3px',
+ textDecorationColor: 'currentColor/20',
+ },
+ plain: {
+ color: 'colorPalette.fg',
+ _hover: {
+ textDecoration: 'underline',
+ textUnderlineOffset: '3px',
+ textDecorationColor: 'currentColor/20',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'plain',
+ },
+ },
+ mark: {
+ className: 'chakra-mark',
+ base: {
+ bg: 'transparent',
+ color: 'inherit',
+ whiteSpace: 'nowrap',
+ },
+ variants: {
+ variant: {
+ subtle: {
+ bg: 'colorPalette.subtle',
+ color: 'inherit',
+ },
+ solid: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ text: {
+ fontWeight: 'medium',
+ },
+ plain: {},
+ },
+ },
+ },
+ separator: {
+ className: 'chakra-separator',
+ base: {
+ display: 'block',
+ borderColor: 'border',
+ },
+ variants: {
+ variant: {
+ solid: {
+ borderStyle: 'solid',
+ },
+ dashed: {
+ borderStyle: 'dashed',
+ },
+ dotted: {
+ borderStyle: 'dotted',
+ },
+ },
+ orientation: {
+ vertical: {
+ height: '100%',
+ borderInlineStartWidth: 'var(--separator-thickness)',
+ },
+ horizontal: {
+ width: '100%',
+ borderTopWidth: 'var(--separator-thickness)',
+ },
+ },
+ size: {
+ xs: {
+ '--separator-thickness': '0.5px',
+ },
+ sm: {
+ '--separator-thickness': '1px',
+ },
+ md: {
+ '--separator-thickness': '2px',
+ },
+ lg: {
+ '--separator-thickness': '3px',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'sm',
+ variant: 'solid',
+ orientation: 'horizontal',
+ },
+ },
+ skeleton: {
+ className: 'chakra-skeleton',
+ base: {},
+ variants: {
+ loading: {
+ true: {
+ borderRadius: 'l2',
+ boxShadow: 'none',
+ backgroundClip: 'padding-box',
+ cursor: 'default',
+ color: 'transparent',
+ pointerEvents: 'none',
+ userSelect: 'none',
+ flexShrink: '0',
+ '&::before, &::after, *': {
+ visibility: 'hidden',
+ },
+ },
+ false: {
+ background: 'unset',
+ animation:
+ 'fade-in var(--fade-duration, 0.1s) ease-out !important',
+ },
+ },
+ variant: {
+ pulse: {
+ background: 'bg.emphasized',
+ animation: 'pulse',
+ animationDuration: 'var(--duration, 1.2s)',
+ },
+ shine: {
+ '--animate-from': '200%',
+ '--animate-to': '-200%',
+ '--start-color': 'colors.bg.muted',
+ '--end-color': 'colors.bg.emphasized',
+ backgroundImage:
+ 'linear-gradient(270deg,var(--start-color),var(--end-color),var(--end-color),var(--start-color))',
+ backgroundSize: '400% 100%',
+ animation: 'bg-position var(--duration, 5s) ease-in-out infinite',
+ },
+ none: {
+ animation: 'none',
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'pulse',
+ loading: true,
+ },
+ },
+ skipNavLink: {
+ className: 'chakra-skip-nav',
+ base: {
+ display: 'inline-flex',
+ bg: 'bg.panel',
+ padding: '2.5',
+ borderRadius: 'l2',
+ fontWeight: 'semibold',
+ focusVisibleRing: 'outside',
+ textStyle: 'sm',
+ userSelect: 'none',
+ border: '0',
+ height: '1px',
+ width: '1px',
+ margin: '-1px',
+ outline: '0',
+ overflow: 'hidden',
+ position: 'absolute',
+ clip: 'rect(0 0 0 0)',
+ _focusVisible: {
+ clip: 'auto',
+ width: 'auto',
+ height: 'auto',
+ position: 'fixed',
+ top: '6',
+ insetStart: '6',
+ },
+ },
+ },
+ spinner: {
+ className: 'chakra-spinner',
+ base: {
+ display: 'inline-block',
+ borderColor: 'currentColor',
+ borderStyle: 'solid',
+ borderWidth: '2px',
+ borderRadius: 'full',
+ width: 'var(--spinner-size)',
+ height: 'var(--spinner-size)',
+ animation: 'spin',
+ animationDuration: 'slowest',
+ '--spinner-track-color': 'transparent',
+ borderBottomColor: 'var(--spinner-track-color)',
+ borderInlineStartColor: 'var(--spinner-track-color)',
+ },
+ variants: {
+ size: {
+ inherit: {
+ '--spinner-size': '1em',
+ },
+ xs: {
+ '--spinner-size': 'sizes.3',
+ },
+ sm: {
+ '--spinner-size': 'sizes.4',
+ },
+ md: {
+ '--spinner-size': 'sizes.5',
+ },
+ lg: {
+ '--spinner-size': 'sizes.8',
+ },
+ xl: {
+ '--spinner-size': 'sizes.10',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ textarea: {
+ className: 'chakra-textarea',
+ base: {
+ width: '100%',
+ minWidth: '0',
+ outline: '0',
+ position: 'relative',
+ appearance: 'none',
+ textAlign: 'start',
+ borderRadius: 'l2',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ '--focus-color': 'colors.colorPalette.focusRing',
+ '--error-color': 'colors.border.error',
+ _invalid: {
+ focusRingColor: 'var(--error-color)',
+ borderColor: 'var(--error-color)',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ textStyle: 'xs',
+ px: '2',
+ py: '1.5',
+ scrollPaddingBottom: '1.5',
+ },
+ sm: {
+ textStyle: 'sm',
+ px: '2.5',
+ py: '2',
+ scrollPaddingBottom: '2',
+ },
+ md: {
+ textStyle: 'sm',
+ px: '3',
+ py: '2',
+ scrollPaddingBottom: '2',
+ },
+ lg: {
+ textStyle: 'md',
+ px: '4',
+ py: '3',
+ scrollPaddingBottom: '3',
+ },
+ xl: {
+ textStyle: 'md',
+ px: '4.5',
+ py: '3.5',
+ scrollPaddingBottom: '3.5',
+ },
+ },
+ variant: {
+ outline: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ focusVisibleRing: 'inside',
+ },
+ subtle: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ focusVisibleRing: 'inside',
+ },
+ flushed: {
+ bg: 'transparent',
+ borderBottomWidth: '1px',
+ borderBottomColor: 'border',
+ borderRadius: '0',
+ px: '0',
+ _focusVisible: {
+ borderColor: 'var(--focus-color)',
+ boxShadow: '0px 1px 0px 0px var(--focus-color)',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ icon: {
+ className: 'chakra-icon',
+ base: {
+ display: 'inline-block',
+ lineHeight: '1em',
+ flexShrink: '0',
+ color: 'currentcolor',
+ verticalAlign: 'middle',
+ width: 'var(--icon-size)',
+ height: 'var(--icon-size)',
+ },
+ variants: {
+ size: {
+ inherit: {
+ '--icon-size': '1em',
+ },
+ xs: {
+ '--icon-size': 'sizes.3',
+ },
+ sm: {
+ '--icon-size': 'sizes.4',
+ },
+ md: {
+ '--icon-size': 'sizes.5',
+ },
+ lg: {
+ '--icon-size': 'sizes.6',
+ },
+ xl: {
+ '--icon-size': 'sizes.7',
+ },
+ '2xl': {
+ '--icon-size': 'sizes.8',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'inherit',
+ },
+ },
+ checkmark: {
+ className: 'chakra-checkmark',
+ base: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ color: 'white',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ borderRadius: 'l1',
+ focusVisibleRing: 'outside',
+ _icon: {
+ boxSize: 'full',
+ },
+ _invalid: {
+ colorPalette: 'red',
+ borderColor: 'border.error',
+ },
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ boxSize: '3',
+ },
+ sm: {
+ boxSize: '4',
+ },
+ md: {
+ boxSize: '5',
+ p: '0.5',
+ },
+ lg: {
+ boxSize: '6',
+ p: '0.5',
+ },
+ },
+ variant: {
+ solid: {
+ borderColor: 'border',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ outline: {
+ borderColor: 'border',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ subtle: {
+ bg: 'colorPalette.muted',
+ borderColor: 'colorPalette.muted',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ color: 'colorPalette.fg',
+ },
+ },
+ plain: {
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ color: 'colorPalette.fg',
+ },
+ },
+ inverted: {
+ borderColor: 'border',
+ color: 'colorPalette.fg',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'solid',
+ size: 'md',
+ },
+ },
+ radiomark: {
+ className: 'chakra-radiomark',
+ base: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: 0,
+ verticalAlign: 'top',
+ color: 'white',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ borderRadius: 'full',
+ cursor: 'radio',
+ _focusVisible: {
+ outline: '2px solid',
+ outlineColor: 'colorPalette.focusRing',
+ outlineOffset: '2px',
+ },
+ _invalid: {
+ colorPalette: 'red',
+ borderColor: 'red.500',
+ },
+ _disabled: {
+ opacity: '0.5',
+ cursor: 'disabled',
+ },
+ '& .dot': {
+ height: '100%',
+ width: '100%',
+ borderRadius: 'full',
+ bg: 'currentColor',
+ scale: '0.4',
+ },
+ },
+ variants: {
+ variant: {
+ solid: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ _checked: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ subtle: {
+ borderWidth: '1px',
+ bg: 'colorPalette.muted',
+ borderColor: 'colorPalette.muted',
+ color: 'transparent',
+ _checked: {
+ color: 'colorPalette.fg',
+ },
+ },
+ outline: {
+ borderWidth: '1px',
+ borderColor: 'inherit',
+ _checked: {
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.solid',
+ },
+ '& .dot': {
+ scale: '0.6',
+ },
+ },
+ inverted: {
+ bg: 'bg',
+ borderWidth: '1px',
+ borderColor: 'inherit',
+ _checked: {
+ color: 'colorPalette.solid',
+ borderColor: 'currentcolor',
+ },
+ },
+ },
+ size: {
+ xs: {
+ boxSize: '3',
+ },
+ sm: {
+ boxSize: '4',
+ },
+ md: {
+ boxSize: '5',
+ },
+ lg: {
+ boxSize: '6',
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'solid',
+ size: 'md',
+ },
+ },
+ colorSwatch: {
+ className: 'color-swatch',
+ base: {
+ boxSize: 'var(--swatch-size)',
+ shadow: 'inset 0 0 0 1px rgba(0, 0, 0, 0.1)',
+ '--checker-size': '8px',
+ '--checker-bg': 'colors.bg',
+ '--checker-fg': 'colors.bg.emphasized',
+ background:
+ 'linear-gradient(var(--color), var(--color)), repeating-conic-gradient(var(--checker-fg) 0%, var(--checker-fg) 25%, var(--checker-bg) 0%, var(--checker-bg) 50%) 0% 50% / var(--checker-size) var(--checker-size) !important',
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ },
+ variants: {
+ size: {
+ '2xs': {
+ '--swatch-size': 'sizes.3.5',
+ },
+ xs: {
+ '--swatch-size': 'sizes.4',
+ },
+ sm: {
+ '--swatch-size': 'sizes.4.5',
+ },
+ md: {
+ '--swatch-size': 'sizes.5',
+ },
+ lg: {
+ '--swatch-size': 'sizes.6',
+ },
+ xl: {
+ '--swatch-size': 'sizes.7',
+ },
+ '2xl': {
+ '--swatch-size': 'sizes.8',
+ },
+ inherit: {
+ '--swatch-size': 'inherit',
+ },
+ full: {
+ '--swatch-size': '100%',
+ },
+ },
+ shape: {
+ square: {
+ borderRadius: 'none',
+ },
+ circle: {
+ borderRadius: 'full',
+ },
+ rounded: {
+ borderRadius: 'l1',
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ shape: 'rounded',
+ },
+ },
+ },
+ slotRecipes: {
+ accordion: {
+ className: 'chakra-accordion',
+ slots: [
+ 'root',
+ 'item',
+ 'itemTrigger',
+ 'itemContent',
+ 'itemIndicator',
+ 'itemBody',
+ ],
+ base: {
+ root: {
+ width: 'full',
+ '--accordion-radius': 'radii.l2',
+ },
+ item: {
+ overflowAnchor: 'none',
+ },
+ itemTrigger: {
+ display: 'flex',
+ alignItems: 'center',
+ width: 'full',
+ outline: '0',
+ gap: '3',
+ fontWeight: 'medium',
+ borderRadius: 'var(--accordion-radius)',
+ _focusVisible: {
+ outline: '2px solid',
+ outlineColor: 'colorPalette.focusRing',
+ },
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ },
+ itemBody: {
+ pt: 'var(--accordion-padding-y)',
+ pb: 'calc(var(--accordion-padding-y) * 2)',
+ },
+ itemContent: {
+ overflow: 'hidden',
+ borderRadius: 'var(--accordion-radius)',
+ _open: {
+ animationName: 'expand-height, fade-in',
+ animationDuration: 'moderate',
+ },
+ _closed: {
+ animationName: 'collapse-height, fade-out',
+ animationDuration: 'moderate',
+ },
+ },
+ itemIndicator: {
+ transition: 'rotate 0.2s',
+ transformOrigin: 'center',
+ color: 'fg.subtle',
+ _open: {
+ rotate: '180deg',
+ },
+ _icon: {
+ width: '1.2em',
+ height: '1.2em',
+ },
+ },
+ },
+ variants: {
+ variant: {
+ outline: {
+ item: {
+ borderBottomWidth: '1px',
+ },
+ },
+ subtle: {
+ itemTrigger: {
+ px: 'var(--accordion-padding-x)',
+ },
+ itemContent: {
+ px: 'var(--accordion-padding-x)',
+ },
+ item: {
+ borderRadius: 'var(--accordion-radius)',
+ _open: {
+ bg: 'colorPalette.subtle',
+ },
+ },
+ },
+ enclosed: {
+ root: {
+ borderWidth: '1px',
+ borderRadius: 'var(--accordion-radius)',
+ divideY: '1px',
+ overflow: 'hidden',
+ },
+ itemTrigger: {
+ px: 'var(--accordion-padding-x)',
+ },
+ itemContent: {
+ px: 'var(--accordion-padding-x)',
+ },
+ item: {
+ _open: {
+ bg: 'bg.subtle',
+ },
+ },
+ },
+ plain: {},
+ },
+ size: {
+ sm: {
+ root: {
+ '--accordion-padding-x': 'spacing.3',
+ '--accordion-padding-y': 'spacing.2',
+ },
+ itemTrigger: {
+ textStyle: 'sm',
+ py: 'var(--accordion-padding-y)',
+ },
+ },
+ md: {
+ root: {
+ '--accordion-padding-x': 'spacing.4',
+ '--accordion-padding-y': 'spacing.2',
+ },
+ itemTrigger: {
+ textStyle: 'md',
+ py: 'var(--accordion-padding-y)',
+ },
+ },
+ lg: {
+ root: {
+ '--accordion-padding-x': 'spacing.4.5',
+ '--accordion-padding-y': 'spacing.2.5',
+ },
+ itemTrigger: {
+ textStyle: 'lg',
+ py: 'var(--accordion-padding-y)',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ actionBar: {
+ className: 'chakra-action-bar',
+ slots: [
+ 'positioner',
+ 'content',
+ 'separator',
+ 'selectionTrigger',
+ 'closeTrigger',
+ ],
+ base: {
+ positioner: {
+ position: 'fixed',
+ display: 'flex',
+ justifyContent: 'center',
+ pointerEvents: 'none',
+ insetInline: '0',
+ top: 'unset',
+ bottom: 'calc(env(safe-area-inset-bottom) + 20px)',
+ },
+ content: {
+ bg: 'bg.panel',
+ shadow: 'md',
+ display: 'flex',
+ alignItems: 'center',
+ gap: '3',
+ borderRadius: 'l3',
+ py: '2.5',
+ px: '3',
+ pointerEvents: 'auto',
+ translate: 'calc(-1 * var(--scrollbar-width) / 2) 0px',
+ _open: {
+ animationName: 'slide-from-bottom, fade-in',
+ animationDuration: 'moderate',
+ },
+ _closed: {
+ animationName: 'slide-to-bottom, fade-out',
+ animationDuration: 'faster',
+ },
+ },
+ separator: {
+ width: '1px',
+ height: '5',
+ bg: 'border',
+ },
+ selectionTrigger: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ gap: '2',
+ alignSelf: 'stretch',
+ textStyle: 'sm',
+ px: '4',
+ py: '1',
+ borderRadius: 'l2',
+ borderWidth: '1px',
+ borderStyle: 'dashed',
+ },
+ },
+ },
+ alert: {
+ slots: ['title', 'description', 'root', 'indicator', 'content'],
+ className: 'chakra-alert',
+ base: {
+ root: {
+ width: 'full',
+ display: 'flex',
+ alignItems: 'flex-start',
+ position: 'relative',
+ borderRadius: 'l3',
+ },
+ title: {
+ fontWeight: 'medium',
+ },
+ description: {
+ display: 'inline',
+ },
+ indicator: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ width: '1em',
+ height: '1em',
+ _icon: {
+ boxSize: 'full',
+ },
+ },
+ content: {
+ display: 'flex',
+ flex: '1',
+ gap: '1',
+ },
+ },
+ variants: {
+ status: {
+ info: {
+ root: {
+ colorPalette: 'blue',
+ },
+ },
+ warning: {
+ root: {
+ colorPalette: 'orange',
+ },
+ },
+ success: {
+ root: {
+ colorPalette: 'green',
+ },
+ },
+ error: {
+ root: {
+ colorPalette: 'red',
+ },
+ },
+ neutral: {
+ root: {
+ colorPalette: 'gray',
+ },
+ },
+ },
+ inline: {
+ true: {
+ content: {
+ display: 'inline-flex',
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ },
+ false: {
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ },
+ },
+ },
+ variant: {
+ subtle: {
+ root: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ },
+ },
+ surface: {
+ root: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ indicator: {
+ color: 'colorPalette.fg',
+ },
+ },
+ outline: {
+ root: {
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ indicator: {
+ color: 'colorPalette.fg',
+ },
+ },
+ solid: {
+ root: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ indicator: {
+ color: 'colorPalette.contrast',
+ },
+ },
+ },
+ size: {
+ sm: {
+ root: {
+ gap: '2',
+ px: '3',
+ py: '3',
+ textStyle: 'xs',
+ },
+ indicator: {
+ textStyle: 'lg',
+ },
+ },
+ md: {
+ root: {
+ gap: '3',
+ px: '4',
+ py: '4',
+ textStyle: 'sm',
+ },
+ indicator: {
+ textStyle: 'xl',
+ },
+ },
+ lg: {
+ root: {
+ gap: '3',
+ px: '4',
+ py: '4',
+ textStyle: 'md',
+ },
+ indicator: {
+ textStyle: '2xl',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ status: 'info',
+ variant: 'subtle',
+ size: 'md',
+ inline: false,
+ },
+ },
+ avatar: {
+ slots: ['root', 'image', 'fallback'],
+ className: 'chakra-avatar',
+ base: {
+ root: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ fontWeight: 'medium',
+ position: 'relative',
+ verticalAlign: 'top',
+ flexShrink: '0',
+ userSelect: 'none',
+ width: 'var(--avatar-size)',
+ height: 'var(--avatar-size)',
+ fontSize: 'var(--avatar-font-size)',
+ borderRadius: 'var(--avatar-radius)',
+ '&[data-group-item]': {
+ borderWidth: '2px',
+ borderColor: 'bg',
+ },
+ },
+ image: {
+ width: '100%',
+ height: '100%',
+ objectFit: 'cover',
+ borderRadius: 'var(--avatar-radius)',
+ },
+ fallback: {
+ lineHeight: '1',
+ textTransform: 'uppercase',
+ fontWeight: 'medium',
+ fontSize: 'var(--avatar-font-size)',
+ borderRadius: 'var(--avatar-radius)',
+ },
+ },
+ variants: {
+ size: {
+ full: {
+ root: {
+ '--avatar-size': '100%',
+ '--avatar-font-size': '100%',
+ },
+ },
+ '2xs': {
+ root: {
+ '--avatar-font-size': 'fontSizes.2xs',
+ '--avatar-size': 'sizes.6',
+ },
+ },
+ xs: {
+ root: {
+ '--avatar-font-size': 'fontSizes.xs',
+ '--avatar-size': 'sizes.8',
+ },
+ },
+ sm: {
+ root: {
+ '--avatar-font-size': 'fontSizes.sm',
+ '--avatar-size': 'sizes.9',
+ },
+ },
+ md: {
+ root: {
+ '--avatar-font-size': 'fontSizes.md',
+ '--avatar-size': 'sizes.10',
+ },
+ },
+ lg: {
+ root: {
+ '--avatar-font-size': 'fontSizes.md',
+ '--avatar-size': 'sizes.11',
+ },
+ },
+ xl: {
+ root: {
+ '--avatar-font-size': 'fontSizes.lg',
+ '--avatar-size': 'sizes.12',
+ },
+ },
+ '2xl': {
+ root: {
+ '--avatar-font-size': 'fontSizes.xl',
+ '--avatar-size': 'sizes.16',
+ },
+ },
+ },
+ variant: {
+ solid: {
+ root: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ },
+ subtle: {
+ root: {
+ bg: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ },
+ },
+ outline: {
+ root: {
+ color: 'colorPalette.fg',
+ borderWidth: '1px',
+ borderColor: 'colorPalette.muted',
+ },
+ },
+ },
+ shape: {
+ square: {},
+ rounded: {
+ root: {
+ '--avatar-radius': 'radii.l3',
+ },
+ },
+ full: {
+ root: {
+ '--avatar-radius': 'radii.full',
+ },
+ },
+ },
+ borderless: {
+ true: {
+ root: {
+ '&[data-group-item]': {
+ borderWidth: '0px',
+ },
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ shape: 'full',
+ variant: 'subtle',
+ },
+ },
+ blockquote: {
+ className: 'chakra-blockquote',
+ slots: ['root', 'icon', 'content', 'caption'],
+ base: {
+ root: {
+ position: 'relative',
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '2',
+ },
+ caption: {
+ textStyle: 'sm',
+ color: 'fg.muted',
+ },
+ icon: {
+ boxSize: '5',
+ },
+ },
+ variants: {
+ justify: {
+ start: {
+ root: {
+ alignItems: 'flex-start',
+ textAlign: 'start',
+ },
+ },
+ center: {
+ root: {
+ alignItems: 'center',
+ textAlign: 'center',
+ },
+ },
+ end: {
+ root: {
+ alignItems: 'flex-end',
+ textAlign: 'end',
+ },
+ },
+ },
+ variant: {
+ subtle: {
+ root: {
+ paddingX: '5',
+ borderStartWidth: '4px',
+ borderStartColor: 'colorPalette.muted',
+ },
+ icon: {
+ color: 'colorPalette.fg',
+ },
+ },
+ solid: {
+ root: {
+ paddingX: '5',
+ borderStartWidth: '4px',
+ borderStartColor: 'colorPalette.solid',
+ },
+ icon: {
+ color: 'colorPalette.solid',
+ },
+ },
+ plain: {
+ root: {
+ paddingX: '5',
+ },
+ icon: {
+ color: 'colorPalette.solid',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'subtle',
+ justify: 'start',
+ },
+ },
+ breadcrumb: {
+ className: 'chakra-breadcrumb',
+ slots: [
+ 'link',
+ 'currentLink',
+ 'item',
+ 'list',
+ 'root',
+ 'ellipsis',
+ 'separator',
+ ],
+ base: {
+ list: {
+ display: 'flex',
+ alignItems: 'center',
+ wordBreak: 'break-word',
+ color: 'fg.muted',
+ },
+ link: {
+ outline: '0',
+ textDecoration: 'none',
+ borderRadius: 'l1',
+ focusRing: 'outside',
+ display: 'inline-flex',
+ alignItems: 'center',
+ gap: '2',
+ },
+ item: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ },
+ separator: {
+ color: 'fg.muted',
+ opacity: '0.8',
+ _icon: {
+ boxSize: '1em',
+ },
+ },
+ ellipsis: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ _icon: {
+ boxSize: '1em',
+ },
+ },
+ },
+ variants: {
+ variant: {
+ underline: {
+ link: {
+ color: 'colorPalette.fg',
+ textDecoration: 'underline',
+ textUnderlineOffset: '0.2em',
+ textDecorationColor: 'colorPalette.muted',
+ },
+ currentLink: {
+ color: 'colorPalette.fg',
+ },
+ },
+ plain: {
+ link: {
+ color: 'fg.muted',
+ _hover: {
+ color: 'fg',
+ },
+ },
+ currentLink: {
+ color: 'fg',
+ },
+ },
+ },
+ size: {
+ sm: {
+ list: {
+ gap: '1',
+ textStyle: 'xs',
+ },
+ },
+ md: {
+ list: {
+ gap: '1.5',
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ list: {
+ gap: '2',
+ textStyle: 'md',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'plain',
+ size: 'md',
+ },
+ },
+ card: {
+ className: 'chakra-card',
+ slots: ['root', 'header', 'body', 'footer', 'title', 'description'],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ position: 'relative',
+ minWidth: '0',
+ wordWrap: 'break-word',
+ borderRadius: 'l3',
+ color: 'fg',
+ textAlign: 'start',
+ },
+ title: {
+ fontWeight: 'semibold',
+ },
+ description: {
+ color: 'fg.muted',
+ fontSize: 'sm',
+ },
+ header: {
+ paddingInline: 'var(--card-padding)',
+ paddingTop: 'var(--card-padding)',
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1.5',
+ },
+ body: {
+ padding: 'var(--card-padding)',
+ flex: '1',
+ display: 'flex',
+ flexDirection: 'column',
+ },
+ footer: {
+ display: 'flex',
+ alignItems: 'center',
+ gap: '2',
+ paddingInline: 'var(--card-padding)',
+ paddingBottom: 'var(--card-padding)',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ '--card-padding': 'spacing.4',
+ },
+ title: {
+ textStyle: 'md',
+ },
+ },
+ md: {
+ root: {
+ '--card-padding': 'spacing.6',
+ },
+ title: {
+ textStyle: 'lg',
+ },
+ },
+ lg: {
+ root: {
+ '--card-padding': 'spacing.7',
+ },
+ title: {
+ textStyle: 'xl',
+ },
+ },
+ },
+ variant: {
+ elevated: {
+ root: {
+ bg: 'bg.panel',
+ boxShadow: 'md',
+ },
+ },
+ outline: {
+ root: {
+ bg: 'bg.panel',
+ borderWidth: '1px',
+ borderColor: 'border',
+ },
+ },
+ subtle: {
+ root: {
+ bg: 'bg.muted',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'outline',
+ size: 'md',
+ },
+ },
+ checkbox: {
+ slots: ['root', 'label', 'control', 'indicator', 'group'],
+ className: 'chakra-checkbox',
+ base: {
+ root: {
+ display: 'inline-flex',
+ gap: '2',
+ alignItems: 'center',
+ verticalAlign: 'top',
+ position: 'relative',
+ },
+ control: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ color: 'white',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ borderRadius: 'l1',
+ focusVisibleRing: 'outside',
+ _icon: {
+ boxSize: 'full',
+ },
+ _invalid: {
+ colorPalette: 'red',
+ borderColor: 'border.error',
+ },
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ label: {
+ fontWeight: 'medium',
+ userSelect: 'none',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ root: {
+ gap: '1.5',
+ },
+ label: {
+ textStyle: 'xs',
+ },
+ control: {
+ boxSize: '3',
+ },
+ },
+ sm: {
+ root: {
+ gap: '2',
+ },
+ label: {
+ textStyle: 'sm',
+ },
+ control: {
+ boxSize: '4',
+ },
+ },
+ md: {
+ root: {
+ gap: '2.5',
+ },
+ label: {
+ textStyle: 'sm',
+ },
+ control: {
+ boxSize: '5',
+ p: '0.5',
+ },
+ },
+ lg: {
+ root: {
+ gap: '3',
+ },
+ label: {
+ textStyle: 'md',
+ },
+ control: {
+ boxSize: '6',
+ p: '0.5',
+ },
+ },
+ },
+ variant: {
+ outline: {
+ control: {
+ borderColor: 'border',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ solid: {
+ control: {
+ borderColor: 'border',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ subtle: {
+ control: {
+ bg: 'colorPalette.muted',
+ borderColor: 'colorPalette.muted',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ color: 'colorPalette.fg',
+ },
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'solid',
+ size: 'md',
+ },
+ },
+ checkboxCard: {
+ slots: [
+ 'root',
+ 'control',
+ 'label',
+ 'description',
+ 'addon',
+ 'indicator',
+ 'content',
+ ],
+ className: 'chakra-checkbox-card',
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ userSelect: 'none',
+ position: 'relative',
+ borderRadius: 'l2',
+ flex: '1',
+ focusVisibleRing: 'outside',
+ _disabled: {
+ opacity: '0.8',
+ borderColor: 'border.subtle',
+ },
+ _invalid: {
+ outline: '2px solid',
+ outlineColor: 'border.error',
+ },
+ },
+ control: {
+ display: 'inline-flex',
+ flex: '1',
+ position: 'relative',
+ borderRadius: 'inherit',
+ justifyContent: 'var(--checkbox-card-justify)',
+ alignItems: 'var(--checkbox-card-align)',
+ },
+ label: {
+ fontWeight: 'medium',
+ display: 'flex',
+ alignItems: 'center',
+ gap: '2',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ description: {
+ opacity: '0.64',
+ textStyle: 'sm',
+ },
+ addon: {
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ indicator: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ color: 'white',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ borderRadius: 'l1',
+ focusVisibleRing: 'outside',
+ _icon: {
+ boxSize: 'full',
+ },
+ _invalid: {
+ colorPalette: 'red',
+ borderColor: 'border.error',
+ },
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ flex: '1',
+ gap: '1',
+ justifyContent: 'var(--checkbox-card-justify)',
+ alignItems: 'var(--checkbox-card-align)',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ textStyle: 'sm',
+ },
+ control: {
+ padding: '3',
+ gap: '1.5',
+ },
+ addon: {
+ px: '3',
+ py: '1.5',
+ borderTopWidth: '1px',
+ },
+ indicator: {
+ boxSize: '4',
+ },
+ },
+ md: {
+ root: {
+ textStyle: 'sm',
+ },
+ control: {
+ padding: '4',
+ gap: '2.5',
+ },
+ addon: {
+ px: '4',
+ py: '2',
+ borderTopWidth: '1px',
+ },
+ indicator: {
+ boxSize: '5',
+ p: '0.5',
+ },
+ },
+ lg: {
+ root: {
+ textStyle: 'md',
+ },
+ control: {
+ padding: '4',
+ gap: '3.5',
+ },
+ addon: {
+ px: '4',
+ py: '2',
+ borderTopWidth: '1px',
+ },
+ indicator: {
+ boxSize: '6',
+ p: '0.5',
+ },
+ },
+ },
+ variant: {
+ surface: {
+ root: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ _checked: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.muted',
+ },
+ _disabled: {
+ bg: 'bg.muted',
+ },
+ },
+ indicator: {
+ borderColor: 'border',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ subtle: {
+ root: {
+ bg: 'bg.muted',
+ },
+ control: {
+ _checked: {
+ bg: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ },
+ },
+ indicator: {
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ color: 'colorPalette.fg',
+ },
+ },
+ },
+ outline: {
+ root: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ _checked: {
+ boxShadow: '0 0 0 1px var(--shadow-color)',
+ boxShadowColor: 'colorPalette.solid',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ indicator: {
+ borderColor: 'border',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ solid: {
+ root: {
+ borderWidth: '1px',
+ _checked: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ indicator: {
+ borderColor: 'border',
+ color: 'colorPalette.fg',
+ '&:is([data-state=checked], [data-state=indeterminate])': {
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ },
+ justify: {
+ start: {
+ root: {
+ '--checkbox-card-justify': 'flex-start',
+ },
+ },
+ end: {
+ root: {
+ '--checkbox-card-justify': 'flex-end',
+ },
+ },
+ center: {
+ root: {
+ '--checkbox-card-justify': 'center',
+ },
+ },
+ },
+ align: {
+ start: {
+ root: {
+ '--checkbox-card-align': 'flex-start',
+ },
+ content: {
+ textAlign: 'start',
+ },
+ },
+ end: {
+ root: {
+ '--checkbox-card-align': 'flex-end',
+ },
+ content: {
+ textAlign: 'end',
+ },
+ },
+ center: {
+ root: {
+ '--checkbox-card-align': 'center',
+ },
+ content: {
+ textAlign: 'center',
+ },
+ },
+ },
+ orientation: {
+ vertical: {
+ control: {
+ flexDirection: 'column',
+ },
+ },
+ horizontal: {
+ control: {
+ flexDirection: 'row',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ align: 'start',
+ orientation: 'horizontal',
+ },
+ },
+ collapsible: {
+ slots: ['root', 'trigger', 'content'],
+ className: 'chakra-collapsible',
+ base: {
+ content: {
+ overflow: 'hidden',
+ _open: {
+ animationName: 'expand-height, fade-in',
+ animationDuration: 'moderate',
+ },
+ _closed: {
+ animationName: 'collapse-height, fade-out',
+ animationDuration: 'moderate',
+ },
+ },
+ },
+ },
+ dataList: {
+ slots: ['root', 'item', 'itemLabel', 'itemValue'],
+ className: 'chakra-data-list',
+ base: {
+ itemLabel: {
+ display: 'flex',
+ alignItems: 'center',
+ gap: '1',
+ },
+ itemValue: {
+ display: 'flex',
+ minWidth: '0',
+ flex: '1',
+ },
+ },
+ variants: {
+ orientation: {
+ horizontal: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ },
+ item: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ gap: '4',
+ },
+ itemLabel: {
+ minWidth: '120px',
+ },
+ },
+ vertical: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ },
+ item: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1',
+ },
+ },
+ },
+ size: {
+ sm: {
+ root: {
+ gap: '3',
+ },
+ item: {
+ textStyle: 'xs',
+ },
+ },
+ md: {
+ root: {
+ gap: '4',
+ },
+ item: {
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ root: {
+ gap: '5',
+ },
+ item: {
+ textStyle: 'md',
+ },
+ },
+ },
+ variant: {
+ subtle: {
+ itemLabel: {
+ color: 'fg.muted',
+ },
+ },
+ bold: {
+ itemLabel: {
+ fontWeight: 'medium',
+ },
+ itemValue: {
+ color: 'fg.muted',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ orientation: 'vertical',
+ variant: 'subtle',
+ },
+ },
+ dialog: {
+ slots: [
+ 'trigger',
+ 'backdrop',
+ 'positioner',
+ 'content',
+ 'title',
+ 'description',
+ 'closeTrigger',
+ 'header',
+ 'body',
+ 'footer',
+ 'backdrop',
+ ],
+ className: 'chakra-dialog',
+ base: {
+ backdrop: {
+ bg: 'blackAlpha.500',
+ pos: 'fixed',
+ left: 0,
+ top: 0,
+ w: '100vw',
+ h: '100dvh',
+ zIndex: 'modal',
+ _open: {
+ animationName: 'fade-in',
+ animationDuration: 'slow',
+ },
+ _closed: {
+ animationName: 'fade-out',
+ animationDuration: 'moderate',
+ },
+ },
+ positioner: {
+ display: 'flex',
+ width: '100vw',
+ height: '100dvh',
+ position: 'fixed',
+ left: 0,
+ top: 0,
+ '--dialog-z-index': 'zIndex.modal',
+ zIndex: 'calc(var(--dialog-z-index) + var(--layer-index, 0))',
+ justifyContent: 'center',
+ overscrollBehaviorY: 'none',
+ },
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ position: 'relative',
+ width: '100%',
+ outline: 0,
+ borderRadius: 'l3',
+ textStyle: 'sm',
+ my: 'var(--dialog-margin, var(--dialog-base-margin))',
+ '--dialog-z-index': 'zIndex.modal',
+ zIndex: 'calc(var(--dialog-z-index) + var(--layer-index, 0))',
+ bg: 'bg.panel',
+ boxShadow: 'lg',
+ _open: {
+ animationDuration: 'moderate',
+ },
+ _closed: {
+ animationDuration: 'faster',
+ },
+ },
+ header: {
+ flex: 0,
+ px: '6',
+ pt: '6',
+ pb: '4',
+ },
+ body: {
+ flex: '1',
+ px: '6',
+ pt: '2',
+ pb: '6',
+ },
+ footer: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ gap: '3',
+ px: '6',
+ pt: '2',
+ pb: '4',
+ },
+ title: {
+ textStyle: 'lg',
+ fontWeight: 'semibold',
+ },
+ description: {
+ color: 'fg.muted',
+ },
+ },
+ variants: {
+ placement: {
+ center: {
+ positioner: {
+ alignItems: 'center',
+ },
+ content: {
+ '--dialog-base-margin': 'auto',
+ mx: 'auto',
+ },
+ },
+ top: {
+ positioner: {
+ alignItems: 'flex-start',
+ },
+ content: {
+ '--dialog-base-margin': 'spacing.16',
+ mx: 'auto',
+ },
+ },
+ bottom: {
+ positioner: {
+ alignItems: 'flex-end',
+ },
+ content: {
+ '--dialog-base-margin': 'spacing.16',
+ mx: 'auto',
+ },
+ },
+ },
+ scrollBehavior: {
+ inside: {
+ positioner: {
+ overflow: 'hidden',
+ },
+ content: {
+ maxH: 'calc(100% - 7.5rem)',
+ },
+ body: {
+ overflow: 'auto',
+ },
+ },
+ outside: {
+ positioner: {
+ overflow: 'auto',
+ pointerEvents: 'auto',
+ },
+ },
+ },
+ size: {
+ xs: {
+ content: {
+ maxW: 'sm',
+ },
+ },
+ sm: {
+ content: {
+ maxW: 'md',
+ },
+ },
+ md: {
+ content: {
+ maxW: 'lg',
+ },
+ },
+ lg: {
+ content: {
+ maxW: '2xl',
+ },
+ },
+ xl: {
+ content: {
+ maxW: '4xl',
+ },
+ },
+ cover: {
+ positioner: {
+ padding: '10',
+ },
+ content: {
+ width: '100%',
+ height: '100%',
+ '--dialog-margin': '0',
+ },
+ },
+ full: {
+ content: {
+ maxW: '100vw',
+ minH: '100vh',
+ '--dialog-margin': '0',
+ borderRadius: '0',
+ },
+ },
+ },
+ motionPreset: {
+ scale: {
+ content: {
+ _open: {
+ animationName: 'scale-in, fade-in',
+ },
+ _closed: {
+ animationName: 'scale-out, fade-out',
+ },
+ },
+ },
+ 'slide-in-bottom': {
+ content: {
+ _open: {
+ animationName: 'slide-from-bottom, fade-in',
+ },
+ _closed: {
+ animationName: 'slide-to-bottom, fade-out',
+ },
+ },
+ },
+ 'slide-in-top': {
+ content: {
+ _open: {
+ animationName: 'slide-from-top, fade-in',
+ },
+ _closed: {
+ animationName: 'slide-to-top, fade-out',
+ },
+ },
+ },
+ 'slide-in-left': {
+ content: {
+ _open: {
+ animationName: 'slide-from-left, fade-in',
+ },
+ _closed: {
+ animationName: 'slide-to-left, fade-out',
+ },
+ },
+ },
+ 'slide-in-right': {
+ content: {
+ _open: {
+ animationName: 'slide-from-right, fade-in',
+ },
+ _closed: {
+ animationName: 'slide-to-right, fade-out',
+ },
+ },
+ },
+ none: {},
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ scrollBehavior: 'outside',
+ placement: 'top',
+ motionPreset: 'scale',
+ },
+ },
+ drawer: {
+ slots: [
+ 'trigger',
+ 'backdrop',
+ 'positioner',
+ 'content',
+ 'title',
+ 'description',
+ 'closeTrigger',
+ 'header',
+ 'body',
+ 'footer',
+ 'backdrop',
+ ],
+ className: 'chakra-drawer',
+ base: {
+ backdrop: {
+ bg: 'blackAlpha.500',
+ pos: 'fixed',
+ insetInlineStart: 0,
+ top: 0,
+ w: '100vw',
+ h: '100dvh',
+ zIndex: 'modal',
+ _open: {
+ animationName: 'fade-in',
+ animationDuration: 'slow',
+ },
+ _closed: {
+ animationName: 'fade-out',
+ animationDuration: 'moderate',
+ },
+ },
+ positioner: {
+ display: 'flex',
+ width: '100vw',
+ height: '100dvh',
+ position: 'fixed',
+ insetInlineStart: 0,
+ top: 0,
+ zIndex: 'modal',
+ overscrollBehaviorY: 'none',
+ },
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ position: 'relative',
+ width: '100%',
+ outline: 0,
+ zIndex: 'modal',
+ textStyle: 'sm',
+ maxH: '100dvh',
+ color: 'inherit',
+ bg: 'bg.panel',
+ boxShadow: 'lg',
+ _open: {
+ animationDuration: 'slowest',
+ animationTimingFunction: 'ease-in-smooth',
+ },
+ _closed: {
+ animationDuration: 'slower',
+ animationTimingFunction: 'ease-in-smooth',
+ },
+ },
+ header: {
+ flex: 0,
+ px: '6',
+ pt: '6',
+ pb: '4',
+ },
+ body: {
+ px: '6',
+ py: '2',
+ flex: '1',
+ overflow: 'auto',
+ },
+ footer: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ gap: '3',
+ px: '6',
+ pt: '2',
+ pb: '4',
+ },
+ title: {
+ textStyle: 'lg',
+ fontWeight: 'semibold',
+ },
+ description: {
+ color: 'fg.muted',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ content: {
+ maxW: 'xs',
+ },
+ },
+ sm: {
+ content: {
+ maxW: 'md',
+ },
+ },
+ md: {
+ content: {
+ maxW: 'lg',
+ },
+ },
+ lg: {
+ content: {
+ maxW: '2xl',
+ },
+ },
+ xl: {
+ content: {
+ maxW: '4xl',
+ },
+ },
+ full: {
+ content: {
+ maxW: '100vw',
+ h: '100dvh',
+ },
+ },
+ },
+ placement: {
+ start: {
+ positioner: {
+ justifyContent: 'flex-start',
+ },
+ content: {
+ _open: {
+ animationName: {
+ base: 'slide-from-left-full, fade-in',
+ _rtl: 'slide-from-right-full, fade-in',
+ },
+ },
+ _closed: {
+ animationName: {
+ base: 'slide-to-left-full, fade-out',
+ _rtl: 'slide-to-right-full, fade-out',
+ },
+ },
+ },
+ },
+ end: {
+ positioner: {
+ justifyContent: 'flex-end',
+ },
+ content: {
+ _open: {
+ animationName: {
+ base: 'slide-from-right-full, fade-in',
+ _rtl: 'slide-from-left-full, fade-in',
+ },
+ },
+ _closed: {
+ animationName: {
+ base: 'slide-to-right-full, fade-out',
+ _rtl: 'slide-to-right-full, fade-out',
+ },
+ },
+ },
+ },
+ top: {
+ positioner: {
+ alignItems: 'flex-start',
+ },
+ content: {
+ maxW: '100%',
+ _open: {
+ animationName: 'slide-from-top-full, fade-in',
+ },
+ _closed: {
+ animationName: 'slide-to-top-full, fade-out',
+ },
+ },
+ },
+ bottom: {
+ positioner: {
+ alignItems: 'flex-end',
+ },
+ content: {
+ maxW: '100%',
+ _open: {
+ animationName: 'slide-from-bottom-full, fade-in',
+ },
+ _closed: {
+ animationName: 'slide-to-bottom-full, fade-out',
+ },
+ },
+ },
+ },
+ contained: {
+ true: {
+ positioner: {
+ padding: '4',
+ },
+ content: {
+ borderRadius: 'l3',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'xs',
+ placement: 'end',
+ },
+ },
+ editable: {
+ slots: [
+ 'root',
+ 'area',
+ 'label',
+ 'preview',
+ 'input',
+ 'editTrigger',
+ 'submitTrigger',
+ 'cancelTrigger',
+ 'control',
+ 'textarea',
+ ],
+ className: 'chakra-editable',
+ base: {
+ root: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ position: 'relative',
+ gap: '1.5',
+ width: 'full',
+ },
+ preview: {
+ fontSize: 'inherit',
+ fontWeight: 'inherit',
+ textAlign: 'inherit',
+ bg: 'transparent',
+ borderRadius: 'l2',
+ py: '1',
+ px: '1',
+ display: 'inline-flex',
+ alignItems: 'center',
+ transitionProperty: 'common',
+ transitionDuration: 'normal',
+ cursor: 'text',
+ _hover: {
+ bg: 'bg.muted',
+ },
+ _disabled: {
+ userSelect: 'none',
+ },
+ },
+ input: {
+ fontSize: 'inherit',
+ fontWeight: 'inherit',
+ textAlign: 'inherit',
+ bg: 'transparent',
+ borderRadius: 'l2',
+ outline: '0',
+ py: '1',
+ px: '1',
+ transitionProperty: 'common',
+ transitionDuration: 'normal',
+ width: 'full',
+ focusVisibleRing: 'inside',
+ focusRingWidth: '2px',
+ _placeholder: {
+ opacity: 0.6,
+ },
+ },
+ control: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ gap: '1.5',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ textStyle: 'sm',
+ },
+ preview: {
+ minH: '8',
+ },
+ input: {
+ minH: '8',
+ },
+ },
+ md: {
+ root: {
+ textStyle: 'sm',
+ },
+ preview: {
+ minH: '9',
+ },
+ input: {
+ minH: '9',
+ },
+ },
+ lg: {
+ root: {
+ textStyle: 'md',
+ },
+ preview: {
+ minH: '10',
+ },
+ input: {
+ minH: '10',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ emptyState: {
+ slots: ['root', 'content', 'indicator', 'title', 'description'],
+ className: 'chakra-empty-state',
+ base: {
+ root: {
+ width: 'full',
+ },
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ indicator: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ color: 'fg.subtle',
+ _icon: {
+ boxSize: '1em',
+ },
+ },
+ title: {
+ fontWeight: 'semibold',
+ },
+ description: {
+ textStyle: 'sm',
+ color: 'fg.muted',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ px: '4',
+ py: '6',
+ },
+ title: {
+ textStyle: 'md',
+ },
+ content: {
+ gap: '4',
+ },
+ indicator: {
+ textStyle: '2xl',
+ },
+ },
+ md: {
+ root: {
+ px: '8',
+ py: '12',
+ },
+ title: {
+ textStyle: 'lg',
+ },
+ content: {
+ gap: '6',
+ },
+ indicator: {
+ textStyle: '4xl',
+ },
+ },
+ lg: {
+ root: {
+ px: '12',
+ py: '16',
+ },
+ title: {
+ textStyle: 'xl',
+ },
+ content: {
+ gap: '8',
+ },
+ indicator: {
+ textStyle: '6xl',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ field: {
+ className: 'chakra-field',
+ slots: [
+ 'root',
+ 'errorText',
+ 'helperText',
+ 'input',
+ 'label',
+ 'select',
+ 'textarea',
+ 'requiredIndicator',
+ 'requiredIndicator',
+ ],
+ base: {
+ requiredIndicator: {
+ color: 'fg.error',
+ lineHeight: '1',
+ },
+ root: {
+ display: 'flex',
+ width: '100%',
+ position: 'relative',
+ gap: '1.5',
+ },
+ label: {
+ display: 'flex',
+ alignItems: 'center',
+ textAlign: 'start',
+ textStyle: 'sm',
+ fontWeight: 'medium',
+ gap: '1',
+ userSelect: 'none',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ errorText: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ fontWeight: 'medium',
+ gap: '1',
+ color: 'fg.error',
+ textStyle: 'xs',
+ },
+ helperText: {
+ color: 'fg.muted',
+ textStyle: 'xs',
+ },
+ },
+ variants: {
+ orientation: {
+ vertical: {
+ root: {
+ flexDirection: 'column',
+ alignItems: 'flex-start',
+ },
+ },
+ horizontal: {
+ root: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ label: {
+ flex: '0 0 var(--field-label-width, 80px)',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ orientation: 'vertical',
+ },
+ },
+ fieldset: {
+ className: 'fieldset',
+ slots: ['root', 'errorText', 'helperText', 'legend', 'content'],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ width: 'full',
+ },
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ width: 'full',
+ },
+ legend: {
+ color: 'fg',
+ fontWeight: 'medium',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ helperText: {
+ color: 'fg.muted',
+ textStyle: 'sm',
+ },
+ errorText: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ color: 'fg.error',
+ gap: '2',
+ fontWeight: 'medium',
+ textStyle: 'sm',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ spaceY: '2',
+ },
+ content: {
+ gap: '1.5',
+ },
+ legend: {
+ textStyle: 'sm',
+ },
+ },
+ md: {
+ root: {
+ spaceY: '4',
+ },
+ content: {
+ gap: '4',
+ },
+ legend: {
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ root: {
+ spaceY: '6',
+ },
+ content: {
+ gap: '4',
+ },
+ legend: {
+ textStyle: 'md',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ fileUpload: {
+ className: 'chakra-file-upload',
+ slots: [
+ 'root',
+ 'dropzone',
+ 'item',
+ 'itemDeleteTrigger',
+ 'itemGroup',
+ 'itemName',
+ 'itemPreview',
+ 'itemPreviewImage',
+ 'itemSizeText',
+ 'label',
+ 'trigger',
+ 'clearTrigger',
+ 'itemContent',
+ 'dropzoneContent',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '4',
+ width: '100%',
+ alignItems: 'flex-start',
+ },
+ label: {
+ fontWeight: 'medium',
+ textStyle: 'sm',
+ },
+ dropzone: {
+ background: 'bg',
+ borderRadius: 'l3',
+ borderWidth: '2px',
+ borderStyle: 'dashed',
+ display: 'flex',
+ alignItems: 'center',
+ flexDirection: 'column',
+ gap: '4',
+ justifyContent: 'center',
+ minHeight: '2xs',
+ px: '3',
+ py: '2',
+ transition: 'backgrounds',
+ focusVisibleRing: 'outside',
+ _hover: {
+ bg: 'bg.subtle',
+ },
+ _dragging: {
+ bg: 'colorPalette.subtle',
+ borderStyle: 'solid',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ dropzoneContent: {
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ textAlign: 'center',
+ gap: '1',
+ textStyle: 'sm',
+ },
+ item: {
+ textStyle: 'sm',
+ animationName: 'fade-in',
+ animationDuration: 'moderate',
+ background: 'bg',
+ borderRadius: 'l2',
+ borderWidth: '1px',
+ width: '100%',
+ display: 'flex',
+ alignItems: 'center',
+ gap: '3',
+ p: '4',
+ },
+ itemGroup: {
+ width: '100%',
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '3',
+ },
+ itemName: {
+ color: 'fg',
+ fontWeight: 'medium',
+ lineClamp: '1',
+ },
+ itemContent: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '0.5',
+ flex: '1',
+ },
+ itemSizeText: {
+ color: 'fg.muted',
+ textStyle: 'xs',
+ },
+ itemDeleteTrigger: {
+ alignSelf: 'flex-start',
+ },
+ itemPreviewImage: {
+ width: '10',
+ height: '10',
+ objectFit: 'scale-down',
+ },
+ },
+ defaultVariants: {},
+ },
+ hoverCard: {
+ className: 'chakra-hover-card',
+ slots: ['arrow', 'arrowTip', 'trigger', 'positioner', 'content'],
+ base: {
+ content: {
+ position: 'relative',
+ display: 'flex',
+ flexDirection: 'column',
+ textStyle: 'sm',
+ '--hovercard-bg': 'colors.bg.panel',
+ bg: 'var(--hovercard-bg)',
+ boxShadow: 'lg',
+ maxWidth: '80',
+ borderRadius: 'l3',
+ zIndex: 'popover',
+ transformOrigin: 'var(--transform-origin)',
+ outline: '0',
+ _open: {
+ animationStyle: 'slide-fade-in',
+ animationDuration: 'fast',
+ },
+ _closed: {
+ animationStyle: 'slide-fade-out',
+ animationDuration: 'faster',
+ },
+ },
+ arrow: {
+ '--arrow-size': 'sizes.3',
+ '--arrow-background': 'var(--hovercard-bg)',
+ },
+ arrowTip: {
+ borderTopWidth: '0.5px',
+ borderInlineStartWidth: '0.5px',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ content: {
+ padding: '3',
+ },
+ },
+ sm: {
+ content: {
+ padding: '4',
+ },
+ },
+ md: {
+ content: {
+ padding: '5',
+ },
+ },
+ lg: {
+ content: {
+ padding: '6',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ list: {
+ className: 'chakra-list',
+ slots: ['root', 'item', 'indicator'],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: 'var(--list-gap)',
+ '& :where(ul, ol)': {
+ marginTop: 'var(--list-gap)',
+ },
+ },
+ item: {
+ whiteSpace: 'normal',
+ display: 'list-item',
+ },
+ indicator: {
+ marginEnd: '2',
+ minHeight: '1lh',
+ flexShrink: 0,
+ display: 'inline-block',
+ verticalAlign: 'middle',
+ },
+ },
+ variants: {
+ variant: {
+ marker: {
+ root: {
+ listStyle: 'revert',
+ listStylePosition: 'inside',
+ },
+ item: {
+ _marker: {
+ color: 'fg.subtle',
+ },
+ },
+ },
+ plain: {
+ item: {
+ alignItems: 'flex-start',
+ display: 'inline-flex',
+ },
+ },
+ },
+ align: {
+ center: {
+ item: {
+ alignItems: 'center',
+ },
+ },
+ start: {
+ item: {
+ alignItems: 'flex-start',
+ },
+ },
+ end: {
+ item: {
+ alignItems: 'flex-end',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'marker',
+ },
+ },
+ menu: {
+ className: 'chakra-menu',
+ slots: [
+ 'arrow',
+ 'arrowTip',
+ 'content',
+ 'contextTrigger',
+ 'indicator',
+ 'item',
+ 'itemGroup',
+ 'itemGroupLabel',
+ 'itemIndicator',
+ 'itemText',
+ 'positioner',
+ 'separator',
+ 'trigger',
+ 'triggerItem',
+ 'itemCommand',
+ ],
+ base: {
+ content: {
+ outline: 0,
+ bg: 'bg.panel',
+ boxShadow: 'lg',
+ color: 'fg',
+ maxHeight: 'var(--available-height)',
+ '--menu-z-index': 'zIndex.dropdown',
+ zIndex: 'calc(var(--menu-z-index) + var(--layer-index, 0))',
+ borderRadius: 'l2',
+ overflow: 'hidden',
+ overflowY: 'auto',
+ _open: {
+ animationStyle: 'slide-fade-in',
+ animationDuration: 'fast',
+ },
+ _closed: {
+ animationStyle: 'slide-fade-out',
+ animationDuration: 'faster',
+ },
+ },
+ item: {
+ textDecoration: 'none',
+ color: 'fg',
+ userSelect: 'none',
+ borderRadius: 'l1',
+ width: '100%',
+ display: 'flex',
+ cursor: 'menuitem',
+ alignItems: 'center',
+ textAlign: 'start',
+ position: 'relative',
+ flex: '0 0 auto',
+ outline: 0,
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ },
+ itemText: {
+ flex: '1',
+ },
+ itemGroupLabel: {
+ px: '2',
+ py: '1.5',
+ fontWeight: 'semibold',
+ textStyle: 'sm',
+ },
+ indicator: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ },
+ itemCommand: {
+ opacity: '0.6',
+ textStyle: 'xs',
+ ms: 'auto',
+ ps: '4',
+ letterSpacing: 'widest',
+ },
+ separator: {
+ height: '1px',
+ bg: 'bg.muted',
+ my: '1',
+ mx: '-1',
+ },
+ },
+ variants: {
+ variant: {
+ subtle: {
+ item: {
+ _highlighted: {
+ bg: {
+ _light: 'bg.muted',
+ _dark: 'bg.emphasized',
+ },
+ },
+ },
+ },
+ solid: {
+ item: {
+ _highlighted: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ },
+ },
+ },
+ size: {
+ sm: {
+ content: {
+ minW: '8rem',
+ padding: '1',
+ },
+ item: {
+ gap: '1',
+ textStyle: 'xs',
+ py: '1',
+ px: '1.5',
+ },
+ },
+ md: {
+ content: {
+ minW: '8rem',
+ padding: '1.5',
+ },
+ item: {
+ gap: '2',
+ textStyle: 'sm',
+ py: '1.5',
+ px: '2',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'subtle',
+ },
+ },
+ nativeSelect: {
+ className: 'chakra-native-select',
+ slots: ['root', 'field', 'indicator'],
+ base: {
+ root: {
+ height: 'fit-content',
+ display: 'flex',
+ width: '100%',
+ position: 'relative',
+ },
+ field: {
+ width: '100%',
+ minWidth: '0',
+ outline: '0',
+ appearance: 'none',
+ borderRadius: 'l2',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ _invalid: {
+ borderColor: 'border.error',
+ },
+ focusVisibleRing: 'inside',
+ lineHeight: 'normal',
+ '& > option, & > optgroup': {
+ bg: 'inherit',
+ },
+ },
+ indicator: {
+ position: 'absolute',
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ pointerEvents: 'none',
+ top: '50%',
+ transform: 'translateY(-50%)',
+ height: '100%',
+ color: 'fg.muted',
+ _disabled: {
+ opacity: '0.5',
+ },
+ _invalid: {
+ color: 'fg.error',
+ },
+ _icon: {
+ width: '1em',
+ height: '1em',
+ },
+ },
+ },
+ variants: {
+ variant: {
+ outline: {
+ field: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ _expanded: {
+ borderColor: 'border.emphasized',
+ },
+ },
+ },
+ subtle: {
+ field: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ },
+ },
+ plain: {
+ field: {
+ bg: 'transparent',
+ color: 'fg',
+ focusRingWidth: '2px',
+ },
+ },
+ },
+ size: {
+ xs: {
+ field: {
+ textStyle: 'xs',
+ ps: '2',
+ pe: '6',
+ height: '6',
+ },
+ indicator: {
+ textStyle: 'sm',
+ insetEnd: '1.5',
+ },
+ },
+ sm: {
+ field: {
+ textStyle: 'sm',
+ ps: '2.5',
+ pe: '8',
+ height: '8',
+ },
+ indicator: {
+ textStyle: 'md',
+ insetEnd: '2',
+ },
+ },
+ md: {
+ field: {
+ textStyle: 'sm',
+ ps: '3',
+ pe: '8',
+ height: '10',
+ },
+ indicator: {
+ textStyle: 'lg',
+ insetEnd: '2',
+ },
+ },
+ lg: {
+ field: {
+ textStyle: 'md',
+ ps: '4',
+ pe: '8',
+ height: '11',
+ },
+ indicator: {
+ textStyle: 'xl',
+ insetEnd: '3',
+ },
+ },
+ xl: {
+ field: {
+ textStyle: 'md',
+ ps: '4.5',
+ pe: '10',
+ height: '12',
+ },
+ indicator: {
+ textStyle: 'xl',
+ insetEnd: '3',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ numberInput: {
+ className: 'chakra-number-input',
+ slots: [
+ 'root',
+ 'label',
+ 'input',
+ 'control',
+ 'valueText',
+ 'incrementTrigger',
+ 'decrementTrigger',
+ 'scrubber',
+ ],
+ base: {
+ root: {
+ position: 'relative',
+ zIndex: '0',
+ isolation: 'isolate',
+ },
+ input: {
+ width: '100%',
+ minWidth: '0',
+ outline: '0',
+ position: 'relative',
+ appearance: 'none',
+ textAlign: 'start',
+ borderRadius: 'l2',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ height: 'var(--input-height)',
+ minW: 'var(--input-height)',
+ '--focus-color': 'colors.colorPalette.focusRing',
+ '--error-color': 'colors.border.error',
+ _invalid: {
+ focusRingColor: 'var(--error-color)',
+ borderColor: 'var(--error-color)',
+ },
+ verticalAlign: 'top',
+ pe: 'calc(var(--stepper-width) + 0.5rem)',
+ },
+ control: {
+ display: 'flex',
+ flexDirection: 'column',
+ position: 'absolute',
+ top: '0',
+ insetEnd: '0px',
+ margin: '1px',
+ width: 'var(--stepper-width)',
+ height: 'calc(100% - 2px)',
+ zIndex: '1',
+ borderStartWidth: '1px',
+ divideY: '1px',
+ },
+ incrementTrigger: {
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ flex: '1',
+ userSelect: 'none',
+ cursor: 'button',
+ lineHeight: '1',
+ color: 'fg.muted',
+ '--stepper-base-radius': 'radii.l1',
+ '--stepper-radius': 'calc(var(--stepper-base-radius) + 1px)',
+ _icon: {
+ boxSize: '1em',
+ },
+ _disabled: {
+ opacity: '0.5',
+ },
+ _hover: {
+ bg: 'bg.muted',
+ },
+ _active: {
+ bg: 'bg.emphasized',
+ },
+ borderTopEndRadius: 'var(--stepper-radius)',
+ },
+ decrementTrigger: {
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ flex: '1',
+ userSelect: 'none',
+ cursor: 'button',
+ lineHeight: '1',
+ color: 'fg.muted',
+ '--stepper-base-radius': 'radii.l1',
+ '--stepper-radius': 'calc(var(--stepper-base-radius) + 1px)',
+ _icon: {
+ boxSize: '1em',
+ },
+ _disabled: {
+ opacity: '0.5',
+ },
+ _hover: {
+ bg: 'bg.muted',
+ },
+ _active: {
+ bg: 'bg.emphasized',
+ },
+ borderBottomEndRadius: 'var(--stepper-radius)',
+ },
+ valueText: {
+ fontWeight: 'medium',
+ fontFeatureSettings: 'pnum',
+ fontVariantNumeric: 'proportional-nums',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ input: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.8',
+ },
+ control: {
+ fontSize: '2xs',
+ '--stepper-width': 'sizes.4',
+ },
+ },
+ sm: {
+ input: {
+ textStyle: 'sm',
+ px: '2.5',
+ '--input-height': 'sizes.9',
+ },
+ control: {
+ fontSize: 'xs',
+ '--stepper-width': 'sizes.5',
+ },
+ },
+ md: {
+ input: {
+ textStyle: 'sm',
+ px: '3',
+ '--input-height': 'sizes.10',
+ },
+ control: {
+ fontSize: 'sm',
+ '--stepper-width': 'sizes.6',
+ },
+ },
+ lg: {
+ input: {
+ textStyle: 'md',
+ px: '4',
+ '--input-height': 'sizes.11',
+ },
+ control: {
+ fontSize: 'sm',
+ '--stepper-width': 'sizes.6',
+ },
+ },
+ },
+ variant: {
+ outline: {
+ input: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ focusVisibleRing: 'inside',
+ },
+ },
+ subtle: {
+ input: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ focusVisibleRing: 'inside',
+ },
+ },
+ flushed: {
+ input: {
+ bg: 'transparent',
+ borderBottomWidth: '1px',
+ borderBottomColor: 'border',
+ borderRadius: '0',
+ px: '0',
+ _focusVisible: {
+ borderColor: 'var(--focus-color)',
+ boxShadow: '0px 1px 0px 0px var(--focus-color)',
+ },
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ pinInput: {
+ className: 'chakra-pin-input',
+ slots: ['root', 'label', 'input', 'control'],
+ base: {
+ input: {
+ width: 'var(--input-height)',
+ minWidth: '0',
+ outline: '0',
+ position: 'relative',
+ appearance: 'none',
+ textAlign: 'center',
+ borderRadius: 'l2',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ height: 'var(--input-height)',
+ minW: 'var(--input-height)',
+ '--focus-color': 'colors.colorPalette.focusRing',
+ '--error-color': 'colors.border.error',
+ _invalid: {
+ focusRingColor: 'var(--error-color)',
+ borderColor: 'var(--error-color)',
+ },
+ },
+ },
+ variants: {
+ size: {
+ '2xs': {
+ input: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.7',
+ },
+ },
+ xs: {
+ input: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.8',
+ },
+ },
+ sm: {
+ input: {
+ textStyle: 'sm',
+ px: '2.5',
+ '--input-height': 'sizes.9',
+ },
+ },
+ md: {
+ input: {
+ textStyle: 'sm',
+ px: '3',
+ '--input-height': 'sizes.10',
+ },
+ },
+ lg: {
+ input: {
+ textStyle: 'md',
+ px: '4',
+ '--input-height': 'sizes.11',
+ },
+ },
+ xl: {
+ input: {
+ textStyle: 'md',
+ px: '4.5',
+ '--input-height': 'sizes.12',
+ },
+ },
+ '2xl': {
+ input: {
+ textStyle: 'lg',
+ px: '5',
+ '--input-height': 'sizes.16',
+ },
+ },
+ },
+ variant: {
+ outline: {
+ input: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ focusVisibleRing: 'inside',
+ },
+ },
+ subtle: {
+ input: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ focusVisibleRing: 'inside',
+ },
+ },
+ flushed: {
+ input: {
+ bg: 'transparent',
+ borderBottomWidth: '1px',
+ borderBottomColor: 'border',
+ borderRadius: '0',
+ px: '0',
+ _focusVisible: {
+ borderColor: 'var(--focus-color)',
+ boxShadow: '0px 1px 0px 0px var(--focus-color)',
+ },
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ popover: {
+ className: 'chakra-popover',
+ slots: [
+ 'arrow',
+ 'arrowTip',
+ 'anchor',
+ 'trigger',
+ 'indicator',
+ 'positioner',
+ 'content',
+ 'title',
+ 'description',
+ 'closeTrigger',
+ 'header',
+ 'body',
+ 'footer',
+ ],
+ base: {
+ content: {
+ position: 'relative',
+ display: 'flex',
+ flexDirection: 'column',
+ textStyle: 'sm',
+ '--popover-bg': 'colors.bg.panel',
+ bg: 'var(--popover-bg)',
+ boxShadow: 'lg',
+ '--popover-size': 'sizes.xs',
+ '--popover-mobile-size': 'calc(100dvw - 1rem)',
+ width: {
+ base: 'min(var(--popover-mobile-size), var(--popover-size))',
+ sm: 'var(--popover-size)',
+ },
+ borderRadius: 'l3',
+ '--popover-z-index': 'zIndex.popover',
+ zIndex: 'calc(var(--popover-z-index) + var(--layer-index, 0))',
+ outline: '0',
+ transformOrigin: 'var(--transform-origin)',
+ _open: {
+ animationStyle: 'scale-fade-in',
+ animationDuration: 'fast',
+ },
+ _closed: {
+ animationStyle: 'scale-fade-out',
+ animationDuration: 'faster',
+ },
+ },
+ header: {
+ paddingInline: 'var(--popover-padding)',
+ paddingTop: 'var(--popover-padding)',
+ },
+ body: {
+ padding: 'var(--popover-padding)',
+ flex: '1',
+ },
+ footer: {
+ display: 'flex',
+ alignItems: 'center',
+ paddingInline: 'var(--popover-padding)',
+ paddingBottom: 'var(--popover-padding)',
+ },
+ arrow: {
+ '--arrow-size': 'sizes.3',
+ '--arrow-background': 'var(--popover-bg)',
+ },
+ arrowTip: {
+ borderTopWidth: '1px',
+ borderInlineStartWidth: '1px',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ content: {
+ '--popover-padding': 'spacing.3',
+ },
+ },
+ sm: {
+ content: {
+ '--popover-padding': 'spacing.4',
+ },
+ },
+ md: {
+ content: {
+ '--popover-padding': 'spacing.5',
+ },
+ },
+ lg: {
+ content: {
+ '--popover-padding': 'spacing.6',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ progress: {
+ slots: [
+ 'root',
+ 'label',
+ 'track',
+ 'range',
+ 'valueText',
+ 'view',
+ 'circle',
+ 'circleTrack',
+ 'circleRange',
+ ],
+ className: 'chakra-progress',
+ base: {
+ root: {
+ textStyle: 'sm',
+ position: 'relative',
+ },
+ track: {
+ overflow: 'hidden',
+ position: 'relative',
+ },
+ range: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ transitionProperty: 'width, height',
+ transitionDuration: 'slow',
+ height: '100%',
+ bgColor: 'var(--track-color)',
+ _indeterminate: {
+ '--animate-from-x': '-40%',
+ '--animate-to-x': '100%',
+ position: 'absolute',
+ willChange: 'left',
+ minWidth: '50%',
+ animation: 'position 1s ease infinite normal none running',
+ backgroundImage:
+ 'linear-gradient(to right, transparent 0%, var(--track-color) 50%, transparent 100%)',
+ },
+ },
+ label: {
+ display: 'inline-flex',
+ fontWeight: 'medium',
+ alignItems: 'center',
+ gap: '1',
+ },
+ valueText: {
+ textStyle: 'xs',
+ lineHeight: '1',
+ fontWeight: 'medium',
+ },
+ },
+ variants: {
+ variant: {
+ outline: {
+ track: {
+ shadow: 'inset',
+ bgColor: 'bg.muted',
+ },
+ range: {
+ bgColor: 'colorPalette.solid',
+ },
+ },
+ subtle: {
+ track: {
+ bgColor: 'colorPalette.muted',
+ },
+ range: {
+ bgColor: 'colorPalette.solid/72',
+ },
+ },
+ },
+ shape: {
+ square: {},
+ rounded: {
+ track: {
+ borderRadius: 'l1',
+ },
+ },
+ full: {
+ track: {
+ borderRadius: 'full',
+ },
+ },
+ },
+ striped: {
+ true: {
+ range: {
+ backgroundImage:
+ 'linear-gradient(45deg, var(--stripe-color) 25%, transparent 25%, transparent 50%, var(--stripe-color) 50%, var(--stripe-color) 75%, transparent 75%, transparent)',
+ backgroundSize: 'var(--stripe-size) var(--stripe-size)',
+ '--stripe-size': '1rem',
+ '--stripe-color': {
+ _light: 'rgba(255, 255, 255, 0.3)',
+ _dark: 'rgba(0, 0, 0, 0.3)',
+ },
+ },
+ },
+ },
+ animated: {
+ true: {
+ range: {
+ '--animate-from': 'var(--stripe-size)',
+ animation: 'bg-position 1s linear infinite',
+ },
+ },
+ },
+ size: {
+ xs: {
+ track: {
+ h: '1.5',
+ },
+ },
+ sm: {
+ track: {
+ h: '2',
+ },
+ },
+ md: {
+ track: {
+ h: '2.5',
+ },
+ },
+ lg: {
+ track: {
+ h: '3',
+ },
+ },
+ xl: {
+ track: {
+ h: '4',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'outline',
+ size: 'md',
+ shape: 'rounded',
+ },
+ },
+ progressCircle: {
+ className: 'chakra-progress-circle',
+ slots: [
+ 'root',
+ 'label',
+ 'track',
+ 'range',
+ 'valueText',
+ 'view',
+ 'circle',
+ 'circleTrack',
+ 'circleRange',
+ ],
+ base: {
+ root: {
+ display: 'inline-flex',
+ textStyle: 'sm',
+ position: 'relative',
+ },
+ circle: {
+ _indeterminate: {
+ animation: 'spin 2s linear infinite',
+ },
+ },
+ circleTrack: {
+ '--track-color': 'colors.colorPalette.muted',
+ stroke: 'var(--track-color)',
+ },
+ circleRange: {
+ stroke: 'colorPalette.solid',
+ transitionProperty: 'stroke-dasharray',
+ transitionDuration: '0.6s',
+ _indeterminate: {
+ animation: 'circular-progress 1.5s linear infinite',
+ },
+ },
+ label: {
+ display: 'inline-flex',
+ },
+ valueText: {
+ lineHeight: '1',
+ fontWeight: 'medium',
+ letterSpacing: 'tight',
+ fontVariantNumeric: 'tabular-nums',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ circle: {
+ '--size': '24px',
+ '--thickness': '4px',
+ },
+ valueText: {
+ textStyle: '2xs',
+ },
+ },
+ sm: {
+ circle: {
+ '--size': '32px',
+ '--thickness': '5px',
+ },
+ valueText: {
+ textStyle: '2xs',
+ },
+ },
+ md: {
+ circle: {
+ '--size': '40px',
+ '--thickness': '6px',
+ },
+ valueText: {
+ textStyle: 'xs',
+ },
+ },
+ lg: {
+ circle: {
+ '--size': '48px',
+ '--thickness': '7px',
+ },
+ valueText: {
+ textStyle: 'sm',
+ },
+ },
+ xl: {
+ circle: {
+ '--size': '64px',
+ '--thickness': '8px',
+ },
+ valueText: {
+ textStyle: 'sm',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ radioCard: {
+ className: 'chakra-radio-card',
+ slots: [
+ 'root',
+ 'label',
+ 'item',
+ 'itemText',
+ 'itemControl',
+ 'indicator',
+ 'itemAddon',
+ 'itemIndicator',
+ 'itemContent',
+ 'itemDescription',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1.5',
+ isolation: 'isolate',
+ },
+ item: {
+ flex: '1',
+ display: 'flex',
+ flexDirection: 'column',
+ userSelect: 'none',
+ position: 'relative',
+ borderRadius: 'l2',
+ _focus: {
+ bg: 'colorPalette.muted/20',
+ },
+ _disabled: {
+ opacity: '0.8',
+ borderColor: 'border.disabled',
+ },
+ _checked: {
+ zIndex: '1',
+ },
+ },
+ label: {
+ display: 'inline-flex',
+ fontWeight: 'medium',
+ textStyle: 'sm',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ itemText: {
+ fontWeight: 'medium',
+ },
+ itemDescription: {
+ opacity: '0.64',
+ textStyle: 'sm',
+ },
+ itemControl: {
+ display: 'inline-flex',
+ flex: '1',
+ pos: 'relative',
+ rounded: 'inherit',
+ justifyContent: 'var(--radio-card-justify)',
+ alignItems: 'var(--radio-card-align)',
+ _disabled: {
+ bg: 'bg.muted',
+ },
+ },
+ itemIndicator: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: 0,
+ verticalAlign: 'top',
+ color: 'white',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ borderRadius: 'full',
+ cursor: 'radio',
+ _focusVisible: {
+ outline: '2px solid',
+ outlineColor: 'colorPalette.focusRing',
+ outlineOffset: '2px',
+ },
+ _invalid: {
+ colorPalette: 'red',
+ borderColor: 'red.500',
+ },
+ _disabled: {
+ opacity: '0.5',
+ cursor: 'disabled',
+ },
+ '& .dot': {
+ height: '100%',
+ width: '100%',
+ borderRadius: 'full',
+ bg: 'currentColor',
+ scale: '0.4',
+ },
+ },
+ itemAddon: {
+ roundedBottom: 'inherit',
+ _disabled: {
+ color: 'fg.muted',
+ },
+ },
+ itemContent: {
+ display: 'flex',
+ flexDirection: 'column',
+ flex: '1',
+ gap: '1',
+ justifyContent: 'var(--radio-card-justify)',
+ alignItems: 'var(--radio-card-align)',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ item: {
+ textStyle: 'sm',
+ },
+ itemControl: {
+ padding: '3',
+ gap: '1.5',
+ },
+ itemAddon: {
+ px: '3',
+ py: '1.5',
+ borderTopWidth: '1px',
+ },
+ itemIndicator: {
+ boxSize: '4',
+ },
+ },
+ md: {
+ item: {
+ textStyle: 'sm',
+ },
+ itemControl: {
+ padding: '4',
+ gap: '2.5',
+ },
+ itemAddon: {
+ px: '4',
+ py: '2',
+ borderTopWidth: '1px',
+ },
+ itemIndicator: {
+ boxSize: '5',
+ },
+ },
+ lg: {
+ item: {
+ textStyle: 'md',
+ },
+ itemControl: {
+ padding: '4',
+ gap: '3.5',
+ },
+ itemAddon: {
+ px: '4',
+ py: '2',
+ borderTopWidth: '1px',
+ },
+ itemIndicator: {
+ boxSize: '6',
+ },
+ },
+ },
+ variant: {
+ surface: {
+ item: {
+ borderWidth: '1px',
+ _checked: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.muted',
+ },
+ },
+ itemIndicator: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ _checked: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ subtle: {
+ item: {
+ bg: 'bg.muted',
+ },
+ itemControl: {
+ _checked: {
+ bg: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ },
+ },
+ itemIndicator: {
+ borderWidth: '1px',
+ borderColor: 'inherit',
+ _checked: {
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.solid',
+ },
+ '& .dot': {
+ scale: '0.6',
+ },
+ },
+ },
+ outline: {
+ item: {
+ borderWidth: '1px',
+ _checked: {
+ boxShadow: '0 0 0 1px var(--shadow-color)',
+ boxShadowColor: 'colorPalette.solid',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ itemIndicator: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ _checked: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ solid: {
+ item: {
+ borderWidth: '1px',
+ _checked: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ itemIndicator: {
+ bg: 'bg',
+ borderWidth: '1px',
+ borderColor: 'inherit',
+ _checked: {
+ color: 'colorPalette.solid',
+ borderColor: 'currentcolor',
+ },
+ },
+ },
+ },
+ justify: {
+ start: {
+ item: {
+ '--radio-card-justify': 'flex-start',
+ },
+ },
+ end: {
+ item: {
+ '--radio-card-justify': 'flex-end',
+ },
+ },
+ center: {
+ item: {
+ '--radio-card-justify': 'center',
+ },
+ },
+ },
+ align: {
+ start: {
+ item: {
+ '--radio-card-align': 'flex-start',
+ },
+ itemControl: {
+ textAlign: 'start',
+ },
+ },
+ end: {
+ item: {
+ '--radio-card-align': 'flex-end',
+ },
+ itemControl: {
+ textAlign: 'end',
+ },
+ },
+ center: {
+ item: {
+ '--radio-card-align': 'center',
+ },
+ itemControl: {
+ textAlign: 'center',
+ },
+ },
+ },
+ orientation: {
+ vertical: {
+ itemControl: {
+ flexDirection: 'column',
+ },
+ },
+ horizontal: {
+ itemControl: {
+ flexDirection: 'row',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ align: 'start',
+ orientation: 'horizontal',
+ },
+ },
+ radioGroup: {
+ className: 'chakra-radio-group',
+ slots: [
+ 'root',
+ 'label',
+ 'item',
+ 'itemText',
+ 'itemControl',
+ 'indicator',
+ 'itemAddon',
+ 'itemIndicator',
+ ],
+ base: {
+ item: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ position: 'relative',
+ fontWeight: 'medium',
+ _disabled: {
+ cursor: 'disabled',
+ },
+ },
+ itemControl: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: 0,
+ verticalAlign: 'top',
+ color: 'white',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ borderRadius: 'full',
+ cursor: 'radio',
+ _focusVisible: {
+ outline: '2px solid',
+ outlineColor: 'colorPalette.focusRing',
+ outlineOffset: '2px',
+ },
+ _invalid: {
+ colorPalette: 'red',
+ borderColor: 'red.500',
+ },
+ _disabled: {
+ opacity: '0.5',
+ cursor: 'disabled',
+ },
+ '& .dot': {
+ height: '100%',
+ width: '100%',
+ borderRadius: 'full',
+ bg: 'currentColor',
+ scale: '0.4',
+ },
+ },
+ label: {
+ userSelect: 'none',
+ textStyle: 'sm',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ },
+ variants: {
+ variant: {
+ outline: {
+ itemControl: {
+ borderWidth: '1px',
+ borderColor: 'inherit',
+ _checked: {
+ color: 'colorPalette.fg',
+ borderColor: 'colorPalette.solid',
+ },
+ '& .dot': {
+ scale: '0.6',
+ },
+ },
+ },
+ subtle: {
+ itemControl: {
+ borderWidth: '1px',
+ bg: 'colorPalette.muted',
+ borderColor: 'colorPalette.muted',
+ color: 'transparent',
+ _checked: {
+ color: 'colorPalette.fg',
+ },
+ },
+ },
+ solid: {
+ itemControl: {
+ borderWidth: '1px',
+ borderColor: 'border',
+ _checked: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ borderColor: 'colorPalette.solid',
+ },
+ },
+ },
+ },
+ size: {
+ xs: {
+ item: {
+ textStyle: 'xs',
+ gap: '1.5',
+ },
+ itemControl: {
+ boxSize: '3',
+ },
+ },
+ sm: {
+ item: {
+ textStyle: 'sm',
+ gap: '2',
+ },
+ itemControl: {
+ boxSize: '4',
+ },
+ },
+ md: {
+ item: {
+ textStyle: 'sm',
+ gap: '2.5',
+ },
+ itemControl: {
+ boxSize: '5',
+ },
+ },
+ lg: {
+ item: {
+ textStyle: 'md',
+ gap: '3',
+ },
+ itemControl: {
+ boxSize: '6',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'solid',
+ },
+ },
+ ratingGroup: {
+ className: 'chakra-rating-group',
+ slots: ['root', 'label', 'item', 'control', 'itemIndicator'],
+ base: {
+ root: {
+ display: 'inline-flex',
+ },
+ control: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ },
+ item: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ userSelect: 'none',
+ },
+ itemIndicator: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: '1em',
+ height: '1em',
+ position: 'relative',
+ _icon: {
+ stroke: 'currentColor',
+ width: '100%',
+ height: '100%',
+ display: 'inline-block',
+ flexShrink: 0,
+ position: 'absolute',
+ left: 0,
+ top: 0,
+ },
+ '& [data-bg]': {
+ color: 'bg.emphasized',
+ },
+ '& [data-fg]': {
+ color: 'transparent',
+ },
+ '&[data-highlighted]:not([data-half])': {
+ '& [data-fg]': {
+ color: 'colorPalette.solid',
+ },
+ },
+ '&[data-half]': {
+ '& [data-fg]': {
+ color: 'colorPalette.solid',
+ clipPath: 'inset(0 50% 0 0)',
+ },
+ },
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ item: {
+ textStyle: 'sm',
+ },
+ },
+ sm: {
+ item: {
+ textStyle: 'md',
+ },
+ },
+ md: {
+ item: {
+ textStyle: 'xl',
+ },
+ },
+ lg: {
+ item: {
+ textStyle: '2xl',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ segmentGroup: {
+ className: 'chakra-segment-group',
+ slots: [
+ 'root',
+ 'label',
+ 'item',
+ 'itemText',
+ 'itemControl',
+ 'indicator',
+ ],
+ base: {
+ root: {
+ '--segment-radius': 'radii.l2',
+ borderRadius: 'l2',
+ display: 'inline-flex',
+ boxShadow: 'inset',
+ minW: 'max-content',
+ textAlign: 'center',
+ position: 'relative',
+ isolation: 'isolate',
+ bg: 'bg.muted',
+ },
+ item: {
+ display: 'flex',
+ alignItems: 'center',
+ userSelect: 'none',
+ fontSize: 'sm',
+ position: 'relative',
+ color: 'fg',
+ borderRadius: 'var(--segment-radius)',
+ _disabled: {
+ opacity: '0.5',
+ },
+ '&:has(input:focus-visible)': {
+ focusRing: 'outside',
+ },
+ _before: {
+ content: '""',
+ position: 'absolute',
+ insetInlineStart: 0,
+ insetBlock: '1.5',
+ bg: 'border',
+ width: '1px',
+ transition: 'opacity 0.2s',
+ },
+ '& + &[data-state=checked], &[data-state=checked] + &, &:first-of-type':
+ {
+ _before: {
+ opacity: '0',
+ },
+ },
+ '&[data-state=checked][data-ssr]': {
+ shadow: 'sm',
+ bg: 'bg',
+ borderRadius: 'var(--segment-radius)',
+ },
+ },
+ indicator: {
+ shadow: 'sm',
+ pos: 'absolute',
+ bg: {
+ _light: 'bg',
+ _dark: 'bg.emphasized',
+ },
+ width: 'var(--width)',
+ height: 'var(--height)',
+ top: 'var(--top)',
+ left: 'var(--left)',
+ zIndex: -1,
+ borderRadius: 'var(--segment-radius)',
+ },
+ },
+ variants: {
+ size: {
+ xs: {
+ root: {
+ height: '6',
+ },
+ item: {
+ textStyle: 'xs',
+ px: '3',
+ gap: '1',
+ },
+ },
+ sm: {
+ root: {
+ height: '8',
+ },
+ item: {
+ textStyle: 'sm',
+ px: '4',
+ gap: '2',
+ },
+ },
+ md: {
+ root: {
+ height: '10',
+ },
+ item: {
+ textStyle: 'sm',
+ px: '4',
+ gap: '2',
+ },
+ },
+ lg: {
+ root: {
+ height: '10',
+ },
+ item: {
+ textStyle: 'md',
+ px: '5',
+ gap: '3',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ select: {
+ className: 'chakra-select',
+ slots: [
+ 'label',
+ 'positioner',
+ 'trigger',
+ 'indicator',
+ 'clearTrigger',
+ 'item',
+ 'itemText',
+ 'itemIndicator',
+ 'itemGroup',
+ 'itemGroupLabel',
+ 'list',
+ 'content',
+ 'root',
+ 'control',
+ 'valueText',
+ 'indicatorGroup',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1.5',
+ width: 'full',
+ },
+ trigger: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ width: 'full',
+ minH: 'var(--select-trigger-height)',
+ px: 'var(--select-trigger-padding-x)',
+ borderRadius: 'l2',
+ userSelect: 'none',
+ textAlign: 'start',
+ focusVisibleRing: 'inside',
+ _placeholderShown: {
+ color: 'fg.muted',
+ },
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ _invalid: {
+ borderColor: 'border.error',
+ },
+ },
+ indicatorGroup: {
+ display: 'flex',
+ alignItems: 'center',
+ gap: '1',
+ pos: 'absolute',
+ right: '0',
+ top: '0',
+ bottom: '0',
+ px: 'var(--select-trigger-padding-x)',
+ pointerEvents: 'none',
+ },
+ indicator: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ color: {
+ base: 'fg.muted',
+ _disabled: 'fg.subtle',
+ _invalid: 'fg.error',
+ },
+ },
+ content: {
+ background: 'bg.panel',
+ display: 'flex',
+ flexDirection: 'column',
+ zIndex: 'dropdown',
+ borderRadius: 'l2',
+ outline: 0,
+ maxH: '96',
+ overflowY: 'auto',
+ boxShadow: 'md',
+ _open: {
+ animationStyle: 'slide-fade-in',
+ animationDuration: 'fast',
+ },
+ _closed: {
+ animationStyle: 'slide-fade-out',
+ animationDuration: 'fastest',
+ },
+ },
+ item: {
+ position: 'relative',
+ userSelect: 'none',
+ display: 'flex',
+ alignItems: 'center',
+ gap: '2',
+ cursor: 'option',
+ justifyContent: 'space-between',
+ flex: '1',
+ textAlign: 'start',
+ borderRadius: 'l1',
+ _highlighted: {
+ bg: {
+ _light: 'bg.muted',
+ _dark: 'bg.emphasized',
+ },
+ },
+ _disabled: {
+ pointerEvents: 'none',
+ opacity: '0.5',
+ },
+ _icon: {
+ width: '4',
+ height: '4',
+ },
+ },
+ control: {
+ pos: 'relative',
+ },
+ itemText: {
+ flex: '1',
+ },
+ itemGroup: {
+ _first: {
+ mt: '0',
+ },
+ },
+ itemGroupLabel: {
+ py: '1',
+ fontWeight: 'medium',
+ },
+ label: {
+ fontWeight: 'medium',
+ userSelect: 'none',
+ textStyle: 'sm',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ },
+ valueText: {
+ lineClamp: '1',
+ maxW: '80%',
+ },
+ },
+ variants: {
+ variant: {
+ outline: {
+ trigger: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ _expanded: {
+ borderColor: 'border.emphasized',
+ },
+ },
+ },
+ subtle: {
+ trigger: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ },
+ },
+ },
+ size: {
+ xs: {
+ root: {
+ '--select-trigger-height': 'sizes.8',
+ '--select-trigger-padding-x': 'spacing.2',
+ },
+ content: {
+ p: '1',
+ gap: '1',
+ textStyle: 'xs',
+ },
+ trigger: {
+ textStyle: 'xs',
+ gap: '1',
+ },
+ item: {
+ py: '1',
+ px: '2',
+ },
+ itemGroupLabel: {
+ py: '1',
+ px: '2',
+ },
+ indicator: {
+ _icon: {
+ width: '3.5',
+ height: '3.5',
+ },
+ },
+ },
+ sm: {
+ root: {
+ '--select-trigger-height': 'sizes.9',
+ '--select-trigger-padding-x': 'spacing.2.5',
+ },
+ content: {
+ p: '1',
+ textStyle: 'sm',
+ },
+ trigger: {
+ textStyle: 'sm',
+ gap: '1',
+ },
+ indicator: {
+ _icon: {
+ width: '4',
+ height: '4',
+ },
+ },
+ item: {
+ py: '1',
+ px: '1.5',
+ },
+ itemGroup: {
+ mt: '1',
+ },
+ itemGroupLabel: {
+ py: '1',
+ px: '1.5',
+ },
+ },
+ md: {
+ root: {
+ '--select-trigger-height': 'sizes.10',
+ '--select-trigger-padding-x': 'spacing.3',
+ },
+ content: {
+ p: '1',
+ textStyle: 'sm',
+ },
+ itemGroup: {
+ mt: '1.5',
+ },
+ item: {
+ py: '1.5',
+ px: '2',
+ },
+ itemIndicator: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ itemGroupLabel: {
+ py: '1.5',
+ px: '2',
+ },
+ trigger: {
+ textStyle: 'sm',
+ gap: '2',
+ },
+ indicator: {
+ _icon: {
+ width: '4',
+ height: '4',
+ },
+ },
+ },
+ lg: {
+ root: {
+ '--select-trigger-height': 'sizes.12',
+ '--select-trigger-padding-x': 'spacing.4',
+ },
+ content: {
+ p: '1.5',
+ textStyle: 'md',
+ },
+ itemGroup: {
+ mt: '2',
+ },
+ item: {
+ py: '2',
+ px: '3',
+ },
+ itemGroupLabel: {
+ py: '2',
+ px: '3',
+ },
+ trigger: {
+ textStyle: 'md',
+ py: '3',
+ gap: '2',
+ },
+ indicator: {
+ _icon: {
+ width: '5',
+ height: '5',
+ },
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ slider: {
+ className: 'chakra-slider',
+ slots: [
+ 'root',
+ 'label',
+ 'thumb',
+ 'valueText',
+ 'track',
+ 'range',
+ 'control',
+ 'markerGroup',
+ 'marker',
+ 'draggingIndicator',
+ 'markerIndicator',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1',
+ textStyle: 'sm',
+ position: 'relative',
+ isolation: 'isolate',
+ touchAction: 'none',
+ },
+ label: {
+ fontWeight: 'medium',
+ textStyle: 'sm',
+ },
+ control: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ position: 'relative',
+ },
+ track: {
+ overflow: 'hidden',
+ borderRadius: 'full',
+ flex: '1',
+ },
+ range: {
+ width: 'inherit',
+ height: 'inherit',
+ _disabled: {
+ bg: 'border.emphasized!',
+ },
+ },
+ markerGroup: {
+ position: 'absolute!',
+ zIndex: '1',
+ },
+ marker: {
+ '--marker-bg': {
+ base: 'white',
+ _underValue: 'colors.bg',
+ },
+ display: 'flex',
+ alignItems: 'center',
+ gap: 'calc(var(--slider-thumb-size) / 2)',
+ color: 'fg.muted',
+ textStyle: 'xs',
+ },
+ markerIndicator: {
+ width: 'var(--slider-marker-size)',
+ height: 'var(--slider-marker-size)',
+ borderRadius: 'full',
+ bg: 'var(--marker-bg)',
+ },
+ thumb: {
+ width: 'var(--slider-thumb-size)',
+ height: 'var(--slider-thumb-size)',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ outline: 0,
+ zIndex: '2',
+ borderRadius: 'full',
+ _focusVisible: {
+ ring: '2px',
+ ringColor: 'colorPalette.focusRing',
+ ringOffset: '2px',
+ ringOffsetColor: 'bg',
+ },
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ '--slider-thumb-size': 'sizes.4',
+ '--slider-track-size': 'sizes.1.5',
+ '--slider-marker-center': '6px',
+ '--slider-marker-size': 'sizes.1',
+ '--slider-marker-inset': '3px',
+ },
+ },
+ md: {
+ root: {
+ '--slider-thumb-size': 'sizes.5',
+ '--slider-track-size': 'sizes.2',
+ '--slider-marker-center': '8px',
+ '--slider-marker-size': 'sizes.1',
+ '--slider-marker-inset': '4px',
+ },
+ },
+ lg: {
+ root: {
+ '--slider-thumb-size': 'sizes.6',
+ '--slider-track-size': 'sizes.2.5',
+ '--slider-marker-center': '9px',
+ '--slider-marker-size': 'sizes.1.5',
+ '--slider-marker-inset': '5px',
+ },
+ },
+ },
+ variant: {
+ outline: {
+ track: {
+ shadow: 'inset',
+ bg: 'bg.emphasized/72',
+ },
+ range: {
+ bg: 'colorPalette.solid',
+ },
+ thumb: {
+ borderWidth: '2px',
+ borderColor: 'colorPalette.solid',
+ bg: 'bg',
+ _disabled: {
+ bg: 'border.emphasized',
+ borderColor: 'border.emphasized',
+ },
+ },
+ },
+ solid: {
+ track: {
+ bg: 'colorPalette.subtle',
+ _disabled: {
+ bg: 'bg.muted',
+ },
+ },
+ range: {
+ bg: 'colorPalette.solid',
+ },
+ thumb: {
+ bg: 'colorPalette.solid',
+ _disabled: {
+ bg: 'border.emphasized',
+ },
+ },
+ },
+ },
+ orientation: {
+ vertical: {
+ root: {
+ display: 'inline-flex',
+ },
+ control: {
+ flexDirection: 'column',
+ height: '100%',
+ minWidth: 'var(--slider-thumb-size)',
+ '&[data-has-mark-label]': {
+ marginEnd: '4',
+ },
+ },
+ track: {
+ width: 'var(--slider-track-size)',
+ },
+ thumb: {
+ left: '50%',
+ translate: '-50% 0',
+ },
+ markerGroup: {
+ insetStart: 'var(--slider-marker-center)',
+ insetBlock: 'var(--slider-marker-inset)',
+ },
+ marker: {
+ flexDirection: 'row',
+ },
+ },
+ horizontal: {
+ control: {
+ flexDirection: 'row',
+ width: '100%',
+ minHeight: 'var(--slider-thumb-size)',
+ '&[data-has-mark-label]': {
+ marginBottom: '4',
+ },
+ },
+ track: {
+ height: 'var(--slider-track-size)',
+ },
+ thumb: {
+ top: '50%',
+ translate: '0 -50%',
+ },
+ markerGroup: {
+ top: 'var(--slider-marker-center)',
+ insetInline: 'var(--slider-marker-inset)',
+ },
+ marker: {
+ flexDirection: 'column',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ orientation: 'horizontal',
+ },
+ },
+ stat: {
+ className: 'chakra-stat',
+ slots: [
+ 'root',
+ 'label',
+ 'helpText',
+ 'valueText',
+ 'valueUnit',
+ 'indicator',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1',
+ position: 'relative',
+ flex: '1',
+ },
+ label: {
+ display: 'inline-flex',
+ gap: '1.5',
+ alignItems: 'center',
+ color: 'fg.muted',
+ textStyle: 'sm',
+ },
+ helpText: {
+ color: 'fg.muted',
+ textStyle: 'xs',
+ },
+ valueUnit: {
+ color: 'fg.muted',
+ textStyle: 'xs',
+ fontWeight: 'initial',
+ letterSpacing: 'initial',
+ },
+ valueText: {
+ verticalAlign: 'baseline',
+ fontWeight: 'semibold',
+ letterSpacing: 'tight',
+ fontFeatureSettings: 'pnum',
+ fontVariantNumeric: 'proportional-nums',
+ display: 'inline-flex',
+ gap: '1',
+ },
+ indicator: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginEnd: 1,
+ '& :where(svg)': {
+ w: '1em',
+ h: '1em',
+ },
+ '&[data-type=up]': {
+ color: 'fg.success',
+ },
+ '&[data-type=down]': {
+ color: 'fg.error',
+ },
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ valueText: {
+ textStyle: 'xl',
+ },
+ },
+ md: {
+ valueText: {
+ textStyle: '2xl',
+ },
+ },
+ lg: {
+ valueText: {
+ textStyle: '3xl',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ steps: {
+ className: 'chakra-steps',
+ slots: [
+ 'root',
+ 'list',
+ 'item',
+ 'trigger',
+ 'indicator',
+ 'separator',
+ 'content',
+ 'title',
+ 'description',
+ 'nextTrigger',
+ 'prevTrigger',
+ 'progress',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ width: 'full',
+ },
+ list: {
+ display: 'flex',
+ justifyContent: 'space-between',
+ '--steps-gutter': 'spacing.3',
+ '--steps-thickness': '2px',
+ },
+ title: {
+ fontWeight: 'medium',
+ color: 'fg',
+ },
+ description: {
+ color: 'fg.muted',
+ },
+ separator: {
+ bg: 'border',
+ flex: '1',
+ },
+ indicator: {
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ flexShrink: '0',
+ borderRadius: 'full',
+ fontWeight: 'medium',
+ width: 'var(--steps-size)',
+ height: 'var(--steps-size)',
+ _icon: {
+ flexShrink: '0',
+ width: 'var(--steps-icon-size)',
+ height: 'var(--steps-icon-size)',
+ },
+ },
+ item: {
+ position: 'relative',
+ display: 'flex',
+ flex: '1 0 0',
+ '&:last-of-type': {
+ flex: 'initial',
+ '& [data-part=separator]': {
+ display: 'none',
+ },
+ },
+ },
+ trigger: {
+ display: 'flex',
+ alignItems: 'center',
+ gap: '3',
+ textAlign: 'start',
+ focusVisibleRing: 'outside',
+ borderRadius: 'l2',
+ },
+ content: {
+ focusVisibleRing: 'outside',
+ },
+ },
+ variants: {
+ orientation: {
+ vertical: {
+ root: {
+ flexDirection: 'row',
+ height: '100%',
+ },
+ list: {
+ flexDirection: 'column',
+ alignItems: 'flex-start',
+ },
+ separator: {
+ position: 'absolute',
+ width: 'var(--steps-thickness)',
+ height: '100%',
+ maxHeight:
+ 'calc(100% - var(--steps-size) - var(--steps-gutter) * 2)',
+ top: 'calc(var(--steps-size) + var(--steps-gutter))',
+ insetStart: 'calc(var(--steps-size) / 2 - 1px)',
+ },
+ item: {
+ alignItems: 'flex-start',
+ },
+ },
+ horizontal: {
+ root: {
+ flexDirection: 'column',
+ width: '100%',
+ },
+ list: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ separator: {
+ width: '100%',
+ height: 'var(--steps-thickness)',
+ marginX: 'var(--steps-gutter)',
+ },
+ item: {
+ alignItems: 'center',
+ },
+ },
+ },
+ variant: {
+ solid: {
+ indicator: {
+ _incomplete: {
+ borderWidth: 'var(--steps-thickness)',
+ },
+ _current: {
+ bg: 'colorPalette.muted',
+ borderWidth: 'var(--steps-thickness)',
+ borderColor: 'colorPalette.solid',
+ color: 'colorPalette.fg',
+ },
+ _complete: {
+ bg: 'colorPalette.solid',
+ borderColor: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ },
+ separator: {
+ _complete: {
+ bg: 'colorPalette.solid',
+ },
+ },
+ },
+ subtle: {
+ indicator: {
+ _incomplete: {
+ bg: 'bg.muted',
+ },
+ _current: {
+ bg: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ },
+ _complete: {
+ bg: 'colorPalette.emphasized',
+ color: 'colorPalette.fg',
+ },
+ },
+ separator: {
+ _complete: {
+ bg: 'colorPalette.emphasized',
+ },
+ },
+ },
+ },
+ size: {
+ xs: {
+ root: {
+ gap: '2.5',
+ },
+ list: {
+ '--steps-size': 'sizes.6',
+ '--steps-icon-size': 'sizes.3.5',
+ textStyle: 'xs',
+ },
+ title: {
+ textStyle: 'sm',
+ },
+ },
+ sm: {
+ root: {
+ gap: '3',
+ },
+ list: {
+ '--steps-size': 'sizes.8',
+ '--steps-icon-size': 'sizes.4',
+ textStyle: 'xs',
+ },
+ title: {
+ textStyle: 'sm',
+ },
+ },
+ md: {
+ root: {
+ gap: '4',
+ },
+ list: {
+ '--steps-size': 'sizes.10',
+ '--steps-icon-size': 'sizes.4',
+ textStyle: 'sm',
+ },
+ title: {
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ root: {
+ gap: '6',
+ },
+ list: {
+ '--steps-size': 'sizes.11',
+ '--steps-icon-size': 'sizes.5',
+ textStyle: 'md',
+ },
+ title: {
+ textStyle: 'md',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'solid',
+ orientation: 'horizontal',
+ },
+ },
+ switch: {
+ slots: ['root', 'label', 'control', 'thumb', 'indicator'],
+ className: 'chakra-switch',
+ base: {
+ root: {
+ display: 'inline-flex',
+ gap: '2.5',
+ alignItems: 'center',
+ position: 'relative',
+ verticalAlign: 'middle',
+ '--switch-diff': 'calc(var(--switch-width) - var(--switch-height))',
+ '--switch-x': {
+ base: 'var(--switch-diff)',
+ _rtl: 'calc(var(--switch-diff) * -1)',
+ },
+ },
+ label: {
+ lineHeight: '1',
+ userSelect: 'none',
+ fontSize: 'sm',
+ fontWeight: 'medium',
+ _disabled: {
+ opacity: '0.5',
+ },
+ },
+ indicator: {
+ position: 'absolute',
+ height: 'var(--switch-height)',
+ width: 'var(--switch-height)',
+ fontSize: 'var(--switch-indicator-font-size)',
+ fontWeight: 'medium',
+ flexShrink: 0,
+ userSelect: 'none',
+ display: 'grid',
+ placeContent: 'center',
+ transition: 'inset-inline-start 0.12s ease',
+ insetInlineStart: 'calc(var(--switch-x) - 2px)',
+ _checked: {
+ insetInlineStart: '2px',
+ },
+ },
+ control: {
+ display: 'inline-flex',
+ gap: '0.5rem',
+ flexShrink: 0,
+ justifyContent: 'flex-start',
+ cursor: 'switch',
+ borderRadius: 'full',
+ position: 'relative',
+ width: 'var(--switch-width)',
+ height: 'var(--switch-height)',
+ _disabled: {
+ opacity: '0.5',
+ cursor: 'not-allowed',
+ },
+ _invalid: {
+ outline: '2px solid',
+ outlineColor: 'border.error',
+ outlineOffset: '2px',
+ },
+ },
+ thumb: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: 0,
+ transitionProperty: 'translate',
+ transitionDuration: 'fast',
+ borderRadius: 'inherit',
+ _checked: {
+ translate: 'var(--switch-x) 0',
+ },
+ },
+ },
+ variants: {
+ variant: {
+ solid: {
+ control: {
+ borderRadius: 'full',
+ bg: 'bg.emphasized',
+ focusVisibleRing: 'outside',
+ _checked: {
+ bg: 'colorPalette.solid',
+ },
+ },
+ thumb: {
+ bg: 'white',
+ width: 'var(--switch-height)',
+ height: 'var(--switch-height)',
+ scale: '0.8',
+ boxShadow: 'sm',
+ _checked: {
+ bg: 'colorPalette.contrast',
+ },
+ },
+ },
+ raised: {
+ control: {
+ borderRadius: 'full',
+ height: 'calc(var(--switch-height) / 2)',
+ bg: 'bg.muted',
+ boxShadow: 'inset',
+ _checked: {
+ bg: 'colorPalette.solid/60',
+ },
+ },
+ thumb: {
+ width: 'var(--switch-height)',
+ height: 'var(--switch-height)',
+ position: 'relative',
+ top: 'calc(var(--switch-height) * -0.25)',
+ bg: 'white',
+ boxShadow: 'xs',
+ focusVisibleRing: 'outside',
+ _checked: {
+ bg: 'colorPalette.solid',
+ },
+ },
+ },
+ },
+ size: {
+ xs: {
+ root: {
+ '--switch-width': 'sizes.6',
+ '--switch-height': 'sizes.3',
+ '--switch-indicator-font-size': 'fontSizes.xs',
+ },
+ },
+ sm: {
+ root: {
+ '--switch-width': 'sizes.8',
+ '--switch-height': 'sizes.4',
+ '--switch-indicator-font-size': 'fontSizes.xs',
+ },
+ },
+ md: {
+ root: {
+ '--switch-width': 'sizes.10',
+ '--switch-height': 'sizes.5',
+ '--switch-indicator-font-size': 'fontSizes.sm',
+ },
+ },
+ lg: {
+ root: {
+ '--switch-width': 'sizes.12',
+ '--switch-height': 'sizes.6',
+ '--switch-indicator-font-size': 'fontSizes.md',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'solid',
+ size: 'md',
+ },
+ },
+ table: {
+ className: 'chakra-table',
+ slots: [
+ 'root',
+ 'header',
+ 'body',
+ 'row',
+ 'columnHeader',
+ 'cell',
+ 'footer',
+ 'caption',
+ ],
+ base: {
+ root: {
+ fontVariantNumeric: 'lining-nums tabular-nums',
+ borderCollapse: 'collapse',
+ width: 'full',
+ textAlign: 'start',
+ verticalAlign: 'top',
+ },
+ row: {
+ _selected: {
+ bg: 'colorPalette.subtle',
+ },
+ },
+ cell: {
+ textAlign: 'start',
+ alignItems: 'center',
+ },
+ columnHeader: {
+ fontWeight: 'medium',
+ textAlign: 'start',
+ color: 'fg',
+ },
+ caption: {
+ fontWeight: 'medium',
+ textStyle: 'xs',
+ },
+ footer: {
+ fontWeight: 'medium',
+ },
+ },
+ variants: {
+ interactive: {
+ true: {
+ body: {
+ '& tr': {
+ _hover: {
+ bg: 'colorPalette.subtle',
+ },
+ },
+ },
+ },
+ },
+ stickyHeader: {
+ true: {
+ header: {
+ '& :where(tr)': {
+ top: 'var(--table-sticky-offset, 0)',
+ position: 'sticky',
+ zIndex: 1,
+ },
+ },
+ },
+ },
+ striped: {
+ true: {
+ row: {
+ '&:nth-of-type(odd) td': {
+ bg: 'bg.muted',
+ },
+ },
+ },
+ },
+ showColumnBorder: {
+ true: {
+ columnHeader: {
+ '&:not(:last-of-type)': {
+ borderInlineEndWidth: '1px',
+ },
+ },
+ cell: {
+ '&:not(:last-of-type)': {
+ borderInlineEndWidth: '1px',
+ },
+ },
+ },
+ },
+ variant: {
+ line: {
+ columnHeader: {
+ borderBottomWidth: '1px',
+ },
+ cell: {
+ borderBottomWidth: '1px',
+ },
+ row: {
+ bg: 'bg',
+ },
+ },
+ outline: {
+ root: {
+ boxShadow: '0 0 0 1px {colors.border}',
+ overflow: 'hidden',
+ },
+ columnHeader: {
+ borderBottomWidth: '1px',
+ },
+ header: {
+ bg: 'bg.muted',
+ },
+ row: {
+ '&:not(:last-of-type)': {
+ borderBottomWidth: '1px',
+ },
+ },
+ footer: {
+ borderTopWidth: '1px',
+ },
+ },
+ },
+ size: {
+ sm: {
+ root: {
+ textStyle: 'sm',
+ },
+ columnHeader: {
+ px: '2',
+ py: '2',
+ },
+ cell: {
+ px: '2',
+ py: '2',
+ },
+ },
+ md: {
+ root: {
+ textStyle: 'sm',
+ },
+ columnHeader: {
+ px: '3',
+ py: '3',
+ },
+ cell: {
+ px: '3',
+ py: '3',
+ },
+ },
+ lg: {
+ root: {
+ textStyle: 'md',
+ },
+ columnHeader: {
+ px: '4',
+ py: '3',
+ },
+ cell: {
+ px: '4',
+ py: '3',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ variant: 'line',
+ size: 'md',
+ },
+ },
+ tabs: {
+ slots: [
+ 'root',
+ 'trigger',
+ 'list',
+ 'content',
+ 'contentGroup',
+ 'indicator',
+ ],
+ className: 'chakra-tabs',
+ base: {
+ root: {
+ '--tabs-trigger-radius': 'radii.l2',
+ position: 'relative',
+ _horizontal: {
+ display: 'block',
+ },
+ _vertical: {
+ display: 'flex',
+ },
+ },
+ list: {
+ display: 'inline-flex',
+ position: 'relative',
+ isolation: 'isolate',
+ '--tabs-indicator-shadow': 'shadows.xs',
+ '--tabs-indicator-bg': 'colors.bg',
+ minH: 'var(--tabs-height)',
+ _horizontal: {
+ flexDirection: 'row',
+ },
+ _vertical: {
+ flexDirection: 'column',
+ },
+ },
+ trigger: {
+ outline: '0',
+ minW: 'var(--tabs-height)',
+ height: 'var(--tabs-height)',
+ display: 'flex',
+ alignItems: 'center',
+ fontWeight: 'medium',
+ position: 'relative',
+ cursor: 'button',
+ gap: '2',
+ _focusVisible: {
+ zIndex: 1,
+ outline: '2px solid',
+ outlineColor: 'colorPalette.focusRing',
+ },
+ _disabled: {
+ cursor: 'not-allowed',
+ opacity: 0.5,
+ },
+ },
+ content: {
+ focusVisibleRing: 'inside',
+ _horizontal: {
+ width: '100%',
+ pt: 'var(--tabs-content-padding)',
+ },
+ _vertical: {
+ height: '100%',
+ ps: 'var(--tabs-content-padding)',
+ },
+ },
+ indicator: {
+ width: 'var(--width)',
+ height: 'var(--height)',
+ borderRadius: 'var(--tabs-indicator-radius)',
+ bg: 'var(--tabs-indicator-bg)',
+ shadow: 'var(--tabs-indicator-shadow)',
+ zIndex: -1,
+ },
+ },
+ variants: {
+ fitted: {
+ true: {
+ list: {
+ display: 'flex',
+ },
+ trigger: {
+ flex: 1,
+ textAlign: 'center',
+ justifyContent: 'center',
+ },
+ },
+ },
+ justify: {
+ start: {
+ list: {
+ justifyContent: 'flex-start',
+ },
+ },
+ center: {
+ list: {
+ justifyContent: 'center',
+ },
+ },
+ end: {
+ list: {
+ justifyContent: 'flex-end',
+ },
+ },
+ },
+ size: {
+ sm: {
+ root: {
+ '--tabs-height': 'sizes.9',
+ '--tabs-content-padding': 'spacing.3',
+ },
+ trigger: {
+ py: '1',
+ px: '3',
+ textStyle: 'sm',
+ },
+ },
+ md: {
+ root: {
+ '--tabs-height': 'sizes.10',
+ '--tabs-content-padding': 'spacing.4',
+ },
+ trigger: {
+ py: '2',
+ px: '4',
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ root: {
+ '--tabs-height': 'sizes.11',
+ '--tabs-content-padding': 'spacing.4.5',
+ },
+ trigger: {
+ py: '2',
+ px: '4.5',
+ textStyle: 'md',
+ },
+ },
+ },
+ variant: {
+ line: {
+ list: {
+ display: 'flex',
+ borderColor: 'border',
+ _horizontal: {
+ borderBottomWidth: '1px',
+ },
+ _vertical: {
+ borderEndWidth: '1px',
+ },
+ },
+ trigger: {
+ color: 'fg.muted',
+ _disabled: {
+ _active: {
+ bg: 'initial',
+ },
+ },
+ _selected: {
+ color: 'fg',
+ _horizontal: {
+ layerStyle: 'indicator.bottom',
+ '--indicator-offset-y': '-1px',
+ '--indicator-color': 'colors.colorPalette.solid',
+ },
+ _vertical: {
+ layerStyle: 'indicator.end',
+ '--indicator-offset-x': '-1px',
+ },
+ },
+ },
+ },
+ subtle: {
+ trigger: {
+ borderRadius: 'var(--tabs-trigger-radius)',
+ color: 'fg.muted',
+ _selected: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ },
+ },
+ },
+ enclosed: {
+ list: {
+ bg: 'bg.muted',
+ padding: '1',
+ borderRadius: 'l3',
+ minH: 'calc(var(--tabs-height) - 4px)',
+ },
+ trigger: {
+ justifyContent: 'center',
+ color: 'fg.muted',
+ borderRadius: 'var(--tabs-trigger-radius)',
+ _selected: {
+ bg: 'bg',
+ color: 'colorPalette.fg',
+ shadow: 'xs',
+ },
+ },
+ },
+ outline: {
+ list: {
+ '--line-thickness': '1px',
+ '--line-offset': 'calc(var(--line-thickness) * -1)',
+ borderColor: 'border',
+ display: 'flex',
+ _horizontal: {
+ _before: {
+ content: '""',
+ position: 'absolute',
+ bottom: '0px',
+ width: '100%',
+ borderBottomWidth: 'var(--line-thickness)',
+ borderBottomColor: 'border',
+ },
+ },
+ _vertical: {
+ _before: {
+ content: '""',
+ position: 'absolute',
+ insetInline: 'var(--line-offset)',
+ height: 'calc(100% - calc(var(--line-thickness) * 2))',
+ borderEndWidth: 'var(--line-thickness)',
+ borderEndColor: 'border',
+ },
+ },
+ },
+ trigger: {
+ color: 'fg.muted',
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ _selected: {
+ bg: 'currentBg',
+ color: 'colorPalette.fg',
+ },
+ _horizontal: {
+ borderTopRadius: 'var(--tabs-trigger-radius)',
+ marginBottom: 'var(--line-offset)',
+ marginEnd: {
+ _notLast: 'var(--line-offset)',
+ },
+ _selected: {
+ borderColor: 'border',
+ borderBottomColor: 'transparent',
+ },
+ },
+ _vertical: {
+ borderStartRadius: 'var(--tabs-trigger-radius)',
+ marginEnd: 'var(--line-offset)',
+ marginBottom: {
+ _notLast: 'var(--line-offset)',
+ },
+ _selected: {
+ borderColor: 'border',
+ borderEndColor: 'transparent',
+ },
+ },
+ },
+ },
+ plain: {
+ trigger: {
+ color: 'fg.muted',
+ _selected: {
+ color: 'colorPalette.fg',
+ },
+ borderRadius: 'var(--tabs-trigger-radius)',
+ '&[data-selected][data-ssr]': {
+ bg: 'var(--tabs-indicator-bg)',
+ shadow: 'var(--tabs-indicator-shadow)',
+ borderRadius: 'var(--tabs-indicator-radius)',
+ },
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'line',
+ },
+ },
+ tag: {
+ slots: ['root', 'label', 'closeTrigger', 'startElement', 'endElement'],
+ className: 'chakra-tag',
+ base: {
+ root: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ verticalAlign: 'top',
+ maxWidth: '100%',
+ userSelect: 'none',
+ borderRadius: 'l2',
+ focusVisibleRing: 'outside',
+ },
+ label: {
+ lineClamp: '1',
+ },
+ closeTrigger: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ outline: '0',
+ borderRadius: 'l1',
+ color: 'currentColor',
+ focusVisibleRing: 'inside',
+ focusRingWidth: '2px',
+ },
+ startElement: {
+ flexShrink: 0,
+ boxSize: 'var(--tag-element-size)',
+ ms: 'var(--tag-element-offset)',
+ '&:has([data-scope=avatar])': {
+ boxSize: 'var(--tag-avatar-size)',
+ ms: 'calc(var(--tag-element-offset) * 1.5)',
+ },
+ _icon: {
+ boxSize: '100%',
+ },
+ },
+ endElement: {
+ flexShrink: 0,
+ boxSize: 'var(--tag-element-size)',
+ me: 'var(--tag-element-offset)',
+ _icon: {
+ boxSize: '100%',
+ },
+ '&:has(button)': {
+ ms: 'calc(var(--tag-element-offset) * -1)',
+ },
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ px: '1.5',
+ minH: '4.5',
+ gap: '1',
+ '--tag-avatar-size': 'spacing.3',
+ '--tag-element-size': 'spacing.3',
+ '--tag-element-offset': '-2px',
+ },
+ label: {
+ textStyle: 'xs',
+ },
+ },
+ md: {
+ root: {
+ px: '1.5',
+ minH: '5',
+ gap: '1',
+ '--tag-avatar-size': 'spacing.3.5',
+ '--tag-element-size': 'spacing.3.5',
+ '--tag-element-offset': '-2px',
+ },
+ label: {
+ textStyle: 'xs',
+ },
+ },
+ lg: {
+ root: {
+ px: '2',
+ minH: '6',
+ gap: '1.5',
+ '--tag-avatar-size': 'spacing.4.5',
+ '--tag-element-size': 'spacing.4',
+ '--tag-element-offset': '-3px',
+ },
+ label: {
+ textStyle: 'sm',
+ },
+ },
+ xl: {
+ root: {
+ px: '2.5',
+ minH: '8',
+ gap: '1.5',
+ '--tag-avatar-size': 'spacing.6',
+ '--tag-element-size': 'spacing.4.5',
+ '--tag-element-offset': '-4px',
+ },
+ label: {
+ textStyle: 'sm',
+ },
+ },
+ },
+ variant: {
+ subtle: {
+ root: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ },
+ },
+ solid: {
+ root: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ },
+ outline: {
+ root: {
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ },
+ surface: {
+ root: {
+ bg: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ shadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ shadowColor: 'colorPalette.muted',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'surface',
+ },
+ },
+ toast: {
+ slots: [
+ 'root',
+ 'title',
+ 'description',
+ 'indicator',
+ 'closeTrigger',
+ 'actionTrigger',
+ ],
+ className: 'chakra-toast',
+ base: {
+ root: {
+ width: 'full',
+ display: 'flex',
+ alignItems: 'flex-start',
+ position: 'relative',
+ gap: '3',
+ py: '4',
+ ps: '4',
+ pe: '6',
+ borderRadius: 'l2',
+ translate: 'var(--x) var(--y)',
+ scale: 'var(--scale)',
+ zIndex: 'var(--z-index)',
+ height: 'var(--height)',
+ opacity: 'var(--opacity)',
+ willChange: 'translate, opacity, scale',
+ transition:
+ 'translate 400ms, scale 400ms, opacity 400ms, height 400ms, box-shadow 200ms',
+ transitionTimingFunction: 'cubic-bezier(0.21, 1.02, 0.73, 1)',
+ _closed: {
+ transition: 'translate 400ms, scale 400ms, opacity 200ms',
+ transitionTimingFunction: 'cubic-bezier(0.06, 0.71, 0.55, 1)',
+ },
+ bg: 'bg.panel',
+ color: 'fg',
+ boxShadow: 'xl',
+ '--toast-trigger-bg': 'colors.bg.muted',
+ '&[data-type=warning]': {
+ bg: 'orange.solid',
+ color: 'orange.contrast',
+ '--toast-trigger-bg': '{white/10}',
+ '--toast-border-color': '{white/40}',
+ },
+ '&[data-type=success]': {
+ bg: 'green.solid',
+ color: 'green.contrast',
+ '--toast-trigger-bg': '{white/10}',
+ '--toast-border-color': '{white/40}',
+ },
+ '&[data-type=error]': {
+ bg: 'red.solid',
+ color: 'red.contrast',
+ '--toast-trigger-bg': '{white/10}',
+ '--toast-border-color': '{white/40}',
+ },
+ },
+ title: {
+ fontWeight: 'medium',
+ textStyle: 'sm',
+ marginEnd: '2',
+ },
+ description: {
+ display: 'inline',
+ textStyle: 'sm',
+ opacity: '0.8',
+ },
+ indicator: {
+ flexShrink: '0',
+ boxSize: '5',
+ },
+ actionTrigger: {
+ textStyle: 'sm',
+ fontWeight: 'medium',
+ height: '8',
+ px: '3',
+ borderRadius: 'l2',
+ alignSelf: 'center',
+ borderWidth: '1px',
+ borderColor: 'var(--toast-border-color, inherit)',
+ transition: 'background 200ms',
+ _hover: {
+ bg: 'var(--toast-trigger-bg)',
+ },
+ },
+ closeTrigger: {
+ position: 'absolute',
+ top: '1',
+ insetEnd: '1',
+ padding: '1',
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ color: '{currentColor/60}',
+ borderRadius: 'l2',
+ textStyle: 'md',
+ transition: 'background 200ms',
+ },
+ },
+ },
+ tooltip: {
+ slots: ['trigger', 'arrow', 'arrowTip', 'positioner', 'content'],
+ className: 'chakra-tooltip',
+ base: {
+ content: {
+ '--tooltip-bg': 'colors.bg.inverted',
+ bg: 'var(--tooltip-bg)',
+ color: 'fg.inverted',
+ px: '2.5',
+ py: '1',
+ borderRadius: 'l2',
+ fontWeight: 'medium',
+ textStyle: 'xs',
+ boxShadow: 'md',
+ maxW: 'xs',
+ zIndex: 'tooltip',
+ transformOrigin: 'var(--transform-origin)',
+ _open: {
+ animationStyle: 'scale-fade-in',
+ animationDuration: 'fast',
+ },
+ _closed: {
+ animationStyle: 'scale-fade-out',
+ animationDuration: 'fast',
+ },
+ },
+ arrow: {
+ '--arrow-size': 'sizes.2',
+ '--arrow-background': 'var(--tooltip-bg)',
+ },
+ arrowTip: {
+ borderTopWidth: '1px',
+ borderInlineStartWidth: '1px',
+ borderColor: 'var(--tooltip-bg)',
+ },
+ },
+ },
+ status: {
+ className: 'chakra-status',
+ slots: ['root', 'indicator'],
+ base: {
+ root: {
+ display: 'inline-flex',
+ alignItems: 'center',
+ gap: '2',
+ },
+ indicator: {
+ width: '0.64em',
+ height: '0.64em',
+ flexShrink: 0,
+ borderRadius: 'full',
+ forcedColorAdjust: 'none',
+ bg: 'colorPalette.solid',
+ },
+ },
+ variants: {
+ size: {
+ sm: {
+ root: {
+ textStyle: 'xs',
+ },
+ },
+ md: {
+ root: {
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ root: {
+ textStyle: 'md',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ timeline: {
+ slots: [
+ 'root',
+ 'item',
+ 'content',
+ 'separator',
+ 'indicator',
+ 'connector',
+ 'title',
+ 'description',
+ ],
+ className: 'chakra-timeline',
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ width: 'full',
+ '--timeline-thickness': '1px',
+ '--timeline-gutter': '4px',
+ },
+ item: {
+ display: 'flex',
+ position: 'relative',
+ alignItems: 'flex-start',
+ flexShrink: 0,
+ gap: '4',
+ _last: {
+ '& :where(.chakra-timeline__separator)': {
+ display: 'none',
+ },
+ },
+ },
+ separator: {
+ position: 'absolute',
+ borderStartWidth: 'var(--timeline-thickness)',
+ ms: 'calc(-1 * var(--timeline-thickness) / 2)',
+ insetInlineStart: 'calc(var(--timeline-indicator-size) / 2)',
+ insetBlock: '0',
+ borderColor: 'border',
+ },
+ indicator: {
+ outline: '2px solid {colors.bg}',
+ position: 'relative',
+ flexShrink: '0',
+ boxSize: 'var(--timeline-indicator-size)',
+ fontSize: 'var(--timeline-font-size)',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 'full',
+ fontWeight: 'medium',
+ },
+ connector: {
+ alignSelf: 'stretch',
+ position: 'relative',
+ },
+ content: {
+ pb: '6',
+ display: 'flex',
+ flexDirection: 'column',
+ width: 'full',
+ gap: '2',
+ },
+ title: {
+ display: 'flex',
+ fontWeight: 'medium',
+ flexWrap: 'wrap',
+ gap: '1.5',
+ alignItems: 'center',
+ mt: 'var(--timeline-margin)',
+ },
+ description: {
+ color: 'fg.muted',
+ textStyle: 'xs',
+ },
+ },
+ variants: {
+ variant: {
+ subtle: {
+ indicator: {
+ bg: 'colorPalette.muted',
+ },
+ },
+ solid: {
+ indicator: {
+ bg: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ },
+ outline: {
+ indicator: {
+ bg: 'currentBg',
+ borderWidth: '1px',
+ borderColor: 'colorPalette.muted',
+ },
+ },
+ plain: {},
+ },
+ size: {
+ sm: {
+ root: {
+ '--timeline-indicator-size': 'sizes.4',
+ '--timeline-font-size': 'fontSizes.2xs',
+ },
+ title: {
+ textStyle: 'xs',
+ },
+ },
+ md: {
+ root: {
+ '--timeline-indicator-size': 'sizes.5',
+ '--timeline-font-size': 'fontSizes.xs',
+ },
+ title: {
+ textStyle: 'sm',
+ },
+ },
+ lg: {
+ root: {
+ '--timeline-indicator-size': 'sizes.6',
+ '--timeline-font-size': 'fontSizes.xs',
+ },
+ title: {
+ mt: '0.5',
+ textStyle: 'sm',
+ },
+ },
+ xl: {
+ root: {
+ '--timeline-indicator-size': 'sizes.8',
+ '--timeline-font-size': 'fontSizes.sm',
+ },
+ title: {
+ mt: '1.5',
+ textStyle: 'sm',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'solid',
+ },
+ },
+ colorPicker: {
+ className: 'colorPicker',
+ slots: [
+ 'root',
+ 'label',
+ 'control',
+ 'trigger',
+ 'positioner',
+ 'content',
+ 'area',
+ 'areaThumb',
+ 'valueText',
+ 'areaBackground',
+ 'channelSlider',
+ 'channelSliderLabel',
+ 'channelSliderTrack',
+ 'channelSliderThumb',
+ 'channelSliderValueText',
+ 'channelInput',
+ 'transparencyGrid',
+ 'swatchGroup',
+ 'swatchTrigger',
+ 'swatchIndicator',
+ 'swatch',
+ 'eyeDropperTrigger',
+ 'formatTrigger',
+ 'formatSelect',
+ 'view',
+ ],
+ base: {
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1.5',
+ },
+ label: {
+ color: 'fg',
+ fontWeight: 'medium',
+ textStyle: 'sm',
+ },
+ valueText: {
+ textAlign: 'start',
+ },
+ control: {
+ display: 'flex',
+ alignItems: 'center',
+ flexDirection: 'row',
+ gap: '2',
+ position: 'relative',
+ },
+ swatchTrigger: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ trigger: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexDirection: 'row',
+ flexShrink: '0',
+ gap: '2',
+ textStyle: 'sm',
+ minH: 'var(--input-height)',
+ minW: 'var(--input-height)',
+ px: '1',
+ rounded: 'l2',
+ _disabled: {
+ opacity: '0.5',
+ },
+ '--focus-color': 'colors.colorPalette.focusRing',
+ '&:focus-visible': {
+ borderColor: 'var(--focus-color)',
+ outline: '1px solid var(--focus-color)',
+ },
+ '&[data-fit-content]': {
+ '--input-height': 'unset',
+ px: '0',
+ border: '0',
+ },
+ },
+ content: {
+ display: 'flex',
+ flexDirection: 'column',
+ bg: 'bg.panel',
+ borderRadius: 'l3',
+ boxShadow: 'lg',
+ width: '64',
+ p: '4',
+ gap: '3',
+ zIndex: 'dropdown',
+ _open: {
+ animationStyle: 'slide-fade-in',
+ animationDuration: 'fast',
+ },
+ _closed: {
+ animationStyle: 'slide-fade-out',
+ animationDuration: 'faster',
+ },
+ },
+ area: {
+ height: '180px',
+ borderRadius: 'l2',
+ overflow: 'hidden',
+ },
+ areaThumb: {
+ borderRadius: 'full',
+ height: 'var(--thumb-size)',
+ width: 'var(--thumb-size)',
+ borderWidth: '2px',
+ borderColor: 'white',
+ shadow: 'sm',
+ focusVisibleRing: 'mixed',
+ focusRingColor: 'white',
+ },
+ areaBackground: {
+ height: 'full',
+ },
+ channelSlider: {
+ borderRadius: 'l2',
+ flex: '1',
+ },
+ channelSliderTrack: {
+ height: 'var(--slider-height)',
+ borderRadius: 'inherit',
+ boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)',
+ },
+ swatchGroup: {
+ display: 'flex',
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ gap: '2',
+ },
+ swatch: {
+ boxSize: 'var(--swatch-size)',
+ shadow: 'inset 0 0 0 1px rgba(0, 0, 0, 0.1)',
+ '--checker-size': '8px',
+ '--checker-bg': 'colors.bg',
+ '--checker-fg': 'colors.bg.emphasized',
+ background:
+ 'linear-gradient(var(--color), var(--color)), repeating-conic-gradient(var(--checker-fg) 0%, var(--checker-fg) 25%, var(--checker-bg) 0%, var(--checker-bg) 50%) 0% 50% / var(--checker-size) var(--checker-size) !important',
+ display: 'inline-flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexShrink: '0',
+ borderRadius: 'l1',
+ },
+ swatchIndicator: {
+ color: 'white',
+ rounded: 'full',
+ },
+ channelSliderThumb: {
+ borderRadius: 'full',
+ height: 'var(--thumb-size)',
+ width: 'var(--thumb-size)',
+ borderWidth: '2px',
+ borderColor: 'white',
+ shadow: 'sm',
+ transform: 'translate(-50%, -50%)',
+ focusVisibleRing: 'outside',
+ focusRingOffset: '1px',
+ },
+ channelInput: {
+ width: '100%',
+ minWidth: '0',
+ outline: '0',
+ position: 'relative',
+ appearance: 'none',
+ textAlign: 'start',
+ borderRadius: 'l2',
+ _disabled: {
+ layerStyle: 'disabled',
+ },
+ height: 'var(--input-height)',
+ minW: 'var(--input-height)',
+ '--focus-color': 'colors.colorPalette.focusRing',
+ '--error-color': 'colors.border.error',
+ _invalid: {
+ focusRingColor: 'var(--error-color)',
+ borderColor: 'var(--error-color)',
+ },
+ '&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
+ WebkitAppearance: 'none',
+ margin: 0,
+ },
+ },
+ formatSelect: {
+ textStyle: 'xs',
+ textTransform: 'uppercase',
+ borderWidth: '1px',
+ minH: '6',
+ focusRing: 'inside',
+ rounded: 'l2',
+ },
+ transparencyGrid: {
+ borderRadius: 'l2',
+ },
+ view: {
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '2',
+ },
+ },
+ variants: {
+ size: {
+ '2xs': {
+ channelInput: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.7',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.4.5',
+ },
+ trigger: {
+ '--input-height': 'sizes.7',
+ },
+ area: {
+ '--thumb-size': 'sizes.3',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3',
+ '--thumb-size': 'sizes.3',
+ },
+ },
+ xs: {
+ channelInput: {
+ textStyle: 'xs',
+ px: '2',
+ '--input-height': 'sizes.8',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.5',
+ },
+ trigger: {
+ '--input-height': 'sizes.8',
+ },
+ area: {
+ '--thumb-size': 'sizes.3.5',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3.5',
+ '--thumb-size': 'sizes.3.5',
+ },
+ },
+ sm: {
+ channelInput: {
+ textStyle: 'sm',
+ px: '2.5',
+ '--input-height': 'sizes.9',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.6',
+ },
+ trigger: {
+ '--input-height': 'sizes.9',
+ },
+ area: {
+ '--thumb-size': 'sizes.3.5',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3.5',
+ '--thumb-size': 'sizes.3.5',
+ },
+ },
+ md: {
+ channelInput: {
+ textStyle: 'sm',
+ px: '3',
+ '--input-height': 'sizes.10',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.7',
+ },
+ trigger: {
+ '--input-height': 'sizes.10',
+ },
+ area: {
+ '--thumb-size': 'sizes.3.5',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3.5',
+ '--thumb-size': 'sizes.3.5',
+ },
+ },
+ lg: {
+ channelInput: {
+ textStyle: 'md',
+ px: '4',
+ '--input-height': 'sizes.11',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.7',
+ },
+ trigger: {
+ '--input-height': 'sizes.11',
+ },
+ area: {
+ '--thumb-size': 'sizes.3.5',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3.5',
+ '--thumb-size': 'sizes.3.5',
+ },
+ },
+ xl: {
+ channelInput: {
+ textStyle: 'md',
+ px: '4.5',
+ '--input-height': 'sizes.12',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.8',
+ },
+ trigger: {
+ '--input-height': 'sizes.12',
+ },
+ area: {
+ '--thumb-size': 'sizes.3.5',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3.5',
+ '--thumb-size': 'sizes.3.5',
+ },
+ },
+ '2xl': {
+ channelInput: {
+ textStyle: 'lg',
+ px: '5',
+ '--input-height': 'sizes.16',
+ },
+ swatch: {
+ '--swatch-size': 'sizes.10',
+ },
+ trigger: {
+ '--input-height': 'sizes.16',
+ },
+ area: {
+ '--thumb-size': 'sizes.3.5',
+ },
+ channelSlider: {
+ '--slider-height': 'sizes.3.5',
+ '--thumb-size': 'sizes.3.5',
+ },
+ },
+ },
+ variant: {
+ outline: {
+ channelInput: {
+ bg: 'transparent',
+ borderWidth: '1px',
+ borderColor: 'border',
+ focusVisibleRing: 'inside',
+ },
+ trigger: {
+ borderWidth: '1px',
+ },
+ },
+ subtle: {
+ channelInput: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ focusVisibleRing: 'inside',
+ },
+ trigger: {
+ borderWidth: '1px',
+ borderColor: 'transparent',
+ bg: 'bg.muted',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ variant: 'outline',
+ },
+ },
+ qrCode: {
+ slots: ['root', 'frame', 'pattern', 'overlay', 'downloadTrigger'],
+ className: 'chakra-qr-code',
+ base: {
+ root: {
+ position: 'relative',
+ width: 'fit-content',
+ '--qr-code-overlay-size': 'calc(var(--qr-code-size) / 3)',
+ },
+ frame: {
+ width: 'var(--qr-code-size)',
+ height: 'var(--qr-code-size)',
+ fill: 'currentColor',
+ },
+ overlay: {
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ width: 'var(--qr-code-overlay-size)',
+ height: 'var(--qr-code-overlay-size)',
+ padding: '1',
+ bg: 'bg',
+ rounded: 'l1',
+ },
+ },
+ variants: {
+ size: {
+ '2xs': {
+ root: {
+ '--qr-code-size': '40px',
+ },
+ },
+ xs: {
+ root: {
+ '--qr-code-size': '64px',
+ },
+ },
+ sm: {
+ root: {
+ '--qr-code-size': '80px',
+ },
+ },
+ md: {
+ root: {
+ '--qr-code-size': '120px',
+ },
+ },
+ lg: {
+ root: {
+ '--qr-code-size': '160px',
+ },
+ },
+ xl: {
+ root: {
+ '--qr-code-size': '200px',
+ },
+ },
+ '2xl': {
+ root: {
+ '--qr-code-size': '240px',
+ },
+ },
+ full: {
+ root: {
+ '--qr-code-size': '100%',
+ },
+ },
+ },
+ },
+ defaultVariants: {
+ size: 'md',
+ },
+ },
+ },
+ textStyles: {
+ '2xs': {
+ value: {
+ fontSize: '2xs',
+ lineHeight: '0.75rem',
+ },
+ },
+ xs: {
+ value: {
+ fontSize: 'xs',
+ lineHeight: '1rem',
+ },
+ },
+ sm: {
+ value: {
+ fontSize: 'sm',
+ lineHeight: '1.25rem',
+ },
+ },
+ md: {
+ value: {
+ fontSize: 'md',
+ lineHeight: '1.5rem',
+ },
+ },
+ lg: {
+ value: {
+ fontSize: 'lg',
+ lineHeight: '1.75rem',
+ },
+ },
+ xl: {
+ value: {
+ fontSize: 'xl',
+ lineHeight: '1.875rem',
+ },
+ },
+ '2xl': {
+ value: {
+ fontSize: '2xl',
+ lineHeight: '2rem',
+ },
+ },
+ '3xl': {
+ value: {
+ fontSize: '3xl',
+ lineHeight: '2.375rem',
+ },
+ },
+ '4xl': {
+ value: {
+ fontSize: '4xl',
+ lineHeight: '2.75rem',
+ letterSpacing: '-0.025em',
+ },
+ },
+ '5xl': {
+ value: {
+ fontSize: '5xl',
+ lineHeight: '3.75rem',
+ letterSpacing: '-0.025em',
+ },
+ },
+ '6xl': {
+ value: {
+ fontSize: '6xl',
+ lineHeight: '4.5rem',
+ letterSpacing: '-0.025em',
+ },
+ },
+ '7xl': {
+ value: {
+ fontSize: '7xl',
+ lineHeight: '5.75rem',
+ letterSpacing: '-0.025em',
+ },
+ },
+ none: {
+ value: {},
+ },
+ },
+ layerStyles: {
+ 'fill.muted': {
+ value: {
+ background: 'colorPalette.muted',
+ color: 'colorPalette.fg',
+ },
+ },
+ 'fill.subtle': {
+ value: {
+ background: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ },
+ },
+ 'fill.surface': {
+ value: {
+ background: 'colorPalette.subtle',
+ color: 'colorPalette.fg',
+ boxShadow: '0 0 0px 1px var(--shadow-color)',
+ boxShadowColor: 'colorPalette.muted',
+ },
+ },
+ 'fill.solid': {
+ value: {
+ background: 'colorPalette.solid',
+ color: 'colorPalette.contrast',
+ },
+ },
+ 'outline.subtle': {
+ value: {
+ color: 'colorPalette.fg',
+ boxShadow: 'inset 0 0 0px 1px var(--shadow-color)',
+ boxShadowColor: 'colorPalette.subtle',
+ },
+ },
+ 'outline.solid': {
+ value: {
+ borderWidth: '1px',
+ borderColor: 'colorPalette.solid',
+ color: 'colorPalette.fg',
+ },
+ },
+ 'indicator.bottom': {
+ value: {
+ position: 'relative',
+ '--indicator-color-fallback': 'colors.colorPalette.solid',
+ _before: {
+ content: '""',
+ position: 'absolute',
+ bottom: 'var(--indicator-offset-y, 0)',
+ insetInline: 'var(--indicator-offset-x, 0)',
+ height: 'var(--indicator-thickness, 2px)',
+ background:
+ 'var(--indicator-color, var(--indicator-color-fallback))',
+ },
+ },
+ },
+ 'indicator.top': {
+ value: {
+ position: 'relative',
+ '--indicator-color-fallback': 'colors.colorPalette.solid',
+ _before: {
+ content: '""',
+ position: 'absolute',
+ top: 'var(--indicator-offset-y, 0)',
+ insetInline: 'var(--indicator-offset-x, 0)',
+ height: 'var(--indicator-thickness, 2px)',
+ background:
+ 'var(--indicator-color, var(--indicator-color-fallback))',
+ },
+ },
+ },
+ 'indicator.start': {
+ value: {
+ position: 'relative',
+ '--indicator-color-fallback': 'colors.colorPalette.solid',
+ _before: {
+ content: '""',
+ position: 'absolute',
+ insetInlineStart: 'var(--indicator-offset-x, 0)',
+ insetBlock: 'var(--indicator-offset-y, 0)',
+ width: 'var(--indicator-thickness, 2px)',
+ background:
+ 'var(--indicator-color, var(--indicator-color-fallback))',
+ },
+ },
+ },
+ 'indicator.end': {
+ value: {
+ position: 'relative',
+ '--indicator-color-fallback': 'colors.colorPalette.solid',
+ _before: {
+ content: '""',
+ position: 'absolute',
+ insetInlineEnd: 'var(--indicator-offset-x, 0)',
+ insetBlock: 'var(--indicator-offset-y, 0)',
+ width: 'var(--indicator-thickness, 2px)',
+ background:
+ 'var(--indicator-color, var(--indicator-color-fallback))',
+ },
+ },
+ },
+ disabled: {
+ value: {
+ opacity: '0.5',
+ cursor: 'not-allowed',
+ },
+ },
+ none: {
+ value: {},
+ },
+ },
+ animationStyles: {
+ 'slide-fade-in': {
+ value: {
+ transformOrigin: 'var(--transform-origin)',
+ '&[data-placement^=top]': {
+ animationName: 'slide-from-bottom, fade-in',
+ },
+ '&[data-placement^=bottom]': {
+ animationName: 'slide-from-top, fade-in',
+ },
+ '&[data-placement^=left]': {
+ animationName: 'slide-from-right, fade-in',
+ },
+ '&[data-placement^=right]': {
+ animationName: 'slide-from-left, fade-in',
+ },
+ },
+ },
+ 'slide-fade-out': {
+ value: {
+ transformOrigin: 'var(--transform-origin)',
+ '&[data-placement^=top]': {
+ animationName: 'slide-to-bottom, fade-out',
+ },
+ '&[data-placement^=bottom]': {
+ animationName: 'slide-to-top, fade-out',
+ },
+ '&[data-placement^=left]': {
+ animationName: 'slide-to-right, fade-out',
+ },
+ '&[data-placement^=right]': {
+ animationName: 'slide-to-left, fade-out',
+ },
+ },
+ },
+ 'scale-fade-in': {
+ value: {
+ transformOrigin: 'var(--transform-origin)',
+ animationName: 'scale-in, fade-in',
+ },
+ },
+ 'scale-fade-out': {
+ value: {
+ transformOrigin: 'var(--transform-origin)',
+ animationName: 'scale-out, fade-out',
+ },
+ },
+ },
+ },
+};
diff --git a/front/package.json b/front/package.json
index 90acd32..b811c0a 100644
--- a/front/package.json
+++ b/front/package.json
@@ -29,11 +29,11 @@
"*.{ts,tsx,js,jsx,json}": "prettier --write"
},
"dependencies": {
- "react-speech-recognition": "4.0.0",
+ "react-speech-recognition": "4.0.1",
"regenerator-runtime": "0.14.1",
"@trivago/prettier-plugin-sort-imports": "5.2.2",
- "@chakra-ui/cli": "3.16.0",
- "@chakra-ui/react": "3.16.0",
+ "@chakra-ui/cli": "3.17.0",
+ "@chakra-ui/react": "3.17.0",
"@emotion/react": "11.14.0",
"allotment": "1.20.3",
"css-mediaquery": "0.1.2",
@@ -44,15 +44,15 @@
"react-dom": "19.1.0",
"react-error-boundary": "5.0.0",
"react-icons": "5.5.0",
- "react-router-dom": "7.5.0",
+ "react-router-dom": "7.5.3",
"react-select": "5.10.1",
"react-use": "17.6.0",
- "zod": "3.24.2",
+ "zod": "3.24.3",
"zustand": "5.0.3"
},
"devDependencies": {
"@chakra-ui/styled-system": "^2.12.0",
- "@playwright/test": "1.51.1",
+ "@playwright/test": "1.52.0",
"@storybook/addon-actions": "8.6.12",
"@storybook/addon-essentials": "8.6.12",
"@storybook/addon-links": "8.6.12",
@@ -65,29 +65,29 @@
"@testing-library/user-event": "14.6.1",
"@trivago/prettier-plugin-sort-imports": "5.2.2",
"@types/jest": "29.5.14",
- "@types/node": "22.14.1",
- "@types/react": "19.1.1",
- "@types/react-dom": "19.1.2",
- "@typescript-eslint/eslint-plugin": "8.30.0",
- "@typescript-eslint/parser": "8.30.0",
- "@vitejs/plugin-react": "4.3.4",
- "eslint": "9.24.0",
+ "@types/node": "22.15.3",
+ "@types/react": "19.1.2",
+ "@types/react-dom": "19.1.3",
+ "@typescript-eslint/eslint-plugin": "8.31.1",
+ "@typescript-eslint/parser": "8.31.1",
+ "@vitejs/plugin-react": "4.4.1",
+ "eslint": "9.25.1",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-storybook": "0.12.0",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
- "knip": "5.50.3",
+ "knip": "5.52.0",
"lint-staged": "15.5.1",
- "npm-check-updates": "^17.1.18",
+ "npm-check-updates": "^18.0.1",
"prettier": "3.5.3",
- "puppeteer": "24.6.1",
+ "puppeteer": "24.7.2",
"react-is": "19.1.0",
"storybook": "8.6.12",
"ts-node": "10.9.2",
"typescript": "5.8.3",
- "vite": "6.2.6",
- "vitest": "3.1.1"
+ "vite": "6.3.4",
+ "vitest": "3.1.2"
}
}
diff --git a/front/pnpm-lock.yaml b/front/pnpm-lock.yaml
index ac0b33e..28da307 100644
--- a/front/pnpm-lock.yaml
+++ b/front/pnpm-lock.yaml
@@ -9,14 +9,14 @@ importers:
.:
dependencies:
'@chakra-ui/cli':
- specifier: 3.16.0
- version: 3.16.0(@chakra-ui/react@3.16.0(@emotion/react@11.14.0(@types/react@19.1.1)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))
+ specifier: 3.17.0
+ version: 3.17.0(@chakra-ui/react@3.17.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))
'@chakra-ui/react':
- specifier: 3.16.0
- version: 3.16.0(@emotion/react@11.14.0(@types/react@19.1.1)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ specifier: 3.17.0
+ version: 3.17.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@emotion/react':
specifier: 11.14.0
- version: 11.14.0(@types/react@19.1.1)(react@19.1.0)
+ version: 11.14.0(@types/react@19.1.2)(react@19.1.0)
'@trivago/prettier-plugin-sort-imports':
specifier: 5.2.2
version: 5.2.2(prettier@3.5.3)
@@ -48,14 +48,14 @@ importers:
specifier: 5.5.0
version: 5.5.0(react@19.1.0)
react-router-dom:
- specifier: 7.5.0
- version: 7.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ specifier: 7.5.3
+ version: 7.5.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-select:
specifier: 5.10.1
- version: 5.10.1(@types/react@19.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 5.10.1(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-speech-recognition:
- specifier: 4.0.0
- version: 4.0.0(react@19.1.0)
+ specifier: 4.0.1
+ version: 4.0.1(react@19.1.0)
react-use:
specifier: 17.6.0
version: 17.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -63,24 +63,24 @@ importers:
specifier: 0.14.1
version: 0.14.1
zod:
- specifier: 3.24.2
- version: 3.24.2
+ specifier: 3.24.3
+ version: 3.24.3
zustand:
specifier: 5.0.3
- version: 5.0.3(@types/react@19.1.1)(react@19.1.0)
+ version: 5.0.3(@types/react@19.1.2)(react@19.1.0)
devDependencies:
'@chakra-ui/styled-system':
specifier: ^2.12.0
version: 2.12.0(react@19.1.0)
'@playwright/test':
- specifier: 1.51.1
- version: 1.51.1
+ specifier: 1.52.0
+ version: 1.52.0
'@storybook/addon-actions':
specifier: 8.6.12
version: 8.6.12(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-essentials':
specifier: 8.6.12
- version: 8.6.12(@types/react@19.1.1)(storybook@8.6.12(prettier@3.5.3))
+ version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-links':
specifier: 8.6.12
version: 8.6.12(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))
@@ -92,7 +92,7 @@ importers:
version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.3)
'@storybook/react-vite':
specifier: 8.6.12
- version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.34.6)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
+ version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.40.1)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
'@storybook/theming':
specifier: 8.6.12
version: 8.6.12(storybook@8.6.12(prettier@3.5.3))
@@ -101,7 +101,7 @@ importers:
version: 6.6.3
'@testing-library/react':
specifier: 16.3.0
- version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.1.1))(@types/react@19.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@testing-library/user-event':
specifier: 14.6.1
version: 14.6.1(@testing-library/dom@10.4.0)
@@ -109,59 +109,59 @@ importers:
specifier: 29.5.14
version: 29.5.14
'@types/node':
- specifier: 22.14.1
- version: 22.14.1
+ specifier: 22.15.3
+ version: 22.15.3
'@types/react':
- specifier: 19.1.1
- version: 19.1.1
- '@types/react-dom':
specifier: 19.1.2
- version: 19.1.2(@types/react@19.1.1)
+ version: 19.1.2
+ '@types/react-dom':
+ specifier: 19.1.3
+ version: 19.1.3(@types/react@19.1.2)
'@typescript-eslint/eslint-plugin':
- specifier: 8.30.0
- version: 8.30.0(@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
+ specifier: 8.31.1
+ version: 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/parser':
- specifier: 8.30.0
- version: 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
+ specifier: 8.31.1
+ version: 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
'@vitejs/plugin-react':
- specifier: 4.3.4
- version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
+ specifier: 4.4.1
+ version: 4.4.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
eslint:
- specifier: 9.24.0
- version: 9.24.0(jiti@2.4.2)
+ specifier: 9.25.1
+ version: 9.25.1(jiti@2.4.2)
eslint-plugin-import:
specifier: 2.31.0
- version: 2.31.0(@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))
+ version: 2.31.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))
eslint-plugin-react:
specifier: 7.37.5
- version: 7.37.5(eslint@9.24.0(jiti@2.4.2))
+ version: 7.37.5(eslint@9.25.1(jiti@2.4.2))
eslint-plugin-react-hooks:
specifier: 5.2.0
- version: 5.2.0(eslint@9.24.0(jiti@2.4.2))
+ version: 5.2.0(eslint@9.25.1(jiti@2.4.2))
eslint-plugin-storybook:
specifier: 0.12.0
- version: 0.12.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
+ version: 0.12.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
jest:
specifier: 29.7.0
- version: 29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ version: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
jest-environment-jsdom:
specifier: 29.7.0
version: 29.7.0
knip:
- specifier: 5.50.3
- version: 5.50.3(@types/node@22.14.1)(typescript@5.8.3)
+ specifier: 5.52.0
+ version: 5.52.0(@types/node@22.15.3)(typescript@5.8.3)
lint-staged:
specifier: 15.5.1
version: 15.5.1
npm-check-updates:
- specifier: ^17.1.18
- version: 17.1.18
+ specifier: ^18.0.1
+ version: 18.0.1
prettier:
specifier: 3.5.3
version: 3.5.3
puppeteer:
- specifier: 24.6.1
- version: 24.6.1(typescript@5.8.3)
+ specifier: 24.7.2
+ version: 24.7.2(typescript@5.8.3)
react-is:
specifier: 19.1.0
version: 19.1.0
@@ -170,16 +170,16 @@ importers:
version: 8.6.12(prettier@3.5.3)
ts-node:
specifier: 10.9.2
- version: 10.9.2(@types/node@22.14.1)(typescript@5.8.3)
+ version: 10.9.2(@types/node@22.15.3)(typescript@5.8.3)
typescript:
specifier: 5.8.3
version: 5.8.3
vite:
- specifier: 6.2.6
- version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ specifier: 6.3.4
+ version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
vitest:
- specifier: 3.1.1
- version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@20.0.3)(terser@5.39.0)(yaml@2.7.0)
+ specifier: 3.1.2
+ version: 3.1.2(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@20.0.3)(terser@5.39.0)(yaml@2.7.0)
packages:
@@ -190,8 +190,8 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@ark-ui/react@5.5.0':
- resolution: {integrity: sha512-zLERNKOrf77K0OMOLoo5+jZQn9uXxYck56gBzx/zhW2SjFe0M2lE6VyaIiwgKGIqbGre59gD9/tyTsqO6bqARQ==}
+ '@ark-ui/react@5.8.0':
+ resolution: {integrity: sha512-5KrB7YqJ1YXz5DNmu5LWoWp1JeqC/SPdXMRekvOopDdKqWARsfdSV+mZuTHq2UY5bCSv8GYZJEBhbQyk265Yxw==}
peerDependencies:
react: '>=18.0.0'
react-dom: '>=18.0.0'
@@ -200,32 +200,62 @@ packages:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.26.8':
resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@7.27.1':
+ resolution: {integrity: sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.26.8':
resolution: {integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==}
engines: {node: '>=6.9.0'}
+ '@babel/core@7.27.1':
+ resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/generator@7.26.8':
resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.27.1':
+ resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-compilation-targets@7.26.5':
resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-compilation-targets@7.27.1':
+ resolution: {integrity: sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-imports@7.25.9':
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.27.1':
+ resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-transforms@7.26.0':
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-module-transforms@7.27.1':
+ resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-plugin-utils@7.26.5':
resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
engines: {node: '>=6.9.0'}
@@ -234,23 +264,44 @@ packages:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.25.9':
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helpers@7.26.7':
resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@7.27.1':
+ resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/parser@7.26.8':
resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==}
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.27.1':
+ resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/plugin-syntax-async-generators@7.8.4':
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
@@ -362,25 +413,37 @@ packages:
resolution: {integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.27.1':
+ resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/traverse@7.26.8':
resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@7.27.1':
+ resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.26.8':
resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.27.1':
+ resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==}
+ engines: {node: '>=6.9.0'}
+
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@chakra-ui/cli@3.16.0':
- resolution: {integrity: sha512-hQVsWWhGzgUF+KZGquVqhxlSoq28Dlv5w6+UheAOS9rXow0UKBzlvD/utUfMQeUcTp6P0rE54epV5tSQT13hDw==}
+ '@chakra-ui/cli@3.17.0':
+ resolution: {integrity: sha512-930P5aUP9yDI/59amE4FyO4gnq3zqLAGHEg0BCtGRjB/DlfjOurz/RJMvMU853L9KVfdGt+i5OWeV2upq9mSkg==}
hasBin: true
peerDependencies:
'@chakra-ui/react': '>=3.0.0-next.0'
- '@chakra-ui/react@3.16.0':
- resolution: {integrity: sha512-NZLGQgIPr/hLeyBoQyUqzaru+RGrs4Zy1kGpnBNGnL2UrCLZryHvax/pdfqId8cJjhWPGxokJUTVcTTMPnN3Gg==}
+ '@chakra-ui/react@3.17.0':
+ resolution: {integrity: sha512-b6syn8PTCAEqXQa52KtVFs2lAavFTldb2SkBbAqmrlWQyE58jTxpgxaEsYsqQxq/bljwC0xHsh5/ACU7Xwr6sA==}
peerDependencies:
'@emotion/react': '>=11'
react: '>=18'
@@ -612,28 +675,28 @@ packages:
resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/config-helpers@0.2.0':
- resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==}
+ '@eslint/config-helpers@0.2.2':
+ resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/core@0.12.0':
- resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
+ '@eslint/core@0.13.0':
+ resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/eslintrc@3.3.1':
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.24.0':
- resolution: {integrity: sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==}
+ '@eslint/js@9.25.1':
+ resolution: {integrity: sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.6':
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/plugin-kit@0.2.7':
- resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
+ '@eslint/plugin-kit@0.2.8':
+ resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@floating-ui/core@1.6.9':
@@ -665,11 +728,11 @@ packages:
resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
engines: {node: '>=18.18'}
- '@internationalized/date@3.7.0':
- resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==}
+ '@internationalized/date@3.8.0':
+ resolution: {integrity: sha512-J51AJ0fEL68hE4CwGPa6E0PO6JDaVLd8aln48xFCSy7CZkZc96dGEGmLs2OEEbBxcsVZtfrqkXJwI2/MSG8yKw==}
- '@internationalized/number@3.6.0':
- resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==}
+ '@internationalized/number@3.6.1':
+ resolution: {integrity: sha512-UVsb4bCwbL944E0SX50CHFtWEeZ2uB5VozZ5yDXJdq6iPZsZO5p+bjVMZh2GxHf4Bs/7xtDCcPwEa2NU9DaG/g==}
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
@@ -803,20 +866,20 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@pandacss/is-valid-prop@0.41.0':
- resolution: {integrity: sha512-BE6h6CsJk14ugIRrsazJtN3fcg+KDFRat1Bs93YFKH6jd4DOb1yUyVvC70jKqPVvg70zEcV8acZ7VdcU5TLu+w==}
+ '@pandacss/is-valid-prop@0.53.6':
+ resolution: {integrity: sha512-TgWBQmz/5j/oAMjavqJAjQh1o+yxhYspKvepXPn4lFhAN3yBhilrw9HliAkvpUr0sB2CkJ2BYMpFXbAJYEocsA==}
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@playwright/test@1.51.1':
- resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==}
+ '@playwright/test@1.52.0':
+ resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==}
engines: {node: '>=18'}
hasBin: true
- '@puppeteer/browsers@2.10.0':
- resolution: {integrity: sha512-HdHF4rny4JCvIcm7V1dpvpctIGqM3/Me255CB44vW7hDG1zYMmcBMjpNqZEDxdCfXGLkx5kP0+Jz5DUS+ukqtA==}
+ '@puppeteer/browsers@2.10.2':
+ resolution: {integrity: sha512-i4Ez+s9oRWQbNjtI/3+jxr7OH508mjAKvza0ekPJem0ZtmsYHP3B5dq62+IaBHKaGCOuqJxXzvFLUhJvQ6jtsQ==}
engines: {node: '>=18'}
hasBin: true
@@ -829,98 +892,103 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.34.6':
- resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==}
+ '@rollup/rollup-android-arm-eabi@4.40.1':
+ resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.34.6':
- resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==}
+ '@rollup/rollup-android-arm64@4.40.1':
+ resolution: {integrity: sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.34.6':
- resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==}
+ '@rollup/rollup-darwin-arm64@4.40.1':
+ resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.34.6':
- resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==}
+ '@rollup/rollup-darwin-x64@4.40.1':
+ resolution: {integrity: sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.34.6':
- resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==}
+ '@rollup/rollup-freebsd-arm64@4.40.1':
+ resolution: {integrity: sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.34.6':
- resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==}
+ '@rollup/rollup-freebsd-x64@4.40.1':
+ resolution: {integrity: sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.34.6':
- resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.40.1':
+ resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.34.6':
- resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==}
+ '@rollup/rollup-linux-arm-musleabihf@4.40.1':
+ resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.34.6':
- resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==}
+ '@rollup/rollup-linux-arm64-gnu@4.40.1':
+ resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.34.6':
- resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==}
+ '@rollup/rollup-linux-arm64-musl@4.40.1':
+ resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loongarch64-gnu@4.34.6':
- resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==}
+ '@rollup/rollup-linux-loongarch64-gnu@4.40.1':
+ resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
- resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.40.1':
+ resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.34.6':
- resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==}
+ '@rollup/rollup-linux-riscv64-gnu@4.40.1':
+ resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.34.6':
- resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==}
+ '@rollup/rollup-linux-riscv64-musl@4.40.1':
+ resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.40.1':
+ resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.34.6':
- resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==}
+ '@rollup/rollup-linux-x64-gnu@4.40.1':
+ resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.34.6':
- resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==}
+ '@rollup/rollup-linux-x64-musl@4.40.1':
+ resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.34.6':
- resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==}
+ '@rollup/rollup-win32-arm64-msvc@4.40.1':
+ resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.34.6':
- resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==}
+ '@rollup/rollup-win32-ia32-msvc@4.40.1':
+ resolution: {integrity: sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.34.6':
- resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==}
+ '@rollup/rollup-win32-x64-msvc@4.40.1':
+ resolution: {integrity: sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==}
cpu: [x64]
os: [win32]
@@ -1188,9 +1256,6 @@ packages:
'@types/cli-table@0.3.4':
resolution: {integrity: sha512-GsALrTL69mlwbAw/MHF1IPTadSLZQnsxe7a80G8l4inN/iEXCOcVeT/S7aRc6hbhqzL9qZ314kHPDQnQ3ev+HA==}
- '@types/cookie@0.6.0':
- resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
-
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@@ -1200,6 +1265,9 @@ packages:
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/estree@1.0.7':
+ resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+
'@types/gensync@1.0.4':
resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==}
@@ -1245,14 +1313,14 @@ packages:
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
- '@types/node@22.14.1':
- resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==}
+ '@types/node@22.15.3':
+ resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==}
'@types/parse-json@4.0.2':
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
- '@types/react-dom@19.1.2':
- resolution: {integrity: sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==}
+ '@types/react-dom@19.1.3':
+ resolution: {integrity: sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==}
peerDependencies:
'@types/react': ^19.0.0
@@ -1261,8 +1329,8 @@ packages:
peerDependencies:
'@types/react': '*'
- '@types/react@19.1.1':
- resolution: {integrity: sha512-ePapxDL7qrgqSF67s0h9m412d9DbXyC1n59O2st+9rjuuamWsZuD2w55rqY12CbzsZ7uVXb5Nw0gEp9Z8MMutQ==}
+ '@types/react@19.1.2':
+ resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==}
'@types/resolve@1.20.6':
resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==}
@@ -1288,16 +1356,16 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@typescript-eslint/eslint-plugin@8.30.0':
- resolution: {integrity: sha512-3LOb8q0E1kazkeON2awh5oWnsn+KO9pPvzSWZNCYeXOZw81yXeq0WfOB22kVCHESHFgQST6LFmkISvjaE9V5kw==}
+ '@typescript-eslint/eslint-plugin@8.31.1':
+ resolution: {integrity: sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/parser@8.30.0':
- resolution: {integrity: sha512-5w64ZeRCgWOA/2ADPoFYmDYdPnEeEkUiFx5Sez7MQpQuxVazHO9wwl+wElokaY5hMKVVor1N13z/tZeWYfVaUg==}
+ '@typescript-eslint/parser@8.31.1':
+ resolution: {integrity: sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1307,12 +1375,12 @@ packages:
resolution: {integrity: sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.30.0':
- resolution: {integrity: sha512-TTkN0Sjk3SxpfW3lvSteOUxcTxnviQKsD1wgf+sk30Aj7UrHjVNFPTosir3+/3eaxpRMau4U/NY6PAw6cmj7hg==}
+ '@typescript-eslint/scope-manager@8.31.1':
+ resolution: {integrity: sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.30.0':
- resolution: {integrity: sha512-8ryZsrZwEuTuC2IBPsb8H5iGQJDdXhHWNc1oNHOp60wGb04/XAG0QU9kUpu0/2hdBPR4/00/Hz4ep+GzpTgDkg==}
+ '@typescript-eslint/type-utils@8.31.1':
+ resolution: {integrity: sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1322,8 +1390,8 @@ packages:
resolution: {integrity: sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.30.0':
- resolution: {integrity: sha512-UQXFVF+8t4YhbU3nxabQL3/uyUEVw9kiVc+V0kZzblElC5MTvzvjJVhmrvI0xya1C1lqhIykWY7CeKioK9RMRw==}
+ '@typescript-eslint/types@8.31.1':
+ resolution: {integrity: sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.27.0':
@@ -1332,8 +1400,8 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/typescript-estree@8.30.0':
- resolution: {integrity: sha512-/5n4GS/8koPkRx0XBl9OCFf9N80u+0h05QBU/z5cDBCUXnPpDmSzQ2FXC7JGvU777GOzE6mUAOx2ABtswgzWgQ==}
+ '@typescript-eslint/typescript-estree@8.31.1':
+ resolution: {integrity: sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
@@ -1345,8 +1413,8 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.30.0':
- resolution: {integrity: sha512-TmrXlhwFWpfUBhJE7NJSyru26XrU/foccGTOFvLGcci38/ZnKXgq2IUtAUqE9ILVNjM4Zm3TccGuvl2QANhjag==}
+ '@typescript-eslint/utils@8.31.1':
+ resolution: {integrity: sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1356,8 +1424,8 @@ packages:
resolution: {integrity: sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/visitor-keys@8.30.0':
- resolution: {integrity: sha512-oj82UQEi0fcYmpQpVISEOUM/icPNJiRh+E6svAtwNP58QpAQnnFigEoeGADm8H7t2bolxSb7+kRYzykbBdA47w==}
+ '@typescript-eslint/visitor-keys@8.31.1':
+ resolution: {integrity: sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@visulima/boxen@1.0.30':
@@ -1365,17 +1433,17 @@ packages:
engines: {node: '>=18.0.0 <=23.x'}
os: [darwin, linux, win32]
- '@vitejs/plugin-react@4.3.4':
- resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
+ '@vitejs/plugin-react@4.4.1':
+ resolution: {integrity: sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0 || ^6.0.0
- '@vitest/expect@3.1.1':
- resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==}
+ '@vitest/expect@3.1.2':
+ resolution: {integrity: sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA==}
- '@vitest/mocker@3.1.1':
- resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==}
+ '@vitest/mocker@3.1.2':
+ resolution: {integrity: sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw==}
peerDependencies:
msw: ^2.4.9
vite: ^5.0.0 || ^6.0.0
@@ -1385,233 +1453,230 @@ packages:
vite:
optional: true
- '@vitest/pretty-format@3.1.1':
- resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==}
+ '@vitest/pretty-format@3.1.2':
+ resolution: {integrity: sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==}
- '@vitest/runner@3.1.1':
- resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==}
+ '@vitest/runner@3.1.2':
+ resolution: {integrity: sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g==}
- '@vitest/snapshot@3.1.1':
- resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==}
+ '@vitest/snapshot@3.1.2':
+ resolution: {integrity: sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q==}
- '@vitest/spy@3.1.1':
- resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==}
+ '@vitest/spy@3.1.2':
+ resolution: {integrity: sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA==}
- '@vitest/utils@3.1.1':
- resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==}
+ '@vitest/utils@3.1.2':
+ resolution: {integrity: sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg==}
'@xobotyi/scrollbar-width@1.9.5':
resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
- '@zag-js/accordion@1.8.2':
- resolution: {integrity: sha512-JszESCOvftl3dG6lEPjZp2p3+0VN0fwMnW+1jhWwMEe5MZ0y0IrcXww2dxet1ln+w5ViRdOTeDR07idbDKYAYg==}
+ '@zag-js/accordion@1.12.0':
+ resolution: {integrity: sha512-9mZgGiyPPKOcNgCjHO67P0pN8tP8wORWc1IhQ9oWCWCtYvGNal8+3+ddooH/N8qW0ZSFURm9gZWbCX1any4Trg==}
- '@zag-js/anatomy@1.8.2':
- resolution: {integrity: sha512-F88Q+Bo1KOFZPHLffOqiuemkgZJbtspQuyOJcWb0bL7Lc1pYC4DIpIj26bcXT8xICDNcwR877hI0Wko//ZgTVA==}
+ '@zag-js/anatomy@1.12.0':
+ resolution: {integrity: sha512-BpnD2qh+shANl127hin9gfOmiHnUaL0whgbBGL6KMuurFg+WPtOBMTxAtbhSRa3524cu61GBkgETH4VAg1xS7w==}
- '@zag-js/aria-hidden@1.8.2':
- resolution: {integrity: sha512-/SV23qfCWMbGdsNZ2pgmVqOv6a4yd/2+FAIRy/6bjZ8axBzhm7NvfDhqjZciN4JuMch82uafeTBZ7pObk/fU1g==}
+ '@zag-js/angle-slider@1.12.0':
+ resolution: {integrity: sha512-PrxmA9EBr0aG0tq3gEYQvX0VlPxGH4tDTWK8ipO05z09wBdfFJIIYQbGCYp4VpZQqJT3QBpDsf43gJFJ5cq4Sw==}
- '@zag-js/auto-resize@1.8.2':
- resolution: {integrity: sha512-Z+94iR/vbPixiifjF+pmOa1UtuM5TTnJqM7D+Ol3WenRrm+Urp4JWAcyaf76NRVWK51KwMwWLljeA6J0H3V6gQ==}
+ '@zag-js/aria-hidden@1.12.0':
+ resolution: {integrity: sha512-YQkGo49bPzjMWTPbnuqGMDDemmppVk8w6QlF+Gygurp2gfeCQngj+2Oz6ZCzvSNIFXjRAL6i31O8BolfV/aLPg==}
- '@zag-js/avatar@1.8.2':
- resolution: {integrity: sha512-PWhYVvXyOt+kdi2Vd6GfqGQQruh1TNylw6TzNbhPt3B6Fj6uNvQqfEsh6yNErfnCeaa4b/Q+48rM4b/t3DzM0g==}
+ '@zag-js/auto-resize@1.12.0':
+ resolution: {integrity: sha512-9y7HCXp4cUcaHxVB5fgC94q6+/ZwsF8X/F3ZY34dSF06xZ4L8mjnp1lF75gzPJMbUGY+sKd0Excpxty8ecWrjg==}
- '@zag-js/carousel@1.8.2':
- resolution: {integrity: sha512-ViPcVQFQfw8ry3i4m2HYixTfN5Km979TWtMnDKdDM3csXLOQJvfCIHtZ/08wWn1302zaDMQe72+p9jDqzqntMg==}
+ '@zag-js/avatar@1.12.0':
+ resolution: {integrity: sha512-0e4ti7Be0p8KbZInkbrz45v/dd5w/OBN0rxeP2yOkHJRCUfPRqx/aE2wXL/66iAuh0RadgOYhgPVf1DjFSqWLw==}
- '@zag-js/checkbox@1.8.2':
- resolution: {integrity: sha512-KWVKo2Cofs9bjKf9QN9d9UJ6jQFuKfTPT4smDIqhXo4MIFa5eOd6yxvwbgvLvBlvvr9I6Amm9T4e9XxFbyrHdA==}
+ '@zag-js/carousel@1.12.0':
+ resolution: {integrity: sha512-E77u1wq472Mh+1dRC+iId5zq35LA10njL7jImO9Mi2Ia1LDrMwxfwsEUs+jh94W0MV1d+jpcJ7MCquQeZrurIg==}
- '@zag-js/clipboard@1.8.2':
- resolution: {integrity: sha512-KwyFxLDPkEwjiI6zxRKG1gQk1q+lL1HN6nvGCMKRxoDtYVaY9VRxQ6mVNg2VUIecM8uuhRnkM1WHGrSTUcaFcQ==}
+ '@zag-js/checkbox@1.12.0':
+ resolution: {integrity: sha512-tt7oWTR2YSk3DT7F49fhNL3AqUyxbl5Qk3qiiQbiRxTVKmbq3ATNW5cm2QifXEwIPbBaIiXdI/W69DJjcszqoQ==}
- '@zag-js/collapsible@1.8.2':
- resolution: {integrity: sha512-rtvR4WaMnjv0cW6f+wYqIKkRGhckqlY7nVYBUjGqIzlKq0VNzRgugS8qWpoqdupQJ9wyjusb/GXLOudqpdl1lw==}
+ '@zag-js/clipboard@1.12.0':
+ resolution: {integrity: sha512-6x14LF51633/vzL6q7SqQ9FSUFDpkB4JXaqFeP6BVgo4sMMgYimQIRaufJ6G1lXV3sof2bcJhNXPJWZkYn4wnQ==}
- '@zag-js/collection@1.8.2':
- resolution: {integrity: sha512-GQ6bMscyX3R5wXct6pIMFNd9vm/Ofux7bAwdavp1RrYu/iMKRg/tLbJIOYMQ9VXpjbiOB+6f2GVtHAM0eYLb6A==}
+ '@zag-js/collapsible@1.12.0':
+ resolution: {integrity: sha512-2jzKy2Dbbit66oRmhbacHKqPuE7xt37+YBE71sJWmj2To8NKWrwibF61vFbHVjaoAgZ0mhgXiAJYPMyPHXaWWg==}
- '@zag-js/color-picker@1.8.2':
- resolution: {integrity: sha512-WFuU5T99GPtqiD1MBZlurBjNMpHZQmbzaTgO6mdKQv3IKa2+I2jqXlnTnJbjTRmsF2DhAo45mEyGOvLwlTfTNA==}
+ '@zag-js/collection@1.12.0':
+ resolution: {integrity: sha512-gk/qRc5rUyjD6P/fxT2UHvpXWtjXflaM++J4DjAu4bPiBAzhz8zjBZRo6Yyiffm1+YNBIZKxFemb813P16iQNg==}
- '@zag-js/color-utils@1.8.2':
- resolution: {integrity: sha512-6oB+oxCSQoJu8sw1POQNzFLRN1wFDR5b+DSincqBR1QoKLr5K4iYmwJZ7UySvDF8uZATaShvB/qVVxniUpZ17w==}
+ '@zag-js/color-picker@1.12.0':
+ resolution: {integrity: sha512-nbmY0ljFLZFhfjAMJkYsfiJ3tk8ux0lzdF6v7kif/ZtPfFIchVkCXX5ESx5w71j7MpfzJN3PrQ0F/2wDCHHPtg==}
- '@zag-js/combobox@1.8.2':
- resolution: {integrity: sha512-jQo1cDtsUlBMPmBv/P7pUBHpxu19L+Pd5zXWOcdYXXMyFQg/KrW+PLS84G3yk2UCoH7ywKY25wFdMcOrqrTdUw==}
+ '@zag-js/color-utils@1.12.0':
+ resolution: {integrity: sha512-KZsR8gEStPC5X6A+eMS5ZLRWWcsHi5byGfF8UaNybFJ8VsB9MqrPw5xtcQm9zOkJQlWaeEFOMQuojl/hGGUIXQ==}
- '@zag-js/core@1.8.2':
- resolution: {integrity: sha512-vZDvvXuoxKnVXqBS6H6ZGbfxRWaQ9DStVS/a+tLdP0pz05NJwyJIPSWOOHZo9XPDiN4j1mRaTVcSvNpuOSEDTw==}
+ '@zag-js/combobox@1.12.0':
+ resolution: {integrity: sha512-a4eLrgdmsJ4Dc8Yob7SXm1PYVfqT2IAvwqX/3DpWCVisff57e9GlfLh9n/AgoH1SWNs2709nm56P2lQrVtK7uQ==}
- '@zag-js/date-picker@1.8.2':
- resolution: {integrity: sha512-SnZgQOxUajnuQUDIcq73Gxy+fifm3/F0H4tokE8LAbbkcf5kr/Pyin+2amhiXBkbDiUbeCttx34TlD4HXwmjyQ==}
+ '@zag-js/core@1.12.0':
+ resolution: {integrity: sha512-GIDXIgTDHQZCnzKEhi+VMEvcJBsloHQNSmBRxZFllPh7htYGijwK8CrDQSzQPrGW074aR2pzu/RhdyqCUGQJyQ==}
+
+ '@zag-js/date-picker@1.12.0':
+ resolution: {integrity: sha512-qJoPGRH8yOs7OWLdsfINMbsMQW8Qh1FR0ixlyFkDJi3K5KUer2p2O91DmkJll4VdXIM1FJ8oBtbcDK1M55PtyQ==}
peerDependencies:
'@internationalized/date': '>=3.0.0'
- '@zag-js/date-utils@1.8.2':
- resolution: {integrity: sha512-KFMcZMb7xC7XypH1VDQIiYv4dpxB+1JEG2QX7zbYos+QKd41A8tNtaDnfJX+iePVsJV156gqiOrtogNvz4rJ8A==}
+ '@zag-js/date-utils@1.12.0':
+ resolution: {integrity: sha512-nalAtiVqabj9Ozlftj/Veq58dm6fcqUx2Ok3IofIdqxZJ6Q7Xdrk8vuba+5+lhipfemyVbjZQoQHwX6TBM5H0g==}
peerDependencies:
'@internationalized/date': '>=3.0.0'
- '@zag-js/dialog@1.8.2':
- resolution: {integrity: sha512-1XJIb0/YNBV5LgcRQ7ZwS/GvJiIy1e/iaZvYea6RRAInxcNH6KFon9U1Hm1Lfdz9GryCMs32WDhlFcYQoeGlKw==}
+ '@zag-js/dialog@1.12.0':
+ resolution: {integrity: sha512-l1HYpIR0Puz+L7i+Di4DWIJbeJamse5lFb3SNyYFMkZHT6zPn/ylQhcsmB13eFWnveVGoOp8+WT4XVRw6Ff1Tg==}
- '@zag-js/dismissable@1.8.2':
- resolution: {integrity: sha512-YGQB60pr/jbldJlt0LtToriJEMX8ds8uxienPModMgzEPo7yEDf30VMo4Ix8Sm38E6CJBOcm87vKHrrD8aEfnw==}
+ '@zag-js/dismissable@1.12.0':
+ resolution: {integrity: sha512-YXXzaCUPykfzDQUK5TTOShTioZbUh/tkZIA+uRUZK18qvEI8fmGrLaVHyD3Z0smtA0KWW2O5mC2v8lwq9DB3Lw==}
- '@zag-js/dom-query@1.8.1':
- resolution: {integrity: sha512-+2DYAW9riWnAAf7etTkaVqpaTHjYSHYGExJtBmZ6KurmYsc7Uw46mAcIImakZhrg69AI0cpL4b2YJHMQz8GGZA==}
+ '@zag-js/dom-query@1.12.0':
+ resolution: {integrity: sha512-3fw4+kyFn+K+ESBSG7uhvxgOAJcB+WLYsMrktgK4SUC1ukq3wDKF4oAP+uhXA6OYdVw2T5ZwLU0aY37q94hC2A==}
- '@zag-js/dom-query@1.8.2':
- resolution: {integrity: sha512-bn6Pxga19PJzpDb+Oh326kn1sgVfO97mxRzRFqzrKz9NuANGlCblmv2NTYmhfppqE1nt9QyLLhyQ2BLbzwouLg==}
+ '@zag-js/editable@1.12.0':
+ resolution: {integrity: sha512-6QJSDDCSWjCZuPyJ28ctqRvpFzRDt39a/s17SyywWdW+qLeFkXtdod21ZMXx2RGsrSnqYPVEQOD6sYJ4e+iEMQ==}
- '@zag-js/editable@1.8.2':
- resolution: {integrity: sha512-NFg5qp2IzE0nvDFf+UyFIIHGFBCyB5r74YIVBb0oJnVcIzrYa1+HA2ZrNMzTnjpZdx7B5lE/99VAsvk2Mb+GtA==}
+ '@zag-js/file-upload@1.12.0':
+ resolution: {integrity: sha512-5VOL/5sEfmZ2PpvZpB+j7dXgTWPgvJk4zo/JjX/UbQdL/NTOMWRfEZVaOZKgAb0Ngo9AvqI8GYWxoUAYLyupDg==}
- '@zag-js/file-upload@1.8.2':
- resolution: {integrity: sha512-b+xt9W5CqFG0NCB4F6C29FcFPlV0q5LC7m7mj7iMhk+dRkWPVhxr9o5SFPtjXLZlncFNgHfMkBU7Ktx5JY8CSA==}
+ '@zag-js/file-utils@1.12.0':
+ resolution: {integrity: sha512-1UGt+juPdyZT2Dzzj6qMvtzdX1tAp/weazlgV4+Vw2kvOn8jn1+l3z0FTmFyA1e2r0n7dvVyhCRq/qw6vGIe/Q==}
- '@zag-js/file-utils@1.8.1':
- resolution: {integrity: sha512-IdulHjOzPeZWNURY1rM/FbltdnXIOjUsOA7wWAped6oMMtDmWlrfpKtFs2emnXd04mZLnZN9yBO5WtHI7TTWeg==}
+ '@zag-js/floating-panel@1.12.0':
+ resolution: {integrity: sha512-9SGV5/OfEU6t4pEVoCbyHr95pH47fYfA4ZWecDJ9I/bZ4Fft2bozAqyjIyoTnj+RPzvHKkqvC6tGmt0j/4DDSQ==}
- '@zag-js/file-utils@1.8.2':
- resolution: {integrity: sha512-VBn2PeVtfj4c4snVcvp9oVFFiOVwJQ1OvS44CXv2xl9u4hRnDVSHalNmdj5jOqspNmTy9xNCKQWPK73ef26msQ==}
+ '@zag-js/focus-trap@1.12.0':
+ resolution: {integrity: sha512-T8eNgWDFcSf/oyut0kG3zYji3CqH2GtnivpNSeDsiNdwJ2bHXgeC65HqUExESClBTJz0W74AatruPvFzEhxDxg==}
- '@zag-js/focus-trap@1.8.2':
- resolution: {integrity: sha512-GzKdicdiVjlOOsNzmmRAZVccs902PXnoyO+qkzXlIsr8+RPRgtPlZthIp6wtr4CJ2vLOMByvrEt7wCNSIoDzxA==}
+ '@zag-js/focus-visible@1.12.0':
+ resolution: {integrity: sha512-u+6k8fyQ12a0sZvSk02V7JY1OAsxWI6MhfW11OvSixMSHfd82YaWOG2HA/GIAcyaUEKKPqZUtAJZl0ZIZvJG7g==}
- '@zag-js/focus-visible@1.8.2':
- resolution: {integrity: sha512-YXkB4ClgEf/gTRGUrTDThvxfThpey41dDKcuQIPTA6F76ji4jLQiDYLnw4KDxLW8uLL21jZgctO5FFdIMoxJeg==}
+ '@zag-js/highlight-word@1.12.0':
+ resolution: {integrity: sha512-9VLG98hH34NDfubR1SkC5fMUzAYZqkw/4KeJbEzduC9qIrDe58fQkCPITsGKzTz7XncONxwqf+wgfIr0qlwESw==}
- '@zag-js/highlight-word@1.8.2':
- resolution: {integrity: sha512-yI65t4bFxTUkZbHuntRCdBPOEQdpO8G4nkoY8WznBetQ1LLhqOd+7KXelzq+Vot2RbXzop54xEBvgKeTQbGOgg==}
+ '@zag-js/hover-card@1.12.0':
+ resolution: {integrity: sha512-hkciHD3rgokvl0MNzUcEOyGcJ1SZtpe2G6rtH9k04pFFUm4nL7TljcFuFzBWESn1fBHcQrzXUl8AWhBcuXl/IA==}
- '@zag-js/hover-card@1.8.2':
- resolution: {integrity: sha512-GwYGsojbVpyhOCz+XUnEtxA9ZmUlnfPrnE71j/Gc2+oLtOFwvnhINtBTZPCUXO5ec95uG9QFwxc63x1upB/PIA==}
+ '@zag-js/i18n-utils@1.12.0':
+ resolution: {integrity: sha512-5g7fCeAB8x7mUhsiyfI+w6994HSziX39Wwx4wN+tR424quBNs/EaFALScOMQ0hZjq8VCWFk9DM6+TBNstNLMhw==}
- '@zag-js/i18n-utils@1.8.1':
- resolution: {integrity: sha512-Epj/VOsJppsHlo2YwGV718CsZEneH9OVZtD8LB7j/zGXjQr/LALErCQQVOJXlBO6Ky2G/ZE/vK4LyO5GIjkTKw==}
+ '@zag-js/interact-outside@1.12.0':
+ resolution: {integrity: sha512-lcYo84syK3eF0MYESpMBQsfxT4+uzbaA8izZ0HvIC3kSCXLAaDZNagxPcRoB2yaTvWrn3FUw3YmJHKBOW7Vs9w==}
- '@zag-js/i18n-utils@1.8.2':
- resolution: {integrity: sha512-Zhiw2U14kkYRPru/5nWYei0l0eiQOkTu2VDCc/mn9jd7+zDEIYNp3b1CvMQ3/ES21i1HH6uBuKKujuktH/f6Iw==}
+ '@zag-js/listbox@1.12.0':
+ resolution: {integrity: sha512-6z/FGF9zshiIOXeov4NpU4foaeKAKR8hfBo4M8RNwvPUBeqDHCfu+IJlab4mHPB2Rz+4N5rhap2krpqBk9OT5A==}
- '@zag-js/interact-outside@1.8.2':
- resolution: {integrity: sha512-7N0v/vdsJO5a7AjwWofZ99AP5/hzFfCShSgEfg4GpRk7gPOdFanm7U3Zy9LtVvM9gwRncqGwjo4yd6O5G7SCnA==}
+ '@zag-js/live-region@1.12.0':
+ resolution: {integrity: sha512-m9lJ3zDLYIV/MY72ZYc6x1Dm5bnUzhKwObKhuSlpDG+7OzN/Mub5se9SXHe5e4bJ879VcsZQ543/hguo0G1hng==}
- '@zag-js/live-region@1.8.2':
- resolution: {integrity: sha512-QkowjTQj9C6ZFSCB+E7QNU5yjWMA58cAR5TcWgdLLKAP+SJwaTdtptpyFq71VH+jT85sNvvBZVya1aWZrbGopg==}
+ '@zag-js/menu@1.12.0':
+ resolution: {integrity: sha512-ciKCeQ1heLGt4RcyhB5f9GQB7CE1rP9Zfwp5oHX9FC5rq4nyneI0qhXEYYklE0P9z7+Z6EAH8FyvLORj5j/SpA==}
- '@zag-js/menu@1.8.2':
- resolution: {integrity: sha512-kEz1FJ0kgkutN1XDpS27GAkk1T/v3fUctBHrj0Wvt7TvQfPyzudyjmj35UEP5e8AglJAoQt2Am93YPSQ2deJwg==}
+ '@zag-js/number-input@1.12.0':
+ resolution: {integrity: sha512-8CEdDRPU3v0z2mAO5kVlp4B3IwgLzdBv+1JwrA3nM1NFp5cSzcsPK1gULkwUh0rbMrA3s/dFolPBZHSfldbKEA==}
- '@zag-js/number-input@1.8.2':
- resolution: {integrity: sha512-oyxXI/FDDj40BMkkLHDu84me3TgLIZizQhMj51R3ZM5Qg5BucYbamQKDgcGbb2CI6BUPo+6jklO0QZmy8/2cTQ==}
+ '@zag-js/pagination@1.12.0':
+ resolution: {integrity: sha512-AoX/Ks2hOAXubZEqnNrgLgalb1+qgTMv9wnahXef7amhEn/L+4wq+p9Nzmk7SXzeqR/p1RweH2lJEnLdAbbP5Q==}
- '@zag-js/pagination@1.8.2':
- resolution: {integrity: sha512-+Ummfw6r0Ll4oFVRvoVhPSvox8y2vvIocjGip0e6ze8zaUuHgUYzNkcK7OalZ3pZkh9y0+9MlnqtsQwxZhMJPw==}
+ '@zag-js/pin-input@1.12.0':
+ resolution: {integrity: sha512-8291cewBFGtUwX1iAObmNUvnp5/31iAYuWIn87vejqG+fVNxPnV9bUYN0nKAXhQTEZo03N/90FxbX8chZSgWtA==}
- '@zag-js/pin-input@1.8.2':
- resolution: {integrity: sha512-TME6Maud8Z78ZxFru7WvBGf5EQAuMoPQfdTMpd8os24srtO+HwiFN1wbeBsV/6BmbOeA9gFuB4K8O8rqNn3uqg==}
+ '@zag-js/popover@1.12.0':
+ resolution: {integrity: sha512-Syp6E/op1g2g7y2ErqGaoMfM6Fln3N027UzxjIFdtNX0i83h04LMO7oyP3+0AcaqRtVuh1cCK0CCjEa7HuSGBA==}
- '@zag-js/popover@1.8.2':
- resolution: {integrity: sha512-c3uk6t5MG3xluf2LR1adOGnCsKchfRqzB7K9/fyBvWXBFyFiV5DWXdc2NpnzvB0Z5fQVJMrBiMnpvmzqbVovAA==}
+ '@zag-js/popper@1.12.0':
+ resolution: {integrity: sha512-YVdQHdYT32OtIeYmOBpdhhDoZa1aFQA5PrhSMAX9gtEnDIWg3m4bwdwC0Fs7G++zguHjgJ6ve1/QxTs6lHnC7Q==}
- '@zag-js/popper@1.8.2':
- resolution: {integrity: sha512-OfZS5KKQZsaENZG1SliM8/shtAKmKrprJuWpn3/kzcOAO/obNZfApld4oa1N5FoePLLTY96qVfdC5W9xygKRDQ==}
+ '@zag-js/presence@1.12.0':
+ resolution: {integrity: sha512-QZm7bf8Xy9D2Y5HqtaODzyL44+A62GuuUked6y1Z0RfJXwVkzjNFqCvqZb8Zf/UvKmReaofczkslL4xzyy/IFA==}
- '@zag-js/presence@1.8.2':
- resolution: {integrity: sha512-aT9PPQAY28HeAxiSeIhnOmlkI+tw0ippxtUWenxQ6B3yyU/ZOGVqc4f7eY418z65lF2yziYvUkZgOdWc6E4kZA==}
+ '@zag-js/progress@1.12.0':
+ resolution: {integrity: sha512-jHe11FZwt1cJj/4u4oTAFzR5AEqxJSXt9kO+Jg5yb48UdpZ7L9SL6Layju9fsT8l4yp8XpWZD/cI0kELbP7kvQ==}
- '@zag-js/progress@1.8.2':
- resolution: {integrity: sha512-QUzPe5Xj0zSexKJ1+JCmQnJ+pZ5EeRjMLWSn4cdeUJtzEuPosBLCzJtMzl+uZ/mTg2YVgPC7l6wV6nfMYrco/g==}
+ '@zag-js/qr-code@1.12.0':
+ resolution: {integrity: sha512-hk5HV5oPVDRyN1yUUshmcE8NPUC0hwT5Rmm1X4bDfYxu8qCAhTsxkpcdOgQoFE720OLFsadHbpWd4PzfUY3LvA==}
- '@zag-js/qr-code@1.8.2':
- resolution: {integrity: sha512-W47UwF5jBL3NraobAOC9aYFpMFiXhDzgZ6O3f4Zhd3eDx6BnUvebZ+GOfE71EmJ0fu43mF6o3ial8H4nxj2myQ==}
+ '@zag-js/radio-group@1.12.0':
+ resolution: {integrity: sha512-ByJq8PMAPmg7w4rWCZwqKJ06CDjY8mMzWbJb8YgOy1Aos/JUUUybVdgFpg1VLntN12plrnff5xzq/67LJawVrA==}
- '@zag-js/radio-group@1.8.2':
- resolution: {integrity: sha512-WY0QT4XkqgXD1N1VZG11gTnu7rGaPYizZIq/m1NS0ls6b/tTnwdlrPL2bgBzlJtyuuCeQJXh5pTypCiNoAZurg==}
+ '@zag-js/rating-group@1.12.0':
+ resolution: {integrity: sha512-vH2Hu3/rKfP6/EN80V7nMZe06/q+w1jLplojfyiajOaRHn0H+/4oN72Y/6Rd6jk9uAM7Reo/dTLk92BrJ5hyfA==}
- '@zag-js/rating-group@1.8.2':
- resolution: {integrity: sha512-azCMgF7FAyvDJ+fcAYzFQHhZpeydPW6h7JvYIvLsz/K609D1HJT85gtCzG+drgBhE4tRyvFdYKDkTCvOpVnkGA==}
-
- '@zag-js/react@1.8.2':
- resolution: {integrity: sha512-Fz9WR6wZQOAxCLSTSmUnGL+VH2/HVxvdlOKOHoUrJ0+9QOmlGrZf+mxpJuGgqUW3RyMzzpHfly8TKZkqHRYd3g==}
+ '@zag-js/react@1.12.0':
+ resolution: {integrity: sha512-cipenUT8mpF+fNv7gGpnLEMuu6cHHGhKSlrBhPAHv8JABIlsog8TGifz/xTSn8WIbcg0e+LEhfEZG5LRff6dZw==}
peerDependencies:
react: '>=18.0.0'
react-dom: '>=18.0.0'
- '@zag-js/rect-utils@1.8.2':
- resolution: {integrity: sha512-RWgPe+MOtOJaWjvlGD1Cf1snmD+hem1mfxXqM3XTCZCjuAlqAzHSCyuBUDia96nU0YGgAxYuloQLh8HFLJcVPA==}
+ '@zag-js/rect-utils@1.12.0':
+ resolution: {integrity: sha512-rREWLVbXV2Sy7Kh+TBuLST3QLUNKi+lYZcyuulIV5X3aEEMfNKvB4svdZonfkPYA5uz1MGRYZoM/K3LY77EEVw==}
- '@zag-js/remove-scroll@1.8.2':
- resolution: {integrity: sha512-zJvLCKcb1yWEdWCP+cDhnYTY1MyoNzuiYOwWTh2YiktQYC0zpd2KDbd+jdhSWIpbIdV22UMuy4sDfFpx6i/mqA==}
+ '@zag-js/remove-scroll@1.12.0':
+ resolution: {integrity: sha512-a/6NKblhUfNk8GzLPC2sB2nFXnMhTDysDj6T7wkWsYlPYi2IIX8NwbRl0tSoFoe5w1n0o0g4oe4SDViYOFoBUg==}
- '@zag-js/scroll-snap@1.8.2':
- resolution: {integrity: sha512-kyM4ZsRvq5WuJJZVr1TQ1xjuso0ANhySMtILH1kC9EFGIOwZegnIpZt5K1rf5NBFmBrcBjUl+lEKwySRNFauhw==}
+ '@zag-js/scroll-snap@1.12.0':
+ resolution: {integrity: sha512-78j6RNi+enlKjDUY9PfDUyHzfK7vQDpq7Rsw2Glkf2obu5Ye6O9ElwiLyolBL+YUm/+y7KDIJe9zAndG+Hq6kQ==}
- '@zag-js/select@1.8.2':
- resolution: {integrity: sha512-ZsBU7kGp8TX4gNavmiTWz9cB+6KgqHXxSwgARnaYUBsYhpdDG2SYfzgyfGAYcAv4ejNTFEfvNk89h+Kpz4CeOg==}
+ '@zag-js/select@1.12.0':
+ resolution: {integrity: sha512-GRfQnlG3YdwkD1fAUH/DvfhXIxymB90ZRYcHtuSxF36v2sJIcRhUVZIQvZzGDKX4CvlGVxhobq0w6nHihJh5rA==}
- '@zag-js/signature-pad@1.8.2':
- resolution: {integrity: sha512-Jl3kRbxo3fkey9uqdVDyGROlECa3MpOXaMWDzO58vodrOjjLnZPO1VPF4xvjG5LUsEOGx54R97Tpc2hS3t93Pw==}
+ '@zag-js/signature-pad@1.12.0':
+ resolution: {integrity: sha512-+01KZSSp2iWZSi8J9j6qTI1iWX1oLXayXJA2RMZhrgjG6i6Aab9SALZA/3ViEl9WLEgedJ/rWZrQsShz+QB66A==}
- '@zag-js/slider@1.8.2':
- resolution: {integrity: sha512-+tncZezgA4FVHV6M7a6lV3cPJUa5OsP7ouXkYGw7Z3cvOoFLaL+bxaCe/UHouRTKqoZj4ImR83x85xcIj50e1g==}
+ '@zag-js/slider@1.12.0':
+ resolution: {integrity: sha512-nyA+67/Wm2/znX1vJMzk10bdm14wJfAU8kYffc8RruqUse4WwSz7Tr0W4jLXTcc+IRZqBc1mrHynfwwOrnvXHA==}
- '@zag-js/splitter@1.8.2':
- resolution: {integrity: sha512-jcr382kBA/pRrQu04PVqB2U4Tn32wBCbJMX4UC/tmuVTP5RwQrA4WaDs21CelfntI0qEbzCMxFfYvbU7+ma7iw==}
+ '@zag-js/splitter@1.12.0':
+ resolution: {integrity: sha512-9twlVGYrjtpQ9yn7MgBGR5H64vd0OKVW1rt5LBsVDEPPkUdhb1gaxHJQSAIYlTfFyiYs72oXXq33uO2Sn7enPA==}
- '@zag-js/steps@1.8.2':
- resolution: {integrity: sha512-iCwaiT6q0GyhZCnHH9bwmQfYGqVmN5ObF+efV2eYDVsuICKe/PlEHL7H3gRClJR6x6FehXmYYI/gCI/PLzsuHg==}
+ '@zag-js/steps@1.12.0':
+ resolution: {integrity: sha512-KpIFwISjdLWjDuPKSKK3o68Qm2B1IAsJxYv1BL+6LwAAm31yJN1PEdGFXzvmylLBkAkeUbXQlHMCV7vLgae77w==}
- '@zag-js/store@1.8.2':
- resolution: {integrity: sha512-Q/sg8L5B3lbX1MWFJNhE5bcPzJrwhRcgDGtvKf8KDKcbcirhF5HiXUbbE4jvav52QVQYKru+WnOJ8WVj5Bi3tA==}
+ '@zag-js/store@1.12.0':
+ resolution: {integrity: sha512-AW+EJI1reNzWDEaH/LHnjBFZyLOGJNkf+GYEJ8treRJZXEVIaIjHZtSKQZrFJKAM8JIkrb08vawS/lj1izlimg==}
- '@zag-js/switch@1.8.2':
- resolution: {integrity: sha512-WYgtfzponocm4rrJcG4CNy1xsOwOXZ1yE9NBNKvew2Cj5yZLpTQLcjJBlWR5VjZ3Tgx+3D/F2nmBYzVFtU8zyw==}
+ '@zag-js/switch@1.12.0':
+ resolution: {integrity: sha512-ihn+6f4pMJjL1BDheDP5MpWVyIUpyZNo3lDIKrCSunqJflBomHuB3uVR//tkcgG0QsWIQ0b2IoHL1mtbyYn74w==}
- '@zag-js/tabs@1.8.2':
- resolution: {integrity: sha512-aM7gx9aj1DcyTV6T5H7okMHWBhi/0jdjhUhFRWWSdYxiYvpveBhVK+Tvg9Nq9GBqXZEgg8E1hxuLgPQUZv7QBQ==}
+ '@zag-js/tabs@1.12.0':
+ resolution: {integrity: sha512-VRVE2nOTs8jHdAAV2nIskjbeu9n/QEr6k6Sq1srhOztiEPmLMdMF9F6DlMRK2UR+KuNsOqTBV3gsjZj5Av//fw==}
- '@zag-js/tags-input@1.8.2':
- resolution: {integrity: sha512-9DF2pXz6a6lX5IiCwg8ug0TSLZ3FILIHUaX9WNBSx7afDlCMH36UgKhyfs2Xhl9gliVC/6a0Tr2sX5VDEYCe7g==}
+ '@zag-js/tags-input@1.12.0':
+ resolution: {integrity: sha512-uRUTPPQSm/zV9iZ+/F3Hu8XJMLqZRMnTZZbYS7kEemkpDc3nwUen5XRPwSxIcej77mehvhBPxkPOEdt4nrkZyw==}
- '@zag-js/time-picker@1.8.2':
- resolution: {integrity: sha512-RdAPrRBeuiCL7m4PdEZOR6YzfQfOeNElgjEAVLZgUTu4WEhLt/XVdjaOuUQtiuLW4ukT72wNVWi0S+NBCHerIw==}
+ '@zag-js/time-picker@1.12.0':
+ resolution: {integrity: sha512-rEE5Sr+xdij7ZLNeyi/I0DcuFPn0ghSXUPLvp7XJ1rF/qrn8xIR7hR84KqVA1wjrSzuhkr0QyJKqR/k88AxKCg==}
peerDependencies:
'@internationalized/date': '>=3.0.0'
- '@zag-js/timer@1.8.2':
- resolution: {integrity: sha512-EUqVacZyrKuvzDFHRZLYjDzNwMyr/5cQCu4m1Da4nv7hvqivDvofU2HUUf7mi7isuYuRaRAZ6sFQqknmvfbKQQ==}
+ '@zag-js/timer@1.12.0':
+ resolution: {integrity: sha512-37iJz2Qcih9+AIevwQkDm/BB4n3wi2xg3vPswjavStlClPHkmBnERey+KcHULmvfRyKNgXfR0oiet5eCZK5bvg==}
- '@zag-js/toast@1.8.2':
- resolution: {integrity: sha512-ew+lfy8y5j4HWj5Ir9RoSfQKlbZnmGnn1r8GHMBhQXegWVGWAb04n4sp7t/e656iBif9HpLm3+/SUwOdCPIiJg==}
+ '@zag-js/toast@1.12.0':
+ resolution: {integrity: sha512-G9Emqd5AaUQ9Hl18HQNoOVkGaL7qyUffoAI8+xv+QxJOIobMeRwaoGplOs8f9CDxK+wgl00ZnIa1tJThpq34ZQ==}
- '@zag-js/toggle-group@1.8.2':
- resolution: {integrity: sha512-kBvFQtUJ70PpqJ6aA9uLCXLvSTiUMhzX3GkJbmTxffu2BdVKUF5OEKW3x9VpYdPeekBnayCXoGdW7WEOkgpYGw==}
+ '@zag-js/toggle-group@1.12.0':
+ resolution: {integrity: sha512-vw458MNJNcfiMVf54usbWJ6W9079/TtjhyGJdR1p8U73ps0RT/9/rEItAWXyBpoDvHP486zdffyH6HFMIW9c8A==}
- '@zag-js/toggle@1.8.2':
- resolution: {integrity: sha512-2EebV04Hv25ex1jQVa1Cjb4A85qcC6kvABn4qR6wZooxf5Ua72C9sdiEjrAvMhDGAWaa37JuxlyYs+sZG1l0Lw==}
+ '@zag-js/toggle@1.12.0':
+ resolution: {integrity: sha512-krpJdt3P8/u0AmM6LDrSuCrQWqbaRIGswxg9LoFBCs9AAa+nmhP3LIu0FsNeSZzGWSOGC779ELf1ZnN4z6V+Rw==}
- '@zag-js/tooltip@1.8.2':
- resolution: {integrity: sha512-FqDq4H3PFnEJt96JCr4dap3Pkcq2D0Gb/G5G5gG3QAs7kOIHL2Jpq1CGCxE3EpmQOFee1HwyokC6R4Q4kot1Nw==}
+ '@zag-js/tooltip@1.12.0':
+ resolution: {integrity: sha512-sdYSUQp+ziSyKlLPJVN5pythQacMpNYfRximG0ddpZ43iTZp71P9hN0ZvO6RccND+vP7uGNzncEqAIk30emlzw==}
- '@zag-js/tour@1.8.2':
- resolution: {integrity: sha512-67Qw+dYY8ayf1x0ggvU0U0MoS0I/nhVe9JRpabPjYc09123DgGsDA4sdbj6VfCeFW6j3kffn5VEmTm8C3yV8gA==}
+ '@zag-js/tour@1.12.0':
+ resolution: {integrity: sha512-yTJQPbYE3J5nIR1EbxjBIbGdFgwfFqwEZ22qFOC4vw81tkdi2h4qJcDr/ucML3oeEVmJBmFU4EWzNKcoBATsdw==}
- '@zag-js/tree-view@1.8.2':
- resolution: {integrity: sha512-l/JmKjkz/BM59HVscazl8BMJj+suXl+FNRQVZqhyijzlb2PrB5xtgiQNV9XLNM2qHBCub9820Y1YMLyEP5YiwQ==}
+ '@zag-js/tree-view@1.12.0':
+ resolution: {integrity: sha512-p/tKMPqHxx9Xal7zmaNFC/35VZBPtNMXqbpIlT5GVPPge+9NwtWd7a2Nt5RLdvztqfcyZUkfANWkMUnWgXgucA==}
- '@zag-js/types@1.8.1':
- resolution: {integrity: sha512-gJU3UlRccL2N4ukG4xEtetAr/fiuFBxpG5IKZ/Pr0zz8Z17LpdhK7ozyn9SU7y9W6YOcngByAgNgz+nRzmu5aQ==}
+ '@zag-js/types@1.12.0':
+ resolution: {integrity: sha512-qewKPnURQ9v4BKL0zFrqPIkC77areamYBkO2+DRet2U2WYofrOf4q7T6qIOcF4lLPYvCOv9LnYuw4pAlHyqcgA==}
- '@zag-js/types@1.8.2':
- resolution: {integrity: sha512-J+94HhFAPOBchNdGcmvqjB8nbQFgKHcqGoPl5vNTKlcoibN0yFjn4XFZoQU6uCf8sPhNg6NUNTkluR5YjybyJA==}
-
- '@zag-js/utils@1.8.2':
- resolution: {integrity: sha512-7HnRAQ7+pR00c4BQChulTdf6G1gJ0NqV4mMKd9UXk4/E7GLYinUdBNAZ3jZCdHDrio3+2zIlNvpzkO3G4pVjlw==}
+ '@zag-js/utils@1.12.0':
+ resolution: {integrity: sha512-PapS6VDeQtlWyZg3gC4pIY0++2OCAzqrnlRiB7IhEyOYsqi5MiAs+TKVDFXU+eUM77aR8pgtXo10yvdnNw6b+A==}
abab@2.0.6:
resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
@@ -1935,8 +2000,8 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- chromium-bidi@3.0.0:
- resolution: {integrity: sha512-ZOGRDAhBMX1uxL2Cm2TDuhImbrsEz5A/tTcVU6RpXEWaTNUNwsHW6njUXizh51Ir6iqHbKAfhA2XK33uBcLo5A==}
+ chromium-bidi@4.1.1:
+ resolution: {integrity: sha512-biR7t4vF3YluE6RlMSk9IWk+b9U+WWyzHp+N2pL9vRTk+UXHYRTVp7jTK58ZNzMLBgoLMHY4QyJMbeuw3eKxqg==}
peerDependencies:
devtools-protocol: '*'
@@ -1966,10 +2031,6 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
- clone@1.0.4:
- resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
- engines: {node: '>=0.8'}
-
co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -2146,9 +2207,6 @@ packages:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
- defaults@1.0.4:
- resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
-
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -2220,9 +2278,6 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- easy-table@1.2.0:
- resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==}
-
electron-to-chromium@1.5.97:
resolution: {integrity: sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==}
@@ -2393,8 +2448,8 @@ packages:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.24.0:
- resolution: {integrity: sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==}
+ eslint@9.25.1:
+ resolution: {integrity: sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -2499,6 +2554,14 @@ packages:
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ fdir@6.4.4:
+ resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
fetch-blob@3.2.0:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
@@ -2644,8 +2707,8 @@ packages:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
- globby@14.0.2:
- resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
+ globby@14.1.0:
+ resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
engines: {node: '>=18'}
gopd@1.2.0:
@@ -2733,6 +2796,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@7.0.4:
+ resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==}
+ engines: {node: '>= 4'}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -3164,8 +3231,8 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
- knip@5.50.3:
- resolution: {integrity: sha512-0A4G7UPucGTCpNh5vHSfL0+tVQIuKfJKdg8sAq6EC3COKbAchEbM+TeN4w32OrnJW9CesHs71lqftlggMVfW2A==}
+ knip@5.52.0:
+ resolution: {integrity: sha512-Jac+wJvfrGSYp664sQbEMPCs9m4z0VSdvzSZAgvVIA9gXuE+a2I2O5YnDpiitHTZ2eGbbMNJyewO/4me6LFMHQ==}
engines: {node: '>=18.18.0'}
hasBin: true
peerDependencies:
@@ -3492,6 +3559,7 @@ packages:
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
+ deprecated: Use your platform's native DOMException instead
node-eval@2.0.0:
resolution: {integrity: sha512-Ap+L9HznXAVeJj3TJ1op6M6bg5xtTq8L5CU/PJxtkhea/DrIxdTknGKIECKd/v/Lgql95iuMAYvIzBNd0pmcMg==}
@@ -3511,8 +3579,8 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
- npm-check-updates@17.1.18:
- resolution: {integrity: sha512-bkUy2g4v1i+3FeUf5fXMLbxmV95eG4/sS7lYE32GrUeVgQRfQEk39gpskksFunyaxQgTIdrvYbnuNbO/pSUSqw==}
+ npm-check-updates@18.0.1:
+ resolution: {integrity: sha512-MO7mLp/8nm6kZNLLyPgz4gHmr9tLoU+pWPLdXuGAx+oZydBHkHWN0ibTonsrfwC2WEQNIQxuZagYwB67JQpAuw==}
engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'}
hasBin: true
@@ -3617,8 +3685,8 @@ packages:
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
- package-manager-detector@0.1.2:
- resolution: {integrity: sha512-iePyefLTOm2gEzbaZKSW+eBMjg+UYsQvUKxmvGXAQ987K16efBg10MxIjZs08iyX+DY2/owKY9DIdu193kX33w==}
+ package-manager-detector@1.2.0:
+ resolution: {integrity: sha512-PutJepsOtsqVfUsxCzgTTpyXmiAgvKptIgY4th5eq5UXXFhj5PxfQ9hnGkypMeovpAvVshFRItoFHYO18TCOqA==}
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
@@ -3662,9 +3730,9 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
- path-type@5.0.0:
- resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
- engines: {node: '>=12'}
+ path-type@6.0.0:
+ resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
+ engines: {node: '>=18'}
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
@@ -3703,13 +3771,13 @@ packages:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
- playwright-core@1.51.1:
- resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==}
+ playwright-core@1.52.0:
+ resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==}
engines: {node: '>=18'}
hasBin: true
- playwright@1.51.1:
- resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==}
+ playwright@1.52.0:
+ resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==}
engines: {node: '>=18'}
hasBin: true
@@ -3729,11 +3797,6 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.3.3:
- resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
- engines: {node: '>=14'}
- hasBin: true
-
prettier@3.5.3:
resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
engines: {node: '>=14'}
@@ -3789,12 +3852,12 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- puppeteer-core@24.6.1:
- resolution: {integrity: sha512-sMCxsY+OPWO2fecBrhIeCeJbWWXJ6UaN997sTid6whY0YT9XM0RnxEwLeUibluIS5/fRmuxe1efjb5RMBsky7g==}
+ puppeteer-core@24.7.2:
+ resolution: {integrity: sha512-P9pZyTmJqKODFCnkZgemCpoFA4LbAa8+NumHVQKyP5X9IgdNS1ZnAnIh1sMAwhF8/xEUGf7jt+qmNLlKieFw1Q==}
engines: {node: '>=18'}
- puppeteer@24.6.1:
- resolution: {integrity: sha512-/4ocGfu8LNvDbWUqJZV2VmwEWpbOdJa69y2Jivd213tV0ekAtUh/bgT1hhW63SDN/CtrEucOPwoomZ+9M+eBEg==}
+ puppeteer@24.7.2:
+ resolution: {integrity: sha512-ifYqoY6wGs0yZeFuFPn8BE9FhuveXkarF+eO18I2e/axdoCh4Qh1AE+qXdJBhdaeoPt6eRNTY4Dih29Jbq8wow==}
engines: {node: '>=18'}
hasBin: true
@@ -3843,19 +3906,19 @@ packages:
react-is@19.1.0:
resolution: {integrity: sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==}
- react-refresh@0.14.2:
- resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
+ react-refresh@0.17.0:
+ resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
engines: {node: '>=0.10.0'}
- react-router-dom@7.5.0:
- resolution: {integrity: sha512-fFhGFCULy4vIseTtH5PNcY/VvDJK5gvOWcwJVHQp8JQcWVr85ENhJ3UpuF/zP1tQOIFYNRJHzXtyhU1Bdgw0RA==}
+ react-router-dom@7.5.3:
+ resolution: {integrity: sha512-cK0jSaTyW4jV9SRKAItMIQfWZ/D6WEZafgHuuCb9g+SjhLolY78qc+De4w/Cz9ybjvLzShAmaIMEXt8iF1Cm+A==}
engines: {node: '>=20.0.0'}
peerDependencies:
react: '>=18'
react-dom: '>=18'
- react-router@7.5.0:
- resolution: {integrity: sha512-estOHrRlDMKdlQa6Mj32gIks4J+AxNsYoE0DbTTxiMy2mPzZuWSDU+N85/r1IlNR7kGfznF3VCUlvc5IUO+B9g==}
+ react-router@7.5.3:
+ resolution: {integrity: sha512-3iUDM4/fZCQ89SXlDa+Ph3MevBrozBAI655OAfWQlTm9nBR0IKlrmNwFow5lPHttbwvITZfkeeeZFP6zt3F7pw==}
engines: {node: '>=20.0.0'}
peerDependencies:
react: '>=18'
@@ -3870,8 +3933,8 @@ packages:
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
- react-speech-recognition@4.0.0:
- resolution: {integrity: sha512-hz1OsRhjAW70rOMVXN84PR+1L2I1j8xS1TXpwpd4vlDaRY9i/LbAaxEklqscgObECTTuyxNeGBdVdcq/pX3bqQ==}
+ react-speech-recognition@4.0.1:
+ resolution: {integrity: sha512-0fIqzLtfY8vuYA6AmJVK7qiabZx0oFKOO+rbiBgFI3COWVGREy0A+gdU16hWXmFebeyrI8JsOLYsWk6WaHUXRw==}
peerDependencies:
react: '>=16.8.0'
@@ -3975,8 +4038,8 @@ packages:
rfdc@1.4.1:
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
- rollup@4.34.6:
- resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==}
+ rollup@4.40.1:
+ resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -4321,6 +4384,10 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
+ tinyglobby@0.2.13:
+ resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==}
+ engines: {node: '>=12.0.0'}
+
tinypool@1.0.2:
resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -4444,8 +4511,8 @@ packages:
undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
- unicorn-magic@0.1.0:
- resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ unicorn-magic@0.3.0:
+ resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
engines: {node: '>=18'}
unified@11.0.5:
@@ -4521,13 +4588,13 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
- vite-node@3.1.1:
- resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==}
+ vite-node@3.1.2:
+ resolution: {integrity: sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
- vite@6.2.6:
- resolution: {integrity: sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==}
+ vite@6.3.4:
+ resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@@ -4566,16 +4633,16 @@ packages:
yaml:
optional: true
- vitest@3.1.1:
- resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==}
+ vitest@3.1.2:
+ resolution: {integrity: sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/debug': ^4.1.12
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
- '@vitest/browser': 3.1.1
- '@vitest/ui': 3.1.1
+ '@vitest/browser': 3.1.2
+ '@vitest/ui': 3.1.2
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -4601,9 +4668,6 @@ packages:
walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
- wcwidth@1.0.1:
- resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
-
web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
@@ -4748,8 +4812,8 @@ packages:
peerDependencies:
zod: ^3.18.0
- zod@3.24.2:
- resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
+ zod@3.24.3:
+ resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==}
zustand@5.0.3:
resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==}
@@ -4781,62 +4845,65 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
- '@ark-ui/react@5.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@ark-ui/react@5.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@internationalized/date': 3.7.0
- '@zag-js/accordion': 1.8.2
- '@zag-js/anatomy': 1.8.2
- '@zag-js/auto-resize': 1.8.2
- '@zag-js/avatar': 1.8.2
- '@zag-js/carousel': 1.8.2
- '@zag-js/checkbox': 1.8.2
- '@zag-js/clipboard': 1.8.2
- '@zag-js/collapsible': 1.8.2
- '@zag-js/collection': 1.8.2
- '@zag-js/color-picker': 1.8.2
- '@zag-js/color-utils': 1.8.2
- '@zag-js/combobox': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/date-picker': 1.8.2(@internationalized/date@3.7.0)
- '@zag-js/date-utils': 1.8.2(@internationalized/date@3.7.0)
- '@zag-js/dialog': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/editable': 1.8.2
- '@zag-js/file-upload': 1.8.2
- '@zag-js/file-utils': 1.8.1
- '@zag-js/focus-trap': 1.8.2
- '@zag-js/highlight-word': 1.8.2
- '@zag-js/hover-card': 1.8.2
- '@zag-js/i18n-utils': 1.8.2
- '@zag-js/menu': 1.8.2
- '@zag-js/number-input': 1.8.2
- '@zag-js/pagination': 1.8.2
- '@zag-js/pin-input': 1.8.2
- '@zag-js/popover': 1.8.2
- '@zag-js/presence': 1.8.2
- '@zag-js/progress': 1.8.2
- '@zag-js/qr-code': 1.8.2
- '@zag-js/radio-group': 1.8.2
- '@zag-js/rating-group': 1.8.2
- '@zag-js/react': 1.8.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@zag-js/select': 1.8.2
- '@zag-js/signature-pad': 1.8.2
- '@zag-js/slider': 1.8.2
- '@zag-js/splitter': 1.8.2
- '@zag-js/steps': 1.8.2
- '@zag-js/switch': 1.8.2
- '@zag-js/tabs': 1.8.2
- '@zag-js/tags-input': 1.8.2
- '@zag-js/time-picker': 1.8.2(@internationalized/date@3.7.0)
- '@zag-js/timer': 1.8.2
- '@zag-js/toast': 1.8.2
- '@zag-js/toggle': 1.8.2
- '@zag-js/toggle-group': 1.8.2
- '@zag-js/tooltip': 1.8.2
- '@zag-js/tour': 1.8.2
- '@zag-js/tree-view': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@internationalized/date': 3.8.0
+ '@zag-js/accordion': 1.12.0
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/angle-slider': 1.12.0
+ '@zag-js/auto-resize': 1.12.0
+ '@zag-js/avatar': 1.12.0
+ '@zag-js/carousel': 1.12.0
+ '@zag-js/checkbox': 1.12.0
+ '@zag-js/clipboard': 1.12.0
+ '@zag-js/collapsible': 1.12.0
+ '@zag-js/collection': 1.12.0
+ '@zag-js/color-picker': 1.12.0
+ '@zag-js/color-utils': 1.12.0
+ '@zag-js/combobox': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/date-picker': 1.12.0(@internationalized/date@3.8.0)
+ '@zag-js/date-utils': 1.12.0(@internationalized/date@3.8.0)
+ '@zag-js/dialog': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/editable': 1.12.0
+ '@zag-js/file-upload': 1.12.0
+ '@zag-js/file-utils': 1.12.0
+ '@zag-js/floating-panel': 1.12.0
+ '@zag-js/focus-trap': 1.12.0
+ '@zag-js/highlight-word': 1.12.0
+ '@zag-js/hover-card': 1.12.0
+ '@zag-js/i18n-utils': 1.12.0
+ '@zag-js/listbox': 1.12.0
+ '@zag-js/menu': 1.12.0
+ '@zag-js/number-input': 1.12.0
+ '@zag-js/pagination': 1.12.0
+ '@zag-js/pin-input': 1.12.0
+ '@zag-js/popover': 1.12.0
+ '@zag-js/presence': 1.12.0
+ '@zag-js/progress': 1.12.0
+ '@zag-js/qr-code': 1.12.0
+ '@zag-js/radio-group': 1.12.0
+ '@zag-js/rating-group': 1.12.0
+ '@zag-js/react': 1.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@zag-js/select': 1.12.0
+ '@zag-js/signature-pad': 1.12.0
+ '@zag-js/slider': 1.12.0
+ '@zag-js/splitter': 1.12.0
+ '@zag-js/steps': 1.12.0
+ '@zag-js/switch': 1.12.0
+ '@zag-js/tabs': 1.12.0
+ '@zag-js/tags-input': 1.12.0
+ '@zag-js/time-picker': 1.12.0(@internationalized/date@3.8.0)
+ '@zag-js/timer': 1.12.0
+ '@zag-js/toast': 1.12.0
+ '@zag-js/toggle': 1.12.0
+ '@zag-js/toggle-group': 1.12.0
+ '@zag-js/tooltip': 1.12.0
+ '@zag-js/tour': 1.12.0
+ '@zag-js/tree-view': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
@@ -4846,8 +4913,16 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
'@babel/compat-data@7.26.8': {}
+ '@babel/compat-data@7.27.1': {}
+
'@babel/core@7.26.8':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -4869,6 +4944,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/core@7.27.1':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.27.1
+ '@babel/helper-compilation-targets': 7.27.1
+ '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+ '@babel/helpers': 7.27.1
+ '@babel/parser': 7.27.1
+ '@babel/template': 7.27.1
+ '@babel/traverse': 7.27.1
+ '@babel/types': 7.27.1
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/generator@7.26.8':
dependencies:
'@babel/parser': 7.26.8
@@ -4877,6 +4972,14 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.1.0
+ '@babel/generator@7.27.1':
+ dependencies:
+ '@babel/parser': 7.27.1
+ '@babel/types': 7.27.1
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
'@babel/helper-compilation-targets@7.26.5':
dependencies:
'@babel/compat-data': 7.26.8
@@ -4885,6 +4988,14 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
+ '@babel/helper-compilation-targets@7.27.1':
+ dependencies:
+ '@babel/compat-data': 7.27.1
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
'@babel/helper-module-imports@7.25.9':
dependencies:
'@babel/traverse': 7.26.8
@@ -4892,6 +5003,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-imports@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.27.1
+ '@babel/types': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)':
dependencies:
'@babel/core': 7.26.8
@@ -4901,23 +5019,47 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)':
+ dependencies:
+ '@babel/core': 7.27.1
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-plugin-utils@7.26.5': {}
'@babel/helper-string-parser@7.25.9': {}
+ '@babel/helper-string-parser@7.27.1': {}
+
'@babel/helper-validator-identifier@7.25.9': {}
+ '@babel/helper-validator-identifier@7.27.1': {}
+
'@babel/helper-validator-option@7.25.9': {}
+ '@babel/helper-validator-option@7.27.1': {}
+
'@babel/helpers@7.26.7':
dependencies:
'@babel/template': 7.26.8
'@babel/types': 7.26.8
+ '@babel/helpers@7.27.1':
+ dependencies:
+ '@babel/template': 7.27.1
+ '@babel/types': 7.27.1
+
'@babel/parser@7.26.8':
dependencies:
'@babel/types': 7.26.8
+ '@babel/parser@7.27.1':
+ dependencies:
+ '@babel/types': 7.27.1
+
'@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.8)':
dependencies:
'@babel/core': 7.26.8
@@ -5003,14 +5145,14 @@ snapshots:
'@babel/core': 7.26.8
'@babel/helper-plugin-utils': 7.26.5
- '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.8)':
+ '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.27.1)':
dependencies:
- '@babel/core': 7.26.8
+ '@babel/core': 7.27.1
'@babel/helper-plugin-utils': 7.26.5
- '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.8)':
+ '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.27.1)':
dependencies:
- '@babel/core': 7.26.8
+ '@babel/core': 7.27.1
'@babel/helper-plugin-utils': 7.26.5
'@babel/runtime@7.26.7':
@@ -5023,6 +5165,12 @@ snapshots:
'@babel/parser': 7.26.8
'@babel/types': 7.26.8
+ '@babel/template@7.27.1':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.27.1
+ '@babel/types': 7.27.1
+
'@babel/traverse@7.26.8':
dependencies:
'@babel/code-frame': 7.26.2
@@ -5035,18 +5183,35 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@7.27.1':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.27.1
+ '@babel/parser': 7.27.1
+ '@babel/template': 7.27.1
+ '@babel/types': 7.27.1
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/types@7.26.8':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
+ '@babel/types@7.27.1':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
'@bcoe/v8-coverage@0.2.3': {}
- '@chakra-ui/cli@3.16.0(@chakra-ui/react@3.16.0(@emotion/react@11.14.0(@types/react@19.1.1)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))':
+ '@chakra-ui/cli@3.17.0(@chakra-ui/react@3.17.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))':
dependencies:
- '@chakra-ui/react': 3.16.0(@emotion/react@11.14.0(@types/react@19.1.1)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@chakra-ui/react': 3.17.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@clack/prompts': 0.10.1
- '@pandacss/is-valid-prop': 0.41.0
+ '@pandacss/is-valid-prop': 0.53.6
'@types/cli-table': 0.3.4
'@types/debug': 4.1.12
'@visulima/boxen': 1.0.30
@@ -5055,27 +5220,27 @@ snapshots:
cli-table: 0.3.11
commander: 12.1.0
debug: 4.4.0
- globby: 14.0.2
+ globby: 14.1.0
https-proxy-agent: 7.0.6
look-it-up: 2.1.0
node-fetch: 3.3.2
- package-manager-detector: 0.1.2
- prettier: 3.3.3
+ package-manager-detector: 1.2.0
+ prettier: 3.5.3
scule: 1.3.0
sucrase: 3.35.0
- zod: 3.24.2
+ zod: 3.24.3
transitivePeerDependencies:
- supports-color
- '@chakra-ui/react@3.16.0(@emotion/react@11.14.0(@types/react@19.1.1)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@chakra-ui/react@3.17.0(@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@ark-ui/react': 5.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@ark-ui/react': 5.8.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@emotion/is-prop-valid': 1.3.1
- '@emotion/react': 11.14.0(@types/react@19.1.1)(react@19.1.0)
+ '@emotion/react': 11.14.0(@types/react@19.1.2)(react@19.1.0)
'@emotion/serialize': 1.3.3
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.0)
'@emotion/utils': 1.4.2
- '@pandacss/is-valid-prop': 0.41.0
+ '@pandacss/is-valid-prop': 0.53.6
csstype: 3.1.3
fast-safe-stringify: 2.1.1
react: 19.1.0
@@ -5141,7 +5306,7 @@ snapshots:
'@emotion/memoize@0.9.0': {}
- '@emotion/react@11.14.0(@types/react@19.1.1)(react@19.1.0)':
+ '@emotion/react@11.14.0(@types/react@19.1.2)(react@19.1.0)':
dependencies:
'@babel/runtime': 7.26.7
'@emotion/babel-plugin': 11.13.5
@@ -5153,7 +5318,7 @@ snapshots:
hoist-non-react-statics: 3.3.2
react: 19.1.0
optionalDependencies:
- '@types/react': 19.1.1
+ '@types/react': 19.1.2
transitivePeerDependencies:
- supports-color
@@ -5252,9 +5417,9 @@ snapshots:
'@esbuild/win32-x64@0.25.1':
optional: true
- '@eslint-community/eslint-utils@4.4.1(eslint@9.24.0(jiti@2.4.2))':
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.25.1(jiti@2.4.2))':
dependencies:
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@@ -5267,9 +5432,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.2.0': {}
+ '@eslint/config-helpers@0.2.2': {}
- '@eslint/core@0.12.0':
+ '@eslint/core@0.13.0':
dependencies:
'@types/json-schema': 7.0.15
@@ -5287,13 +5452,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.24.0': {}
+ '@eslint/js@9.25.1': {}
'@eslint/object-schema@2.1.6': {}
- '@eslint/plugin-kit@0.2.7':
+ '@eslint/plugin-kit@0.2.8':
dependencies:
- '@eslint/core': 0.12.0
+ '@eslint/core': 0.13.0
levn: 0.4.1
'@floating-ui/core@1.6.9':
@@ -5320,11 +5485,11 @@ snapshots:
'@humanwhocodes/retry@0.4.2': {}
- '@internationalized/date@3.7.0':
+ '@internationalized/date@3.8.0':
dependencies:
'@swc/helpers': 0.5.15
- '@internationalized/number@3.6.0':
+ '@internationalized/number@3.6.1':
dependencies:
'@swc/helpers': 0.5.15
@@ -5350,27 +5515,27 @@ snapshots:
'@jest/console@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))':
+ '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))':
dependencies:
'@jest/console': 29.7.0
'@jest/reporters': 29.7.0
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.9.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ jest-config: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -5395,7 +5560,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jest-mock: 29.7.0
'@jest/expect-utils@29.7.0':
@@ -5413,7 +5578,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -5435,7 +5600,7 @@ snapshots:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.25
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
@@ -5505,16 +5670,16 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
'@types/yargs': 17.0.33
chalk: 4.1.2
- '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
dependencies:
glob: 10.4.5
magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.8.3)
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
optionalDependencies:
typescript: 5.8.3
@@ -5548,10 +5713,10 @@ snapshots:
'@juggle/resize-observer@3.4.0': {}
- '@mdx-js/react@3.1.0(@types/react@19.1.1)(react@19.1.0)':
+ '@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)':
dependencies:
'@types/mdx': 2.0.13
- '@types/react': 19.1.1
+ '@types/react': 19.1.2
react: 19.1.0
'@nodelib/fs.scandir@2.1.5':
@@ -5566,16 +5731,16 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.0
- '@pandacss/is-valid-prop@0.41.0': {}
+ '@pandacss/is-valid-prop@0.53.6': {}
'@pkgjs/parseargs@0.11.0':
optional: true
- '@playwright/test@1.51.1':
+ '@playwright/test@1.52.0':
dependencies:
- playwright: 1.51.1
+ playwright: 1.52.0
- '@puppeteer/browsers@2.10.0':
+ '@puppeteer/browsers@2.10.2':
dependencies:
debug: 4.4.0
extract-zip: 2.0.1
@@ -5588,69 +5753,72 @@ snapshots:
- bare-buffer
- supports-color
- '@rollup/pluginutils@5.1.4(rollup@4.34.6)':
+ '@rollup/pluginutils@5.1.4(rollup@4.40.1)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
- rollup: 4.34.6
+ rollup: 4.40.1
- '@rollup/rollup-android-arm-eabi@4.34.6':
+ '@rollup/rollup-android-arm-eabi@4.40.1':
optional: true
- '@rollup/rollup-android-arm64@4.34.6':
+ '@rollup/rollup-android-arm64@4.40.1':
optional: true
- '@rollup/rollup-darwin-arm64@4.34.6':
+ '@rollup/rollup-darwin-arm64@4.40.1':
optional: true
- '@rollup/rollup-darwin-x64@4.34.6':
+ '@rollup/rollup-darwin-x64@4.40.1':
optional: true
- '@rollup/rollup-freebsd-arm64@4.34.6':
+ '@rollup/rollup-freebsd-arm64@4.40.1':
optional: true
- '@rollup/rollup-freebsd-x64@4.34.6':
+ '@rollup/rollup-freebsd-x64@4.40.1':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.34.6':
+ '@rollup/rollup-linux-arm-gnueabihf@4.40.1':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.34.6':
+ '@rollup/rollup-linux-arm-musleabihf@4.40.1':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.34.6':
+ '@rollup/rollup-linux-arm64-gnu@4.40.1':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.34.6':
+ '@rollup/rollup-linux-arm64-musl@4.40.1':
optional: true
- '@rollup/rollup-linux-loongarch64-gnu@4.34.6':
+ '@rollup/rollup-linux-loongarch64-gnu@4.40.1':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
+ '@rollup/rollup-linux-powerpc64le-gnu@4.40.1':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.34.6':
+ '@rollup/rollup-linux-riscv64-gnu@4.40.1':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.34.6':
+ '@rollup/rollup-linux-riscv64-musl@4.40.1':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.34.6':
+ '@rollup/rollup-linux-s390x-gnu@4.40.1':
optional: true
- '@rollup/rollup-linux-x64-musl@4.34.6':
+ '@rollup/rollup-linux-x64-gnu@4.40.1':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.34.6':
+ '@rollup/rollup-linux-x64-musl@4.40.1':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.34.6':
+ '@rollup/rollup-win32-arm64-msvc@4.40.1':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.34.6':
+ '@rollup/rollup-win32-ia32-msvc@4.40.1':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.40.1':
optional: true
'@rtsao/scc@1.1.0': {}
@@ -5690,9 +5858,9 @@ snapshots:
storybook: 8.6.12(prettier@3.5.3)
ts-dedent: 2.2.0
- '@storybook/addon-docs@8.6.12(@types/react@19.1.1)(storybook@8.6.12(prettier@3.5.3))':
+ '@storybook/addon-docs@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@3.5.3))':
dependencies:
- '@mdx-js/react': 3.1.0(@types/react@19.1.1)(react@19.1.0)
+ '@mdx-js/react': 3.1.0(@types/react@19.1.2)(react@19.1.0)
'@storybook/blocks': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))
'@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@3.5.3))
'@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))
@@ -5703,12 +5871,12 @@ snapshots:
transitivePeerDependencies:
- '@types/react'
- '@storybook/addon-essentials@8.6.12(@types/react@19.1.1)(storybook@8.6.12(prettier@3.5.3))':
+ '@storybook/addon-essentials@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@3.5.3))':
dependencies:
'@storybook/addon-actions': 8.6.12(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-backgrounds': 8.6.12(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-controls': 8.6.12(storybook@8.6.12(prettier@3.5.3))
- '@storybook/addon-docs': 8.6.12(@types/react@19.1.1)(storybook@8.6.12(prettier@3.5.3))
+ '@storybook/addon-docs': 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-measure': 8.6.12(storybook@8.6.12(prettier@3.5.3))
'@storybook/addon-outline': 8.6.12(storybook@8.6.12(prettier@3.5.3))
@@ -5770,13 +5938,13 @@ snapshots:
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
- '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
+ '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
dependencies:
'@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@3.5.3))
browser-assert: 1.2.1
storybook: 8.6.12(prettier@3.5.3)
ts-dedent: 2.2.0
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
'@storybook/components@8.6.12(storybook@8.6.12(prettier@3.5.3))':
dependencies:
@@ -5833,11 +6001,11 @@ snapshots:
react-dom: 19.1.0(react@19.1.0)
storybook: 8.6.12(prettier@3.5.3)
- '@storybook/react-vite@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.34.6)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
+ '@storybook/react-vite@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.40.1)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
- '@rollup/pluginutils': 5.1.4(rollup@4.34.6)
- '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
+ '@rollup/pluginutils': 5.1.4(rollup@4.40.1)
+ '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
'@storybook/react': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.3)
find-up: 5.0.0
magic-string: 0.30.17
@@ -5847,7 +6015,7 @@ snapshots:
resolve: 1.22.10
storybook: 8.6.12(prettier@3.5.3)
tsconfig-paths: 4.2.0
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
transitivePeerDependencies:
- rollup
- supports-color
@@ -5896,15 +6064,15 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
- '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.1.1))(@types/react@19.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.3(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
'@babel/runtime': 7.26.7
'@testing-library/dom': 10.4.0
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
optionalDependencies:
- '@types/react': 19.1.1
- '@types/react-dom': 19.1.2(@types/react@19.1.1)
+ '@types/react': 19.1.2
+ '@types/react-dom': 19.1.3(@types/react@19.1.2)
'@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)':
dependencies:
@@ -5959,8 +6127,6 @@ snapshots:
'@types/cli-table@0.3.4': {}
- '@types/cookie@0.6.0': {}
-
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
@@ -5969,11 +6135,13 @@ snapshots:
'@types/estree@1.0.6': {}
+ '@types/estree@1.0.7': {}
+
'@types/gensync@1.0.4': {}
'@types/graceful-fs@4.1.9':
dependencies:
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -5994,7 +6162,7 @@ snapshots:
'@types/jsdom@20.0.1':
dependencies:
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
'@types/tough-cookie': 4.0.5
parse5: 7.2.1
@@ -6016,21 +6184,21 @@ snapshots:
'@types/ms@2.1.0': {}
- '@types/node@22.14.1':
+ '@types/node@22.15.3':
dependencies:
undici-types: 6.21.0
'@types/parse-json@4.0.2': {}
- '@types/react-dom@19.1.2(@types/react@19.1.1)':
+ '@types/react-dom@19.1.3(@types/react@19.1.2)':
dependencies:
- '@types/react': 19.1.1
+ '@types/react': 19.1.2
- '@types/react-transition-group@4.4.12(@types/react@19.1.1)':
+ '@types/react-transition-group@4.4.12(@types/react@19.1.2)':
dependencies:
- '@types/react': 19.1.1
+ '@types/react': 19.1.2
- '@types/react@19.1.1':
+ '@types/react@19.1.2':
dependencies:
csstype: 3.1.3
@@ -6052,18 +6220,18 @@ snapshots:
'@types/yauzl@2.10.3':
dependencies:
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
optional: true
- '@typescript-eslint/eslint-plugin@8.30.0(@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)':
+ '@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
- '@typescript-eslint/scope-manager': 8.30.0
- '@typescript-eslint/type-utils': 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
- '@typescript-eslint/utils': 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
- '@typescript-eslint/visitor-keys': 8.30.0
- eslint: 9.24.0(jiti@2.4.2)
+ '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/scope-manager': 8.31.1
+ '@typescript-eslint/type-utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/visitor-keys': 8.31.1
+ eslint: 9.25.1(jiti@2.4.2)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
@@ -6072,14 +6240,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)':
+ '@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.30.0
- '@typescript-eslint/types': 8.30.0
- '@typescript-eslint/typescript-estree': 8.30.0(typescript@5.8.3)
- '@typescript-eslint/visitor-keys': 8.30.0
+ '@typescript-eslint/scope-manager': 8.31.1
+ '@typescript-eslint/types': 8.31.1
+ '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3)
+ '@typescript-eslint/visitor-keys': 8.31.1
debug: 4.4.0
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
typescript: 5.8.3
transitivePeerDependencies:
- supports-color
@@ -6089,17 +6257,17 @@ snapshots:
'@typescript-eslint/types': 8.27.0
'@typescript-eslint/visitor-keys': 8.27.0
- '@typescript-eslint/scope-manager@8.30.0':
+ '@typescript-eslint/scope-manager@8.31.1':
dependencies:
- '@typescript-eslint/types': 8.30.0
- '@typescript-eslint/visitor-keys': 8.30.0
+ '@typescript-eslint/types': 8.31.1
+ '@typescript-eslint/visitor-keys': 8.31.1
- '@typescript-eslint/type-utils@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)':
+ '@typescript-eslint/type-utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.30.0(typescript@5.8.3)
- '@typescript-eslint/utils': 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
debug: 4.4.0
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
ts-api-utils: 2.0.1(typescript@5.8.3)
typescript: 5.8.3
transitivePeerDependencies:
@@ -6107,7 +6275,7 @@ snapshots:
'@typescript-eslint/types@8.27.0': {}
- '@typescript-eslint/types@8.30.0': {}
+ '@typescript-eslint/types@8.31.1': {}
'@typescript-eslint/typescript-estree@8.27.0(typescript@5.8.3)':
dependencies:
@@ -6123,10 +6291,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.30.0(typescript@5.8.3)':
+ '@typescript-eslint/typescript-estree@8.31.1(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/types': 8.30.0
- '@typescript-eslint/visitor-keys': 8.30.0
+ '@typescript-eslint/types': 8.31.1
+ '@typescript-eslint/visitor-keys': 8.31.1
debug: 4.4.0
fast-glob: 3.3.3
is-glob: 4.0.3
@@ -6137,24 +6305,24 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.27.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)':
+ '@typescript-eslint/utils@8.27.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.25.1(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.27.0
'@typescript-eslint/types': 8.27.0
'@typescript-eslint/typescript-estree': 8.27.0(typescript@5.8.3)
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
typescript: 5.8.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)':
+ '@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0(jiti@2.4.2))
- '@typescript-eslint/scope-manager': 8.30.0
- '@typescript-eslint/types': 8.30.0
- '@typescript-eslint/typescript-estree': 8.30.0(typescript@5.8.3)
- eslint: 9.24.0(jiti@2.4.2)
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.25.1(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.31.1
+ '@typescript-eslint/types': 8.31.1
+ '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3)
+ eslint: 9.25.1(jiti@2.4.2)
typescript: 5.8.3
transitivePeerDependencies:
- supports-color
@@ -6164,541 +6332,556 @@ snapshots:
'@typescript-eslint/types': 8.27.0
eslint-visitor-keys: 4.2.0
- '@typescript-eslint/visitor-keys@8.30.0':
+ '@typescript-eslint/visitor-keys@8.31.1':
dependencies:
- '@typescript-eslint/types': 8.30.0
+ '@typescript-eslint/types': 8.31.1
eslint-visitor-keys: 4.2.0
'@visulima/boxen@1.0.30': {}
- '@vitejs/plugin-react@4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
+ '@vitejs/plugin-react@4.4.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
dependencies:
- '@babel/core': 7.26.8
- '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.8)
- '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.8)
+ '@babel/core': 7.27.1
+ '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.27.1)
+ '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.27.1)
'@types/babel__core': 7.20.5
- react-refresh: 0.14.2
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ react-refresh: 0.17.0
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@3.1.1':
+ '@vitest/expect@3.1.2':
dependencies:
- '@vitest/spy': 3.1.1
- '@vitest/utils': 3.1.1
+ '@vitest/spy': 3.1.2
+ '@vitest/utils': 3.1.2
chai: 5.2.0
tinyrainbow: 2.0.0
- '@vitest/mocker@3.1.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
+ '@vitest/mocker@3.1.2(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))':
dependencies:
- '@vitest/spy': 3.1.1
+ '@vitest/spy': 3.1.2
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
- '@vitest/pretty-format@3.1.1':
+ '@vitest/pretty-format@3.1.2':
dependencies:
tinyrainbow: 2.0.0
- '@vitest/runner@3.1.1':
+ '@vitest/runner@3.1.2':
dependencies:
- '@vitest/utils': 3.1.1
+ '@vitest/utils': 3.1.2
pathe: 2.0.3
- '@vitest/snapshot@3.1.1':
+ '@vitest/snapshot@3.1.2':
dependencies:
- '@vitest/pretty-format': 3.1.1
+ '@vitest/pretty-format': 3.1.2
magic-string: 0.30.17
pathe: 2.0.3
- '@vitest/spy@3.1.1':
+ '@vitest/spy@3.1.2':
dependencies:
tinyspy: 3.0.2
- '@vitest/utils@3.1.1':
+ '@vitest/utils@3.1.2':
dependencies:
- '@vitest/pretty-format': 3.1.1
+ '@vitest/pretty-format': 3.1.2
loupe: 3.1.3
tinyrainbow: 2.0.0
'@xobotyi/scrollbar-width@1.9.5': {}
- '@zag-js/accordion@1.8.2':
+ '@zag-js/accordion@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/anatomy@1.8.2': {}
+ '@zag-js/anatomy@1.12.0': {}
- '@zag-js/aria-hidden@1.8.2': {}
-
- '@zag-js/auto-resize@1.8.2':
+ '@zag-js/angle-slider@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/rect-utils': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/avatar@1.8.2':
+ '@zag-js/aria-hidden@1.12.0': {}
+
+ '@zag-js/auto-resize@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/dom-query': 1.12.0
- '@zag-js/carousel@1.8.2':
+ '@zag-js/avatar@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/scroll-snap': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/checkbox@1.8.2':
+ '@zag-js/carousel@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-visible': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/scroll-snap': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/clipboard@1.8.2':
+ '@zag-js/checkbox@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-visible': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/collapsible@1.8.2':
+ '@zag-js/clipboard@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/collection@1.8.2':
+ '@zag-js/collapsible@1.12.0':
dependencies:
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/color-picker@1.8.2':
+ '@zag-js/collection@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/color-utils': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/utils': 1.12.0
- '@zag-js/color-utils@1.8.2':
+ '@zag-js/color-picker@1.12.0':
dependencies:
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/color-utils': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/combobox@1.8.2':
+ '@zag-js/color-utils@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/aria-hidden': 1.8.2
- '@zag-js/collection': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/utils': 1.12.0
- '@zag-js/core@1.8.2':
+ '@zag-js/combobox@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/aria-hidden': 1.12.0
+ '@zag-js/collection': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/date-picker@1.8.2(@internationalized/date@3.7.0)':
+ '@zag-js/core@1.12.0':
dependencies:
- '@internationalized/date': 3.7.0
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/date-utils': 1.8.2(@internationalized/date@3.7.0)
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/live-region': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/date-utils@1.8.2(@internationalized/date@3.7.0)':
+ '@zag-js/date-picker@1.12.0(@internationalized/date@3.8.0)':
dependencies:
- '@internationalized/date': 3.7.0
+ '@internationalized/date': 3.8.0
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/date-utils': 1.12.0(@internationalized/date@3.8.0)
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/live-region': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/dialog@1.8.2':
+ '@zag-js/date-utils@1.12.0(@internationalized/date@3.8.0)':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/aria-hidden': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-trap': 1.8.2
- '@zag-js/remove-scroll': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@internationalized/date': 3.8.0
- '@zag-js/dismissable@1.8.2':
+ '@zag-js/dialog@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
- '@zag-js/interact-outside': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/aria-hidden': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-trap': 1.12.0
+ '@zag-js/remove-scroll': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/dom-query@1.8.1':
+ '@zag-js/dismissable@1.12.0':
dependencies:
- '@zag-js/types': 1.8.1
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/interact-outside': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/dom-query@1.8.2':
+ '@zag-js/dom-query@1.12.0':
dependencies:
- '@zag-js/types': 1.8.2
+ '@zag-js/types': 1.12.0
- '@zag-js/editable@1.8.2':
+ '@zag-js/editable@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/interact-outside': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/interact-outside': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/file-upload@1.8.2':
+ '@zag-js/file-upload@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/file-utils': 1.8.2
- '@zag-js/i18n-utils': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/file-utils': 1.12.0
+ '@zag-js/i18n-utils': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/file-utils@1.8.1':
+ '@zag-js/file-utils@1.12.0':
dependencies:
- '@zag-js/i18n-utils': 1.8.1
+ '@zag-js/i18n-utils': 1.12.0
- '@zag-js/file-utils@1.8.2':
+ '@zag-js/floating-panel@1.12.0':
dependencies:
- '@zag-js/i18n-utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/rect-utils': 1.12.0
+ '@zag-js/store': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/focus-trap@1.8.2':
+ '@zag-js/focus-trap@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
+ '@zag-js/dom-query': 1.12.0
- '@zag-js/focus-visible@1.8.2':
+ '@zag-js/focus-visible@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
+ '@zag-js/dom-query': 1.12.0
- '@zag-js/highlight-word@1.8.2': {}
+ '@zag-js/highlight-word@1.12.0': {}
- '@zag-js/hover-card@1.8.2':
+ '@zag-js/hover-card@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/i18n-utils@1.8.1':
+ '@zag-js/i18n-utils@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.1
+ '@zag-js/dom-query': 1.12.0
- '@zag-js/i18n-utils@1.8.2':
+ '@zag-js/interact-outside@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/interact-outside@1.8.2':
+ '@zag-js/listbox@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/collection': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-visible': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/live-region@1.8.2': {}
+ '@zag-js/live-region@1.12.0': {}
- '@zag-js/menu@1.8.2':
+ '@zag-js/menu@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/rect-utils': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/rect-utils': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/number-input@1.8.2':
+ '@zag-js/number-input@1.12.0':
dependencies:
- '@internationalized/number': 3.6.0
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@internationalized/number': 3.6.1
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/pagination@1.8.2':
+ '@zag-js/pagination@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/pin-input@1.8.2':
+ '@zag-js/pin-input@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/popover@1.8.2':
+ '@zag-js/popover@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/aria-hidden': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-trap': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/remove-scroll': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/aria-hidden': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-trap': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/remove-scroll': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/popper@1.8.2':
+ '@zag-js/popper@1.12.0':
dependencies:
'@floating-ui/dom': 1.6.13
- '@zag-js/dom-query': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/presence@1.8.2':
+ '@zag-js/presence@1.12.0':
dependencies:
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
- '@zag-js/progress@1.8.2':
+ '@zag-js/progress@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/qr-code@1.8.2':
+ '@zag-js/qr-code@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
proxy-memoize: 3.0.1
uqr: 0.1.2
- '@zag-js/radio-group@1.8.2':
+ '@zag-js/radio-group@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-visible': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-visible': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/rating-group@1.8.2':
+ '@zag-js/rating-group@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/react@1.8.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@zag-js/react@1.12.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@zag-js/core': 1.8.2
- '@zag-js/store': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/core': 1.12.0
+ '@zag-js/store': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
- '@zag-js/rect-utils@1.8.2': {}
+ '@zag-js/rect-utils@1.12.0': {}
- '@zag-js/remove-scroll@1.8.2':
+ '@zag-js/remove-scroll@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
+ '@zag-js/dom-query': 1.12.0
- '@zag-js/scroll-snap@1.8.2':
+ '@zag-js/scroll-snap@1.12.0':
dependencies:
- '@zag-js/dom-query': 1.8.2
+ '@zag-js/dom-query': 1.12.0
- '@zag-js/select@1.8.2':
+ '@zag-js/select@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/collection': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/collection': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/signature-pad@1.8.2':
+ '@zag-js/signature-pad@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
perfect-freehand: 1.2.2
- '@zag-js/slider@1.8.2':
+ '@zag-js/slider@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/splitter@1.8.2':
+ '@zag-js/splitter@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/steps@1.8.2':
+ '@zag-js/steps@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/store@1.8.2':
+ '@zag-js/store@1.12.0':
dependencies:
proxy-compare: 3.0.1
- '@zag-js/switch@1.8.2':
+ '@zag-js/switch@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-visible': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-visible': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/tabs@1.8.2':
+ '@zag-js/tabs@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/tags-input@1.8.2':
+ '@zag-js/tags-input@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/auto-resize': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/interact-outside': 1.8.2
- '@zag-js/live-region': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/auto-resize': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/interact-outside': 1.12.0
+ '@zag-js/live-region': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/time-picker@1.8.2(@internationalized/date@3.7.0)':
+ '@zag-js/time-picker@1.12.0(@internationalized/date@3.8.0)':
dependencies:
- '@internationalized/date': 3.7.0
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@internationalized/date': 3.8.0
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/timer@1.8.2':
+ '@zag-js/timer@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/toast@1.8.2':
+ '@zag-js/toast@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/toggle-group@1.8.2':
+ '@zag-js/toggle-group@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/toggle@1.8.2':
+ '@zag-js/toggle@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/tooltip@1.8.2':
+ '@zag-js/tooltip@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-visible': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/store': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-visible': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/store': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/tour@1.8.2':
+ '@zag-js/tour@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dismissable': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/focus-trap': 1.8.2
- '@zag-js/interact-outside': 1.8.2
- '@zag-js/popper': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dismissable': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/focus-trap': 1.12.0
+ '@zag-js/interact-outside': 1.12.0
+ '@zag-js/popper': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/tree-view@1.8.2':
+ '@zag-js/tree-view@1.12.0':
dependencies:
- '@zag-js/anatomy': 1.8.2
- '@zag-js/collection': 1.8.2
- '@zag-js/core': 1.8.2
- '@zag-js/dom-query': 1.8.2
- '@zag-js/types': 1.8.2
- '@zag-js/utils': 1.8.2
+ '@zag-js/anatomy': 1.12.0
+ '@zag-js/collection': 1.12.0
+ '@zag-js/core': 1.12.0
+ '@zag-js/dom-query': 1.12.0
+ '@zag-js/types': 1.12.0
+ '@zag-js/utils': 1.12.0
- '@zag-js/types@1.8.1':
+ '@zag-js/types@1.12.0':
dependencies:
csstype: 3.1.3
- '@zag-js/types@1.8.2':
- dependencies:
- csstype: 3.1.3
-
- '@zag-js/utils@1.8.2': {}
+ '@zag-js/utils@1.12.0': {}
abab@2.0.6: {}
@@ -7080,11 +7263,11 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- chromium-bidi@3.0.0(devtools-protocol@0.0.1425554):
+ chromium-bidi@4.1.1(devtools-protocol@0.0.1425554):
dependencies:
devtools-protocol: 0.0.1425554
mitt: 3.0.1
- zod: 3.24.2
+ zod: 3.24.3
ci-info@3.9.0: {}
@@ -7111,9 +7294,6 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
- clone@1.0.4:
- optional: true
-
co@4.6.0: {}
collect-v8-coverage@1.0.2: {}
@@ -7170,13 +7350,13 @@ snapshots:
optionalDependencies:
typescript: 5.8.3
- create-jest@29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3)):
+ create-jest@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ jest-config: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -7270,11 +7450,6 @@ snapshots:
deepmerge@4.3.1: {}
- defaults@1.0.4:
- dependencies:
- clone: 1.0.4
- optional: true
-
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.1
@@ -7340,12 +7515,6 @@ snapshots:
eastasianwidth@0.2.0: {}
- easy-table@1.2.0:
- dependencies:
- ansi-regex: 5.0.1
- optionalDependencies:
- wcwidth: 1.0.1
-
electron-to-chromium@1.5.97: {}
emittery@0.13.1: {}
@@ -7538,17 +7707,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.24.0(jiti@2.4.2)):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.25.1(jiti@2.4.2)):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
- eslint: 9.24.0(jiti@2.4.2)
+ '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
+ eslint: 9.25.1(jiti@2.4.2)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2)):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -7557,9 +7726,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.24.0(jiti@2.4.2))
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.25.1(jiti@2.4.2))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -7571,17 +7740,17 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.30.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
+ '@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-react-hooks@5.2.0(eslint@9.24.0(jiti@2.4.2)):
+ eslint-plugin-react-hooks@5.2.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
- eslint-plugin-react@7.37.5(eslint@9.24.0(jiti@2.4.2)):
+ eslint-plugin-react@7.37.5(eslint@9.25.1(jiti@2.4.2)):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
@@ -7589,7 +7758,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 9.24.0(jiti@2.4.2)
+ eslint: 9.25.1(jiti@2.4.2)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -7603,11 +7772,11 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- eslint-plugin-storybook@0.12.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3):
+ eslint-plugin-storybook@0.12.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3):
dependencies:
'@storybook/csf': 0.1.13
- '@typescript-eslint/utils': 8.27.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
- eslint: 9.24.0(jiti@2.4.2)
+ '@typescript-eslint/utils': 8.27.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
+ eslint: 9.25.1(jiti@2.4.2)
ts-dedent: 2.2.0
transitivePeerDependencies:
- supports-color
@@ -7622,16 +7791,16 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
- eslint@9.24.0(jiti@2.4.2):
+ eslint@9.25.1(jiti@2.4.2):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.20.0
- '@eslint/config-helpers': 0.2.0
- '@eslint/core': 0.12.0
+ '@eslint/config-helpers': 0.2.2
+ '@eslint/core': 0.13.0
'@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.24.0
- '@eslint/plugin-kit': 0.2.7
+ '@eslint/js': 9.25.1
+ '@eslint/plugin-kit': 0.2.8
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.2
@@ -7774,6 +7943,10 @@ snapshots:
dependencies:
pend: 1.2.0
+ fdir@6.4.4(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
fetch-blob@3.2.0:
dependencies:
node-domexception: 1.0.0
@@ -7942,14 +8115,14 @@ snapshots:
define-properties: 1.2.1
gopd: 1.2.0
- globby@14.0.2:
+ globby@14.1.0:
dependencies:
'@sindresorhus/merge-streams': 2.3.0
fast-glob: 3.3.3
- ignore: 5.3.2
- path-type: 5.0.0
+ ignore: 7.0.4
+ path-type: 6.0.0
slash: 5.1.0
- unicorn-magic: 0.1.0
+ unicorn-magic: 0.3.0
gopd@1.2.0: {}
@@ -8034,6 +8207,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@7.0.4: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -8284,7 +8459,7 @@ snapshots:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.3(babel-plugin-macros@3.1.0)
@@ -8304,16 +8479,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3)):
+ jest-cli@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ create-jest: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
exit: 0.1.2
import-local: 3.2.0
- jest-config: 29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ jest-config: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -8323,7 +8498,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3)):
+ jest-config@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
dependencies:
'@babel/core': 7.26.8
'@jest/test-sequencer': 29.7.0
@@ -8348,8 +8523,8 @@ snapshots:
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 22.14.1
- ts-node: 10.9.2(@types/node@22.14.1)(typescript@5.8.3)
+ '@types/node': 22.15.3
+ ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -8379,7 +8554,7 @@ snapshots:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/jsdom': 20.0.1
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jest-mock: 29.7.0
jest-util: 29.7.0
jsdom: 20.0.3
@@ -8393,7 +8568,7 @@ snapshots:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -8403,7 +8578,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -8442,7 +8617,7 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jest-util: 29.7.0
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@@ -8477,7 +8652,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -8505,7 +8680,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
chalk: 4.1.2
cjs-module-lexer: 1.4.3
collect-v8-coverage: 1.0.2
@@ -8551,7 +8726,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -8570,7 +8745,7 @@ snapshots:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -8579,17 +8754,17 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3)):
+ jest@29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)):
dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
'@jest/types': 29.6.3
import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3))
+ jest-cli: 29.7.0(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -8677,11 +8852,10 @@ snapshots:
kleur@3.0.3: {}
- knip@5.50.3(@types/node@22.14.1)(typescript@5.8.3):
+ knip@5.52.0(@types/node@22.15.3)(typescript@5.8.3):
dependencies:
'@nodelib/fs.walk': 1.2.8
- '@types/node': 22.14.1
- easy-table: 1.2.0
+ '@types/node': 22.15.3
enhanced-resolve: 5.18.1
fast-glob: 3.3.3
jiti: 2.4.2
@@ -8693,8 +8867,8 @@ snapshots:
smol-toml: 1.3.1
strip-json-comments: 5.0.1
typescript: 5.8.3
- zod: 3.24.2
- zod-validation-error: 3.4.0(zod@3.24.2)
+ zod: 3.24.3
+ zod-validation-error: 3.4.0(zod@3.24.3)
leven@3.1.0: {}
@@ -9191,7 +9365,7 @@ snapshots:
normalize-path@3.0.0: {}
- npm-check-updates@17.1.18: {}
+ npm-check-updates@18.0.1: {}
npm-run-path@4.0.1:
dependencies:
@@ -9320,7 +9494,7 @@ snapshots:
package-json-from-dist@1.0.1: {}
- package-manager-detector@0.1.2: {}
+ package-manager-detector@1.2.0: {}
parent-module@1.0.1:
dependencies:
@@ -9356,7 +9530,7 @@ snapshots:
path-type@4.0.0: {}
- path-type@5.0.0: {}
+ path-type@6.0.0: {}
pathe@2.0.3: {}
@@ -9380,11 +9554,11 @@ snapshots:
dependencies:
find-up: 4.1.0
- playwright-core@1.51.1: {}
+ playwright-core@1.52.0: {}
- playwright@1.51.1:
+ playwright@1.52.0:
dependencies:
- playwright-core: 1.51.1
+ playwright-core: 1.52.0
optionalDependencies:
fsevents: 2.3.2
@@ -9402,8 +9576,6 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.3.3: {}
-
prettier@3.5.3: {}
pretty-format@27.5.1:
@@ -9469,10 +9641,10 @@ snapshots:
punycode@2.3.1: {}
- puppeteer-core@24.6.1:
+ puppeteer-core@24.7.2:
dependencies:
- '@puppeteer/browsers': 2.10.0
- chromium-bidi: 3.0.0(devtools-protocol@0.0.1425554)
+ '@puppeteer/browsers': 2.10.2
+ chromium-bidi: 4.1.1(devtools-protocol@0.0.1425554)
debug: 4.4.0
devtools-protocol: 0.0.1425554
typed-query-selector: 2.12.0
@@ -9483,13 +9655,13 @@ snapshots:
- supports-color
- utf-8-validate
- puppeteer@24.6.1(typescript@5.8.3):
+ puppeteer@24.7.2(typescript@5.8.3):
dependencies:
- '@puppeteer/browsers': 2.10.0
- chromium-bidi: 3.0.0(devtools-protocol@0.0.1425554)
+ '@puppeteer/browsers': 2.10.2
+ chromium-bidi: 4.1.1(devtools-protocol@0.0.1425554)
cosmiconfig: 9.0.0(typescript@5.8.3)
devtools-protocol: 0.0.1425554
- puppeteer-core: 24.6.1
+ puppeteer-core: 24.7.2
typed-query-selector: 2.12.0
transitivePeerDependencies:
- bare-buffer
@@ -9545,17 +9717,16 @@ snapshots:
react-is@19.1.0: {}
- react-refresh@0.14.2: {}
+ react-refresh@0.17.0: {}
- react-router-dom@7.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ react-router-dom@7.5.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
- react-router: 7.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react-router: 7.5.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react-router@7.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ react-router@7.5.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
- '@types/cookie': 0.6.0
cookie: 1.0.2
react: 19.1.0
set-cookie-parser: 2.7.1
@@ -9563,25 +9734,26 @@ snapshots:
optionalDependencies:
react-dom: 19.1.0(react@19.1.0)
- react-select@5.10.1(@types/react@19.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ react-select@5.10.1(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
'@babel/runtime': 7.26.7
'@emotion/cache': 11.14.0
- '@emotion/react': 11.14.0(@types/react@19.1.1)(react@19.1.0)
+ '@emotion/react': 11.14.0(@types/react@19.1.2)(react@19.1.0)
'@floating-ui/dom': 1.6.13
- '@types/react-transition-group': 4.4.12(@types/react@19.1.1)
+ '@types/react-transition-group': 4.4.12(@types/react@19.1.2)
memoize-one: 6.0.0
prop-types: 15.8.1
react: 19.1.0
react-dom: 19.1.0(react@19.1.0)
react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.1)(react@19.1.0)
+ use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.2)(react@19.1.0)
transitivePeerDependencies:
- '@types/react'
- supports-color
- react-speech-recognition@4.0.0(react@19.1.0):
+ react-speech-recognition@4.0.1(react@19.1.0):
dependencies:
+ lodash.debounce: 4.0.8
react: 19.1.0
react-transition-group@4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
@@ -9721,29 +9893,30 @@ snapshots:
rfdc@1.4.1: {}
- rollup@4.34.6:
+ rollup@4.40.1:
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.7
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.34.6
- '@rollup/rollup-android-arm64': 4.34.6
- '@rollup/rollup-darwin-arm64': 4.34.6
- '@rollup/rollup-darwin-x64': 4.34.6
- '@rollup/rollup-freebsd-arm64': 4.34.6
- '@rollup/rollup-freebsd-x64': 4.34.6
- '@rollup/rollup-linux-arm-gnueabihf': 4.34.6
- '@rollup/rollup-linux-arm-musleabihf': 4.34.6
- '@rollup/rollup-linux-arm64-gnu': 4.34.6
- '@rollup/rollup-linux-arm64-musl': 4.34.6
- '@rollup/rollup-linux-loongarch64-gnu': 4.34.6
- '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6
- '@rollup/rollup-linux-riscv64-gnu': 4.34.6
- '@rollup/rollup-linux-s390x-gnu': 4.34.6
- '@rollup/rollup-linux-x64-gnu': 4.34.6
- '@rollup/rollup-linux-x64-musl': 4.34.6
- '@rollup/rollup-win32-arm64-msvc': 4.34.6
- '@rollup/rollup-win32-ia32-msvc': 4.34.6
- '@rollup/rollup-win32-x64-msvc': 4.34.6
+ '@rollup/rollup-android-arm-eabi': 4.40.1
+ '@rollup/rollup-android-arm64': 4.40.1
+ '@rollup/rollup-darwin-arm64': 4.40.1
+ '@rollup/rollup-darwin-x64': 4.40.1
+ '@rollup/rollup-freebsd-arm64': 4.40.1
+ '@rollup/rollup-freebsd-x64': 4.40.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.40.1
+ '@rollup/rollup-linux-arm-musleabihf': 4.40.1
+ '@rollup/rollup-linux-arm64-gnu': 4.40.1
+ '@rollup/rollup-linux-arm64-musl': 4.40.1
+ '@rollup/rollup-linux-loongarch64-gnu': 4.40.1
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.40.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.40.1
+ '@rollup/rollup-linux-riscv64-musl': 4.40.1
+ '@rollup/rollup-linux-s390x-gnu': 4.40.1
+ '@rollup/rollup-linux-x64-gnu': 4.40.1
+ '@rollup/rollup-linux-x64-musl': 4.40.1
+ '@rollup/rollup-win32-arm64-msvc': 4.40.1
+ '@rollup/rollup-win32-ia32-msvc': 4.40.1
+ '@rollup/rollup-win32-x64-msvc': 4.40.1
fsevents: 2.3.3
rtl-css-js@1.16.1:
@@ -10128,6 +10301,11 @@ snapshots:
tinyexec@0.3.2: {}
+ tinyglobby@0.2.13:
+ dependencies:
+ fdir: 6.4.4(picomatch@4.0.2)
+ picomatch: 4.0.2
+
tinypool@1.0.2: {}
tinyrainbow@2.0.0: {}
@@ -10165,14 +10343,14 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-node@10.9.2(@types/node@22.14.1)(typescript@5.8.3):
+ ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
acorn: 8.14.0
acorn-walk: 8.3.4
arg: 4.1.3
@@ -10256,7 +10434,7 @@ snapshots:
undici-types@6.21.0: {}
- unicorn-magic@0.1.0: {}
+ unicorn-magic@0.3.0: {}
unified@11.0.5:
dependencies:
@@ -10311,11 +10489,11 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
- use-isomorphic-layout-effect@1.2.0(@types/react@19.1.1)(react@19.1.0):
+ use-isomorphic-layout-effect@1.2.0(@types/react@19.1.2)(react@19.1.0):
dependencies:
react: 19.1.0
optionalDependencies:
- '@types/react': 19.1.1
+ '@types/react': 19.1.2
use-resize-observer@9.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
@@ -10351,13 +10529,13 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.2
- vite-node@3.1.1(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0):
+ vite-node@3.1.2(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0):
dependencies:
cac: 6.7.14
debug: 4.4.0
es-module-lexer: 1.6.0
pathe: 2.0.3
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -10372,27 +10550,30 @@ snapshots:
- tsx
- yaml
- vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0):
+ vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0):
dependencies:
esbuild: 0.25.1
+ fdir: 6.4.4(picomatch@4.0.2)
+ picomatch: 4.0.2
postcss: 8.5.3
- rollup: 4.34.6
+ rollup: 4.40.1
+ tinyglobby: 0.2.13
optionalDependencies:
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
fsevents: 2.3.3
jiti: 2.4.2
terser: 5.39.0
yaml: 2.7.0
- vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@20.0.3)(terser@5.39.0)(yaml@2.7.0):
+ vitest@3.1.2(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@20.0.3)(terser@5.39.0)(yaml@2.7.0):
dependencies:
- '@vitest/expect': 3.1.1
- '@vitest/mocker': 3.1.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
- '@vitest/pretty-format': 3.1.1
- '@vitest/runner': 3.1.1
- '@vitest/snapshot': 3.1.1
- '@vitest/spy': 3.1.1
- '@vitest/utils': 3.1.1
+ '@vitest/expect': 3.1.2
+ '@vitest/mocker': 3.1.2(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0))
+ '@vitest/pretty-format': 3.1.2
+ '@vitest/runner': 3.1.2
+ '@vitest/snapshot': 3.1.2
+ '@vitest/spy': 3.1.2
+ '@vitest/utils': 3.1.2
chai: 5.2.0
debug: 4.4.0
expect-type: 1.2.1
@@ -10401,14 +10582,15 @@ snapshots:
std-env: 3.9.0
tinybench: 2.9.0
tinyexec: 0.3.2
+ tinyglobby: 0.2.13
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
- vite-node: 3.1.1(@types/node@22.14.1)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
+ vite-node: 3.1.2(@types/node@22.15.3)(jiti@2.4.2)(terser@5.39.0)(yaml@2.7.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
- '@types/node': 22.14.1
+ '@types/node': 22.15.3
jsdom: 20.0.3
transitivePeerDependencies:
- jiti
@@ -10432,11 +10614,6 @@ snapshots:
dependencies:
makeerror: 1.0.12
- wcwidth@1.0.1:
- dependencies:
- defaults: 1.0.4
- optional: true
-
web-streams-polyfill@3.3.3: {}
webidl-conversions@7.0.0: {}
@@ -10567,15 +10744,15 @@ snapshots:
yocto-queue@0.1.0: {}
- zod-validation-error@3.4.0(zod@3.24.2):
+ zod-validation-error@3.4.0(zod@3.24.3):
dependencies:
- zod: 3.24.2
+ zod: 3.24.3
- zod@3.24.2: {}
+ zod@3.24.3: {}
- zustand@5.0.3(@types/react@19.1.1)(react@19.1.0):
+ zustand@5.0.3(@types/react@19.1.2)(react@19.1.0):
optionalDependencies:
- '@types/react': 19.1.1
+ '@types/react': 19.1.2
react: 19.1.0
zwitch@2.0.4: {}
diff --git a/front/src/back-api/api/album-resource.ts b/front/src/back-api/api/album-resource.ts
index fd3bdda..6f7ec2c 100644
--- a/front/src/back-api/api/album-resource.ts
+++ b/front/src/back-api/api/album-resource.ts
@@ -15,7 +15,6 @@ import {
Album,
AlbumCreate,
AlbumUpdate,
- Long,
ObjectId,
ZodAlbum,
isAlbum,
@@ -32,12 +31,12 @@ export namespace AlbumResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/album/{id}",
+ endPoint: "/album/{oid}",
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
},
@@ -107,13 +106,13 @@ export namespace AlbumResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: AlbumUpdate,
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/album/{id}",
+ endPoint: "/album/{oid}",
requestType: HTTPRequestModel.PUT,
contentType: HTTPMimeType.JSON,
accept: HTTPMimeType.JSON,
@@ -132,12 +131,12 @@ export namespace AlbumResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestVoid({
restModel: {
- endPoint: "/album/{id}",
+ endPoint: "/album/{oid}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
},
@@ -155,12 +154,12 @@ export namespace AlbumResource {
restConfig: RESTConfig,
params: {
coverId: ObjectId,
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/album/{id}/cover/{coverId}",
+ endPoint: "/album/{oid}/cover/{coverId}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
accept: HTTPMimeType.JSON,
@@ -180,7 +179,7 @@ export namespace AlbumResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: {
file?: File,
@@ -190,7 +189,7 @@ export namespace AlbumResource {
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/album/{id}/cover",
+ endPoint: "/album/{oid}/cover",
requestType: HTTPRequestModel.POST,
contentType: HTTPMimeType.MULTIPART,
accept: HTTPMimeType.JSON,
diff --git a/front/src/back-api/api/artist-resource.ts b/front/src/back-api/api/artist-resource.ts
index cfc5c04..5344e9a 100644
--- a/front/src/back-api/api/artist-resource.ts
+++ b/front/src/back-api/api/artist-resource.ts
@@ -15,7 +15,6 @@ import {
Artist,
ArtistCreate,
ArtistUpdate,
- Long,
ObjectId,
ZodArtist,
isArtist,
@@ -29,12 +28,12 @@ export namespace ArtistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/artist/{id}",
+ endPoint: "/artist/{oid}",
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
},
@@ -95,13 +94,13 @@ export namespace ArtistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: ArtistUpdate,
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/artist/{id}",
+ endPoint: "/artist/{oid}",
requestType: HTTPRequestModel.PUT,
contentType: HTTPMimeType.JSON,
accept: HTTPMimeType.JSON,
@@ -117,12 +116,12 @@ export namespace ArtistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestVoid({
restModel: {
- endPoint: "/artist/{id}",
+ endPoint: "/artist/{oid}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
},
@@ -137,12 +136,12 @@ export namespace ArtistResource {
restConfig: RESTConfig,
params: {
coverId: ObjectId,
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/artist/{id}/cover/{coverId}",
+ endPoint: "/artist/{oid}/cover/{coverId}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
accept: HTTPMimeType.JSON,
@@ -159,7 +158,7 @@ export namespace ArtistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: {
file?: File,
@@ -169,7 +168,7 @@ export namespace ArtistResource {
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/artist/{id}/cover",
+ endPoint: "/artist/{oid}/cover",
requestType: HTTPRequestModel.POST,
contentType: HTTPMimeType.MULTIPART,
accept: HTTPMimeType.JSON,
diff --git a/front/src/back-api/api/gender-resource.ts b/front/src/back-api/api/gender-resource.ts
index a163274..955871d 100644
--- a/front/src/back-api/api/gender-resource.ts
+++ b/front/src/back-api/api/gender-resource.ts
@@ -15,7 +15,6 @@ import {
Gender,
GenderCreate,
GenderUpdate,
- Long,
ObjectId,
ZodGender,
isGender,
@@ -29,12 +28,12 @@ export namespace GenderResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/gender/{id}",
+ endPoint: "/gender/{oid}",
requestType: HTTPRequestModel.GET,
accept: HTTPMimeType.JSON,
},
@@ -77,13 +76,13 @@ export namespace GenderResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: GenderUpdate,
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/gender/{id}",
+ endPoint: "/gender/{oid}",
requestType: HTTPRequestModel.PUT,
contentType: HTTPMimeType.JSON,
accept: HTTPMimeType.JSON,
@@ -117,12 +116,12 @@ export namespace GenderResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestVoid({
restModel: {
- endPoint: "/gender/{id}",
+ endPoint: "/gender/{oid}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
},
@@ -137,12 +136,12 @@ export namespace GenderResource {
restConfig: RESTConfig,
params: {
coverId: ObjectId,
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/gender/{id}/cover/{coverId}",
+ endPoint: "/gender/{oid}/cover/{coverId}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
accept: HTTPMimeType.JSON,
@@ -159,7 +158,7 @@ export namespace GenderResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: {
file?: File,
@@ -169,7 +168,7 @@ export namespace GenderResource {
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/gender/{id}/cover",
+ endPoint: "/gender/{oid}/cover",
requestType: HTTPRequestModel.POST,
contentType: HTTPMimeType.MULTIPART,
accept: HTTPMimeType.JSON,
diff --git a/front/src/back-api/api/playlist-resource.ts b/front/src/back-api/api/playlist-resource.ts
index 6d8dd9d..4b197c7 100644
--- a/front/src/back-api/api/playlist-resource.ts
+++ b/front/src/back-api/api/playlist-resource.ts
@@ -11,7 +11,6 @@ import {
import { z as zod } from "zod"
import {
- Long,
ObjectId,
Playlist,
PlaylistCreate,
@@ -28,7 +27,7 @@ export namespace PlaylistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ id: ObjectId,
},
}): Promise {
return RESTRequestJson({
@@ -94,13 +93,13 @@ export namespace PlaylistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: PlaylistUpdate,
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/playlist/{id}",
+ endPoint: "/playlist/{oid}",
requestType: HTTPRequestModel.PUT,
contentType: HTTPMimeType.JSON,
accept: HTTPMimeType.JSON,
@@ -116,12 +115,12 @@ export namespace PlaylistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestVoid({
restModel: {
- endPoint: "/playlist/{id}",
+ endPoint: "/playlist/{oid}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
},
@@ -136,12 +135,12 @@ export namespace PlaylistResource {
restConfig: RESTConfig,
params: {
coverId: ObjectId,
- id: Long,
+ oid: ObjectId,
},
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/playlist/{id}/cover/{coverId}",
+ endPoint: "/playlist/{oid}/cover/{coverId}",
requestType: HTTPRequestModel.DELETE,
contentType: HTTPMimeType.TEXT_PLAIN,
accept: HTTPMimeType.JSON,
@@ -157,7 +156,7 @@ export namespace PlaylistResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
data: {
file: File,
@@ -165,7 +164,7 @@ export namespace PlaylistResource {
}): Promise {
return RESTRequestJson({
restModel: {
- endPoint: "/playlist/{id}/cover",
+ endPoint: "/playlist/{oid}/cover",
requestType: HTTPRequestModel.POST,
contentType: HTTPMimeType.MULTIPART,
accept: HTTPMimeType.JSON,
diff --git a/front/src/back-api/api/track-resource.ts b/front/src/back-api/api/track-resource.ts
index 1ec59ef..a4a3e71 100644
--- a/front/src/back-api/api/track-resource.ts
+++ b/front/src/back-api/api/track-resource.ts
@@ -29,12 +29,12 @@ export namespace TrackResource {
}: {
restConfig: RESTConfig,
params: {
- id: Long,
+ oid: ObjectId,
},
}): Promise