upgrade to tauri 2

This commit is contained in:
Michael Zhang 2024-06-02 17:37:36 -04:00
parent db50464eab
commit e23dc93936
15 changed files with 1956 additions and 841 deletions

2320
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"build": "vite build",
"preview": "vite preview",
"tauri": "tauri"
},
@ -19,6 +19,7 @@
"@remark-embedder/core": "^3.0.3",
"@tanstack/react-query": "^5.37.1",
"@tauri-apps/api": "^1",
"@tauri-apps/plugin-window-state": "2.0.0-beta.6",
"@uidotdev/usehooks": "^2.4.1",
"@uiw/react-md-editor": "^4.0.4",
"classnames": "^2.5.1",
@ -45,7 +46,7 @@
"vfile": "^6.0.1"
},
"devDependencies": {
"@tauri-apps/cli": "^1",
"@tauri-apps/cli": "2.0.0-beta.20",
"@types/mdast": "^4.0.4",
"@types/react": "^18.2.15",
"@types/react-dom": "^18.2.7",

View file

@ -1,19 +1,31 @@
[package]
name = "panorama"
version = "0.0.0"
version = "0.1.0"
description = "A Tauri App"
authors = ["you"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "app_lib"
crate-type = [
"staticlib",
"cdylib",
# "rlib",
"lib",
]
[build-dependencies]
tauri-build = { version = "1", features = [] }
tauri-build = { version = "2.0.0-beta", features = [] }
[dependencies]
tauri = { version = "1", features = [ "app-all", "http-request", "shell-open"] }
tauri = { version = "2.0.0-beta", features = [] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tauri-build = { version = "2.0.0-beta.17", features = ["config-toml"] }
tauri-plugin-http = "2.0.0-beta.9"
tauri-plugin-shell = "2.0.0-beta.7"
tauri-plugin-single-instance = "2.0.0-beta.9"
tauri-plugin-window-state = "2.0.0-beta"
[features]
# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!

View file

@ -1,3 +1,3 @@
fn main() {
tauri_build::build()
tauri_build::build()
}

View file

@ -0,0 +1,30 @@
{
"identifier": "migrated",
"description": "permissions that were migrated from v1",
"local": true,
"windows": [
"main"
],
"permissions": [
"path:default",
"event:default",
"window:default",
"app:default",
"resources:default",
"menu:default",
"tray:default",
"shell:allow-open",
{
"identifier": "http:default",
"allow": [
{
"url": "http://localhost:5195/*"
}
]
},
"app:allow-app-show",
"app:allow-app-hide",
"shell:default",
"http:default"
]
}

30
app/src-tauri/src/lib.rs Normal file
View file

@ -0,0 +1,30 @@
use tauri::Manager;
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! You've been greeted from Rust!", name)
}
#[derive(Clone, serde::Serialize)]
struct Payload {
args: Vec<String>,
cwd: String,
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_http::init())
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_single_instance::init(|app, argv, cwd| {
println!("{}, {argv:?}, {cwd}", app.package_info().name);
app
.emit("single-instance", Payload { args: argv, cwd })
.unwrap();
}))
.plugin(tauri_plugin_window_state::Builder::default().build())
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}

View file

@ -1,15 +1,5 @@
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! You've been greeted from Rust!", name)
}
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running tauri application");
app_lib::run();
}

View file

@ -1,53 +1,35 @@
{
"build": {
"beforeDevCommand": "pnpm dev",
"beforeBuildCommand": "pnpm build",
"devPath": "http://localhost:1420",
"distDir": "../dist"
},
"package": {
"productName": "panorama",
"version": "0.1.0"
},
"tauri": {
"allowlist": {
"all": false,
"app": {
"all": true,
"hide": true,
"show": true
},
"shell": {
"all": false,
"open": true
},
"http": {
"all": false,
"request": true,
"scope": ["http://localhost:5195/*"]
}
},
"windows": [
{
"title": "panorama",
"width": 800,
"height": 600
}
],
"security": {
"csp": null
},
"bundle": {
"active": true,
"targets": "all",
"identifier": "com.tauri.dev",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
}
}
"build": {
"beforeDevCommand": "pnpm dev",
"beforeBuildCommand": "pnpm build",
"frontendDist": "../dist",
"devUrl": "http://localhost:1420"
},
"bundle": {
"active": true,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
},
"productName": "panorama",
"version": "0.1.0",
"identifier": "io.mzhang.panorama",
"plugins": {},
"app": {
"security": {
"csp": null
},
"windows": [
{
"title": "panorama",
"width": 800,
"height": 600
}
]
}
}

View file

@ -5,14 +5,14 @@ import "@fontsource/inter";
import "@fontsource/inter/700.css";
import "./global.scss";
import "katex/dist/katex.min.css";
import { useEffect, useState } from "react";
import { useEffect } from "react";
import NodeDisplay from "./components/NodeDisplay";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import TimeAgo from "javascript-time-ago";
import en from "javascript-time-ago/locale/en";
import Sidebar from "./components/Sidebar";
import { atom, useAtom, useAtomValue } from "jotai";
import { OrderedMap, OrderedSet } from "immutable";
import { OrderedSet } from "immutable";
const queryClient = new QueryClient();

View file

@ -3,21 +3,21 @@ import JournalPage from "../components/nodes/JournalPage";
import Mail from "../components/nodes/Mail";
import { QueryFunctionContext } from "@tanstack/react-query";
export interface RenderProps {
export interface RenderProps<D> {
id: string;
data: any;
data: D;
}
export interface NodeDescriptor {
render: FC<RenderProps>;
export interface NodeDescriptor<D> {
render: FC<RenderProps<D>>;
data: {
type: string;
} & any;
} & D;
}
export async function getNode({
queryKey,
}: QueryFunctionContext): Promise<NodeDescriptor> {
}: QueryFunctionContext): Promise<NodeDescriptor<unknown>> {
const [, node_id] = queryKey;
switch (node_id) {
case "panorama/mail":

View file

@ -23,6 +23,19 @@ tower = "0.4.13"
tower-http = { version = "0.5.2", features = ["cors"] }
uuid = { version = "1.8.0", features = ["v7"] }
[dependencies.utoipa]
git = "https://github.com/juhaku/utoipa"
features = ["axum_extras", "time", "uuid", "chrono", "yaml"]
[dependencies.utoipa-scalar]
git = "https://github.com/juhaku/utoipa"
features = ["axum"]
[dependencies.utoipa-swagger-ui]
git = "https://github.com/juhaku/utoipa"
features = ["axum"]
[dependencies.async-imap]
version = "0.9.7"
default-features = false

View file

@ -155,10 +155,7 @@ async fn mail_loop_inner(db: &DbInstance) -> AppResult<()> {
.into_diagnostic()?;
println!(
"messages {:?}",
messages
.iter()
.map(|f| f.internal_date())
.collect::<Vec<_>>()
messages.iter().map(|f| f.body()).collect::<Vec<_>>()
);
let input_data = DataValue::List(

View file

@ -28,6 +28,9 @@ use serde_json::Value;
use tokio::net::TcpListener;
use tower::ServiceBuilder;
use tower_http::cors::{self, CorsLayer};
use utoipa::OpenApi;
use utoipa_scalar::{Scalar, Servable};
use utoipa_swagger_ui::SwaggerUi;
use crate::{
export::export,
@ -44,6 +47,13 @@ pub struct AppState {
#[tokio::main]
async fn main() -> Result<()> {
#[derive(OpenApi)]
#[openapi(
modifiers(),
nest((path = "/node", api = crate::node::NodeApi)),
)]
struct ApiDoc;
let data_dir = dirs::data_dir().unwrap();
let panorama_dir = data_dir.join("panorama");
let db_path = panorama_dir.join("db.sqlite");
@ -69,6 +79,11 @@ async fn main() -> Result<()> {
// build our application with a single route
let app = Router::new()
// .merge(
// SwaggerUi::new("/swagger-ui")
// .url("/api-docs/openapi.json", ApiDoc::openapi()),
// )
.merge(Scalar::with_url("/api/docs", ApiDoc::openapi()))
.route("/", get(|| async { "Hello, World!" }))
.route("/export", get(export))
.route("/node", put(create_node))

View file

@ -8,10 +8,34 @@ use axum::{
use cozo::{DataValue, DbInstance, MultiTransaction, ScriptMutability, Vector};
use itertools::Itertools;
use serde_json::Value;
use utoipa::{OpenApi, ToSchema};
use uuid::Uuid;
use crate::{error::AppResult, AppState};
#[derive(OpenApi)]
#[openapi(paths(get_node), components(schemas(GetNodeResult)))]
pub(super) struct NodeApi;
#[derive(Serialize, Deserialize, ToSchema, Clone)]
struct GetNodeResult {
node: String,
extra_data: Value,
content: String,
day: Option<String>,
created_at: f64,
updated_at: f64,
r#type: String,
title: String,
}
#[utoipa::path(
get,
path = "/{id}",
responses(
(status = 200, description = "Get all info about a single node", body = [GetNodeResult])
)
)]
pub async fn get_node(
State(state): State<AppState>,
Path(node_id): Path<String>,

View file

@ -13,22 +13,22 @@ importers:
version: 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled':
specifier: ^11.11.5
version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
'@floating-ui/react':
specifier: ^0.26.16
version: 0.26.16(react-dom@18.3.1)(react@18.3.1)
version: 0.26.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@fontsource/inter':
specifier: ^5.0.18
version: 5.0.18
'@mui/icons-material':
specifier: ^5.15.18
version: 5.15.18(@mui/material@5.15.18)(@types/react@18.3.3)(react@18.3.1)
version: 5.15.18(@mui/material@5.15.18(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
'@mui/material':
specifier: ^5.15.18
version: 5.15.18(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
version: 5.15.18(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@react-spring/web':
specifier: ^9.7.3
version: 9.7.3(react-dom@18.3.1)(react@18.3.1)
version: 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@remark-embedder/core':
specifier: ^3.0.3
version: 3.0.3
@ -38,12 +38,15 @@ importers:
'@tauri-apps/api':
specifier: ^1
version: 1.5.6
'@tauri-apps/plugin-window-state':
specifier: 2.0.0-beta.6
version: 2.0.0-beta.6
'@uidotdev/usehooks':
specifier: ^2.4.1
version: 2.4.1(react-dom@18.3.1)(react@18.3.1)
version: 2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@uiw/react-md-editor':
specifier: ^4.0.4
version: 4.0.4(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
version: 4.0.4(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
classnames:
specifier: ^2.5.1
version: 2.5.1
@ -88,7 +91,7 @@ importers:
version: 9.0.1(@types/react@18.3.3)(react@18.3.1)
react-time-ago:
specifier: ^7.3.3
version: 7.3.3(javascript-time-ago@2.5.10)(react-dom@18.3.1)(react@18.3.1)
version: 7.3.3(javascript-time-ago@2.5.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rehype-katex:
specifier: ^7.0.0
version: 7.0.0
@ -112,8 +115,8 @@ importers:
version: 6.0.1
devDependencies:
'@tauri-apps/cli':
specifier: ^1
version: 1.5.14
specifier: 2.0.0-beta.20
version: 2.0.0-beta.20
'@types/mdast':
specifier: ^4.0.4
version: 4.0.4
@ -125,10 +128,10 @@ importers:
version: 18.3.0
'@vitejs/plugin-react':
specifier: ^4.2.1
version: 4.3.0(vite@5.2.11)
version: 4.3.0(vite@5.2.11(sass@1.77.2))
rollup-plugin-visualizer:
specifier: ^5.12.0
version: 5.12.0
version: 5.12.0(rollup@4.18.0)
sass:
specifier: ^1.77.2
version: 1.77.2
@ -708,71 +711,78 @@ packages:
resolution: {integrity: sha512-LH5ToovAHnDVe5Qa9f/+jW28I6DeMhos8bNDtBOmmnaDpPmJmYLyHdeDblAWWWYc7KKRDg9/66vMuKyq0WIeFA==}
engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
'@tauri-apps/cli-darwin-arm64@1.5.14':
resolution: {integrity: sha512-lxoSOp3KKSqzHJa7iT32dukPGMlfsTuja1xXSgwR8o/fqzpYJY7FY/3ZxesP8HR66FcK+vtqa//HNqeOQ0mHkA==}
'@tauri-apps/api@2.0.0-beta.13':
resolution: {integrity: sha512-Np1opKANzRMF3lgJ9gDquBCB9SxlE2lRmNpVx1+L6RyzAmigkuh0ZulT5jMnDA3JLsuSDU135r/s4t/Pmx4atg==}
engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
'@tauri-apps/cli-darwin-arm64@2.0.0-beta.20':
resolution: {integrity: sha512-oCJOCib7GuYkwkBXx+ekamR8NZZU+2i3MLP+DHpDxK5gS2uhCE+CBkamJkNt6y1x6xdVnwyqZOm5RvN4SRtyIA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@tauri-apps/cli-darwin-x64@1.5.14':
resolution: {integrity: sha512-EXSwN1n5spfG8FoXuyc90ACtmDJXzaZ1gxyENaq9xEpQoo7j/Q1vb6qXxmr6azKr8zmqY4h08ZFbv3exh93xJg==}
'@tauri-apps/cli-darwin-x64@2.0.0-beta.20':
resolution: {integrity: sha512-lC5QSnRExedYN4Ds6ZlSvC2PxP8qfIYBJQ5ktf+PJI5gQALdNeVtd6YnTG1ODCEklfLq9WKkGwp7JdALTU5wDA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@tauri-apps/cli-linux-arm-gnueabihf@1.5.14':
resolution: {integrity: sha512-Yb8BH/KYR7Tl+de40sZPfrqbhcU3Jlu+UPIrnXt05sjn48xqIps74Xjz8zzVp0TuHxUp8FmIGtCVhQgsbrsvvg==}
'@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.20':
resolution: {integrity: sha512-nZCeBMHHye5DLOJV5k2w658hnCS+LYaOZ8y/G9l3ei+g0L/HBjlSy6r4simsAT5TG8+l3oCZzLBngfTMdDS/YA==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@tauri-apps/cli-linux-arm64-gnu@1.5.14':
resolution: {integrity: sha512-QrKHP4gRaHiup478rPBZ+BmNd88yze9jMmheoNy9mN1K/aECRmTHO+tWhsxv5moFHZzRhO0QDWxxvTtiaPXaGg==}
'@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.20':
resolution: {integrity: sha512-B79ISVLPVBgwnCchVqwTKU+vxnFYqxKomcR4rmsvxfs0NVtT5QuNzE1k4NUQnw3966yjwhYR3mnHsSJQSB4Eyw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tauri-apps/cli-linux-arm64-musl@1.5.14':
resolution: {integrity: sha512-Hb1C1VMxmUcyGjW/K/INKF87zzzgLEVRmWZZnQd7M1P4uue4xPyIwUELSdX12Z2jREPgmLW4AXPD0m6wsNu7iw==}
'@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.20':
resolution: {integrity: sha512-ojIkv/1uZHhcrgfIN8xgn4BBeo/Xg+bnV0wer6lD78zyxkUMWeEZ+u3mae1ejCJNhhaZOxNaUQ67MvDOiGyr5Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tauri-apps/cli-linux-x64-gnu@1.5.14':
resolution: {integrity: sha512-kD9v/UwPDuhIgq2TJj/s2/7rqk+vmExVV6xHPKI8vVbIvlNAOZqmx3fpxjej1241vhJ/piGd/m6q6YMWGsL0oQ==}
'@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.20':
resolution: {integrity: sha512-xBy1FNbHKlc7T6pOmFQQPECxJaI5A9QWX7Kb9N64cNVusoOGlvc3xHYkXMS4PTr7xXOT0yiE1Ww2OwDRJ3lYsg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tauri-apps/cli-linux-x64-musl@1.5.14':
resolution: {integrity: sha512-204Drgg9Zx0+THKndqASz4+iPCwqA3gQVF9C0CDIArNXrjPyJjVvW8VP5CHiZYaTNWxlz/ltyxluM6UFWbXNFw==}
'@tauri-apps/cli-linux-x64-musl@2.0.0-beta.20':
resolution: {integrity: sha512-+O6zq5jmtUxA1FUAAwF2ywPysy4NRo2Y6G+ESZDkY9XosRwdt5OUjqAsYktZA3AxDMZVei8r9buwTqUwi9ny/g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tauri-apps/cli-win32-arm64-msvc@1.5.14':
resolution: {integrity: sha512-sqPSni2MnWNCm+8YZnLdWCclxfSHaYqKuPFSz8q7Tn1G1m/cA9gyPoC1G0esHftY7bu/ZM5lB4kM3I4U0KlLiA==}
'@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.20':
resolution: {integrity: sha512-RswgMbWyOQcv53CHvIuiuhAh4kKDqaGyZfWD4VlxqX/XhkoF5gsNgr0MxzrY7pmoL+89oVI+fiGVJz4nOQE5vA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@tauri-apps/cli-win32-ia32-msvc@1.5.14':
resolution: {integrity: sha512-8xN8W0zTs8oFsQmvYLxHFeqhzVI7oTaPK1xQMc5gbpFP45jN41c21aCXfjnvzT+h90EfCHUF9EWj2HTEJSb7Iw==}
'@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.20':
resolution: {integrity: sha512-5lgWmDVXhX3SBGbiv5SduM1yajiRnUEJClWhSdRrEEJeXdsxpCsBEhxYnUnDCEzPKxLLn5fdBv3VrVctJ03csQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
'@tauri-apps/cli-win32-x64-msvc@1.5.14':
resolution: {integrity: sha512-U0slee5tNM2PYECBpPHavLSwkT3szGMZ+qhcikQQbDan84bQdLn/kHWjyXOgLJs4KSve4+KxcrN+AVqj0VyHnw==}
'@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.20':
resolution: {integrity: sha512-SuSiiVQTQPSzWlsxQp/NMzWbzDS9TdVDOw7CCfgiG5wnT2GsxzrcIAVN6i7ILsVFLxrjr0bIgPldSJcdcH84Yw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@tauri-apps/cli@1.5.14':
resolution: {integrity: sha512-JOSMKymlg116UdEXSj69eg5p1OtZnQkUE0qIGbtNDO1sk3X/KgBN6+oHBW0BzPStp/W0AjBgrMWCqjHPwEpOug==}
'@tauri-apps/cli@2.0.0-beta.20':
resolution: {integrity: sha512-707q9uIc2oNrYHd2dtMvxTrpZXVpart5EIktnRymNOpphkLlB6WUBjHD+ga45WqTU6cNGKbYvkKqTNfshNul9Q==}
engines: {node: '>= 10'}
hasBin: true
'@tauri-apps/plugin-window-state@2.0.0-beta.6':
resolution: {integrity: sha512-I8JgCWQs3FA9+EZTFcpeyLnGhrO7tMdwSD4ppiKl1IKBDryIeX88Dk84rTDTj7HsmkoC6FuRab5ZFTr9X/I97g==}
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@ -2039,9 +2049,10 @@ snapshots:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
'@emotion/utils': 1.2.1
'@emotion/weak-memoize': 0.3.1
'@types/react': 18.3.3
hoist-non-react-statics: 3.3.2
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.3
'@emotion/serialize@1.1.4':
dependencies:
@ -2053,7 +2064,7 @@ snapshots:
'@emotion/sheet@1.2.2': {}
'@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)':
'@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@emotion/babel-plugin': 11.11.0
@ -2062,8 +2073,9 @@ snapshots:
'@emotion/serialize': 1.1.4
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
'@emotion/utils': 1.2.1
'@types/react': 18.3.3
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.3
'@emotion/unitless@0.8.1': {}
@ -2153,15 +2165,15 @@ snapshots:
'@floating-ui/core': 1.6.2
'@floating-ui/utils': 0.2.2
'@floating-ui/react-dom@2.1.0(react-dom@18.3.1)(react@18.3.1)':
'@floating-ui/react-dom@2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/dom': 1.6.5
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@floating-ui/react@0.26.16(react-dom@18.3.1)(react@18.3.1)':
'@floating-ui/react@0.26.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1)
'@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@floating-ui/utils': 0.2.2
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@ -2188,39 +2200,38 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@mui/base@5.0.0-beta.40(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)':
'@mui/base@5.0.0-beta.40(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1)
'@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.14(@types/react@18.3.3)
'@mui/utils': 5.15.14(@types/react@18.3.3)(react@18.3.1)
'@popperjs/core': 2.11.8
'@types/react': 18.3.3
clsx: 2.1.1
prop-types: 15.8.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
'@types/react': 18.3.3
'@mui/core-downloads-tracker@5.15.18': {}
'@mui/icons-material@5.15.18(@mui/material@5.15.18)(@types/react@18.3.3)(react@18.3.1)':
'@mui/icons-material@5.15.18(@mui/material@5.15.18(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@mui/material': 5.15.18(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
'@types/react': 18.3.3
'@mui/material': 5.15.18(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.3
'@mui/material@5.15.18(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)':
'@mui/material@5.15.18(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
'@mui/base': 5.0.0-beta.40(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
'@mui/base': 5.0.0-beta.40(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@mui/core-downloads-tracker': 5.15.18
'@mui/system': 5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(react@18.3.1)
'@mui/system': 5.15.15(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
'@mui/types': 7.2.14(@types/react@18.3.3)
'@mui/utils': 5.15.14(@types/react@18.3.3)(react@18.3.1)
'@types/react': 18.3.3
'@types/react-transition-group': 4.4.10
clsx: 2.1.1
csstype: 3.1.3
@ -2228,53 +2239,61 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-is: 18.3.1
react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1)
react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
optionalDependencies:
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
'@types/react': 18.3.3
'@mui/private-theming@5.15.14(@types/react@18.3.3)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@mui/utils': 5.15.14(@types/react@18.3.3)(react@18.3.1)
'@types/react': 18.3.3
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.3
'@mui/styled-engine@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)':
'@mui/styled-engine@5.15.14(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@emotion/cache': 11.11.0
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
csstype: 3.1.3
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
'@mui/system@5.15.15(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.3.3)(react@18.3.1)':
'@mui/system@5.15.15(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.3.3)(react@18.3.1)
'@mui/private-theming': 5.15.14(@types/react@18.3.3)(react@18.3.1)
'@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.3.1)
'@mui/styled-engine': 5.15.14(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)
'@mui/types': 7.2.14(@types/react@18.3.3)
'@mui/utils': 5.15.14(@types/react@18.3.3)(react@18.3.1)
'@types/react': 18.3.3
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
react: 18.3.1
optionalDependencies:
'@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1)
'@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)
'@types/react': 18.3.3
'@mui/types@7.2.14(@types/react@18.3.3)':
dependencies:
optionalDependencies:
'@types/react': 18.3.3
'@mui/utils@5.15.14(@types/react@18.3.3)(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@types/prop-types': 15.7.12
'@types/react': 18.3.3
prop-types: 15.8.1
react: 18.3.1
react-is: 18.3.1
optionalDependencies:
'@types/react': 18.3.3
'@popperjs/core@2.11.8': {}
@ -2298,7 +2317,7 @@ snapshots:
'@react-spring/types@9.7.3': {}
'@react-spring/web@9.7.3(react-dom@18.3.1)(react@18.3.1)':
'@react-spring/web@9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@react-spring/animated': 9.7.3(react@18.3.1)
'@react-spring/core': 9.7.3(react@18.3.1)
@ -2374,48 +2393,54 @@ snapshots:
'@tauri-apps/api@1.5.6': {}
'@tauri-apps/cli-darwin-arm64@1.5.14':
'@tauri-apps/api@2.0.0-beta.13': {}
'@tauri-apps/cli-darwin-arm64@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-darwin-x64@1.5.14':
'@tauri-apps/cli-darwin-x64@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-linux-arm-gnueabihf@1.5.14':
'@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-linux-arm64-gnu@1.5.14':
'@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-linux-arm64-musl@1.5.14':
'@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-linux-x64-gnu@1.5.14':
'@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-linux-x64-musl@1.5.14':
'@tauri-apps/cli-linux-x64-musl@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-win32-arm64-msvc@1.5.14':
'@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-win32-ia32-msvc@1.5.14':
'@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.20':
optional: true
'@tauri-apps/cli-win32-x64-msvc@1.5.14':
'@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.20':
optional: true
'@tauri-apps/cli@1.5.14':
'@tauri-apps/cli@2.0.0-beta.20':
optionalDependencies:
'@tauri-apps/cli-darwin-arm64': 1.5.14
'@tauri-apps/cli-darwin-x64': 1.5.14
'@tauri-apps/cli-linux-arm-gnueabihf': 1.5.14
'@tauri-apps/cli-linux-arm64-gnu': 1.5.14
'@tauri-apps/cli-linux-arm64-musl': 1.5.14
'@tauri-apps/cli-linux-x64-gnu': 1.5.14
'@tauri-apps/cli-linux-x64-musl': 1.5.14
'@tauri-apps/cli-win32-arm64-msvc': 1.5.14
'@tauri-apps/cli-win32-ia32-msvc': 1.5.14
'@tauri-apps/cli-win32-x64-msvc': 1.5.14
'@tauri-apps/cli-darwin-arm64': 2.0.0-beta.20
'@tauri-apps/cli-darwin-x64': 2.0.0-beta.20
'@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.20
'@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.20
'@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.20
'@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.20
'@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.20
'@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.20
'@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.20
'@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.20
'@tauri-apps/plugin-window-state@2.0.0-beta.6':
dependencies:
'@tauri-apps/api': 2.0.0-beta.13
'@types/babel__core@7.20.5':
dependencies:
@ -2492,14 +2517,14 @@ snapshots:
'@types/unist@3.0.2': {}
'@uidotdev/usehooks@2.4.1(react-dom@18.3.1)(react@18.3.1)':
'@uidotdev/usehooks@2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@uiw/copy-to-clipboard@1.0.17': {}
'@uiw/react-markdown-preview@5.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)':
'@uiw/react-markdown-preview@5.1.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@uiw/copy-to-clipboard': 1.0.17
@ -2520,10 +2545,10 @@ snapshots:
- '@types/react'
- supports-color
'@uiw/react-md-editor@4.0.4(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)':
'@uiw/react-md-editor@4.0.4(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.24.6
'@uiw/react-markdown-preview': 5.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
'@uiw/react-markdown-preview': 5.1.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
rehype: 13.0.1
@ -2534,7 +2559,7 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-react@4.3.0(vite@5.2.11)':
'@vitejs/plugin-react@4.3.0(vite@5.2.11(sass@1.77.2))':
dependencies:
'@babel/core': 7.24.6
'@babel/plugin-transform-react-jsx-self': 7.24.6(@babel/core@7.24.6)
@ -3034,7 +3059,7 @@ snapshots:
relative-time-format: 1.1.6
jotai@2.8.1(@types/react@18.3.3)(react@18.3.1):
dependencies:
optionalDependencies:
'@types/react': 18.3.3
react: 18.3.1
@ -3545,7 +3570,7 @@ snapshots:
react-refresh@0.14.2: {}
react-time-ago@7.3.3(javascript-time-ago@2.5.10)(react-dom@18.3.1)(react@18.3.1):
react-time-ago@7.3.3(javascript-time-ago@2.5.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
javascript-time-ago: 2.5.10
memoize-one: 6.0.0
@ -3554,7 +3579,7 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-transition-group@4.4.5(react-dom@18.3.1)(react@18.3.1):
react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@babel/runtime': 7.24.6
dom-helpers: 5.2.1
@ -3734,12 +3759,14 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
rollup-plugin-visualizer@5.12.0:
rollup-plugin-visualizer@5.12.0(rollup@4.18.0):
dependencies:
open: 8.4.2
picomatch: 2.3.1
source-map: 0.7.4
yargs: 17.7.2
optionalDependencies:
rollup: 4.18.0
rollup@4.18.0:
dependencies:
@ -3912,9 +3939,9 @@ snapshots:
esbuild: 0.20.2
postcss: 8.4.38
rollup: 4.18.0
sass: 1.77.2
optionalDependencies:
fsevents: 2.3.3
sass: 1.77.2
web-namespaces@2.0.1: {}