139 Commits
Author SHA1 Message Date
Fabian-LarsandLucas Nogueira 4a50656537 feat: add liquid glass window effects (#14454)
* feat: add liquid glass effects

* update objc2

* Enhance Liquid Glass effects and update objc2

Added new Liquid Glass window effects and updated dependencies.

* revert cargo toml changes

* wrong version number in ts comment

* gremlin

* put behind feature flag (untested)

* Revert "put behind feature flag (untested)"

This reverts commit e6a4eee23b5d2d717ea602ca93fc4eafecd7af1e.

* cr, docs

* update example

* non_exhaustive

* interactive

* NSEnumerator

* window-vibrancy 0.8

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-09-22 15:29:59 -03:00
Tony 2dcf227d37 chore: format with edition 2024 style (#16045) 2026-09-18 00:42:56 +08:00
Lucas Fernandes Nogueira 0a28d9b764 feat: add e2e tests for API (#15760)
* 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
2026-09-16 13:36:41 -03:00
Tony 1417768f99 fix: menu channels are never cleaned up (#15679)
* 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
2026-07-16 20:21:20 +08:00
Tony 42ae2d8453 feat(example): rework menu examples (#15684)
* 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
2026-07-15 18:23:47 +08:00
Tony f92954ba90 docs: menu_on_left_click no longer works since v2.2 (#15674) 2026-07-08 17:01:48 +08:00
Tony 61a1af1ee9 chore: run clippy on all platforms (#15668)
* 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
2026-07-07 22:06:58 +08:00
Tony e517fa18ee fix: mock runtime run on main thread dead locks (#15450)
* 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
2026-07-02 18:19:23 +08:00
Tony f092d10549 chore: remove unused http server in api example (#15466) 2026-06-04 11:14:25 +08:00
Lucas Nogueira df3fb97cba chore: fix clippy warnings 2026-04-16 15:57:24 -03:00
Lucas Fernandes Nogueira cc5c976027 feat(mobile): add file association support (#14486) 2026-04-13 19:41:27 +02:00
Lucas Fernandes NogueiraandFabianLars 093e2b47c0 feat(mobile): multi-window support (#14484)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2026-03-23 17:32:02 +01:00
TonyandLucas Nogueira 737364b8d3 fix: a few regressions from previous PRs (#14020)
* fix: a few regressions from previous PRs

* rename with_window_features to window_features

* Clippy

* clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-17 12:03:31 -03:00
THELOSTSOULandLucas Nogueira 33d0b3f0c1 feat: add WebviewBuilder::on_new_window and WebviewBuilder::on_document_title_changed (#13876)
* 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>
2025-08-16 14:49:01 -03:00
Tony 0ea08e901e fix(example): unminimize window on tray icon click (#13949) 2025-08-05 10:07:16 +08:00
Fabian-Lars 6b2b9d6cbf chore: clippy 1.88 (#13720) 2025-06-27 15:33:36 +02:00
sftseandLucas Nogueira 8a1d490820 Clippy (#12485)
* fix: remove unused clones, discovered with clippy nursery lint clippy::redundant_clone

* fix: clippy

* fix: remove no longer used clippy allow directives

* more lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-13 08:21:34 -03:00
013f8f6523 feat: add a new option to remove unused commands (#12890)
* 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>
2025-03-15 13:46:08 -03:00
Tony a16796a555 fix(api): use array for channel queueing (#12069) 2025-01-02 12:19:50 +01:00
Amr Bashir fc30b20bea feat(api/tray): add TrayIcon.setShowMenuOnLeftClick method (#11726) 2024-11-21 14:50:41 +02:00
Amr BashirandLucas Nogueira 4d545ab3ca feat: background color APIs (#11486)
* feat: background color APIs

closes #10519
closes #1564

* clippy

* git branch

* bundle

* fix hex color schema pattern

* add missing `^`

* fix iOS

* revert test

* revert apple-codesign bump

* fmt

* add change files

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-06 13:21:47 -03:00
f37e97d410 feat: add use_https_scheme for Windows and Android (#11477)
* feat: add `use_https_scheme` for Windows and Android

closes #11252

* fix compilation

* Apply suggestions from code review

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* change wording

* add migrations

* migrate `dangerousUseHttpScheme`

* fmt

* infer AssetResolver::get https scheme config

* fix tests

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-05 09:48:59 -03:00
Lucas Fernandes Nogueira 3ad2427dc0 feat(cli): enhance iOS logs (#10961)
enhance simulator and device run output by only displaying app logs by default, and printing full process logs when pedantic verbosity is requested

ref https://github.com/tauri-apps/cargo-mobile2/pull/388
2024-09-15 07:37:56 -03:00
Amr Bashir ad83d41cb5 chore: cleanup and simplify examples (#10743) 2024-08-27 01:25:36 +03:00
Amr BashirandLucas Nogueira 4c239729c3 fix(core): fix raw invoke body for isolation pattern (#10167)
* fix(core): fix raw invoke body for isolation pattern

The `isolation` pattern requests are made using JSON but the payload could be raw bytes, so we send the original `Content-Type`  from frontend and make sure to deserialize the payload using that one instead of `Content-Type` from request headers

* clippy

* disable plist embed in generate_context in tests

* change file

* docs [skip ci]

* move unused_variables [skip ci]

* last commit regression [skip ci]

* fix test

* add example, do not text encode raw request

* check type instead of contenttype

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-07-12 09:52:53 -03:00
Amr Bashir ba9590aa92 feat!: add Listener and Emitter traits (#9640)
* feat!: add `Listener` and `Emitter` traits

* keep only trait implementation

* change file

* fix doctests

* fix build
2024-07-12 09:01:40 -03:00
Tony 5878fb45ce chore: Update api example (#10144) 2024-06-28 11:21:54 +02:00
c4410daa85 feat(tray): add enter, move and leave events (#9777)
* feat(tray): add `enter`, `move` and `leave` events

closes #8584

* update api example

* check button state [skip ci]

* fix enum [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-05-24 14:56:32 -03:00
Lucas Fernandes NogueiraandAmr Bashir ed48e2b3c7 feat(core): expose the image module (#9122)
* feat(core): expose the image module

* code review

* fix import

* fix

* fix codegen

* jsimage owned

* fmt

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-03-07 19:23:21 -03:00
Amr Bashir 4b75834a41 chore: update license headers 2024 (#9043) 2024-03-01 08:29:01 -03:00
Amr BashirandLucas Nogueira d1e77acd8d refactor!(core): remove Icon enum and add Image type (#9011)
* refactor!(core): remove `Icon` enum and add `Image` type

* clippy

* revert api example config change

* Update image.rs

* fix build

* clippy

* change files

* add back removed methods as setter functions

* simplify error message

* Update .changes/runtime-icon-lifetime.md

* Update .changes/ico-featrue-flags.md

* Update core/tauri/src/image.rs

* update api lockfile

* update api ref

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-29 09:05:11 -03:00
Lucas Fernandes Nogueira 3657ad82f8 feat(core): allow defining permissions for the app commands (#9008)
* feat(core): allow defining permissions for the app commands

* global scope

* command scope

* write to disk

* lint

* fix path

* get autogenerated commands from generate_handler macro

* revert

* remove cli

* use const instead of empty str
2024-02-28 08:45:28 -03:00
Lucas Fernandes Nogueira edb11c138d feat(build): support plugins that are defined in app crate (#8781)
* feat(build): support plugins that are defined in app crate

* dx
2024-02-16 08:24:40 -03:00
Lucas Fernandes NogueiraandAmr Bashir af61023273 refactor(core)!: Window::close triggers RunEvent::CloseRequested (#8710)
* refactor(core): Window::close triggers RunEvent::CloseRequested

* Update .changes/runtime-wry-window-close-event.md

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>

* add destroy [skip ci]

* change files

* delete files

* fix tests

* fix tests

* fix test impl of the close flow

* fmt

* build bundle

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-01-31 14:54:49 -03:00
e1eb911f5e fix(menu): ensure init & drop is done on main thread (#8582)
* fix(menu): ensure init & drop is done on main thread

* move macros back

* fix doctests

* fix macos doctests

* generate inner types and add drop implementation on inner

* clippy

* fix leftoever merge conflicts

* fix doctests

* update api example

* add missing change file

* move macro

* fix tray import

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-31 12:01:05 -03:00
Lucas Fernandes Nogueira 00e1567584 refactor(core): exit() and restart() triggers ExitRequested and Exit (#8708)
* refactor(core): exit() and restart() triggers ExitRequested and Exit

* update docs

* update doc
2024-01-30 12:10:22 -03:00
Lucas Fernandes Nogueira 049ca2d54f fix(examples): deadlock on api example unit test (#8671) 2024-01-24 21:52:28 -03:00
Lucas Fernandes Nogueira c77b40324e refactor(core): add support to multiple webviews on a Tauri window (#8280)
* feat: update to latest wry

* wry dev branch [skip ci]

* fix linux [skip ci]

* refactor(runtime): split webview and window types

* split dispatch

* implement create_webview

* move webview message

* wip webview mod

* create webview manager, finish webview struct and builder

* fix tests and docs

* rename WindowUrl to WebviewUrl

* update examples

* event refactor

* update JS API

* fix events

* update example

* add WebviewWindow class on JS

* fix macos build

* allow creating window+webview on the same runtime call

* rename tauri://window-created to tauri://webview-created

* Window::add_child

* use inner_size from webview on macOS

* add multiwebview example

* automatically resize webviews on window resize

* fix tests

* set_position, set_size

* position, size getters

* set_focus

* add close fn

* update mock runtime

* lint [skip ci]

* fix inner_size getter [skip ci]

* import hwnd [skip ci]

* update webview bound ratios on set_size/set_position

* add auto_resize option

* fix android

* fix build on windows

* typo

* with_webview isnt desktop only

* add WebviewWindow rust struct (and builder)

* fix build on android

* license header

* fix macos/windows

* fix macos build

* resolve todo

* handle window not found

* hide unstable features

* document unstable feature [skip ci]

* webview plugin permissions

* hide more stuff

* fix doctests

* typos

* add change files

* fix examples

* rename hook
2024-01-24 11:05:18 -03:00
Lucas Fernandes Nogueiraandamrbashir ebc3e78e68 feat: update to latest wry (#8213)
Co-authored-by: amrbashir <amr.bashir2015@gmail.com>
2023-11-21 12:32:06 -03:00
f93148eac0 feat: add tray and menu javascript APIs and events, closes #6617 (#7709)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-11-19 08:38:24 -03:00
Lucas Fernandes Nogueira 74d2464d0e refactor(core): implement on_page_load event using wry hook (#8116) 2023-10-27 10:00:59 -03:00
Olivier LemasleandLucas Nogueira 9ed400a85c chore(ci): Replace unmaintained actions-rs GH actions, closes #8078 (#8093)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-10-26 15:27:52 -03:00
Lucas Fernandes Nogueira 198abe3c2c feat(plugins): typed invoke arguments for mobile plugins (#8076) 2023-10-23 14:09:42 -03:00
Lucas Fernandes Nogueira 68e7319305 fix(core): update scope usage following #7944 (#7946) 2023-10-03 08:44:25 -03:00
Lucas Fernandes Nogueira 0d63732b96 refactor(core): allow custom protocol handler to resolve async (#7754) 2023-09-06 15:53:03 -03:00
7fb419c326 refactor: move to muda and tray_icon crates (#7535)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-08-13 22:25:50 -03:00
Lucas Fernandes Nogueiraandchip fbeb5b9185 refactor(core): use webview's URI schemes for IPC (#7170)
Co-authored-by: chip <chip@chip.sh>
2023-08-10 10:12:38 -03:00
Lucas Fernandes Nogueira 7bbc626cc3 Merge remote-tracking branch 'origin/dev' into next (#7212) 2023-06-15 09:52:33 -03:00
FlysoftandLucas Nogueira aa6c9164e6 fix(cli): don't build library when building desktop targets, closes #7007 (#7014)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-05-22 11:32:20 -03:00
e1e85dc2a5 chore: fix ci and cleanup leftovers (#6925)
* chore: fix ci and cleanup leftovers

1. removed leftover feature flags
2. remove zip/extract apis which are not used anymore
3. removed leftoever scopes
4. removed leftover allowlist and updater options
5. updated the example api

* remove leftover updater structs

* move updater under bundle and remove uneeded options

* fix cli on linux

* remove create_proxy

* clippy

* more clippy

* clippppy

* readd path api

* fix api example

* remove window allowlist

* remove window from allowlist config

* remove `all` allowlist option

* remove file_move

* lint

* fix windows build

* remvoe unused deps

* remvoe allowlist config option, move protocol to `security > asset_protocol`

* fix diffing features

* fmt and test

* fix scope alias

* change files

* android lint

* simplify allow_file impl

* Revert "simplify allow_file impl"

This reverts commit b8882f2fd021917abce9338018d64652c65f33f9.

* expose scopes

* remove unused error variants

* protocol-asset on docs.rs

* ignore reqwest on udeps

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-05-13 13:48:28 +03:00