[package]
name = "egui_web"
version = "0.16.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Bindings for compiling egui code to WASM for a web page"
license = "MIT OR Apache-2.0"
edition = "2021"
rust-version = "1.56"
homepage = "https://github.com/emilk/egui/tree/master/egui_web"
readme = "README.md"
repository = "https://github.com/emilk/egui/tree/master/egui_web"
categories = ["gui", "web-programming"]
keywords = ["wasm", "web", "egui", "gui", "gamedev"]
include = [
  "../LICENSE-APACHE",
  "../LICENSE-MIT",
  "**/*.rs",
  "Cargo.toml",
  "src/shader/*.glsl",
]

[package.metadata.docs.rs]
all-features = true

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
egui = { version = "0.16.0", path = "../egui", default-features = false, features = [
  "convert_bytemuck",
  "single_threaded",
] }
egui_glow = { version = "0.16.0",path = "../egui_glow", default-features = false, optional = true }
epi = { version = "0.16.0", path = "../epi" }

bytemuck = "1.7"
js-sys = "0.3"
ron = { version = "0.7", optional = true }
serde = { version = "1", optional = true }
tts = { version = "0.19", optional = true } # feature screen_reader
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"

[features]
default = ["default_fonts", "glow"]

# If set, egui will use `include_bytes!` to bundle some fonts.
# If you plan on specifying your own fonts you may disable this feature.
default_fonts = ["egui/default_fonts"]

# Use glow as the renderer.
glow = ["egui_glow", "egui_glow/epi"]

# Alternative to the glow renderer.
webgl = []

persistence = ["egui/persistence", "ron", "serde"]
screen_reader = ["tts"] # experimental

[dependencies.web-sys]
version = "0.3.52"
features = [
  "BinaryType",
  "Blob",
  "Clipboard",
  "ClipboardEvent",
  "CompositionEvent",
  "console",
  "CssStyleDeclaration",
  "DataTransfer",
  "DataTransferItem",
  "DataTransferItemList",
  "Document",
  "DomRect",
  "DragEvent",
  "Element",
  "Event",
  "EventListener",
  "EventTarget",
  "ExtSRgb",
  "File",
  "FileList",
  "FocusEvent",
  "HtmlCanvasElement",
  "HtmlElement",
  "HtmlInputElement",
  "InputEvent",
  "KeyboardEvent",
  "Location",
  "MediaQueryList",
  "MouseEvent",
  "Navigator",
  "Performance",
  "Storage",
  "Touch",
  "TouchEvent",
  "TouchList",
  "WebGl2RenderingContext",
  "WebGlBuffer",
  "WebglDebugRendererInfo",
  "WebGlFramebuffer",
  "WebGlProgram",
  "WebGlRenderingContext",
  "WebGlShader",
  "WebGlTexture",
  "WebGlUniformLocation",
  "WebGlVertexArrayObject",
  "WheelEvent",
  "Window",
]
