117 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 e6a4eee23b.

* 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
seekskyworldandLucas Nogueira d8d02ba60c feat: expose app exit via JS process API (#14767)
* feat: add process exit api

* chore: update api bundle

* code review

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-09-19 08:09:31 -03:00
Oscar LenziandLucas Nogueira 6edc2f4d49 feat(window): add command to set fullscreen on specific monitor (#14926)
* feat(window): add command to set fullscreen on specific monitor

* update example, add warns

* remove warns

* fix checks

* fix lockfile [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-09-19 08:05:48 -03: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 e9e88a7b3d chore(example): set color-cheme (#15734)
This allows the unstyled user agent elements match the selected theme colors
2026-07-16 21:37:58 +08:00
Tony c3d21bd60c enhance(android): use Theme.Material3.DayNight.NoActionBar (#15730)
* Use `Theme.Material3.DayNight.NoActionBar` by default

* Fix insets on Android

* Add change file

* Revert back to margin-top: 0.5rem

* Align content start
2026-07-16 17:39:16 +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 5ab317504a refactor: migrate to svelte ts for API example (#15675)
* 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

* Final cleanup

* Move types to svelte files

* fallback to empty string not false
2026-07-13 19:24:32 +08:00
signadou 074299c08d feat: add Bring All to Front predefined menu item type (#14307)
* Add Bring All to Front predefined menu item type

* Format and update changefile

* Update .changes/add-bring-all-to-front-predefined-menu-item-type.md
2026-04-07 23:34:01 +08:00
RobertandLucas Nogueira 68874c68c5 feat(core): webview window focusable property, closes #11130 (#13564)
* 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>
2025-08-17 11:50:17 -03:00
Naman KhandelwalandLucas Nogueira 5110a762e9 feat(window): add macOS window::set_simple_fullscreen (closes #13670) (#13830)
* add implementation of set_simple_fullscreen

* add simple fullscreen API for macos

* register desktop command

* format

* fix errors

* chore: format

* change implementation

* add api

* fix tests

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-12 08:03:29 -03:00
Pavel KuzminandTony 5ba1c3faa4 feat(menu): add icon support for Submenu in Rust and JS/TS APIs (#13722)
* 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>
2025-07-30 13:48:55 +08:00
kandrelczykandLucas Nogueira 232265c70e feat: bundle type detection at runtime via binary patching (#13209)
* patch binary with bundle type info

* only patch if the updater is included

* fix linux warnings

* patch binary when updaer is configured

* patch binary with bundle type info

only patch if the updater is included

fix linux warnings

patch binary when updaer is configured

* fix formatting

* fix license header

* fix taplo error

* move __TAURI_BUNDLE_TYPE to utils

* export get_current_bundle_type

* macos fix

* cleanup, add api

* update change file

* fix windows

* fmt, fix rust version support

* fix macos

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-07-07 12:08:00 -03:00
TonyandLucas Nogueira 7ed877a0ae chore(example): migrate API example to svelte 5 (#13146)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 21:11:21 -03:00
The1111mpandLucas Nogueira dd4f13ce4b feat: add set_dock_visibility method (#13185)
* feat: add `set_dock_visibility` method

Signed-off-by: The1111mp <The1111mp@outlook.com>

* add api

* retain focus

* fmt

* make SetDockVisibility message conditional (macos only)

* lint

---------

Signed-off-by: The1111mp <The1111mp@outlook.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-11 15:13:07 -03:00
Tony a16796a555 fix(api): use array for channel queueing (#12069) 2025-01-02 12:19:50 +01:00
Tony 17bcec8abe chore(deps): update all js dev dependencies (#11941)
- Update vite to v6
- Update svelte to v5
- Bump nanoid to fix audit
- Align api and cli to both use the same node types version
2024-12-11 12:55:38 +02:00
Amr BashirandLucas Nogueira de7414aab9 feat: add Window::set_enabled and Window::is_enabled (#11154)
* feat: add `Window::set_enabled` and `Window::is_enabled`

closes #6660

* license headers

* fix build

* fix mobile and macos

* fix macos

* again

* unsafe

* fix macos is_enabled

* update example

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-27 14:35:01 -03:00
e08c4e6888 Change V1 links to V2 site (#11111)
* Change V1 links to V2 site

* update lockfile

---------

Co-authored-by: Lucas Nogueira <118899497+lucasfernog-crabnebula@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
2024-09-24 08:09:00 -03:00
Tony 11db7be6c2 feat(core): add a new function to set theme dynamically (#10210)
closes #5279
2024-09-24 05:18:53 +03:00
Amr BashirandLucas Nogueira 261c9f942d refactor!(core & api): rename drag events for better consistency and clarity (#10170)
* refacotr!(core & api): rename drag events for better consistency and clarity

* more renames

* remove imports

* fix drag over listen

* update example

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-07-12 10:22:06 -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 2b1ceb40d3 refactor(api)!: renamed getCurrent functions to avoid ambiguity (#10229)
* refactor(api)!: renamed `getCurrent` functions to avoid ambiguity

closes #10193

* Update .changes/get-current-ambguity.md

* rename `getAll` and update docs and examples
2024-07-11 14:26:15 +03:00
Tony 11339418b1 chore(example/api): fix enter doesn't work on input with action button (#10254)
* Fix enter doesn't work on input with action button

* Use form
2024-07-11 11:06:36 +02:00
Tony a4a7233081 chore(example): refactor api example (#10228) 2024-07-09 12:00:06 +03:00
Tony afb102c59b fix(runtime-wry): window edge not working after setting resizable false and decorated false dynamically (#10211)
* Fix window edge not working
after setting resziable false and decorated false dynamically

* Fix example don't go crazy on resize

* cargo fmt
2024-07-08 15:24:55 +03:00
5541aafef3 fix(core): fix emit skipping webview listeners if filter wasn't provided (#9107)
* fix(core): fix emit skipping webview listeners if filter wasn't provided

* Update .changes/core-emit-js-all-targets.md

* update api example

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-03-07 20:36:52 +02:00
Amr Bashir 4b75834a41 chore: update license headers 2024 (#9043) 2024-03-01 08:29:01 -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
Amr BashirandLucas Nogueira 16e550ec15 refactor(core): add webview events (#8844)
* refactor(core): add webview events

* license header

* clippy

* fix doctests

* more doctests

* fix JS `listen` with `EventTarget::Any`

* typo

* update module import

* clippy

* remove console.log

* fix api example

* fix documentation for emiTo [skip ci]

* actually add RunEvent::WebviewEvent

* update migration

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-16 08:07:39 -03:00
Amr BashirandLucas Nogueira 58fe2e812a fix: improvements and ipc fixes for loading window content using custom protocol (#8670)
* fix: improvements and ipc fixes for loading window content using custom protocol

closes #5478

* Discard changes to tooling/cli/Cargo.lock

* clippy

* fix tests

* typo

* fix webviewurl deserialize

* resolve todo, fixes

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-31 09:38:25 -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
3c2f79f6f3 Tauri ACL/Allowlist v2 Implementation and Plugin System Refactor (#8428)
* tauri-plugin concept

* wip

* move command module to its own directory

* wip: new command traits and generated code

* wip: whip

* wip: static dispatch

there is a man standing behind me

* wip

* re-add authority

* fix build [skip ci]

* parse plugin permissions

* merge permission files [skip ci]

* parse capabilities [skip ci]

* resolve acl (untested) [skip ci]

* split functionality, add some docs

* remove command2 stuff

* actually check runtime authority

* small fixes [skip ci]

* add function to auto generate basic permission for a command [skip ci]

* retrieve command scope, implement CommandArg [skip ci]

* fix tests [skip ci]

* global scope

* lint

* license headers [skip ci]

* skip canonicalize

* separate scope type in example

* remove inlinedpermission struct [skip ci]

* permission file schema

* capabilities schema

* move items from tauri-plugin to tauri-utils

this allows tauri-plugin to depend on tauri directly again
which will be used by the runtime feature as a superset to
existing plugin traits

* enable schema and glob [skip ci]

* fix glob [skip ci]

* fix capability schema [skip ci]

* enhance schema for permission set possible values [skip ci]

* permission set can reference other sets [skip ci]

* setup tests for resolving ACL

* fixture for permission set [skip ci]

* remote context test and small fix[skip ci]

* ignore empty scope [skip ci]

* code review [skip ci]

* lint [skip ci]

* runtime fixes

* readd schema feature on tauri-config-schema [skip ci]

* remove plugin example from workspace, it breaks workspace features resolution [skip ci]

* scope as array, add test [skip ci]

* accept new shapshot [skip ci]

* core plugin permissions, default is now a set

* license headers

* fix  on windows

* update global api

* glob is no longer optional on tauri-utils

* add missing permissions on api example [skip ci]

* remove ipc scope and dangerous remote access config

* lint

* fix asset scope usage

* create out dir [skip ci]

* reuse cargo_pkg_name [skip ci]

* capability window glob pattern [skip ci]

* add platforms for capability [skip ci]

* per platform schema [skip ci]

* lint [skip ci]

* rename allowlist build mod [skip ci]

* check restricted visibility

* simplify capability target [skip ci]

* hide codegen build behind tauri-build::try_run

* optimize build scripts [skip ci]

* fix tests

* tests for RuntimeAuthority::resolve_access

* remote domain glob pattern

* lint

---------

Co-authored-by: Chip Reed <chip@chip.sh>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-22 21:24:15 -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
Amr BashirandLucas Fernandes Nogueira bf095df55a feat: expose Manager::resources_table (#8276)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2023-11-21 07:57:35 -03:00
Fabian-Lars c2ad4d28c4 refactor(api)!: Rename primitives mod to core (#8273) 2023-11-20 17:53:13 -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
Andre LewandLucas Nogueira c1ec0f1551 feat(core): expose always_on_bottom, closes #7847 (#7933)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-18 09:47:24 -03:00
Jason TsaiandLucas Nogueira c085addab5 feat: set application progress bar, close #7999 (#8009)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-17 16:25:30 -03:00
Amr BashirandLucas Nogueira fb10b87970 feat: move app plugin back to core (#8039)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-17 15:13:47 -03:00
ed32257d04 feat(windows): add tabbed effect (#7794)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-10-17 12:29:10 -03:00
Amr BashirandLucas Nogueira a63e71f979 refactor(core&api)!: hide internal functions and reuse them in api.js & rename tauri module to primitives (#7942)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-17 09:40:20 -03:00
Amr BashirandLucas Nogueira c9a9246c37 feat: move window plugin back to core (#8007)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-17 08:33:23 -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
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 b8882f2fd0.

* 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
Lucas Fernandes Nogueira 9a79dc0858 refactor(core): remove window endpoints (#6947) 2023-05-12 08:18:00 -03:00
Lucas Fernandes Nogueira 0ab5f40d3a feat(core): add IPC channel (#6813) 2023-05-11 07:25:32 -03:00
Lucas Fernandes NogueiraandFabian-Lars 29ce9ce2ce refactor(core): move os endpoints to a dedicated plugin (#6902)
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-05-08 12:05:12 -03:00
Lucas Fernandes Nogueira 3245d14b9e refactor(core): remove app module (#6895) 2023-05-08 10:29:36 -03:00
Lucas Fernandes Nogueira 96639ca239 refactor(core): remove shell APIs (#6749) 2023-04-20 09:19:47 -03:00