add file browser component and widget
This commit is contained in:
80
Cargo.toml
80
Cargo.toml
@@ -1,52 +1,78 @@
|
||||
[workspace]
|
||||
members = [
|
||||
"components",
|
||||
"widgets/file_browser_widget",
|
||||
]
|
||||
resolver = "2"
|
||||
|
||||
[package]
|
||||
name = "framework"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
[[bin]]
|
||||
name = "framework"
|
||||
path = "src/lib.rs"
|
||||
path = "cmd/main.rs"
|
||||
|
||||
[dependencies]
|
||||
# WebSocket client dependency with conditional crypto features
|
||||
circle_client_ws = { path = "../circles/src/client_ws", default-features = false, features = [] }
|
||||
|
||||
# Core dependencies
|
||||
[workspace.dependencies]
|
||||
# Shared dependencies across workspace
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
log = "0.4"
|
||||
thiserror = "1.0"
|
||||
uuid = { version = "1.0", features = ["v4"] }
|
||||
|
||||
# Async dependencies
|
||||
uuid = { version = "1.0", features = ["v4", "js"] }
|
||||
futures-util = "0.3"
|
||||
futures-channel = "0.3"
|
||||
|
||||
# WASM-specific dependencies
|
||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||
wasm-bindgen = "0.2"
|
||||
wasm-bindgen-futures = "0.4"
|
||||
yew = { version = "0.21", features = ["csr"] }
|
||||
gloo = "0.11"
|
||||
gloo-timers = { version = "0.3", features = ["futures"] }
|
||||
web-sys = { version = "0.3", features = ["Storage", "Window", "FormData", "HtmlFormElement", "HtmlInputElement", "HtmlSelectElement"] }
|
||||
web-sys = { version = "0.3", features = [
|
||||
"Storage", "Window", "FormData", "HtmlFormElement", "HtmlInputElement", "HtmlSelectElement",
|
||||
"Request", "RequestInit", "RequestMode", "Response", "Headers", "Blob", "Url",
|
||||
"HtmlAnchorElement", "Document", "Element", "CssStyleDeclaration", "Location",
|
||||
"UrlSearchParams", "HtmlTextAreaElement", "HtmlButtonElement", "HtmlDivElement",
|
||||
"Event", "EventTarget", "MouseEvent", "KeyboardEvent", "InputEvent",
|
||||
"File", "FileList", "AbortController", "AbortSignal", "console", "History",
|
||||
"HtmlImageElement", "HtmlCanvasElement", "Navigator", "Notification",
|
||||
"WebSocket", "MessageEvent", "CloseEvent", "ErrorEvent",
|
||||
"DomException", "Performance", "HtmlMetaElement", "HtmlLinkElement",
|
||||
"Node", "NodeList", "HtmlCollection", "DomTokenList",
|
||||
"CustomEvent", "FocusEvent", "WheelEvent", "TouchEvent", "Touch", "TouchList",
|
||||
"DragEvent", "DataTransfer", "ClipboardEvent",
|
||||
"HtmlIFrameElement", "MessagePort"
|
||||
] }
|
||||
js-sys = "0.3"
|
||||
hex = "0.4"
|
||||
k256 = { version = "0.13", features = ["ecdsa", "sha256"] }
|
||||
getrandom = { version = "0.2", features = ["js"] }
|
||||
wasm-bindgen-test = "0.3"
|
||||
|
||||
# Native-specific dependencies
|
||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||
tokio = { version = "1.0", features = ["rt", "macros", "time"] }
|
||||
# HTTP client
|
||||
reqwest = { version = "0.11", features = ["json"] }
|
||||
|
||||
[dev-dependencies]
|
||||
tokio-test = "0.4"
|
||||
# Tokio for async runtime
|
||||
tokio = { version = "1.0", features = ["full"] }
|
||||
|
||||
# Axum for web server
|
||||
axum = "0.7"
|
||||
tower = "0.4"
|
||||
tower-http = { version = "0.5", features = ["fs", "cors"] }
|
||||
|
||||
# Internal workspace dependencies
|
||||
components = { path = "components" }
|
||||
|
||||
[dependencies]
|
||||
# Use workspace dependencies for the binary
|
||||
components = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
axum = { workspace = true }
|
||||
tower = { workspace = true }
|
||||
tower-http = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
log = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
env_logger = "0.11"
|
||||
|
||||
# Features
|
||||
[features]
|
||||
default = []
|
||||
crypto = ["circle_client_ws/crypto"]
|
||||
wasm-compatible = [] # For WASM builds without crypto to avoid wasm-opt issues
|
||||
|
||||
[workspace]
|
||||
members = ["examples/website"]
|
||||
|
Reference in New Issue
Block a user