* feat: add e2e tests for API
* fix pnpm
* ci
* test on push for now
* workflow_dispatch
* fix lint
* fix CI build on mac
* fix audit
* fix tests
* fix windows CI
* fix tests
* install driver fix
* fix windows test
* test ci
* test
* test
* fix ci
* actually fix windows ci test
* test
* pin
* fix tests
* remove api env override
* bump actions, fix workaround
* code review
* bump deps
* fix: support iOS 27 development using Xcode 27
* pin swift-rs to 1.0.8
* fix doc
* fix doc
* do not UIApplicationSupportsMultipleScenes by default
* update tao
* update example
* update schemas
* fix windows build
* chore: make tauri deps into workspace deps
* add change file
* fmt
* enable default features for example and bench
* enable default features for example and bench for tauri-build
* Revert "enable default features for example and bench for tauri-build"
This reverts commit 5c15412d61cdc07e834b2378d6bb7f09afd9b5cf.
* re-order deps
* use workspace dependencies everywhere
* set `default-features` to false for `tauri-build`
* fix api example
* use exact versions like before
* tauri doesn't need to depend on itself
* use path `.` for tauri
* fix change files
* no need to tell the users for the workspace change
* bring back default features false to tauri dev dep
* fix missing features for sample plugin
---------
Co-authored-by: Tony <legendmastertony@gmail.com>
* Android: Gradle upgrades
* typos
* bump agp to latest
* Remove all jvmTarget
* clean up unused
* migrate to getByName
* remove `id("org.jetbrains.kotlin.android")` from plugin template
* Try disable `builtInKotlin`
* revert all gradle 9 migrations
* back to JVM_1_8
* remove `org.gradle.toolchains.foojay-resolver-convention` as I still don't understand what it does
* `android.useAndroidx` is true by default
* fix white spaces before first packaging
* Only `consumerProguardFiles` is used for Android libaries
* pickup the right proguard rules
* install cli instead of moving the built one
* bump spin and install locked
* try latest java and ndk
* try to work around missing `consumer-rules.pro`
* Add change files
* more specific about both gradle and plugin versions
* remove unused linux deps installation step
* Revert "try to work around missing `consumer-rules.pro`"
This reverts commit f1afdd953bab174fbf2e205bb1af90c0254f9153.
* Disable `android.proguard.failOnMissingFiles` instead
* update change file that we don't do the work around in tauri-build anymore
* update gradle wrapper and scripts
* use file helper
reference: https://issuetracker.google.com/issues/463283604#comment10
---------
Co-authored-by: Megh Parikh <meghprkh@gmail.com>
* clean up and docs
* Remove menu channel on drop
* Why was the mut gone
* Clone the channel out
* Keep `unreachable_code`
* Put it back to a block
* Move the cloned channel out so no nuances
* Add change file
* Migrate to svelte ts for API example
* Clean up
* Use `$derived` `selectedWebview`
* Do the change in onchange instead of state effects
* Set initial x y and sizes
* revert ai slop on main.ts
* More cleanup
* Remove ConsoleMessage
* Remove View type
* license header
* Use `ViewProps`
* Use same button spacing through out
* Move theme example to top level theme switch
* Fix menu views
* More cleanups
* Merge branch 'dev' into api-example-svelte-ts
* Final cleanup
* Move types to svelte files
* fallback to empty string not false
* Initial work
* Bump deps
* Make dragging with states work
* Fix sorting
* Move everything to `MenuBuilder.svelte`
* Add remove button
* Fix Menu and Tray
* Make menu items reactive
* Sync checked states
* Add placeholder to menu builder
* Set user-select to none
* Fix text in the console
* Rework tray page layout
* Close all menus on MenuBuilder unmounted
* Clean up menus properly
* Add initial text and icon on the menu builders
* Move MenuItems to MenuBuilder
* format
* Merge branch 'dev' into api-example-svelte-ts
* Merge branch 'api-example-svelte-ts' into menu-example-rework
* Re-create all the elements as a work around
* Reorder the menu items on builder changes
* On one tray for the tray page
* Update menus on add and remove
* Same for the tray
* Space and align checkboxes
* Merge remote-tracking branch 'upstream/dev' into menu-example-rework
* Clean up menus properly
* Merge branch 'dev' into menu-example-rework
* Remove duplicated webview in new command
* Merge branch 'dev' into menu-example-rework
Kotlin Gradle Plugin deprecated the string-based `kotlinOptions` DSL and
2.3+ rejects it with a hard error. Use the `compilerOptions` DSL with
`JvmTarget.JVM_1_8` instead, which is accepted on both 1.9.x and 2.x, so
projects can move to Kotlin 2.x without editing the vendored
`:tauri-android` scripts.
* chore: run clippy on all platforms
* Only install dependencies for linux
* Use cross on Android
* mac clippy
* mobile clippy
* run on `macos-latest`
* duplicated cargo
* mac clippy suggestion take 2
* ios clippy
* Exclude tauri-cli and tauri-bundler on mobile
* Exclude `tauri-cli-node`
* just test api example on mobile
* Fix audit
* Android clippy
* Run the event handler in test
* remove needless pinning
* less unsafe
* reduce use of potentially dangerous fn inner() and replace with fn deref() where possible
* refactor(tauri): remove unnecessary trait bounds
* Add change file
* fix: mock runtime run on main thread dead locks
* Try testing API example
* Revert "Try testing API example"
This reverts commit 1d04b9f50fbdc66b3866f56c03a8fb67fcb12c80.
* Revert API example changes
* Run unit tests in examples
* Revert `not(test)`
* Split out the example tests
* Condition got reversed
* Only android uses cross
* Test api example
* Install cross through `taiki-e/install-action@v2`
* Install through cargo binstall instead
* Revert "Install through cargo binstall instead"
This reverts commit 2aec3905b4437c5e6c1f5b24b08db98fb63ef5cc.
* Revert "Install cross through `taiki-e/install-action@v2`"
This reverts commit b88035ac9a21c76c84cbd71a794ba8613fb79a57.
* Add change file
* feat: bump MSRV to 1.83
previous MSRV change was introduced by #11205
to follow the ecosystem and keep our dependencies up to date we must update our MSRV
currently our agreed standard is to keep MSRV to "latest - 3", which currently is 1.83
* bump to 1.90
---------
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
* feat(bundler): support Liquid Glass icons, closes#14207
the `icon` config now supports loading an Assets.car directly or a `.icon` (Icon Composer asset) that gets compiled into an Assets.car file
* fmt
* fix build
* add version checks
* fmt
* fix icns fallback
* fmt
* fix: a few regressions from previous PRs
* rename with_window_features to window_features
* Clippy
* clippy
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* Adds the ability to set the focused property from tauri.conf.json -- windows
* add set_focusable, pin tao
* fmt
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* add "new window" and "document title changed" webview handler
* take document title changed handler
* update example, add missing api, change files
* allow creating tauri window for the window.open call
* set size and position, fix linux, example
* enhance document title change
* fix windows deadlock
* wry 0.53
* update wry
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* feat(menu): add icon and nativeIcon support for Submenu in tauri and @tauri-apps/api
* Merge branch 'dev' into dev
* Update muda
* feat(menu): add set_icon and set_native_icon methods to set submenu icons
* feat(menu): unify icon handling by introducing MenuIcon type
* chore: sync bundle.global.js
* Make setIcon actually work
* Regenerate `bundle.global.js`
---------
Co-authored-by: Tony <legendmastertony@gmail.com>
* enhance: include permissions in default permission description
* Only include in schema
* Remove 'which includes` to tauri's build script
* Also bump utils
* Clippy
My local clippy didn't report this, weird
* Use `which enables all commands`
for default permissions that enables everything
* Extract description into a variable
* Generate permissions with or without description
* Tweak the docs and generate 'which includes'
* Simplify to just `includes`
* Docs change change file
* Put the change in minor
* Update .changes/include-permissions-in-schema.md
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* Remove unused change file
---------
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
* Remove description from runtime
* Just use none instead
* global_scope_schema and add comments about it
* Tweak wording
* remove comments [skip ci]
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
* Add a new option to remove unused commands
* Fix compile
* Add markers to all core plugins
* Clippy
* Add allow unused when running with this
* Use build script to generate allowed-commands.json
* Clean up and add proper reruns
* Wrong path
* Revert to #[cfg_attr(not(debug_assertions), allow(unused))]
* Add change files
* Some more docs
* Add version requirement note
* Avoid rerun if no capabilities folder
* Remove unused box
* small cleanup
* fix channel
* implement for app handler too
* rely on core:default for channel perms
* Move this feature to config
* Docs change
* Forget one last remove_unused_commands
* Remove removeUnusedCommands from helloworld
* tell handler that the app ACL manifest exists
* update change file
* update doc
* update change file
* Use a struct to pass the data instead of env var
* Clippy
* Fix can't exclude inlined plugins on Windows
due to UNC paths...
* Apply suggestion from code review
* Remove remove on empty to tauri-build
* Revert "Remove remove on empty to tauri-build"
This reverts commit b727dd621eeb13b408e7402600fb1156d462f597.
* Centralize remove_file(allowed_commands_file_path)
* Escape glob pattern
* update change file
* remove unused commands for dev too
* Update crates/tauri-utils/src/config.rs
Co-authored-by: Fabian-Lars <github@fabianlars.de>
* regen schema
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
* feat(core): add WebviewWindow::resolve_command_scope
This new functionality exposes the `CommandScope` resolution as a function (currently only commands can resolve them as a dependency injection via CommandItem)
This function is useful to validate the configuration at runtime (do some asserts at setup phase to ensure capabilities are properly configured) and to resolve scopes in a separate thread or context
* adjust return type